From dfd7cc49e2511c8d65f684e9731aba3b813c277e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1=C4=8Dek?= Date: Sat, 19 Sep 2026 11:42:13 +0200 Subject: [PATCH] Validate independent packed addons and complete physical mortar salvos --- .../Scripts/Game/ERR/ERR_MortarAimSolution.c | 1 + .../ai/Scripts/Game/ERR/ERR_MortarBattery.c | 87 +- addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c | 37 +- .../ai/Scripts/Game/ERR/ERR_MortarRefresh.c | 37 + addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c | 88 +- .../Game/ERR/ERR_NativeMortarFiringProbe.c | 6 +- .../Game/ERR/ERR_NativeMortarSalvoProbe.c | 476 +++++++ .../chat/Scripts/Game/ERR/ERR_NativeSmoke.c | 28 + .../Scripts/Game/ERR/ERR_NativeBaseSmoke.c | 3 + .../ERR/ERR_NativeFlightInputDiagnostics.c | 16 + .../Game/ERR/ERR_NativePoweredFlightProbe.c | 209 ++- .../core/Scripts/Game/ERR/ERR_ObjectiveText.c | 6 +- addons/core/Scripts/Game/ERR/ERR_Observer.c | 35 +- docs/acceptance.json | 34 +- docs/architecture.md | 12 +- docs/current-status.md | 37 +- .../console.log.txt | 595 +++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 179 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 306 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 179 +++ .../console.log.txt | 594 +++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 179 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 297 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 179 +++ .../console.log.txt | 721 +++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 179 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 421 ++++++ .../source-provenance.json | 4 + .../source-sha256.json | 179 +++ .../console.log.txt | 795 ++++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 180 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 495 ++++++++ .../source-provenance.json | 4 + .../source-sha256.json | 180 +++ .../console.log.txt | 613 +++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 180 +++ .../launch-source.json | 45 + .../report.json | 15 + .../rereintroduced-hq.log.txt | 79 ++ .../runner.json.txt | 19 + .../script.log.txt | 288 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 180 +++ .../console.log.txt | 859 +++++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 180 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 559 ++++++++ .../source-provenance.json | 4 + .../source-sha256.json | 180 +++ .../console.log.txt | 889 +++++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 180 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 589 +++++++++ .../source-provenance.json | 4 + .../source-sha256.json | 180 +++ .../console.log.txt | 621 +++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 45 + .../report.json | 15 + .../rereintroduced-hq.log.txt | 79 ++ .../runner.json.txt | 19 + .../script.log.txt | 292 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../console.log.txt | 675 ++++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 45 + .../report.json | 15 + .../rereintroduced-hq.log.txt | 159 +++ .../runner.json.txt | 19 + .../script.log.txt | 326 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../console.log.txt | 601 +++++++++ .../error.log.txt | 108 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 51 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 304 +++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../console.log.txt | 1130 +++++++++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 830 ++++++++++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../console.log.txt | 717 +++++++++++ .../error.log.txt | 118 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 45 + .../report.json | 9 + .../rereintroduced-hq.log.txt | 163 +++ .../runner.json.txt | 19 + .../script.log.txt | 366 ++++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../console.log.txt | 1069 ++++++++++++++++ .../error.log.txt | 111 ++ .../headless-launch.log.txt | 150 +++ .../launch-source-sha256.json | 181 +++ .../launch-source.json | 49 + .../report.json | 15 + .../runner.json.txt | 19 + .../script.log.txt | 769 +++++++++++ .../source-provenance.json | 4 + .../source-sha256.json | 181 +++ .../archive-sha256.json | 14 + .../authored-before.json | 179 +++ .../evidence/core/authored-after.json | 179 +++ .../evidence/core/launch.json | 244 ++++ .../evidence/core/launch.log.txt | 129 ++ .../evidence/core/native-child.py | 7 + .../evidence/core/native-exit.json | 1 + .../evidence/core/report.json | 158 +++ .../package-report.json | 172 +++ .../repository-after.json | 179 +++ .../archive-sha256.json | 15 + .../authored-before.json | 180 +++ .../evidence/core/authored-after.json | 180 +++ .../evidence/core/launch.json | 250 ++++ .../evidence/core/launch.log.txt | 130 ++ .../evidence/core/native-child.py | 9 + .../evidence/core/native-exit.json | 1 + .../core/native-prefix-environment.json | 5 + .../evidence/core/report.json | 161 +++ .../package-report.json | 175 +++ .../repository-after.json | 180 +++ .../archive-sha256.json | 261 ++++ .../authored-before.json | 181 +++ .../evidence/ai/authored-after.json | 181 +++ .../evidence/ai/launch.json | 251 ++++ .../evidence/ai/launch.log | 129 ++ .../evidence/ai/native-child.py | 9 + .../evidence/ai/native-exit.json | 1 + .../ai/native-prefix-environment.json | 5 + .../evidence/ai/report.json | 161 +++ .../evidence/chat/authored-after.json | 181 +++ .../evidence/chat/launch.json | 251 ++++ .../evidence/chat/launch.log | 130 ++ .../evidence/chat/native-child.py | 9 + .../evidence/chat/native-exit.json | 1 + .../chat/native-prefix-environment.json | 5 + .../evidence/chat/report.json | 161 +++ .../evidence/core/authored-after.json | 181 +++ .../evidence/core/launch.json | 251 ++++ .../evidence/core/launch.log | 130 ++ .../evidence/core/native-child.py | 9 + .../evidence/core/native-exit.json | 1 + .../core/native-prefix-environment.json | 5 + .../evidence/core/report.json | 161 +++ .../evidence/intel/authored-after.json | 181 +++ .../evidence/intel/launch.json | 251 ++++ .../evidence/intel/launch.log | 129 ++ .../evidence/intel/native-child.py | 9 + .../evidence/intel/native-exit.json | 1 + .../intel/native-prefix-environment.json | 5 + .../evidence/intel/report.json | 161 +++ .../evidence/map/authored-after.json | 181 +++ .../evidence/map/launch.json | 251 ++++ .../evidence/map/launch.log | 129 ++ .../evidence/map/native-child.py | 9 + .../evidence/map/native-exit.json | 1 + .../map/native-prefix-environment.json | 5 + .../evidence/map/report.json | 161 +++ .../package-report.json | 826 ++++++++++++ .../packages/ai/addon.gproj | 9 + .../packages/ai/data.pak | Bin 0 -> 65724 bytes .../packages/ai/resourceDatabase.rdb | Bin 0 -> 1721 bytes .../packages/chat/addon.gproj | 12 + .../packages/chat/data.pak | Bin 0 -> 14469 bytes .../packages/chat/resourceDatabase.rdb | Bin 0 -> 804 bytes .../packages/core/addon.gproj | 8 + .../packages/core/data.pak | Bin 0 -> 194081 bytes .../packages/core/resourceDatabase.rdb | Bin 0 -> 6865 bytes .../packages/intel/addon.gproj | 9 + .../packages/intel/data.pak | Bin 0 -> 1141 bytes .../packages/intel/resourceDatabase.rdb | Bin 0 -> 227 bytes .../packages/map/addon.gproj | 9 + .../packages/map/data.pak | Bin 0 -> 5751 bytes .../packages/map/resourceDatabase.rdb | Bin 0 -> 750 bytes .../logs_2026-09-19_11-17-41/console.log.txt | 235 ++++ .../logs_2026-09-19_11-17-41/error.log.txt | 50 + .../resourceDatabase.rdb | Bin 0 -> 81 bytes .../logs_2026-09-19_11-17-41/script.log.txt | 31 + .../logs_2026-09-19_11-18-40/console.log.txt | 274 ++++ .../logs_2026-09-19_11-18-40/error.log.txt | 50 + .../resourceDatabase.rdb | Bin 0 -> 81 bytes .../logs_2026-09-19_11-18-40/script.log.txt | 31 + .../logs_2026-09-19_11-17-31/console.log.txt | 222 ++++ .../logs_2026-09-19_11-17-31/error.log.txt | 50 + .../resourceDatabase.rdb | Bin 0 -> 81 bytes .../logs_2026-09-19_11-17-31/script.log.txt | 31 + .../logs_2026-09-19_11-18-00/console.log.txt | 235 ++++ .../logs_2026-09-19_11-18-00/error.log.txt | 50 + .../resourceDatabase.rdb | Bin 0 -> 81 bytes .../logs_2026-09-19_11-18-00/script.log.txt | 31 + .../logs_2026-09-19_11-18-20/console.log.txt | 235 ++++ .../logs_2026-09-19_11-18-20/error.log.txt | 50 + .../resourceDatabase.rdb | Bin 0 -> 81 bytes .../logs_2026-09-19_11-18-20/script.log.txt | 31 + .../repository-after.json | 181 +++ .../package-2026-09-19-111731-all/review.json | 217 ++++ .../review/ai-pak-inventory.json | 259 ++++ .../review/chat-pak-inventory.json | 97 ++ .../review/core-pak-inventory.json | 988 ++++++++++++++ .../review/intel-pak-inventory.json | 34 + .../review/map-pak-inventory.json | 70 + .../review/pak_inventory.py | 256 ++++ .../addons/ai/Prefabs/ERR/MortarCrew.et | 8 + .../addons/ai/Prefabs/ERR/MortarCrew.et.meta | 7 + .../addons/ai/Scripts/Game/ERR/ERR_HQ.c | 391 ++++++ .../ai/Scripts/Game/ERR/ERR_HQJournal.c | 101 ++ .../ai/Scripts/Game/ERR/ERR_HQNetwork.c | 241 ++++ .../ai/Scripts/Game/ERR/ERR_HQObservation.c | 199 +++ .../addons/ai/Scripts/Game/ERR/ERR_HQReport.c | 144 +++ .../Game/ERR/ERR_HelicopterAvailability.c | 31 + .../Scripts/Game/ERR/ERR_MortarAimSolution.c | 32 + .../ai/Scripts/Game/ERR/ERR_MortarBattery.c | 503 ++++++++ .../Game/ERR/ERR_MortarCourierTransfer.c | 68 + .../ai/Scripts/Game/ERR/ERR_MortarFiring.c | 307 +++++ .../ai/Scripts/Game/ERR/ERR_MortarLogistics.c | 347 +++++ .../Scripts/Game/ERR/ERR_MortarPrediction.c | 131 ++ .../ai/Scripts/Game/ERR/ERR_MortarReadiness.c | 177 +++ .../ai/Scripts/Game/ERR/ERR_MortarRefresh.c | 37 + .../Scripts/Game/ERR/ERR_MortarReportLedger.c | 20 + .../ai/Scripts/Game/ERR/ERR_MortarSalvo.c | 16 + .../Game/ERR/ERR_MortarSupplyTransfer.c | 108 ++ .../ai/Scripts/Game/ERR/ERR_MortarSystem.c | 333 +++++ .../Game/ERR/ERR_NativeMortarCourierProbe.c | 213 ++++ .../Game/ERR/ERR_NativeMortarFiringProbe.c | 334 +++++ .../Game/ERR/ERR_NativeMortarSalvoProbe.c | 308 +++++ .../Game/ERR/ERR_NativeMortarTransferProbe.c | 383 ++++++ .../Game/ERR/ERR_NativePatrolHQProbe.c | 87 ++ .../Scripts/Game/ERR/ERR_SettlementSafety.c | 63 + .../ai/Scripts/Game/ERR/ERR_SupportScenario.c | 9 + .../source/addons/ai/addon.gproj | 9 + .../addons/chat/Missions/ERR_Everon.conf | 11 + .../addons/chat/Missions/ERR_Everon.conf.meta | 9 + .../chat/Scripts/Game/ERR/ERR_AdminCommands.c | 36 + .../Game/ERR/ERR_NativeHQResponseProof.c | 288 +++++ .../Scripts/Game/ERR/ERR_NativeMortarProbe.c | 10 + .../Scripts/Game/ERR/ERR_NativeRadioProbe.c | 114 ++ .../chat/Scripts/Game/ERR/ERR_NativeSmoke.c | 506 ++++++++ .../ERRChat/ERR_OrdinaryScenarioLaunchChat.c | 16 + .../ERR/ERR_ValidateWorldPlugin.c | 51 + .../source/addons/chat/addon.gproj | 12 + .../addons/core/Configs/ERR/EveronSites.conf | 136 ++ .../core/Configs/ERR/EveronSites.conf.meta | 9 + .../Configs/ERR/Factions/MissionVehicles.conf | 24 + .../ERR/Factions/MissionVehicles.conf.meta | 7 + .../addons/core/Configs/ERR/Factions/US.conf | 277 ++++ .../core/Configs/ERR/Factions/US.conf.meta | 7 + .../core/Configs/ERR/Factions/USSR.conf | 276 ++++ .../core/Configs/ERR/Factions/USSR.conf.meta | 7 + .../core/Configs/ERR/GameOverScreens.conf | 21 + .../Configs/ERR/GameOverScreens.conf.meta | 9 + .../core/Configs/ERR/VanillaFactions.conf | 7 + .../Configs/ERR/VanillaFactions.conf.meta | 9 + .../addons/core/Missions/ERR_Everon_Base.conf | 11 + .../core/Missions/ERR_Everon_Base.conf.meta | 9 + .../addons/core/Prefabs/ERR/Extraction.et | 6 + .../core/Prefabs/ERR/Extraction.et.meta | 9 + .../addons/core/Prefabs/ERR/FactionManager.et | 10 + .../core/Prefabs/ERR/FactionManager.et.meta | 7 + .../addons/core/Prefabs/ERR/FieldCover.et | 13 + .../core/Prefabs/ERR/FieldCover.et.meta | 7 + .../addons/core/Prefabs/ERR/GameMode.et | 14 + .../addons/core/Prefabs/ERR/GameMode.et.meta | 9 + .../core/Prefabs/ERR/ObjectiveDocument.et | 5 + .../Prefabs/ERR/ObjectiveDocument.et.meta | 9 + .../source/addons/core/Prefabs/ERR/Patrol.et | 10 + .../addons/core/Prefabs/ERR/Patrol.et.meta | 7 + .../source/addons/core/Prefabs/ERR/Prison.et | 90 ++ .../addons/core/Prefabs/ERR/Prison.et.meta | 9 + .../addons/core/Prefabs/ERR/PrisonDoor.et | 19 + .../core/Prefabs/ERR/PrisonDoor.et.meta | 9 + .../addons/core/Prefabs/ERR/PrisonWall.et | 8 + .../core/Prefabs/ERR/PrisonWall.et.meta | 9 + .../addons/core/Prefabs/ERR/Prisoner.et | 55 + .../addons/core/Prefabs/ERR/Prisoner.et.meta | 7 + .../source/addons/core/Prefabs/ERR/Radio.et | 16 + .../addons/core/Prefabs/ERR/Radio.et.meta | 9 + .../core/Prefabs/ERR/SpectatorCamera.et | 7 + .../core/Prefabs/ERR/SpectatorCamera.et.meta | 9 + .../addons/core/Prefabs/ERR/SupplyCache.et | 28 + .../core/Prefabs/ERR/SupplyCache.et.meta | 9 + .../addons/core/Prefabs/ERR/SupplySite.et | 6 + .../core/Prefabs/ERR/SupplySite.et.meta | 9 + .../core/Scripts/Game/ERR/ERR_Actions.c | 48 + .../addons/core/Scripts/Game/ERR/ERR_Actors.c | 81 ++ .../core/Scripts/Game/ERR/ERR_AdminService.c | 111 ++ .../Game/ERR/ERR_CasualtyGroundSupport.c | 82 ++ .../Game/ERR/ERR_CasualtyLoadingGameMode.c | 48 + .../Game/ERR/ERR_CasualtyLoadingOwner.c | 75 ++ .../Game/ERR/ERR_CasualtyLoadingService.c | 331 +++++ .../core/Scripts/Game/ERR/ERR_DiscoveryMap.c | 119 ++ .../Scripts/Game/ERR/ERR_DiscoveryService.c | 64 + .../Scripts/Game/ERR/ERR_DocumentComponent.c | 8 + .../Scripts/Game/ERR/ERR_EnvironmentService.c | 164 +++ .../Game/ERR/ERR_EscapeGameOverScreenInfo.c | 72 ++ .../Game/ERR/ERR_ExtractionPlacement.c | 112 ++ .../Scripts/Game/ERR/ERR_ExtractionService.c | 101 ++ .../Scripts/Game/ERR/ERR_FactionCatalog.c | 42 + .../core/Scripts/Game/ERR/ERR_GameMode.c | 427 +++++++ .../Scripts/Game/ERR/ERR_InitialGuardRules.c | 12 + .../core/Scripts/Game/ERR/ERR_Inventory.c | 19 + .../Game/ERR/ERR_ItemStationTeardown.c | 62 + .../Scripts/Game/ERR/ERR_LoadCasualtyAction.c | 23 + .../Scripts/Game/ERR/ERR_LocalAdmission.c | 107 ++ .../core/Scripts/Game/ERR/ERR_Location.c | 69 + .../core/Scripts/Game/ERR/ERR_MissionRules.c | 46 + .../Game/ERR/ERR_NativeAdminSettingsProbe.c | 76 ++ .../Scripts/Game/ERR/ERR_NativeBaseSmoke.c | 846 ++++++++++++ .../Game/ERR/ERR_NativeCasualtyGroundProbe.c | 80 ++ .../Game/ERR/ERR_NativeCasualtyLoadProbe.c | 255 ++++ .../Game/ERR/ERR_NativeCasualtyRemoveProbe.c | 160 +++ .../Game/ERR/ERR_NativeCasualtyServiceProbe.c | 293 +++++ .../Game/ERR/ERR_NativeContractsProbe.c | 52 + .../Game/ERR/ERR_NativeDefinitionProbe.c | 60 + .../Game/ERR/ERR_NativeDiscoveryMapProbe.c | 160 +++ .../Game/ERR/ERR_NativeEnvironmentProbe.c | 163 +++ .../ERR/ERR_NativeEnvironmentRestartProbe.c | 118 ++ .../Game/ERR/ERR_NativeExtractionProbe.c | 172 +++ .../Game/ERR/ERR_NativeFactionCatalogProbe.c | 75 ++ .../Game/ERR/ERR_NativeFlightFootprint.c | 141 ++ .../ERR/ERR_NativeFlightInputDiagnostics.c | 106 ++ .../Game/ERR/ERR_NativeGuardCancelProbe.c | 247 ++++ .../ERR/ERR_NativeItemStationTeardownProbe.c | 162 +++ .../Game/ERR/ERR_NativeLifecycleProbe.c | 190 +++ .../Game/ERR/ERR_NativeLocalAdmissionProbe.c | 129 ++ .../Scripts/Game/ERR/ERR_NativeMedicalProbe.c | 225 ++++ .../Game/ERR/ERR_NativeObjectiveLossProbe.c | 183 +++ .../Game/ERR/ERR_NativeObjectiveProbe.c | 238 ++++ .../Scripts/Game/ERR/ERR_NativePatrolProbe.c | 203 +++ .../Game/ERR/ERR_NativePoweredFlightProbe.c | 618 +++++++++ .../Game/ERR/ERR_NativePrisonBreachProbe.c | 167 +++ .../Game/ERR/ERR_NativePrisonerProbe.c | 210 +++ .../ERR/ERR_NativeProgressionIdentityProbe.c | 105 ++ .../Game/ERR/ERR_NativeRadioDefenceProbe.c | 367 ++++++ .../Game/ERR/ERR_NativeRecoveryProbe.c | 96 ++ .../Scripts/Game/ERR/ERR_NativeResultProbe.c | 68 + .../Scripts/Game/ERR/ERR_NativeSiteSurvey.c | 58 + .../ERR/ERR_NativeStationTeardownDiagnostic.c | 111 ++ .../Scripts/Game/ERR/ERR_NativeTimeProbe.c | 117 ++ .../Game/ERR/ERR_NativeTransportProbe.c | 146 +++ .../Game/ERR/ERR_NativeTransportSurvey.c | 36 + .../Scripts/Game/ERR/ERR_ObjectiveDetails.c | 59 + .../core/Scripts/Game/ERR/ERR_ObjectiveText.c | 64 + .../core/Scripts/Game/ERR/ERR_Objectives.c | 60 + .../core/Scripts/Game/ERR/ERR_Observer.c | 256 ++++ .../Game/ERR/ERR_OrdinaryScenarioLaunch.c | 130 ++ .../Game/ERR/ERR_PlayerAdminCommands.c | 61 + .../Scripts/Game/ERR/ERR_PlayerEscapeResult.c | 56 + .../core/Scripts/Game/ERR/ERR_PlayerGuide.c | 41 + .../core/Scripts/Game/ERR/ERR_PlayerRoster.c | 118 ++ .../Game/ERR/ERR_PrisonEscapeService.c | 199 +++ .../Game/ERR/ERR_RadioDefenceService.c | 137 ++ .../core/Scripts/Game/ERR/ERR_RadioFeedback.c | 19 + .../Scripts/Game/ERR/ERR_RecoveryService.c | 74 ++ .../core/Scripts/Game/ERR/ERR_Resources.c | 10 + .../Scripts/Game/ERR/ERR_ScenarioComponent.c | 58 + .../core/Scripts/Game/ERR/ERR_Settings.c | 139 ++ .../Scripts/Game/ERR/ERR_SiteDefinition.c | 167 +++ .../Scripts/Game/ERR/ERR_SiteDiscoveryRules.c | 17 + .../core/Scripts/Game/ERR/ERR_SiteService.c | 484 +++++++ .../Scripts/Game/ERR/ERR_SpawnFinalization.c | 84 ++ .../core/Scripts/Game/ERR/ERR_SpawnLogic.c | 375 ++++++ .../Scripts/Game/ERR/ERR_SpawnPlacement.c | 84 ++ .../core/Scripts/Game/ERR/ERR_Supplies.c | 7 + .../core/Scripts/Game/ERR/ERR_TimeService.c | 81 ++ .../GameLib/ERR/ERR_DiagnosticNoSplash.c | 26 + .../ERR/ERR_ValidateBaseWorldPlugin.c | 27 + .../source/addons/core/Worlds/ERR_Everon.ent | 3 + .../addons/core/Worlds/ERR_Everon.ent.meta | 9 + .../Worlds/ERR_Everon_Layers/default.layer | 35 + .../source/addons/core/addon.gproj | 8 + .../intel/Scripts/Game/ERR/ERR_IntelService.c | 76 ++ .../source/addons/intel/addon.gproj | 9 + .../map/Materials/ERRM_MapRenderTarget.emat | 7 + .../Materials/ERRM_MapRenderTarget.emat.meta | 17 + .../Items/Equipment/ERRM_SharedFieldMap.et | 78 ++ .../Equipment/ERRM_SharedFieldMap.et.meta | 17 + .../map/Scripts/Game/ERR/ERR_ScenarioMap.c | 7 + .../Game/ERRMap/ERRM_SharedMapComponent.c | 200 +++ .../ERRMap/SharedMapRenderTarget.layout | 39 + .../ERRMap/SharedMapRenderTarget.layout.meta | 17 + .../source/addons/map/addon.gproj | 9 + .../archive-sha256.json | 16 + .../authored-before.json | 7 + .../control-description.json | 12 + .../evidence/core/authored-after.json | 7 + .../evidence/core/launch.json | 77 ++ .../evidence/core/launch.log.txt | 129 ++ .../evidence/core/native-child.py | 9 + .../evidence/core/native-exit.json | 1 + .../core/native-prefix-environment.json | 5 + .../evidence/core/report.json | 157 +++ .../package-report.json | 171 +++ .../repository-after.json | 7 + .../archive-kind.json | 15 + .../archive-sha256.json | 27 + .../console.log.txt | 490 +++++++ .../error.log.txt | 84 ++ .../headless-launch.log.txt | 139 ++ .../package/ai/addon.gproj | 9 + .../package/ai/data.pak | Bin 0 -> 65724 bytes .../package/ai/resourceDatabase.rdb | Bin 0 -> 1721 bytes .../package/chat/addon.gproj | 12 + .../package/chat/data.pak | Bin 0 -> 14469 bytes .../package/chat/resourceDatabase.rdb | Bin 0 -> 804 bytes .../package/core/addon.gproj | 8 + .../package/core/data.pak | Bin 0 -> 194081 bytes .../package/core/resourceDatabase.rdb | Bin 0 -> 6865 bytes .../package/intel/addon.gproj | 9 + .../package/intel/data.pak | Bin 0 -> 1141 bytes .../package/intel/resourceDatabase.rdb | Bin 0 -> 227 bytes .../package/map/addon.gproj | 9 + .../package/map/data.pak | Bin 0 -> 5751 bytes .../package/map/resourceDatabase.rdb | Bin 0 -> 750 bytes .../packed-input-provenance.json | 113 ++ .../raw-startup-report.json | 31 + .../packed-chat-2026-09-19-113315/report.json | 81 ++ .../rereintroduced-hq.log.txt | 10 + .../runner.json.txt | 29 + .../script.log.txt | 229 ++++ .../archive-kind.json | 7 + .../archive-sha256.json | 14 + .../console.log.txt | 191 +++ .../error.log.txt | 25 + .../headless-launch.log.txt | 140 ++ .../package/addon.gproj | 8 + .../package/data.pak | Bin 0 -> 194044 bytes .../package/resourceDatabase.rdb | Bin 0 -> 6865 bytes .../packed-input-provenance.json | 57 + .../raw-startup-report.json | 30 + .../report.json | 69 + .../runner.json.txt | 29 + .../script.log.txt | 40 + .../archive-kind.json | 7 + .../archive-sha256.json | 14 + .../console.log.txt | 458 +++++++ .../error.log.txt | 84 ++ .../headless-launch.log.txt | 139 ++ .../package/addon.gproj | 8 + .../package/data.pak | Bin 0 -> 194044 bytes .../package/resourceDatabase.rdb | Bin 0 -> 6865 bytes .../packed-input-provenance.json | 57 + .../raw-startup-report.json | 31 + .../packed-core-2026-09-19-110729/report.json | 72 ++ .../runner.json.txt | 29 + .../script.log.txt | 229 ++++ docs/mortar-activity-completion.md | 24 + docs/mortar-report-refresh.md | 30 + docs/native-companion-packaging.md | 47 + docs/native-flight-input-diagnostics.md | 8 + docs/native-mortar-salvo.md | 60 + docs/native-packaging-control.md | 83 ++ docs/native-packaging.md | 126 ++ docs/native-powered-flight.md | 48 + docs/original-feature-coverage.json | 6 +- docs/original-feature-coverage.md | 8 +- docs/packed-core-startup.md | 81 ++ docs/packed-evidence.md | 43 + docs/pak-inventory.md | 38 + docs/spectator-guidance.md | 9 + docs/validation.md | 30 + tests/test_archive_packed.py | 203 +++ tests/test_flight_action_runner.py | 34 + tests/test_mortar_activity_completion.py | 85 ++ tests/test_mortar_aim_renewal.py | 8 +- tests/test_mortar_refresh.py | 242 ++++ tests/test_mortar_transactions.py | 31 +- tests/test_native_flight_input_diagnostics.py | 1 + tests/test_native_mortar_probe.py | 14 +- tests/test_native_mortar_refresh.py | 105 ++ tests/test_native_mortar_salvo.py | 91 ++ tests/test_native_package.py | 392 ++++++ tests/test_packed_chat_game.py | 183 +++ tests/test_packed_core_game.py | 180 +++ tests/test_pak_inventory.py | 153 +++ tests/test_powered_flight_policy.py | 151 ++- tests/test_spectator_guidance.py | 46 + tools/archive_packed.py | 201 +++ tools/check.py | 2 +- tools/headless_game.py | 286 ++++- tools/headless_workbench.py | 12 +- tools/native_package.py | 406 ++++++ tools/pak_inventory.py | 256 ++++ 532 files changed, 63902 insertions(+), 96 deletions(-) create mode 100644 addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c create mode 100644 addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/rereintroduced-hq.log.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/rereintroduced-hq.log.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/rereintroduced-hq.log.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/report.json create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/rereintroduced-hq.log.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-112900-mortar-refresh/source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/console.log.txt create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/error.log.txt create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/headless-launch.log.txt create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source-sha256.json create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source.json create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/report.json create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/runner.json.txt create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/script.log.txt create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-provenance.json create mode 100644 docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-sha256.json create mode 100644 docs/evidence/package-2026-09-19-104634/archive-sha256.json create mode 100644 docs/evidence/package-2026-09-19-104634/authored-before.json create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/launch.json create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/launch.log.txt create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/native-child.py create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-104634/evidence/core/report.json create mode 100644 docs/evidence/package-2026-09-19-104634/package-report.json create mode 100644 docs/evidence/package-2026-09-19-104634/repository-after.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/archive-sha256.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/authored-before.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.log.txt create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-child.py create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/evidence/core/report.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/package-report.json create mode 100644 docs/evidence/package-2026-09-19-105949-silent/repository-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/archive-sha256.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/authored-before.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.log create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-child.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/ai/report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.log create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-child.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/chat/report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.log create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/native-child.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/core/report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.log create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-child.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/intel/report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/authored-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.log create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/native-child.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/native-exit.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/native-prefix-environment.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/evidence/map/report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/package-report.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/ai/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/ai/data.pak create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/ai/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/chat/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/chat/data.pak create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/chat/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/core/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/core/data.pak create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/core/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/intel/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/intel/data.pak create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/intel/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/map/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/map/data.pak create mode 100644 docs/evidence/package-2026-09-19-111731-all/packages/map/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/ai/logs/logs_2026-09-19_11-17-41/console.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/ai/logs/logs_2026-09-19_11-17-41/error.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/ai/logs/logs_2026-09-19_11-17-41/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/ai/logs/logs_2026-09-19_11-17-41/script.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/chat/logs/logs_2026-09-19_11-18-40/console.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/chat/logs/logs_2026-09-19_11-18-40/error.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/chat/logs/logs_2026-09-19_11-18-40/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/chat/logs/logs_2026-09-19_11-18-40/script.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/core/logs/logs_2026-09-19_11-17-31/console.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/core/logs/logs_2026-09-19_11-17-31/error.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/core/logs/logs_2026-09-19_11-17-31/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/core/logs/logs_2026-09-19_11-17-31/script.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/intel/logs/logs_2026-09-19_11-18-00/console.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/intel/logs/logs_2026-09-19_11-18-00/error.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/intel/logs/logs_2026-09-19_11-18-00/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/intel/logs/logs_2026-09-19_11-18-00/script.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/map/logs/logs_2026-09-19_11-18-20/console.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/map/logs/logs_2026-09-19_11-18-20/error.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/map/logs/logs_2026-09-19_11-18-20/resourceDatabase.rdb create mode 100644 docs/evidence/package-2026-09-19-111731-all/profiles/map/logs/logs_2026-09-19_11-18-20/script.log.txt create mode 100644 docs/evidence/package-2026-09-19-111731-all/repository-after.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/ai-pak-inventory.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/chat-pak-inventory.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/core-pak-inventory.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/intel-pak-inventory.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/map-pak-inventory.json create mode 100644 docs/evidence/package-2026-09-19-111731-all/review/pak_inventory.py create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQ.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQJournal.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQObservation.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQReport.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/ai/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/chat/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actions.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actors.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_AdminService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_GameMode.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Inventory.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Location.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_MissionRules.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Objectives.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Observer.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RecoveryService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Resources.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Settings.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Supplies.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_TimeService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon_Layers/default.layer create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/core/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/intel/Scripts/Game/ERR/ERR_IntelService.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/intel/addon.gproj create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta create mode 100644 docs/evidence/package-2026-09-19-111731-all/source/addons/map/addon.gproj create mode 100644 docs/evidence/package-control-2026-09-19-110404/archive-sha256.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/authored-before.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/control-description.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/authored-after.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.log.txt create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/native-child.py create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/native-exit.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/native-prefix-environment.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/evidence/core/report.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/package-report.json create mode 100644 docs/evidence/package-control-2026-09-19-110404/repository-after.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/archive-kind.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/archive-sha256.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/console.log.txt create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/error.log.txt create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/headless-launch.log.txt create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/ai/addon.gproj create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/ai/data.pak create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/ai/resourceDatabase.rdb create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/chat/addon.gproj create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/chat/data.pak create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/chat/resourceDatabase.rdb create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/core/addon.gproj create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/core/data.pak create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/core/resourceDatabase.rdb create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/intel/addon.gproj create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/intel/data.pak create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/intel/resourceDatabase.rdb create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/map/addon.gproj create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/map/data.pak create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/package/map/resourceDatabase.rdb create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/packed-input-provenance.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/raw-startup-report.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/report.json create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/rereintroduced-hq.log.txt create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/runner.json.txt create mode 100644 docs/evidence/packed-chat-2026-09-19-113315/script.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-kind.json create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-sha256.json create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/console.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/error.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/headless-launch.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/addon.gproj create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/data.pak create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/resourceDatabase.rdb create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/packed-input-provenance.json create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/raw-startup-report.json create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/report.json create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/runner.json.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110127-path-refusal/script.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110729/archive-kind.json create mode 100644 docs/evidence/packed-core-2026-09-19-110729/archive-sha256.json create mode 100644 docs/evidence/packed-core-2026-09-19-110729/console.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110729/error.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110729/headless-launch.log.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110729/package/addon.gproj create mode 100644 docs/evidence/packed-core-2026-09-19-110729/package/data.pak create mode 100644 docs/evidence/packed-core-2026-09-19-110729/package/resourceDatabase.rdb create mode 100644 docs/evidence/packed-core-2026-09-19-110729/packed-input-provenance.json create mode 100644 docs/evidence/packed-core-2026-09-19-110729/raw-startup-report.json create mode 100644 docs/evidence/packed-core-2026-09-19-110729/report.json create mode 100644 docs/evidence/packed-core-2026-09-19-110729/runner.json.txt create mode 100644 docs/evidence/packed-core-2026-09-19-110729/script.log.txt create mode 100644 docs/mortar-activity-completion.md create mode 100644 docs/mortar-report-refresh.md create mode 100644 docs/native-companion-packaging.md create mode 100644 docs/native-mortar-salvo.md create mode 100644 docs/native-packaging-control.md create mode 100644 docs/native-packaging.md create mode 100644 docs/packed-core-startup.md create mode 100644 docs/packed-evidence.md create mode 100644 docs/pak-inventory.md create mode 100644 docs/spectator-guidance.md create mode 100644 tests/test_archive_packed.py create mode 100644 tests/test_flight_action_runner.py create mode 100644 tests/test_mortar_activity_completion.py create mode 100644 tests/test_mortar_refresh.py create mode 100644 tests/test_native_mortar_refresh.py create mode 100644 tests/test_native_mortar_salvo.py create mode 100644 tests/test_native_package.py create mode 100644 tests/test_packed_chat_game.py create mode 100644 tests/test_packed_core_game.py create mode 100644 tests/test_pak_inventory.py create mode 100644 tests/test_spectator_guidance.py create mode 100644 tools/archive_packed.py create mode 100644 tools/native_package.py create mode 100644 tools/pak_inventory.py diff --git a/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c b/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c index 9d31f27..ed47286 100644 --- a/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c +++ b/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c @@ -4,6 +4,7 @@ class ERR_MortarAimSolution { IEntity Gun; + // Last delivered observation proved equivalent to this original geometry. ERR_HQReport Report; int OrderId; int Shot; diff --git a/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c b/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c index 86d8628..f1a40f8 100644 --- a/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c +++ b/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c @@ -34,10 +34,15 @@ class ERR_MortarBattery ref ERR_HQRoute RadioOrder; ref ERR_HQReport PendingRadioReport; ref ERR_HQReport PendingSupplyReport; + ref ERR_MortarRefresh Refresh; + bool RefreshRejected; // latched through an already committed projectile protected ref ERR_MortarReadiness m_Readiness; protected ref ERR_MortarSupplyTransfer m_Transfer; protected ref array m_AttemptedShells = {}; protected bool m_Stopped; + protected SCR_AIStaticArtilleryActivity m_ObservedActivity; + protected int m_ObservedActivityOrder; + protected EAIActionState m_ActivityTerminal = EAIActionState.EVALUATED; protected ref ERR_MortarReportLedger m_ReportLedger = new ERR_MortarReportLedger(); vector Position; vector Impact; @@ -45,6 +50,7 @@ class ERR_MortarBattery int AimedShot = -1; float FlightTime; float AimedAt = -1; + float AimValidatedAt = -1; SCR_AIGetArtilleryAimDistanceCompensation AimSolver; ref ERR_MortarAimSolution AimSolution; float AirspaceUntil; @@ -135,6 +141,28 @@ class ERR_MortarBattery return true; } + bool CanRefresh(ERR_HQReport report, float now) + { + if (m_Stopped || !CommandOpen || !Activity || Refresh || RefreshRejected || Rejected || !Operational()) return false; + return ERR_MortarRefreshRules.Newer(Report, report, now) && m_ReportLedger.Available(report.MessageId, report.ObservedAt, now); + } + bool BeginRefresh(ERR_HQReport report, ERR_HQRoute route, float now) + { + if (!route || !CanRefresh(report, now) || !m_ReportLedger.Claim(report.MessageId, report.ObservedAt, now)) return false; + Refresh = new ERR_MortarRefresh(this, report, route); + Audit("UPDATE QUEUED", string.Format("same order; update radio=M%1 newer observation=M%2 observed=%3", route.MessageId, report.MessageId, report.ObservedAt)); + return true; + } + void RejectRefresh(string reason) + { + // Never clear the commit latch or steal the physical projectile callback. + // AllowShot refuses further loads now; HQ cancels after it is observed. + RefreshRejected = true; + Refresh = null; + LastFailure = reason; + Audit("UPDATE REJECTED", reason); + } + void ObserveProjectile(IEntity projectileEntity, IEntity firingCharacter, bool playerGunner) { if (!projectileEntity) @@ -149,6 +177,7 @@ class ERR_MortarBattery // Only a physical projectile unlocks the next load. It must be aimed again. Released = false; AimedAt = -1; + AimValidatedAt = -1; AimSolver = null; AimSolution = null; Audit("FIRED", string.Format("physical projectile=%1 origin=%2 order shots=%3 total shots=%4 predicted impact=%5 predicted flight=%6s gunner=%7 (impact not observed)", projectileEntity, projectileEntity.GetOrigin(), OrderShots, TotalShots, Impact, FlightTime, firingCharacter)); @@ -383,6 +412,52 @@ class ERR_MortarBattery return false; } + protected void WatchActivity() + { + DetachActivity(); + if (!Activity || !CommandOpen || m_Stopped) return; + m_ObservedActivity = Activity; + m_ObservedActivityOrder = OrderId; + Activity.m_OnActionCompleted.Insert(OnActivityCompleted); + Activity.m_OnActionFailed.Insert(OnActivityFailed); + } + protected void DetachActivity() + { + if (m_ObservedActivity) + { + m_ObservedActivity.m_OnActionCompleted.Remove(OnActivityCompleted); + m_ObservedActivity.m_OnActionFailed.Remove(OnActivityFailed); + } + m_ObservedActivity = null; + m_ObservedActivityOrder = 0; + m_ActivityTerminal = EAIActionState.EVALUATED; + } + protected void OnActivityCompleted(SCR_AIActionBase action) + { + ObserveActivityTerminal(action, EAIActionState.COMPLETED); + } + protected void OnActivityFailed(SCR_AIActionBase action) + { + ObserveActivityTerminal(action, EAIActionState.FAILED); + } + protected void ObserveActivityTerminal(SCR_AIActionBase action, EAIActionState terminal) + { + if (m_Stopped || !CommandOpen || !Activity || action != Activity || action != m_ObservedActivity || OrderId != m_ObservedActivityOrder) return; + if (m_ActivityTerminal != EAIActionState.EVALUATED) return; + if (terminal != EAIActionState.COMPLETED && terminal != EAIActionState.FAILED) return; + // Vanilla deselection can overwrite COMPLETED/FAILED with EVALUATED + // before the next HQ tick. Record its actual event, never infer completion + // from projectile totals, and never cancel from inside the native callback. + m_ActivityTerminal = terminal; + Audit("ACTIVITY EVENT", string.Format("native terminal event=%1 current state=%2 captured order=%3 physical order shots=%4 total shots=%5 committed=%6", terminal, Activity.GetActionState(), m_ObservedActivityOrder, OrderShots, TotalShots, Released)); + } + protected EAIActionState ActivityTerminal() + { + if (Activity == m_ObservedActivity && OrderId == m_ObservedActivityOrder) + if (m_ActivityTerminal == EAIActionState.COMPLETED || m_ActivityTerminal == EAIActionState.FAILED) return m_ActivityTerminal; + return Activity.GetActionState(); + } + void Cancel(string reason = "cancel requested") { if (CommandOpen) @@ -391,12 +466,18 @@ class ERR_MortarBattery Audit("ORDER END", string.Format("reason=%1 observed shots=%2 shell committed=%3 elapsed=%4s last failure=%5", reason, OrderShots, Released, (GetGame().GetWorld().GetWorldTime() - OrderedAt) / 1000, LastFailure)); } CommandOpen = false; + // Remove before our own cleanup calls Complete; that is not a native + // successful fire mission and must not manufacture an observed event. + DetachActivity(); RadioOrder = null; PendingRadioReport = null; PendingSupplyReport = null; + Refresh = null; + RefreshRejected = false; if (m_Transfer) m_Transfer.Invalidate(); Report = null; AimedAt = -1; + AimValidatedAt = -1; AimSolver = null; AimSolution = null; if (Activity) @@ -451,8 +532,9 @@ class ERR_MortarBattery if (Activity) { Trace("ACTIVITY", string.Format("native state=%1", Activity.GetActionState()), string.Format("age=%1s aim age=%2s committed=%3 shots=%4", (now - OrderedAt) / 1000, (now - AimedAt) / 1000, Released, OrderShots)); - if (Activity.GetActionState() == EAIActionState.FAILED) Cancel("native artillery activity FAILED"); - else if (Activity.GetActionState() == EAIActionState.COMPLETED) Cancel("native artillery activity COMPLETED (shot count is separate)"); + EAIActionState terminal = ActivityTerminal(); + if (terminal == EAIActionState.FAILED) Cancel("native artillery activity FAILED"); + else if (terminal == EAIActionState.COMPLETED) Cancel("native artillery activity COMPLETED (shot count is separate)"); else if (now - OrderedAt > ERR_MortarSalvo.TIMEOUT_MS) Cancel("120s artillery salvo timeout"); } if (StartupActivated) @@ -468,6 +550,7 @@ class ERR_MortarBattery Released = false; UpdateCrewDetail(now, true); Activity = new SCR_AIStaticArtilleryActivity(Group.GetGroupUtilityComponent(), null, report.Position, SCR_EAIArtilleryAmmoType.HIGH_EXPLOSIVE, ERR_MortarSalvo.ROUNDS); + WatchActivity(); Group.GetGroupUtilityComponent().AddAction(Activity); Audit("AIM", string.Format("native activity created; latest source=M%1 observed=%2", report.MessageId, report.Description(now))); } diff --git a/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c b/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c index 0eda135..a457392 100644 --- a/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c +++ b/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c @@ -36,6 +36,7 @@ modded class SCR_AIGetArtilleryAimDistanceCompensation if (!battery) return super.EOnTaskSimulate(owner, dt); battery.AimedAt = -1; + battery.AimValidatedAt = -1; battery.AimSolver = null; battery.AimSolution = null; float now = GetGame().GetWorld().GetWorldTime(); @@ -54,6 +55,7 @@ modded class SCR_AIGetArtilleryAimDistanceCompensation battery.AimSolution = solution; battery.AimSolver = this; // weak: do not retain a destroyed native behavior tree battery.AimedAt = now; + battery.AimValidatedAt = now; battery.LastFailure = ""; battery.Trace("AIM SOLUTION", "ready", string.Format("predicted impact=%1 flight=%2s charge index=%3 aim target=%4 latest source=M%5", solution.Impact, solution.FlightTime, solution.Charge, solution.AimTarget, report.MessageId)); SetVariableOut(PORT_AIM_POS, solution.AimTarget); @@ -79,11 +81,39 @@ modded class SCR_AIGetArtilleryAimDistanceCompensation return system.Withhold(battery, "new ballistic solution requires native re-aim", string.Format("gun drift=%1m impact drift=%2m aim drift=%3m charge=%4/%5 flight=%6/%7s", vector.Distance(commanded.GunOrigin, updated.GunOrigin), vector.Distance(commanded.Impact, updated.Impact), vector.Distance(commanded.AimTarget, updated.AimTarget), commanded.Charge, updated.Charge, commanded.FlightTime, updated.FlightTime)); // Keep the ORIGINAL command/impact/flight. Comparing successive refreshed // solutions would allow a moving target to drift away in small increments. - battery.AimedAt = now; + battery.AimValidatedAt = now; battery.Trace("AIM REVALIDATED", "same native command", string.Format("fresh ballistic solve matched original; source=M%1 observed age=%2s", report.MessageId, (now - report.ObservedAt) / 1000)); return true; } + // The report may change only after a real HQ downlink. Re-solve against the + // ORIGINAL geometry; never replace the commanded solution with an + // approximately equivalent successor (which would permit tolerance creep). + bool ERR_AdoptReport(ERR_MortarBattery battery, ERR_MortarSystem system, ERR_HQReport report, float now) + { + IEntity gun; + ResourceName ammo; + GetVariableIn(PORT_ARTILLERY_ENTITY, gun); + GetVariableIn(PORT_AMMO_PREFAB, ammo); + ERR_MortarAimSolution commanded = battery.AimSolution; + if (battery.Released || battery.RefreshRejected || !battery.CommandOpen || !battery.Refresh || !battery.Refresh.DeliveredFor(battery, report)) + return system.Withhold(battery, "target update lacks completed delivery for this uncommitted order"); + if (battery.AimSolver != this || !commanded || !commanded.Matches(battery, battery.Report) || gun != battery.Gun || ammo != ERR_MortarBattery.SHELL) + return system.Withhold(battery, "target update lost its original native aim owner"); + if (battery.AimedAt < 0 || now < battery.AimedAt) return system.Withhold(battery, "original native aim timestamp invalid"); + if (!ERR_MortarRefreshRules.Newer(battery.Report, report, now)) return system.Withhold(battery, "target update is not a newer fresh same-target observation"); + ERR_MortarAimSolution updated = ERR_Solve(battery, system, report, now); + if (!updated) return false; + if (!ERR_MortarAimRules.Equivalent(commanded.Charge, updated.Charge, commanded.GunOrigin, updated.GunOrigin, commanded.Impact, updated.Impact, commanded.AimTarget, updated.AimTarget, commanded.FlightTime, updated.FlightTime)) + return system.Withhold(battery, "target update requires a different native aim command"); + // Synchronous adoption changes accepted observation identity together. + // Original command time/geometry, order deadline and shot count survive. + commanded.Report = report; + battery.Report = report; + battery.AimValidatedAt = now; + return true; + } + protected ERR_MortarAimSolution ERR_Solve(ERR_MortarBattery battery, ERR_MortarSystem system, ERR_HQReport report, float now) { IEntity gun = battery.Gun; @@ -257,12 +287,13 @@ modded class SCR_AIStaticArtilleryBehavior_ShootingLogic // so repeated pending ticks cannot count the same projectile twice. if (battery.OrderShots < ERR_MortarSalvo.ROUNDS) { - ERR_MortarSupplyState supply = battery.SupplyState(GetGame().GetWorld().GetWorldTime()); + float now = GetGame().GetWorld().GetWorldTime(); + ERR_MortarSupplyState supply = battery.SupplyState(now); if (supply == ERR_MortarSupplyState.PENDING) return ENodeResult.RUNNING; if (supply == ERR_MortarSupplyState.FAILED) { ERR_MortarSystem system = ERR_MortarSystem.Get(); - if (system) system.Withhold(battery, "next native load lacks confirmed physical gunner ammunition"); + if (system) system.Withhold(battery, system.SupplyFailure(battery, now)); return ENodeResult.FAIL; } } diff --git a/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c b/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c new file mode 100644 index 0000000..f0e68c5 --- /dev/null +++ b/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c @@ -0,0 +1,37 @@ +// One newer observation in transit for one existing physical firing order. +// The report's observed time survives both radio legs unchanged. +class ERR_MortarRefresh +{ + IEntity Gun; + SCR_AIGroup Group; + int OrderId; + int RadioId; + ref ERR_HQReport Report; + ref ERR_HQRoute Route; + + void ERR_MortarRefresh(ERR_MortarBattery battery, ERR_HQReport report, ERR_HQRoute route) + { + Gun = battery.Gun; + Group = battery.Group; + OrderId = battery.OrderId; + RadioId = route.MessageId; + Report = report.Snapshot(); + Route = route; + } + bool Owns(ERR_MortarBattery battery) + { + return battery && Gun && Group && Gun == battery.Gun && Group == battery.Group && OrderId == battery.OrderId; + } + bool DeliveredFor(ERR_MortarBattery battery, ERR_HQReport report) + { + return !Route && Report && Report == report && Owns(battery); + } +} + +class ERR_MortarRefreshRules +{ + static bool Newer(ERR_HQReport current, ERR_HQReport incoming, float now) + { + return current && incoming && current.Target && incoming.Target == current.Target && incoming.MessageId > 0 && incoming.MessageId != current.MessageId && incoming.ObservedAt > current.ObservedAt && ERR_MortarPrediction.Fresh(incoming, now); + } +} diff --git a/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c b/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c index 6952aea..cd9bc17 100644 --- a/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c +++ b/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c @@ -7,6 +7,7 @@ class ERR_MortarSystem protected bool m_Prepared; protected bool m_Stopped; protected float m_NextDecision; + protected float m_NextRefreshDecision; string SafetyReason; string SettlementReason; @@ -89,6 +90,13 @@ class ERR_MortarSystem if (!battery.Report) return "no delivered target report"; return "delivered target report expired or invalid"; } + // Classify only after SupplyState has observed any accepted inventory move. + // Report expiry must not be mislabeled as physical ammunition depletion. + string SupplyFailure(ERR_MortarBattery battery, float now) + { + if (!Latest(battery, now)) return ContactFailure(battery); + return "next native load lacks confirmed physical gunner ammunition"; + } bool OutsideSettlements(vector impact) { bool clear = m_Settlements.OutsideSettlements(impact); @@ -134,13 +142,15 @@ class ERR_MortarSystem float now = GetGame().GetWorld().GetWorldTime(); if (m_Stopped || !ERR_HQ.MissionActive()) return Withhold(battery, "mission inactive or HQ stopped"); if (!battery.Operational()) return Withhold(battery, battery.OperationalReason()); + if (battery.RefreshRejected) return Withhold(battery, "target update failed; order awaiting cancellation"); if (!battery.CommandOpen || battery.OrderShots >= ERR_MortarSalvo.ROUNDS) return Withhold(battery, "salvo complete or order closed"); if (battery.Released) return Withhold(battery, "waiting for committed projectile"); if (battery.AimedShot != battery.OrderShots || battery.AimedAt < 0 || now < battery.AimedAt) return Withhold(battery, "fresh aim solution required"); ERR_HQReport report = Latest(battery, now); if (!report) return Withhold(battery, ContactFailure(battery)); if (!battery.AimSolution || !battery.AimSolution.Matches(battery, report)) return Withhold(battery, "aim command does not match delivered order"); - if (now - battery.AimedAt > 10000) + if (battery.AimValidatedAt < battery.AimedAt || now < battery.AimValidatedAt) return Withhold(battery, "aim validation timestamp invalid"); + if (now - battery.AimValidatedAt > 10000) { if (!battery.AimSolver) return Withhold(battery, "original native aim solver no longer available"); if (!battery.AimSolver.ERR_RevalidateAim(battery, this, report, now)) return false; @@ -190,12 +200,84 @@ class ERR_MortarSystem battery.Order(ready, now); } + protected void AdvanceRefresh(ERR_MortarBattery battery, float now) + { + ERR_MortarRefresh update = battery.Refresh; + if (!update) return; + // A stale transaction must not cancel or modify a later order. + if (update.OrderId != battery.OrderId || !battery.CommandOpen) + { + battery.Refresh = null; + return; + } + if (!update.Owns(battery) || !battery.Operational() || !battery.Activity || !ERR_MortarRefreshRules.Newer(battery.Report, update.Report, now)) + { + battery.RejectRefresh("target update ownership, observation freshness or activity changed"); + return; + } + if (update.Route) + { + int state = update.Route.Advance(now, m_HQ.Journal()); + if (state == 0) return; + if (state < 0) + { + battery.RejectRefresh("new target observation failed physical HQ radio delivery"); + return; + } + update.Route = null; + } + // The original committed shell owns its report, geometry and airspace until + // native OnWeaponFired confirms it. A delivered update cannot relabel it. + if (battery.Released) return; + if (battery.AimSolution) + { + if (!battery.AimSolver || !battery.AimSolver.ERR_AdoptReport(battery, this, update.Report, now)) + { + battery.RejectRefresh("delivered update cannot preserve the original native aim command"); + return; + } + } + else + { + // No barrel command exists for the next shell yet. Its normal native aim + // node must solve this report; receiving it is not an aim authorization. + battery.Report = update.Report; + } + battery.Audit("UPDATE RECEIVED", string.Format("same order; update radio=M%1 accepted observation=M%2 observed=%3; shots=%4 original aim time=%5", update.RadioId, update.Report.MessageId, update.Report.ObservedAt, battery.OrderShots, battery.AimedAt)); + battery.Refresh = null; + } + + protected void QueueRefreshes(float now) + { + if (now < m_NextRefreshDecision) return; + m_NextRefreshDecision = now + 5000; + array reports = {}; + m_HQ.SupportContacts(reports, now); + foreach (ERR_MortarBattery battery : m_Batteries) + { + ERR_HQReport newest; + foreach (ERR_HQReport report : reports) + { + if (!battery.CanRefresh(report, now)) continue; + if (!newest || report.ObservedAt > newest.ObservedAt) newest = report; + } + if (!newest) continue; + ERR_HQRoute route = m_HQ.Downlink(battery.Group, "MORTAR UPDATE", newest.Description(now), newest.MessageId); + if (!route) + { + battery.RejectRefresh("HQ has a newer observation but no physical downlink to the active battery"); + continue; + } + battery.BeginRefresh(newest, route, now); + } + } + void Tick(float now) { if (m_Stopped || !Replication.IsServer()) return; foreach (ERR_MortarBattery battery : m_Batteries) { - if (battery.Rejected && !battery.Released) + if ((battery.Rejected || battery.RefreshRejected) && !battery.Released) { battery.Cancel("native aim or firing authorization rejected"); battery.NextOrder = now + 10000; @@ -203,7 +285,9 @@ class ERR_MortarSystem battery.Rejected = false; battery.Update(now); AdvanceOrder(battery, now); + AdvanceRefresh(battery, now); } + QueueRefreshes(now); if (now < m_NextDecision) return; m_NextDecision = now + 10000; array reports = {}; diff --git a/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c b/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c index e9dde5e..8f3c5dc 100644 --- a/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c +++ b/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c @@ -57,6 +57,10 @@ modded class ERR_MortarBattery class ERR_NativeMortarEvidenceRules { + static bool AimFresh(float commandedAt, float validatedAt, float now) + { + return commandedAt >= 0 && now >= commandedAt && validatedAt >= commandedAt && now >= validatedAt && now - validatedAt <= 10000; + } static bool CommitFresh(float observed, float expectedObserved, float committed) { return observed == expectedObserved && observed >= 0 && committed >= observed && committed - observed <= ERR_MortarPrediction.MAX_REPORT_AGE_MS; @@ -197,7 +201,7 @@ class ERR_NativeMortarFiringProbe void NativeCommit(ERR_MortarBattery battery, float now) { if (m_Stopped || battery != m_Battery) return; - if ((m_Step != 1 && m_Step != 3) || m_CommitPending || !battery.CommandOpen || !battery.Released || battery.SourceId != m_Source || battery.OrderId != m_Order || !battery.Report || battery.Report.MessageId != m_Source || !ERR_NativeMortarEvidenceRules.CommitFresh(battery.Report.ObservedAt, m_ObservedAt, now) || battery.AimedAt < 0 || now < battery.AimedAt || now - battery.AimedAt > 10000 || battery.FlightTime <= 0) + if ((m_Step != 1 && m_Step != 3) || m_CommitPending || !battery.CommandOpen || !battery.Released || battery.SourceId != m_Source || battery.OrderId != m_Order || !battery.Report || battery.Report.MessageId != m_Source || !ERR_NativeMortarEvidenceRules.CommitFresh(battery.Report.ObservedAt, m_ObservedAt, now) || !ERR_NativeMortarEvidenceRules.AimFresh(battery.AimedAt, battery.AimValidatedAt, now) || battery.FlightTime <= 0) { m_BadProjectile = true; m_BadReason = "physical commit lacks immutable fresh report/current order/native aim, or duplicates pending commit"; return; } m_CommitPending = true; m_CommittedAt = now; m_CommitOrder = battery.OrderId; m_CommitShot = battery.OrderShots; m_Commits++; PrintFormat("ERR MORTAR FIXTURE COMMIT: count=%1 order=%2 shot=%3 source=M%4 observedAge=%5; recorded before native inventory transfer", m_Commits, m_CommitOrder, m_CommitShot, m_Source, now - m_ObservedAt); diff --git a/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c b/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c new file mode 100644 index 0000000..cbc0d66 --- /dev/null +++ b/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c @@ -0,0 +1,476 @@ +#ifdef WORKBENCH +// Explicit synthetic observation only. Delivery, HQ scheduling and native fire +// are unchanged; this helper never writes directly into the HQ contact list. +modded class ERR_HQ +{ + int ERR_QueueMortarRefreshReport(SCR_AIGroup source, IEntity radio, IEntity target, vector position, out float observedAt) + { + observedAt = -1; + if (!ERR_NativeMortarSalvoProbe.RefreshEnabled() || !target || !radio || ERR_HQRadio.Capability(radio) != 2) return 0; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != source || !unit.ReservedForSupport || unit.Radio != radio || unit.Uplink || unit.PendingReport || unit.PendingSupplyStatus) continue; + ERR_HQRoute route = m_Network.Route(radio); + if (!route || route.Nodes.IsEmpty()) return 0; + observedAt = GetGame().GetWorld().GetWorldTime(); + ERR_HQReport report = new ERR_HQReport(); + report.MessageId = m_Journal.Message(); report.Target = target; report.Source = source; + report.Position = position; report.ObservedAt = observedAt; report.DetailsObservedAt = observedAt; + report.HasVelocity = true; report.Velocity = vector.Zero; + report.TravelMode = "on foot"; report.SeenEscapists = 1; report.SeenWeapons = "fixture observation"; + route.MessageId = report.MessageId; route.Payload = "NEW EXPLICIT SYNTHETIC OBSERVATION: " + report.Description(observedAt); + unit.PendingReport = report; unit.Uplink = route; + m_Journal.Write("FIXTURE REPORT", route.Payload, report.MessageId); + return report.MessageId; + } + return 0; + } + int ERR_QueueMortarSalvoReport(SCR_AIGroup source, IEntity target, vector position, float now) + { + if (!ERR_NativeMortarSalvoProbe.Enabled() || !target || !m_Contacts.IsEmpty()) return 0; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != source || !unit.ReservedForSupport || !unit.Radio || unit.Uplink || unit.PendingReport) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio); + if (!route || route.Nodes.IsEmpty()) return 0; + ERR_HQReport report = new ERR_HQReport(); + report.MessageId = m_Journal.Message(); report.Target = target; report.Source = source; + report.Position = position; report.ObservedAt = now; report.DetailsObservedAt = now; + report.HasVelocity = true; report.Velocity = vector.Zero; + report.TravelMode = "on foot"; report.SeenEscapists = 1; report.SeenWeapons = "fixture observation"; + route.MessageId = report.MessageId; route.Payload = "EXPLICIT SYNTHETIC OBSERVATION: " + report.Description(now); + unit.PendingReport = report; unit.Uplink = route; + m_Journal.Write("FIXTURE REPORT", route.Payload, report.MessageId); + return report.MessageId; + } + return 0; + } + void ERR_RemoveMortarSalvoReport(IEntity target) + { + if (!target) return; + for (int i = m_Contacts.Count() - 1; i >= 0; i--) + if (m_Contacts[i].Target == target) m_Contacts.Remove(i); + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.PendingReport && unit.PendingReport.Target == target) { unit.PendingReport = null; unit.Uplink = null; } + if ((unit.PendingOrder && unit.PendingOrder.Target == target) || (unit.Assignment && unit.Assignment.Target == target)) unit.Release(); + } + } +} + +// Production sets Released immediately before reserving shell airspace, then +// invokes native inventory transfer. Observe that existing commit boundary so +// even a synchronous native projectile has a prior recorded authorization. +modded class ERR_MortarBattery +{ + override void Audit(string kind, string detail) + { + super.Audit(kind, detail); + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeAudit(this, kind); + } + override void ReserveShellAirspace(float now) + { + super.ReserveShellAirspace(now); + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeCommit(this, now); + } + override void Cancel(string reason = "cancel requested") + { + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeClosing(this, reason, LastFailure); + super.Cancel(reason); + } +} + +// Exact completion is separate from native activity success or accepted loading. +class ERR_NativeMortarSalvoRules +{ + static bool Complete(int events, int commits, int total, int orderShots, int shells, bool pending) + { + return events == ERR_MortarSalvo.ROUNDS && commits == events && total == events && orderShots == events && shells == 27 - events && !pending; + } + static bool QueueUpdate(bool accepted, bool pending, int shots, float observedAt, float orderedAt, float now) + { + return accepted && !pending && shots < ERR_MortarSalvo.ROUNDS / 2 && now >= observedAt + 20000 && orderedAt >= 0 && now >= orderedAt && now - orderedAt < 90000; + } +} + +class ERR_NativeMortarRefreshRecord +{ + int MessageId; + float ObservedAt; + int DownlinkId; + bool Accepted; + ref ERR_HQReport Delivered; + + bool Matches(ERR_HQReport report, IEntity target, SCR_AIGroup group, vector position) + { + if (!report || report.MessageId != MessageId || report.ObservedAt != ObservedAt || report.Target != target || report.Source != group) return false; + return vector.Distance(report.Position, position) < 0.01 && report.HasVelocity && report.Velocity.Length() < 0.001 && !report.Distress; + } +} + +// Observe only the actual native event. Node SUCCESS, accepted inventory moves +// and committed shell loading are never counted as physical projectiles. +modded class SCR_MortarMuzzleComponent +{ + override void OnWeaponFired(IEntity effectEntity, BaseMuzzleComponent muzzle, IEntity projectileEntity) + { + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeProjectile(GetOwner(), projectileEntity); + super.OnWeaponFired(effectEntity, muzzle, projectileEntity); + } +} + +class ERR_NativeMortarSalvoProbe +{ + protected static ERR_NativeMortarSalvoProbe s_Active; + protected ERR_GameMode m_Mode; + protected ERR_MortarBattery m_Battery; + protected IEntity m_Gun; + protected SCR_AIGroup m_Group; + protected IEntity m_Target; + protected vector m_Impact; + protected ref array m_Crew = {}; + protected ref array m_InitialShells = {}; + protected ref array m_Projectiles = {}; + protected int m_Source; + protected int m_Order; + protected int m_Step; + protected int m_Events; + protected int m_StoppedShells; + protected float m_Deadline; + protected float m_NextDiagnostic; + protected float m_StopUntil; + protected float m_ObservedAt; + protected ref ERR_HQReport m_Delivered; + protected bool m_RefreshCase; + protected IEntity m_OriginalRTO; + protected SCR_AIStaticArtilleryActivity m_OriginalActivity; + protected ref array m_Observations = {}; + protected int m_UpdatesAccepted; + protected int m_UpdatedCommits; + protected int m_CommitSource; + protected float m_CommitObservedAt; + protected bool m_CommitPending; + protected float m_CommittedAt; + protected int m_CommitOrder; + protected int m_CommitShot; + protected int m_Commits; + protected bool m_ClosureSeen; + protected bool m_ClosureComplete; + protected bool m_Unsafe; + protected bool m_BadProjectile; + protected bool m_SawUplink; + protected bool m_SawDownlink; + protected bool m_SawActivity; + protected bool m_Stopped; + protected string m_BadReason; + + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && (outcome == "mortar-salvo" || outcome == "mortar-refresh"); + } + static bool RefreshEnabled() + { + string outcome; + return Enabled() && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "mortar-refresh"; + } + static ERR_NativeMortarSalvoProbe Active() { return s_Active; } + void ERR_NativeMortarSalvoProbe(ERR_GameMode mode) + { + m_Mode = mode; + m_RefreshCase = RefreshEnabled(); + m_Deadline = GetGame().GetWorld().GetWorldTime() + 180000; + if (Enabled() && !s_Active) s_Active = this; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mortar salvo " + detail); return true; } + Print("ERR SMOKE FAIL: mortar salvo " + detail, LogLevel.ERROR); Stop(); return false; + } + protected void Shells(out array shells) + { + shells.Clear(); + foreach (IEntity actor : m_Crew) + { + if (!actor) continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + array items = {}; ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL && !shells.Contains(item)) shells.Insert(item); + } + } + protected bool CheckNoOccupants(IEntity entity) + { + if (ChimeraCharacter.Cast(entity) || Vehicle.Cast(entity)) { m_Unsafe = true; return false; } + return true; + } + protected bool EmptyImpact(vector position) + { + m_Unsafe = false; + GetGame().GetWorld().QueryEntitiesByAABB(position - "200 5000 200", position + "200 5000 200", CheckNoOccupants, null, EQueryEntitiesFlags.ALL); + return !m_Unsafe; + } + protected bool SelectImpact(ERR_MortarSystem system) + { + // Bounded candidate survey: no clearance assumption from coordinates alone. + array offsets = {"-800 0 -600", "-600 0 -800", "0 0 -1000", "600 0 -800", "-1000 0 0", "800 0 -600", "-800 0 600", "0 0 1000"}; + foreach (vector offset : offsets) + { + vector candidate = ERR_Actors.Ground(m_Battery.Position + offset); + if (candidate[1] < 1 || !EmptyImpact(candidate) || !system.Safe(m_Battery, candidate, 75)) continue; + bool clear = true; + for (int shot = 0; shot < ERR_MortarSalvo.ROUNDS; shot++) + { + vector spread = ERR_Actors.Ground(candidate + ERR_MortarSalvo.Offset(m_Battery.SiteId, m_Battery.OrderId + 1, shot)); + if (!system.Safe(m_Battery, spread, 75)) { clear = false; break; } + } + if (!clear) continue; + m_Impact = candidate; + PrintFormat("ERR MORTAR SALVO IMPACT: position=%1 batteryDistance=%2; no characters/vehicles in 400m square; production settlement/friendly exclusions passed", candidate, vector.DistanceXZ(candidate, m_Battery.Position)); + return true; + } + return false; + } + protected void Diagnose(float now) + { + if (now < m_NextDiagnostic) return; + m_NextDiagnostic = now + 5000; + if (!m_Battery) { Print("ERR MORTAR SALVO: waiting for one authored battery"); return; } + PrintFormat("ERR MORTAR SALVO: step=%1 startup=%2 source=M%3 observedEvents=%4 ready=%5 failure=%6", m_Step, m_Battery.StartupActivated, m_Source, m_Events, m_Battery.Operational(), m_Battery.SpawnFailure); + m_Battery.SiteStatus(now); + } + protected ERR_NativeMortarRefreshRecord FindObservation(int messageId) + { + foreach (ERR_NativeMortarRefreshRecord observation : m_Observations) + if (observation.MessageId == messageId) return observation; + return null; + } + protected bool AddObservation(int messageId, float observedAt) + { + if (messageId <= 0 || observedAt < 0 || FindObservation(messageId) || m_Observations.Count() >= 8) return false; + if (!m_Observations.IsEmpty() && observedAt <= m_Observations[m_Observations.Count() - 1].ObservedAt) return false; + ERR_NativeMortarRefreshRecord record = new ERR_NativeMortarRefreshRecord(); + record.MessageId = messageId; record.ObservedAt = observedAt; + m_Observations.Insert(record); + PrintFormat("ERR MORTAR REFRESH OBSERVATION: source=M%1 actualObservedAt=%2 originalRTO=%3 synthetic stationary inert target; awaiting actual uplink and HQ downlink", messageId, observedAt, m_OriginalRTO); + return true; + } + protected bool ReportKnown(ERR_HQReport report, bool accepted = true) + { + if (!report) return false; + if (!m_RefreshCase) return report.MessageId == m_Source && report.ObservedAt == m_ObservedAt; + ERR_NativeMortarRefreshRecord record = FindObservation(report.MessageId); + return record && (!accepted || record.Accepted) && record.Matches(report, m_Target, m_Group, m_Impact); + } + protected bool AllAccepted() + { + if (!m_RefreshCase) return true; + if (m_Observations.Count() < 2 || m_UpdatesAccepted != m_Observations.Count() - 1 || m_UpdatedCommits < 1) return false; + foreach (ERR_NativeMortarRefreshRecord record : m_Observations) + if (!record.Accepted || !record.Delivered || record.DownlinkId <= 0) return false; + return true; + } + protected bool NoReportReplay(float now) + { + if (!m_RefreshCase) return m_Delivered && !m_Battery.CanRequest(m_Delivered, now); + if (!AllAccepted()) return false; + foreach (ERR_NativeMortarRefreshRecord record : m_Observations) + if (m_Battery.CanRequest(record.Delivered, now)) return false; + return true; + } + // Observational only: never stop/cancel inside production's current call. + void NativeAudit(ERR_MortarBattery battery, string kind) + { + if (!m_RefreshCase || m_Stopped || battery != m_Battery || m_Source <= 0) return; + if (kind == "AIM") + { + if (m_OriginalActivity || !battery.Activity || !m_SawDownlink || battery.SourceId != m_Source || battery.OrderId != m_Order || !ReportKnown(battery.Report, false)) + { m_BadProjectile = true; m_BadReason = "initial native activity does not match recorded report/downlink or was recreated"; return; } + m_OriginalActivity = battery.Activity; m_SawActivity = true; + ERR_NativeMortarRefreshRecord initial = FindObservation(m_Source); + initial.Accepted = true; initial.Delivered = battery.Report.Snapshot(); + m_Delivered = initial.Delivered; + return; + } + if (kind != "UPDATE QUEUED" && kind != "UPDATE RECEIVED") return; + ERR_MortarRefresh update = battery.Refresh; + if (!update || !update.Owns(battery) || battery.OrderId != m_Order || battery.Activity != m_OriginalActivity || !ReportKnown(update.Report, false)) + { m_BadProjectile = true; m_BadReason = "update lost recorded observation or original gun/group/order/activity"; return; } + ERR_NativeMortarRefreshRecord record = FindObservation(update.Report.MessageId); + if (kind == "UPDATE QUEUED") + { + if (record.DownlinkId != 0 || record.Accepted || !update.Route || !update.Route.Downlink || update.Route.Nodes.IsEmpty() || update.Route.MessageId != update.RadioId) + { m_BadProjectile = true; m_BadReason = "refresh downlink was missing, duplicated or already accepted"; return; } + record.DownlinkId = update.RadioId; + return; + } + if (record.Accepted || record.DownlinkId != update.RadioId || update.Route || battery.Released || battery.Report != update.Report || !ReportKnown(battery.Report, false)) + { m_BadProjectile = true; m_BadReason = "refresh acceptance lacks its completed route or overwrites committed shell"; return; } + record.Accepted = true; record.Delivered = battery.Report.Snapshot(); m_UpdatesAccepted++; + m_Delivered = record.Delivered; + PrintFormat("ERR MORTAR REFRESH ACCEPTED: source=M%1 observedAt=%2 downlink=M%3 sameOrder=%4 originalActivity=%5", record.MessageId, record.ObservedAt, record.DownlinkId, battery.OrderId, battery.Activity == m_OriginalActivity); + } + void NativeCommit(ERR_MortarBattery battery, float now) + { + if (m_Stopped || battery != m_Battery) return; + if (m_RefreshCase && (!m_OriginalActivity || battery.Activity != m_OriginalActivity)) + { m_BadProjectile = true; m_BadReason = "refreshed commit requires the original unchanged native activity"; return; } + if (m_Commits >= ERR_MortarSalvo.ROUNDS || battery.OrderShots != m_Commits) + { m_BadProjectile = true; m_BadReason = "commit count or physical shot sequence exceeds configured finite salvo"; return; } + if (m_Step != 1 || m_CommitPending || !battery.CommandOpen || !battery.Released || battery.SourceId != m_Source || battery.OrderId != m_Order || !ReportKnown(battery.Report) || !ERR_NativeMortarEvidenceRules.CommitFresh(battery.Report.ObservedAt, battery.Report.ObservedAt, now) || !ERR_NativeMortarEvidenceRules.AimFresh(battery.AimedAt, battery.AimValidatedAt, now) || battery.FlightTime <= 0) + { m_BadProjectile = true; m_BadReason = "physical commit lacks immutable fresh report/current order/native aim, or duplicates pending commit"; return; } + m_CommitPending = true; m_CommittedAt = now; m_CommitOrder = battery.OrderId; m_CommitShot = battery.OrderShots; m_Commits++; + m_CommitSource = battery.Report.MessageId; m_CommitObservedAt = battery.Report.ObservedAt; + if (m_RefreshCase && m_CommitSource != m_Source) m_UpdatedCommits++; + PrintFormat("ERR MORTAR SALVO COMMIT: count=%1 order=%2 shot=%3 acceptedSource=M%4 observedAge=%5 commandAge=%6 validationAge=%7; recorded before native inventory transfer", m_Commits, m_CommitOrder, m_CommitShot, m_CommitSource, now - m_CommitObservedAt, now - battery.AimedAt, now - battery.AimValidatedAt); + } + void NativeClosing(ERR_MortarBattery battery, string reason, string failure) + { + if (m_Stopped || battery != m_Battery || !battery.CommandOpen || battery.SourceId != m_Source || m_Source <= 0) return; + m_ClosureSeen = true; + m_ClosureComplete = battery.OrderShots == ERR_MortarSalvo.ROUNDS && m_Events == ERR_MortarSalvo.ROUNDS && !m_CommitPending && m_Commits == m_Events; + PrintFormat("ERR MORTAR SALVO CLOSURE: order=%1 reason=%2 lastFailure=%3 events=%4 commits=%5 complete=%6", battery.OrderId, reason, failure, m_Events, m_Commits, m_ClosureComplete); + if (battery.Stopped() || battery.OrderId != m_Order || !m_ClosureComplete || !AllAccepted() || reason != "native artillery activity COMPLETED (shot count is separate)") + { m_BadProjectile = true; m_BadReason = "full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success"; } + if (m_RefreshCase && (battery.Activity != m_OriginalActivity || battery.Refresh || battery.RefreshRejected)) + { m_BadProjectile = true; m_BadReason = "natural completion cannot leave a refresh pending or replace original activity"; } + } + void NativeProjectile(IEntity gun, IEntity projectile) + { + if (m_Stopped || !m_Battery || gun != m_Gun) return; + if (!projectile) { m_BadProjectile = true; m_BadReason = "native fired event has no physical projectile"; return; } + if (m_Projectiles.Contains(projectile)) { m_BadProjectile = true; m_BadReason = "same physical projectile observed twice"; return; } + m_Projectiles.Insert(projectile); m_Events++; + float now = GetGame().GetWorld().GetWorldTime(); + if (m_Step != 1 || !m_Battery.Released || m_Battery.SourceId != m_Source || !ERR_NativeMortarEvidenceRules.EventBound(m_CommitPending, m_CommitOrder, m_Battery.OrderId, m_CommitShot, m_Battery.OrderShots, m_CommittedAt, now)) + { m_BadProjectile = true; m_BadReason = "projectile lacks the recorded fresh physical commit for its current order/shot"; } + if (!m_Battery.Report || m_Battery.Report.MessageId != m_CommitSource || m_Battery.Report.ObservedAt != m_CommitObservedAt) + { m_BadProjectile = true; m_BadReason = "committed shell was relabelled with another report before native emission"; } + m_CommitPending = false; + PrintFormat("ERR MORTAR SALVO PROJECTILE: event=%1 entity=%2 origin=%3 order=%4 acceptedSource=M%5 aimAge=%6 flight=%7; impact is not measured", m_Events, projectile, projectile.GetOrigin(), m_Battery.OrderId, m_CommitSource, now - m_Battery.AimedAt, m_Battery.FlightTime); + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (!Enabled() || s_Active != this || !m_Mode || !m_Mode.Active()) { Check(false, "explicit active fixture context retained"); return -1; } + ERR_HQ hq = ERR_HQ.Get(); + ERR_MortarSystem system; + if (hq) system = hq.Mortars(); + if (!system) { Check(false, "real HQ mortar service available"); return -1; } + if (!m_Battery) + { + array guns = {}; system.AppendGuns(guns); + if (guns.Count() == 1) { m_Gun = guns[0]; m_Battery = system.FindGun(m_Gun); if (m_Battery) m_Group = m_Battery.Group; } + } + Diagnose(now); + if (now >= m_Deadline) { Check(false, "bounded deadline; inspect readiness/route/activity/aim diagnostics"); return -1; } + if (m_BadProjectile) { Check(false, m_BadReason); return -1; } + if (!m_Battery) return 0; + if (!m_Battery.SpawnFailure.IsEmpty()) { Check(false, "battery startup failed: " + m_Battery.SpawnFailure); return -1; } + if (m_Step == 0) + { + if (!m_Battery.StartupActivated || !m_Battery.Operational() || !hq.MortarConnected(m_Battery.Group)) return 0; + m_Group = m_Battery.Group; + if (!Check(m_Group && m_Group.IsExpandComplete() && m_Group.GetAgentsCount() == 4 && m_Battery.TotalShots == 0 && m_Battery.OrderId == 0 && !m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder, "untasked original gun and complete four-person crew start without shots")) return -1; + array agents = {}; m_Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + IEntity actor; if (agent) actor = agent.GetControlledEntity(); + if (!Check(ERR_Actors.CanFight(actor) && !m_Crew.Contains(actor), "initial physical crew member is conscious and unique")) return -1; + m_Crew.Insert(actor); + } + if (!Check(m_Battery.RadioOperator && ERR_HQRadio.Capability(m_Battery.RadioOperator) == 2, "dedicated actual manpack supplies the radio route")) return -1; + m_OriginalRTO = m_Battery.RadioOperator; + Shells(m_InitialShells); + if (!Check(m_InitialShells.Count() == 27 && m_Battery.CountShells() == 27, "exactly 27 distinct physical initial HE shells")) return -1; + if (!Check(SelectImpact(system), "bounded candidate survey finds an unoccupied production-safe impact area")) return -1; + m_Target = ERR_Actors.Spawn(ERR_Resources.IntelFolder(), m_Impact); + if (!Check(m_Target != null, "fixture-owned inert report identity exists; no enemy perception is claimed")) return -1; + if (m_RefreshCase) m_Source = hq.ERR_QueueMortarRefreshReport(m_Group, m_OriginalRTO, m_Target, m_Impact, m_ObservedAt); + else { m_Source = hq.ERR_QueueMortarSalvoReport(m_Group, m_Target, m_Impact, now); m_ObservedAt = now; } + if (!Check(m_Source > 0, "synthetic observation enters actual existing radio uplink once")) return -1; + if (m_RefreshCase && !Check(AddObservation(m_Source, m_ObservedAt), "first actual-clock observation recorded without replacement")) return -1; + m_SawUplink = true; m_Deadline = now + ERR_MortarSalvo.TIMEOUT_MS + 35000; m_Step = 1; return 0; + } + if (m_Battery.Stopped()) { Check(false, "battery must remain running throughout full salvo and replay observation"); return -1; } + if (m_Battery.Report && !ReportKnown(m_Battery.Report)) { Check(false, "delivered report identity and original observation timestamp remain immutable and accepted"); return -1; } + if (m_Battery.Gun != m_Gun || m_Battery.Group != m_Group) { Check(false, "original gun and crew identity retained"); return -1; } + if (m_RefreshCase && (m_Battery.RadioOperator != m_OriginalRTO || (m_OriginalActivity && m_Battery.Activity && m_Battery.Activity != m_OriginalActivity))) + { Check(false, "refreshes preserve original RTO and native activity"); return -1; } + if (!EmptyImpact(m_Impact)) { Check(false, "impact exclusion stays unoccupied before native firing/cancellation"); return -1; } + array remaining = {}; Shells(remaining); + foreach (IEntity item : remaining) + if (!m_InitialShells.Contains(item)) { Check(false, "no replacement HE shell appears after initialization"); return -1; } + if (m_Battery.OrderId > 1 || (m_Battery.SourceId != 0 && m_Battery.SourceId != m_Source)) { Check(false, "one unchanged fixture source creates only one HQ order"); return -1; } + if (m_Events > ERR_MortarSalvo.ROUNDS || m_Battery.TotalShots > ERR_MortarSalvo.ROUNDS) { Check(false, "physical event count never exceeds configured salvo"); return -1; } + if (m_Step == 1) + { + if (m_Battery.RadioOrder && m_Battery.SourceId == m_Source) + { + m_SawDownlink = true; m_Order = m_Battery.OrderId; + if (m_RefreshCase) + { + ERR_NativeMortarRefreshRecord first = FindObservation(m_Source); + if (!first || first.DownlinkId == 0) + { + if (!Check(first && m_Battery.RadioOrder.Downlink && !m_Battery.RadioOrder.Nodes.IsEmpty(), "initial order traverses actual nonempty HQ downlink")) return -1; + first.DownlinkId = m_Battery.RadioOrder.MessageId; + } + } + } + if (m_Battery.Activity && m_Battery.Report && m_Battery.Report.MessageId == m_Source) + { + m_SawActivity = true; + if (!m_Delivered) m_Delivered = m_Battery.Report.Snapshot(); + } + if (m_RefreshCase && m_Battery.CommandOpen && m_Battery.Activity && !m_Observations.IsEmpty()) + { + ERR_NativeMortarRefreshRecord latest = m_Observations[m_Observations.Count() - 1]; + if (ERR_NativeMortarSalvoRules.QueueUpdate(latest.Accepted, m_Battery.Refresh != null, m_Battery.OrderShots, latest.ObservedAt, m_Battery.OrderedAt, now)) + { + float observed; + int messageId = hq.ERR_QueueMortarRefreshReport(m_Group, m_OriginalRTO, m_Target, m_Impact, observed); + if (!Check(messageId > 0 && AddObservation(messageId, observed), "next distinct actual-clock synthetic observation queued only after previous acceptance")) return -1; + } + } + if (m_Battery.CommandOpen || m_Battery.Activity) return 0; + if (!m_ClosureSeen) return 0; + if (!Check(m_ClosureComplete && m_SawUplink && m_SawDownlink && m_SawActivity && m_Order == 1, "one real uplink/downlink and native activity naturally complete the entire configured salvo")) return -1; + if (m_RefreshCase && !Check(AllAccepted(), "every queued update was accepted under the same order before closure and at least one updated report authorized a commit")) return -1; + if (!Check(ERR_NativeMortarSalvoRules.Complete(m_Events, m_Commits, m_Battery.TotalShots, m_Battery.OrderShots, remaining.Count(), m_CommitPending) && m_Battery.CountShells() == remaining.Count(), "exact configured native projectiles equal fresh commits and missing original inventory shells")) return -1; + if (!Check(NoReportReplay(now), "all delivered messages are ineligible for a second request after completion")) return -1; + if (!Check(!m_Battery.RadioOrder && !m_Battery.Report && !m_Battery.PendingRadioReport && !m_Battery.PendingSupplyReport && !m_Battery.SupplyPending() && !m_Battery.Released && !m_Battery.Refresh, "natural completion clears command, routes, loading and projectile reservation")) return -1; + // Keep the unchanged HQ contact, battery and scheduler alive. This exceeds + // the normal 20-second post-dispatch decision interval without forging time. + m_StoppedShells = remaining.Count(); m_StopUntil = now + 25000; m_Deadline = m_StopUntil + 2000; m_Step = 2; + return 0; + } + if (m_Battery.CommandOpen || m_Battery.Activity || m_Battery.RadioOrder || m_Battery.Report || m_Battery.PendingRadioReport || m_Battery.PendingSupplyReport || m_Battery.SupplyPending() || m_Battery.Released) + { Check(false, "completed observation must not reopen command, activity, route or physical loading"); return -1; } + if (!ERR_NativeMortarSalvoRules.Complete(m_Events, m_Commits, m_Battery.TotalShots, m_Battery.OrderShots, remaining.Count(), m_CommitPending) || m_Battery.OrderId != m_Order || remaining.Count() != m_StoppedShells) + { Check(false, "closed order cannot add shots, orders or replacement ammunition during replay window"); return -1; } + if (now < m_StopUntil) return 0; + if (!Check(NoReportReplay(now), "all claimed contacts produce no second request, projectile or replenishment over 25 seconds")) return -1; + array finalCrew = {}; m_Group.GetAgents(finalCrew); + if (!Check(finalCrew.Count() == 4 && m_Battery.Gun == m_Gun, "original group and gun retain four crew")) return -1; + foreach (AIAgent finalAgent : finalCrew) + if (!Check(finalAgent && m_Crew.Contains(finalAgent.GetControlledEntity()) && ERR_Actors.CanFight(finalAgent.GetControlledEntity()), "final conscious crew entity belongs to original physical roster")) return -1; + Stop(); return 1; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + ERR_HQ hq = ERR_HQ.Get(); + if (hq) hq.ERR_RemoveMortarSalvoReport(m_Target); + if (m_Battery && m_Battery.Gun == m_Gun && m_Battery.Group == m_Group) m_Battery.Stop(); + ERR_Actors.DeleteSpawned(m_Target); m_Target = null; + if (s_Active == this) s_Active = null; + } + void ~ERR_NativeMortarSalvoProbe() { Stop(); } +} +#endif diff --git a/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c b/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c index d65bd8b..bdb4d36 100644 --- a/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c +++ b/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c @@ -18,6 +18,8 @@ modded class ERR_GameMode protected bool m_ERRTestHQResponse; protected bool m_ERRTestMortar; protected bool m_ERRTestMortarFire; + protected bool m_ERRTestMortarSalvo; + protected ref ERR_NativeMortarSalvoProbe m_ERRMortarSalvo; protected bool m_ERRTestMortarCourier; protected ref ERR_NativeMortarCourierProbe m_ERRMortarCourier; protected bool m_ERRTestMortarTransfer; @@ -40,12 +42,14 @@ modded class ERR_GameMode m_ERRTestMortar = outcome == "mortar-inventory"; m_ERRTestMortarFire = outcome == "mortar-fire" || outcome == "mortar-expiry"; m_ERRTestMortarCourier = outcome == "mortar-courier"; + m_ERRTestMortarSalvo = outcome == "mortar-salvo" || outcome == "mortar-refresh"; m_ERRTestMortarTransfer = outcome == "mortar-transfer"; m_ERRTestPatrolHQ = outcome == "patrol-hq"; m_ERRTestPlayerDeath = outcome == "player-death" || m_ERRTestRadioNetwork || m_ERRTestHQResponse || m_ERRTestMortar; m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 150000; if (m_ERRTestMortarCourier) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 450000; if (m_ERRTestMortarTransfer) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; + if (m_ERRTestMortarSalvo) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; if (m_ERRTestMortarFire) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; if (m_ERRTestPatrolHQ) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 420000; OnStop().Insert(ERR_StopHQPatrol); @@ -66,6 +70,7 @@ modded class ERR_GameMode protected void ERR_StopHQPatrol() { if (m_ERRHQResponseProof) m_ERRHQResponseProof.Stop(); + if (m_ERRMortarSalvo) m_ERRMortarSalvo.Stop(); if (m_ERRMortarCourier) m_ERRMortarCourier.Stop(); if (m_ERRMortarTransfer) m_ERRMortarTransfer.Stop(); if (m_ERRMortarFire) m_ERRMortarFire.Stop(); @@ -104,6 +109,15 @@ modded class ERR_GameMode protected void ERR_SmokePhase(ERR_Phase previous, ERR_Phase current) { if (m_ERRSmokeDone || !ERR_MissionRules.Terminal(current)) return; + if (m_ERRTestMortarSalvo) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 191, "native configured salvo and unchanged-report replay observation complete before reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + ERR_StopHQPatrol(); + Print("ERR SMOKE COMPLETE: native full configured mortar salvo, exact original ammunition and unchanged-report replay refusal; fixture reset requested"); + return; + } if (m_ERRTestMortarCourier) { if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 181, "native finite courier reached an exhausted battery before explicit reset")) return; @@ -193,6 +207,13 @@ modded class ERR_GameMode if (m_ERRSmokeDone) return; if (now > m_ERRSmokeDeadline) { ERR_Check(false, "timeout at step " + m_ERRSmokeStep.ToString()); return; } if (now < m_ERRSmokeWait) return; + if (m_ERRSmokeStep == 190) + { + int result = m_ERRMortarSalvo.Tick(now); + if (result < 0) { ERR_Check(false, "native complete mortar salvo fixture; inspect source diagnostics"); return; } + if (result == 1) { m_ERRSmokeStep = 191; Transition(ERR_Phase.DEFEAT); } + return; + } if (m_ERRSmokeStep == 180) { int result = m_ERRMortarCourier.Tick(now); @@ -246,6 +267,13 @@ modded class ERR_GameMode m_ERRSmokeStep = 130; return; } + if (m_ERRTestMortarSalvo) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRMortarSalvo = new ERR_NativeMortarSalvoProbe(this); + m_ERRSmokeStep = 190; + return; + } if (m_ERRTestMortarCourier) { DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); diff --git a/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c b/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c index 3e4e890..8be10b4 100644 --- a/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c +++ b/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c @@ -519,6 +519,9 @@ modded class ERR_GameMode { DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); m_ERRPoweredFlightProbe = new ERR_NativePoweredFlightProbe(this); + string autohoverMode; + if (System.GetCLIParam("errFlightAutohover", autohoverMode) && autohoverMode == "1") + if (!ERR_BaseCheck(m_ERRPoweredFlightProbe.SetAutohoverMode(true), "owned native autohover experiment selected before allocation")) return; m_ERRBaseDeadline = now + 250000; m_ERRBaseStep = 1800; return; diff --git a/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c b/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c index 52f1e83..b480393 100644 --- a/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c +++ b/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c @@ -30,6 +30,22 @@ modded class ERR_NativePoweredFlightProbe return PoweredAuthority(); } + override void PreparePilotActions(CharacterControllerComponent controller, IEntity owner, ActionManager am, float dt) + { + int before = m_ControlUpdates; + super.PreparePilotActions(controller, owner, am, dt); + if (m_ControlUpdates == before || controller != m_Character || owner != m_Pilot || !ERR_InputDiagActive()) return; + m_ERRWrittenSequence = m_ControlUpdates; + m_ERRWrittenAt = GetGame().GetWorld().GetWorldTime(); + // These are actual owned virtual-action values, not native consumption. + m_ERRWrittenCollective = am.GetActionValue("HelicopterCollectiveIncrease") - am.GetActionValue("HelicopterCollectiveDecrease"); + float forward = am.GetActionValue("HelicopterCyclicForward") - am.GetActionValue("HelicopterCyclicBack"); + float aside = am.GetActionValue("HelicopterCyclicRight") - am.GetActionValue("HelicopterCyclicLeft"); + float torque = am.GetActionValue("HelicopterAntiTorqueRight") - am.GetActionValue("HelicopterAntiTorqueLeft"); + m_ERRWrittenCyclic = Vector(forward, aside, torque); + m_ERRWrittenThrottle = m_Input.GetVehicleThrottle(); // observation only in action mode + } + override void ApplyPilot(CharacterControllerComponent controller, IEntity owner, float dt) { // Snapshot native context before this callback's owned final writes. diff --git a/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c b/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c index d62a74b..434b903 100644 --- a/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c +++ b/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c @@ -5,8 +5,9 @@ modded class SCR_CharacterControllerComponent { override void OnPrepareControls(IEntity owner, ActionManager am, float dt, bool player) { - super.OnPrepareControls(owner, am, dt, player); ERR_NativePoweredFlightProbe probe = ERR_NativePoweredFlightProbe.Current(); + if (probe && !player) probe.PreparePilotActions(this, owner, am, dt); + super.OnPrepareControls(owner, am, dt, player); if (probe && !player) probe.ObservePilotPreparation(this, owner); } protected override void OnApplyControls(IEntity owner, float timeSlice) @@ -78,11 +79,24 @@ class ERR_PoweredFlightRules } static float NativeCollective(float signedDemand) { - // The native apply stage clamps negative collective to zero (100422). - // Keep the feedback controller's signed state; encode its final demand in - // the nonnegative native collective domain, unlike signed cyclic/torque. + // Preserve the legacy Apply experiment unchanged. Later observations showed + // overwritten positive inputs too, so this is not a proven native domain. return (ClampInput(signedDemand) + 1) * 0.5; } + static float CollectiveCommand(float signedDemand, bool actions, int stage) + { + // Preserve pre-engine/startup zero and the old Apply comparison branch. + if (!actions) return NativeCollective(signedDemand); + if (stage == 9) return 0.05; + if (stage == 10) return -0.05; + if (stage == 7) return -1; // keep minimum pitch while the stopped engine's rotors coast + if (stage >= 4 && stage <= 6) return ClampInput(signedDemand); + return 0; + } + static bool NegativeCollectiveObserved(float command, float signal) + { + return command >= -0.06 && command <= -0.04 && Math.AbsFloat(signal - command) <= 0.01; + } static bool CollectiveObserved(float command, float signal) { return command >= 0.04 && command <= 0.06 && Math.AbsFloat(signal - command) <= 0.01; @@ -134,6 +148,9 @@ class ERR_NativePoweredFlightProbe protected int m_PilotPreparations; protected int m_PositiveGateUpdates; protected float m_PositiveSignalSince = -1; + protected int m_NegativeGateUpdates; + protected float m_NegativeSignalSince = -1; + protected bool m_SignedCollectiveProven; protected int m_HelicopterUpdates; protected bool m_PilotSpawnRequested; protected AIAgent m_PilotAgent; @@ -147,6 +164,14 @@ class ERR_NativePoweredFlightProbe protected bool m_Stopped; protected bool m_Complete; protected bool m_ReadbackOK = true; + protected bool m_ActionInputs; + protected bool m_Started; + protected bool m_AutohoverMode; + protected bool m_AutohoverSaved; + protected bool m_OriginalAutohover; + protected HelicopterControllerComponent m_AutohoverController; + protected ActionManager m_OwnedActions; + protected int m_ActionContextSamples; static const ResourceName AIRCRAFT = "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"; static const ResourceName GROUP = "{000CD338713F2B5A}Prefabs/AI/Groups/Group_Base.et"; static const ResourceName PILOT = "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et"; @@ -158,10 +183,48 @@ class ERR_NativePoweredFlightProbe static ERR_NativePoweredFlightProbe Current() { return s_Current; } void ERR_NativePoweredFlightProbe(ERR_GameMode mode) { + string actionInputs; + m_ActionInputs = System.GetCLIParam("errFlightActionInputs", actionInputs) && actionInputs == "1"; m_Mode = mode; m_Deadline = GetGame().GetWorld().GetWorldTime() + 240000; if (Enabled() && !s_Current) s_Current = this; else m_Stopped = true; } + // Fixture configuration only: caller must select this before the first Tick. + bool SetAutohoverMode(bool enabled) + { + if (m_Started || m_Stopped || m_Complete || m_Bound || m_Aircraft) return false; + m_AutohoverMode = enabled; + return true; + } + protected bool BeginAutohover() + { + if (!m_AutohoverMode) return true; + if (m_AutohoverSaved || !m_Bound || !PoweredAuthority() || !m_Controller || m_Controller.GetOwner() != m_Aircraft) return false; + m_AutohoverController = m_Controller; + m_OriginalAutohover = m_Controller.GetAutohoverEnabled(); + m_AutohoverSaved = true; + m_Controller.SetAutohoverEnabled(true); + return m_Controller.GetAutohoverEnabled(); + } + protected bool AutohoverReady() + { + if (!m_AutohoverMode) return true; + // Native autohover also rewrites collective. Prove direct input consumption + // first, then enable its controller only for the bounded flight phase. + if (!m_AutohoverSaved && (m_Stage == 2 || m_Stage == 3 || m_Stage == 9 || m_Stage == 10)) return true; + return m_AutohoverSaved && m_AutohoverController && m_AutohoverController == m_Controller && m_Controller.GetOwner() == m_Aircraft && m_Controller.GetAutohoverEnabled(); + } + protected void RestoreAutohover(bool ownedSeat) + { + if (ownedSeat && m_AutohoverSaved && m_AutohoverController && m_AutohoverController == m_Controller && m_Controller.GetOwner() == m_Aircraft) + { + m_Controller.SetAutohoverEnabled(m_OriginalAutohover); + PrintFormat("ERR POWERED AUTOHOVER RESTORE: original=%1 observed=%2", m_OriginalAutohover, m_Controller.GetAutohoverEnabled()); + if (m_Controller.GetAutohoverEnabled() != m_OriginalAutohover) Print("ERR SMOKE FAIL: powered-flight original owned autohover state restored", LogLevel.ERROR); + } + m_AutohoverSaved = false; + m_AutohoverController = null; + } protected bool Check(bool condition, string detail) { if (condition) { Print("ERR SMOKE PASS: powered-flight " + detail); return true; } @@ -200,22 +263,24 @@ class ERR_NativePoweredFlightProbe // Override only this owned fixture controller, never global/user settings. controller.SetCollectiveMode(CollectiveMode.Direct); m_HelicopterUpdates++; } + bool UsesActionInputs() { return m_ActionInputs; } void ObservePilotPreparation(CharacterControllerComponent controller, IEntity owner) { if (!m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority()) return; m_PilotPreparations++; } - // Native prepare inputs are overwritten before application (101342). - // Integrate and write once here, after vanilla OnApplyControls, never in both. - void ApplyPilot(CharacterControllerComponent controller, IEntity owner, float dt) + // Both selectable input paths share one computation. Only the selected + // path integrates per callback; neither path invokes the other writer. + protected bool ComputePilotDemand(CharacterControllerComponent controller, IEntity owner, float dt, out float collective, out vector axes) { - if (!m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority() || !m_Input || !m_Simulation || dt <= 0 || dt > 0.2) return; + if (!m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority() || !AutohoverReady() || !m_Input || !m_Simulation || dt <= 0 || dt > 0.2) return false; + if (m_ActionInputs && m_Stage >= 4 && m_Stage <= 6 && !m_SignedCollectiveProven) return false; vector transform[4]; m_Aircraft.GetWorldTransform(transform); vector velocity = m_Simulation.GetVelocity(); vector angular = m_Simulation.GetAngularVelocityLocal(); float height = transform[3][1] - m_Home[1]; float forward, aside, torque; - float collective = -1; + collective = -1; if (m_Stage == 9) collective = -0.9; // native0.05, bounded signal-consumption proof if (m_Stage >= 4 && m_Stage <= 6 && m_Controller.IsEngineOn()) { @@ -224,18 +289,73 @@ class ERR_NativePoweredFlightProbe m_Collective = Math.Clamp(m_Collective + error * dt * 0.12, -0.95, 0.8); collective = Math.Clamp(m_Collective + error * 0.12, -1, 0.9); vector offset = m_Home - transform[3]; offset[1] = 0; - vector acceleration = offset * 0.08 - velocity * 0.3; acceleration[1] = 0; + // Native105226 already brakes before8m refusal; increase only velocity damping. + vector acceleration = offset * 0.08 - velocity * 0.6; acceleration[1] = 0; // Small local cyclic corrections counter drift/tilt through native inputs. // Sign/gain and native Direct-mode response remain experimental evidence. - forward = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[2]) / 9.81 + transform[2][1]) * 0.8 - angular[0] * 0.3, 0.15); - aside = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[0]) / 9.81 + transform[0][1]) * 0.8 + angular[2] * 0.3, 0.15); - float headingError = m_Heading - m_Aircraft.GetAngles()[0]; + forward = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[2]) / 9.81 + transform[2][1]) * 0.8 - angular[0] * 1.2, 0.15); + aside = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[0]) / 9.81 + transform[0][1]) * 0.8 + angular[2] * 1.2, 0.15); + // Native autohover also adjusts collective; observe its physical response. + // Give its lateral controller zero custom cyclic in this experiment. + // Preserve collective/yaw and bounds; never combine two cyclic controllers. + if (m_AutohoverMode) { forward = 0; aside = 0; } + float headingError = m_Heading - m_Aircraft.GetYawPitchRoll()[0]; while (headingError > 180) headingError -= 360; while (headingError < -180) headingError += 360; torque = ERR_PoweredFlightRules.ClampInput(headingError * 0.01 - angular[1] * 0.3, 0.3); if (m_Stage == 6 && ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact(), height, velocity.Length(), angular.Length(), transform[1][1])) collective = -1; } - collective = ERR_PoweredFlightRules.NativeCollective(collective); + collective = ERR_PoweredFlightRules.CollectiveCommand(collective, m_ActionInputs, m_Stage); + axes = Vector(forward, aside, torque); + return true; + } + protected bool WriteActionPair(ActionManager am, string positive, string negative, float demand) + { + float a = Math.Clamp(demand, 0, 1); + float b = Math.Clamp(-demand, 0, 1); + am.SetActionValue(positive, a); am.SetActionValue(negative, b); + return Math.AbsFloat(am.GetActionValue(positive) - a) < 0.001 && Math.AbsFloat(am.GetActionValue(negative) - b) < 0.001; + } + protected bool OwnActionManager(ActionManager am) + { + // Read the global manager only to reject shared ownership. Never write it. + return am && m_PilotAgent && am == m_PilotAgent.GetActionManager() && am != GetGame().GetInputManager(); + } + void PreparePilotActions(CharacterControllerComponent controller, IEntity owner, ActionManager am, float dt) + { + if (!m_ActionInputs || !m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority()) return; + if (!OwnActionManager(am)) { m_ReadbackOK = false; return; } + m_OwnedActions = am; + // Same short activation pattern used by vanilla game.c; this manager belongs + // solely to the fixture AI, never to global hardware or the human player. + // Native104256 reports false from ActivateContext while already active. + // Treat observed active state as authority, not an undocumented return meaning. + bool alreadyActive = am.IsContextActive("HelicopterContext"); + bool activated; + if (!alreadyActive) activated = am.ActivateContext("HelicopterContext", 1); + bool contextActive = am.IsContextActive("HelicopterContext"); + if (m_ActionContextSamples < 4) + { + m_ActionContextSamples++; + PrintFormat("ERR POWERED ACTION CONTEXT: sample=%1 activated=%2 active=%3 dt=%4 input=%5 simulation=%6", m_ActionContextSamples, activated, contextActive, dt, m_Input != null, m_Simulation != null); + } + if (!contextActive) { m_ReadbackOK = false; return; } + float collective; vector axes; + if (!ComputePilotDemand(controller, owner, dt, collective, axes)) return; + bool a = WriteActionPair(am, "HelicopterCollectiveIncrease", "HelicopterCollectiveDecrease", collective); + bool b = WriteActionPair(am, "HelicopterCyclicForward", "HelicopterCyclicBack", axes[0]); + bool c = WriteActionPair(am, "HelicopterCyclicRight", "HelicopterCyclicLeft", axes[1]); + bool d = WriteActionPair(am, "HelicopterAntiTorqueRight", "HelicopterAntiTorqueLeft", axes[2]); + m_ReadbackOK = m_ReadbackOK && a && b && c && d; + m_ControlUpdates++; m_LastControl = GetGame().GetWorld().GetWorldTime(); + } + void ApplyPilot(CharacterControllerComponent controller, IEntity owner, float dt) + { + // The experimental actor-action path and old context path never both write. + if (m_ActionInputs) return; + float collective; vector axes; + if (!ComputePilotDemand(controller, owner, dt, collective, axes)) return; + float forward = axes[0]; float aside = axes[1]; float torque = axes[2]; m_Input.SetVehicleThrottle(1); m_Input.SetVehicleCollective(collective); m_Input.SetVehicleCyclicForward(forward); @@ -294,8 +414,20 @@ class ERR_NativePoweredFlightProbe { if (!m_Simulation || !m_Aircraft || now < m_NextLog) return; m_NextLog = now + 2000; + if (m_Stage == 4 && now < m_StageDeadline - 57000) m_NextLog = now + 250; + if (m_ActionInputs) + { + bool ownedActions = OwnActionManager(m_OwnedActions); + bool contextActive = m_OwnedActions && m_OwnedActions.IsContextActive("HelicopterContext"); + PrintFormat("ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=%1 contextActive=%2 virtualWrites=%3", ownedActions, contextActive, m_ControlUpdates); + } vector transform[4]; m_Aircraft.GetWorldTransform(transform); + PrintFormat("ERR POWERED AUTOHOVER: selected=%1 saved=%2 enabled=%3 exactController=%4", m_AutohoverMode, m_AutohoverSaved, m_Controller.GetAutohoverEnabled(), m_AutohoverController == m_Controller); PrintFormat("ERR POWERED FLIGHT: stage=%1 height=%2 drift=%3 speed=%4 vertical=%5 up=%6 groundContact=%7 fuel=%8 engine=%9", m_Stage, transform[3][1] - m_Home[1], vector.DistanceXZ(transform[3], m_Home), m_Simulation.GetVelocity().Length(), m_Simulation.GetVelocity()[1], transform[1][1], m_Simulation.HasAnyGroundContact(), m_Fuel.GetTotalFuel(), m_Controller.IsEngineOn()); + vector rotorAxis; m_Simulation.RotorGetAxis(0, rotorAxis); + PrintFormat("ERR POWERED HEADING: desiredYaw=%1 actualYawPitchRoll=%2", m_Heading, m_Aircraft.GetYawPitchRoll()); + PrintFormat("ERR POWERED ROTOR AXIS: local=%1 acceleration=%2", rotorAxis, m_Simulation.GetAcceleration()); + PrintFormat("ERR POWERED MOTION: offset=%1 velocity=%2 angularLocal=%3 forward=%4 right=%5", m_Home - transform[3], m_Simulation.GetVelocity(), m_Simulation.GetAngularVelocityLocal(), transform[2], transform[0]); PrintFormat("ERR POWERED INPUT: pilotHooks=%1 vehicleHooks=%2 readback=%3 collective=%4 cyclicF=%5 cyclicR=%6 antiTorque=%7 rotorRPM=%8 targetRPM=%9", m_ControlUpdates, m_HelicopterUpdates, m_ReadbackOK, m_Input.GetVehicleCollective(), m_Input.GetVehicleCyclicForward(), m_Input.GetVehicleCyclicAside(), m_Input.GetVehicleAntiTorque(), m_Simulation.RotorGetRPM(0), m_Simulation.RotorGetRPMTarget(0)); } protected bool PollNativeFlightComponents(float now) @@ -378,14 +510,24 @@ class ERR_NativePoweredFlightProbe if (m_Stopped) return; // Input cleanup is confined to the same unclaimed test pilot/aircraft. bool ours = m_Bound && OwnPilot() && !PlayerPresent(); + bool ownSeat = ours && m_Seat && m_Seat.GetOccupant() == m_Pilot && m_Controller && m_Controller.GetPilotCompartmentSlot() == m_Seat && CompartmentAccessComponent.GetVehicleIn(m_Pilot) == m_Aircraft; + RestoreAutohover(ownSeat); m_Stopped = true; m_Bound = false; if (s_Current == this) s_Current = null; - if (ours && m_Input) + if (ours && m_ActionInputs && OwnActionManager(m_OwnedActions)) + { + WriteActionPair(m_OwnedActions, "HelicopterCollectiveIncrease", "HelicopterCollectiveDecrease", 0); + WriteActionPair(m_OwnedActions, "HelicopterCyclicForward", "HelicopterCyclicBack", 0); + WriteActionPair(m_OwnedActions, "HelicopterCyclicRight", "HelicopterCyclicLeft", 0); + WriteActionPair(m_OwnedActions, "HelicopterAntiTorqueRight", "HelicopterAntiTorqueLeft", 0); + } + if (ours && !m_ActionInputs && m_Input) { m_Input.SetVehicleCollective(0); m_Input.SetVehicleThrottle(0); m_Input.SetVehicleCyclicForward(0); m_Input.SetVehicleCyclicAside(0); m_Input.SetVehicleAntiTorque(0); - if (m_Controller && m_ModeSaved) m_Controller.SetCollectiveMode(m_OriginalMode); } + if (ours && m_Controller && m_ModeSaved) m_Controller.SetCollectiveMode(m_OriginalMode); + m_OwnedActions = null; if (m_PilotLODSaved && m_PilotAgent && OwnPilot() && !PlayerPresent()) m_PilotAgent.SetPermanentLOD(m_OriginalPilotLOD); if (m_Group && m_Group.GetPlayerCount(true) == 0) m_Group.SetPermanentLOD(-1); // Keep real airborne/failed test actors for diagnosis and mode-owned cleanup. @@ -395,8 +537,9 @@ class ERR_NativePoweredFlightProbe { if (m_Complete) return 1; if (m_Stopped) return -1; + m_Started = true; if (!Enabled() || !m_Mode || now >= m_Deadline || ERR_MissionRules.Terminal(m_Mode.Phase())) { Check(false, "server fixture active within 240-second bound"); return -1; } - if (m_PreviousTick >= 0 && (now < m_PreviousTick || now - m_PreviousTick > 1500)) { m_Stable = -1; m_PositiveSignalSince = -1; } + if (m_PreviousTick >= 0 && (now < m_PreviousTick || now - m_PreviousTick > 1500)) { m_Stable = -1; m_PositiveSignalSince = -1; m_NegativeSignalSince = -1; } m_PreviousTick = now; if (m_Stage == 0) { @@ -448,13 +591,13 @@ class ERR_NativePoweredFlightProbe m_Character = CharacterControllerComponent.Cast(m_Pilot.FindComponent(CharacterControllerComponent)); if (m_Character) m_Input = m_Character.GetInputContext(); if (!Check(m_Input && m_Group.GetAgentsCount() == 1 && PoweredAuthority(), "one living native AI pilot physically occupies its own fueled helicopter")) return -1; - m_Home = m_Aircraft.GetOrigin(); m_Heading = m_Aircraft.GetAngles()[0]; + m_Home = m_Aircraft.GetOrigin(); m_Heading = m_Aircraft.GetYawPitchRoll()[0]; m_OriginalMode = m_Controller.GetCollectiveMode(); m_ModeSaved = true; m_InitialFuel = m_Fuel.GetTotalFuel(); m_Bound = true; m_Stage = 2; m_StageDeadline = now + 5000; return 0; } Diagnostic(now); - if (!PoweredAuthority() || !m_ReadbackOK) { Check(false, "current owned conscious pilot, fuel, rotors and exact input readback remain valid"); return -1; } + if (!PoweredAuthority() || !m_ReadbackOK || !AutohoverReady()) { Check(false, "current owned conscious pilot, fuel, rotors, selected autohover and exact input readback remain valid"); return -1; } if (m_Stage == 2) { if (now >= m_StageDeadline) { Check(false, "native AI input and helicopter preparation hooks execute before engine start"); return -1; } @@ -487,7 +630,7 @@ class ERR_NativePoweredFlightProbe m_PositiveGateUpdates = m_ControlUpdates; m_PositiveSignalSince = -1; m_Stage = 9; m_StageDeadline = now + 3000; return 0; } - if (((m_Stage >= 4 && m_Stage <= 6) || m_Stage == 9) && !m_Controller.IsEngineOn()) { Check(false, "powered flight retains real running engine"); return -1; } + if (((m_Stage >= 4 && m_Stage <= 6) || m_Stage == 9 || m_Stage == 10) && !m_Controller.IsEngineOn()) { Check(false, "powered flight retains real running engine"); return -1; } if (m_Stage == 9) { if (now >= m_StageDeadline) { Check(false, "positive native collective reaches actual rotor signal before climb within three seconds"); return -1; } @@ -502,6 +645,31 @@ class ERR_NativePoweredFlightProbe if (m_PositiveSignalSince < 0) m_PositiveSignalSince = now; if (now - m_PositiveSignalSince < 500) return 0; if (!Check(true, "positive collective persists in existing native rotor signal across actual ticks before climb")) return -1; + if (m_ActionInputs) + { + m_NegativeGateUpdates = m_ControlUpdates; m_NegativeSignalSince = -1; + m_Stage = 10; m_StageDeadline = now + 3000; return 0; + } + if (!Check(BeginAutohover(), "selected native autohover enabled after direct collective consumption proof; exact owned controller readback")) return -1; + m_Collective = -0.8; m_Stage = 4; m_StageDeadline = now + 65000; m_Stable = -1; return 0; + } + if (m_Stage == 10) + { + if (now >= m_StageDeadline) { Check(false, "negative actor collective reaches actual rotor signal before climb within three seconds"); return -1; } + if (!Check(m_ActionInputs && m_Controller.GetCollectiveMode() == CollectiveMode.Direct && !m_Controller.GetAutohoverEnabled(), "negative consumption proof uses owned actor actions in Direct mode with autohover off")) return -1; + SignalsManagerComponent negativeSignals = m_Controller.GetSignalsManager(); + int negativeIndex = -1; + if (negativeSignals) negativeIndex = negativeSignals.FindSignal("MainRotorCollective"); + if (!Check(negativeIndex >= 0, "existing native main rotor collective signal available for negative proof")) return -1; + float negativeObserved = negativeSignals.GetSignalValue(negativeIndex); + bool negativeMatched = m_ControlUpdates >= m_NegativeGateUpdates + 3 && ERR_PoweredFlightRules.NegativeCollectiveObserved(m_Input.GetVehicleCollective(), negativeObserved); + PrintFormat("ERR POWERED NEGATIVE COLLECTIVE GATE: command=%1 rotorSignal=%2 actionUpdates=%3 matched=%4", m_Input.GetVehicleCollective(), negativeObserved, m_ControlUpdates - m_NegativeGateUpdates, negativeMatched); + if (!negativeMatched) { m_NegativeSignalSince = -1; return 0; } + if (m_NegativeSignalSince < 0) m_NegativeSignalSince = now; + if (now - m_NegativeSignalSince < 500) return 0; + if (!Check(true, "negative actor collective persists in existing native rotor signal across actual ticks before signed flight demand")) return -1; + m_SignedCollectiveProven = true; + if (!Check(BeginAutohover(), "selected native autohover enabled only after both direct collective consumption proofs")) return -1; m_Collective = -0.8; m_Stage = 4; m_StageDeadline = now + 65000; m_Stable = -1; return 0; } if (m_Stage == 4 || m_Stage == 5) @@ -532,6 +700,7 @@ class ERR_NativePoweredFlightProbe { if (now >= m_StageDeadline) { Check(false, "normal engine shutdown completed on actual ground"); return -1; } if (m_Controller.IsEngineOn()) return 0; + PrintFormat("ERR POWERED SHUTDOWN: height=%1 speed=%2 angular=%3 up=%4 contact=%5 authority=%6 collective=%7 rotorRPM=%8", height, speed, m_Simulation.GetAngularVelocity().Length(), transform[1][1], m_Simulation.HasAnyGroundContact(), PoweredAuthority(), m_Input.GetVehicleCollective(), m_Simulation.RotorGetRPM(0)); if (!Check(ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact(), height, speed, m_Simulation.GetAngularVelocity().Length(), transform[1][1]) && PoweredAuthority(), "native engine off after contact landing; no transform/velocity/health/fuel correction")) return -1; Stop(); m_Complete = true; return 1; } diff --git a/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c b/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c index 00d2df8..60128d0 100644 --- a/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c +++ b/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c @@ -11,7 +11,7 @@ class ERR_ObjectiveText } static string Extraction(float radius) { - return string.Format("The map marks the initial helicopter pickup site. Board the helicopter and fly beyond %1 kilometres from the prison. Living prisoners aboard escape, including unconscious passengers. Dead or absent prisoners do not.", radius / 1000.0); + return string.Format("The map marks the initial helicopter pickup site. Board the helicopter and fly beyond %1 kilometres from the prison. To load an unconscious prisoner, place them on the ground beside the grounded, stationary helicopter and use 'Load casualty into extraction helicopter' on them. Living prisoners aboard escape; dead or absent prisoners do not.", radius / 1000.0); } static string RadioFeedbackMessage(ERR_RadioFeedback feedback) { @@ -46,8 +46,8 @@ class ERR_ObjectiveText mode.Locations(locations); foreach (ERR_LocationComponent location : locations) if (location.Kind() == ERR_LocationKind.RADIO && location.Knowledge() == 2) - return "The radio station is identified on your map. Reach the station and tune its radio to start the transmission."; - return "Choose either marked supply cache. Each has equipment and enough radio documents to identify the station. If one cache is lost, use the other. If every document is lost, a close approach with a clear view can identify the station itself. Nearby medical and guard sites can be discovered by approaching with a clear view."; + return "The radio station is identified on your map. Reach its radio and complete the 'Contact extraction HQ' action to start the transmission."; + return "Choose either marked supply cache. Take its intelligence folders into your own inventory to reveal the station on your map. If only a search area appears, take another folder. Each cache has enough folders; use the other if one is lost. If every folder is lost, a close approach with a clear view can identify the station itself. Nearby medical and guard sites can also be discovered by approaching with a clear view."; } if (phase == ERR_Phase.RADIO_DEFENCE) { diff --git a/addons/core/Scripts/Game/ERR/ERR_Observer.c b/addons/core/Scripts/Game/ERR/ERR_Observer.c index 0b27c66..68f34a0 100644 --- a/addons/core/Scripts/Game/ERR/ERR_Observer.c +++ b/addons/core/Scripts/Game/ERR/ERR_Observer.c @@ -6,6 +6,29 @@ enum ERR_ObserverReason SPAWN_UNAVAILABLE } +// Presentation only. Existing server admission and observer selection own state. +class ERR_ObserverGuidance +{ + static string Message(int reason, bool survivorAvailable) + { + if (reason == ERR_ObserverReason.NONE) return ""; + string message = "You are spectating until the next round."; + if (reason == ERR_ObserverReason.SPENT_LIFE) + message = "Your life for this round has been used. You can play again next round."; + else if (reason == ERR_ObserverReason.LATE_EXTRACTION) + message = "Extraction has started. New prisoners can join next round."; + else if (reason == ERR_ObserverReason.SPAWN_UNAVAILABLE) + message = "Your prisoner could not be spawned. You are spectating until the next round."; + if (!survivorAvailable) + return message + " No survivor is currently available to follow. The view will follow a survivor when one becomes available."; + return message + " Use /esc spectate next or /esc spectate previous to change who you follow."; + } + static bool Refresh(bool shown, int previousReason, int reason, bool previousAvailable, bool survivorAvailable) + { + return reason != ERR_ObserverReason.NONE && (!shown || previousReason != reason || previousAvailable != survivorAvailable); + } +} + // A local follow camera. It never possesses its target or offers free flight. [BaseContainerProps(), SCR_BaseManualCameraComponentTitle()] class ERR_FollowSurvivorCameraComponent : SCR_BaseManualCameraComponent @@ -66,6 +89,8 @@ modded class SCR_PlayerController protected SCR_ManualCamera m_ERRObserverCamera; protected bool m_ERRObserverMonitor; protected bool m_ERRObserverReady; + protected ERR_ObserverReason m_ERRShownObserverReason; + protected bool m_ERRShownObserverAvailable; protected float m_ERRLastCycle = -1000; ERR_ObserverReason ERR_ObserverState() { return m_ERRObserverReason; } @@ -197,11 +222,17 @@ modded class SCR_PlayerController if (!manager || manager.CurrentCamera() != m_ERRObserverCamera) return; SCR_RespawnSystemComponent respawn = SCR_RespawnSystemComponent.GetInstance(); if (respawn) respawn.DestroyLoadingPlaceholder(); - if (!m_ERRObserverReady) + // The server-selected replicated ID distinguishes no target from a target + // whose local entity is still streaming. Never imply no survivors from delay. + bool survivorAvailable = m_ERRObservedId != RplId.Invalid(); + if (ERR_ObserverGuidance.Refresh(m_ERRObserverReady, m_ERRShownObserverReason, m_ERRObserverReason, m_ERRShownObserverAvailable, survivorAvailable)) { SCR_HintManagerComponent hints = SCR_HintManagerComponent.GetInstance(); - if (hints) hints.ShowCustom("You are spectating the surviving prisoners until the next round.", "Spectating", 12); + if (!hints) return; // retry on the existing monitor; do not lose the first hint + hints.ShowCustom(ERR_ObserverGuidance.Message(m_ERRObserverReason, survivorAvailable), "Spectating", 12); m_ERRObserverReady = true; + m_ERRShownObserverReason = m_ERRObserverReason; + m_ERRShownObserverAvailable = survivorAvailable; } } protected void ERR_CloseObserverCamera() diff --git a/docs/acceptance.json b/docs/acceptance.json index fe9c517..87d55bf 100644 --- a/docs/acceptance.json +++ b/docs/acceptance.json @@ -81,8 +81,8 @@ ] }, "clean_native_runtime": { - "status": "passed", - "scope": "Checkpoint source: two companion escape/restart rounds in103025,96 assertions,zero captured errors; same addon source as native casualty102037 and ordinary Chat102737. Scripted local integration only; opt-in flight consumption fails separately and is not accepted. All17 release cases remain pending; later addon edits require fresh qualification.", + "status": "pending", + "scope": "Checkpoint7c53b4b passed two companion rounds (103025),96 assertions with zero errors, plus ordinary Chat102737 on the same source. The opt-in actor-local flight-input experiment changes current addon source and requires fresh qualification. Seventeen release cases remain pending.", "evidence": [ "docs/evidence/native-2026-09-19-065351/report.json", "docs/evidence/native-2026-09-19-065351/console.log.txt", @@ -722,6 +722,36 @@ "docs/evidence/native-2026-09-19-102037/console.log.txt", "docs/evidence/native-2026-09-19-102037/source-sha256.json" ] + }, + "packed_core_ordinary_startup": { + "status": "passed", + "scope": "Artifact-bound ordinary Core startup from only the archived native PAK/project/resource database plus installed vanilla. Real local canonical prisoner, expected mission and fifteen-second ready interval, zero captured errors and confirmed cleanup. Candidate source snapshot predates current mortar updates. The native packaging shutdown failures remain separate; no full escape, manual input, multiplayer or release qualification.", + "evidence": [ + "docs/evidence/packed-core-2026-09-19-110729/report.json", + "docs/evidence/packed-core-2026-09-19-110729/packed-input-provenance.json", + "docs/evidence/packed-core-2026-09-19-110729/console.log.txt", + "docs/evidence/packed-core-2026-09-19-110729/archive-sha256.json" + ] + }, + "mortar_radio_refresh_full_salvo": { + "status": "passed", + "scope": "Native Chat fixture 112900: 55 assertions, zero captured errors; three distinct real-clock synthetic stationary observations delivered through original RTO uplink and actual HQ downlink, same order/activity, eight native projectile events and fresh commitments, native completion event, 19 original shells remain, 25 seconds without replay. Does not prove target perception, impact, interrupted networks, multiplayer or release readiness.", + "evidence": [ + "docs/evidence/native-2026-09-19-112900-mortar-refresh/report.json", + "docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt", + "docs/evidence/native-2026-09-19-112900-mortar-refresh/rereintroduced-hq.log.txt", + "docs/evidence/native-2026-09-19-112900-mortar-refresh/source-sha256.json" + ] + }, + "packed_chat_ordinary_startup": { + "status": "passed", + "scope": "Artifact-bound ordinary Chat startup 113315: exact five successor addons plus two installed vanilla engine/data addons, all five PAK and resource database paths verified, real canonical prisoner and 15-second ready interval, zero captured errors. All fifteen runtime artifacts unchanged. Explicit noSplash; package is the archived 111731 snapshot, not current source. No build, manual escape, multiplayer or release qualification.", + "evidence": [ + "docs/evidence/packed-chat-2026-09-19-113315/report.json", + "docs/evidence/packed-chat-2026-09-19-113315/console.log.txt", + "docs/evidence/packed-chat-2026-09-19-113315/runner.json.txt", + "docs/evidence/packed-chat-2026-09-19-113315/packed-input-provenance.json" + ] } } } diff --git a/docs/architecture.md b/docs/architecture.md index f4439c6..d6817f8 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -6,7 +6,7 @@ Core owns `ERR_GameMode`, mission rules, native spawn lifecycle integration, settings, the location registry, the vanilla faction catalog and authored scenario construction. `ERR_Phase` transitions are checked centrally. `ERR_LocationComponent` registers stable location IDs and replicates discovery. Mission phase, discovery and persistent settings mutations are server-owned. -The mode exposes `OnPhaseChanged`, `OnGroup`, `OnTick`, `OnStop` and server-side `OnLocationDiscovered` events. `ERR_CommandService` is the response-coordinator interface. AI supplies its implementation through `CreateCommandService`. Core owns `ERR_DiscoveryService`, recovering physical documents and remembering consumed folder identities, and presents discovered objective markers. Intel subscribes to group and mission ticks only to distribute optional extra documents to enemies. Map supplies its shared field-map item through the scenario resource hook. Chat sends authenticated owner RPCs to mutate validated settings or read HQ status. Scenario placement, radio defence, extraction and mission transitions are separate services; native player assignment uses an account-bound admission gate. Further contracts for support/logistics remain migration work. +The mode exposes `OnPhaseChanged`, `OnGroup`, `OnTick`, `OnStop` and server-side `OnLocationDiscovered` events. `ERR_CommandService` is the response-coordinator interface. AI supplies its implementation through `CreateCommandService`. Core owns `ERR_DiscoveryService`, recovering physical documents and remembering consumed folder identities, and presents discovered objective markers. Intel subscribes to group and mission ticks only to distribute optional extra documents to enemies. Map supplies its shared field-map item through the scenario resource hook. Chat sends authenticated owner RPCs to mutate validated settings or read HQ status. Scenario placement, radio defence, extraction and mission transitions are separate services; native player assignment uses an identity-bound admission gate, with a restricted standalone alternative described below. AI owns finite mortar support and the western-cache courier through the same HQ and physical-radio authority; broader convoy and aircraft support remain migration work. ## HQ information flow @@ -14,7 +14,7 @@ Physical group members observe through vanilla AI perception. `ERR_HQObservation The coordinator is the sole source of strategic response orders. Individual units retain vanilla tactical combat. It does not spawn reinforcements when alerted. Initial physical forces are authored by the scenario. No distant-unit virtual simulation is implemented. -The current coordinator is a reduced implementation. Full contact scheduling, supporting aircraft and physical logistics remain incomplete. A finite physical mortar controller now compiles; its initialization, ammunition depletion and permanent asset loss pass local tests. Actual firing has not been validated. Aircraft availability helpers must not be mistaken for an operational controller. +The [092237 native fixture](evidence/native-2026-09-19-092237/report.json) verifies real guard perception, immutable report delivery through uplink/HQ/downlink, and movement by another original physical infantry group without adding forces. The [095513 courier fixture](evidence/native-2026-09-19-095513/report.json) verifies a finite physical delivery, HQ reservation release and restoration of the original patrol. These are arranged local integration tests: the perception fixture places and temporarily protects its real player, while the courier fixture physically sequesters the original 27 shells to trigger depletion. They do not establish manual encounter quality, multiplayer behavior or improved FPS. Operational supporting aircraft, broader logistics/convoy parity and distant virtual simulation remain incomplete; aircraft availability helpers and isolated flight experiments are not an operational controller. ## Bounded work and ownership @@ -24,7 +24,7 @@ Stop events cancel service timers, remove HQ waypoints and despawn owned AI grou ## Round player lifecycle -`ERR_PlayerRoster` owns life records by backend identity; transient connection IDs are only lookup keys. Spawn, disconnect and rebind publish `OnChanged`. The native reconnect component retains the same physical character for voluntary as well as involuntary departures during its configured reservation interval. Reservation expiry does not restore a spent life. The defeat check includes reserved living characters. A server with no connected players pauses defeat and clears the radio defence timer. +`ERR_PlayerRoster` owns network life records by backend identity; the sole genuine standalone local controller can use the pinned round-local key described below. Transient connection IDs are only lookup keys. Spawn, disconnect and rebind publish `OnChanged`. The native reconnect component retains the same physical character for voluntary as well as involuntary departures during its configured reservation interval. Reservation expiry does not restore a spent life. The defeat check includes reserved living characters. A server with no connected players pauses defeat and clears the radio defence timer. First-time arrivals may spawn during prison, search or defence. Prison placement checks a bounded grid against physical obstacles and pending reservations; a full grid waits without spending the failure budget. Late spawn positions are checked beside conscious, on-foot survivors, with the same prison grid as fallback. Native preloads receive account/controller/request/data/actor-bound tickets. Final assignment rechecks current life, phase, connection and placement; stop, disconnect and closed-admission phases cancel owned pending actors and callbacks. See [player lifecycle](player-lifecycle.md). New arrivals during extraction observe until the next round. Dead players cannot request another life. Unconscious characters remain survivors and retain their own camera; they do not hold the radio objective. @@ -70,3 +70,9 @@ Optional ground transport belongs to the existing site definition/service and it `ERR_LocalAdmission` supplies a round-local roster key only for the sole genuine local controller in native `RplMode.None`. It is selected through normal audited spawn admission, pinned to that controller/context and closed on invalidation. It is not an account identity and never replaces native identity handling in Listen, Dedicated or Client modes. [Design and evidence](local-singleplayer-admission.md). HQ owns each finite mortar battery, its readiness, delivered order and exact shell transactions. Initial expansion and inventory callbacks must resolve to the actual original crew and 27 distinct HE shells. Resupply moves one exact existing shell; acceptance alone is not readiness. Re-aim validation recomputes native ballistics against the immutable original command while retaining the original report's expiry. The per-battery report ledger prevents a cancelled/completed radio observation from becoming another order; only newly delivered observations can authorize new attempts. [Operations](finite-mortar-operations.md), [aim renewal](mortar-aim-renewal.md), [report deduplication](mortar-report-deduplication.md). + +An active order can accept a strictly newer same-target observation only after its own real HQ downlink. Each report keeps its original observation time and 60-second freshness bound; updates preserve the original order/activity, eight-round limit and 120-second deadline. If the barrel already has a command, the original native solver must prove equivalent geometry before adopting the update; an already committed shell retains its previous report until its actual projectile callback. The [111915 refresh attempt](evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json) emitted eight real projectiles but failed the required natural-completion gate and remains failed evidence, not a qualified complete salvo or impact test. The subsequent event-latch correction captures vanilla completion/failure on the exact activity and order before deselection can overwrite its state, then consumes that event on the HQ tick. Cleanup detaches before its own `Complete` call and cannot manufacture a completion observation. The subsequent 112900 native rerun passes this handoff and the complete refreshed salvo; its evidence is described below. See [report refresh](mortar-report-refresh.md). + +`ERR_MortarLogistics` inserts twelve distinct depot shells once into the existing western clue cache and uses its original physical patrol as courier. A genuine low-ammunition status reaches HQ through the battery's RTO; HQ alone reserves the patrol and sends the delivery downlink. Transport authorization retains that status's original time with a 180-second bound, separately from firing-contact freshness. Native waypoints move the bearer and exact inventory transactions move surviving shells; there is no teleport, replenishment or replacement crew/vehicle. Cancellation releases owned orders while surviving stock remains physical, and unresolved live-item transfers cannot be retried. This is one finite walking route, not complete logistics parity. [Courier contract and native evidence](finite-mortar-courier.md). + +The subsequent [112900 native refresh regression](evidence/native-2026-09-19-112900-mortar-refresh/report.json) passes the exact activity-event handoff, all eight fresh physical shots, 19 remaining original shells and 25-second replay refusal with 55 assertions and zero captured errors. The earlier completion failure remains historical evidence. diff --git a/docs/current-status.md b/docs/current-status.md index bee352a..2ce67a6 100644 --- a/docs/current-status.md +++ b/docs/current-status.md @@ -1,33 +1,34 @@ # Current development status -Evidence checkpoint: 19 September 2026, through archived integrated Core 100619 and companion 101611 regressions, finite courier 095513 and prison action boundary 100148. Later experimental flight callbacks and companion/ordinary regressions remain under active validation. The primary deliverable remains an independently authored replacement for the abandoned Escapists base mission, integrating companion behavior through its interfaces. The first release targets vanilla Everon and up to twelve players, completing prison → scavenging/intel → radio defence → helicopter extraction without the original mod or dependent extensions. +Updated **19 September 2026**, through the clean refreshed mortar salvo 112900 and packed five-addon startup 113315. Commit `7c53b4b` remains the clean development checkpoint: companion 103025, ordinary Chat 102737 and casualty 102037 have identical addon-source manifests. Newer flight, spectator and mortar changes mean the **current-source clean runtime gate remains pending**. Packed startup qualifies its archived artifact snapshot, which predates the latest mortar changes; it does not qualify the current source or build process. All seventeen first-release cases remain pending. -The successor has five independent addon projects, its own scenario/resource identities, authored Everon sites and vanilla asset references. Ordinary Core and companion startup now work with real local admission. Scripted base-loop checkpoints and focused physical support tests exist, but this is not a released or fully accepted replacement. All seventeen release cases remain pending in [acceptance](acceptance.json); development checks record narrower evidence. +The primary deliverable is an independently authored replacement for the abandoned Escapists base mission, with companion behavior integrated through its interfaces. Five successor addon projects have their own identities, authored Everon sites and vanilla asset references. The first release targets up to twelve players completing prison → scavenging/intel → radio defence → helicopter extraction without the original mod or dependent extensions. Scripted development checkpoints exist; a dependable, manually playable multiplayer release is still unfinished. ## Established development checkpoints -| Area | Recorded evidence | Limit | +| Area | Evidence | Practical limit | | --- | --- | --- | -| Ordinary game admission | Regular, non-Workbench [Core](evidence/game-2026-09-19-082733/game-startup-report.json.txt) and [latest all-companion](evidence/game-2026-09-19-093115/game-startup-report.json.txt) runs load their headers/MissionSystems and admit the genuine local controller to a living canonical prisoner, with a fifteen-second ready interval and zero captured errors. | Diagnostic noSplash and standalone round-local roster key; no ordinary full route, normal splash, network identity or manual input qualification. [Admission design](local-singleplayer-admission.md). | -| Independent base loop | [Two latest Core rounds](evidence/native-2026-09-19-100619/report.json) pass 612 assertions with zero errors, including canonical participant rejection/normal recovery, native rough/exact discovery markers and culled-marker cleanup, radio feedback, extraction and restart. | The [101611 companion run](evidence/native-2026-09-19-101611/report.json) also passes two rounds, 96 assertions and zero errors with teardown diagnostics disabled. These qualify their own sources; subsequent changes leave current clean runtime pending. The earlier 084026 catalog failure remains preserved. | -| Prison, equipment and medicine | [Prisoner fixture](evidence/native-2026-09-19-063949/report.json) places one controlled player and eleven physical characters inside the prison with exact kits and real clue transfers. [Medical fixture](evidence/native-2026-09-19-062406/report.json) demonstrates blood-loss treatment, consumed supplies and native consciousness recovery. [Destroyed-gate progression](evidence/native-2026-09-19-092923/report.json) passes 62 clean assertions, including real native gate destruction, missing-gate rejection and a bounded prisoner crossing. | The breach fixture deliberately repositions the real prisoner; it does not prove walking through debris. Physical actors are not twelve connected clients. Ordinary treatment input, animations, supply balance and navigation remain unqualified. The medical snapshot retains historical catalog errors. | -| Discovery and radio | [Partial document loss](evidence/native-2026-09-19-071654/report.json) verifies close physical discovery after partial knowledge and loss of all documents. The [085442 Core loop](evidence/native-2026-09-19-085442/report.json) verifies existing native map-widget text refresh, protected objective-marker ownership, recreation and cleanup in both rounds, alongside radio defence/feedback. | The marker probe uses owned hidden widgets rather than a real open map and player input. Manual discovery, travel, inventory interaction, combat balance and remote feedback remain unqualified. No replacement clues are spawned after loss. | -| Player lifecycle and extraction | [Standalone admission](evidence/native-2026-09-19-085048/report.json) passes 54 clean assertions covering callback replay and explicitly injected context failure with the real local body/life retained. [Lifecycle](evidence/native-2026-09-19-081601/report.json), [recovery](evidence/native-2026-09-19-064406/report.json), [casualty loading](evidence/native-2026-09-19-075514/report.json) and [stock removal](evidence/native-2026-09-19-080058/report.json) have focused native checks. The actual local incapacitated body can be loaded into a reserved bench and removed alive beside the authored door. | Direct completion/helper admission is disclosed. Held input, remote owner handshake, competing rescuers, disconnect/death/deletion during loading and real reconnect remain unproved. | -| Physical infantry | [Patrol](evidence/native-2026-09-19-070919/report.json), [HQ preemption/resumption](evidence/native-2026-09-19-072838/report.json) and [pending-spawn cancellation](evidence/native-2026-09-19-073601/report.json) pass without creating response forces. | The [real-perception HQ response](evidence/native-2026-09-19-092237/report.json) passes 35 clean assertions through original RTOs and both radio legs to a distinct original moving squad. The prisoner is arranged and temporarily protected; broader combat, interrupted reports and support losses still need qualification. | -| Physical mortar | [First projectile](evidence/2026-09-19-mortar-first-shot/report.json) passes 48 assertions through the actual uplink/HQ/downlink/native activity path, consuming one original HE shell and stopping without duplicates. [Exact inventory transfer](evidence/native-2026-09-19-083810/report.json) passes 119 assertions and restores all 27 original shells to their original owners. | Observation is synthetic; impact is unmeasured. Transfer fixture bypasses radio/scheduling and observed a synchronous callback. The [expiry fixture](evidence/native-2026-09-19-091306/report.json) also passes 48 clean assertions: two fresh commitments, then explicit stale-report withholding with no repeat order. Full salvo, genuine late callback, perception and remote ownership remain separate. | -| Dedicated compilation | [Regular Linux server](evidence/dedicated-2026-09-19-083213/review.json) compiles Core and reaches prison phase with zero players/36 AI inside a network namespace without external routes. | Four resource errors remain; [vanilla-only control](evidence/dedicated-2026-09-19-084040-vanilla/review.json) reproduces all four. No participant joined. This local-server route is diagnostic-only; public/authenticated hosting is not configured or qualified. | +| Integrated base loop | [Core 100619](evidence/native-2026-09-19-100619/report.json) completes two rounds, 612 assertions and zero errors, including canonical participant rejection/restored document recovery, rough/exact native markers, radio feedback, extraction and restart. [Companion 103025](evidence/native-2026-09-19-103025/report.json) completes two rounds, 96 assertions and zero errors at the committed checkpoint. | Scripted local integration with deliberate state/position changes, not a normal-input escape. Later addon edits require new source-bound checks. Earlier failures remain archived. | +| Ordinary game startup | [Chat 102737](evidence/game-2026-09-19-102737/report.json) loads all five addons in the regular game, verifies the header/MissionSystems and admits the real local controller to a living canonical prisoner, then observes a clean ready interval. | Explicit diagnostic noSplash and a scoped standalone round-local identity; no complete ordinary route, remote identity or manual input proof. [Admission design](local-singleplayer-admission.md). | +| Packed addon consumption | [Packed Core 110729](evidence/packed-core-2026-09-19-110729/report.json) passes ordinary startup from the archived project/PAK/resource database plus installed vanilla: exactly three expected addons, real canonical prisoner, a 15-second ready interval and zero captured errors. Package and log hashes are retained. | Artifact-bound startup with explicit noSplash; no loose successor addon was loaded. The artifact predates current mortar edits. [Packed Chat 113315](evidence/packed-chat-2026-09-19-113315/report.json) also passes startup from all five archived 111731 addons (fifteen exact artifacts), with no loose successor source, a real prisoner and zero captured errors. Native packaging remains unqualified: an [empty-addon control](native-packaging-control.md) reproduces the same UI resource-leak errors, without fixing or suppressing them. | +| Prison and scavenging | [Prisoner capacity](evidence/native-2026-09-19-063949/report.json) uses one real player plus eleven physical characters, exact starter kits and native clue transfers. [Prison boundary 100148](evidence/native-2026-09-19-100148/report.json) covers the gate/progression corrections. | Extra physical actors are not twelve connected clients. Native action completion and deliberately repositioned boundary crossings do not prove held input or walking through the gate/debris. Equipment scarcity and combat balance need playtesting. | +| Medicine and extraction casualties | [Medical treatment](evidence/native-2026-09-19-062406/report.json) demonstrates finite supplies and native recovery at its earlier snapshot. [Casualty 102037](evidence/native-2026-09-19-102037/report.json) passes 101 clean assertions at the committed checkpoint: grounded-aircraft checks, real incapacitation, helper rejection, seat/LOS constraints, one owner-handshake load and idempotent stop. [Native removal](evidence/native-2026-09-19-080058/report.json) proves the inherited exit mechanism. | Casualty loading explicitly adapts helper membership and invokes action completion. Held input, real remote ownership, competing rescuers and disconnect/death/deletion races remain separate. The older medical snapshot retains its historical catalog errors. | +| Infantry and HQ | [Actual perception response](evidence/native-2026-09-19-092237/report.json) carries an original soldier's observation through both physical radio legs and HQ to a different original squad, which physically moves. Patrol/preemption/resumption are implemented. | The prisoner is arranged and temporarily protected. Broader combat and interrupted/captured support require additional qualification; no response force is created for this test. | +| Finite support | [Mortar expiry](evidence/native-2026-09-19-091306/report.json) verifies fresh native commitments followed by stale-report withholding without duplicate orders. [Courier 095513](evidence/native-2026-09-19-095513/report.json) passes 154 clean assertions through actual radio, original-patrol walking, exact depot-shell delivery and patrol restoration. | Mortar observations are synthetic; impact accuracy and genuine late callbacks remain unproved. The new refresh now passes the bounded112900 fixture: three actual radio updates, eight physical launches, native event completion, 19 surviving original shells and 25 seconds without replay. Current expiry and broader support-loss checks remain separate. Courier depletion is arranged by physically sequestering the original 27 rounds, not firing or replacing them. Broader losses and multiplayer remain unqualified. | +| Aircraft mechanism | [Flight 110458](evidence/native-2026-09-19-110458-flight-heading-refusal/report.json) demonstrates consumed actor-local native controls and powered takeoff, with normal engine operation and finite fuel use. Correcting the yaw feedback field keeps observed heading near its 1.45-degree target. | The run **fails** its unchanged physical safety envelope: controlled hover/landing are not qualified. Later manual angular damping112502 kept drift below 8 metres but exceeded the 18 metre height bound; signed collective consumption is the next bounded diagnostic. This is a fixture-owned aircraft experiment, not an operational HQ flight service or extraction-piloting acceptance. Earlier input-consumption failures remain archived. | +| Independent runtime controls | [Linux dedicated startup](evidence/dedicated-2026-09-19-083213/review.json) prepares the empty Core mission in an isolated network namespace. Its four resource errors reproduce in a vanilla control. [Vanilla ordinary 102533](evidence/vanilla-game-2026-09-19-102533/report.json) reproduces the initial splash unknown-class error with exactly two vanilla addons and no successor. | No real dedicated client joined. The vanilla ordinary control remains failed despite entering the menu; it does not test scenario reload or input. [Splash diagnosis](normal-splash-audit.md). | ## Immediate work -1. **Qualify the next integrated source and retain cleanup regressions.** The two probe compilation failures are corrected and the later clean 091306/091641 runs compile that source. The scoped off-world medical-kit teardown passes 76 native assertions, including real resource-callback detachment and queued-initialization cancellation under explicit catalog-expiry injection. It does not reproduce the earlier spontaneous companion restart failure. The [092512 companion regression](evidence/native-2026-09-19-092512/report.json) now passes two full rounds,96 assertions and zero errors, with diagnostics disabled. The later prison-breach fixture is clean and ordinary Chat production startup passes after that correction. A current complete Core/companion loop is still required after further source changes; retain the earlier intermittent failure and distinguish explicit catalog-expiry injection from the later clean restart. -2. **Close physical support gaps.** A report ledger now prevents a cancelled/completed observation from repeatedly allocating mortar orders. The native expiry fixture verifies stale-report withholding and no repeated order while HQ remains active (48 assertions, zero errors). A newly authored native-input flight experiment compiles, but its [128-point](evidence/native-2026-09-19-091819-flight-pad-refusal/report.json) and [208-point](evidence/native-2026-09-19-093319-flight-clearance-refusal/report.json) surveys refuse every candidate before test-aircraft creation. The latter finds sufficiently flat terrain but all 23 eligible points fail the enlarged entity-clear column. The 377-point survey now finds a safe airport pad, but [native seating diagnostics](evidence/native-2026-09-19-095950-flight-occupancy-refusal/report.json) show an empty pilot seat and queued default group members. The later [101342 test](evidence/native-2026-09-19-101342-flight-drift-refusal/report.json) proves one seated pilot, measured footprint, one normal engine start, actual rotor speed and fuel consumption, but fails the 8 m drift bound while final native processing overwrites collective/cyclic demands. A final-callback correction is being tested. The 40 m clearance radius/60 m swept height and measured footprint guard remain unchanged. No flight pass is claimed. Powered flight, actual fuel use and safe landing remain unproved. The [finite courier](evidence/native-2026-09-19-095513/report.json) now passes 154 clean native assertions through actual radio, original-patrol walking, exact depot-shell delivery and patrol resumption. Its fixture sequesters 27 original shells to arrange depletion; broader courier losses and multiplayer remain separate. -3. **Qualify the ordinary playable route.** Check gate/equipment access, medical actions, finding the radio without fixture knowledge, defend/recover behavior, ground travel, real boarding/piloting/navigation and partial escape. Review authored layout and finite supplies from actual play. Preserve vanilla unconscious recovery and explicit administrator abandonment. -4. **Establish genuine multiplayer evidence.** The private dedicated runtime is installed and native empty-server startup is demonstrated. Real accepted client identities, joins/reconnects, remote ownership and replication remain outstanding; local bodies/callback injections are not substitutes. +1. **Prove the ordinary player route.** Use normal gate, inventory, document/map, radio and medical interactions; travel the authored route, board and pilot the actual extraction helicopter, and verify partial escape. Keep finite supplies, vanilla recovery and explicit round abandonment intact. Direct-completion fixtures cannot settle these usability questions. +2. **Stabilize the bounded flight experiment without weakening its gates.** Actor-local input consumption and powered takeoff are demonstrated. The yaw-axis correction holds heading, but pitch oscillation still prevents a hover/landing pass. Keep experimental controls separate from operational HQ support, retain failed observations, and re-run applicable integration checks after source changes. +3. **Establish real multiplayer behavior.** Test accepted client identities, simultaneous/late joins, preload cancellation, reserved-body reconnect/expiry, spent lives, spectator streaming, remote task/map/radio/result updates and seat contention. Local controller injections and helper actors are not substitutes for connected clients. +4. **Qualify current support and observer changes.** The refreshed full salvo now passes a source-bound native check; finish current expiry and support-loss regressions. Spectator reason messages and survivor-cycling guidance have been added and compiled; visible behavior and real-client streaming remain unverified. Exercise actual interrupted reports, captured/dead couriers, pending inventory callbacks and support losses. Preserve stock and original patrols; retain historical failures alongside source-bound successful regressions. ## First-release qualification -Cover simultaneous/late joins in each phase, preload cancellation, reconnect and connection-ID reuse, reserved bodies, spent lives, death/unconsciousness/treatment, spectators and streaming cleanup. Verify remote task/map/radio/result updates, settings authorization, seat contention, partial escape, empty-server behavior, defeat and repeated restart with up to twelve connected players. +The [acceptance ledger](acceptance.json) still requires the complete ordinary escape loop, death/unconsciousness/recovery, reconnect/respawn/spectators, partial escape, defeat/restart, interrupted/stale reports, support/ammunition losses and duplicate-free cleanup with up to twelve connected players. A passed development checkpoint does not promote those pending cases. -Collect matched original/successor workloads with repeated client-frame and server-tick measurements. No FPS improvement is demonstrated; the [comparison tool](performance-comparison.md) currently has synthetic regression evidence only. Complete provenance/dependency review, build/test the package under successor identities and satisfy the [release checker](release-qualification.md) with applicable source-bound evidence. A [deterministic development source bundle](development-source-bundle.md) can preview or hand off the five projects; it is not a native `.pak` or qualified release, and release-mode requests remain gated. No release package is published. +Collect matched original/successor workloads with repeated client-frame and server-tick measurements. **No FPS improvement is demonstrated**; the [comparison tool](performance-comparison.md) has synthetic regression evidence only. Complete provenance/dependency review, obtain a clean native build and satisfy the [release checker](release-qualification.md). The [packed Core startup](packed-core-startup.md) is now demonstrated for its exact archived PAK, while the [packaging shutdown/control failures](native-packaging-control.md) remain unresolved and unqualified. The [development source bundle](development-source-bundle.md) provides editable projects; it is separate from that native candidate and from a qualified release. No release package is published. -Original mission sources remain read-only. Hidden test displays, private profiles/prefixes and muted test audio keep engine work off the user's monitors. RHS, additional terrains, full original feature parity, alternate starts and distant-unit simulation remain later scope. Historical audits and evidence describe their own snapshots; the [validation ledger](validation.md) records both failures and subsequent fixes. +Original missions remain untouched. Engine tests use private profiles/prefixes, hidden displays and muted test audio. RHS, additional terrains, complete original feature parity, alternate starts and distant-unit simulation remain later scope. The [validation ledger](validation.md) preserves the detailed historical checkpoints and failures. diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/console.log.txt b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/console.log.txt new file mode 100644 index 0000000..8ea8423 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/console.log.txt @@ -0,0 +1,595 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48\console.log started at 2026-09-19 10:40:48 (2026-09-19 08:40:48 UTC) + +10:40:48.698 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48' to filesystem under name logs +10:40:48.698 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:40:48.698 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:40:48.700 PROFILING : Workbench Create Engine took: 10.331000 ms +10:40:49.734 INIT : INIT : Workbench Init Engine +10:40:49.734 ENGINE : Initializing engine, version 192142 +10:40:49.734 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +10:40:49.743 ENGINE : Addon dirs: +10:40:49.743 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +10:40:49.743 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:40:49.743 ENGINE : dir: './addons' +10:40:49.743 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:40:49.743 ENGINE : Available addons: +10:40:49.743 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:40:49.743 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:40:49.743 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:40:49.743 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:40:49.743 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:40:49.743 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:40:49.743 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:40:49.744 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:40:49.861 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:40:49.865 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:40:49.865 ENGINE : CPU vendor : AuthenticAMD +10:40:49.865 ENGINE : CPU type : 2 +10:40:49.865 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:40:49.865 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:40:49.865 ENGINE : CPU count logical : 16 +10:40:49.865 ENGINE : CPU count physical : 8 +10:40:49.865 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:40:49.865 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:40:49.866 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:40:50.002 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +10:40:50.004 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:40:50.004 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48/resourceDatabase.rdb) +10:40:50.155 RESOURCES : RESOURCES : ResourceDB: full scan +10:40:50.160 RESOURCES : RESOURCES : scanning... +10:40:50.160 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:40:50.163 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:40:50.300 RESOURCES : RESOURCES : scanning @"core" +10:40:50.303 RESOURCES : RESOURCES : scanning @"profile" +10:40:50.304 RESOURCES : RESOURCES : scanning @"logs" +10:40:50.304 RESOURCES : RESOURCES : processing meta-files... +10:40:50.371 RESOURCES : RESOURCES : processing files... +10:40:50.382 INIT : Workbench startup +10:40:50.382 INIT : Workbench Init Engine +10:40:50.382 RESOURCES : ResourceDB: full scan +10:40:50.382 RESOURCES : processing files... +10:40:50.382 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:40:50.382 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:40:50.382 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:40:50.382 RESOURCES : RESOURCES : processing folders... +10:40:50.389 RESOURCES : RESOURCES : creating GUID-item mapping... +10:40:50.404 RESOURCES : RESOURCES : building tree... +10:40:50.455 PROFILING : ResourceDB: full scan took: 300.610200 ms +10:40:50.456 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:40:50.458 RESOURCES : ResourceDB: written 6865/6865 bytes +10:40:50.458 RESOURCES : ResourceDB: cache successfully saved +10:40:50.458 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:40:50.460 RESOURCES : ResourceDB: written 206/206 bytes +10:40:50.460 RESOURCES : ResourceDB: cache successfully saved +10:40:50.460 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48/resourceDatabase.rdb) +10:40:50.462 RESOURCES : ResourceDB: written 162/162 bytes +10:40:50.462 RESOURCES : ResourceDB: cache successfully saved +10:40:50.462 ENGINE : GameProject load +10:40:50.462 ENGINE : Loaded addons: +10:40:50.462 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:40:50.462 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:40:50.462 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:40:50.464 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:40:50.464 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:40:50.464 ENGINE : Engine user settings config loaded +10:40:50.464 PROFILING : Settings changed took: 0.001800 ms +10:40:50.572 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:40:50.574 RENDER : Basic screen setup: +10:40:50.574 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:40:50.574 RENDER : MSAA : none +10:40:50.586 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:40:50.586 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:40:50.586 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:40:50.586 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:40:50.586 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:40:50.586 RENDER : AMD AGS correctly initialized +10:40:50.587 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 +10:40:50.587 RENDER : Detected output devices: +10:40:50.587 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:40:50.587 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:40:50.587 RENDER : Concurrent frames limit 2 +10:40:50.661 RENDER : DX12 device successfully created by AMD AGS library +10:40:50.661 RENDER : * user markers not supported in this version AMD SW +10:40:50.661 RENDER : Graphics device features +10:40:50.661 RENDER : Needed: +10:40:50.661 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:40:50.661 RENDER : Optional: +10:40:50.661 RENDER : * Allow tearing (VSYNC) : 1 +10:40:50.661 RENDER : * 16 bits : 1 +10:40:50.661 RENDER : * Resource heap tier : 3 +10:40:50.661 RENDER : * Persistent heaps (DRED) : 1 +10:40:50.661 RENDER : * DRED 1.2 is supported by compiler +10:40:50.682 RENDER : Main RT format setup. +10:40:50.682 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:40:50.682 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:40:50.684 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:40:50.712 PROFILING : Settings changed took: 0.017000 ms +10:40:51.217 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:40:51.217 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:40:51.217 AUDIO : Audio client: +10:40:51.217 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:40:51.220 RENDER : RENDER : Reload shaders +10:40:51.220 RENDER : Enfusion shader version 13 +10:40:51.220 INIT : INIT : ShaderListReload +10:40:51.220 PROFILING : ShaderListReload took: 0.000400 ms +10:40:51.360 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:40:51.360 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:40:51.360 AUDIO : Audio client: +10:40:51.360 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:40:51.491 RENDER : Loaded 3752 newer shader binaries +10:40:51.491 PROFILING : Reload shaders took: 270.722900 ms +10:40:51.491 ENGINE : Initializing inputs. +10:40:51.506 NETWORK : Initializing networking. +10:40:51.506 NETWORK : Using new GameRplScheduler. +10:40:51.507 SCRIPT : SCRIPT : Initializing scripts +10:40:51.507 SCRIPT : SCRIPT : ScriptProjectManager init +10:40:52.348 PROFILING : ScriptProjectManager init took: 840.361100 ms +10:40:52.388 PROFILING : Initializing scripts took: 880.934300 ms +10:40:52.406 ENGINE : Enfusion engine successfully created. +10:40:52.406 PROFILING : Workbench Init Engine took: 2671.632700 ms +10:40:52.406 INIT : INIT : Workbench Create Game +10:40:52.417 GUI : Using default language (en_us) +10:40:52.417 GUI : Loading 'en_us' localization file. +10:40:52.417 INIT : INIT : Loading StringTable +10:40:52.443 PROFILING : Loading StringTable took: 25.565500 ms +10:40:52.443 SCRIPT : SCRIPT : Compiling GameLib scripts +10:40:52.503 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:40:52.504 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:40:52.505 PROFILING : Compiling GameLib scripts took: 61.654100 ms +10:40:52.505 SCRIPT : SCRIPT : Compiling Game scripts +10:40:53.620 INIT : Workbench Create Game +10:40:53.620 SCRIPT : Compiling Game scripts +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:40:53.788 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:53.907 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:40:53.938 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:40:54.067 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:40:54.137 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.183 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:40:54.183 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:40:54.208 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.240 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:40:54.512 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:40:54.518 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: b14ae3e1 +10:40:54.560 PROFILING : Compiling Game scripts took: 2055.105100 ms +10:40:54.565 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:40:54.608 ENGINE : Game successfully created. +10:40:54.609 PROFILING : Workbench Create Game took: 2203.585100 ms +10:40:54.617 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +10:40:55.462 INIT : INIT : Workbench Reload Game +10:40:55.463 ENGINE : Game destroyed. +10:40:55.468 GUI : Using default language (en_us) +10:40:55.469 GUI : Loading 'en_us' localization file. +10:40:55.469 INIT : INIT : Loading StringTable +10:40:55.478 PROFILING : Loading StringTable took: 9.065800 ms +10:40:55.478 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:40:55.484 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:40:55.484 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:40:55.484 ENGINE : Game successfully created. +10:40:55.484 ENGINE : Game successfully initialized. +10:40:55.485 PROFILING : Workbench Reload Game took: 22.755600 ms +10:40:56.278 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:40:57.311 PROFILING : Entities load took: 1032.765200 ms +10:40:57.323 WORLD : WORLD : CreateEntities +10:40:57.328 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:40:57.329 PROFILING : NotifyBeforeEntitiesCreated took: 0.003000 ms +10:40:57.329 WORLD : WORLD : Wait for preloading data +10:40:57.329 PROFILING : Wait for preloading data took: 0.002700 ms +10:40:57.453 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:40:57.453 PROFILING : PROFILING : Terrain load +10:40:59.087 PROFILING : Terrain load took: 1633.408100 ms +10:41:03.308 WORLD : CreateEntities +10:41:03.309 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:41:03.309 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:41:03.309 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:41:13.455 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:41:13.455 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005800 ms +10:41:13.890 WORLD : WORLD : NotifyEntitiesInitialized +10:41:13.890 TERRAIN : TERRAIN : Initializing road networks... +10:41:13.892 PROFILING : Initializing road networks... took: 2.329400 ms +10:41:13.893 PROFILING : NotifyEntitiesInitialized took: 2.740000 ms +10:41:13.893 PROFILING : CreateEntities took: 16569.199500 ms +10:41:14.068 PROFILING : * WorldEditor: LoadWorld: 17795.708300 ms +10:41:15.684 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:41:15.684 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:41:15.685 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:41:15.685 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:41:15.776 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:41:15.801 BACKEND : Attempting online Game Config instead. +10:41:19.156 INIT : INIT : Workbench Reload Game +10:41:19.158 ENGINE : Game destroyed. +10:41:19.165 GUI : Using default language (en_us) +10:41:19.165 GUI : Loading 'en_us' localization file. +10:41:19.166 INIT : INIT : Loading StringTable +10:41:19.186 PROFILING : Loading StringTable took: 20.075600 ms +10:41:19.186 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:41:19.194 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:41:19.194 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:41:19.194 ENGINE : Game successfully created. +10:41:19.194 ENGINE : Game successfully initialized. +10:41:19.194 PROFILING : Workbench Reload Game took: 38.321500 ms +10:41:19.196 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:41:19.247 PLATFORM : Save data from container 'settings' have been loaded +10:41:19.338 PLATFORM : Save data from container 'sessions' have been loaded +10:41:19.339 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:41:19.339 ENGINE : Game user settings config loaded +10:41:19.436 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:41:19.443 WORLD : WORLD : Game::LoadEntities +10:41:19.443 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:41:19.444 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:41:19.444 WORLD : WORLD : CreateEntities +10:41:19.444 WORLD : WORLD : CreateEntities +10:41:19.444 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:41:19.448 RESOURCES : Loaded mission headers from 7 addon(s)! +10:41:19.448 PROFILING : NotifyBeforeEntitiesCreated took: 3.681500 ms +10:41:19.448 WORLD : WORLD : Wait for preloading data +10:41:19.448 PROFILING : Wait for preloading data took: 0.000400 ms +10:41:24.069 WORLD : Game::LoadEntities +10:41:24.069 WORLD : CreateEntities +10:41:24.069 WORLD : CreateEntities +10:41:24.069 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:41:24.069 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:41:24.069 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:41:25.513 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:41:25.513 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:41:25.513 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:41:25.518 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:41:25.518 ENTITY : CreateComponent 'Hierarchy' +10:41:25.518 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:41:25.519 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:41:25.519 ENTITY : CreateComponent 'Hierarchy' +10:41:25.519 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:41:25.519 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:41:25.519 ENTITY : CreateComponent 'Hierarchy' +10:41:25.519 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:41:30.514 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:41:30.514 PROFILING : NotifyBeforeEntitiesInitialized took: 0.051700 ms +10:41:32.495 WORLD : InitEntities 'world' +10:41:32.495 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:41:32.495 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:41:32.521 WORLD : InitEntities 'world' +10:41:32.521 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:41:32.521 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:41:32.522 WORLD : WORLD : NotifyEntitiesInitialized +10:41:32.522 TERRAIN : TERRAIN : Initializing road networks... +10:41:32.524 PROFILING : Initializing road networks... took: 2.427600 ms +10:41:32.524 DEFAULT : DEFAULT : WorldVolumesCollection +10:41:32.584 PROFILING : WorldVolumesCollection took: 59.748300 ms +10:41:32.584 INIT : INIT : SoundWorldInit +10:41:32.598 PROFILING : SoundWorldInit took: 13.438600 ms +10:41:32.598 PROFILING : NotifyEntitiesInitialized took: 75.860200 ms +10:41:32.598 PROFILING : CreateEntities took: 13153.003800 ms +10:41:32.598 PROFILING : CreateEntities took: 13153.202400 ms +10:41:32.598 WORLD : WORLD : Wait for preloading data around camera +10:41:32.598 PROFILING : Wait for preloading data around camera took: 0.000900 ms +10:41:32.598 WORLD : WORLD : EOnActivate +10:41:32.630 PROFILING : EOnActivate took: 31.962300 ms +10:41:32.631 PROFILING : Game::LoadEntities took: 13187.036300 ms +10:41:32.917 DEFAULT : Entered offline game state. +10:41:33.020 NETWORK : Player connected: connectionID=2147483646 +10:41:33.021 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:41:33.021 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:41:33.026 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.026 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:41:33.027 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.027 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! +10:41:33.027 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! +10:41:33.029 SCRIPT (W): Can't open config file "" +10:41:33.035 WORLD : InitEntities 'world' +10:41:33.035 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.035 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:41:33.035 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:41:33.035 SCRIPT (W): Slot_Chat Has no Content! +10:41:33.036 SCRIPT (W): Slot_VON Has no Content! +10:41:33.036 SCRIPT (W): Slot_AvailableActions Has no Content! +10:41:33.036 SCRIPT (W): Slot_Vehicle Has no Content! +10:41:33.036 SCRIPT (W): Slot_GameVersion Has no Content! +10:41:33.036 SCRIPT (W): Slot_Notifications Has no Content! +10:41:33.036 SCRIPT (W): Slot_Hints Has no Content! +10:41:33.050 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:41:33.050 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:41:33.050 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:41:33.050 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. +10:41:33.051 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. +10:41:33.054 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:41:33.054 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:41:33.055 NETWORK : Players connecting: 0 +10:41:33.055 NETWORK : Players connected: 1 / 1 +10:41:33.084 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +10:41:33.086 PROFILING : Workbench startup took: 44448.804600 ms +10:41:33.110 WORLD : Frame start +10:41:33.110 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:41:33.123 WORLD : UpdateEntities +10:41:33.123 WORLD : Frame +10:41:33.123 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:41:33.288 WORLD : UpdateEntities +10:41:33.288 WORLD : PostFrame +10:41:33.289 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:41:33.289 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:41:33.333 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:41:33.334 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:41:33.334 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:41:33.334 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:41:33.474 RENDER : RENDER : ObjectsHeightMap::Build +10:41:33.475 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:41:33.631 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 156.229200 ms +10:41:33.639 PROFILING : ObjectsHeightMap::Build took: 163.751400 ms +10:41:34.798 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:41:34.819 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:41:34.820 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:41:34.853 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:41:34.856 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:41:34.904 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:41:34.904 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:41:34.909 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:41:34.958 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:41:34.958 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:41:34.960 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:41:34.960 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:41:34.963 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:41:34.964 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:41:34.965 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:41:34.966 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:41:34.966 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:41:34.966 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:41:34.966 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:41:34.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:41:34.967 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.967 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:41:34.967 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.967 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:41:34.968 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.969 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:35.738 WORLD : UpdateEntities +10:41:35.738 WORLD : AfterPostSimulate +10:41:35.738 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.812 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.067 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.529,7499.7> up=0.995679 +10:41:36.067 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +10:41:36.068 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:36.068 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6138,7501.97> +10:41:36.068 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3138,7501.97> terrainY=63.3165 tireTerrainGap=-0.00265503 +10:41:36.068 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6138,7501.97> radius=0.3 bottom=<7012.07,63.3138,7501.97> fraction=0.442825 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00257874 +10:41:36.068 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6012,7497.71> +10:41:36.068 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1512,7497.71> terrainY=64.1555 tireTerrainGap=-0.00437164 +10:41:36.069 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6012,7497.71> radius=0.45 bottom=<7009.88,64.1512,7497.71> fraction=0.434661 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00437164 +10:41:36.069 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2631,7497.74> +10:41:36.069 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8131,7497.74> terrainY=63.8179 tireTerrainGap=-0.00478745 +10:41:36.069 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2631,7497.74> radius=0.45 bottom=<7014.42,63.8131,7497.74> fraction=0.432778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00478745 +10:41:36.069 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:36.329 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.329 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.330 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.330 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.841 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:36.842 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.842 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.162 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5353,7499.71> up=0.994343 +10:41:37.162 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +10:41:37.162 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:37.162 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6195,7501.99> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3195,7501.99> terrainY=63.3145 tireTerrainGap=0.00498962 +10:41:37.163 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6195,7501.99> radius=0.3 bottom=<7012.07,63.3195,7501.99> fraction=0.477578 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00506592 +10:41:37.163 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00331116 +10:41:37.163 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469731 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00334167 +10:41:37.163 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2654,7497.78> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8154,7497.78> terrainY=63.8155 tireTerrainGap=-8.01086e-05 +10:41:37.164 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2654,7497.78> radius=0.45 bottom=<7014.47,63.8154,7497.78> fraction=0.453889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000144958 +10:41:37.164 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.165 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.663 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.665 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:38.169 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994314 +10:41:38.170 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +10:41:38.170 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:38.170 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6146,7502.01> +10:41:38.170 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3146,7502.01> terrainY=63.3115 tireTerrainGap=0.00304794 +10:41:38.170 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6146,7502.01> radius=0.3 bottom=<7012.07,63.3146,7502.01> fraction=0.468411 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00305176 +10:41:38.170 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5936,7497.72> +10:41:38.170 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1436,7497.72> terrainY=64.1426 tireTerrainGap=0.00101471 +10:41:38.171 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5936,7497.72> radius=0.45 bottom=<7009.97,64.1436,7497.72> fraction=0.459035 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000991821 +10:41:38.171 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.83> +10:41:38.171 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.83> terrainY=63.8125 tireTerrainGap=-0.00282669 +10:41:38.171 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.83> radius=0.45 bottom=<7014.51,63.8097,7497.83> fraction=0.441544 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00286102 +10:41:38.171 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.684 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:39.187 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994375 +10:41:39.187 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:41:39.187 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:39.187 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:41:39.188 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00167465 +10:41:39.188 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:41:39.188 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:41:39.188 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00260925 +10:41:39.189 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:41:39.189 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:41:39.189 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00188065 +10:41:39.189 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:41:39.189 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.191 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.706 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:40.208 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994375 +10:41:40.208 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:41:40.209 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:40.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:41:40.209 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00167465 +10:41:40.209 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:41:40.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:41:40.209 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00260925 +10:41:40.210 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:41:40.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:41:40.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00188065 +10:41:40.210 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:41:40.210 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:40.210 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:40.211 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:41:40.211 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:41:40.212 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:41:40.213 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:41:40.213 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:41:40.213 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:41:40.213 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:41:40.213 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:41:40.320 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:41:40.361 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.586 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.586 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:41:40.586 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:41:40.587 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:41:40.587 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:41:40.588 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:41:40.588 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.589 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.589 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:41:40.589 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:41:40.590 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:41:40.590 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:41:40.591 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:41:40.591 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:41:40.592 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:41:40.592 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:41:40.608 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:41:40.610 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:41:40.610 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:41:40.611 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:41:40.611 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:41:41.089 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:41:41.089 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:41:41.097 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:41:41.097 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:41:41.595 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:41:41.595 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:41:41.595 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:41:41.595 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:41:41.596 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:41:41.616 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:41:41.617 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:41:42.096 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28992 +10:41:42.096 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:41:42.097 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000824D3CA8> activeSeat=PilotCompartmentSlot<0x00000000824D3CA8> group=<0x00000001BACB9BF0> SCR_AIGroup actualGroup=<0x00000001BACB9BF0> SCR_AIGroup +10:41:42.097 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:41:42.097 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:41:42.097 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:41:42.097 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:41:44.128 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10014.9 remainingMs=26959.8 +10:41:44.128 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:41:44.129 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398823 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398823 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000824D3CA8> activeSeat=PilotCompartmentSlot<0x00000000824D3CA8> group=<0x00000001BACB9BF0> SCR_AIGroup actualGroup=<0x00000001BACB9BF0> SCR_AIGroup +10:41:44.129 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:41:44.129 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:41:44.129 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996361 entityOrigin=<4801.01,27.5764,11487.4> +10:41:44.130 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:41:44.631 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:41:45.132 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=0 +10:41:45.132 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0138893 drift=0.0279517 speed=0.041193 vertical=-0.0209191 up=0.996208 groundContact=1 fuel=1938.75 engine=0 +10:41:45.133 SCRIPT : ERR POWERED INPUT: pilotHooks=0 vehicleHooks=10 readback=0 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:41:45.133 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=0 applyCallbacks=15 beforeWriteSequence=0 writtenAgeMs=-1 beforeWriteAgeMs=41.1582 +10:41:45.133 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:41:45.133 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:41:45.133 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:41:45.134 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/error.log.txt b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/error.log.txt new file mode 100644 index 0000000..0f2457b --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48\error.log started at 2026-09-19 10:40:50 (2026-09-19 08:40:50 UTC) + +10:40:50.382 INIT : Workbench startup +10:40:50.382 INIT : Workbench Init Engine +10:40:50.382 RESOURCES : ResourceDB: full scan +10:40:50.382 RESOURCES : processing files... +10:40:50.382 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:40:50.382 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:40:50.382 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:40:53.620 INIT : Workbench Create Game +10:40:53.620 SCRIPT : Compiling Game scripts +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:40:53.788 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:53.907 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:40:53.938 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:40:54.067 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:40:54.137 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.182 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:40:54.183 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:40:54.208 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.240 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:41:03.308 WORLD : CreateEntities +10:41:03.309 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:41:03.309 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:41:03.309 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:41:19.196 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:41:24.069 WORLD : Game::LoadEntities +10:41:24.069 WORLD : CreateEntities +10:41:24.069 WORLD : CreateEntities +10:41:24.069 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:41:24.069 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:41:24.069 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:41:25.513 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:41:25.513 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:41:25.513 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:41:25.513 ENTITY : CreateComponent 'Hierarchy' +10:41:25.513 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:41:25.518 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:41:25.518 ENTITY : CreateComponent 'Hierarchy' +10:41:25.518 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:41:25.518 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:41:25.519 ENTITY : CreateComponent 'Hierarchy' +10:41:25.519 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:41:25.519 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:41:25.519 ENTITY : CreateComponent 'Hierarchy' +10:41:25.519 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:41:25.523 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:41:25.523 ENTITY : CreateComponent 'Hierarchy' +10:41:25.523 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:41:32.495 WORLD : InitEntities 'world' +10:41:32.495 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:41:32.495 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:41:33.026 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.026 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:41:33.027 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.027 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! +10:41:33.027 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! +10:41:33.029 SCRIPT (W): Can't open config file "" +10:41:33.034 WORLD : InitEntities 'world' +10:41:33.035 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:41:33.035 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:41:33.035 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:41:33.035 SCRIPT (W): Slot_Chat Has no Content! +10:41:33.036 SCRIPT (W): Slot_VON Has no Content! +10:41:33.036 SCRIPT (W): Slot_AvailableActions Has no Content! +10:41:33.036 SCRIPT (W): Slot_Vehicle Has no Content! +10:41:33.036 SCRIPT (W): Slot_GameVersion Has no Content! +10:41:33.036 SCRIPT (W): Slot_Notifications Has no Content! +10:41:33.036 SCRIPT (W): Slot_Hints Has no Content! +10:41:33.050 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:41:33.050 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:41:33.050 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:41:33.050 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. +10:41:33.051 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. +10:41:33.054 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:41:33.288 WORLD : UpdateEntities +10:41:33.288 WORLD : PostFrame +10:41:33.289 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:41:33.289 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:41:33.333 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:41:33.334 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:41:33.334 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:41:33.334 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:41:35.738 WORLD : UpdateEntities +10:41:35.738 WORLD : AfterPostSimulate +10:41:35.738 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:41:45.133 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:41:45.134 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/headless-launch.log.txt new file mode 100644 index 0000000..8ee6f9c --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a003a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a003a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a003a4 + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x5555618947c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555618947c0 +[Gamescope WSI] Destroyed swapchain: 0x5555618947c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x5555618947c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555618947c0 +[Gamescope WSI] Destroyed swapchain: 0x5555618947c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x5555618947c0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source-sha256.json new file mode 100644 index 0000000..356ad79 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "a7f98825ca4ee1408e6de27f48dc2056771f26fb74d78fd4acfb338391a32959", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source.json b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source.json new file mode 100644 index 0000000..84e7d9e --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "8dde5f91-dc88-4bb5-a3f9-5dc7a66c98a1", + "captured_unix": 1789807246.9820368, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "e42ddf840536487286b66c014e3a4177d20d352003727fd3be20dbf6aa6776ff" +} diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/report.json b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/report.json new file mode 100644 index 0000000..2f44cb8 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-104048-flight-action-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 63, + "script_or_runtime_failures": [ + "10:41:45.133 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid", + "10:41:45.134 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "10:41:45.133 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid", + "10:41:45.134 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/runner.json.txt new file mode 100644 index 0000000..ac38ef6 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789807306.3359635, + "console_sha256": "408322baa4c12a3a2f0dcb0722857b0ddb1b67d7b99ab24667874965bcd18ba5", + "end_source_sha256": "e42ddf840536487286b66c014e3a4177d20d352003727fd3be20dbf6aa6776ff", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "8dde5f91-dc88-4bb5-a3f9-5dc7a66c98a1", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "e42ddf840536487286b66c014e3a4177d20d352003727fd3be20dbf6aa6776ff", + "started_unix": 1789807246.982116, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-40-48", + "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/native-2026-09-19-104048-flight-action-refusal/script.log.txt b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/script.log.txt new file mode 100644 index 0000000..f2d3f7f --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/script.log.txt @@ -0,0 +1,306 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-40-48\script.log started at 2026-09-19 10:40:51 (2026-09-19 08:40:51 UTC) + +10:40:51.507 SCRIPT : SCRIPT : Initializing scripts +10:40:51.507 SCRIPT : SCRIPT : ScriptProjectManager init +10:40:52.443 SCRIPT : SCRIPT : Compiling GameLib scripts +10:40:52.503 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:40:52.504 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:40:52.505 SCRIPT : SCRIPT : Compiling Game scripts +10:40:53.620 SCRIPT : Compiling Game scripts +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:40:53.620 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:40:53.788 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:53.907 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:40:53.938 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:40:54.036 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:40:54.067 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:40:54.136 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:40:54.137 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.181 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.183 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:40:54.183 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:40:54.208 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:40:54.240 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:40:54.512 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:40:54.518 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: b14ae3e1 +10:40:55.484 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:40:55.484 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:41:15.776 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:41:19.194 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:41:19.194 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:41:32.495 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:41:32.521 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:41:33.027 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! +10:41:33.027 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! +10:41:33.029 SCRIPT (W): Can't open config file "" +10:41:33.035 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:41:33.035 SCRIPT (W): Slot_Chat Has no Content! +10:41:33.036 SCRIPT (W): Slot_VON Has no Content! +10:41:33.036 SCRIPT (W): Slot_AvailableActions Has no Content! +10:41:33.036 SCRIPT (W): Slot_Vehicle Has no Content! +10:41:33.036 SCRIPT (W): Slot_GameVersion Has no Content! +10:41:33.036 SCRIPT (W): Slot_Notifications Has no Content! +10:41:33.036 SCRIPT (W): Slot_Hints Has no Content! +10:41:33.050 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. +10:41:33.051 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. +10:41:33.054 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:41:33.110 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:41:33.123 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:41:33.289 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:41:34.798 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:41:34.819 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:41:34.820 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:41:34.853 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:41:34.856 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:41:34.904 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:41:34.904 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:41:34.909 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:41:34.958 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:41:34.958 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:41:34.960 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:41:34.960 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:41:34.963 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:41:34.964 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:41:34.965 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:41:34.966 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:41:34.966 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:41:34.966 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:41:34.966 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:41:34.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:41:34.967 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.967 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:41:34.967 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.967 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:41:34.967 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:41:34.968 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.968 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:34.969 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.811 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:35.812 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.067 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.529,7499.7> up=0.995679 +10:41:36.067 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +10:41:36.068 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:36.068 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6138,7501.97> +10:41:36.068 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3138,7501.97> terrainY=63.3165 tireTerrainGap=-0.00265503 +10:41:36.068 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6138,7501.97> radius=0.3 bottom=<7012.07,63.3138,7501.97> fraction=0.442825 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00257874 +10:41:36.068 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6012,7497.71> +10:41:36.068 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1512,7497.71> terrainY=64.1555 tireTerrainGap=-0.00437164 +10:41:36.069 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6012,7497.71> radius=0.45 bottom=<7009.88,64.1512,7497.71> fraction=0.434661 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00437164 +10:41:36.069 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2631,7497.74> +10:41:36.069 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8131,7497.74> terrainY=63.8179 tireTerrainGap=-0.00478745 +10:41:36.069 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2631,7497.74> radius=0.45 bottom=<7014.42,63.8131,7497.74> fraction=0.432778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00478745 +10:41:36.069 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:36.329 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.329 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.330 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.330 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:41:36.842 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:36.842 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:36.842 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.162 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5353,7499.71> up=0.994343 +10:41:37.162 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +10:41:37.162 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:37.162 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6195,7501.99> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3195,7501.99> terrainY=63.3145 tireTerrainGap=0.00498962 +10:41:37.163 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6195,7501.99> radius=0.3 bottom=<7012.07,63.3195,7501.99> fraction=0.477578 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00506592 +10:41:37.163 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00331116 +10:41:37.163 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469731 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00334167 +10:41:37.163 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2654,7497.78> +10:41:37.163 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8154,7497.78> terrainY=63.8155 tireTerrainGap=-8.01086e-05 +10:41:37.164 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2654,7497.78> radius=0.45 bottom=<7014.47,63.8154,7497.78> fraction=0.453889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000144958 +10:41:37.164 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.164 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:41:37.165 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.664 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.664 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:37.665 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:41:38.169 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994314 +10:41:38.170 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +10:41:38.170 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:38.170 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6146,7502.01> +10:41:38.170 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3146,7502.01> terrainY=63.3115 tireTerrainGap=0.00304794 +10:41:38.170 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6146,7502.01> radius=0.3 bottom=<7012.07,63.3146,7502.01> fraction=0.468411 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00305176 +10:41:38.170 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5936,7497.72> +10:41:38.170 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1436,7497.72> terrainY=64.1426 tireTerrainGap=0.00101471 +10:41:38.171 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5936,7497.72> radius=0.45 bottom=<7009.97,64.1436,7497.72> fraction=0.459035 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000991821 +10:41:38.171 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.83> +10:41:38.171 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.83> terrainY=63.8125 tireTerrainGap=-0.00282669 +10:41:38.171 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.83> radius=0.45 bottom=<7014.51,63.8097,7497.83> fraction=0.441544 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00286102 +10:41:38.171 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.172 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.683 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:38.684 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:41:39.187 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994375 +10:41:39.187 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:41:39.187 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:39.187 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:41:39.188 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00167465 +10:41:39.188 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:41:39.188 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:41:39.188 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00260925 +10:41:39.189 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:41:39.189 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:41:39.189 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00188065 +10:41:39.189 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:41:39.189 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.190 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.191 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:41:39.706 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:39.707 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:40.208 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994375 +10:41:40.208 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:41:40.209 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:41:40.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:41:40.209 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00167465 +10:41:40.209 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:41:40.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:41:40.209 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00260925 +10:41:40.210 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:41:40.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:41:40.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00188065 +10:41:40.210 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:41:40.210 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:41:40.210 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:41:40.211 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:41:40.211 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:41:40.212 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:41:40.213 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:41:40.213 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:41:40.213 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:41:40.213 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:41:40.213 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:41:40.320 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:41:40.361 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:41:40.585 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.586 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.586 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:41:40.586 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:41:40.586 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:41:40.587 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:41:40.587 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:41:40.587 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:41:40.588 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:41:40.588 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:41:40.588 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.589 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:41:40.589 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:41:40.589 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:41:40.589 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:41:40.590 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:41:40.590 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.590 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:41:40.591 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:41:40.591 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:41:40.591 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:41:40.592 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:41:40.592 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:41:40.592 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:41:40.607 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:41:40.608 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:41:40.609 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:41:40.610 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:41:40.610 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:41:40.611 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:41:40.611 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:41:40.612 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:41:41.089 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:41:41.089 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:41:41.097 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:41:41.097 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:41:41.595 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:41:41.595 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:41:41.595 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:41:41.595 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:41:41.596 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:41:41.616 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:41:41.617 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:41:42.096 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28992 +10:41:42.096 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:41:42.097 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000824D3CA8> activeSeat=PilotCompartmentSlot<0x00000000824D3CA8> group=<0x00000001BACB9BF0> SCR_AIGroup actualGroup=<0x00000001BACB9BF0> SCR_AIGroup +10:41:42.097 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:41:42.097 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:41:42.097 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:41:42.097 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:41:44.128 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10014.9 remainingMs=26959.8 +10:41:44.128 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:41:44.129 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398823 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA3DE730> @"ENTITY:4611686018427390729" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398823 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000824D3CA8> activeSeat=PilotCompartmentSlot<0x00000000824D3CA8> group=<0x00000001BACB9BF0> SCR_AIGroup actualGroup=<0x00000001BACB9BF0> SCR_AIGroup +10:41:44.129 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:41:44.129 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:41:44.129 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996361 entityOrigin=<4801.01,27.5764,11487.4> +10:41:44.130 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:41:44.631 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:41:45.132 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=0 +10:41:45.133 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0138893 drift=0.0279517 speed=0.041193 vertical=-0.0209191 up=0.996208 groundContact=1 fuel=1938.75 engine=0 +10:41:45.133 SCRIPT : ERR POWERED INPUT: pilotHooks=0 vehicleHooks=10 readback=0 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:41:45.133 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=0 applyCallbacks=15 beforeWriteSequence=0 writtenAgeMs=-1 beforeWriteAgeMs=41.1582 +10:41:45.133 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:41:45.133 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:41:45.133 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:41:45.134 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-sha256.json new file mode 100644 index 0000000..356ad79 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104048-flight-action-refusal/source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "a7f98825ca4ee1408e6de27f48dc2056771f26fb74d78fd4acfb338391a32959", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/console.log.txt b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/console.log.txt new file mode 100644 index 0000000..0e9d48a --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/console.log.txt @@ -0,0 +1,594 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56\console.log started at 2026-09-19 10:42:56 (2026-09-19 08:42:56 UTC) + +10:42:56.357 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56' to filesystem under name logs +10:42:56.357 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:42:56.357 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:42:56.359 PROFILING : Workbench Create Engine took: 10.147200 ms +10:42:57.396 INIT : INIT : Workbench Init Engine +10:42:57.396 ENGINE : Initializing engine, version 192142 +10:42:57.396 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +10:42:57.405 ENGINE : Addon dirs: +10:42:57.405 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +10:42:57.405 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:42:57.405 ENGINE : dir: './addons' +10:42:57.405 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:42:57.405 ENGINE : Available addons: +10:42:57.405 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:42:57.405 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:42:57.405 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:42:57.405 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:42:57.405 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:42:57.405 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:42:57.405 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:42:57.405 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:42:57.527 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:42:57.531 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:42:57.531 ENGINE : CPU vendor : AuthenticAMD +10:42:57.531 ENGINE : CPU type : 2 +10:42:57.531 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:42:57.531 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:42:57.531 ENGINE : CPU count logical : 16 +10:42:57.531 ENGINE : CPU count physical : 8 +10:42:57.531 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:42:57.531 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:42:57.532 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:42:57.691 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +10:42:57.692 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:42:57.692 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56/resourceDatabase.rdb) +10:42:57.848 RESOURCES : RESOURCES : ResourceDB: full scan +10:42:57.853 RESOURCES : RESOURCES : scanning... +10:42:57.853 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:42:57.857 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:42:57.990 RESOURCES : RESOURCES : scanning @"core" +10:42:57.994 RESOURCES : RESOURCES : scanning @"profile" +10:42:57.994 RESOURCES : RESOURCES : scanning @"logs" +10:42:57.995 RESOURCES : RESOURCES : processing meta-files... +10:42:58.060 RESOURCES : RESOURCES : processing files... +10:42:58.071 INIT : Workbench startup +10:42:58.071 INIT : Workbench Init Engine +10:42:58.071 RESOURCES : ResourceDB: full scan +10:42:58.071 RESOURCES : processing files... +10:42:58.071 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:42:58.071 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:42:58.071 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:42:58.071 RESOURCES : RESOURCES : processing folders... +10:42:58.078 RESOURCES : RESOURCES : creating GUID-item mapping... +10:42:58.093 RESOURCES : RESOURCES : building tree... +10:42:58.155 PROFILING : ResourceDB: full scan took: 307.062000 ms +10:42:58.156 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:42:58.158 RESOURCES : ResourceDB: written 6865/6865 bytes +10:42:58.158 RESOURCES : ResourceDB: cache successfully saved +10:42:58.158 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:42:58.160 RESOURCES : ResourceDB: written 206/206 bytes +10:42:58.160 RESOURCES : ResourceDB: cache successfully saved +10:42:58.160 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56/resourceDatabase.rdb) +10:42:58.162 RESOURCES : ResourceDB: written 162/162 bytes +10:42:58.162 RESOURCES : ResourceDB: cache successfully saved +10:42:58.162 ENGINE : GameProject load +10:42:58.162 ENGINE : Loaded addons: +10:42:58.162 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:42:58.162 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:42:58.162 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:42:58.163 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:42:58.164 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:42:58.164 ENGINE : Engine user settings config loaded +10:42:58.164 PROFILING : Settings changed took: 0.001800 ms +10:42:58.279 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:42:58.280 RENDER : Basic screen setup: +10:42:58.280 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:42:58.280 RENDER : MSAA : none +10:42:58.294 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:42:58.294 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:42:58.294 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:42:58.294 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:42:58.294 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:42:58.294 RENDER : AMD AGS correctly initialized +10:42:58.295 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 +10:42:58.295 RENDER : Detected output devices: +10:42:58.295 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:42:58.295 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:42:58.295 RENDER : Concurrent frames limit 2 +10:42:58.381 RENDER : DX12 device successfully created by AMD AGS library +10:42:58.381 RENDER : * user markers not supported in this version AMD SW +10:42:58.381 RENDER : Graphics device features +10:42:58.381 RENDER : Needed: +10:42:58.381 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:42:58.381 RENDER : Optional: +10:42:58.381 RENDER : * Allow tearing (VSYNC) : 1 +10:42:58.381 RENDER : * 16 bits : 1 +10:42:58.381 RENDER : * Resource heap tier : 3 +10:42:58.381 RENDER : * Persistent heaps (DRED) : 1 +10:42:58.381 RENDER : * DRED 1.2 is supported by compiler +10:42:58.405 RENDER : Main RT format setup. +10:42:58.406 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:42:58.406 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:42:58.408 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:42:58.436 PROFILING : Settings changed took: 0.022200 ms +10:42:58.917 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:42:58.917 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:42:58.917 AUDIO : Audio client: +10:42:58.917 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:42:58.920 RENDER : RENDER : Reload shaders +10:42:58.920 RENDER : Enfusion shader version 13 +10:42:58.920 INIT : INIT : ShaderListReload +10:42:58.921 PROFILING : ShaderListReload took: 0.000600 ms +10:42:59.063 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:42:59.063 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:42:59.063 AUDIO : Audio client: +10:42:59.063 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:42:59.170 RENDER : Loaded 3752 newer shader binaries +10:42:59.170 PROFILING : Reload shaders took: 249.725900 ms +10:42:59.170 ENGINE : Initializing inputs. +10:42:59.183 NETWORK : Initializing networking. +10:42:59.183 NETWORK : Using new GameRplScheduler. +10:42:59.184 SCRIPT : SCRIPT : Initializing scripts +10:42:59.184 SCRIPT : SCRIPT : ScriptProjectManager init +10:43:00.043 PROFILING : ScriptProjectManager init took: 859.030800 ms +10:43:00.080 PROFILING : Initializing scripts took: 896.460900 ms +10:43:00.101 ENGINE : Enfusion engine successfully created. +10:43:00.101 PROFILING : Workbench Init Engine took: 2704.662500 ms +10:43:00.101 INIT : INIT : Workbench Create Game +10:43:00.114 GUI : Using default language (en_us) +10:43:00.114 GUI : Loading 'en_us' localization file. +10:43:00.114 INIT : INIT : Loading StringTable +10:43:00.141 PROFILING : Loading StringTable took: 27.239800 ms +10:43:00.142 SCRIPT : SCRIPT : Compiling GameLib scripts +10:43:00.205 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:43:00.205 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:43:00.206 PROFILING : Compiling GameLib scripts took: 64.633400 ms +10:43:00.206 SCRIPT : SCRIPT : Compiling Game scripts +10:43:01.411 INIT : Workbench Create Game +10:43:01.411 SCRIPT : Compiling Game scripts +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:43:01.575 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.705 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:43:01.738 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:43:01.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:43:01.941 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:43:02.012 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:02.045 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:43:02.307 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:43:02.313 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 9022bbac +10:43:02.354 PROFILING : Compiling Game scripts took: 2147.601000 ms +10:43:02.360 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:43:02.399 ENGINE : Game successfully created. +10:43:02.400 PROFILING : Workbench Create Game took: 2299.235700 ms +10:43:02.408 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +10:43:03.268 INIT : INIT : Workbench Reload Game +10:43:03.270 ENGINE : Game destroyed. +10:43:03.278 GUI : Using default language (en_us) +10:43:03.278 GUI : Loading 'en_us' localization file. +10:43:03.278 INIT : INIT : Loading StringTable +10:43:03.287 PROFILING : Loading StringTable took: 9.305900 ms +10:43:03.287 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:43:03.294 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:43:03.294 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:43:03.295 ENGINE : Game successfully created. +10:43:03.295 ENGINE : Game successfully initialized. +10:43:03.295 PROFILING : Workbench Reload Game took: 26.841700 ms +10:43:03.994 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:43:04.995 PROFILING : Entities load took: 1000.587800 ms +10:43:05.006 WORLD : WORLD : CreateEntities +10:43:05.011 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:43:05.011 PROFILING : NotifyBeforeEntitiesCreated took: 0.002800 ms +10:43:05.011 WORLD : WORLD : Wait for preloading data +10:43:05.011 PROFILING : Wait for preloading data took: 0.004000 ms +10:43:05.121 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:43:05.121 PROFILING : PROFILING : Terrain load +10:43:06.795 PROFILING : Terrain load took: 1673.111000 ms +10:43:10.805 WORLD : CreateEntities +10:43:10.806 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:43:10.806 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:43:10.806 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:43:20.471 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:43:20.471 PROFILING : NotifyBeforeEntitiesInitialized took: 0.007200 ms +10:43:20.899 WORLD : WORLD : NotifyEntitiesInitialized +10:43:20.899 TERRAIN : TERRAIN : Initializing road networks... +10:43:20.902 PROFILING : Initializing road networks... took: 2.730900 ms +10:43:20.902 PROFILING : NotifyEntitiesInitialized took: 3.238100 ms +10:43:20.902 PROFILING : CreateEntities took: 15895.766200 ms +10:43:21.085 PROFILING : * WorldEditor: LoadWorld: 17095.630900 ms +10:43:22.699 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:43:22.700 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:43:22.701 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:43:22.701 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:43:22.783 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:43:22.806 BACKEND : Attempting online Game Config instead. +10:43:26.088 INIT : INIT : Workbench Reload Game +10:43:26.090 ENGINE : Game destroyed. +10:43:26.097 GUI : Using default language (en_us) +10:43:26.098 GUI : Loading 'en_us' localization file. +10:43:26.098 INIT : INIT : Loading StringTable +10:43:26.117 PROFILING : Loading StringTable took: 18.827600 ms +10:43:26.117 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:43:26.125 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:43:26.125 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:43:26.125 ENGINE : Game successfully created. +10:43:26.125 ENGINE : Game successfully initialized. +10:43:26.125 PROFILING : Workbench Reload Game took: 37.193600 ms +10:43:26.127 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:43:26.174 PLATFORM : Save data from container 'settings' have been loaded +10:43:26.265 PLATFORM : Save data from container 'sessions' have been loaded +10:43:26.266 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:43:26.266 ENGINE : Game user settings config loaded +10:43:26.362 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:43:26.369 WORLD : WORLD : Game::LoadEntities +10:43:26.369 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:43:26.370 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:43:26.370 WORLD : WORLD : CreateEntities +10:43:26.370 WORLD : WORLD : CreateEntities +10:43:26.370 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:43:26.375 RESOURCES : Loaded mission headers from 7 addon(s)! +10:43:26.375 PROFILING : NotifyBeforeEntitiesCreated took: 4.766100 ms +10:43:26.375 WORLD : WORLD : Wait for preloading data +10:43:26.375 PROFILING : Wait for preloading data took: 0.000700 ms +10:43:30.813 WORLD : Game::LoadEntities +10:43:30.813 WORLD : CreateEntities +10:43:30.813 WORLD : CreateEntities +10:43:30.813 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:43:30.813 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:43:30.813 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:43:32.285 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:43:32.285 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:43:32.285 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:43:32.291 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:43:32.291 ENTITY : CreateComponent 'Hierarchy' +10:43:32.291 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:43:32.291 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:43:32.292 ENTITY : CreateComponent 'Hierarchy' +10:43:32.292 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:43:32.292 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:43:32.292 ENTITY : CreateComponent 'Hierarchy' +10:43:32.292 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.296 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.296 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.297 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:43:37.308 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:43:37.308 PROFILING : NotifyBeforeEntitiesInitialized took: 0.052800 ms +10:43:39.325 WORLD : InitEntities 'world' +10:43:39.325 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:43:39.325 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:43:39.351 WORLD : InitEntities 'world' +10:43:39.351 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:43:39.351 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:43:39.352 WORLD : WORLD : NotifyEntitiesInitialized +10:43:39.352 TERRAIN : TERRAIN : Initializing road networks... +10:43:39.355 PROFILING : Initializing road networks... took: 2.914100 ms +10:43:39.355 DEFAULT : DEFAULT : WorldVolumesCollection +10:43:39.414 PROFILING : WorldVolumesCollection took: 58.038300 ms +10:43:39.414 INIT : INIT : SoundWorldInit +10:43:39.427 PROFILING : SoundWorldInit took: 13.682800 ms +10:43:39.427 PROFILING : NotifyEntitiesInitialized took: 74.876100 ms +10:43:39.427 PROFILING : CreateEntities took: 13057.038100 ms +10:43:39.428 PROFILING : CreateEntities took: 13057.232100 ms +10:43:39.428 WORLD : WORLD : Wait for preloading data around camera +10:43:39.428 PROFILING : Wait for preloading data around camera took: 0.001400 ms +10:43:39.428 WORLD : WORLD : EOnActivate +10:43:39.462 PROFILING : EOnActivate took: 33.682100 ms +10:43:39.462 PROFILING : Game::LoadEntities took: 13092.831100 ms +10:43:39.739 DEFAULT : Entered offline game state. +10:43:39.842 NETWORK : Player connected: connectionID=2147483646 +10:43:39.842 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:43:39.843 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:43:39.847 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.847 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:43:39.848 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.848 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! +10:43:39.848 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! +10:43:39.850 SCRIPT (W): Can't open config file "" +10:43:39.856 WORLD : InitEntities 'world' +10:43:39.857 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.857 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:43:39.857 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:43:39.857 SCRIPT (W): Slot_Chat Has no Content! +10:43:39.857 SCRIPT (W): Slot_VON Has no Content! +10:43:39.857 SCRIPT (W): Slot_AvailableActions Has no Content! +10:43:39.857 SCRIPT (W): Slot_Vehicle Has no Content! +10:43:39.858 SCRIPT (W): Slot_GameVersion Has no Content! +10:43:39.858 SCRIPT (W): Slot_Notifications Has no Content! +10:43:39.858 SCRIPT (W): Slot_Hints Has no Content! +10:43:39.870 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:43:39.870 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:43:39.870 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:43:39.871 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. +10:43:39.871 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. +10:43:39.874 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:43:39.874 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:43:39.875 NETWORK : Players connecting: 0 +10:43:39.875 NETWORK : Players connected: 1 / 1 +10:43:39.902 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +10:43:39.904 PROFILING : Workbench startup took: 43610.496100 ms +10:43:39.926 WORLD : Frame start +10:43:39.927 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:43:39.941 WORLD : UpdateEntities +10:43:39.941 WORLD : Frame +10:43:39.941 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:43:40.119 WORLD : UpdateEntities +10:43:40.119 WORLD : PostFrame +10:43:40.119 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:43:40.120 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:43:40.166 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:43:40.166 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:43:40.166 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:43:40.166 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:43:40.294 RENDER : RENDER : ObjectsHeightMap::Build +10:43:40.294 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:43:40.451 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 156.261400 ms +10:43:40.459 PROFILING : ObjectsHeightMap::Build took: 164.556300 ms +10:43:41.626 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:43:41.644 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:43:41.644 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:43:41.674 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:43:41.676 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:43:41.725 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:43:41.725 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:43:41.730 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:43:41.776 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:43:41.776 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:43:41.778 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:43:41.779 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:43:41.783 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:43:41.784 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:43:41.785 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:43:41.786 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:43:41.787 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:43:41.787 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:43:41.787 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:43:41.787 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:43:41.787 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.788 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:43:41.788 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.788 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:43:41.788 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:42.549 WORLD : UpdateEntities +10:43:42.550 WORLD : AfterPostSimulate +10:43:42.550 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:43:42.647 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.904 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5215,7499.7> up=0.995637 +10:43:42.904 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.259243 angularSpeed=0.0359662 +10:43:42.904 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:42.904 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6157,7501.97> +10:43:42.904 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3157,7501.97> terrainY=63.3167 tireTerrainGap=-0.000991821 +10:43:42.905 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6157,7501.97> radius=0.3 bottom=<7012.06,63.3157,7501.97> fraction=0.45042 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000907898 +10:43:42.905 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6047,7497.71> +10:43:42.905 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1547,7497.71> terrainY=64.1557 tireTerrainGap=-0.000984192 +10:43:42.905 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6047,7497.71> radius=0.45 bottom=<7009.88,64.1547,7497.71> fraction=0.450365 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000915527 +10:43:42.905 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2641,7497.75> +10:43:42.905 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8141,7497.75> terrainY=63.8178 tireTerrainGap=-0.00368881 +10:43:42.906 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2641,7497.75> radius=0.45 bottom=<7014.42,63.8141,7497.75> fraction=0.437778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00368881 +10:43:42.906 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:43.454 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:43.455 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.455 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.968 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5405,7499.72> up=0.99433 +10:43:43.968 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0678502 angularSpeed=0.0534523 +10:43:43.969 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:43.969 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6244,7501.99> +10:43:43.969 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3244,7501.99> terrainY=63.3141 tireTerrainGap=0.0102501 +10:43:43.969 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6244,7501.99> radius=0.3 bottom=<7012.07,63.3244,7501.99> fraction=0.501682 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0103683 +10:43:43.969 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6079,7497.71> +10:43:43.969 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.158,7497.71> terrainY=64.1487 tireTerrainGap=0.00930023 +10:43:43.970 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6079,7497.71> radius=0.45 bottom=<7009.93,64.158,7497.71> fraction=0.497194 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00938416 +10:43:43.970 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2706,7497.78> +10:43:43.970 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8206,7497.78> terrainY=63.8152 tireTerrainGap=0.00536728 +10:43:43.970 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2706,7497.78> radius=0.45 bottom=<7014.47,63.8206,7497.78> fraction=0.478889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.00535583 +10:43:43.970 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:43.970 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.480 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:43:44.480 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.481 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.985 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5305,7499.74> up=0.994219 +10:43:44.985 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0461216 angularSpeed=0.0219731 +10:43:44.985 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:44.985 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6135,7502.01> +10:43:44.985 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3135,7502.01> terrainY=63.3114 tireTerrainGap=0.00205994 +10:43:44.986 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6135,7502.01> radius=0.3 bottom=<7012.07,63.3135,7502.01> fraction=0.463679 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00201035 +10:43:44.986 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5948,7497.72> +10:43:44.986 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1448,7497.72> terrainY=64.1426 tireTerrainGap=0.00213623 +10:43:44.986 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5948,7497.72> radius=0.45 bottom=<7009.97,64.1448,7497.72> fraction=0.464386 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00216675 +10:43:44.986 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.83> +10:43:44.986 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.83> terrainY=63.8126 tireTerrainGap=-0.00221634 +10:43:44.987 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.83> radius=0.45 bottom=<7014.51,63.8104,7497.83> fraction=0.444444 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00222015 +10:43:44.987 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:44.987 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:44.987 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.987 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:44.988 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:45.495 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:45.495 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:45.496 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:45.496 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:46.002 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:43:46.002 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:43:46.002 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:46.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:43:46.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465 +10:43:46.003 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:43:46.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:43:46.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059 +10:43:46.004 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:43:46.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:43:46.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405 +10:43:46.004 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:43:46.004 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.513 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.796 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.796 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.797 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:43:46.797 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:43:46.798 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:43:46.798 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:43:46.798 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:43:46.799 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:43:46.799 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:43:46.799 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:43:47.152 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:43:47.190 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.402 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.402 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:43:47.403 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:43:47.403 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.405 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.405 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:43:47.407 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:43:47.407 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:43:47.408 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:43:47.408 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:43:47.426 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:43:47.912 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:43:47.912 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:43:47.921 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:43:47.921 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:43:48.418 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:43:48.418 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:43:48.418 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:43:48.418 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:43:48.418 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:43:48.438 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:43:48.438 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:43:48.924 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28986.2 +10:43:48.925 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:43:48.925 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000817B3CA8> activeSeat=PilotCompartmentSlot<0x00000000817B3CA8> group=<0x00000001B9FFC390> SCR_AIGroup actualGroup=<0x00000001B9FFC390> SCR_AIGroup +10:43:48.925 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:43:48.926 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:43:48.926 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:43:48.926 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:43:50.931 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10015.2 remainingMs=26980.2 +10:43:50.931 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:43:50.931 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.397104 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.397104 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000817B3CA8> activeSeat=PilotCompartmentSlot<0x00000000817B3CA8> group=<0x00000001B9FFC390> SCR_AIGroup actualGroup=<0x00000001B9FFC390> SCR_AIGroup +10:43:50.932 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:43:50.932 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:43:50.932 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996305 entityOrigin=<4801.01,27.5728,11487.4> +10:43:50.933 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:43:51.434 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:43:51.469 WORLD : UpdateEntities +10:43:51.469 WORLD : Frame +10:43:51.470 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0560275 input=1 simulation=1 +10:43:51.521 WORLD : UpdateEntities +10:43:51.521 WORLD : Frame +10:43:51.521 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0519526 input=1 simulation=1 +10:43:51.572 WORLD : UpdateEntities +10:43:51.572 WORLD : Frame +10:43:51.572 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0500853 input=1 simulation=1 +10:43:51.620 WORLD : UpdateEntities +10:43:51.620 WORLD : Frame +10:43:51.620 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0482006 input=1 simulation=1 +10:43:51.934 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=0 +10:43:51.934 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0129623 drift=0.0266729 speed=0.0363643 vertical=-0.0109936 up=0.996184 groundContact=1 fuel=1938.75 engine=0 +10:43:51.934 SCRIPT : ERR POWERED INPUT: pilotHooks=0 vehicleHooks=9 readback=0 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:43:51.934 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=0 applyCallbacks=15 beforeWriteSequence=0 writtenAgeMs=-1 beforeWriteAgeMs=33.2441 +10:43:51.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:43:51.935 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/error.log.txt b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/error.log.txt new file mode 100644 index 0000000..44991c0 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56\error.log started at 2026-09-19 10:42:58 (2026-09-19 08:42:58 UTC) + +10:42:58.071 INIT : Workbench startup +10:42:58.071 INIT : Workbench Init Engine +10:42:58.071 RESOURCES : ResourceDB: full scan +10:42:58.071 RESOURCES : processing files... +10:42:58.071 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:42:58.071 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:42:58.071 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:43:01.411 INIT : Workbench Create Game +10:43:01.411 SCRIPT : Compiling Game scripts +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:43:01.575 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.705 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:43:01.738 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:43:01.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:43:01.941 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:43:02.012 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:02.045 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:43:10.805 WORLD : CreateEntities +10:43:10.806 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:43:10.806 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:43:10.806 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:43:26.127 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:43:30.813 WORLD : Game::LoadEntities +10:43:30.813 WORLD : CreateEntities +10:43:30.813 WORLD : CreateEntities +10:43:30.813 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:43:30.813 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:43:30.813 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:43:32.285 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:43:32.285 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:43:32.285 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:43:32.285 ENTITY : CreateComponent 'Hierarchy' +10:43:32.285 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:43:32.291 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:43:32.291 ENTITY : CreateComponent 'Hierarchy' +10:43:32.291 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:43:32.291 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:43:32.291 ENTITY : CreateComponent 'Hierarchy' +10:43:32.292 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:43:32.292 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:43:32.292 ENTITY : CreateComponent 'Hierarchy' +10:43:32.292 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.296 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.296 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:43:32.296 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:43:32.296 ENTITY : CreateComponent 'Hierarchy' +10:43:32.297 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:43:39.325 WORLD : InitEntities 'world' +10:43:39.325 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:43:39.325 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:43:39.847 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.847 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:43:39.848 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.848 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! +10:43:39.848 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! +10:43:39.850 SCRIPT (W): Can't open config file "" +10:43:39.856 WORLD : InitEntities 'world' +10:43:39.857 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:43:39.857 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:43:39.857 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:43:39.857 SCRIPT (W): Slot_Chat Has no Content! +10:43:39.857 SCRIPT (W): Slot_VON Has no Content! +10:43:39.857 SCRIPT (W): Slot_AvailableActions Has no Content! +10:43:39.857 SCRIPT (W): Slot_Vehicle Has no Content! +10:43:39.858 SCRIPT (W): Slot_GameVersion Has no Content! +10:43:39.858 SCRIPT (W): Slot_Notifications Has no Content! +10:43:39.858 SCRIPT (W): Slot_Hints Has no Content! +10:43:39.870 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:43:39.870 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:43:39.870 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:43:39.871 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. +10:43:39.871 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. +10:43:39.874 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:43:40.119 WORLD : UpdateEntities +10:43:40.119 WORLD : PostFrame +10:43:40.119 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:43:40.120 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:43:40.166 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:43:40.166 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:43:40.166 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:43:40.166 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:43:42.549 WORLD : UpdateEntities +10:43:42.550 WORLD : AfterPostSimulate +10:43:42.550 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/headless-launch.log.txt new file mode 100644 index 0000000..270fb76 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a003a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a003a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a003a4 + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x555580e0f340 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555580e0f340 +[Gamescope WSI] Destroyed swapchain: 0x555580e0f340 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x555580e0f340 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555580e0f340 +[Gamescope WSI] Destroyed swapchain: 0x555580e0f340 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x555580e36180 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source-sha256.json new file mode 100644 index 0000000..a6c7e6d --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "6d9f7d9da470c0bfdb23983b314577fa8f99c6fab3737cbe01f4a82a3f3a5365", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source.json b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source.json new file mode 100644 index 0000000..db4410d --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "07825cd1-a4a2-49ff-8dbc-ce5fd6dcf4ba", + "captured_unix": 1789807374.680288, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "5923b310579e35afaea896fb69e0358900a521e7ee6072154976011b43dff656" +} diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/report.json b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/report.json new file mode 100644 index 0000000..15f9a8a --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-104256-flight-context-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 63, + "script_or_runtime_failures": [ + "10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid", + "10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid", + "10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/runner.json.txt new file mode 100644 index 0000000..71a8ecf --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789807433.0050483, + "console_sha256": "b576b32c6a1cdba58b7b2e840a69a31bddff6b5e195e945f0fc8d93b4c4d73ec", + "end_source_sha256": "5923b310579e35afaea896fb69e0358900a521e7ee6072154976011b43dff656", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "07825cd1-a4a2-49ff-8dbc-ce5fd6dcf4ba", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "5923b310579e35afaea896fb69e0358900a521e7ee6072154976011b43dff656", + "started_unix": 1789807374.6803522, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-42-56", + "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/native-2026-09-19-104256-flight-context-refusal/script.log.txt b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/script.log.txt new file mode 100644 index 0000000..0bce659 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/script.log.txt @@ -0,0 +1,297 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-42-56\script.log started at 2026-09-19 10:42:59 (2026-09-19 08:42:59 UTC) + +10:42:59.184 SCRIPT : SCRIPT : Initializing scripts +10:42:59.184 SCRIPT : SCRIPT : ScriptProjectManager init +10:43:00.142 SCRIPT : SCRIPT : Compiling GameLib scripts +10:43:00.205 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:43:00.205 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:43:00.206 SCRIPT : SCRIPT : Compiling Game scripts +10:43:01.411 SCRIPT : Compiling Game scripts +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:43:01.411 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:43:01.575 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.705 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:43:01.738 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:43:01.839 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:43:01.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:43:01.939 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:43:01.941 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.985 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:43:01.986 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:43:02.012 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:43:02.045 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:43:02.307 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:43:02.313 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 9022bbac +10:43:03.294 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:43:03.294 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:43:22.783 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:43:26.125 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:43:26.125 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:43:39.325 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:43:39.351 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:43:39.848 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! +10:43:39.848 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! +10:43:39.850 SCRIPT (W): Can't open config file "" +10:43:39.857 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:43:39.857 SCRIPT (W): Slot_Chat Has no Content! +10:43:39.857 SCRIPT (W): Slot_VON Has no Content! +10:43:39.857 SCRIPT (W): Slot_AvailableActions Has no Content! +10:43:39.857 SCRIPT (W): Slot_Vehicle Has no Content! +10:43:39.858 SCRIPT (W): Slot_GameVersion Has no Content! +10:43:39.858 SCRIPT (W): Slot_Notifications Has no Content! +10:43:39.858 SCRIPT (W): Slot_Hints Has no Content! +10:43:39.871 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. +10:43:39.871 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. +10:43:39.874 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:43:39.927 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:43:39.941 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:43:40.120 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:43:41.626 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:43:41.644 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:43:41.644 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:43:41.674 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:43:41.676 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:43:41.725 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:43:41.725 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:43:41.730 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:43:41.776 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:43:41.776 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:43:41.778 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:43:41.779 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:43:41.783 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:43:41.784 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:43:41.785 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:43:41.786 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:43:41.787 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:43:41.787 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:43:41.787 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:43:41.787 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:43:41.787 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.788 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:43:41.788 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.788 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:43:41.788 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:43:41.788 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:41.789 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:43:42.647 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.648 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:42.904 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5215,7499.7> up=0.995637 +10:43:42.904 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.259243 angularSpeed=0.0359662 +10:43:42.904 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:42.904 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6157,7501.97> +10:43:42.904 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3157,7501.97> terrainY=63.3167 tireTerrainGap=-0.000991821 +10:43:42.905 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6157,7501.97> radius=0.3 bottom=<7012.06,63.3157,7501.97> fraction=0.45042 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000907898 +10:43:42.905 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6047,7497.71> +10:43:42.905 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1547,7497.71> terrainY=64.1557 tireTerrainGap=-0.000984192 +10:43:42.905 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6047,7497.71> radius=0.45 bottom=<7009.88,64.1547,7497.71> fraction=0.450365 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000915527 +10:43:42.905 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2641,7497.75> +10:43:42.905 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8141,7497.75> terrainY=63.8178 tireTerrainGap=-0.00368881 +10:43:42.906 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2641,7497.75> radius=0.45 bottom=<7014.42,63.8141,7497.75> fraction=0.437778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00368881 +10:43:42.906 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:43.156 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:43:43.454 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:43.455 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.455 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.968 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5405,7499.72> up=0.99433 +10:43:43.968 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0678502 angularSpeed=0.0534523 +10:43:43.969 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:43.969 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6244,7501.99> +10:43:43.969 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3244,7501.99> terrainY=63.3141 tireTerrainGap=0.0102501 +10:43:43.969 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6244,7501.99> radius=0.3 bottom=<7012.07,63.3244,7501.99> fraction=0.501682 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0103683 +10:43:43.969 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6079,7497.71> +10:43:43.969 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.158,7497.71> terrainY=64.1487 tireTerrainGap=0.00930023 +10:43:43.970 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6079,7497.71> radius=0.45 bottom=<7009.93,64.158,7497.71> fraction=0.497194 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00938416 +10:43:43.970 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2706,7497.78> +10:43:43.970 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8206,7497.78> terrainY=63.8152 tireTerrainGap=0.00536728 +10:43:43.970 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2706,7497.78> radius=0.45 bottom=<7014.47,63.8206,7497.78> fraction=0.478889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.00535583 +10:43:43.970 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:43.970 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:43:43.971 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.480 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:43:44.480 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.481 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.985 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5305,7499.74> up=0.994219 +10:43:44.985 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0461216 angularSpeed=0.0219731 +10:43:44.985 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:44.985 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6135,7502.01> +10:43:44.985 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3135,7502.01> terrainY=63.3114 tireTerrainGap=0.00205994 +10:43:44.986 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6135,7502.01> radius=0.3 bottom=<7012.07,63.3135,7502.01> fraction=0.463679 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00201035 +10:43:44.986 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5948,7497.72> +10:43:44.986 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1448,7497.72> terrainY=64.1426 tireTerrainGap=0.00213623 +10:43:44.986 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5948,7497.72> radius=0.45 bottom=<7009.97,64.1448,7497.72> fraction=0.464386 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00216675 +10:43:44.986 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.83> +10:43:44.986 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.83> terrainY=63.8126 tireTerrainGap=-0.00221634 +10:43:44.987 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.83> radius=0.45 bottom=<7014.51,63.8104,7497.83> fraction=0.444444 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00222015 +10:43:44.987 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:44.987 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:44.987 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:43:44.988 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:44.988 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:45.495 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:45.495 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:45.496 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:45.496 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:43:46.002 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:43:46.002 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:43:46.002 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:43:46.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:43:46.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465 +10:43:46.003 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465 +10:43:46.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:43:46.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059 +10:43:46.004 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:43:46.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:43:46.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405 +10:43:46.004 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:43:46.004 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.005 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.512 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.513 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.796 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.796 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:43:46.797 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:43:46.797 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:43:46.798 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:43:46.798 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:43:46.798 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:43:46.799 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:43:46.799 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:43:46.799 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:43:47.152 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:43:47.190 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:43:47.401 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.402 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.402 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:43:47.402 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:43:47.403 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:43:47.403 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.403 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:43:47.404 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:43:47.404 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.405 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:43:47.405 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:43:47.405 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.406 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:43:47.406 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:43:47.407 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:43:47.407 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:43:47.407 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:43:47.408 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:43:47.408 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:43:47.408 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:43:47.423 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:43:47.425 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:43:47.426 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:43:47.427 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:43:47.912 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:43:47.912 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:43:47.921 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:43:47.921 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:43:48.418 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:43:48.418 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:43:48.418 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:43:48.418 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:43:48.418 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:43:48.438 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:43:48.438 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:43:48.924 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28986.2 +10:43:48.925 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:43:48.925 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000817B3CA8> activeSeat=PilotCompartmentSlot<0x00000000817B3CA8> group=<0x00000001B9FFC390> SCR_AIGroup actualGroup=<0x00000001B9FFC390> SCR_AIGroup +10:43:48.925 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:43:48.926 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:43:48.926 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:43:48.926 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:43:50.931 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10015.2 remainingMs=26980.2 +10:43:50.931 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:43:50.931 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.397104 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA41E8F0> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.397104 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000817B3CA8> activeSeat=PilotCompartmentSlot<0x00000000817B3CA8> group=<0x00000001B9FFC390> SCR_AIGroup actualGroup=<0x00000001B9FFC390> SCR_AIGroup +10:43:50.932 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:43:50.932 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:43:50.932 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996305 entityOrigin=<4801.01,27.5728,11487.4> +10:43:50.933 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:43:51.434 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:43:51.470 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0560275 input=1 simulation=1 +10:43:51.521 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0519526 input=1 simulation=1 +10:43:51.572 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0500853 input=1 simulation=1 +10:43:51.620 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0482006 input=1 simulation=1 +10:43:51.934 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=0 +10:43:51.934 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0129623 drift=0.0266729 speed=0.0363643 vertical=-0.0109936 up=0.996184 groundContact=1 fuel=1938.75 engine=0 +10:43:51.934 SCRIPT : ERR POWERED INPUT: pilotHooks=0 vehicleHooks=9 readback=0 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:43:51.934 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=0 applyCallbacks=15 beforeWriteSequence=0 writtenAgeMs=-1 beforeWriteAgeMs=33.2441 +10:43:51.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:43:51.935 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: powered-flight current owned conscious pilot, fuel, rotors and exact input readback remain valid +10:43:51.935 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-sha256.json new file mode 100644 index 0000000..a6c7e6d --- /dev/null +++ b/docs/evidence/native-2026-09-19-104256-flight-context-refusal/source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "6d9f7d9da470c0bfdb23983b314577fa8f99c6fab3737cbe01f4a82a3f3a5365", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/console.log.txt b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/console.log.txt new file mode 100644 index 0000000..19aa103 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/console.log.txt @@ -0,0 +1,721 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38\console.log started at 2026-09-19 10:44:38 (2026-09-19 08:44:38 UTC) + +10:44:38.687 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38' to filesystem under name logs +10:44:38.687 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:44:38.687 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:44:38.689 PROFILING : Workbench Create Engine took: 11.351700 ms +10:44:39.721 INIT : INIT : Workbench Init Engine +10:44:39.721 ENGINE : Initializing engine, version 192142 +10:44:39.721 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +10:44:39.741 ENGINE : Addon dirs: +10:44:39.741 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +10:44:39.741 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:44:39.741 ENGINE : dir: './addons' +10:44:39.741 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:44:39.741 ENGINE : Available addons: +10:44:39.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:44:39.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:44:39.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:44:39.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:44:39.741 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:44:39.741 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:44:39.741 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:44:39.742 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:44:39.860 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:44:39.864 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:44:39.864 ENGINE : CPU vendor : AuthenticAMD +10:44:39.864 ENGINE : CPU type : 2 +10:44:39.864 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:44:39.864 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:44:39.864 ENGINE : CPU count logical : 16 +10:44:39.864 ENGINE : CPU count physical : 8 +10:44:39.864 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:44:39.864 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:44:39.864 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:44:40.008 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +10:44:40.010 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:44:40.011 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38/resourceDatabase.rdb) +10:44:40.170 RESOURCES : RESOURCES : ResourceDB: full scan +10:44:40.175 RESOURCES : RESOURCES : scanning... +10:44:40.175 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:44:40.181 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:44:40.342 RESOURCES : RESOURCES : scanning @"core" +10:44:40.348 RESOURCES : RESOURCES : scanning @"profile" +10:44:40.349 RESOURCES : RESOURCES : scanning @"logs" +10:44:40.350 RESOURCES : RESOURCES : processing meta-files... +10:44:40.438 RESOURCES : RESOURCES : processing files... +10:44:40.452 INIT : Workbench startup +10:44:40.452 INIT : Workbench Init Engine +10:44:40.452 RESOURCES : ResourceDB: full scan +10:44:40.452 RESOURCES : processing files... +10:44:40.452 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:44:40.452 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:44:40.452 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:44:40.452 RESOURCES : RESOURCES : processing folders... +10:44:40.463 RESOURCES : RESOURCES : creating GUID-item mapping... +10:44:40.488 RESOURCES : RESOURCES : building tree... +10:44:40.541 PROFILING : ResourceDB: full scan took: 371.181100 ms +10:44:40.542 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:44:40.544 RESOURCES : ResourceDB: written 6865/6865 bytes +10:44:40.544 RESOURCES : ResourceDB: cache successfully saved +10:44:40.544 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:44:40.546 RESOURCES : ResourceDB: written 206/206 bytes +10:44:40.546 RESOURCES : ResourceDB: cache successfully saved +10:44:40.546 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38/resourceDatabase.rdb) +10:44:40.548 RESOURCES : ResourceDB: written 162/162 bytes +10:44:40.548 RESOURCES : ResourceDB: cache successfully saved +10:44:40.548 ENGINE : GameProject load +10:44:40.548 ENGINE : Loaded addons: +10:44:40.548 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:44:40.548 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:44:40.548 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:44:40.550 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:44:40.550 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:44:40.550 ENGINE : Engine user settings config loaded +10:44:40.550 PROFILING : Settings changed took: 0.001600 ms +10:44:40.652 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:44:40.653 RENDER : Basic screen setup: +10:44:40.653 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:44:40.653 RENDER : MSAA : none +10:44:40.667 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:44:40.667 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:44:40.667 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:44:40.667 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:44:40.667 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:44:40.667 RENDER : AMD AGS correctly initialized +10:44:40.667 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 +10:44:40.667 RENDER : Detected output devices: +10:44:40.667 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:44:40.667 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:44:40.667 RENDER : Concurrent frames limit 2 +10:44:40.745 RENDER : DX12 device successfully created by AMD AGS library +10:44:40.745 RENDER : * user markers not supported in this version AMD SW +10:44:40.745 RENDER : Graphics device features +10:44:40.745 RENDER : Needed: +10:44:40.745 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:44:40.745 RENDER : Optional: +10:44:40.745 RENDER : * Allow tearing (VSYNC) : 1 +10:44:40.745 RENDER : * 16 bits : 1 +10:44:40.745 RENDER : * Resource heap tier : 3 +10:44:40.745 RENDER : * Persistent heaps (DRED) : 1 +10:44:40.745 RENDER : * DRED 1.2 is supported by compiler +10:44:40.768 RENDER : Main RT format setup. +10:44:40.768 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:44:40.768 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:44:40.770 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:44:40.798 PROFILING : Settings changed took: 0.018800 ms +10:44:41.269 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:44:41.269 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:44:41.269 AUDIO : Audio client: +10:44:41.269 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:44:41.273 RENDER : RENDER : Reload shaders +10:44:41.273 RENDER : Enfusion shader version 13 +10:44:41.273 INIT : INIT : ShaderListReload +10:44:41.273 PROFILING : ShaderListReload took: 0.000500 ms +10:44:41.412 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:44:41.412 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:44:41.412 AUDIO : Audio client: +10:44:41.412 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:44:41.520 RENDER : Loaded 3752 newer shader binaries +10:44:41.520 PROFILING : Reload shaders took: 247.178900 ms +10:44:41.520 ENGINE : Initializing inputs. +10:44:41.533 NETWORK : Initializing networking. +10:44:41.533 NETWORK : Using new GameRplScheduler. +10:44:41.533 SCRIPT : SCRIPT : Initializing scripts +10:44:41.533 SCRIPT : SCRIPT : ScriptProjectManager init +10:44:42.395 PROFILING : ScriptProjectManager init took: 862.093800 ms +10:44:42.432 PROFILING : Initializing scripts took: 898.898900 ms +10:44:42.450 ENGINE : Enfusion engine successfully created. +10:44:42.451 PROFILING : Workbench Init Engine took: 2729.601500 ms +10:44:42.451 INIT : INIT : Workbench Create Game +10:44:42.460 GUI : Using default language (en_us) +10:44:42.460 GUI : Loading 'en_us' localization file. +10:44:42.460 INIT : INIT : Loading StringTable +10:44:42.484 PROFILING : Loading StringTable took: 24.074500 ms +10:44:42.484 SCRIPT : SCRIPT : Compiling GameLib scripts +10:44:42.540 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:44:42.541 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:44:42.541 PROFILING : Compiling GameLib scripts took: 56.769800 ms +10:44:42.541 SCRIPT : SCRIPT : Compiling Game scripts +10:44:43.672 INIT : Workbench Create Game +10:44:43.672 SCRIPT : Compiling Game scripts +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:44:43.831 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:43.947 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:44:43.982 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:44:44.118 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:44:44.178 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:44:44.244 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.278 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:44:44.558 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:44:44.565 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 8fae2b19 +10:44:44.602 PROFILING : Compiling Game scripts took: 2060.419200 ms +10:44:44.607 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:44:44.646 ENGINE : Game successfully created. +10:44:44.647 PROFILING : Workbench Create Game took: 2196.552500 ms +10:44:44.656 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +10:44:45.474 INIT : INIT : Workbench Reload Game +10:44:45.475 ENGINE : Game destroyed. +10:44:45.482 GUI : Using default language (en_us) +10:44:45.482 GUI : Loading 'en_us' localization file. +10:44:45.482 INIT : INIT : Loading StringTable +10:44:45.493 PROFILING : Loading StringTable took: 10.689400 ms +10:44:45.493 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:44:45.500 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:44:45.500 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:44:45.500 ENGINE : Game successfully created. +10:44:45.500 ENGINE : Game successfully initialized. +10:44:45.500 PROFILING : Workbench Reload Game took: 26.307600 ms +10:44:46.227 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:44:47.301 PROFILING : Entities load took: 1073.809100 ms +10:44:47.312 WORLD : WORLD : CreateEntities +10:44:47.318 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:44:47.318 PROFILING : NotifyBeforeEntitiesCreated took: 0.003300 ms +10:44:47.318 WORLD : WORLD : Wait for preloading data +10:44:47.318 PROFILING : Wait for preloading data took: 0.004800 ms +10:44:47.430 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:44:47.430 PROFILING : PROFILING : Terrain load +10:44:49.055 PROFILING : Terrain load took: 1624.765600 ms +10:44:53.191 WORLD : CreateEntities +10:44:53.192 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:44:53.192 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:44:53.192 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:45:02.897 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:45:02.897 PROFILING : NotifyBeforeEntitiesInitialized took: 0.006500 ms +10:45:03.337 WORLD : WORLD : NotifyEntitiesInitialized +10:45:03.337 TERRAIN : TERRAIN : Initializing road networks... +10:45:03.340 PROFILING : Initializing road networks... took: 2.281600 ms +10:45:03.340 PROFILING : NotifyEntitiesInitialized took: 2.668600 ms +10:45:03.340 PROFILING : CreateEntities took: 16028.038400 ms +10:45:03.513 PROFILING : * WorldEditor: LoadWorld: 17303.100100 ms +10:45:04.965 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:45:04.966 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:45:04.967 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:45:04.967 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:45:05.051 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:45:05.073 BACKEND : Attempting online Game Config instead. +10:45:08.332 INIT : INIT : Workbench Reload Game +10:45:08.334 ENGINE : Game destroyed. +10:45:08.342 GUI : Using default language (en_us) +10:45:08.342 GUI : Loading 'en_us' localization file. +10:45:08.343 INIT : INIT : Loading StringTable +10:45:08.363 PROFILING : Loading StringTable took: 20.499000 ms +10:45:08.364 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:45:08.372 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:45:08.372 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:45:08.372 ENGINE : Game successfully created. +10:45:08.372 ENGINE : Game successfully initialized. +10:45:08.373 PROFILING : Workbench Reload Game took: 40.468100 ms +10:45:08.375 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:45:08.429 PLATFORM : Save data from container 'settings' have been loaded +10:45:08.520 PLATFORM : Save data from container 'sessions' have been loaded +10:45:08.520 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:45:08.520 ENGINE : Game user settings config loaded +10:45:08.618 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:45:08.625 WORLD : WORLD : Game::LoadEntities +10:45:08.625 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:45:08.626 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:45:08.627 WORLD : WORLD : CreateEntities +10:45:08.627 WORLD : WORLD : CreateEntities +10:45:08.627 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:45:08.631 RESOURCES : Loaded mission headers from 7 addon(s)! +10:45:08.631 PROFILING : NotifyBeforeEntitiesCreated took: 4.547600 ms +10:45:08.631 WORLD : WORLD : Wait for preloading data +10:45:08.631 PROFILING : Wait for preloading data took: 0.000700 ms +10:45:13.075 WORLD : Game::LoadEntities +10:45:13.075 WORLD : CreateEntities +10:45:13.075 WORLD : CreateEntities +10:45:13.075 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:45:13.075 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:45:13.075 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:45:14.452 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:45:14.452 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:45:14.452 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:45:19.370 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:45:19.370 PROFILING : NotifyBeforeEntitiesInitialized took: 0.042500 ms +10:45:21.330 WORLD : InitEntities 'world' +10:45:21.330 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:45:21.330 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:45:21.357 WORLD : InitEntities 'world' +10:45:21.357 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:45:21.357 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:45:21.358 WORLD : WORLD : NotifyEntitiesInitialized +10:45:21.358 TERRAIN : TERRAIN : Initializing road networks... +10:45:21.361 PROFILING : Initializing road networks... took: 2.796900 ms +10:45:21.361 DEFAULT : DEFAULT : WorldVolumesCollection +10:45:21.424 PROFILING : WorldVolumesCollection took: 62.931700 ms +10:45:21.424 INIT : INIT : SoundWorldInit +10:45:21.439 PROFILING : SoundWorldInit took: 15.255900 ms +10:45:21.439 PROFILING : NotifyEntitiesInitialized took: 81.404400 ms +10:45:21.439 PROFILING : CreateEntities took: 12812.240900 ms +10:45:21.439 PROFILING : CreateEntities took: 12812.436000 ms +10:45:21.440 WORLD : WORLD : Wait for preloading data around camera +10:45:21.440 PROFILING : Wait for preloading data around camera took: 0.000900 ms +10:45:21.440 WORLD : WORLD : EOnActivate +10:45:21.473 PROFILING : EOnActivate took: 33.399300 ms +10:45:21.474 PROFILING : Game::LoadEntities took: 12847.808200 ms +10:45:21.782 DEFAULT : Entered offline game state. +10:45:21.885 NETWORK : Player connected: connectionID=2147483646 +10:45:21.885 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:45:21.886 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:45:21.890 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.890 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:45:21.890 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.890 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! +10:45:21.890 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! +10:45:21.892 SCRIPT (W): Can't open config file "" +10:45:21.899 WORLD : InitEntities 'world' +10:45:21.900 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.900 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:45:21.900 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:45:21.900 SCRIPT (W): Slot_Chat Has no Content! +10:45:21.900 SCRIPT (W): Slot_VON Has no Content! +10:45:21.900 SCRIPT (W): Slot_AvailableActions Has no Content! +10:45:21.900 SCRIPT (W): Slot_Vehicle Has no Content! +10:45:21.901 SCRIPT (W): Slot_GameVersion Has no Content! +10:45:21.901 SCRIPT (W): Slot_Notifications Has no Content! +10:45:21.901 SCRIPT (W): Slot_Hints Has no Content! +10:45:21.912 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:45:21.912 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:45:21.912 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:45:21.912 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. +10:45:21.913 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. +10:45:21.917 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:45:21.917 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:45:21.917 NETWORK : Players connecting: 0 +10:45:21.918 NETWORK : Players connected: 1 / 1 +10:45:21.950 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +10:45:21.951 PROFILING : Workbench startup took: 43327.809800 ms +10:45:21.976 WORLD : Frame start +10:45:21.976 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:45:21.991 WORLD : UpdateEntities +10:45:21.991 WORLD : Frame +10:45:21.991 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:45:22.177 WORLD : UpdateEntities +10:45:22.177 WORLD : PostFrame +10:45:22.177 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:45:22.177 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:45:22.221 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:45:22.221 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:45:22.221 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:45:22.221 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:45:22.356 RENDER : RENDER : ObjectsHeightMap::Build +10:45:22.356 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:45:22.518 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 161.484100 ms +10:45:22.525 PROFILING : ObjectsHeightMap::Build took: 168.965800 ms +10:45:23.684 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:45:23.702 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:45:23.703 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:45:23.730 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:45:23.733 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:45:23.782 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:45:23.782 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:45:23.787 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:45:23.833 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:45:23.834 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:45:23.835 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:45:23.836 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:45:23.839 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:45:23.840 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:45:23.840 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:45:23.841 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:45:23.841 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:45:23.841 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:45:23.842 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:45:23.842 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:45:23.842 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:45:23.842 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.842 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:45:23.842 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:45:23.843 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.843 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:45:23.843 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:45:23.843 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.843 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.843 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.843 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:24.630 WORLD : UpdateEntities +10:45:24.630 WORLD : AfterPostSimulate +10:45:24.630 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:45:24.694 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.946 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5319,7499.7> up=0.99568 +10:45:24.947 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315906 angularSpeed=0.0413675 +10:45:24.947 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:24.947 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6172,7501.97> +10:45:24.947 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3172,7501.97> terrainY=63.3165 tireTerrainGap=0.000713348 +10:45:24.948 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6172,7501.97> radius=0.3 bottom=<7012.07,63.3172,7501.97> fraction=0.458263 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00082016 +10:45:24.948 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6042,7497.71> +10:45:24.948 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1542,7497.71> terrainY=64.1555 tireTerrainGap=-0.00132751 +10:45:24.948 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6042,7497.71> radius=0.45 bottom=<7009.88,64.1542,7497.71> fraction=0.448682 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00128937 +10:45:24.948 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.265,7497.74> +10:45:24.949 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.815,7497.74> terrainY=63.8179 tireTerrainGap=-0.0029335 +10:45:24.949 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.265,7497.74> radius=0.45 bottom=<7014.42,63.815,7497.74> fraction=0.441111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00295639 +10:45:24.949 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.055 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5353,7499.71> up=0.994343 +10:45:26.055 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +10:45:26.055 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:26.055 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6194,7501.99> +10:45:26.056 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3194,7501.99> terrainY=63.3145 tireTerrainGap=0.00493622 +10:45:26.056 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6194,7501.99> radius=0.3 bottom=<7012.07,63.3194,7501.99> fraction=0.477311 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0050087 +10:45:26.056 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:45:26.056 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00328827 +10:45:26.057 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469731 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00334167 +10:45:26.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2654,7497.78> +10:45:26.057 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8154,7497.78> terrainY=63.8155 tireTerrainGap=-0.000133514 +10:45:26.057 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2654,7497.78> radius=0.45 bottom=<7014.47,63.8154,7497.78> fraction=0.453889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000144958 +10:45:26.057 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.555 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:27.056 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994316 +10:45:27.057 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +10:45:27.057 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:27.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6146,7502.01> +10:45:27.057 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3146,7502.01> terrainY=63.3115 tireTerrainGap=0.00307846 +10:45:27.057 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6146,7502.01> radius=0.3 bottom=<7012.07,63.3146,7502.01> fraction=0.468559 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00308228 +10:45:27.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5936,7497.72> +10:45:27.058 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1436,7497.72> terrainY=64.1426 tireTerrainGap=0.000946045 +10:45:27.058 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5936,7497.72> radius=0.45 bottom=<7009.97,64.1436,7497.72> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +10:45:27.058 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2596,7497.83> +10:45:27.058 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8096,7497.83> terrainY=63.8125 tireTerrainGap=-0.00291061 +10:45:27.058 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2596,7497.83> radius=0.45 bottom=<7014.51,63.8096,7497.83> fraction=0.441111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00295639 +10:45:27.059 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.060 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:28.072 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +10:45:28.072 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:45:28.072 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:28.072 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:45:28.073 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00171661 +10:45:28.073 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:45:28.073 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:45:28.073 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +10:45:28.073 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:45:28.074 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:45:28.074 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +10:45:28.074 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:45:28.074 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.585 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:29.089 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +10:45:29.089 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:45:29.089 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:29.089 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:45:29.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00171661 +10:45:29.090 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:45:29.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:45:29.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +10:45:29.090 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:45:29.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:45:29.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +10:45:29.091 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:45:29.091 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:29.091 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:29.092 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:45:29.092 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:45:29.093 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:45:29.094 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:45:29.094 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:45:29.094 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:45:29.094 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:45:29.094 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:45:29.206 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:45:29.247 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +10:45:29.473 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.475 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.475 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:45:29.475 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:45:29.477 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.477 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.477 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:45:29.478 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:45:29.478 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:45:29.480 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:45:29.480 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:45:29.503 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:45:29.978 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:45:29.979 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:45:29.987 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:45:29.987 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:45:30.478 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:45:30.478 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:45:30.478 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:45:30.478 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:45:30.478 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:45:30.497 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:45:30.497 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:45:30.985 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28991.7 +10:45:30.986 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:45:30.986 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000826B3CA8> activeSeat=PilotCompartmentSlot<0x00000000826B3CA8> group=<0x00000001B9E4A280> SCR_AIGroup actualGroup=<0x00000001B9E4A280> SCR_AIGroup +10:45:30.986 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:45:30.987 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:45:30.987 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:45:30.987 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:45:33.012 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10010.8 remainingMs=26965.7 +10:45:33.012 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:45:33.013 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398584 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398584 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000826B3CA8> activeSeat=PilotCompartmentSlot<0x00000000826B3CA8> group=<0x00000001B9E4A280> SCR_AIGroup actualGroup=<0x00000001B9E4A280> SCR_AIGroup +10:45:33.013 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:45:33.013 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:45:33.013 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996355 entityOrigin=<4801.01,27.5759,11487.4> +10:45:33.014 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:45:33.514 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:45:33.549 WORLD : UpdateEntities +10:45:33.549 WORLD : Frame +10:45:33.549 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0552837 input=1 simulation=1 +10:45:33.602 WORLD : UpdateEntities +10:45:33.602 WORLD : Frame +10:45:33.603 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0532474 input=1 simulation=1 +10:45:33.651 WORLD : UpdateEntities +10:45:33.651 WORLD : Frame +10:45:33.651 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0483705 input=1 simulation=1 +10:45:33.705 WORLD : UpdateEntities +10:45:33.705 WORLD : Frame +10:45:33.705 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.054443 input=1 simulation=1 +10:45:34.017 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=9 +10:45:34.018 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0136204 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +10:45:34.018 SCRIPT : ERR POWERED INPUT: pilotHooks=9 vehicleHooks=9 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:45:34.018 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=9 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=46.4082 beforeWriteAgeMs=34.6035 +10:45:34.018 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:45:34.019 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:45:34.019 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:45:34.019 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:45:34.019 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4903,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7788 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7451,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:45:34.021 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6671 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224308 +10:45:34.021 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:45:34.021 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:45:36.037 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +10:45:36.037 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00530243 drift=0.0379134 speed=0 vertical=0 up=0.996058 groundContact=1 fuel=1938.75 engine=0 +10:45:36.038 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:45:36.038 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=47 writtenAgeMs=37.875 beforeWriteAgeMs=26.0596 +10:45:36.038 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:45:36.038 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:45:38.056 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=82 +10:45:38.057 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00990295 drift=0.130015 speed=0.0441599 vertical=-0.00201868 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +10:45:38.057 SCRIPT : ERR POWERED INPUT: pilotHooks=82 vehicleHooks=82 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.00033605 targetRPM=196 +10:45:38.057 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=82 applyCallbacks=136 beforeWriteSequence=82 writtenAgeMs=55.96 beforeWriteAgeMs=34.5488 +10:45:38.057 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:38.057 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:40.076 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=120 +10:45:40.076 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130424 drift=0.221269 speed=0.0444388 vertical=-0.0022977 up=0.99608 groundContact=1 fuel=1938.57 engine=1 +10:45:40.076 SCRIPT : ERR POWERED INPUT: pilotHooks=120 vehicleHooks=120 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.024105 targetRPM=196 +10:45:40.076 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=120 applyCallbacks=197 beforeWriteSequence=120 writtenAgeMs=44.2207 beforeWriteAgeMs=14.6211 +10:45:40.077 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:40.077 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:42.104 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=158 +10:45:42.104 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161781 drift=0.312555 speed=0.0437061 vertical=-0.00217662 up=0.996107 groundContact=1 fuel=1938.48 engine=1 +10:45:42.105 SCRIPT : ERR POWERED INPUT: pilotHooks=158 vehicleHooks=158 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.409287 targetRPM=196 +10:45:42.105 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=158 applyCallbacks=258 beforeWriteSequence=158 writtenAgeMs=15.8906 beforeWriteAgeMs=15.8906 +10:45:42.105 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:42.105 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:44.128 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=195 +10:45:44.128 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193481 drift=0.405804 speed=0.0435964 vertical=-0.00174062 up=0.996139 groundContact=1 fuel=1938.39 engine=1 +10:45:44.128 SCRIPT : ERR POWERED INPUT: pilotHooks=195 vehicleHooks=195 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.36328 targetRPM=196 +10:45:44.129 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=195 applyCallbacks=318 beforeWriteSequence=195 writtenAgeMs=36.0625 beforeWriteAgeMs=24.8633 +10:45:44.129 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:44.129 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:46.149 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=233 +10:45:46.150 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204315 drift=0.498071 speed=0.0427185 vertical=0.00113997 up=0.996171 groundContact=1 fuel=1938.31 engine=1 +10:45:46.150 SCRIPT : ERR POWERED INPUT: pilotHooks=233 vehicleHooks=233 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.9068 targetRPM=196 +10:45:46.150 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=233 applyCallbacks=379 beforeWriteSequence=233 writtenAgeMs=33.0137 beforeWriteAgeMs=12.3281 +10:45:46.150 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:46.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:48.177 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=270 +10:45:48.177 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0126286 drift=0.57472 speed=0.0391543 vertical=0.0061252 up=0.99622 groundContact=1 fuel=1938.22 engine=1 +10:45:48.177 SCRIPT : ERR POWERED INPUT: pilotHooks=270 vehicleHooks=270 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.7491 targetRPM=196 +10:45:48.178 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=270 applyCallbacks=440 beforeWriteSequence=270 writtenAgeMs=57.373 beforeWriteAgeMs=12.6133 +10:45:48.178 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:48.178 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:50.199 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=309 +10:45:50.199 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00254822 drift=0.638675 speed=0.0306173 vertical=0.00468414 up=0.996289 groundContact=1 fuel=1938.13 engine=1 +10:45:50.199 SCRIPT : ERR POWERED INPUT: pilotHooks=309 vehicleHooks=309 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.732075 rotorRPM=87.5211 targetRPM=196 +10:45:50.199 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=309 applyCallbacks=500 beforeWriteSequence=309 writtenAgeMs=26.8809 beforeWriteAgeMs=26.8809 +10:45:50.199 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.732075> writtenThrottle=0 beforeWriteThrottle=0 +10:45:50.200 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.866037 autohover=0 collectiveMode=3 +10:45:51.382 WORLD : UpdateEntities +10:45:51.382 WORLD : AfterPostSimulate +10:45:51.382 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:45:52.210 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=345 +10:45:52.210 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00632477 drift=0.702148 speed=0.0303784 vertical=0.00490873 up=0.996354 groundContact=1 fuel=1938.04 engine=1 +10:45:52.210 SCRIPT : ERR POWERED INPUT: pilotHooks=345 vehicleHooks=345 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.531198 rotorRPM=105.175 targetRPM=196 +10:45:52.210 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=345 applyCallbacks=560 beforeWriteSequence=345 writtenAgeMs=39.0645 beforeWriteAgeMs=39.0645 +10:45:52.211 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.531198> writtenThrottle=0 beforeWriteThrottle=0 +10:45:52.211 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.765599 autohover=0 collectiveMode=3 +10:45:54.231 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=382 +10:45:54.231 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0170689 drift=0.745769 speed=0.032953 vertical=0.00645579 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +10:45:54.231 SCRIPT : ERR POWERED INPUT: pilotHooks=382 vehicleHooks=382 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.39333 rotorRPM=121.685 targetRPM=196 +10:45:54.232 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=382 applyCallbacks=621 beforeWriteSequence=382 writtenAgeMs=13.8633 beforeWriteAgeMs=13.8633 +10:45:54.232 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.39333> writtenThrottle=0 beforeWriteThrottle=0 +10:45:54.232 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.697619 autohover=0 collectiveMode=3 +10:45:56.266 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=419 +10:45:56.266 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0305538 drift=0.758156 speed=0.0528239 vertical=0.00837774 up=0.996477 groundContact=1 fuel=1937.86 engine=1 +10:45:56.266 SCRIPT : ERR POWERED INPUT: pilotHooks=419 vehicleHooks=419 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.291691 rotorRPM=137.975 targetRPM=196 +10:45:56.266 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=419 applyCallbacks=682 beforeWriteSequence=419 writtenAgeMs=23.9219 beforeWriteAgeMs=12.5078 +10:45:56.266 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.291691> writtenThrottle=0 beforeWriteThrottle=0 +10:45:56.267 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646577 autohover=0 collectiveMode=3 +10:45:58.285 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=455 +10:45:58.285 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.045805 drift=0.773335 speed=0.0680579 vertical=0.00853476 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +10:45:58.285 SCRIPT : ERR POWERED INPUT: pilotHooks=455 vehicleHooks=455 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213399 rotorRPM=153.974 targetRPM=196 +10:45:58.286 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=455 applyCallbacks=742 beforeWriteSequence=455 writtenAgeMs=51.1016 beforeWriteAgeMs=25.6523 +10:45:58.286 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213399> writtenThrottle=0 beforeWriteThrottle=0 +10:45:58.286 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.6067 autohover=0 collectiveMode=3 +10:46:00.332 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=490 +10:46:00.332 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0614147 drift=0.819749 speed=0.033686 vertical=0.00803691 up=0.996601 groundContact=1 fuel=1937.68 engine=1 +10:46:00.332 SCRIPT : ERR POWERED INPUT: pilotHooks=490 vehicleHooks=490 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.148134 rotorRPM=170.159 targetRPM=196 +10:46:00.333 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=490 applyCallbacks=804 beforeWriteSequence=490 writtenAgeMs=56.2461 beforeWriteAgeMs=12.5664 +10:46:00.333 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.148134> writtenThrottle=0 beforeWriteThrottle=0 +10:46:00.333 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574543 autohover=0 collectiveMode=3 +10:46:01.343 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:46:01.845 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:46:01.845 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +10:46:02.349 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=526 +10:46:02.349 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0958252 drift=1.06781 speed=0.59334 vertical=0.0119304 up=0.996222 groundContact=1 fuel=1937.59 engine=1 +10:46:02.349 SCRIPT : ERR POWERED INPUT: pilotHooks=526 vehicleHooks=526 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.211 targetRPM=196 +10:46:02.350 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=526 applyCallbacks=864 beforeWriteSequence=526 writtenAgeMs=57.1562 beforeWriteAgeMs=26.3359 +10:46:02.350 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +10:46:02.350 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +10:46:02.350 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:46:02.350 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=18 matched=1 +10:46:02.351 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:46:04.356 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=563 +10:46:04.358 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.145 drift=3.83105 speed=2.44388 vertical=1.42517 up=0.999713 groundContact=0 fuel=1937.51 engine=1 +10:46:04.358 SCRIPT : ERR POWERED INPUT: pilotHooks=563 vehicleHooks=563 readback=1 collective=0.164014 cyclicF=0.0665994 cyclicR=-0.0349274 antiTorque=0.203699 rotorRPM=189.13 targetRPM=196 +10:46:04.358 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=563 applyCallbacks=924 beforeWriteSequence=562 writtenAgeMs=10.4844 beforeWriteAgeMs=33.7383 +10:46:04.358 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163527 beforeWriteCollective=0.164014 writtenFRA=<0.0645442,-0.0346315,0.0279755> beforeWriteFRA=<0.0665994,-0.0349274,0.203699> writtenThrottle=0 beforeWriteThrottle=0 +10:46:04.359 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.164014 cyclicForward=0.0665994 cyclicAside=-0.0349274 tailCollective=0.601849 autohover=0 collectiveMode=3 +10:46:06.385 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=601 +10:46:06.386 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.31804 drift=7.586 speed=1.94784 vertical=1.69441 up=0.992953 groundContact=0 fuel=1937.42 engine=1 +10:46:06.386 SCRIPT : ERR POWERED INPUT: pilotHooks=601 vehicleHooks=601 readback=1 collective=0.134219 cyclicF=-0.0453056 cyclicR=-0.0166714 antiTorque=0.219095 rotorRPM=196 targetRPM=196 +10:46:06.386 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=601 applyCallbacks=985 beforeWriteSequence=600 writtenAgeMs=11.0469 beforeWriteAgeMs=23.5508 +10:46:06.386 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.133814 beforeWriteCollective=0.134219 writtenFRA=<-0.0490001,-0.0156311,0.0819696> beforeWriteFRA=<-0.0453056,-0.0166714,0.219095> writtenThrottle=0 beforeWriteThrottle=0 +10:46:06.387 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134219 cyclicForward=-0.0453056 cyclicAside=-0.0166714 tailCollective=0.609547 autohover=0 collectiveMode=3 +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/error.log.txt b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/error.log.txt new file mode 100644 index 0000000..acdad25 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38\error.log started at 2026-09-19 10:44:40 (2026-09-19 08:44:40 UTC) + +10:44:40.452 INIT : Workbench startup +10:44:40.452 INIT : Workbench Init Engine +10:44:40.452 RESOURCES : ResourceDB: full scan +10:44:40.452 RESOURCES : processing files... +10:44:40.452 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:44:40.452 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:44:40.452 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:44:43.672 INIT : Workbench Create Game +10:44:43.672 SCRIPT : Compiling Game scripts +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:44:43.831 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:43.947 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:44:43.982 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:44:44.118 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:44:44.178 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:44:44.244 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.278 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:44:53.191 WORLD : CreateEntities +10:44:53.192 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:44:53.192 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:44:53.192 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:45:08.375 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:45:13.075 WORLD : Game::LoadEntities +10:45:13.075 WORLD : CreateEntities +10:45:13.075 WORLD : CreateEntities +10:45:13.075 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:45:13.075 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:45:13.075 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:45:14.452 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:45:14.452 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:45:14.452 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:45:14.452 ENTITY : CreateComponent 'Hierarchy' +10:45:14.452 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:45:14.457 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:45:14.457 ENTITY : CreateComponent 'Hierarchy' +10:45:14.457 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:45:14.461 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:45:14.461 ENTITY : CreateComponent 'Hierarchy' +10:45:14.461 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:45:21.330 WORLD : InitEntities 'world' +10:45:21.330 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:45:21.330 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:45:21.890 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.890 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:45:21.890 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.890 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! +10:45:21.890 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! +10:45:21.892 SCRIPT (W): Can't open config file "" +10:45:21.899 WORLD : InitEntities 'world' +10:45:21.900 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:45:21.900 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:45:21.900 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:45:21.900 SCRIPT (W): Slot_Chat Has no Content! +10:45:21.900 SCRIPT (W): Slot_VON Has no Content! +10:45:21.900 SCRIPT (W): Slot_AvailableActions Has no Content! +10:45:21.900 SCRIPT (W): Slot_Vehicle Has no Content! +10:45:21.901 SCRIPT (W): Slot_GameVersion Has no Content! +10:45:21.901 SCRIPT (W): Slot_Notifications Has no Content! +10:45:21.901 SCRIPT (W): Slot_Hints Has no Content! +10:45:21.912 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:45:21.912 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:45:21.912 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:45:21.912 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. +10:45:21.913 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. +10:45:21.917 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:45:22.177 WORLD : UpdateEntities +10:45:22.177 WORLD : PostFrame +10:45:22.177 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:45:22.177 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:45:22.221 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:45:22.221 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:45:22.221 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:45:22.221 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:45:24.630 WORLD : UpdateEntities +10:45:24.630 WORLD : AfterPostSimulate +10:45:24.630 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:45:51.382 WORLD : UpdateEntities +10:45:51.382 WORLD : AfterPostSimulate +10:45:51.382 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/headless-launch.log.txt new file mode 100644 index 0000000..88693fe --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a000a7 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a000a7 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a000a7 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a003a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a003a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a003a4 + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x55556af0a9d0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55556af0a9d0 +[Gamescope WSI] Destroyed swapchain: 0x55556af0a9d0 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x55556af0a9d0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55556af0a9d0 +[Gamescope WSI] Destroyed swapchain: 0x55556af0a9d0 +[Gamescope WSI] Creating swapchain for xid: 0x1a003a4 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a003a4 swapchain: 0x55556af0a9d0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source-sha256.json new file mode 100644 index 0000000..88e63d8 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source.json b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source.json new file mode 100644 index 0000000..8cd4438 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "bcab6c26-1660-4fe6-b0bf-a451cd9dc01b", + "captured_unix": 1789807476.92661, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49" +} diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/report.json b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/report.json new file mode 100644 index 0000000..f8696e9 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-104438-flight-drift-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 70, + "script_or_runtime_failures": [ + "10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/runner.json.txt new file mode 100644 index 0000000..088c0a1 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789807568.6974957, + "console_sha256": "98962497a38f2ff2aae1e1b8977380cadeeae93b44ed465b560500efea613569", + "end_source_sha256": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "bcab6c26-1660-4fe6-b0bf-a451cd9dc01b", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49", + "started_unix": 1789807476.9266922, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-44-38", + "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/native-2026-09-19-104438-flight-drift-refusal/script.log.txt b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/script.log.txt new file mode 100644 index 0000000..ec14681 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/script.log.txt @@ -0,0 +1,421 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-44-38\script.log started at 2026-09-19 10:44:41 (2026-09-19 08:44:41 UTC) + +10:44:41.533 SCRIPT : SCRIPT : Initializing scripts +10:44:41.533 SCRIPT : SCRIPT : ScriptProjectManager init +10:44:42.484 SCRIPT : SCRIPT : Compiling GameLib scripts +10:44:42.540 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:44:42.541 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:44:42.541 SCRIPT : SCRIPT : Compiling Game scripts +10:44:43.672 SCRIPT : Compiling Game scripts +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:44:43.672 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:44:43.831 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:43.947 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:44:43.982 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:44:44.088 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:44:44.118 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:44:44.176 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:44:44.178 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.219 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:44:44.220 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:44:44.244 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:44:44.278 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:44:44.558 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:44:44.565 SCRIPT : Module: Game; loaded 5742x files; 11257x classes; used 33008K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 8fae2b19 +10:44:45.500 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:44:45.500 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:45:05.051 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:45:08.372 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:45:08.372 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:45:21.330 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:45:21.357 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:45:21.890 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! +10:45:21.890 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! +10:45:21.892 SCRIPT (W): Can't open config file "" +10:45:21.900 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:45:21.900 SCRIPT (W): Slot_Chat Has no Content! +10:45:21.900 SCRIPT (W): Slot_VON Has no Content! +10:45:21.900 SCRIPT (W): Slot_AvailableActions Has no Content! +10:45:21.900 SCRIPT (W): Slot_Vehicle Has no Content! +10:45:21.901 SCRIPT (W): Slot_GameVersion Has no Content! +10:45:21.901 SCRIPT (W): Slot_Notifications Has no Content! +10:45:21.901 SCRIPT (W): Slot_Hints Has no Content! +10:45:21.912 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. +10:45:21.913 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. +10:45:21.917 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:45:21.976 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:45:21.991 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:45:22.177 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:45:23.684 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:45:23.702 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:45:23.703 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:45:23.730 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:45:23.733 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:45:23.782 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:45:23.782 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:45:23.787 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:45:23.833 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:45:23.834 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:45:23.835 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:45:23.836 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:45:23.839 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:45:23.840 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:45:23.840 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:45:23.841 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:45:23.841 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:45:23.841 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:45:23.842 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:45:23.842 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:45:23.842 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:45:23.842 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.842 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:45:23.842 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:45:23.843 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.843 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:45:23.843 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:45:23.843 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:45:23.843 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.843 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:23.844 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:45:24.694 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.695 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:24.946 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5319,7499.7> up=0.99568 +10:45:24.947 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315906 angularSpeed=0.0413675 +10:45:24.947 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:24.947 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6172,7501.97> +10:45:24.947 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3172,7501.97> terrainY=63.3165 tireTerrainGap=0.000713348 +10:45:24.948 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6172,7501.97> radius=0.3 bottom=<7012.07,63.3172,7501.97> fraction=0.458263 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00082016 +10:45:24.948 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6042,7497.71> +10:45:24.948 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1542,7497.71> terrainY=64.1555 tireTerrainGap=-0.00132751 +10:45:24.948 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6042,7497.71> radius=0.45 bottom=<7009.88,64.1542,7497.71> fraction=0.448682 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00128937 +10:45:24.948 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.265,7497.74> +10:45:24.949 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.815,7497.74> terrainY=63.8179 tireTerrainGap=-0.0029335 +10:45:24.949 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.265,7497.74> radius=0.45 bottom=<7014.42,63.815,7497.74> fraction=0.441111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00295639 +10:45:24.949 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.204 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:25.716 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.055 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5353,7499.71> up=0.994343 +10:45:26.055 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +10:45:26.055 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:26.055 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6194,7501.99> +10:45:26.056 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3194,7501.99> terrainY=63.3145 tireTerrainGap=0.00493622 +10:45:26.056 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6194,7501.99> radius=0.3 bottom=<7012.07,63.3194,7501.99> fraction=0.477311 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0050087 +10:45:26.056 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:45:26.056 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00328827 +10:45:26.057 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469731 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00334167 +10:45:26.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2654,7497.78> +10:45:26.057 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8154,7497.78> terrainY=63.8155 tireTerrainGap=-0.000133514 +10:45:26.057 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2654,7497.78> radius=0.45 bottom=<7014.47,63.8154,7497.78> fraction=0.453889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000144958 +10:45:26.057 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:45:26.058 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.555 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:26.556 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:45:27.056 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994316 +10:45:27.057 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +10:45:27.057 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:27.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6146,7502.01> +10:45:27.057 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3146,7502.01> terrainY=63.3115 tireTerrainGap=0.00307846 +10:45:27.057 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6146,7502.01> radius=0.3 bottom=<7012.07,63.3146,7502.01> fraction=0.468559 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00308228 +10:45:27.057 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5936,7497.72> +10:45:27.058 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1436,7497.72> terrainY=64.1426 tireTerrainGap=0.000946045 +10:45:27.058 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5936,7497.72> radius=0.45 bottom=<7009.97,64.1436,7497.72> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +10:45:27.058 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2596,7497.83> +10:45:27.058 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8096,7497.83> terrainY=63.8125 tireTerrainGap=-0.00291061 +10:45:27.058 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2596,7497.83> radius=0.45 bottom=<7014.51,63.8096,7497.83> fraction=0.441111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00295639 +10:45:27.059 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.059 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.060 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:27.563 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:45:28.072 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +10:45:28.072 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:45:28.072 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:28.072 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:45:28.073 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00171661 +10:45:28.073 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:45:28.073 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:45:28.073 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +10:45:28.073 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:45:28.074 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:45:28.074 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +10:45:28.074 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:45:28.074 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.075 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.584 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:28.585 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:29.089 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +10:45:29.089 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:45:29.089 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:45:29.089 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +10:45:29.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00171661 +10:45:29.090 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:45:29.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +10:45:29.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +10:45:29.090 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +10:45:29.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +10:45:29.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +10:45:29.091 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:45:29.091 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:45:29.091 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:45:29.092 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:45:29.092 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:45:29.093 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:45:29.094 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:45:29.094 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:45:29.094 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:45:29.094 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:45:29.094 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:45:29.206 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:45:29.247 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +10:45:29.473 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:45:29.474 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.475 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.475 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:45:29.475 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.475 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.476 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:45:29.476 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:45:29.477 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.477 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:45:29.477 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:45:29.477 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:45:29.478 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:45:29.478 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.478 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:45:29.479 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:45:29.479 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:45:29.480 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:45:29.480 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:45:29.480 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:45:29.500 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:45:29.502 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:45:29.503 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:45:29.504 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:45:29.978 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:45:29.979 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:45:29.987 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:45:29.987 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:45:30.478 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:45:30.478 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:45:30.478 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:45:30.478 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:45:30.478 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:45:30.497 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:45:30.497 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:45:30.985 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28991.7 +10:45:30.986 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:45:30.986 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000826B3CA8> activeSeat=PilotCompartmentSlot<0x00000000826B3CA8> group=<0x00000001B9E4A280> SCR_AIGroup actualGroup=<0x00000001B9E4A280> SCR_AIGroup +10:45:30.986 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:45:30.987 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:45:30.987 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:45:30.987 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:45:33.012 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10010.8 remainingMs=26965.7 +10:45:33.012 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:45:33.013 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398584 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA53B2B0> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.490723 29.398584 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x00000000826B3CA8> activeSeat=PilotCompartmentSlot<0x00000000826B3CA8> group=<0x00000001B9E4A280> SCR_AIGroup actualGroup=<0x00000001B9E4A280> SCR_AIGroup +10:45:33.013 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:45:33.013 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:45:33.013 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996355 entityOrigin=<4801.01,27.5759,11487.4> +10:45:33.014 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:45:33.514 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:45:33.549 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0552837 input=1 simulation=1 +10:45:33.603 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0532474 input=1 simulation=1 +10:45:33.651 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0483705 input=1 simulation=1 +10:45:33.705 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.054443 input=1 simulation=1 +10:45:34.017 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=9 +10:45:34.018 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0136204 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +10:45:34.018 SCRIPT : ERR POWERED INPUT: pilotHooks=9 vehicleHooks=9 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:45:34.018 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=9 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=46.4082 beforeWriteAgeMs=34.6035 +10:45:34.018 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:45:34.019 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:45:34.019 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:45:34.019 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4903,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7788 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7451,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:45:34.020 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:45:34.021 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6671 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224308 +10:45:34.021 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:45:34.021 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:45:36.037 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +10:45:36.037 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00530243 drift=0.0379134 speed=0 vertical=0 up=0.996058 groundContact=1 fuel=1938.75 engine=0 +10:45:36.038 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:45:36.038 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=47 writtenAgeMs=37.875 beforeWriteAgeMs=26.0596 +10:45:36.038 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:45:36.038 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:45:38.056 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=82 +10:45:38.057 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00990295 drift=0.130015 speed=0.0441599 vertical=-0.00201868 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +10:45:38.057 SCRIPT : ERR POWERED INPUT: pilotHooks=82 vehicleHooks=82 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.00033605 targetRPM=196 +10:45:38.057 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=82 applyCallbacks=136 beforeWriteSequence=82 writtenAgeMs=55.96 beforeWriteAgeMs=34.5488 +10:45:38.057 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:38.058 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:40.076 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=120 +10:45:40.076 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130424 drift=0.221269 speed=0.0444388 vertical=-0.0022977 up=0.99608 groundContact=1 fuel=1938.57 engine=1 +10:45:40.076 SCRIPT : ERR POWERED INPUT: pilotHooks=120 vehicleHooks=120 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.024105 targetRPM=196 +10:45:40.076 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=120 applyCallbacks=197 beforeWriteSequence=120 writtenAgeMs=44.2207 beforeWriteAgeMs=14.6211 +10:45:40.077 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:40.077 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:42.104 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=158 +10:45:42.104 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161781 drift=0.312555 speed=0.0437061 vertical=-0.00217662 up=0.996107 groundContact=1 fuel=1938.48 engine=1 +10:45:42.105 SCRIPT : ERR POWERED INPUT: pilotHooks=158 vehicleHooks=158 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.409287 targetRPM=196 +10:45:42.105 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=158 applyCallbacks=258 beforeWriteSequence=158 writtenAgeMs=15.8906 beforeWriteAgeMs=15.8906 +10:45:42.105 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:42.105 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:44.128 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=195 +10:45:44.128 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193481 drift=0.405804 speed=0.0435964 vertical=-0.00174062 up=0.996139 groundContact=1 fuel=1938.39 engine=1 +10:45:44.128 SCRIPT : ERR POWERED INPUT: pilotHooks=195 vehicleHooks=195 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.36328 targetRPM=196 +10:45:44.129 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=195 applyCallbacks=318 beforeWriteSequence=195 writtenAgeMs=36.0625 beforeWriteAgeMs=24.8633 +10:45:44.129 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:44.129 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:46.149 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=233 +10:45:46.150 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204315 drift=0.498071 speed=0.0427185 vertical=0.00113997 up=0.996171 groundContact=1 fuel=1938.31 engine=1 +10:45:46.150 SCRIPT : ERR POWERED INPUT: pilotHooks=233 vehicleHooks=233 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.9068 targetRPM=196 +10:45:46.150 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=233 applyCallbacks=379 beforeWriteSequence=233 writtenAgeMs=33.0137 beforeWriteAgeMs=12.3281 +10:45:46.150 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:46.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:48.177 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=270 +10:45:48.177 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0126286 drift=0.57472 speed=0.0391543 vertical=0.0061252 up=0.99622 groundContact=1 fuel=1938.22 engine=1 +10:45:48.177 SCRIPT : ERR POWERED INPUT: pilotHooks=270 vehicleHooks=270 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.7491 targetRPM=196 +10:45:48.178 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=270 applyCallbacks=440 beforeWriteSequence=270 writtenAgeMs=57.373 beforeWriteAgeMs=12.6133 +10:45:48.178 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:45:48.178 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:45:50.199 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=309 +10:45:50.199 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00254822 drift=0.638675 speed=0.0306173 vertical=0.00468414 up=0.996289 groundContact=1 fuel=1938.13 engine=1 +10:45:50.199 SCRIPT : ERR POWERED INPUT: pilotHooks=309 vehicleHooks=309 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.732075 rotorRPM=87.5211 targetRPM=196 +10:45:50.199 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=309 applyCallbacks=500 beforeWriteSequence=309 writtenAgeMs=26.8809 beforeWriteAgeMs=26.8809 +10:45:50.199 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.732075> writtenThrottle=0 beforeWriteThrottle=0 +10:45:50.200 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.866037 autohover=0 collectiveMode=3 +10:45:52.210 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=345 +10:45:52.210 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00632477 drift=0.702148 speed=0.0303784 vertical=0.00490873 up=0.996354 groundContact=1 fuel=1938.04 engine=1 +10:45:52.210 SCRIPT : ERR POWERED INPUT: pilotHooks=345 vehicleHooks=345 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.531198 rotorRPM=105.175 targetRPM=196 +10:45:52.210 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=345 applyCallbacks=560 beforeWriteSequence=345 writtenAgeMs=39.0645 beforeWriteAgeMs=39.0645 +10:45:52.211 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.531198> writtenThrottle=0 beforeWriteThrottle=0 +10:45:52.211 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.765599 autohover=0 collectiveMode=3 +10:45:54.231 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=382 +10:45:54.231 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0170689 drift=0.745769 speed=0.032953 vertical=0.00645579 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +10:45:54.231 SCRIPT : ERR POWERED INPUT: pilotHooks=382 vehicleHooks=382 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.39333 rotorRPM=121.685 targetRPM=196 +10:45:54.232 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=382 applyCallbacks=621 beforeWriteSequence=382 writtenAgeMs=13.8633 beforeWriteAgeMs=13.8633 +10:45:54.232 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.39333> writtenThrottle=0 beforeWriteThrottle=0 +10:45:54.232 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.697619 autohover=0 collectiveMode=3 +10:45:56.266 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=419 +10:45:56.266 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0305538 drift=0.758156 speed=0.0528239 vertical=0.00837774 up=0.996477 groundContact=1 fuel=1937.86 engine=1 +10:45:56.266 SCRIPT : ERR POWERED INPUT: pilotHooks=419 vehicleHooks=419 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.291691 rotorRPM=137.975 targetRPM=196 +10:45:56.266 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=419 applyCallbacks=682 beforeWriteSequence=419 writtenAgeMs=23.9219 beforeWriteAgeMs=12.5078 +10:45:56.266 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.291691> writtenThrottle=0 beforeWriteThrottle=0 +10:45:56.267 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646577 autohover=0 collectiveMode=3 +10:45:58.285 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=455 +10:45:58.285 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.045805 drift=0.773335 speed=0.0680579 vertical=0.00853476 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +10:45:58.285 SCRIPT : ERR POWERED INPUT: pilotHooks=455 vehicleHooks=455 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213399 rotorRPM=153.974 targetRPM=196 +10:45:58.286 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=455 applyCallbacks=742 beforeWriteSequence=455 writtenAgeMs=51.1016 beforeWriteAgeMs=25.6523 +10:45:58.286 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213399> writtenThrottle=0 beforeWriteThrottle=0 +10:45:58.286 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.6067 autohover=0 collectiveMode=3 +10:46:00.332 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=490 +10:46:00.332 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0614147 drift=0.819749 speed=0.033686 vertical=0.00803691 up=0.996601 groundContact=1 fuel=1937.68 engine=1 +10:46:00.332 SCRIPT : ERR POWERED INPUT: pilotHooks=490 vehicleHooks=490 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.148134 rotorRPM=170.159 targetRPM=196 +10:46:00.333 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=490 applyCallbacks=804 beforeWriteSequence=490 writtenAgeMs=56.2461 beforeWriteAgeMs=12.5664 +10:46:00.333 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.148134> writtenThrottle=0 beforeWriteThrottle=0 +10:46:00.333 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574543 autohover=0 collectiveMode=3 +10:46:01.343 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:46:01.845 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:46:01.845 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +10:46:02.349 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=526 +10:46:02.349 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0958252 drift=1.06781 speed=0.59334 vertical=0.0119304 up=0.996222 groundContact=1 fuel=1937.59 engine=1 +10:46:02.349 SCRIPT : ERR POWERED INPUT: pilotHooks=526 vehicleHooks=526 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.211 targetRPM=196 +10:46:02.350 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=526 applyCallbacks=864 beforeWriteSequence=526 writtenAgeMs=57.1562 beforeWriteAgeMs=26.3359 +10:46:02.350 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +10:46:02.350 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +10:46:02.350 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:46:02.350 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=18 matched=1 +10:46:02.351 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:46:04.356 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=563 +10:46:04.358 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.145 drift=3.83105 speed=2.44388 vertical=1.42517 up=0.999713 groundContact=0 fuel=1937.51 engine=1 +10:46:04.358 SCRIPT : ERR POWERED INPUT: pilotHooks=563 vehicleHooks=563 readback=1 collective=0.164014 cyclicF=0.0665994 cyclicR=-0.0349274 antiTorque=0.203699 rotorRPM=189.13 targetRPM=196 +10:46:04.358 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=563 applyCallbacks=924 beforeWriteSequence=562 writtenAgeMs=10.4844 beforeWriteAgeMs=33.7383 +10:46:04.358 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163527 beforeWriteCollective=0.164014 writtenFRA=<0.0645442,-0.0346315,0.0279755> beforeWriteFRA=<0.0665994,-0.0349274,0.203699> writtenThrottle=0 beforeWriteThrottle=0 +10:46:04.359 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.164014 cyclicForward=0.0665994 cyclicAside=-0.0349274 tailCollective=0.601849 autohover=0 collectiveMode=3 +10:46:06.386 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=601 +10:46:06.386 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.31804 drift=7.586 speed=1.94784 vertical=1.69441 up=0.992953 groundContact=0 fuel=1937.42 engine=1 +10:46:06.386 SCRIPT : ERR POWERED INPUT: pilotHooks=601 vehicleHooks=601 readback=1 collective=0.134219 cyclicF=-0.0453056 cyclicR=-0.0166714 antiTorque=0.219095 rotorRPM=196 targetRPM=196 +10:46:06.386 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=601 applyCallbacks=985 beforeWriteSequence=600 writtenAgeMs=11.0469 beforeWriteAgeMs=23.5508 +10:46:06.386 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.133814 beforeWriteCollective=0.134219 writtenFRA=<-0.0490001,-0.0156311,0.0819696> beforeWriteFRA=<-0.0453056,-0.0166714,0.219095> writtenThrottle=0 beforeWriteThrottle=0 +10:46:06.387 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134219 cyclicForward=-0.0453056 cyclicAside=-0.0166714 tailCollective=0.609547 autohover=0 collectiveMode=3 +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:46:07.403 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-sha256.json new file mode 100644 index 0000000..88e63d8 --- /dev/null +++ b/docs/evidence/native-2026-09-19-104438-flight-drift-refusal/source-sha256.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/console.log.txt b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/console.log.txt new file mode 100644 index 0000000..9099815 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/console.log.txt @@ -0,0 +1,795 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26\console.log started at 2026-09-19 10:52:26 (2026-09-19 08:52:26 UTC) + +10:52:26.585 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26' to filesystem under name logs +10:52:26.585 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:52:26.585 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:52:26.587 PROFILING : Workbench Create Engine took: 10.143500 ms +10:52:27.626 INIT : INIT : Workbench Init Engine +10:52:27.626 ENGINE : Initializing engine, version 192142 +10:52:27.626 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +10:52:27.635 ENGINE : Addon dirs: +10:52:27.635 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +10:52:27.635 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:52:27.635 ENGINE : dir: './addons' +10:52:27.635 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:52:27.635 ENGINE : Available addons: +10:52:27.635 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:52:27.635 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:52:27.636 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:52:27.636 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:52:27.636 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:52:27.636 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:52:27.636 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:52:27.636 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:52:27.751 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:52:27.755 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:52:27.755 ENGINE : CPU vendor : AuthenticAMD +10:52:27.755 ENGINE : CPU type : 2 +10:52:27.755 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:52:27.755 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:52:27.755 ENGINE : CPU count logical : 16 +10:52:27.755 ENGINE : CPU count physical : 8 +10:52:27.755 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:52:27.755 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:52:27.756 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:52:27.904 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +10:52:27.905 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:52:27.905 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26/resourceDatabase.rdb) +10:52:28.054 RESOURCES : RESOURCES : ResourceDB: full scan +10:52:28.058 RESOURCES : RESOURCES : scanning... +10:52:28.058 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:52:28.062 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:52:28.196 RESOURCES : RESOURCES : scanning @"core" +10:52:28.200 RESOURCES : RESOURCES : scanning @"profile" +10:52:28.200 RESOURCES : RESOURCES : scanning @"logs" +10:52:28.201 RESOURCES : RESOURCES : processing meta-files... +10:52:28.270 RESOURCES : RESOURCES : processing files... +10:52:28.281 INIT : Workbench startup +10:52:28.281 INIT : Workbench Init Engine +10:52:28.281 RESOURCES : ResourceDB: full scan +10:52:28.281 RESOURCES : processing files... +10:52:28.281 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:52:28.281 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:52:28.281 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:52:28.281 RESOURCES : RESOURCES : processing folders... +10:52:28.287 RESOURCES : RESOURCES : creating GUID-item mapping... +10:52:28.302 RESOURCES : RESOURCES : building tree... +10:52:28.355 PROFILING : ResourceDB: full scan took: 300.912700 ms +10:52:28.355 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:52:28.357 RESOURCES : ResourceDB: written 6865/6865 bytes +10:52:28.357 RESOURCES : ResourceDB: cache successfully saved +10:52:28.357 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:52:28.358 RESOURCES : ResourceDB: written 206/206 bytes +10:52:28.359 RESOURCES : ResourceDB: cache successfully saved +10:52:28.359 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26/resourceDatabase.rdb) +10:52:28.360 RESOURCES : ResourceDB: written 162/162 bytes +10:52:28.360 RESOURCES : ResourceDB: cache successfully saved +10:52:28.360 ENGINE : GameProject load +10:52:28.360 ENGINE : Loaded addons: +10:52:28.360 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:52:28.360 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:52:28.360 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:52:28.362 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:52:28.362 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:52:28.362 ENGINE : Engine user settings config loaded +10:52:28.362 PROFILING : Settings changed took: 0.001400 ms +10:52:28.466 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:52:28.467 RENDER : Basic screen setup: +10:52:28.467 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:52:28.467 RENDER : MSAA : none +10:52:28.481 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:52:28.481 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:52:28.481 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:52:28.481 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:52:28.481 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:52:28.481 RENDER : AMD AGS correctly initialized +10:52:28.481 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 +10:52:28.481 RENDER : Detected output devices: +10:52:28.481 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:52:28.481 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:52:28.481 RENDER : Concurrent frames limit 2 +10:52:28.560 RENDER : DX12 device successfully created by AMD AGS library +10:52:28.560 RENDER : * user markers not supported in this version AMD SW +10:52:28.560 RENDER : Graphics device features +10:52:28.560 RENDER : Needed: +10:52:28.560 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:52:28.560 RENDER : Optional: +10:52:28.560 RENDER : * Allow tearing (VSYNC) : 1 +10:52:28.560 RENDER : * 16 bits : 1 +10:52:28.560 RENDER : * Resource heap tier : 3 +10:52:28.560 RENDER : * Persistent heaps (DRED) : 1 +10:52:28.560 RENDER : * DRED 1.2 is supported by compiler +10:52:28.584 RENDER : Main RT format setup. +10:52:28.584 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:52:28.584 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:52:28.586 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:52:28.617 PROFILING : Settings changed took: 0.016100 ms +10:52:29.110 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:52:29.110 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:52:29.110 AUDIO : Audio client: +10:52:29.110 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:52:29.113 RENDER : RENDER : Reload shaders +10:52:29.114 RENDER : Enfusion shader version 13 +10:52:29.114 INIT : INIT : ShaderListReload +10:52:29.114 PROFILING : ShaderListReload took: 0.000600 ms +10:52:29.255 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:52:29.255 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:52:29.255 AUDIO : Audio client: +10:52:29.255 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:52:29.358 RENDER : Loaded 3752 newer shader binaries +10:52:29.358 PROFILING : Reload shaders took: 244.420800 ms +10:52:29.358 ENGINE : Initializing inputs. +10:52:29.370 NETWORK : Initializing networking. +10:52:29.370 NETWORK : Using new GameRplScheduler. +10:52:29.370 SCRIPT : SCRIPT : Initializing scripts +10:52:29.371 SCRIPT : SCRIPT : ScriptProjectManager init +10:52:30.191 PROFILING : ScriptProjectManager init took: 820.174100 ms +10:52:30.225 PROFILING : Initializing scripts took: 854.174700 ms +10:52:30.242 ENGINE : Enfusion engine successfully created. +10:52:30.242 PROFILING : Workbench Init Engine took: 2616.187800 ms +10:52:30.242 INIT : INIT : Workbench Create Game +10:52:30.252 GUI : Using default language (en_us) +10:52:30.252 GUI : Loading 'en_us' localization file. +10:52:30.252 INIT : INIT : Loading StringTable +10:52:30.277 PROFILING : Loading StringTable took: 24.495800 ms +10:52:30.277 SCRIPT : SCRIPT : Compiling GameLib scripts +10:52:30.348 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:52:30.348 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:52:30.349 PROFILING : Compiling GameLib scripts took: 72.596100 ms +10:52:30.349 SCRIPT : SCRIPT : Compiling Game scripts +10:52:31.467 INIT : Workbench Create Game +10:52:31.467 SCRIPT : Compiling Game scripts +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:52:31.631 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:31.750 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:52:31.787 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:52:31.929 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:52:32.001 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:52:32.045 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.046 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:52:32.073 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.110 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:52:32.387 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:52:32.394 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 47865505 +10:52:32.435 PROFILING : Compiling Game scripts took: 2085.556700 ms +10:52:32.441 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:52:32.480 ENGINE : Game successfully created. +10:52:32.481 PROFILING : Workbench Create Game took: 2238.778500 ms +10:52:32.488 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +10:52:33.279 INIT : INIT : Workbench Reload Game +10:52:33.281 ENGINE : Game destroyed. +10:52:33.287 GUI : Using default language (en_us) +10:52:33.287 GUI : Loading 'en_us' localization file. +10:52:33.287 INIT : INIT : Loading StringTable +10:52:33.297 PROFILING : Loading StringTable took: 9.548600 ms +10:52:33.297 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:52:33.304 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:52:33.304 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:52:33.304 ENGINE : Game successfully created. +10:52:33.304 ENGINE : Game successfully initialized. +10:52:33.304 PROFILING : Workbench Reload Game took: 25.093500 ms +10:52:33.959 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:52:34.946 PROFILING : Entities load took: 986.422600 ms +10:52:34.957 WORLD : WORLD : CreateEntities +10:52:34.962 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:52:34.962 PROFILING : NotifyBeforeEntitiesCreated took: 0.002700 ms +10:52:34.962 WORLD : WORLD : Wait for preloading data +10:52:34.962 PROFILING : Wait for preloading data took: 0.003300 ms +10:52:35.073 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:52:35.073 PROFILING : PROFILING : Terrain load +10:52:36.786 PROFILING : Terrain load took: 1712.679000 ms +10:52:40.783 WORLD : CreateEntities +10:52:40.783 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:52:40.783 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:52:40.783 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:52:50.420 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:52:50.420 PROFILING : NotifyBeforeEntitiesInitialized took: 0.006500 ms +10:52:50.865 WORLD : WORLD : NotifyEntitiesInitialized +10:52:50.865 TERRAIN : TERRAIN : Initializing road networks... +10:52:50.868 PROFILING : Initializing road networks... took: 2.829100 ms +10:52:50.869 PROFILING : NotifyEntitiesInitialized took: 3.345400 ms +10:52:50.869 PROFILING : CreateEntities took: 15911.260100 ms +10:52:51.056 PROFILING : * WorldEditor: LoadWorld: 17101.298700 ms +10:52:52.570 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:52:52.570 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:52:52.571 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:52:52.571 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:52:52.653 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:52:52.673 BACKEND : Attempting online Game Config instead. +10:52:55.860 INIT : INIT : Workbench Reload Game +10:52:55.862 ENGINE : Game destroyed. +10:52:55.868 GUI : Using default language (en_us) +10:52:55.868 GUI : Loading 'en_us' localization file. +10:52:55.868 INIT : INIT : Loading StringTable +10:52:55.888 PROFILING : Loading StringTable took: 19.874600 ms +10:52:55.888 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:52:55.898 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:52:55.898 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:52:55.898 ENGINE : Game successfully created. +10:52:55.898 ENGINE : Game successfully initialized. +10:52:55.898 PROFILING : Workbench Reload Game took: 38.526800 ms +10:52:55.901 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:52:55.951 PLATFORM : Save data from container 'settings' have been loaded +10:52:56.041 PLATFORM : Save data from container 'sessions' have been loaded +10:52:56.041 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:52:56.041 ENGINE : Game user settings config loaded +10:52:56.138 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:52:56.148 WORLD : WORLD : Game::LoadEntities +10:52:56.148 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:52:56.149 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:52:56.149 WORLD : WORLD : CreateEntities +10:52:56.149 WORLD : WORLD : CreateEntities +10:52:56.149 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:52:56.154 RESOURCES : Loaded mission headers from 7 addon(s)! +10:52:56.154 PROFILING : NotifyBeforeEntitiesCreated took: 4.564700 ms +10:52:56.154 WORLD : WORLD : Wait for preloading data +10:52:56.154 PROFILING : Wait for preloading data took: 0.000500 ms +10:53:00.771 WORLD : Game::LoadEntities +10:53:00.771 WORLD : CreateEntities +10:53:00.771 WORLD : CreateEntities +10:53:00.771 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:53:00.771 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:53:00.771 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:53:02.215 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:53:02.215 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:53:02.215 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:53:02.224 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:53:02.224 ENTITY : CreateComponent 'Hierarchy' +10:53:02.224 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:53:02.225 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:53:02.225 ENTITY : CreateComponent 'Hierarchy' +10:53:02.225 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:53:02.225 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:53:02.225 ENTITY : CreateComponent 'Hierarchy' +10:53:02.225 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:53:07.430 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:53:07.430 PROFILING : NotifyBeforeEntitiesInitialized took: 0.052400 ms +10:53:09.597 WORLD : InitEntities 'world' +10:53:09.598 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:53:09.598 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:53:09.630 WORLD : InitEntities 'world' +10:53:09.630 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:53:09.630 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:53:09.631 WORLD : WORLD : NotifyEntitiesInitialized +10:53:09.631 TERRAIN : TERRAIN : Initializing road networks... +10:53:09.634 PROFILING : Initializing road networks... took: 3.058400 ms +10:53:09.634 DEFAULT : DEFAULT : WorldVolumesCollection +10:53:09.704 PROFILING : WorldVolumesCollection took: 69.988100 ms +10:53:09.704 INIT : INIT : SoundWorldInit +10:53:09.718 PROFILING : SoundWorldInit took: 13.764500 ms +10:53:09.718 PROFILING : NotifyEntitiesInitialized took: 87.060300 ms +10:53:09.718 PROFILING : CreateEntities took: 13568.229300 ms +10:53:09.718 PROFILING : CreateEntities took: 13568.392200 ms +10:53:09.719 WORLD : WORLD : Wait for preloading data around camera +10:53:09.719 PROFILING : Wait for preloading data around camera took: 0.000900 ms +10:53:09.719 WORLD : WORLD : EOnActivate +10:53:09.754 PROFILING : EOnActivate took: 35.494600 ms +10:53:09.754 PROFILING : Game::LoadEntities took: 13606.073600 ms +10:53:10.088 DEFAULT : Entered offline game state. +10:53:10.191 NETWORK : Player connected: connectionID=2147483646 +10:53:10.191 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:53:10.192 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:53:10.196 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.197 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:53:10.197 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.197 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! +10:53:10.197 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! +10:53:10.199 SCRIPT (W): Can't open config file "" +10:53:10.205 WORLD : InitEntities 'world' +10:53:10.205 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.205 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:53:10.205 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:53:10.205 SCRIPT (W): Slot_Chat Has no Content! +10:53:10.206 SCRIPT (W): Slot_VON Has no Content! +10:53:10.206 SCRIPT (W): Slot_AvailableActions Has no Content! +10:53:10.206 SCRIPT (W): Slot_Vehicle Has no Content! +10:53:10.206 SCRIPT (W): Slot_GameVersion Has no Content! +10:53:10.206 SCRIPT (W): Slot_Notifications Has no Content! +10:53:10.206 SCRIPT (W): Slot_Hints Has no Content! +10:53:10.218 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:53:10.218 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:53:10.218 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:53:10.219 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. +10:53:10.219 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. +10:53:10.222 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:53:10.222 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:53:10.223 NETWORK : Players connecting: 0 +10:53:10.223 NETWORK : Players connected: 1 / 1 +10:53:10.252 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +10:53:10.254 PROFILING : Workbench startup took: 43727.496600 ms +10:53:10.275 WORLD : Frame start +10:53:10.275 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:53:10.289 WORLD : UpdateEntities +10:53:10.289 WORLD : Frame +10:53:10.289 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:53:10.473 WORLD : UpdateEntities +10:53:10.473 WORLD : PostFrame +10:53:10.474 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:53:10.474 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:53:10.519 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:53:10.520 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:53:10.520 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:53:10.520 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:53:10.658 RENDER : RENDER : ObjectsHeightMap::Build +10:53:10.658 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:53:10.825 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 167.036600 ms +10:53:10.833 PROFILING : ObjectsHeightMap::Build took: 175.097500 ms +10:53:12.000 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:53:12.019 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:53:12.020 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:53:12.053 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:53:12.055 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:53:12.109 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:53:12.109 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:53:12.115 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:53:12.165 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:53:12.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:53:12.168 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:53:12.168 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:53:12.171 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:53:12.172 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:53:12.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:53:12.174 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:53:12.175 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:53:12.175 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:53:12.175 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:53:12.175 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:53:12.175 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:53:12.175 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.176 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:53:12.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:53:12.177 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.177 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:53:12.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:53:12.177 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.944 WORLD : UpdateEntities +10:53:12.944 WORLD : AfterPostSimulate +10:53:12.944 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:53:13.013 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.270 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5292,7499.7> up=0.99568 +10:53:13.270 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:53:13.270 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:13.270 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6141,7501.97> +10:53:13.270 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3141,7501.97> terrainY=63.3165 tireTerrainGap=-0.00238419 +10:53:13.271 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6141,7501.97> radius=0.3 bottom=<7012.07,63.3141,7501.97> fraction=0.444258 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00226212 +10:53:13.271 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6014,7497.71> +10:53:13.271 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1514,7497.71> terrainY=64.1555 tireTerrainGap=-0.0040741 +10:53:13.271 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6014,7497.71> radius=0.45 bottom=<7009.88,64.1514,7497.71> fraction=0.436099 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00405884 +10:53:13.271 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2634,7497.74> +10:53:13.271 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8134,7497.74> terrainY=63.8179 tireTerrainGap=-0.00457382 +10:53:13.272 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2634,7497.74> radius=0.45 bottom=<7014.42,63.8134,7497.74> fraction=0.433889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0045433 +10:53:13.272 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:13.520 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:14.028 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.028 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.029 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.356 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5345,7499.71> up=0.994331 +10:53:14.357 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +10:53:14.357 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:14.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6208,7501.98> +10:53:14.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3208,7501.98> terrainY=63.3146 tireTerrainGap=0.00616074 +10:53:14.357 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6208,7501.98> radius=0.3 bottom=<7012.07,63.3208,7501.98> fraction=0.482913 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00624084 +10:53:14.358 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.603,7497.71> +10:53:14.358 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.153,7497.71> terrainY=64.149 tireTerrainGap=0.00391388 +10:53:14.358 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.603,7497.71> radius=0.45 bottom=<7009.93,64.153,7497.71> fraction=0.472238 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00389099 +10:53:14.358 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2659,7497.78> +10:53:14.358 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8159,7497.78> terrainY=63.8155 tireTerrainGap=0.00043869 +10:53:14.358 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2659,7497.78> radius=0.45 bottom=<7014.47,63.8159,7497.78> fraction=0.456389 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000404358 +10:53:14.359 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.360 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:15.364 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994218 +10:53:15.364 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0403679 angularSpeed=0.0725902 +10:53:15.365 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:15.365 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6139,7502.01> +10:53:15.365 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3139,7502.01> terrainY=63.3115 tireTerrainGap=0.00245285 +10:53:15.365 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6139,7502.01> radius=0.3 bottom=<7012.07,63.3139,7502.01> fraction=0.465628 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00243759 +10:53:15.366 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.595,7497.72> +10:53:15.366 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.145,7497.72> terrainY=64.1427 tireTerrainGap=0.00231171 +10:53:15.366 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.595,7497.72> radius=0.45 bottom=<7009.97,64.145,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +10:53:15.366 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.83> +10:53:15.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.83> terrainY=63.8127 tireTerrainGap=-0.00246811 +10:53:15.367 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.83> radius=0.45 bottom=<7014.51,63.8102,7497.83> fraction=0.443333 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00246811 +10:53:15.367 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:15.367 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.870 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:16.373 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +10:53:16.373 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:53:16.373 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:16.373 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:53:16.373 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00161362 +10:53:16.373 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +10:53:16.374 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:53:16.374 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247192 +10:53:16.374 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:53:16.374 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +10:53:16.374 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00209427 +10:53:16.374 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +10:53:16.375 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.376 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.878 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.388 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +10:53:17.388 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:53:17.388 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:17.388 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:53:17.389 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00161362 +10:53:17.389 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +10:53:17.389 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:53:17.389 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247192 +10:53:17.390 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:53:17.390 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +10:53:17.390 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00209427 +10:53:17.390 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +10:53:17.391 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:17.391 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.391 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.392 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:53:17.392 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:53:17.394 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:53:17.394 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:53:17.394 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:53:17.395 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:53:17.395 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:53:17.395 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:53:17.520 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:53:17.562 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:53:17.788 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:53:17.788 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.790 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.790 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:53:17.791 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:53:17.791 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:53:17.792 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:53:17.792 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:53:17.793 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.793 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.794 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:53:17.794 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:53:17.796 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:53:17.797 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:53:17.797 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:53:17.797 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:53:17.814 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:53:17.814 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:53:17.815 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:53:17.815 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:53:17.818 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:53:18.290 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:53:18.290 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:53:18.298 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:53:18.298 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:53:18.789 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:53:18.789 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:53:18.789 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:53:18.789 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:53:18.789 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:53:18.809 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:53:18.809 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:53:19.299 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28989.5 +10:53:19.300 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:53:19.300 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082373CA8> activeSeat=PilotCompartmentSlot<0x0000000082373CA8> group=<0x00000001BA991BF0> SCR_AIGroup actualGroup=<0x00000001BA991BF0> SCR_AIGroup +10:53:19.300 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:53:19.301 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:53:19.301 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:53:19.301 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:53:21.328 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10013.9 remainingMs=26960.8 +10:53:21.329 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:53:21.330 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489746 29.398254 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489746 29.398254 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082373CA8> activeSeat=PilotCompartmentSlot<0x0000000082373CA8> group=<0x00000001BA991BF0> SCR_AIGroup actualGroup=<0x00000001BA991BF0> SCR_AIGroup +10:53:21.330 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:53:21.330 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:53:21.330 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996346 entityOrigin=<4801.01,27.5753,11487.4> +10:53:21.330 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:53:21.835 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:53:21.871 WORLD : UpdateEntities +10:53:21.872 WORLD : Frame +10:53:21.872 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.050243 input=1 simulation=1 +10:53:21.932 WORLD : UpdateEntities +10:53:21.932 WORLD : Frame +10:53:21.932 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0593802 input=1 simulation=1 +10:53:21.988 WORLD : UpdateEntities +10:53:21.988 WORLD : Frame +10:53:21.988 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0584686 input=1 simulation=1 +10:53:22.051 WORLD : UpdateEntities +10:53:22.051 WORLD : Frame +10:53:22.051 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0624107 input=1 simulation=1 +10:53:22.334 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=8 +10:53:22.334 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0136547 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +10:53:22.334 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +10:53:22.335 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0136547,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.027885,0.0781597,0.996551> right=<0.998956,-0.0382608,-0.0249515> +10:53:22.335 SCRIPT : ERR POWERED INPUT: pilotHooks=8 vehicleHooks=8 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:53:22.335 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=8 applyCallbacks=15 beforeWriteSequence=8 writtenAgeMs=57.6436 beforeWriteAgeMs=35.7334 +10:53:22.335 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:53:22.335 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:53:22.336 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:53:22.336 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:53:22.336 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4904,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7788 +10:53:22.336 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.745,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6673 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224337 +10:53:22.337 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:53:22.337 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:53:24.374 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +10:53:24.374 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0052681 drift=0.0379134 speed=0 vertical=0 up=0.996057 groundContact=1 fuel=1938.75 engine=0 +10:53:24.374 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +10:53:24.375 SCRIPT : ERR POWERED MOTION: offset=<-0.0375977,0.0052681,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0331803,0.0801659,0.996229> right=<0.998821,-0.0379914,-0.0302095> +10:53:24.375 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:53:24.375 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=46 writtenAgeMs=17.0088 beforeWriteAgeMs=39.7383 +10:53:24.375 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:53:24.376 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:53:26.395 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=85 +10:53:26.395 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00999069 drift=0.132454 speed=0.0439688 vertical=-0.00204089 up=0.996058 groundContact=1 fuel=1938.66 engine=1 +10:53:26.395 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0361146,-0.00359719,0.0123673> +10:53:26.396 SCRIPT : ERR POWERED MOTION: offset=<-0.132324,0.00999069,-0.00585938> velocity=<0.0438367,-0.00204089,0.00272581> angularLocal=<-0.00044673,0.0565334,0.00250453> forward=<0.0452496,0.0802852,0.995744> right=<0.998391,-0.0377193,-0.0423287> +10:53:26.396 SCRIPT : ERR POWERED INPUT: pilotHooks=85 vehicleHooks=85 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000359797 targetRPM=196 +10:53:26.396 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=85 applyCallbacks=137 beforeWriteSequence=85 writtenAgeMs=22.7061 beforeWriteAgeMs=22.7061 +10:53:26.396 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:26.396 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:28.411 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=122 +10:53:28.412 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130615 drift=0.222733 speed=0.0434491 vertical=-0.00220969 up=0.996081 groundContact=1 fuel=1938.57 engine=1 +10:53:28.412 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0562026,0.00527919,-0.0669101> +10:53:28.412 SCRIPT : ERR POWERED MOTION: offset=<-0.222656,0.0130615,-0.00585938> velocity=<0.043369,-0.00220969,0.00144188> angularLocal=<0.000120202,-0.0427998,-0.000612947> forward=<0.055346,0.0801425,0.995246> right=<0.997921,-0.0374081,-0.0524825> +10:53:28.413 SCRIPT : ERR POWERED INPUT: pilotHooks=122 vehicleHooks=122 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0243086 targetRPM=196 +10:53:28.413 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=122 applyCallbacks=197 beforeWriteSequence=122 writtenAgeMs=56.1289 beforeWriteAgeMs=22.6875 +10:53:28.413 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:28.414 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:30.434 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=159 +10:53:30.435 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161915 drift=0.313531 speed=0.0443583 vertical=-0.0022335 up=0.996108 groundContact=1 fuel=1938.48 engine=1 +10:53:30.435 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0380342,-0.00197265,0.0195477> +10:53:30.435 SCRIPT : ERR POWERED MOTION: offset=<-0.313477,0.0161915,-0.00585938> velocity=<0.044253,-0.0022335,0.00208476> angularLocal=<0.000326146,0.0564903,0.00227374> forward=<0.0654532,0.0799526,0.994647> right=<0.997346,-0.0371083,-0.0626479> +10:53:30.435 SCRIPT : ERR POWERED INPUT: pilotHooks=159 vehicleHooks=159 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.411323 targetRPM=196 +10:53:30.436 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=159 applyCallbacks=258 beforeWriteSequence=159 writtenAgeMs=24.2598 beforeWriteAgeMs=24.2598 +10:53:30.436 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:30.436 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:32.465 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=197 +10:53:32.465 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193672 drift=0.40678 speed=0.0445347 vertical=-0.00174233 up=0.99614 groundContact=1 fuel=1938.39 engine=1 +10:53:32.465 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0553029,-0.000394941,0.0210508> +10:53:32.466 SCRIPT : ERR POWERED MOTION: offset=<-0.406738,0.0193672,-0.00585938> velocity=<0.0444067,-0.00174233,0.00288933> angularLocal=<0.000201783,0.0559774,0.00245847> forward=<0.076849,0.0796858,0.993853> right=<0.99657,-0.0368181,-0.0741071> +10:53:32.466 SCRIPT : ERR POWERED INPUT: pilotHooks=197 vehicleHooks=197 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.37868 targetRPM=196 +10:53:32.466 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=197 applyCallbacks=319 beforeWriteSequence=197 writtenAgeMs=38.373 beforeWriteAgeMs=16.9434 +10:53:32.466 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:32.466 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:34.498 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=236 +10:53:34.499 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204334 drift=0.499536 speed=0.0425357 vertical=0.00116232 up=0.996173 groundContact=1 fuel=1938.31 engine=1 +10:53:34.499 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0915147,0.010202,0.0207846> +10:53:34.499 SCRIPT : ERR POWERED MOTION: offset=<-0.499512,0.0204334,-0.00488281> velocity=<0.0424878,0.00116232,0.00165093> angularLocal=<0.000268555,-0.0464565,-0.000749695> forward=<0.0848126,0.0794485,0.993224> right=<0.995955,-0.036433,-0.0821316> +10:53:34.499 SCRIPT : ERR POWERED INPUT: pilotHooks=236 vehicleHooks=236 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=27.2204 targetRPM=196 +10:53:34.499 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=236 applyCallbacks=380 beforeWriteSequence=236 writtenAgeMs=34.0039 beforeWriteAgeMs=12.2266 +10:53:34.500 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:34.500 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:36.512 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=275 +10:53:36.513 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0125923 drift=0.575697 speed=0.0385243 vertical=0.0061317 up=0.996222 groundContact=1 fuel=1938.22 engine=1 +10:53:36.513 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0385632,-0.00139615,0.0497907> +10:53:36.513 SCRIPT : ERR POWERED MOTION: offset=<-0.575684,0.0125923,-0.00390625> velocity=<0.0371386,0.0061317,-0.00820072> angularLocal=<0.000403822,0.0550217,0.0019491> forward=<0.0915115,0.0789391,0.99267> right=<0.995384,-0.0361982,-0.0888831> +10:53:36.513 SCRIPT : ERR POWERED INPUT: pilotHooks=275 vehicleHooks=275 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.7938 targetRPM=196 +10:53:36.514 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=275 applyCallbacks=440 beforeWriteSequence=274 writtenAgeMs=10.4258 beforeWriteAgeMs=22.8418 +10:53:36.514 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:36.514 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:38.540 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=313 +10:53:38.540 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00251389 drift=0.640628 speed=0.0303778 vertical=0.00463615 up=0.99629 groundContact=1 fuel=1938.13 engine=1 +10:53:38.541 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19945,0.00306026,0.0251735> +10:53:38.541 SCRIPT : ERR POWERED MOTION: offset=<-0.640625,0.00251389,-0.00195312> velocity=<0.027057,0.00463615,-0.013009> angularLocal=<0.000176738,0.0555822,0.00147293> forward=<0.100357,0.0781635,0.991876> right=<0.994555,-0.0360137,-0.0977903> +10:53:38.541 SCRIPT : ERR POWERED INPUT: pilotHooks=313 vehicleHooks=313 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.72735 rotorRPM=87.7062 targetRPM=196 +10:53:38.541 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=313 applyCallbacks=501 beforeWriteSequence=313 writtenAgeMs=12.7031 beforeWriteAgeMs=12.7031 +10:53:38.541 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.72735> writtenThrottle=0 beforeWriteThrottle=0 +10:53:38.542 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.865854 autohover=0 collectiveMode=3 +10:53:39.738 WORLD : UpdateEntities +10:53:39.739 WORLD : AfterPostSimulate +10:53:39.739 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:53:40.552 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=350 +10:53:40.552 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00638962 drift=0.704102 speed=0.0265004 vertical=0.00505313 up=0.996355 groundContact=1 fuel=1938.04 engine=1 +10:53:40.552 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.304731,0.00717896,0.0361843> +10:53:40.552 SCRIPT : ERR POWERED MOTION: offset=<-0.704102,-0.00638962,0> velocity=<0.0170638,0.00505313,-0.0196357> angularLocal=<0.000268332,0.0546822,0.000989858> forward=<0.107848,0.0774501,0.991146> right=<0.993793,-0.0357435,-0.105343> +10:53:40.552 SCRIPT : ERR POWERED INPUT: pilotHooks=350 vehicleHooks=350 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.528333 rotorRPM=105.198 targetRPM=196 +10:53:40.553 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=350 applyCallbacks=561 beforeWriteSequence=349 writtenAgeMs=11.4609 beforeWriteAgeMs=24.4414 +10:53:40.553 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.528333> writtenThrottle=0 beforeWriteThrottle=0 +10:53:40.553 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.764167 autohover=0 collectiveMode=3 +10:53:42.567 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=387 +10:53:42.567 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0171127 drift=0.746746 speed=0.0347973 vertical=0.00634944 up=0.99642 groundContact=1 fuel=1937.95 engine=1 +10:53:42.567 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.216817,-0.00572054,-0.0322378> +10:53:42.568 SCRIPT : ERR POWERED MOTION: offset=<-0.746582,-0.0171127,0.015625> velocity=<0.0154626,0.00634944,-0.0305195> angularLocal=<0.00038626,-0.0457648,-0.000144508> forward=<0.113781,0.0766927,0.990541> right=<0.993147,-0.0355683,-0.111327> +10:53:42.568 SCRIPT : ERR POWERED INPUT: pilotHooks=387 vehicleHooks=387 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.394124 rotorRPM=121.708 targetRPM=196 +10:53:42.568 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=387 applyCallbacks=621 beforeWriteSequence=387 writtenAgeMs=34.5703 beforeWriteAgeMs=34.5703 +10:53:42.569 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.394124> writtenThrottle=0 beforeWriteThrottle=0 +10:53:42.569 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.697062 autohover=0 collectiveMode=3 +10:53:44.581 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +10:53:44.582 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0304222 drift=0.759611 speed=0.0528253 vertical=0.00834449 up=0.996475 groundContact=1 fuel=1937.86 engine=1 +10:53:44.582 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.127144,0.00401482,-1.0604> +10:53:44.582 SCRIPT : ERR POWERED MOTION: offset=<-0.754395,-0.0304222,0.0888672> velocity=<0.0113038,0.00834449,-0.0509226> angularLocal=<0.00380951,0.0210396,0.000291502> forward=<0.115253,0.0760183,0.990423> right=<0.992981,-0.0354664,-0.112829> +10:53:44.582 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.2923 rotorRPM=137.864 targetRPM=196 +10:53:44.583 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=682 beforeWriteSequence=424 writtenAgeMs=47.9414 beforeWriteAgeMs=13.1602 +10:53:44.583 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.2923> writtenThrottle=0 beforeWriteThrottle=0 +10:53:44.583 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646883 autohover=0 collectiveMode=3 +10:53:46.597 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=463 +10:53:46.597 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0456924 drift=0.774754 speed=0.0678646 vertical=0.008543 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +10:53:46.598 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00499254,0.00117268,-0.0108884> +10:53:46.598 SCRIPT : ERR POWERED MOTION: offset=<-0.750488,-0.0456924,0.192383> velocity=<0.0138533,0.008543,-0.0658841> angularLocal=<0.000551104,-0.00171846,-2.24082e-05> forward=<0.111045,0.0752518,0.990962> right=<0.993452,-0.0353745,-0.108638> +10:53:46.598 SCRIPT : ERR POWERED INPUT: pilotHooks=463 vehicleHooks=463 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213302 rotorRPM=153.864 targetRPM=196 +10:53:46.598 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=463 applyCallbacks=742 beforeWriteSequence=462 writtenAgeMs=11.332 beforeWriteAgeMs=23.207 +10:53:46.598 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213302> writtenThrottle=0 beforeWriteThrottle=0 +10:53:46.599 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606651 autohover=0 collectiveMode=3 +10:53:48.616 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=500 +10:53:48.616 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.061018 drift=0.820222 speed=0.0333644 vertical=0.00802445 up=0.996599 groundContact=1 fuel=1937.68 engine=1 +10:53:48.616 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00629134,0.000215415,-0.00120889> +10:53:48.616 SCRIPT : ERR POWERED MOTION: offset=<-0.794922,-0.061018,0.202148> velocity=<0.0222654,0.00802445,-0.0235168> angularLocal=<0.0003095,-0.000381726,0.000193419> forward=<0.109754,0.0745182,0.991161> right=<0.993596,-0.0351756,-0.107379> +10:53:48.617 SCRIPT : ERR POWERED INPUT: pilotHooks=500 vehicleHooks=500 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149961 rotorRPM=169.787 targetRPM=196 +10:53:48.617 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=500 applyCallbacks=802 beforeWriteSequence=499 writtenAgeMs=10.1836 beforeWriteAgeMs=34.2305 +10:53:48.617 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149961> writtenThrottle=0 beforeWriteThrottle=0 +10:53:48.617 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.57498 autohover=0 collectiveMode=3 +10:53:49.622 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:53:50.128 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:53:50.128 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +10:53:50.635 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=538 +10:53:50.635 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0955334 drift=1.06044 speed=0.570227 vertical=0.0129763 up=0.996224 groundContact=1 fuel=1937.59 engine=1 +10:53:50.635 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.184261,0.128944,-0.553315> +10:53:50.636 SCRIPT : ERR POWERED MOTION: offset=<-0.953125,-0.0955334,0.464844> velocity=<0.220223,0.0129763,-0.525825> angularLocal=<-0.00991892,0.0084939,-0.00150381> forward=<0.111169,0.080012,0.990575> right=<0.993495,-0.033713,-0.108773> +10:53:50.636 SCRIPT : ERR POWERED INPUT: pilotHooks=538 vehicleHooks=538 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139914 rotorRPM=181.014 targetRPM=196 +10:53:50.636 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=538 applyCallbacks=863 beforeWriteSequence=538 writtenAgeMs=39.9219 beforeWriteAgeMs=28.4141 +10:53:50.636 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139914> writtenThrottle=0 beforeWriteThrottle=0 +10:53:50.636 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569957 autohover=0 collectiveMode=3 +10:53:50.637 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:53:50.637 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=20 matched=1 +10:53:50.637 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:53:52.668 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=576 +10:53:52.668 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.15972 drift=3.82681 speed=2.43035 vertical=1.4189 up=0.999731 groundContact=0 fuel=1937.51 engine=1 +10:53:52.669 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<9.65595e-05,0.245311,-0.21291> +10:53:52.669 SCRIPT : ERR POWERED MOTION: offset=<-1.80566,-2.15972,3.37402> velocity=<0.471973,1.4189,-1.91588> angularLocal=<0.0637613,0.0242536,0.0164893> forward=<0.121196,0.0211633,0.992403> right=<0.992605,-0.00953594,-0.121017> +10:53:52.669 SCRIPT : ERR POWERED INPUT: pilotHooks=576 vehicleHooks=576 readback=1 collective=0.163592 cyclicF=0.0643177 cyclicR=-0.0343167 antiTorque=0.205284 rotorRPM=188.999 targetRPM=196 +10:53:52.669 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=576 applyCallbacks=924 beforeWriteSequence=576 writtenAgeMs=25.1484 beforeWriteAgeMs=25.1484 +10:53:52.670 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163592 beforeWriteCollective=0.163592 writtenFRA=<0.0643177,-0.0343167,0.0278901> beforeWriteFRA=<0.0643177,-0.0343167,0.205284> writtenThrottle=0 beforeWriteThrottle=0 +10:53:52.670 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.163592 cyclicForward=0.0643177 cyclicAside=-0.0343167 tailCollective=0.602642 autohover=0 collectiveMode=3 +10:53:53.172 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=585 +10:53:53.172 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.87797 drift=4.88849 speed=2.50986 vertical=1.53356 up=0.999907 groundContact=0 fuel=1937.51 engine=1 +10:53:53.172 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0413418,0.212946,0.140276> +10:53:53.173 SCRIPT : ERR POWERED MOTION: offset=<-2.06348,-2.87797,4.43164> velocity=<0.460717,1.53356,-1.93269> angularLocal=<0.0720217,0.0413816,0.0163851> forward=<0.137672,-0.013542,0.990385> right=<0.990473,-0.00128642,-0.137701> +10:53:53.173 SCRIPT : ERR POWERED INPUT: pilotHooks=585 vehicleHooks=585 readback=1 collective=0.1573 cyclicF=0.0407981 cyclicR=-0.0312504 antiTorque=0.210194 rotorRPM=190.962 targetRPM=196 +10:53:53.173 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=585 applyCallbacks=939 beforeWriteSequence=585 writtenAgeMs=25.293 beforeWriteAgeMs=25.293 +10:53:53.173 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.1573 beforeWriteCollective=0.1573 writtenFRA=<0.0407981,-0.0312504,0.0426041> beforeWriteFRA=<0.0407981,-0.0312504,0.210194> writtenThrottle=0 beforeWriteThrottle=0 +10:53:53.174 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.1573 cyclicForward=0.0407981 cyclicAside=-0.0312504 tailCollective=0.605097 autohover=0 collectiveMode=3 +10:53:53.679 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=595 +10:53:53.679 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.65792 drift=5.93949 speed=2.43301 vertical=1.62609 up=0.998687 groundContact=0 fuel=1937.46 engine=1 +10:53:53.680 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0676149,0.154366,0.525384> +10:53:53.680 SCRIPT : ERR POWERED MOTION: offset=<-2.31738,-3.65792,5.46875> velocity=<0.431565,1.62609,-1.75759> angularLocal=<0.0729331,0.0628183,0.0156541> forward=<0.164113,-0.05064,0.985141> right=<0.986441,0.00775886,-0.16393> +10:53:53.680 SCRIPT : ERR POWERED INPUT: pilotHooks=595 vehicleHooks=595 readback=1 collective=0.149848 cyclicF=0.014618 cyclicR=-0.0278479 antiTorque=0.21308 rotorRPM=192.99 targetRPM=196 +10:53:53.680 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=595 applyCallbacks=954 beforeWriteSequence=594 writtenAgeMs=10.875 beforeWriteAgeMs=34.6953 +10:53:53.680 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.149053 beforeWriteCollective=0.149848 writtenFRA=<0.0115841,-0.0274307,0.0579966> beforeWriteFRA=<0.014618,-0.0278479,0.21308> writtenThrottle=0 beforeWriteThrottle=0 +10:53:53.681 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.149848 cyclicForward=0.014618 cyclicAside=-0.0278479 tailCollective=0.60654 autohover=0 collectiveMode=3 +10:53:54.186 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=604 +10:53:54.187 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.47664 drift=6.85641 speed=2.22692 vertical=1.68436 up=0.996172 groundContact=0 fuel=1937.46 engine=1 +10:53:54.187 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0751609,0.0784922,0.878313> +10:53:54.187 SCRIPT : ERR POWERED MOTION: offset=<-2.55811,-4.47664,6.36133> velocity=<0.395064,1.68436,-1.40215> angularLocal=<0.0666153,0.0844294,0.014411> forward=<0.201104,-0.0855506,0.975827> right=<0.97957,0.0179571,-0.200301> +10:53:54.187 SCRIPT : ERR POWERED INPUT: pilotHooks=604 vehicleHooks=604 readback=1 collective=0.140522 cyclicF=-0.0192731 cyclicR=-0.0223775 antiTorque=0.216773 rotorRPM=194.953 targetRPM=196 +10:53:54.188 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=604 applyCallbacks=970 beforeWriteSequence=604 writtenAgeMs=12.3477 beforeWriteAgeMs=12.3477 +10:53:54.188 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.140522 beforeWriteCollective=0.140522 writtenFRA=<-0.0192731,-0.0223775,0.0713958> beforeWriteFRA=<-0.0192731,-0.0223775,0.216773> writtenThrottle=0 beforeWriteThrottle=0 +10:53:54.188 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.141454 cyclicForward=-0.0156692 cyclicAside=-0.0230741 tailCollective=0.607978 autohover=0 collectiveMode=3 +10:53:54.689 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=613 +10:53:54.689 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.31131 drift=7.54245 speed=1.94374 vertical=1.69332 up=0.993008 groundContact=0 fuel=1937.42 engine=1 +10:53:54.689 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0657356,-0.0766611,1.16736> +10:53:54.689 SCRIPT : ERR POWERED MOTION: offset=<-2.78174,-5.31131,7.01074> velocity=<0.35927,1.69332,-0.884141> angularLocal=<0.0534318,0.105168,0.0124196> forward=<0.248011,-0.114297,0.961991> right=<0.968757,0.029503,-0.24625> +10:53:54.689 SCRIPT : ERR POWERED INPUT: pilotHooks=613 vehicleHooks=613 readback=1 collective=0.134247 cyclicF=-0.0474038 cyclicR=-0.0159071 antiTorque=0.219766 rotorRPM=196 targetRPM=196 +10:53:54.690 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=613 applyCallbacks=985 beforeWriteSequence=613 writtenAgeMs=37.6953 beforeWriteAgeMs=13.0625 +10:53:54.690 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.134247 beforeWriteCollective=0.134247 writtenFRA=<-0.0474038,-0.0159071,0.0815015> beforeWriteFRA=<-0.0474038,-0.0159071,0.219766> writtenThrottle=0 beforeWriteThrottle=0 +10:53:54.690 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134247 cyclicForward=-0.0474038 cyclicAside=-0.0159071 tailCollective=0.609997 autohover=0 collectiveMode=3 +10:53:55.192 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=622 +10:53:55.192 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.12851 drift=7.9372 speed=1.61174 vertical=1.5607 up=0.990101 groundContact=0 fuel=1937.42 engine=1 +10:53:55.192 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0432354,-0.446506,1.34091> +10:53:55.192 SCRIPT : ERR POWERED MOTION: offset=<-2.99707,-6.12851,7.34961> velocity=<0.330939,1.5607,-0.22892> angularLocal=<0.0338227,0.122826,0.00931896> forward=<0.303515,-0.133876,0.943375> right=<0.952827,0.0421481,-0.300575> +10:53:55.192 SCRIPT : ERR POWERED INPUT: pilotHooks=622 vehicleHooks=622 readback=1 collective=0.111719 cyclicF=-0.0736489 cyclicR=-0.00660832 antiTorque=0.215579 rotorRPM=196 targetRPM=196 +10:53:55.193 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=622 applyCallbacks=1000 beforeWriteSequence=622 writtenAgeMs=34.1562 beforeWriteAgeMs=13.4961 +10:53:55.193 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.111719 beforeWriteCollective=0.111719 writtenFRA=<-0.0736489,-0.00660832,0.0878428> beforeWriteFRA=<-0.0736489,-0.00660832,0.215579> writtenThrottle=0 beforeWriteThrottle=0 +10:53:55.193 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.114506 cyclicForward=-0.0709155 cyclicAside=-0.00782701 tailCollective=0.607612 autohover=0 collectiveMode=3 +10:53:55.697 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=631 +10:53:55.697 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.8385 drift=8.00134 speed=1.38586 vertical=1.26786 up=0.988409 groundContact=0 fuel=1937.37 engine=1 +10:53:55.698 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0197518,-0.643959,1.41141> +10:53:55.698 SCRIPT : ERR POWERED MOTION: offset=<-3.20801,-6.8385,7.33008> velocity=<0.315594,1.26786,0.462101> angularLocal=<0.0102393,0.133557,0.00516015> forward=<0.36488,-0.141582,0.920227> right=<0.931054,0.0548015,-0.360741> +10:53:55.698 SCRIPT : ERR POWERED INPUT: pilotHooks=631 vehicleHooks=631 readback=1 collective=0.0879505 cyclicF=-0.091828 cyclicR=0.00436341 antiTorque=0.203034 rotorRPM=196 targetRPM=196 +10:53:55.698 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=631 applyCallbacks=1015 beforeWriteSequence=631 writtenAgeMs=50.5664 beforeWriteAgeMs=14.1055 +10:53:55.698 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0879505 beforeWriteCollective=0.0879505 writtenFRA=<-0.091828,0.00436341,0.0894603> beforeWriteFRA=<-0.091828,0.00436341,0.203034> writtenThrottle=0 beforeWriteThrottle=0 +10:53:55.699 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0879505 cyclicForward=-0.091828 cyclicAside=0.00436341 tailCollective=0.602095 autohover=0 collectiveMode=3 +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/error.log.txt b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/error.log.txt new file mode 100644 index 0000000..ef3ddeb --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26\error.log started at 2026-09-19 10:52:28 (2026-09-19 08:52:28 UTC) + +10:52:28.281 INIT : Workbench startup +10:52:28.281 INIT : Workbench Init Engine +10:52:28.281 RESOURCES : ResourceDB: full scan +10:52:28.281 RESOURCES : processing files... +10:52:28.281 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:52:28.281 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:52:28.281 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:52:31.467 INIT : Workbench Create Game +10:52:31.467 SCRIPT : Compiling Game scripts +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:52:31.631 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:31.750 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:52:31.787 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:52:31.929 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:52:32.001 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:52:32.045 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.046 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:52:32.073 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.110 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:52:40.783 WORLD : CreateEntities +10:52:40.783 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:52:40.783 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:52:40.783 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:52:55.901 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:53:00.770 WORLD : Game::LoadEntities +10:53:00.771 WORLD : CreateEntities +10:53:00.771 WORLD : CreateEntities +10:53:00.771 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:53:00.771 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:53:00.771 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:53:02.215 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:53:02.215 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:53:02.215 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:53:02.215 ENTITY : CreateComponent 'Hierarchy' +10:53:02.215 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:53:02.220 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:53:02.220 ENTITY : CreateComponent 'Hierarchy' +10:53:02.220 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:53:02.224 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:53:02.224 ENTITY : CreateComponent 'Hierarchy' +10:53:02.224 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:53:02.225 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:53:02.225 ENTITY : CreateComponent 'Hierarchy' +10:53:02.225 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:53:02.225 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:53:02.225 ENTITY : CreateComponent 'Hierarchy' +10:53:02.225 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:53:09.597 WORLD : InitEntities 'world' +10:53:09.598 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:53:09.598 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:53:10.196 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.197 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:53:10.197 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.197 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! +10:53:10.197 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! +10:53:10.199 SCRIPT (W): Can't open config file "" +10:53:10.205 WORLD : InitEntities 'world' +10:53:10.205 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:53:10.205 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:53:10.205 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:53:10.205 SCRIPT (W): Slot_Chat Has no Content! +10:53:10.206 SCRIPT (W): Slot_VON Has no Content! +10:53:10.206 SCRIPT (W): Slot_AvailableActions Has no Content! +10:53:10.206 SCRIPT (W): Slot_Vehicle Has no Content! +10:53:10.206 SCRIPT (W): Slot_GameVersion Has no Content! +10:53:10.206 SCRIPT (W): Slot_Notifications Has no Content! +10:53:10.206 SCRIPT (W): Slot_Hints Has no Content! +10:53:10.218 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:53:10.218 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:53:10.218 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:53:10.219 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. +10:53:10.219 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. +10:53:10.222 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:53:10.473 WORLD : UpdateEntities +10:53:10.473 WORLD : PostFrame +10:53:10.474 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:53:10.474 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:53:10.519 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:53:10.520 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:53:10.520 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:53:10.520 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:53:12.944 WORLD : UpdateEntities +10:53:12.944 WORLD : AfterPostSimulate +10:53:12.944 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:53:39.738 WORLD : UpdateEntities +10:53:39.739 WORLD : AfterPostSimulate +10:53:39.739 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/headless-launch.log.txt new file mode 100644 index 0000000..6de8b7a --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x55558ea82230 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55558ea82230 +[Gamescope WSI] Destroyed swapchain: 0x55558ea82230 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x55558eaa0ef0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55558eaa0ef0 +[Gamescope WSI] Destroyed swapchain: 0x55558eaa0ef0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x55558ea99ec0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source-sha256.json new file mode 100644 index 0000000..fd6ce8b --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d8d0e245bf8a3a526573e4e801fd4c6d795d2074bc59d38e74cef02c7d9fb836", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source.json b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source.json new file mode 100644 index 0000000..adf7c39 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "c84a7a41-f244-4e2b-98c8-3567bd62117c", + "captured_unix": 1789807944.853321, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c" +} diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/report.json b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/report.json new file mode 100644 index 0000000..02cf7e4 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-105226-flight-motion-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 70, + "script_or_runtime_failures": [ + "10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/runner.json.txt new file mode 100644 index 0000000..3856d76 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789808036.6113856, + "console_sha256": "d7167fbe8fbf8c8f0d6d55228fd514e34c25039d039331b933ee5b6158ebce41", + "end_source_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "c84a7a41-f244-4e2b-98c8-3567bd62117c", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c", + "started_unix": 1789807944.853388, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-52-26", + "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/native-2026-09-19-105226-flight-motion-refusal/script.log.txt b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/script.log.txt new file mode 100644 index 0000000..36f3899 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/script.log.txt @@ -0,0 +1,495 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-52-26\script.log started at 2026-09-19 10:52:29 (2026-09-19 08:52:29 UTC) + +10:52:29.371 SCRIPT : SCRIPT : Initializing scripts +10:52:29.371 SCRIPT : SCRIPT : ScriptProjectManager init +10:52:30.277 SCRIPT : SCRIPT : Compiling GameLib scripts +10:52:30.348 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:52:30.348 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:52:30.349 SCRIPT : SCRIPT : Compiling Game scripts +10:52:31.467 SCRIPT : Compiling Game scripts +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:52:31.467 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:52:31.631 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:31.750 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:52:31.787 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:52:31.895 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:52:31.929 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:52:31.999 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:52:32.001 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:52:32.045 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.046 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:52:32.047 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:52:32.073 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:52:32.110 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:52:32.387 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:52:32.394 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 47865505 +10:52:33.304 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:52:33.304 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:52:52.653 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:52:55.898 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:52:55.898 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:53:09.598 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:53:09.630 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:53:10.197 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! +10:53:10.197 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! +10:53:10.199 SCRIPT (W): Can't open config file "" +10:53:10.205 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:53:10.205 SCRIPT (W): Slot_Chat Has no Content! +10:53:10.206 SCRIPT (W): Slot_VON Has no Content! +10:53:10.206 SCRIPT (W): Slot_AvailableActions Has no Content! +10:53:10.206 SCRIPT (W): Slot_Vehicle Has no Content! +10:53:10.206 SCRIPT (W): Slot_GameVersion Has no Content! +10:53:10.206 SCRIPT (W): Slot_Notifications Has no Content! +10:53:10.206 SCRIPT (W): Slot_Hints Has no Content! +10:53:10.219 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. +10:53:10.219 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. +10:53:10.222 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:53:10.275 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:53:10.289 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:53:10.474 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:53:12.000 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:53:12.019 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:53:12.020 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:53:12.053 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:53:12.055 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:53:12.109 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:53:12.109 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:53:12.115 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:53:12.165 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:53:12.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:53:12.168 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:53:12.168 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:53:12.171 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:53:12.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:53:12.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:53:12.174 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:53:12.175 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:53:12.175 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:53:12.175 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:53:12.175 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:53:12.175 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:53:12.175 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.176 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:53:12.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:53:12.177 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.177 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:53:12.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:53:12.177 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:12.178 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.014 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.270 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5292,7499.7> up=0.99568 +10:53:13.270 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:53:13.270 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:13.270 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6141,7501.97> +10:53:13.270 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3141,7501.97> terrainY=63.3165 tireTerrainGap=-0.00238419 +10:53:13.271 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6141,7501.97> radius=0.3 bottom=<7012.07,63.3141,7501.97> fraction=0.444258 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00226212 +10:53:13.271 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6014,7497.71> +10:53:13.271 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1514,7497.71> terrainY=64.1555 tireTerrainGap=-0.0040741 +10:53:13.271 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6014,7497.71> radius=0.45 bottom=<7009.88,64.1514,7497.71> fraction=0.436099 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00405884 +10:53:13.271 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2634,7497.74> +10:53:13.271 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8134,7497.74> terrainY=63.8179 tireTerrainGap=-0.00457382 +10:53:13.272 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2634,7497.74> radius=0.45 bottom=<7014.42,63.8134,7497.74> fraction=0.433889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0045433 +10:53:13.272 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:13.520 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:13.521 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:53:14.028 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.028 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.029 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.356 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5345,7499.71> up=0.994331 +10:53:14.357 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +10:53:14.357 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:14.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6208,7501.98> +10:53:14.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3208,7501.98> terrainY=63.3146 tireTerrainGap=0.00616074 +10:53:14.357 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6208,7501.98> radius=0.3 bottom=<7012.07,63.3208,7501.98> fraction=0.482913 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00624084 +10:53:14.358 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.603,7497.71> +10:53:14.358 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.153,7497.71> terrainY=64.149 tireTerrainGap=0.00391388 +10:53:14.358 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.603,7497.71> radius=0.45 bottom=<7009.93,64.153,7497.71> fraction=0.472238 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00389099 +10:53:14.358 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2659,7497.78> +10:53:14.358 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8159,7497.78> terrainY=63.8155 tireTerrainGap=0.00043869 +10:53:14.358 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2659,7497.78> radius=0.45 bottom=<7014.47,63.8159,7497.78> fraction=0.456389 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000404358 +10:53:14.359 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.359 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:53:14.360 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:14.858 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:15.364 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994218 +10:53:15.364 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0403679 angularSpeed=0.0725902 +10:53:15.365 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:15.365 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6139,7502.01> +10:53:15.365 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3139,7502.01> terrainY=63.3115 tireTerrainGap=0.00245285 +10:53:15.365 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6139,7502.01> radius=0.3 bottom=<7012.07,63.3139,7502.01> fraction=0.465628 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00243759 +10:53:15.366 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.595,7497.72> +10:53:15.366 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.145,7497.72> terrainY=64.1427 tireTerrainGap=0.00231171 +10:53:15.366 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.595,7497.72> radius=0.45 bottom=<7009.97,64.145,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +10:53:15.367 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.83> +10:53:15.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.83> terrainY=63.8127 tireTerrainGap=-0.00246811 +10:53:15.367 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.83> radius=0.45 bottom=<7014.51,63.8102,7497.83> fraction=0.443333 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00246811 +10:53:15.367 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:15.367 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.368 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:15.869 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:15.870 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:53:16.373 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +10:53:16.373 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:53:16.373 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:16.373 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:53:16.373 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00161362 +10:53:16.373 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +10:53:16.374 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:53:16.374 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247192 +10:53:16.374 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:53:16.374 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +10:53:16.374 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00209427 +10:53:16.374 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +10:53:16.375 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.375 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.376 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.877 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:16.878 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.388 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +10:53:17.388 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:53:17.388 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:53:17.388 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:53:17.389 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00161362 +10:53:17.389 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +10:53:17.389 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:53:17.389 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247192 +10:53:17.390 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:53:17.390 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +10:53:17.390 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00209427 +10:53:17.390 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +10:53:17.391 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:53:17.391 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.391 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:53:17.392 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:53:17.392 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:53:17.394 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:53:17.394 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:53:17.394 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:53:17.395 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:53:17.395 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:53:17.395 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:53:17.520 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:53:17.562 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:53:17.788 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:53:17.788 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:53:17.789 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.790 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.790 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:53:17.790 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:53:17.791 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:53:17.791 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.791 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:53:17.792 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:53:17.792 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:53:17.792 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:53:17.793 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:53:17.793 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.793 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:53:17.794 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:53:17.794 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.794 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:53:17.795 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:53:17.795 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:53:17.796 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:53:17.796 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:53:17.797 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:53:17.797 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:53:17.797 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:53:17.814 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:53:17.815 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:53:17.815 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:53:17.815 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:53:17.817 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:53:17.818 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:53:17.819 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:53:18.290 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:53:18.290 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:53:18.298 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:53:18.298 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:53:18.789 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:53:18.789 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:53:18.789 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:53:18.789 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:53:18.789 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:53:18.809 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:53:18.809 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:53:19.299 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28989.5 +10:53:19.300 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:53:19.300 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082373CA8> activeSeat=PilotCompartmentSlot<0x0000000082373CA8> group=<0x00000001BA991BF0> SCR_AIGroup actualGroup=<0x00000001BA991BF0> SCR_AIGroup +10:53:19.300 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:53:19.301 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:53:19.301 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:53:19.301 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:53:21.328 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10013.9 remainingMs=26960.8 +10:53:21.329 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:53:21.330 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489746 29.398254 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BAF67C70> @"ENTITY:4611686018427390728" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489746 29.398254 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082373CA8> activeSeat=PilotCompartmentSlot<0x0000000082373CA8> group=<0x00000001BA991BF0> SCR_AIGroup actualGroup=<0x00000001BA991BF0> SCR_AIGroup +10:53:21.330 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:53:21.330 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:53:21.330 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.22168 angularSpeed=0.0624506 entityUp=0.996346 entityOrigin=<4801.01,27.5753,11487.4> +10:53:21.330 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:53:21.835 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:53:21.872 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.050243 input=1 simulation=1 +10:53:21.932 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0593802 input=1 simulation=1 +10:53:21.988 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0584686 input=1 simulation=1 +10:53:22.051 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0624107 input=1 simulation=1 +10:53:22.334 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=8 +10:53:22.334 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0136547 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +10:53:22.334 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +10:53:22.335 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0136547,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.027885,0.0781597,0.996551> right=<0.998956,-0.0382608,-0.0249515> +10:53:22.335 SCRIPT : ERR POWERED INPUT: pilotHooks=8 vehicleHooks=8 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:53:22.335 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=8 applyCallbacks=15 beforeWriteSequence=8 writtenAgeMs=57.6436 beforeWriteAgeMs=35.7334 +10:53:22.335 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:53:22.335 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:53:22.336 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:53:22.336 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:53:22.336 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4904,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7788 +10:53:22.336 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.745,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:53:22.337 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6673 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224337 +10:53:22.337 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:53:22.337 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:53:24.374 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +10:53:24.374 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0052681 drift=0.0379134 speed=0 vertical=0 up=0.996057 groundContact=1 fuel=1938.75 engine=0 +10:53:24.374 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +10:53:24.375 SCRIPT : ERR POWERED MOTION: offset=<-0.0375977,0.0052681,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0331803,0.0801659,0.996229> right=<0.998821,-0.0379914,-0.0302095> +10:53:24.375 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:53:24.375 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=46 writtenAgeMs=17.0088 beforeWriteAgeMs=39.7383 +10:53:24.375 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:53:24.376 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:53:26.395 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=85 +10:53:26.395 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00999069 drift=0.132454 speed=0.0439688 vertical=-0.00204089 up=0.996058 groundContact=1 fuel=1938.66 engine=1 +10:53:26.395 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0361146,-0.00359719,0.0123673> +10:53:26.396 SCRIPT : ERR POWERED MOTION: offset=<-0.132324,0.00999069,-0.00585938> velocity=<0.0438367,-0.00204089,0.00272581> angularLocal=<-0.00044673,0.0565334,0.00250453> forward=<0.0452496,0.0802852,0.995744> right=<0.998391,-0.0377193,-0.0423287> +10:53:26.396 SCRIPT : ERR POWERED INPUT: pilotHooks=85 vehicleHooks=85 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000359797 targetRPM=196 +10:53:26.396 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=85 applyCallbacks=137 beforeWriteSequence=85 writtenAgeMs=22.7061 beforeWriteAgeMs=22.7061 +10:53:26.396 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:26.396 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:28.411 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=122 +10:53:28.412 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130615 drift=0.222733 speed=0.0434491 vertical=-0.00220969 up=0.996081 groundContact=1 fuel=1938.57 engine=1 +10:53:28.412 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0562026,0.00527919,-0.0669101> +10:53:28.412 SCRIPT : ERR POWERED MOTION: offset=<-0.222656,0.0130615,-0.00585938> velocity=<0.043369,-0.00220969,0.00144188> angularLocal=<0.000120202,-0.0427998,-0.000612947> forward=<0.055346,0.0801425,0.995246> right=<0.997921,-0.0374081,-0.0524825> +10:53:28.413 SCRIPT : ERR POWERED INPUT: pilotHooks=122 vehicleHooks=122 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0243086 targetRPM=196 +10:53:28.413 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=122 applyCallbacks=197 beforeWriteSequence=122 writtenAgeMs=56.1289 beforeWriteAgeMs=22.6875 +10:53:28.413 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:28.414 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:30.434 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=159 +10:53:30.435 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161915 drift=0.313531 speed=0.0443583 vertical=-0.0022335 up=0.996108 groundContact=1 fuel=1938.48 engine=1 +10:53:30.435 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0380342,-0.00197265,0.0195477> +10:53:30.435 SCRIPT : ERR POWERED MOTION: offset=<-0.313477,0.0161915,-0.00585938> velocity=<0.044253,-0.0022335,0.00208476> angularLocal=<0.000326146,0.0564903,0.00227374> forward=<0.0654532,0.0799526,0.994647> right=<0.997346,-0.0371083,-0.0626479> +10:53:30.435 SCRIPT : ERR POWERED INPUT: pilotHooks=159 vehicleHooks=159 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.411323 targetRPM=196 +10:53:30.436 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=159 applyCallbacks=258 beforeWriteSequence=159 writtenAgeMs=24.2598 beforeWriteAgeMs=24.2598 +10:53:30.436 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:30.436 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:32.465 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=197 +10:53:32.465 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193672 drift=0.40678 speed=0.0445347 vertical=-0.00174233 up=0.99614 groundContact=1 fuel=1938.39 engine=1 +10:53:32.465 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0553029,-0.000394941,0.0210508> +10:53:32.466 SCRIPT : ERR POWERED MOTION: offset=<-0.406738,0.0193672,-0.00585938> velocity=<0.0444067,-0.00174233,0.00288933> angularLocal=<0.000201783,0.0559774,0.00245847> forward=<0.076849,0.0796858,0.993853> right=<0.99657,-0.0368181,-0.0741071> +10:53:32.466 SCRIPT : ERR POWERED INPUT: pilotHooks=197 vehicleHooks=197 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.37868 targetRPM=196 +10:53:32.466 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=197 applyCallbacks=319 beforeWriteSequence=197 writtenAgeMs=38.373 beforeWriteAgeMs=16.9434 +10:53:32.466 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:32.466 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:34.498 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=236 +10:53:34.499 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204334 drift=0.499536 speed=0.0425357 vertical=0.00116232 up=0.996173 groundContact=1 fuel=1938.31 engine=1 +10:53:34.499 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0915147,0.010202,0.0207846> +10:53:34.499 SCRIPT : ERR POWERED MOTION: offset=<-0.499512,0.0204334,-0.00488281> velocity=<0.0424878,0.00116232,0.00165093> angularLocal=<0.000268555,-0.0464565,-0.000749695> forward=<0.0848126,0.0794485,0.993224> right=<0.995955,-0.036433,-0.0821316> +10:53:34.499 SCRIPT : ERR POWERED INPUT: pilotHooks=236 vehicleHooks=236 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=27.2204 targetRPM=196 +10:53:34.499 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=236 applyCallbacks=380 beforeWriteSequence=236 writtenAgeMs=34.0039 beforeWriteAgeMs=12.2266 +10:53:34.500 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:34.500 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:36.512 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=275 +10:53:36.513 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0125923 drift=0.575697 speed=0.0385243 vertical=0.0061317 up=0.996222 groundContact=1 fuel=1938.22 engine=1 +10:53:36.513 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0385632,-0.00139615,0.0497907> +10:53:36.513 SCRIPT : ERR POWERED MOTION: offset=<-0.575684,0.0125923,-0.00390625> velocity=<0.0371386,0.0061317,-0.00820072> angularLocal=<0.000403822,0.0550217,0.0019491> forward=<0.0915115,0.0789391,0.99267> right=<0.995384,-0.0361982,-0.0888831> +10:53:36.513 SCRIPT : ERR POWERED INPUT: pilotHooks=275 vehicleHooks=275 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.7938 targetRPM=196 +10:53:36.514 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=275 applyCallbacks=440 beforeWriteSequence=274 writtenAgeMs=10.4258 beforeWriteAgeMs=22.8418 +10:53:36.514 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:53:36.514 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:53:38.540 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=313 +10:53:38.540 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00251389 drift=0.640628 speed=0.0303778 vertical=0.00463615 up=0.99629 groundContact=1 fuel=1938.13 engine=1 +10:53:38.541 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19945,0.00306026,0.0251735> +10:53:38.541 SCRIPT : ERR POWERED MOTION: offset=<-0.640625,0.00251389,-0.00195312> velocity=<0.027057,0.00463615,-0.013009> angularLocal=<0.000176738,0.0555822,0.00147293> forward=<0.100357,0.0781635,0.991876> right=<0.994555,-0.0360137,-0.0977903> +10:53:38.541 SCRIPT : ERR POWERED INPUT: pilotHooks=313 vehicleHooks=313 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.72735 rotorRPM=87.7062 targetRPM=196 +10:53:38.541 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=313 applyCallbacks=501 beforeWriteSequence=313 writtenAgeMs=12.7031 beforeWriteAgeMs=12.7031 +10:53:38.541 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.72735> writtenThrottle=0 beforeWriteThrottle=0 +10:53:38.542 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.865854 autohover=0 collectiveMode=3 +10:53:40.552 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=350 +10:53:40.552 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00638962 drift=0.704102 speed=0.0265004 vertical=0.00505313 up=0.996355 groundContact=1 fuel=1938.04 engine=1 +10:53:40.552 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.304731,0.00717896,0.0361843> +10:53:40.552 SCRIPT : ERR POWERED MOTION: offset=<-0.704102,-0.00638962,0> velocity=<0.0170638,0.00505313,-0.0196357> angularLocal=<0.000268332,0.0546822,0.000989858> forward=<0.107848,0.0774501,0.991146> right=<0.993793,-0.0357435,-0.105343> +10:53:40.552 SCRIPT : ERR POWERED INPUT: pilotHooks=350 vehicleHooks=350 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.528333 rotorRPM=105.198 targetRPM=196 +10:53:40.553 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=350 applyCallbacks=561 beforeWriteSequence=349 writtenAgeMs=11.4609 beforeWriteAgeMs=24.4414 +10:53:40.553 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.528333> writtenThrottle=0 beforeWriteThrottle=0 +10:53:40.553 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.764167 autohover=0 collectiveMode=3 +10:53:42.567 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=387 +10:53:42.567 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0171127 drift=0.746746 speed=0.0347973 vertical=0.00634944 up=0.99642 groundContact=1 fuel=1937.95 engine=1 +10:53:42.567 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.216817,-0.00572054,-0.0322378> +10:53:42.568 SCRIPT : ERR POWERED MOTION: offset=<-0.746582,-0.0171127,0.015625> velocity=<0.0154626,0.00634944,-0.0305195> angularLocal=<0.00038626,-0.0457648,-0.000144508> forward=<0.113781,0.0766927,0.990541> right=<0.993147,-0.0355683,-0.111327> +10:53:42.568 SCRIPT : ERR POWERED INPUT: pilotHooks=387 vehicleHooks=387 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.394124 rotorRPM=121.708 targetRPM=196 +10:53:42.568 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=387 applyCallbacks=621 beforeWriteSequence=387 writtenAgeMs=34.5703 beforeWriteAgeMs=34.5703 +10:53:42.569 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.394124> writtenThrottle=0 beforeWriteThrottle=0 +10:53:42.569 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.697062 autohover=0 collectiveMode=3 +10:53:44.581 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +10:53:44.582 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0304222 drift=0.759611 speed=0.0528253 vertical=0.00834449 up=0.996475 groundContact=1 fuel=1937.86 engine=1 +10:53:44.582 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.127144,0.00401482,-1.0604> +10:53:44.582 SCRIPT : ERR POWERED MOTION: offset=<-0.754395,-0.0304222,0.0888672> velocity=<0.0113038,0.00834449,-0.0509226> angularLocal=<0.00380951,0.0210396,0.000291502> forward=<0.115253,0.0760183,0.990423> right=<0.992981,-0.0354664,-0.112829> +10:53:44.582 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.2923 rotorRPM=137.864 targetRPM=196 +10:53:44.583 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=682 beforeWriteSequence=424 writtenAgeMs=47.9414 beforeWriteAgeMs=13.1602 +10:53:44.583 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.2923> writtenThrottle=0 beforeWriteThrottle=0 +10:53:44.583 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646883 autohover=0 collectiveMode=3 +10:53:46.597 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=463 +10:53:46.597 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0456924 drift=0.774754 speed=0.0678646 vertical=0.008543 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +10:53:46.598 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00499254,0.00117268,-0.0108884> +10:53:46.598 SCRIPT : ERR POWERED MOTION: offset=<-0.750488,-0.0456924,0.192383> velocity=<0.0138533,0.008543,-0.0658841> angularLocal=<0.000551104,-0.00171846,-2.24082e-05> forward=<0.111045,0.0752518,0.990962> right=<0.993452,-0.0353745,-0.108638> +10:53:46.598 SCRIPT : ERR POWERED INPUT: pilotHooks=463 vehicleHooks=463 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213302 rotorRPM=153.864 targetRPM=196 +10:53:46.598 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=463 applyCallbacks=742 beforeWriteSequence=462 writtenAgeMs=11.332 beforeWriteAgeMs=23.207 +10:53:46.598 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213302> writtenThrottle=0 beforeWriteThrottle=0 +10:53:46.599 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606651 autohover=0 collectiveMode=3 +10:53:48.616 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=500 +10:53:48.616 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.061018 drift=0.820222 speed=0.0333644 vertical=0.00802445 up=0.996599 groundContact=1 fuel=1937.68 engine=1 +10:53:48.616 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00629134,0.000215415,-0.00120889> +10:53:48.617 SCRIPT : ERR POWERED MOTION: offset=<-0.794922,-0.061018,0.202148> velocity=<0.0222654,0.00802445,-0.0235168> angularLocal=<0.0003095,-0.000381726,0.000193419> forward=<0.109754,0.0745182,0.991161> right=<0.993596,-0.0351756,-0.107379> +10:53:48.617 SCRIPT : ERR POWERED INPUT: pilotHooks=500 vehicleHooks=500 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149961 rotorRPM=169.787 targetRPM=196 +10:53:48.617 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=500 applyCallbacks=802 beforeWriteSequence=499 writtenAgeMs=10.1836 beforeWriteAgeMs=34.2305 +10:53:48.617 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149961> writtenThrottle=0 beforeWriteThrottle=0 +10:53:48.617 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.57498 autohover=0 collectiveMode=3 +10:53:49.622 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:53:50.128 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:53:50.128 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +10:53:50.635 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=538 +10:53:50.635 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0955334 drift=1.06044 speed=0.570227 vertical=0.0129763 up=0.996224 groundContact=1 fuel=1937.59 engine=1 +10:53:50.635 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.184261,0.128944,-0.553315> +10:53:50.636 SCRIPT : ERR POWERED MOTION: offset=<-0.953125,-0.0955334,0.464844> velocity=<0.220223,0.0129763,-0.525825> angularLocal=<-0.00991892,0.0084939,-0.00150381> forward=<0.111169,0.080012,0.990575> right=<0.993495,-0.033713,-0.108773> +10:53:50.636 SCRIPT : ERR POWERED INPUT: pilotHooks=538 vehicleHooks=538 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139914 rotorRPM=181.014 targetRPM=196 +10:53:50.636 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=538 applyCallbacks=863 beforeWriteSequence=538 writtenAgeMs=39.9219 beforeWriteAgeMs=28.4141 +10:53:50.636 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139914> writtenThrottle=0 beforeWriteThrottle=0 +10:53:50.636 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569957 autohover=0 collectiveMode=3 +10:53:50.637 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:53:50.637 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=20 matched=1 +10:53:50.637 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:53:52.668 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=576 +10:53:52.668 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.15972 drift=3.82681 speed=2.43035 vertical=1.4189 up=0.999731 groundContact=0 fuel=1937.51 engine=1 +10:53:52.669 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<9.65595e-05,0.245311,-0.21291> +10:53:52.669 SCRIPT : ERR POWERED MOTION: offset=<-1.80566,-2.15972,3.37402> velocity=<0.471973,1.4189,-1.91588> angularLocal=<0.0637613,0.0242536,0.0164893> forward=<0.121196,0.0211633,0.992403> right=<0.992605,-0.00953594,-0.121017> +10:53:52.669 SCRIPT : ERR POWERED INPUT: pilotHooks=576 vehicleHooks=576 readback=1 collective=0.163592 cyclicF=0.0643177 cyclicR=-0.0343167 antiTorque=0.205284 rotorRPM=188.999 targetRPM=196 +10:53:52.669 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=576 applyCallbacks=924 beforeWriteSequence=576 writtenAgeMs=25.1484 beforeWriteAgeMs=25.1484 +10:53:52.670 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163592 beforeWriteCollective=0.163592 writtenFRA=<0.0643177,-0.0343167,0.0278901> beforeWriteFRA=<0.0643177,-0.0343167,0.205284> writtenThrottle=0 beforeWriteThrottle=0 +10:53:52.670 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.163592 cyclicForward=0.0643177 cyclicAside=-0.0343167 tailCollective=0.602642 autohover=0 collectiveMode=3 +10:53:53.172 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=585 +10:53:53.172 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.87797 drift=4.88849 speed=2.50986 vertical=1.53356 up=0.999907 groundContact=0 fuel=1937.51 engine=1 +10:53:53.172 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0413418,0.212946,0.140276> +10:53:53.173 SCRIPT : ERR POWERED MOTION: offset=<-2.06348,-2.87797,4.43164> velocity=<0.460717,1.53356,-1.93269> angularLocal=<0.0720217,0.0413816,0.0163851> forward=<0.137672,-0.013542,0.990385> right=<0.990473,-0.00128642,-0.137701> +10:53:53.173 SCRIPT : ERR POWERED INPUT: pilotHooks=585 vehicleHooks=585 readback=1 collective=0.1573 cyclicF=0.0407981 cyclicR=-0.0312504 antiTorque=0.210194 rotorRPM=190.962 targetRPM=196 +10:53:53.173 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=585 applyCallbacks=939 beforeWriteSequence=585 writtenAgeMs=25.293 beforeWriteAgeMs=25.293 +10:53:53.173 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.1573 beforeWriteCollective=0.1573 writtenFRA=<0.0407981,-0.0312504,0.0426041> beforeWriteFRA=<0.0407981,-0.0312504,0.210194> writtenThrottle=0 beforeWriteThrottle=0 +10:53:53.174 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.1573 cyclicForward=0.0407981 cyclicAside=-0.0312504 tailCollective=0.605097 autohover=0 collectiveMode=3 +10:53:53.679 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=595 +10:53:53.679 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.65792 drift=5.93949 speed=2.43301 vertical=1.62609 up=0.998687 groundContact=0 fuel=1937.46 engine=1 +10:53:53.680 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0676149,0.154366,0.525384> +10:53:53.680 SCRIPT : ERR POWERED MOTION: offset=<-2.31738,-3.65792,5.46875> velocity=<0.431565,1.62609,-1.75759> angularLocal=<0.0729331,0.0628183,0.0156541> forward=<0.164113,-0.05064,0.985141> right=<0.986441,0.00775886,-0.16393> +10:53:53.680 SCRIPT : ERR POWERED INPUT: pilotHooks=595 vehicleHooks=595 readback=1 collective=0.149848 cyclicF=0.014618 cyclicR=-0.0278479 antiTorque=0.21308 rotorRPM=192.99 targetRPM=196 +10:53:53.680 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=595 applyCallbacks=954 beforeWriteSequence=594 writtenAgeMs=10.875 beforeWriteAgeMs=34.6953 +10:53:53.680 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.149053 beforeWriteCollective=0.149848 writtenFRA=<0.0115841,-0.0274307,0.0579966> beforeWriteFRA=<0.014618,-0.0278479,0.21308> writtenThrottle=0 beforeWriteThrottle=0 +10:53:53.681 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.149848 cyclicForward=0.014618 cyclicAside=-0.0278479 tailCollective=0.60654 autohover=0 collectiveMode=3 +10:53:54.187 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=604 +10:53:54.187 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.47664 drift=6.85641 speed=2.22692 vertical=1.68436 up=0.996172 groundContact=0 fuel=1937.46 engine=1 +10:53:54.187 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0751609,0.0784922,0.878313> +10:53:54.187 SCRIPT : ERR POWERED MOTION: offset=<-2.55811,-4.47664,6.36133> velocity=<0.395064,1.68436,-1.40215> angularLocal=<0.0666153,0.0844294,0.014411> forward=<0.201104,-0.0855506,0.975827> right=<0.97957,0.0179571,-0.200301> +10:53:54.187 SCRIPT : ERR POWERED INPUT: pilotHooks=604 vehicleHooks=604 readback=1 collective=0.140522 cyclicF=-0.0192731 cyclicR=-0.0223775 antiTorque=0.216773 rotorRPM=194.953 targetRPM=196 +10:53:54.188 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=604 applyCallbacks=970 beforeWriteSequence=604 writtenAgeMs=12.3477 beforeWriteAgeMs=12.3477 +10:53:54.188 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.140522 beforeWriteCollective=0.140522 writtenFRA=<-0.0192731,-0.0223775,0.0713958> beforeWriteFRA=<-0.0192731,-0.0223775,0.216773> writtenThrottle=0 beforeWriteThrottle=0 +10:53:54.188 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.141454 cyclicForward=-0.0156692 cyclicAside=-0.0230741 tailCollective=0.607978 autohover=0 collectiveMode=3 +10:53:54.689 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=613 +10:53:54.689 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.31131 drift=7.54245 speed=1.94374 vertical=1.69332 up=0.993008 groundContact=0 fuel=1937.42 engine=1 +10:53:54.689 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0657356,-0.0766611,1.16736> +10:53:54.689 SCRIPT : ERR POWERED MOTION: offset=<-2.78174,-5.31131,7.01074> velocity=<0.35927,1.69332,-0.884141> angularLocal=<0.0534318,0.105168,0.0124196> forward=<0.248011,-0.114297,0.961991> right=<0.968757,0.029503,-0.24625> +10:53:54.689 SCRIPT : ERR POWERED INPUT: pilotHooks=613 vehicleHooks=613 readback=1 collective=0.134247 cyclicF=-0.0474038 cyclicR=-0.0159071 antiTorque=0.219766 rotorRPM=196 targetRPM=196 +10:53:54.690 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=613 applyCallbacks=985 beforeWriteSequence=613 writtenAgeMs=37.6953 beforeWriteAgeMs=13.0625 +10:53:54.690 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.134247 beforeWriteCollective=0.134247 writtenFRA=<-0.0474038,-0.0159071,0.0815015> beforeWriteFRA=<-0.0474038,-0.0159071,0.219766> writtenThrottle=0 beforeWriteThrottle=0 +10:53:54.690 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134247 cyclicForward=-0.0474038 cyclicAside=-0.0159071 tailCollective=0.609997 autohover=0 collectiveMode=3 +10:53:55.192 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=622 +10:53:55.192 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.12851 drift=7.9372 speed=1.61174 vertical=1.5607 up=0.990101 groundContact=0 fuel=1937.42 engine=1 +10:53:55.192 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0432354,-0.446506,1.34091> +10:53:55.192 SCRIPT : ERR POWERED MOTION: offset=<-2.99707,-6.12851,7.34961> velocity=<0.330939,1.5607,-0.22892> angularLocal=<0.0338227,0.122826,0.00931896> forward=<0.303515,-0.133876,0.943375> right=<0.952827,0.0421481,-0.300575> +10:53:55.192 SCRIPT : ERR POWERED INPUT: pilotHooks=622 vehicleHooks=622 readback=1 collective=0.111719 cyclicF=-0.0736489 cyclicR=-0.00660832 antiTorque=0.215579 rotorRPM=196 targetRPM=196 +10:53:55.193 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=622 applyCallbacks=1000 beforeWriteSequence=622 writtenAgeMs=34.1562 beforeWriteAgeMs=13.4961 +10:53:55.193 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.111719 beforeWriteCollective=0.111719 writtenFRA=<-0.0736489,-0.00660832,0.0878428> beforeWriteFRA=<-0.0736489,-0.00660832,0.215579> writtenThrottle=0 beforeWriteThrottle=0 +10:53:55.193 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.114506 cyclicForward=-0.0709155 cyclicAside=-0.00782701 tailCollective=0.607612 autohover=0 collectiveMode=3 +10:53:55.697 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=631 +10:53:55.697 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.8385 drift=8.00134 speed=1.38586 vertical=1.26786 up=0.988409 groundContact=0 fuel=1937.37 engine=1 +10:53:55.698 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0197518,-0.643959,1.41141> +10:53:55.698 SCRIPT : ERR POWERED MOTION: offset=<-3.20801,-6.8385,7.33008> velocity=<0.315594,1.26786,0.462101> angularLocal=<0.0102393,0.133557,0.00516015> forward=<0.36488,-0.141582,0.920227> right=<0.931054,0.0548015,-0.360741> +10:53:55.698 SCRIPT : ERR POWERED INPUT: pilotHooks=631 vehicleHooks=631 readback=1 collective=0.0879505 cyclicF=-0.091828 cyclicR=0.00436341 antiTorque=0.203034 rotorRPM=196 targetRPM=196 +10:53:55.698 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=631 applyCallbacks=1015 beforeWriteSequence=631 writtenAgeMs=50.5664 beforeWriteAgeMs=14.1055 +10:53:55.698 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0879505 beforeWriteCollective=0.0879505 writtenFRA=<-0.091828,0.00436341,0.0894603> beforeWriteFRA=<-0.091828,0.00436341,0.203034> writtenThrottle=0 beforeWriteThrottle=0 +10:53:55.699 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0879505 cyclicForward=-0.091828 cyclicAside=0.00436341 tailCollective=0.602095 autohover=0 collectiveMode=3 +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:53:55.699 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-sha256.json new file mode 100644 index 0000000..fd6ce8b --- /dev/null +++ b/docs/evidence/native-2026-09-19-105226-flight-motion-refusal/source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d8d0e245bf8a3a526573e4e801fd4c6d795d2074bc59d38e74cef02c7d9fb836", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/console.log.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/console.log.txt new file mode 100644 index 0000000..5e9b460 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/console.log.txt @@ -0,0 +1,613 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41\console.log started at 2026-09-19 10:54:41 (2026-09-19 08:54:41 UTC) + +10:54:41.138 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41' to filesystem under name logs +10:54:41.139 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:54:41.139 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:54:41.140 PROFILING : Workbench Create Engine took: 9.078300 ms +10:54:42.178 INIT : INIT : Workbench Init Engine +10:54:42.178 ENGINE : Initializing engine, version 192142 +10:54:42.178 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome mortar-salvo -noThrow -disableCrashReporter +10:54:42.186 ENGINE : Addon dirs: +10:54:42.186 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/' +10:54:42.186 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:54:42.186 ENGINE : dir: './addons' +10:54:42.186 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:54:42.186 ENGINE : Available addons: +10:54:42.186 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:54:42.186 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:54:42.186 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:54:42.186 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:54:42.186 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:54:42.186 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:54:42.186 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:54:42.187 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat +10:54:42.187 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map +10:54:42.187 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel +10:54:42.187 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai +10:54:42.187 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:54:42.316 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:54:42.321 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:54:42.321 ENGINE : CPU vendor : AuthenticAMD +10:54:42.321 ENGINE : CPU type : 2 +10:54:42.321 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:54:42.321 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:54:42.321 ENGINE : CPU count logical : 16 +10:54:42.321 ENGINE : CPU count physical : 8 +10:54:42.321 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:54:42.321 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +10:54:42.322 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +10:54:42.323 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +10:54:42.323 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +10:54:42.323 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:54:42.324 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:54:42.463 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +10:54:42.464 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:54:42.464 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41/resourceDatabase.rdb) +10:54:42.610 RESOURCES : RESOURCES : ResourceDB: full scan +10:54:42.615 RESOURCES : RESOURCES : scanning... +10:54:42.615 RESOURCES : RESOURCES : scanning @"ERR_Chat" +10:54:42.616 RESOURCES : RESOURCES : scanning @"ERR_Map" +10:54:42.618 RESOURCES : RESOURCES : scanning @"ERR_Intel" +10:54:42.618 RESOURCES : RESOURCES : scanning @"ERR_Ai" +10:54:42.619 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:54:42.623 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:54:42.761 RESOURCES : RESOURCES : scanning @"core" +10:54:42.764 RESOURCES : RESOURCES : scanning @"profile" +10:54:42.765 RESOURCES : RESOURCES : scanning @"logs" +10:54:42.765 RESOURCES : RESOURCES : processing meta-files... +10:54:42.831 RESOURCES : RESOURCES : processing files... +10:54:42.842 INIT : Workbench startup +10:54:42.842 INIT : Workbench Init Engine +10:54:42.842 RESOURCES : ResourceDB: full scan +10:54:42.842 RESOURCES : processing files... +10:54:42.842 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:54:42.842 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:54:42.842 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:54:42.842 RESOURCES : RESOURCES : processing folders... +10:54:42.848 RESOURCES : RESOURCES : creating GUID-item mapping... +10:54:42.866 RESOURCES : RESOURCES : building tree... +10:54:42.918 PROFILING : ResourceDB: full scan took: 307.872600 ms +10:54:42.919 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +10:54:42.920 RESOURCES : ResourceDB: written 804/804 bytes +10:54:42.920 RESOURCES : ResourceDB: cache successfully saved +10:54:42.920 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +10:54:42.922 RESOURCES : ResourceDB: written 750/750 bytes +10:54:42.922 RESOURCES : ResourceDB: cache successfully saved +10:54:42.922 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +10:54:42.923 RESOURCES : ResourceDB: written 227/227 bytes +10:54:42.923 RESOURCES : ResourceDB: cache successfully saved +10:54:42.923 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +10:54:42.925 RESOURCES : ResourceDB: written 1666/1666 bytes +10:54:42.925 RESOURCES : ResourceDB: cache successfully saved +10:54:42.925 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:54:42.926 RESOURCES : ResourceDB: written 6865/6865 bytes +10:54:42.926 RESOURCES : ResourceDB: cache successfully saved +10:54:42.926 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:54:42.928 RESOURCES : ResourceDB: written 206/206 bytes +10:54:42.928 RESOURCES : ResourceDB: cache successfully saved +10:54:42.928 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41/resourceDatabase.rdb) +10:54:42.929 RESOURCES : ResourceDB: written 162/162 bytes +10:54:42.929 RESOURCES : ResourceDB: cache successfully saved +10:54:42.929 ENGINE : GameProject load +10:54:42.929 ENGINE : Loaded addons: +10:54:42.929 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:54:42.929 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:54:42.929 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:54:42.929 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:54:42.929 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:54:42.929 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:54:42.929 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:54:42.932 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:54:42.932 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:54:42.932 ENGINE : Engine user settings config loaded +10:54:42.932 PROFILING : Settings changed took: 0.001600 ms +10:54:43.047 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:54:43.049 RENDER : Basic screen setup: +10:54:43.049 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:54:43.049 RENDER : MSAA : none +10:54:43.063 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:54:43.063 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:54:43.063 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:54:43.063 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:54:43.063 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:54:43.063 RENDER : AMD AGS correctly initialized +10:54:43.064 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 +10:54:43.064 RENDER : Detected output devices: +10:54:43.064 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:54:43.064 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:54:43.064 RENDER : Concurrent frames limit 2 +10:54:43.142 RENDER : DX12 device successfully created by AMD AGS library +10:54:43.142 RENDER : * user markers not supported in this version AMD SW +10:54:43.142 RENDER : Graphics device features +10:54:43.142 RENDER : Needed: +10:54:43.142 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:54:43.142 RENDER : Optional: +10:54:43.142 RENDER : * Allow tearing (VSYNC) : 1 +10:54:43.142 RENDER : * 16 bits : 1 +10:54:43.142 RENDER : * Resource heap tier : 3 +10:54:43.142 RENDER : * Persistent heaps (DRED) : 1 +10:54:43.142 RENDER : * DRED 1.2 is supported by compiler +10:54:43.164 RENDER : Main RT format setup. +10:54:43.164 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:54:43.164 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:54:43.166 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:54:43.199 PROFILING : Settings changed took: 0.017800 ms +10:54:43.684 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:54:43.684 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:54:43.684 AUDIO : Audio client: +10:54:43.684 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:54:43.688 RENDER : RENDER : Reload shaders +10:54:43.688 RENDER : Enfusion shader version 13 +10:54:43.688 INIT : INIT : ShaderListReload +10:54:43.688 PROFILING : ShaderListReload took: 0.000600 ms +10:54:43.830 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:54:43.830 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:54:43.830 AUDIO : Audio client: +10:54:43.830 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:54:44.051 RENDER : Loaded 3752 newer shader binaries +10:54:44.051 PROFILING : Reload shaders took: 363.224000 ms +10:54:44.051 ENGINE : Initializing inputs. +10:54:44.065 NETWORK : Initializing networking. +10:54:44.065 NETWORK : Using new GameRplScheduler. +10:54:44.065 SCRIPT : SCRIPT : Initializing scripts +10:54:44.065 SCRIPT : SCRIPT : ScriptProjectManager init +10:54:46.318 PROFILING : ScriptProjectManager init took: 2253.205800 ms +10:54:46.406 PROFILING : Initializing scripts took: 2340.962300 ms +10:54:46.427 ENGINE : Enfusion engine successfully created. +10:54:46.427 PROFILING : Workbench Init Engine took: 4248.411700 ms +10:54:46.427 INIT : INIT : Workbench Create Game +10:54:46.439 GUI : Using default language (en_us) +10:54:46.439 GUI : Loading 'en_us' localization file. +10:54:46.439 INIT : INIT : Loading StringTable +10:54:46.464 PROFILING : Loading StringTable took: 24.800300 ms +10:54:46.464 SCRIPT : SCRIPT : Compiling GameLib scripts +10:54:46.534 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:54:46.535 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:54:46.535 PROFILING : Compiling GameLib scripts took: 71.310600 ms +10:54:46.535 SCRIPT : SCRIPT : Compiling Game scripts +10:54:47.869 INIT : Workbench Create Game +10:54:47.869 SCRIPT : Compiling Game scripts +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:54:48.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.147 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:54:48.178 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:54:48.319 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:54:48.387 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:54:48.459 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.497 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:54:48.780 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +10:54:48.786 SCRIPT : Module: Game; loaded 5775x files; 11362x classes; used 33458K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 221140b6 +10:54:48.826 PROFILING : Compiling Game scripts took: 2290.787800 ms +10:54:48.831 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:54:48.867 ENGINE : Game successfully created. +10:54:48.868 PROFILING : Workbench Create Game took: 2441.592200 ms +10:54:48.877 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails +10:54:49.642 INIT : INIT : Workbench Reload Game +10:54:49.644 ENGINE : Game destroyed. +10:54:49.650 GUI : Using default language (en_us) +10:54:49.650 GUI : Loading 'en_us' localization file. +10:54:49.650 INIT : INIT : Loading StringTable +10:54:49.660 PROFILING : Loading StringTable took: 9.836000 ms +10:54:49.660 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:54:49.667 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:54:49.667 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:54:49.667 ENGINE : Game successfully created. +10:54:49.667 ENGINE : Game successfully initialized. +10:54:49.667 PROFILING : Workbench Reload Game took: 24.832900 ms +10:54:50.368 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:54:51.390 PROFILING : Entities load took: 1021.942000 ms +10:54:51.402 WORLD : WORLD : CreateEntities +10:54:51.407 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:54:51.407 PROFILING : NotifyBeforeEntitiesCreated took: 0.004200 ms +10:54:51.407 WORLD : WORLD : Wait for preloading data +10:54:51.407 PROFILING : Wait for preloading data took: 0.005000 ms +10:54:51.525 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:54:51.525 PROFILING : PROFILING : Terrain load +10:54:53.523 PROFILING : Terrain load took: 1997.482200 ms +10:54:57.552 WORLD : CreateEntities +10:54:57.552 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:54:57.552 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:54:57.552 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:55:08.203 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:55:08.203 PROFILING : NotifyBeforeEntitiesInitialized took: 0.006700 ms +10:55:08.647 WORLD : WORLD : NotifyEntitiesInitialized +10:55:08.648 TERRAIN : TERRAIN : Initializing road networks... +10:55:08.650 PROFILING : Initializing road networks... took: 2.210800 ms +10:55:08.650 PROFILING : NotifyEntitiesInitialized took: 2.514600 ms +10:55:08.650 PROFILING : CreateEntities took: 17248.104700 ms +10:55:08.823 PROFILING : * WorldEditor: LoadWorld: 18459.603400 ms +10:55:10.281 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:55:10.282 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:55:10.283 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:55:10.284 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:55:10.374 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +10:55:10.377 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +10:55:10.377 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +10:55:10.400 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +10:55:10.426 BACKEND : Attempting online Game Config instead. +10:55:13.628 INIT : INIT : Workbench Reload Game +10:55:13.630 ENGINE : Game destroyed. +10:55:13.637 GUI : Using default language (en_us) +10:55:13.638 GUI : Loading 'en_us' localization file. +10:55:13.638 INIT : INIT : Loading StringTable +10:55:13.659 PROFILING : Loading StringTable took: 21.314100 ms +10:55:13.660 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:55:13.667 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:55:13.667 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:55:13.667 ENGINE : Game successfully created. +10:55:13.667 ENGINE : Game successfully initialized. +10:55:13.667 PROFILING : Workbench Reload Game took: 38.807700 ms +10:55:13.670 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:55:13.725 PLATFORM : Save data from container 'settings' have been loaded +10:55:13.812 PLATFORM : Save data from container 'sessions' have been loaded +10:55:13.813 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:55:13.813 ENGINE : Game user settings config loaded +10:55:13.910 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:55:13.916 WORLD : WORLD : Game::LoadEntities +10:55:13.916 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:55:13.917 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:55:13.917 WORLD : WORLD : CreateEntities +10:55:13.917 WORLD : WORLD : CreateEntities +10:55:13.917 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:55:13.930 RESOURCES : Loaded mission headers from 7 addon(s)! +10:55:13.930 PROFILING : NotifyBeforeEntitiesCreated took: 13.412800 ms +10:55:13.930 WORLD : WORLD : Wait for preloading data +10:55:13.930 PROFILING : Wait for preloading data took: 0.000600 ms +10:55:18.469 WORLD : Game::LoadEntities +10:55:18.469 WORLD : CreateEntities +10:55:18.469 WORLD : CreateEntities +10:55:18.469 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:55:18.469 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:55:18.469 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:55:19.899 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:55:19.899 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:55:19.899 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:55:25.550 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:55:25.550 PROFILING : NotifyBeforeEntitiesInitialized took: 0.042900 ms +10:55:27.534 WORLD : InitEntities 'world' +10:55:27.534 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:55:27.534 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:55:27.562 WORLD : InitEntities 'world' +10:55:27.562 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:55:27.562 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +10:55:27.562 WORLD : WORLD : NotifyEntitiesInitialized +10:55:27.562 TERRAIN : TERRAIN : Initializing road networks... +10:55:27.565 PROFILING : Initializing road networks... took: 2.418900 ms +10:55:27.565 DEFAULT : DEFAULT : WorldVolumesCollection +10:55:27.625 PROFILING : WorldVolumesCollection took: 60.507700 ms +10:55:27.625 INIT : INIT : SoundWorldInit +10:55:27.639 PROFILING : SoundWorldInit took: 13.703000 ms +10:55:27.639 PROFILING : NotifyEntitiesInitialized took: 76.873500 ms +10:55:27.639 PROFILING : CreateEntities took: 13722.213500 ms +10:55:27.639 PROFILING : CreateEntities took: 13722.407900 ms +10:55:27.640 WORLD : WORLD : Wait for preloading data around camera +10:55:27.640 PROFILING : Wait for preloading data around camera took: 0.001400 ms +10:55:27.640 WORLD : WORLD : EOnActivate +10:55:27.676 PROFILING : EOnActivate took: 36.399100 ms +10:55:27.677 PROFILING : Game::LoadEntities took: 13760.843600 ms +10:55:27.946 DEFAULT : Entered offline game state. +10:55:28.050 NETWORK : Player connected: connectionID=2147483646 +10:55:28.050 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:55:28.050 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:55:28.055 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.055 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:55:28.055 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.056 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! +10:55:28.056 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! +10:55:28.058 SCRIPT (W): Can't open config file "" +10:55:28.064 WORLD : InitEntities 'world' +10:55:28.064 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.065 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:55:28.065 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:55:28.065 SCRIPT (W): Slot_Chat Has no Content! +10:55:28.065 SCRIPT (W): Slot_VON Has no Content! +10:55:28.065 SCRIPT (W): Slot_AvailableActions Has no Content! +10:55:28.065 SCRIPT (W): Slot_Vehicle Has no Content! +10:55:28.065 SCRIPT (W): Slot_GameVersion Has no Content! +10:55:28.065 SCRIPT (W): Slot_Notifications Has no Content! +10:55:28.065 SCRIPT (W): Slot_Hints Has no Content! +10:55:28.077 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:55:28.077 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:55:28.077 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:55:28.077 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. +10:55:28.078 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. +10:55:28.080 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:55:28.081 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:55:28.081 NETWORK : Players connecting: 0 +10:55:28.081 NETWORK : Players connected: 1 / 1 +10:55:28.109 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves +10:55:28.111 PROFILING : Workbench startup took: 47037.717800 ms +10:55:28.134 WORLD : Frame start +10:55:28.134 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:55:28.148 WORLD : UpdateEntities +10:55:28.148 WORLD : Frame +10:55:28.148 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:55:28.318 WORLD : UpdateEntities +10:55:28.318 WORLD : PostFrame +10:55:28.318 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:55:28.318 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:55:28.362 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:55:28.362 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:55:28.362 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:55:28.362 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:55:28.500 RENDER : RENDER : ObjectsHeightMap::Build +10:55:28.500 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:55:28.662 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 161.083100 ms +10:55:28.669 PROFILING : ObjectsHeightMap::Build took: 168.706400 ms +10:55:29.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:55:29.870 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:55:29.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:55:29.900 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:55:29.903 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:55:29.951 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:55:29.952 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:55:29.957 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:55:30.003 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:55:30.003 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:55:30.005 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:55:30.005 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:55:30.009 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:55:30.010 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:55:30.010 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:55:30.011 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:55:30.011 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:55:30.011 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:55:30.012 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:55:30.012 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:55:30.012 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:55:30.012 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.012 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:55:30.012 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:55:30.013 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.013 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:55:30.013 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:55:30.013 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.013 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.013 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.784 WORLD : UpdateEntities +10:55:30.784 WORLD : AfterPostSimulate +10:55:30.784 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:55:30.865 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.116 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5278,7499.7> up=0.995676 +10:55:31.116 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:55:31.116 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:31.117 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6124,7501.97> +10:55:31.117 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3124,7501.97> terrainY=63.3165 tireTerrainGap=-0.00405121 +10:55:31.117 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6124,7501.97> radius=0.3 bottom=<7012.07,63.3124,7501.97> fraction=0.436415 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00399017 +10:55:31.117 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6001,7497.71> +10:55:31.117 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1501,7497.71> terrainY=64.1556 tireTerrainGap=-0.00552368 +10:55:31.117 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6001,7497.71> radius=0.45 bottom=<7009.88,64.1501,7497.71> fraction=0.429293 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0055542 +10:55:31.118 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2623,7497.74> +10:55:31.118 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8123,7497.74> terrainY=63.8179 tireTerrainGap=-0.00557327 +10:55:31.118 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2623,7497.74> radius=0.45 bottom=<7014.42,63.8123,7497.74> fraction=0.429047 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0056076 +10:55:31.118 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:31.370 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.371 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.371 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.372 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.182 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5335,7499.71> up=0.994314 +10:55:32.182 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0928744 angularSpeed=0.0708118 +10:55:32.182 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:32.182 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6194,7501.98> +10:55:32.183 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3194,7501.98> terrainY=63.3147 tireTerrainGap=0.00474548 +10:55:32.183 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6194,7501.98> radius=0.3 bottom=<7012.07,63.3194,7501.98> fraction=0.47619 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00476074 +10:55:32.183 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:55:32.183 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00325775 +10:55:32.183 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469434 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00328064 +10:55:32.183 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2649,7497.78> +10:55:32.184 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8149,7497.78> terrainY=63.8155 tireTerrainGap=-0.000621796 +10:55:32.184 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2649,7497.78> radius=0.45 bottom=<7014.47,63.8149,7497.78> fraction=0.451667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00063324 +10:55:32.184 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:32.184 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:32.184 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.185 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.185 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.681 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:33.185 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5317,7499.74> up=0.994214 +10:55:33.185 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0409494 angularSpeed=0.0213691 +10:55:33.185 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:33.185 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6139,7502.01> +10:55:33.185 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00235367 +10:55:33.186 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6139,7502.01> radius=0.3 bottom=<7012.08,63.3139,7502.01> fraction=0.465349 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00237656 +10:55:33.186 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +10:55:33.186 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1428 tireTerrainGap=0.00177765 +10:55:33.186 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.462963 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00185394 +10:55:33.186 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.82> +10:55:33.187 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.82> terrainY=63.8128 tireTerrainGap=-0.0031395 +10:55:33.187 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.82> radius=0.45 bottom=<7014.51,63.8097,7497.82> fraction=0.440278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0031395 +10:55:33.187 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:33.187 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.187 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:33.188 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.188 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.685 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:33.685 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:33.686 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.686 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:34.194 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:55:34.195 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:55:34.195 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:34.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:55:34.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00165939 +10:55:34.195 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +10:55:34.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:55:34.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.0025177 +10:55:34.196 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +10:55:34.196 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +10:55:34.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0019722 +10:55:34.196 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:55:34.196 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.701 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.701 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.702 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.702 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.209 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:55:35.209 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:55:35.209 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:35.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:55:35.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00165939 +10:55:35.210 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +10:55:35.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:55:35.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.0025177 +10:55:35.210 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +10:55:35.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +10:55:35.211 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0019722 +10:55:35.211 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:55:35.211 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:35.211 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.211 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.212 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:55:35.226 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:55:35.227 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:55:35.227 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:55:35.227 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:55:35.227 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:55:35.227 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:55:35.228 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:55:35.374 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:55:35.414 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:55:35.627 SCRIPT : ERR SMOKE PASS: new identity may enter prison +10:55:35.627 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +10:55:35.627 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +10:55:35.628 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +10:55:35.628 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +10:55:35.628 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +10:55:35.635 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +10:55:36.124 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:41.171 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:46.223 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:46.730 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +10:55:46.732 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +10:55:46.748 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +10:55:46.748 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +10:55:46.749 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +10:55:46.749 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +10:55:51.272 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:55:56.348 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:01.399 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:06.438 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:11.487 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:16.554 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:21.614 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:26.674 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:27.077 WORLD : UpdateEntities +10:56:27.077 WORLD : FixedFrame +10:56:27.077 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 source=M1 observedAge=40342; recorded before native inventory transfer +10:56:28.118 WORLD : UpdateEntities +10:56:28.118 WORLD : Frame +10:56:28.118 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x000000019FF0A2C0> @"ENTITY:4611686018427390990" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 source=M1 aimAge=1921.13 flight=24.2333; impact is not measured +10:56:31.729 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +10:56:36.794 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +10:56:37.658 WORLD : UpdateEntities +10:56:37.659 WORLD : FixedFrame +10:56:37.659 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 source=M1 observedAge=50922.8; recorded before native inventory transfer +10:56:38.691 WORLD : UpdateEntities +10:56:38.691 WORLD : Frame +10:56:38.692 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x000000019FF0A3D0> @"ENTITY:4611686018427390995" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 source=M1 aimAge=6663.02 flight=24.1666; impact is not measured +10:56:41.852 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +10:56:46.905 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +10:56:47.768 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=native aim or firing authorization rejected lastFailure=delivered target report expired or invalid; events=2 commits=2 complete=0 +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/error.log.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/error.log.txt new file mode 100644 index 0000000..0418c3f --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41\error.log started at 2026-09-19 10:54:42 (2026-09-19 08:54:42 UTC) + +10:54:42.842 INIT : Workbench startup +10:54:42.842 INIT : Workbench Init Engine +10:54:42.842 RESOURCES : ResourceDB: full scan +10:54:42.842 RESOURCES : processing files... +10:54:42.842 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:54:42.842 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:54:42.842 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:54:47.869 INIT : Workbench Create Game +10:54:47.869 SCRIPT : Compiling Game scripts +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:54:48.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.147 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:54:48.178 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:54:48.319 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:54:48.387 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:54:48.459 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.497 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:54:57.552 WORLD : CreateEntities +10:54:57.552 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:54:57.552 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:54:57.552 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:55:13.670 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:55:18.469 WORLD : Game::LoadEntities +10:55:18.469 WORLD : CreateEntities +10:55:18.469 WORLD : CreateEntities +10:55:18.469 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:55:18.469 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:55:18.469 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:55:19.899 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:55:19.899 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:55:19.899 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:55:19.899 ENTITY : CreateComponent 'Hierarchy' +10:55:19.899 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:55:19.904 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:55:19.904 ENTITY : CreateComponent 'Hierarchy' +10:55:19.904 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:55:19.909 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:55:19.909 ENTITY : CreateComponent 'Hierarchy' +10:55:19.909 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:55:27.534 WORLD : InitEntities 'world' +10:55:27.534 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:55:27.534 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:55:28.055 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.055 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:55:28.055 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.056 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! +10:55:28.056 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! +10:55:28.058 SCRIPT (W): Can't open config file "" +10:55:28.064 WORLD : InitEntities 'world' +10:55:28.064 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:55:28.064 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:55:28.065 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:55:28.065 SCRIPT (W): Slot_Chat Has no Content! +10:55:28.065 SCRIPT (W): Slot_VON Has no Content! +10:55:28.065 SCRIPT (W): Slot_AvailableActions Has no Content! +10:55:28.065 SCRIPT (W): Slot_Vehicle Has no Content! +10:55:28.065 SCRIPT (W): Slot_GameVersion Has no Content! +10:55:28.065 SCRIPT (W): Slot_Notifications Has no Content! +10:55:28.065 SCRIPT (W): Slot_Hints Has no Content! +10:55:28.077 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:55:28.077 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:55:28.077 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:55:28.077 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. +10:55:28.078 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. +10:55:28.081 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:55:28.318 WORLD : UpdateEntities +10:55:28.318 WORLD : PostFrame +10:55:28.318 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:55:28.318 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:55:28.362 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:55:28.362 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:55:28.362 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:55:28.362 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:55:30.784 WORLD : UpdateEntities +10:55:30.784 WORLD : AfterPostSimulate +10:55:30.784 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/headless-launch.log.txt new file mode 100644 index 0000000..f282429 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1c001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1c001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1c001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1c0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1c0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1c0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x555572f63b30 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555572f63b30 +[Gamescope WSI] Destroyed swapchain: 0x555572f63b30 +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x555572f63b30 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555572f63b30 +[Gamescope WSI] Destroyed swapchain: 0x555572f63b30 +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x555572f63b30 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source-sha256.json new file mode 100644 index 0000000..fd6ce8b --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d8d0e245bf8a3a526573e4e801fd4c6d795d2074bc59d38e74cef02c7d9fb836", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source.json b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source.json new file mode 100644 index 0000000..02c5971 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "4bf37bd2-937a-4d7c-8ff3-a5bb15762993", + "captured_unix": 1789808079.306249, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/chat/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "1", + "-errSmokeOutcome", + "mortar-salvo", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json new file mode 100644 index 0000000..babe899 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 38, + "script_or_runtime_failures": [ + "10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success", + "10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics" + ], + "engine_errors": [ + "10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success", + "10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/rereintroduced-hq.log.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/rereintroduced-hq.log.txt new file mode 100644 index 0000000..95d31a1 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/rereintroduced-hq.log.txt @@ -0,0 +1,79 @@ +#1 t=6.6s M0 REGISTER group 1 [session=1789808127-1] +#2 t=6.6s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789808127-1] +#3 t=6.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789808127-1] +#4 t=7.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=1 fighting=1 inventory HE=0 radio connected=0 cooldown remaining=0s [session=1789808127-1] +#5 t=7.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=7.4713s last failure= [session=1789808127-1] +#6 t=8.6s M0 REGISTER group 2 [session=1789808127-1] +#7 t=8.6s M0 REGISTER group 3 [session=1789808127-1] +#8 t=8.6s M0 REGISTER group 4 [session=1789808127-1] +#9 t=8.6s M0 REGISTER group 5 [session=1789808127-1] +#10 t=8.6s M0 REGISTER group 6 [session=1789808127-1] +#11 t=8.6s M0 REGISTER group 7 [session=1789808127-1] +#12 t=12.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=0 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#13 t=12.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=12.5186s last failure= [session=1789808127-1] +#14 t=17.6s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#15 t=17.6s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=17.5704s last failure= [session=1789808127-1] +#16 t=17.8s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789808127-1] +#17 t=18.1s M1 FIXTURE REPORT EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789808127-1] +#18 t=18.8s M1 TRANSMIT unit 1 -> HQ (long-range) [session=1789808127-1] +#19 t=20.8s M1 RECEIVE HQ received from unit 1 [session=1789808127-1] +#20 t=22.6s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#21 t=22.6s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=22.6188s last failure= [session=1789808127-1] +#22 t=22.8s M5 TRANSMIT HQ -> unit 6 (long-range) [session=1789808127-1] +#23 t=22.8s M4 TRANSMIT HQ -> unit 4 (long-range) [session=1789808127-1] +#24 t=22.8s M3 TRANSMIT HQ -> unit 3 (long-range) [session=1789808127-1] +#25 t=22.8s M2 TRANSMIT HQ -> unit 2 (long-range) [session=1789808127-1] +#26 t=24.8s M5 RECEIVE unit 6 received from HQ [session=1789808127-1] +#27 t=24.8s M5 ORDER DELIVERED group 6 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789808127-1] +#28 t=24.8s M4 RECEIVE unit 4 received from HQ [session=1789808127-1] +#29 t=24.8s M4 ORDER DELIVERED group 4 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789808127-1] +#30 t=24.8s M3 RECEIVE unit 3 received from HQ [session=1789808127-1] +#31 t=24.8s M3 ORDER DELIVERED group 3 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789808127-1] +#32 t=24.8s M2 RECEIVE unit 2 received from HQ [session=1789808127-1] +#33 t=24.8s M2 ORDER DELIVERED group 2 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789808127-1] +#34 t=26.8s M6 ORDER QUEUED MORTAR ORDER from report M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789808127-1] +#35 t=26.8s M0 MORTAR COMMAND site=1 order=1 radio=M0 source=M1 position=<6000,202.788,7000>; requested rounds=8 HE radius=40m; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789808127-1] +#36 t=27.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#37 t=27.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=1 native action=-1 shell committed=0 order shots=0 total shots=0 age=0.866424s last failure= [session=1789808127-1] +#38 t=27.8s M6 TRANSMIT HQ -> unit 1 (long-range) [session=1789808127-1] +#39 t=29.9s M6 RECEIVE unit 1 received from HQ [session=1789808127-1] +#40 t=29.9s M6 MORTAR AIM site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; native activity created; latest source=M1 observed=X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (12s ago) [session=1789808127-1] +#41 t=30.9s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=1.00691s aim age=30.8664s committed=0 shots=0; previous= repeated polls omitted=0 [session=1789808127-1] +#42 t=32.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=27.1126s [session=1789808127-1] +#43 t=32.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=2.88736s last failure= [session=1789808127-1] +#44 t=33.1s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (15s ago); previous= repeated polls omitted=0 [session=1789808127-1] +#45 t=33.1s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s charge index=2 aim target=<5207.07,2689.01,6387.75> latest source=M1; previous= repeated polls omitted=0 [session=1789808127-1] +#46 t=37.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=22.074s [session=1789808127-1] +#47 t=37.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=7.92601s last failure= [session=1789808127-1] +#48 t=42.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=17.0245s [session=1789808127-1] +#49 t=42.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=12.9755s last failure= [session=1789808127-1] +#50 t=47.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=11.9581s [session=1789808127-1] +#51 t=47.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=18.0419s last failure= [session=1789808127-1] +#52 t=53s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=6.89839s [session=1789808127-1] +#53 t=53s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=23.1016s last failure= [session=1789808127-1] +#54 t=57.5s M6 MORTAR AIM REVALIDATED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=same native command; fresh ballistic solve matched original; source=M1 observed age=39.4626s; previous= repeated polls omitted=0 [session=1789808127-1] +#55 t=57.5s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous= repeated polls omitted=0 [session=1789808127-1] +#56 t=58s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=1.83788s [session=1789808127-1] +#57 t=58s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=28.1621s last failure= [session=1789808127-1] +#58 t=58.4s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BB88A2F0> @"ENTITY:4611686018427390782" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.122070 202.731827 7000.142090> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s; invoking native transfer, awaiting projectile event [session=1789808127-1] +#59 t=59.5s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x000000019FF0A2C0> @"ENTITY:4611686018427390990" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order shots=1 total shots=1 predicted impact=<5207.07,78.6842,6387.75> predicted flight=24.2333s gunner=SCR_ChimeraCharacter<0x00000001BB88A2F0> @"ENTITY:4611686018427390782" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.122070 202.734650 7000.142090> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789808127-1] +#60 t=61s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=31.1576s aim age=61.0171s committed=0 shots=1; previous=native state=1 repeated polls omitted=29 [session=1789808127-1] +#61 t=63.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#62 t=63.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=33.2163s last failure= [session=1789808127-1] +#63 t=63.4s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (45s ago); previous=solving moving intercept repeated polls omitted=0 [session=1789808127-1] +#64 t=63.4s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s charge index=2 aim target=<5180.93,2673.01,6406.01> latest source=M1; previous=ready repeated polls omitted=0 [session=1789808127-1] +#65 t=68.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#66 t=68.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=38.282s last failure= [session=1789808127-1] +#67 t=69s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BB88A2F0> @"ENTITY:4611686018427390782" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.118652 202.734863 7000.160156> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s; invoking native transfer, awaiting projectile event [session=1789808127-1] +#68 t=70s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x000000019FF0A3D0> @"ENTITY:4611686018427390995" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order shots=2 total shots=2 predicted impact=<5180.93,82.8334,6406.01> predicted flight=24.1666s gunner=SCR_ChimeraCharacter<0x00000001BB88A2F0> @"ENTITY:4611686018427390782" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.118652 202.737274 7000.160156> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789808127-1] +#69 t=73.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#70 t=73.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=43.3395s last failure= [session=1789808127-1] +#71 t=78.3s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789808127-1] +#72 t=78.3s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=48.3923s last failure= [session=1789808127-1] +#73 t=78.7s M6 MORTAR WITHHELD site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=delivered target report expired or invalid; ; previous= repeated polls omitted=0 [session=1789808127-1] +#74 t=78.7s M6 MORTAR ABORT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final shell transfer rejected; delivered target report expired or invalid; [session=1789808127-1] +#75 t=79.1s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=SHOOT NODE reason=native result=2 repeated polls omitted=2 [session=1789808127-1] +#76 t=79.1s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM SOLUTION reason=ready repeated polls omitted=1 [session=1789808127-1] +#77 t=79.1s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=ACTIVITY reason=native state=1 repeated polls omitted=17 [session=1789808127-1] +#78 t=79.1s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM START reason=solving moving intercept repeated polls omitted=1 [session=1789808127-1] +#79 t=79.1s M6 MORTAR ORDER END site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native aim or firing authorization rejected observed shots=2 shell committed=0 elapsed=49.2549s last failure=delivered target report expired or invalid; [session=1789808127-1] diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/runner.json.txt new file mode 100644 index 0000000..b15760b --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789808209.5528224, + "console_sha256": "87bde16a1d808f66ab292f45354f5939618bdf9fa7947abc0b2f1fc9821f8121", + "end_source_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "4bf37bd2-937a-4d7c-8ff3-a5bb15762993", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "4cba49a290ea692ec72fac8a4619ff13ac705b49c8276f8fd0a18199807f854c", + "started_unix": 1789808079.306335, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-54-41", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1280x720/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/script.log.txt b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/script.log.txt new file mode 100644 index 0000000..1b27565 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/script.log.txt @@ -0,0 +1,288 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-54-41\script.log started at 2026-09-19 10:54:44 (2026-09-19 08:54:44 UTC) + +10:54:44.065 SCRIPT : SCRIPT : Initializing scripts +10:54:44.065 SCRIPT : SCRIPT : ScriptProjectManager init +10:54:46.464 SCRIPT : SCRIPT : Compiling GameLib scripts +10:54:46.534 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:54:46.535 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:54:46.535 SCRIPT : SCRIPT : Compiling Game scripts +10:54:47.869 SCRIPT : Compiling Game scripts +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:54:47.869 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:54:48.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.147 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:54:48.178 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:54:48.279 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:54:48.319 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:54:48.385 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:54:48.387 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:54:48.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:54:48.459 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:54:48.497 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:54:48.780 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +10:54:48.786 SCRIPT : Module: Game; loaded 5775x files; 11362x classes; used 33458K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 221140b6 +10:54:49.667 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:54:49.667 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:55:10.374 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +10:55:10.374 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +10:55:10.375 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +10:55:10.376 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +10:55:10.377 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +10:55:10.377 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +10:55:10.400 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +10:55:13.667 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:55:13.667 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:55:27.534 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:55:27.562 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +10:55:28.056 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! +10:55:28.056 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! +10:55:28.058 SCRIPT (W): Can't open config file "" +10:55:28.065 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:55:28.065 SCRIPT (W): Slot_Chat Has no Content! +10:55:28.065 SCRIPT (W): Slot_VON Has no Content! +10:55:28.065 SCRIPT (W): Slot_AvailableActions Has no Content! +10:55:28.065 SCRIPT (W): Slot_Vehicle Has no Content! +10:55:28.065 SCRIPT (W): Slot_GameVersion Has no Content! +10:55:28.065 SCRIPT (W): Slot_Notifications Has no Content! +10:55:28.065 SCRIPT (W): Slot_Hints Has no Content! +10:55:28.077 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. +10:55:28.078 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. +10:55:28.081 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:55:28.134 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:55:28.148 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:55:28.318 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:55:29.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:55:29.870 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:55:29.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:55:29.900 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:55:29.903 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:55:29.951 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:55:29.952 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:55:29.957 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:55:30.003 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:55:30.003 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:55:30.005 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:55:30.005 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:55:30.009 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:55:30.010 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:55:30.010 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:55:30.011 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:55:30.011 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:55:30.012 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:55:30.012 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:55:30.012 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:55:30.012 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:55:30.012 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.012 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:55:30.012 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:55:30.013 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.013 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:55:30.013 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:55:30.013 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:55:30.013 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.013 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.014 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:55:30.865 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:30.866 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.116 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5278,7499.7> up=0.995676 +10:55:31.116 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:55:31.116 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:31.117 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6124,7501.97> +10:55:31.117 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3124,7501.97> terrainY=63.3165 tireTerrainGap=-0.00405121 +10:55:31.117 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6124,7501.97> radius=0.3 bottom=<7012.07,63.3124,7501.97> fraction=0.436415 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00399017 +10:55:31.117 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6001,7497.71> +10:55:31.117 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1501,7497.71> terrainY=64.1556 tireTerrainGap=-0.00552368 +10:55:31.117 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6001,7497.71> radius=0.45 bottom=<7009.88,64.1501,7497.71> fraction=0.429293 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0055542 +10:55:31.118 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2623,7497.74> +10:55:31.118 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8123,7497.74> terrainY=63.8179 tireTerrainGap=-0.00557327 +10:55:31.118 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2623,7497.74> radius=0.45 bottom=<7014.42,63.8123,7497.74> fraction=0.429047 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0056076 +10:55:31.118 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:31.370 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.371 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.371 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.372 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:31.677 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.182 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5335,7499.71> up=0.994314 +10:55:32.182 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0928744 angularSpeed=0.0708118 +10:55:32.182 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:32.182 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6194,7501.98> +10:55:32.183 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3194,7501.98> terrainY=63.3147 tireTerrainGap=0.00474548 +10:55:32.183 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6194,7501.98> radius=0.3 bottom=<7012.07,63.3194,7501.98> fraction=0.47619 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00476074 +10:55:32.183 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6024,7497.71> +10:55:32.183 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1524,7497.71> terrainY=64.1491 tireTerrainGap=0.00325775 +10:55:32.183 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6024,7497.71> radius=0.45 bottom=<7009.93,64.1524,7497.71> fraction=0.469434 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00328064 +10:55:32.183 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2649,7497.78> +10:55:32.184 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8149,7497.78> terrainY=63.8155 tireTerrainGap=-0.000621796 +10:55:32.184 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2649,7497.78> radius=0.45 bottom=<7014.47,63.8149,7497.78> fraction=0.451667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00063324 +10:55:32.184 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:32.184 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:32.184 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.185 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:55:32.185 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.681 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:32.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:33.185 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5317,7499.74> up=0.994214 +10:55:33.185 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0409494 angularSpeed=0.0213691 +10:55:33.185 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:33.185 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6139,7502.01> +10:55:33.185 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00235367 +10:55:33.186 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6139,7502.01> radius=0.3 bottom=<7012.08,63.3139,7502.01> fraction=0.465349 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00237656 +10:55:33.186 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +10:55:33.186 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1428 tireTerrainGap=0.00177765 +10:55:33.186 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.462963 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00185394 +10:55:33.186 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.82> +10:55:33.187 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.82> terrainY=63.8128 tireTerrainGap=-0.0031395 +10:55:33.187 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.82> radius=0.45 bottom=<7014.51,63.8097,7497.82> fraction=0.440278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0031395 +10:55:33.187 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:33.187 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.187 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:55:33.188 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.188 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.685 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:33.685 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:33.686 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:33.686 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:55:34.194 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:55:34.195 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:55:34.195 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:34.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:55:34.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00165939 +10:55:34.195 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +10:55:34.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:55:34.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.0025177 +10:55:34.196 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +10:55:34.196 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +10:55:34.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0019722 +10:55:34.196 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:55:34.196 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.197 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.701 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:55:34.701 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.702 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:34.702 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.209 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:55:35.209 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:55:35.209 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:55:35.209 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +10:55:35.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00165939 +10:55:35.210 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +10:55:35.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +10:55:35.210 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.0025177 +10:55:35.210 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +10:55:35.210 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +10:55:35.211 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0019722 +10:55:35.211 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601 +10:55:35.211 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:55:35.211 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.211 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:55:35.212 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:55:35.226 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:55:35.227 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:55:35.227 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:55:35.227 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:55:35.227 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:55:35.227 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:55:35.228 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:55:35.374 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:55:35.414 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:55:35.627 SCRIPT : ERR SMOKE PASS: new identity may enter prison +10:55:35.627 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +10:55:35.627 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +10:55:35.628 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +10:55:35.628 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +10:55:35.628 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +10:55:35.628 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +10:55:35.629 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +10:55:35.632 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +10:55:35.635 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +10:55:35.635 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +10:55:35.636 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +10:55:36.124 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:41.171 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:46.223 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +10:55:46.730 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +10:55:46.731 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +10:55:46.732 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +10:55:46.748 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +10:55:46.748 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +10:55:46.749 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +10:55:46.749 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +10:55:51.272 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:55:56.348 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:01.399 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:06.438 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:11.488 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:16.554 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:21.614 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:26.674 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +10:56:27.077 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 source=M1 observedAge=40342; recorded before native inventory transfer +10:56:28.118 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x000000019FF0A2C0> @"ENTITY:4611686018427390990" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 source=M1 aimAge=1921.13 flight=24.2333; impact is not measured +10:56:31.729 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +10:56:36.794 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +10:56:37.659 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 source=M1 observedAge=50922.8; recorded before native inventory transfer +10:56:38.692 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x000000019FF0A3D0> @"ENTITY:4611686018427390995" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 source=M1 aimAge=6663.02 flight=24.1666; impact is not measured +10:56:41.852 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +10:56:46.905 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +10:56:47.768 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=native aim or firing authorization rejected lastFailure=delivered target report expired or invalid; events=2 commits=2 complete=0 +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +10:56:47.919 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-sha256.json new file mode 100644 index 0000000..fd6ce8b --- /dev/null +++ b/docs/evidence/native-2026-09-19-105441-salvo-expiry-refusal/source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d8d0e245bf8a3a526573e4e801fd4c6d795d2074bc59d38e74cef02c7d9fb836", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/console.log.txt b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/console.log.txt new file mode 100644 index 0000000..896a349 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/console.log.txt @@ -0,0 +1,859 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09\console.log started at 2026-09-19 10:57:09 (2026-09-19 08:57:09 UTC) + +10:57:09.120 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09' to filesystem under name logs +10:57:09.120 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +10:57:09.120 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +10:57:09.122 PROFILING : Workbench Create Engine took: 10.497800 ms +10:57:10.160 INIT : INIT : Workbench Init Engine +10:57:10.161 ENGINE : Initializing engine, version 192142 +10:57:10.161 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +10:57:10.171 ENGINE : Addon dirs: +10:57:10.171 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +10:57:10.171 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +10:57:10.171 ENGINE : dir: './addons' +10:57:10.171 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +10:57:10.171 ENGINE : Available addons: +10:57:10.171 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:57:10.171 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +10:57:10.171 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +10:57:10.171 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +10:57:10.171 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +10:57:10.171 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +10:57:10.171 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +10:57:10.171 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +10:57:10.292 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +10:57:10.296 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +10:57:10.296 ENGINE : CPU vendor : AuthenticAMD +10:57:10.296 ENGINE : CPU type : 2 +10:57:10.296 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +10:57:10.296 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +10:57:10.296 ENGINE : CPU count logical : 16 +10:57:10.296 ENGINE : CPU count physical : 8 +10:57:10.296 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +10:57:10.296 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:57:10.296 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +10:57:10.438 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +10:57:10.439 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:57:10.439 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09/resourceDatabase.rdb) +10:57:10.589 RESOURCES : RESOURCES : ResourceDB: full scan +10:57:10.594 RESOURCES : RESOURCES : scanning... +10:57:10.594 RESOURCES : RESOURCES : scanning @"ERR_Core" +10:57:10.597 RESOURCES : RESOURCES : scanning @"ArmaReforger" +10:57:10.732 RESOURCES : RESOURCES : scanning @"core" +10:57:10.737 RESOURCES : RESOURCES : scanning @"profile" +10:57:10.737 RESOURCES : RESOURCES : scanning @"logs" +10:57:10.738 RESOURCES : RESOURCES : processing meta-files... +10:57:10.804 RESOURCES : RESOURCES : processing files... +10:57:10.815 INIT : Workbench startup +10:57:10.815 INIT : Workbench Init Engine +10:57:10.815 RESOURCES : ResourceDB: full scan +10:57:10.815 RESOURCES : processing files... +10:57:10.815 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:57:10.815 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:57:10.815 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:57:10.815 RESOURCES : RESOURCES : processing folders... +10:57:10.822 RESOURCES : RESOURCES : creating GUID-item mapping... +10:57:10.841 RESOURCES : RESOURCES : building tree... +10:57:10.903 PROFILING : ResourceDB: full scan took: 313.963100 ms +10:57:10.904 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +10:57:10.906 RESOURCES : ResourceDB: written 6865/6865 bytes +10:57:10.906 RESOURCES : ResourceDB: cache successfully saved +10:57:10.906 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +10:57:10.908 RESOURCES : ResourceDB: written 206/206 bytes +10:57:10.908 RESOURCES : ResourceDB: cache successfully saved +10:57:10.908 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09/resourceDatabase.rdb) +10:57:10.910 RESOURCES : ResourceDB: written 162/162 bytes +10:57:10.910 RESOURCES : ResourceDB: cache successfully saved +10:57:10.910 ENGINE : GameProject load +10:57:10.910 ENGINE : Loaded addons: +10:57:10.910 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +10:57:10.910 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +10:57:10.910 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +10:57:10.911 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +10:57:10.911 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +10:57:10.911 ENGINE : Engine user settings config loaded +10:57:10.911 PROFILING : Settings changed took: 0.001400 ms +10:57:11.016 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +10:57:11.018 RENDER : Basic screen setup: +10:57:11.018 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +10:57:11.018 RENDER : MSAA : none +10:57:11.033 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +10:57:11.033 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +10:57:11.033 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +10:57:11.033 RENDER : * core clocks 2720 MHz, memory 1124 MHz +10:57:11.033 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +10:57:11.033 RENDER : AMD AGS correctly initialized +10:57:11.033 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 +10:57:11.033 RENDER : Detected output devices: +10:57:11.033 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +10:57:11.033 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +10:57:11.033 RENDER : Concurrent frames limit 2 +10:57:11.110 RENDER : DX12 device successfully created by AMD AGS library +10:57:11.110 RENDER : * user markers not supported in this version AMD SW +10:57:11.110 RENDER : Graphics device features +10:57:11.110 RENDER : Needed: +10:57:11.110 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +10:57:11.110 RENDER : Optional: +10:57:11.110 RENDER : * Allow tearing (VSYNC) : 1 +10:57:11.110 RENDER : * 16 bits : 1 +10:57:11.110 RENDER : * Resource heap tier : 3 +10:57:11.110 RENDER : * Persistent heaps (DRED) : 1 +10:57:11.111 RENDER : * DRED 1.2 is supported by compiler +10:57:11.133 RENDER : Main RT format setup. +10:57:11.133 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +10:57:11.133 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +10:57:11.135 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +10:57:11.164 PROFILING : Settings changed took: 0.028200 ms +10:57:11.661 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:57:11.661 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:57:11.661 AUDIO : Audio client: +10:57:11.661 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:57:11.664 RENDER : RENDER : Reload shaders +10:57:11.664 RENDER : Enfusion shader version 13 +10:57:11.664 INIT : INIT : ShaderListReload +10:57:11.664 PROFILING : ShaderListReload took: 0.002600 ms +10:57:11.805 AUDIO : Endpoint: Speakers (PulseAudio Output) +10:57:11.805 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +10:57:11.805 AUDIO : Audio client: +10:57:11.805 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +10:57:11.946 RENDER : Loaded 3752 newer shader binaries +10:57:11.946 PROFILING : Reload shaders took: 282.113200 ms +10:57:11.946 ENGINE : Initializing inputs. +10:57:11.960 NETWORK : Initializing networking. +10:57:11.960 NETWORK : Using new GameRplScheduler. +10:57:11.960 SCRIPT : SCRIPT : Initializing scripts +10:57:11.961 SCRIPT : SCRIPT : ScriptProjectManager init +10:57:12.790 PROFILING : ScriptProjectManager init took: 829.580200 ms +10:57:12.825 PROFILING : Initializing scripts took: 864.111700 ms +10:57:12.847 ENGINE : Enfusion engine successfully created. +10:57:12.847 PROFILING : Workbench Init Engine took: 2686.614900 ms +10:57:12.847 INIT : INIT : Workbench Create Game +10:57:12.860 GUI : Using default language (en_us) +10:57:12.860 GUI : Loading 'en_us' localization file. +10:57:12.860 INIT : INIT : Loading StringTable +10:57:12.885 PROFILING : Loading StringTable took: 24.829100 ms +10:57:12.885 SCRIPT : SCRIPT : Compiling GameLib scripts +10:57:12.943 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:57:12.944 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:57:12.944 PROFILING : Compiling GameLib scripts took: 59.560000 ms +10:57:12.944 SCRIPT : SCRIPT : Compiling Game scripts +10:57:14.062 INIT : Workbench Create Game +10:57:14.062 SCRIPT : Compiling Game scripts +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:57:14.218 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.331 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:57:14.363 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:57:14.502 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:57:14.567 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:57:14.638 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.673 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:57:14.964 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:57:14.971 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 9c8acf09 +10:57:15.008 PROFILING : Compiling Game scripts took: 2063.655500 ms +10:57:15.013 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:57:15.054 ENGINE : Game successfully created. +10:57:15.055 PROFILING : Workbench Create Game took: 2208.174100 ms +10:57:15.063 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +10:57:15.948 INIT : INIT : Workbench Reload Game +10:57:15.950 ENGINE : Game destroyed. +10:57:15.956 GUI : Using default language (en_us) +10:57:15.956 GUI : Loading 'en_us' localization file. +10:57:15.956 INIT : INIT : Loading StringTable +10:57:15.965 PROFILING : Loading StringTable took: 9.107000 ms +10:57:15.965 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:57:15.972 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:57:15.972 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:57:15.972 ENGINE : Game successfully created. +10:57:15.972 ENGINE : Game successfully initialized. +10:57:15.972 PROFILING : Workbench Reload Game took: 24.163100 ms +10:57:16.704 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +10:57:17.714 PROFILING : Entities load took: 1010.300900 ms +10:57:17.725 WORLD : WORLD : CreateEntities +10:57:17.730 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:57:17.730 PROFILING : NotifyBeforeEntitiesCreated took: 0.003400 ms +10:57:17.730 WORLD : WORLD : Wait for preloading data +10:57:17.730 PROFILING : Wait for preloading data took: 0.004300 ms +10:57:17.843 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +10:57:17.844 PROFILING : PROFILING : Terrain load +10:57:19.409 PROFILING : Terrain load took: 1565.523600 ms +10:57:23.353 WORLD : CreateEntities +10:57:23.353 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:57:23.353 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:57:23.353 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:57:33.057 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:57:33.057 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005900 ms +10:57:33.493 WORLD : WORLD : NotifyEntitiesInitialized +10:57:33.493 TERRAIN : TERRAIN : Initializing road networks... +10:57:33.496 PROFILING : Initializing road networks... took: 2.257700 ms +10:57:33.496 PROFILING : NotifyEntitiesInitialized took: 2.545000 ms +10:57:33.496 PROFILING : CreateEntities took: 15770.204700 ms +10:57:33.668 PROFILING : * WorldEditor: LoadWorld: 16985.972800 ms +10:57:35.127 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +10:57:35.128 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +10:57:35.129 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +10:57:35.129 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +10:57:35.213 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:57:35.235 BACKEND : Attempting online Game Config instead. +10:57:38.616 INIT : INIT : Workbench Reload Game +10:57:38.619 ENGINE : Game destroyed. +10:57:38.627 GUI : Using default language (en_us) +10:57:38.627 GUI : Loading 'en_us' localization file. +10:57:38.627 INIT : INIT : Loading StringTable +10:57:38.648 PROFILING : Loading StringTable took: 20.182600 ms +10:57:38.648 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +10:57:38.655 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:57:38.655 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:57:38.655 ENGINE : Game successfully created. +10:57:38.656 ENGINE : Game successfully initialized. +10:57:38.656 PROFILING : Workbench Reload Game took: 39.115100 ms +10:57:38.658 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:57:38.711 PLATFORM : Save data from container 'settings' have been loaded +10:57:38.802 PLATFORM : Save data from container 'sessions' have been loaded +10:57:38.803 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +10:57:38.803 ENGINE : Game user settings config loaded +10:57:38.900 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +10:57:38.909 WORLD : WORLD : Game::LoadEntities +10:57:38.909 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +10:57:38.910 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +10:57:38.910 WORLD : WORLD : CreateEntities +10:57:38.910 WORLD : WORLD : CreateEntities +10:57:38.910 WORLD : WORLD : NotifyBeforeEntitiesCreated +10:57:38.915 RESOURCES : Loaded mission headers from 7 addon(s)! +10:57:38.915 PROFILING : NotifyBeforeEntitiesCreated took: 4.634000 ms +10:57:38.915 WORLD : WORLD : Wait for preloading data +10:57:38.915 PROFILING : Wait for preloading data took: 0.000800 ms +10:57:43.387 WORLD : Game::LoadEntities +10:57:43.387 WORLD : CreateEntities +10:57:43.387 WORLD : CreateEntities +10:57:43.387 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:57:43.387 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:57:43.387 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:57:44.809 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:57:44.809 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:57:44.809 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:57:44.818 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:57:44.818 ENTITY : CreateComponent 'Hierarchy' +10:57:44.818 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:57:44.819 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:57:44.819 ENTITY : CreateComponent 'Hierarchy' +10:57:44.819 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:57:44.819 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:57:44.819 ENTITY : CreateComponent 'Hierarchy' +10:57:44.819 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:57:49.717 WORLD : WORLD : NotifyBeforeEntitiesInitialized +10:57:49.717 PROFILING : NotifyBeforeEntitiesInitialized took: 0.046400 ms +10:57:51.661 WORLD : InitEntities 'world' +10:57:51.661 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:57:51.661 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:57:51.693 WORLD : InitEntities 'world' +10:57:51.693 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:57:51.693 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:57:51.693 WORLD : WORLD : NotifyEntitiesInitialized +10:57:51.693 TERRAIN : TERRAIN : Initializing road networks... +10:57:51.697 PROFILING : Initializing road networks... took: 3.228900 ms +10:57:51.697 DEFAULT : DEFAULT : WorldVolumesCollection +10:57:51.758 PROFILING : WorldVolumesCollection took: 61.673800 ms +10:57:51.758 INIT : INIT : SoundWorldInit +10:57:51.773 PROFILING : SoundWorldInit took: 14.118900 ms +10:57:51.773 PROFILING : NotifyEntitiesInitialized took: 79.321900 ms +10:57:51.773 PROFILING : CreateEntities took: 12862.475100 ms +10:57:51.773 PROFILING : CreateEntities took: 12862.694400 ms +10:57:51.774 WORLD : WORLD : Wait for preloading data around camera +10:57:51.774 PROFILING : Wait for preloading data around camera took: 0.001300 ms +10:57:51.774 WORLD : WORLD : EOnActivate +10:57:51.808 PROFILING : EOnActivate took: 34.577000 ms +10:57:51.809 PROFILING : Game::LoadEntities took: 12899.550700 ms +10:57:52.140 DEFAULT : Entered offline game state. +10:57:52.242 NETWORK : Player connected: connectionID=2147483646 +10:57:52.243 NETWORK : ### Connecting player: connectionID=2147483646, Name= +10:57:52.243 NETWORK : ### Creating player: PlayerId=1, Name=jakub +10:57:52.247 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.247 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:57:52.247 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.247 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! +10:57:52.248 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! +10:57:52.249 SCRIPT (W): Can't open config file "" +10:57:52.255 WORLD : InitEntities 'world' +10:57:52.255 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.255 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:57:52.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:57:52.256 SCRIPT (W): Slot_Chat Has no Content! +10:57:52.256 SCRIPT (W): Slot_VON Has no Content! +10:57:52.256 SCRIPT (W): Slot_AvailableActions Has no Content! +10:57:52.256 SCRIPT (W): Slot_Vehicle Has no Content! +10:57:52.256 SCRIPT (W): Slot_GameVersion Has no Content! +10:57:52.256 SCRIPT (W): Slot_Notifications Has no Content! +10:57:52.256 SCRIPT (W): Slot_Hints Has no Content! +10:57:52.268 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:57:52.268 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:57:52.268 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:57:52.269 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. +10:57:52.269 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. +10:57:52.273 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +10:57:52.273 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:57:52.273 NETWORK : Players connecting: 0 +10:57:52.273 NETWORK : Players connected: 1 / 1 +10:57:52.302 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +10:57:52.304 PROFILING : Workbench startup took: 43258.314200 ms +10:57:52.328 WORLD : Frame start +10:57:52.328 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:57:52.342 WORLD : UpdateEntities +10:57:52.342 WORLD : Frame +10:57:52.342 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:57:52.506 WORLD : UpdateEntities +10:57:52.506 WORLD : PostFrame +10:57:52.506 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:57:52.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:57:52.552 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:57:52.552 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:57:52.552 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:57:52.552 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:57:52.686 RENDER : RENDER : ObjectsHeightMap::Build +10:57:52.686 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +10:57:52.849 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 161.959400 ms +10:57:52.857 PROFILING : ObjectsHeightMap::Build took: 170.148000 ms +10:57:54.023 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:57:54.045 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:57:54.046 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:57:54.074 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:57:54.076 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:57:54.126 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:57:54.126 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:57:54.134 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:57:54.185 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:57:54.185 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:57:54.188 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:57:54.188 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:57:54.191 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:57:54.193 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:57:54.193 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:57:54.194 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:57:54.194 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:57:54.194 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:57:54.194 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:57:54.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:57:54.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:57:54.195 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:57:54.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:57:54.195 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.196 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:57:54.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:57:54.196 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.954 WORLD : UpdateEntities +10:57:54.954 WORLD : AfterPostSimulate +10:57:54.954 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:57:55.027 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5282,7499.7> up=0.995677 +10:57:55.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:57:55.283 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:55.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6129,7501.97> +10:57:55.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3129,7501.97> terrainY=63.3164 tireTerrainGap=-0.00355148 +10:57:55.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6129,7501.97> radius=0.3 bottom=<7012.07,63.3129,7501.97> fraction=0.438655 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00349426 +10:57:55.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6005,7497.71> +10:57:55.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1505,7497.71> terrainY=64.1556 tireTerrainGap=-0.00514221 +10:57:55.284 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6005,7497.71> radius=0.45 bottom=<7009.88,64.1505,7497.71> fraction=0.430976 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00518036 +10:57:55.284 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2626,7497.74> +10:57:55.284 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8126,7497.74> terrainY=63.8179 tireTerrainGap=-0.00529099 +10:57:55.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2626,7497.74> radius=0.45 bottom=<7014.42,63.8126,7497.74> fraction=0.430278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00533676 +10:57:55.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:56.049 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.050 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.366 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5349,7499.71> up=0.994337 +10:57:56.366 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +10:57:56.366 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:56.367 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.619,7501.99> +10:57:56.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.319,7501.99> terrainY=63.3145 tireTerrainGap=0.00450134 +10:57:56.367 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.619,7501.99> radius=0.3 bottom=<7012.07,63.319,7501.99> fraction=0.475336 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00457382 +10:57:56.367 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6022,7497.71> +10:57:56.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1522,7497.71> terrainY=64.149 tireTerrainGap=0.00312805 +10:57:56.367 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6022,7497.71> radius=0.45 bottom=<7009.93,64.1522,7497.71> fraction=0.468873 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00315094 +10:57:56.368 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.265,7497.78> +10:57:56.368 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.815,7497.78> terrainY=63.8155 tireTerrainGap=-0.000499725 +10:57:56.368 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.265,7497.78> radius=0.45 bottom=<7014.47,63.815,7497.78> fraction=0.452222 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000511169 +10:57:56.368 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:56.368 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.866 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:57.377 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5311,7499.74> up=0.994218 +10:57:57.377 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0403679 angularSpeed=0.0725902 +10:57:57.377 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:57.377 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6139,7502.01> +10:57:57.377 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3139,7502.01> terrainY=63.3115 tireTerrainGap=0.00246811 +10:57:57.378 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6139,7502.01> radius=0.3 bottom=<7012.07,63.3139,7502.01> fraction=0.465776 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00247192 +10:57:57.378 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5951,7497.72> +10:57:57.378 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1451,7497.72> terrainY=64.1428 tireTerrainGap=0.00231171 +10:57:57.378 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5951,7497.72> radius=0.45 bottom=<7009.97,64.1451,7497.72> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:57:57.378 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.83> +10:57:57.379 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.83> terrainY=63.8127 tireTerrainGap=-0.00236893 +10:57:57.379 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.83> radius=0.45 bottom=<7014.51,63.8103,7497.83> fraction=0.443766 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00237274 +10:57:57.379 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:57.379 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.876 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:57.876 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:57.877 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.877 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:58.383 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:57:58.383 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:57:58.383 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:58.384 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6126,7502.02> +10:57:58.384 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3126,7502.02> terrainY=63.3109 tireTerrainGap=0.00170135 +10:57:58.384 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6126,7502.02> radius=0.3 bottom=<7012.08,63.3126,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:57:58.384 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:57:58.384 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00256348 +10:57:58.385 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:57:58.385 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:57:58.385 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00187302 +10:57:58.385 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:57:58.385 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.894 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.396 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:57:59.397 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:57:59.397 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:59.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6126,7502.02> +10:57:59.397 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3126,7502.02> terrainY=63.3109 tireTerrainGap=0.00170135 +10:57:59.397 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6126,7502.02> radius=0.3 bottom=<7012.08,63.3126,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:57:59.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:57:59.398 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00256348 +10:57:59.398 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:57:59.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:57:59.398 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00187302 +10:57:59.398 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:57:59.398 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:59.399 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.399 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.400 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:57:59.400 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:57:59.401 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:57:59.401 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:57:59.401 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:57:59.402 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:57:59.402 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:57:59.402 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:57:59.544 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:57:59.585 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.820 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.820 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:57:59.822 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:57:59.822 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.823 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.823 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:57:59.825 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:57:59.825 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:57:59.826 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:57:59.826 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:57:59.845 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:57:59.850 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:57:59.850 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:58:00.323 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:58:00.323 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:58:00.331 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:58:00.332 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:58:00.821 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:58:00.822 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:58:00.822 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:58:00.822 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:58:00.822 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:58:00.841 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:58:00.841 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:58:01.323 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28998.3 +10:58:01.324 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:58:01.324 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082933CA8> activeSeat=PilotCompartmentSlot<0x0000000082933CA8> group=<0x00000001B9F4EF90> SCR_AIGroup actualGroup=<0x00000001B9F4EF90> SCR_AIGroup +10:58:01.325 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:58:01.325 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:58:01.325 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:58:01.325 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:58:03.346 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10022.8 remainingMs=26975.5 +10:58:03.347 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:58:03.347 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397778 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397778 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082933CA8> activeSeat=PilotCompartmentSlot<0x0000000082933CA8> group=<0x00000001B9F4EF90> SCR_AIGroup actualGroup=<0x00000001B9F4EF90> SCR_AIGroup +10:58:03.347 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:58:03.348 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:58:03.348 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996331 entityOrigin=<4801.01,27.5743,11487.4> +10:58:03.348 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:58:03.853 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:58:03.888 WORLD : UpdateEntities +10:58:03.889 WORLD : Frame +10:58:03.889 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0461188 input=1 simulation=1 +10:58:03.937 WORLD : UpdateEntities +10:58:03.938 WORLD : Frame +10:58:03.938 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0491118 input=1 simulation=1 +10:58:03.990 WORLD : UpdateEntities +10:58:03.990 WORLD : Frame +10:58:03.990 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0524682 input=1 simulation=1 +10:58:04.041 WORLD : UpdateEntities +10:58:04.041 WORLD : Frame +10:58:04.041 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.050569 input=1 simulation=1 +10:58:04.361 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +10:58:04.361 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0132961 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996204 groundContact=1 fuel=1938.75 engine=0 +10:58:04.361 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +10:58:04.361 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0132961,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0277555,0.0781884,0.996552> right=<0.998959,-0.0382646,-0.0248203> +10:58:04.362 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:58:04.362 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=10 writtenAgeMs=12.9141 beforeWriteAgeMs=12.9141 +10:58:04.362 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:58:04.362 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:58:04.362 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:58:04.363 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:58:04.363 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4901,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7787 +10:58:04.363 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7451,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6665 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224243 +10:58:04.364 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:58:04.364 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:58:06.379 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +10:58:06.380 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00550842 drift=0.0379134 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +10:58:06.380 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +10:58:06.380 SCRIPT : ERR POWERED MOTION: offset=<-0.0375977,0.00550842,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328704,0.0800933,0.996245> right=<0.998831,-0.0379771,-0.0299026> +10:58:06.380 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:58:06.380 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=75 beforeWriteSequence=48 writtenAgeMs=29.9668 beforeWriteAgeMs=29.9668 +10:58:06.381 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:58:06.381 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:58:08.402 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=87 +10:58:08.402 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00991249 drift=0.129039 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +10:58:08.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109307,-0.0708191> +10:58:08.402 SCRIPT : ERR POWERED MOTION: offset=<-0.128906,0.00991249,-0.00585938> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204044,-0.0427907,-0.000639235> forward=<0.0433787,0.0803369,0.995823> right=<0.998471,-0.0376731,-0.0404548> +10:58:08.402 SCRIPT : ERR POWERED INPUT: pilotHooks=87 vehicleHooks=87 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000330322 targetRPM=196 +10:58:08.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=87 applyCallbacks=136 beforeWriteSequence=86 writtenAgeMs=9.89453 beforeWriteAgeMs=21.9971 +10:58:08.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:08.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:10.417 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=125 +10:58:10.417 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130291 drift=0.220293 speed=0.0438123 vertical=-0.00226769 up=0.996079 groundContact=1 fuel=1938.62 engine=1 +10:58:10.417 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494648,0.00328747,0.0203781> +10:58:10.417 SCRIPT : ERR POWERED MOTION: offset=<-0.220215,0.0130291,-0.00585938> velocity=<0.0436935,-0.00226769,0.00229078> angularLocal=<-1.09793e-05,-0.0428091,-0.000768756> forward=<0.0545381,0.0801713,0.995288> right=<0.997964,-0.0373947,-0.0516726> +10:58:10.417 SCRIPT : ERR POWERED INPUT: pilotHooks=125 vehicleHooks=125 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0239029 targetRPM=196 +10:58:10.418 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=125 applyCallbacks=196 beforeWriteSequence=125 writtenAgeMs=25.0332 beforeWriteAgeMs=25.0332 +10:58:10.418 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:10.418 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:12.446 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=165 +10:58:12.446 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161648 drift=0.311579 speed=0.0440748 vertical=-0.00217562 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +10:58:12.447 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511698,0.00175333,0.0247809> +10:58:12.447 SCRIPT : ERR POWERED MOTION: offset=<-0.311523,0.0161648,-0.00585938> velocity=<0.0439499,-0.00217562,0.00250313> angularLocal=<0.000393733,-0.0428488,-0.000908049> forward=<0.0656793,0.0799607,0.994632> right=<0.99733,-0.0371502,-0.0628709> +10:58:12.447 SCRIPT : ERR POWERED INPUT: pilotHooks=165 vehicleHooks=165 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.393161 targetRPM=196 +10:58:12.447 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=165 applyCallbacks=257 beforeWriteSequence=164 writtenAgeMs=11.084 beforeWriteAgeMs=23.5957 +10:58:12.448 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:12.448 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:14.469 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=203 +10:58:14.469 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193176 drift=0.404339 speed=0.0437453 vertical=-0.00180797 up=0.996136 groundContact=1 fuel=1938.39 engine=1 +10:58:14.469 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0730549,0.00494328,-0.0493008> +10:58:14.470 SCRIPT : ERR POWERED MOTION: offset=<-0.404297,0.0193176,-0.00585938> velocity=<0.0436763,-0.00180797,0.00166405> angularLocal=<0.000898773,-0.0437159,-0.00084704> forward=<0.0760103,0.0797413,0.993913> right=<0.996633,-0.0368133,-0.0732647> +10:58:14.470 SCRIPT : ERR POWERED INPUT: pilotHooks=203 vehicleHooks=203 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.21442 targetRPM=196 +10:58:14.470 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=203 applyCallbacks=318 beforeWriteSequence=203 writtenAgeMs=24.8438 beforeWriteAgeMs=12.9082 +10:58:14.470 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:14.470 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:16.491 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=240 +10:58:16.491 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204964 drift=0.496118 speed=0.0431209 vertical=0.00101001 up=0.996169 groundContact=1 fuel=1938.31 engine=1 +10:58:16.491 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0939245,0.00909876,0.0217017> +10:58:16.491 SCRIPT : ERR POWERED MOTION: offset=<-0.496094,0.0204964,-0.00488281> velocity=<0.0430595,0.00101001,0.00206852> angularLocal=<0.000570654,-0.0463743,-0.00104605> forward=<0.0844584,0.0794873,0.993252> right=<0.995984,-0.0364615,-0.0817729> +10:58:16.492 SCRIPT : ERR POWERED INPUT: pilotHooks=240 vehicleHooks=240 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.4623 targetRPM=196 +10:58:16.492 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=240 applyCallbacks=378 beforeWriteSequence=240 writtenAgeMs=47.4102 beforeWriteAgeMs=35.7363 +10:58:16.492 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:16.492 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:18.516 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=278 +10:58:18.516 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.012846 drift=0.573255 speed=0.0395794 vertical=0.00617368 up=0.99622 groundContact=1 fuel=1938.22 engine=1 +10:58:18.516 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0151359,0.00182717,-0.0534722> +10:58:18.517 SCRIPT : ERR POWERED MOTION: offset=<-0.573242,0.012846,-0.00390625> velocity=<0.0380509,0.00617368,-0.00897458> angularLocal=<0.000629658,-0.0462294,-0.000705976> forward=<0.09089,0.0789674,0.992725> right=<0.995439,-0.0362028,-0.0882588> +10:58:18.517 SCRIPT : ERR POWERED INPUT: pilotHooks=278 vehicleHooks=278 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.3011 targetRPM=196 +10:58:18.517 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=278 applyCallbacks=439 beforeWriteSequence=278 writtenAgeMs=24.4336 beforeWriteAgeMs=24.4336 +10:58:18.517 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:18.517 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:20.538 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=315 +10:58:20.538 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00274467 drift=0.637698 speed=0.0308624 vertical=0.00472534 up=0.996288 groundContact=1 fuel=1938.13 engine=1 +10:58:20.538 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19815,0.00267807,0.0243678> +10:58:20.538 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00274467,-0.00195312> velocity=<0.027563,0.00472534,-0.0130553> angularLocal=<5.3871e-05,0.055616,0.00129963> forward=<0.0998085,0.0781848,0.99193> right=<0.994609,-0.0360178,-0.0972391> +10:58:20.538 SCRIPT : ERR POWERED INPUT: pilotHooks=315 vehicleHooks=315 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.735752 rotorRPM=87.2558 targetRPM=196 +10:58:20.539 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=315 applyCallbacks=499 beforeWriteSequence=315 writtenAgeMs=46.4863 beforeWriteAgeMs=34.8711 +10:58:20.539 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.735752> writtenThrottle=0 beforeWriteThrottle=0 +10:58:20.539 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.867876 autohover=0 collectiveMode=3 +10:58:21.757 WORLD : UpdateEntities +10:58:21.757 WORLD : AfterPostSimulate +10:58:21.757 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:58:22.562 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=351 +10:58:22.562 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00617409 drift=0.702148 speed=0.0305866 vertical=0.00497292 up=0.996354 groundContact=1 fuel=1938.04 engine=1 +10:58:22.563 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.284155,-0.00909084,-0.0377324> +10:58:22.563 SCRIPT : ERR POWERED MOTION: offset=<-0.702148,-0.00617409,0> velocity=<0.0223403,0.00497292,-0.0202909> angularLocal=<0.000204815,-0.0455586,0.000112496> forward=<0.108018,0.0774502,0.991127> right=<0.993774,-0.0357877,-0.10551> +10:58:22.563 SCRIPT : ERR POWERED INPUT: pilotHooks=351 vehicleHooks=351 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.530756 rotorRPM=104.943 targetRPM=196 +10:58:22.563 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=351 applyCallbacks=560 beforeWriteSequence=351 writtenAgeMs=28.0273 beforeWriteAgeMs=28.0273 +10:58:22.564 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.530756> writtenThrottle=0 beforeWriteThrottle=0 +10:58:22.564 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.765378 autohover=0 collectiveMode=3 +10:58:24.596 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=387 +10:58:24.596 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0169811 drift=0.745261 speed=0.0348926 vertical=0.00641793 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +10:58:24.596 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.21755,-0.0052728,-0.0326416> +10:58:24.597 SCRIPT : ERR POWERED MOTION: offset=<-0.745117,-0.0169811,0.0146484> velocity=<0.0155825,0.00641793,-0.0305531> angularLocal=<0.000308062,-0.045739,-0.00017631> forward=<0.113626,0.0767039,0.990558> right=<0.993164,-0.0355771,-0.11117> +10:58:24.597 SCRIPT : ERR POWERED INPUT: pilotHooks=387 vehicleHooks=387 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.393965 rotorRPM=121.596 targetRPM=196 +10:58:24.597 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=387 applyCallbacks=621 beforeWriteSequence=387 writtenAgeMs=56.4883 beforeWriteAgeMs=25.4375 +10:58:24.597 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.393965> writtenThrottle=0 beforeWriteThrottle=0 +10:58:24.598 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696983 autohover=0 collectiveMode=3 +10:58:26.614 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +10:58:26.615 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0303383 drift=0.75793 speed=0.0523117 vertical=0.00832622 up=0.996474 groundContact=1 fuel=1937.86 engine=1 +10:58:26.615 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.128049,0.00413245,-1.07435> +10:58:26.615 SCRIPT : ERR POWERED MOTION: offset=<-0.75293,-0.0303383,0.0869141> velocity=<0.0113367,0.00832622,-0.0503851> angularLocal=<0.00347895,0.021747,0.000288832> forward=<0.114996,0.0760359,0.990452> right=<0.993011,-0.0354693,-0.11257> +10:58:26.616 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.292178 rotorRPM=137.753 targetRPM=196 +10:58:26.616 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=682 beforeWriteSequence=424 writtenAgeMs=38.8867 beforeWriteAgeMs=13.0312 +10:58:26.616 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.292178> writtenThrottle=0 beforeWriteThrottle=0 +10:58:26.616 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646822 autohover=0 collectiveMode=3 +10:58:28.641 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=462 +10:58:28.642 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0456715 drift=0.773093 speed=0.0679677 vertical=0.0085335 up=0.996536 groundContact=1 fuel=1937.77 engine=1 +10:58:28.642 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00531692,0.000905078,-0.0113229> +10:58:28.642 SCRIPT : ERR POWERED MOTION: offset=<-0.749023,-0.0456715,0.191406> velocity=<0.0138808,0.0085335,-0.0659857> angularLocal=<0.000517305,-0.00172975,-3.66582e-05> forward=<0.110933,0.075256,0.990974> right=<0.993464,-0.0353808,-0.108525> +10:58:28.642 SCRIPT : ERR POWERED INPUT: pilotHooks=462 vehicleHooks=462 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213789 rotorRPM=153.886 targetRPM=196 +10:58:28.642 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=462 applyCallbacks=742 beforeWriteSequence=461 writtenAgeMs=11.6641 beforeWriteAgeMs=35.7852 +10:58:28.643 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213789> writtenThrottle=0 beforeWriteThrottle=0 +10:58:28.643 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606894 autohover=0 collectiveMode=3 +10:58:30.690 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=499 +10:58:30.690 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.061121 drift=0.818803 speed=0.0335667 vertical=0.00814781 up=0.996599 groundContact=1 fuel=1937.68 engine=1 +10:58:30.691 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00629593,0.000757892,-0.00164039> +10:58:30.691 SCRIPT : ERR POWERED MOTION: offset=<-0.793457,-0.061121,0.202148> velocity=<0.0224209,0.00814781,-0.0236145> angularLocal=<0.000418069,-0.00037441,0.000178016> forward=<0.10962,0.0745164,0.991176> right=<0.99361,-0.035179,-0.107245> +10:58:30.691 SCRIPT : ERR POWERED INPUT: pilotHooks=499 vehicleHooks=499 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149404 rotorRPM=169.94 targetRPM=196 +10:58:30.692 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=499 applyCallbacks=803 beforeWriteSequence=498 writtenAgeMs=29.3281 beforeWriteAgeMs=44.8516 +10:58:30.692 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149404> writtenThrottle=0 beforeWriteThrottle=0 +10:58:30.692 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574702 autohover=0 collectiveMode=3 +10:58:31.706 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:58:32.237 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:58:32.237 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=9 matched=1 +10:58:32.739 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=533 +10:58:32.739 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0955486 drift=1.06389 speed=0.596082 vertical=0.00641879 up=0.99624 groundContact=1 fuel=1937.59 engine=1 +10:58:32.739 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.193865,0.136826,-0.588788> +10:58:32.739 SCRIPT : ERR POWERED MOTION: offset=<-0.953613,-0.0955486,0.47168> velocity=<0.223116,0.00641879,-0.552713> angularLocal=<-0.00917336,0.0158407,-0.00368248> forward=<0.110828,0.0798762,0.990625> right=<0.993535,-0.0335623,-0.108447> +10:58:32.739 SCRIPT : ERR POWERED INPUT: pilotHooks=533 vehicleHooks=533 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139037 rotorRPM=181.276 targetRPM=196 +10:58:32.740 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=533 applyCallbacks=865 beforeWriteSequence=533 writtenAgeMs=25.875 beforeWriteAgeMs=14.2031 +10:58:32.740 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139037> writtenThrottle=0 beforeWriteThrottle=0 +10:58:32.740 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +10:58:32.740 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:58:32.740 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=16 matched=1 +10:58:32.741 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:58:34.761 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=570 +10:58:34.761 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.12472 drift=3.8399 speed=2.35506 vertical=1.4382 up=0.999988 groundContact=0 fuel=1937.51 engine=1 +10:58:34.761 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0277591,0.268471,-0.0249267> +10:58:34.761 SCRIPT : ERR POWERED MOTION: offset=<-1.81152,-2.12472,3.38574> velocity=<0.456099,1.4382,-1.80828> angularLocal=<0.0823732,0.0313877,0.0214624> forward=<0.125049,0.00245661,0.992148> right=<0.992143,-0.00426966,-0.125038> +10:58:34.762 SCRIPT : ERR POWERED INPUT: pilotHooks=570 vehicleHooks=570 readback=1 collective=0.162073 cyclicF=0.0874759 cyclicR=-0.0454596 antiTorque=0.210267 rotorRPM=189.195 targetRPM=196 +10:58:34.762 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=570 applyCallbacks=925 beforeWriteSequence=569 writtenAgeMs=22.2227 beforeWriteAgeMs=35.1094 +10:58:34.762 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.161232 beforeWriteCollective=0.162073 writtenFRA=<0.0840982,-0.0448998,0.0362335> beforeWriteFRA=<0.0874759,-0.0454596,0.210267> writtenThrottle=0 beforeWriteThrottle=0 +10:58:34.762 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.162073 cyclicForward=0.0874759 cyclicAside=-0.0454596 tailCollective=0.605134 autohover=0 collectiveMode=3 +10:58:35.264 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=579 +10:58:35.265 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.84476 drift=4.84193 speed=2.34887 vertical=1.55664 up=0.999113 groundContact=0 fuel=1937.51 engine=1 +10:58:35.265 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0765914,0.203576,0.42552> +10:58:35.265 SCRIPT : ERR POWERED MOTION: offset=<-2.06006,-2.84476,4.38184> velocity=<0.428723,1.55664,-1.70595> angularLocal=<0.091197,0.0538512,0.021176> forward=<0.146361,-0.041539,0.988359> right=<0.989231,0.00690604,-0.1462> +10:58:35.265 SCRIPT : ERR POWERED INPUT: pilotHooks=579 vehicleHooks=579 readback=1 collective=0.15457 cyclicF=0.0500589 cyclicR=-0.0393378 antiTorque=0.21876 rotorRPM=191.158 targetRPM=196 +10:58:35.266 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=579 applyCallbacks=940 beforeWriteSequence=579 writtenAgeMs=62.2578 beforeWriteAgeMs=39.8672 +10:58:35.266 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.15457 beforeWriteCollective=0.15457 writtenFRA=<0.0500589,-0.0393378,0.0532002> beforeWriteFRA=<0.0500589,-0.0393378,0.21876> writtenThrottle=0 beforeWriteThrottle=0 +10:58:35.266 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.15457 cyclicForward=0.0500589 cyclicAside=-0.0393378 tailCollective=0.60938 autohover=0 collectiveMode=3 +10:58:35.778 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=589 +10:58:35.779 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.64175 drift=5.7714 speed=2.16465 vertical=1.64166 up=0.995955 groundContact=0 fuel=1937.46 engine=1 +10:58:35.779 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.101606,0.120921,0.900643> +10:58:35.779 SCRIPT : ERR POWERED MOTION: offset=<-2.30078,-3.64175,5.29297> velocity=<0.381248,1.64166,-1.35842> angularLocal=<0.0885794,0.0806968,0.0194578> forward=<0.180999,-0.087671,0.979568> right=<0.983477,0.0196846,-0.17996> +10:58:35.779 SCRIPT : ERR POWERED INPUT: pilotHooks=589 vehicleHooks=589 readback=1 collective=0.145521 cyclicF=-0.00244873 cyclicR=-0.0300013 antiTorque=0.227543 rotorRPM=193.187 targetRPM=196 +10:58:35.780 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=589 applyCallbacks=956 beforeWriteSequence=589 writtenAgeMs=14.8516 beforeWriteAgeMs=14.8516 +10:58:35.780 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.145521 beforeWriteCollective=0.145521 writtenFRA=<-0.00244873,-0.0300013,0.0737105> beforeWriteFRA=<-0.00244873,-0.0300013,0.227543> writtenThrottle=0 beforeWriteThrottle=0 +10:58:35.780 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.146349 cyclicForward=0.00338791 cyclicAside=-0.0311025 tailCollective=0.612732 autohover=0 collectiveMode=3 +10:58:36.279 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=598 +10:58:36.279 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.44673 drift=6.44606 speed=1.8839 vertical=1.6734 up=0.991357 groundContact=0 fuel=1937.46 engine=1 +10:58:36.279 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0976127,0.0158787,1.3075> +10:58:36.279 SCRIPT : ERR POWERED MOTION: offset=<-2.51416,-4.44673,5.93555> velocity=<0.330332,1.6734,-0.799798> angularLocal=<0.0742718,0.107318,0.0162753> forward=<0.227274,-0.126806,0.96554> right=<0.973823,0.0336418,-0.224805> +10:58:36.279 SCRIPT : ERR POWERED INPUT: pilotHooks=598 vehicleHooks=598 readback=1 collective=0.138792 cyclicF=-0.0530235 cyclicR=-0.0182608 antiTorque=0.23212 rotorRPM=195.15 targetRPM=196 +10:58:36.280 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=598 applyCallbacks=971 beforeWriteSequence=598 writtenAgeMs=30.6914 beforeWriteAgeMs=18.8906 +10:58:36.280 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.138792 beforeWriteCollective=0.138792 writtenFRA=<-0.0530235,-0.0182608,0.0882113> beforeWriteFRA=<-0.0530235,-0.0182608,0.23212> writtenThrottle=0 beforeWriteThrottle=0 +10:58:36.280 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.139479 cyclicForward=-0.0472082 cyclicAside=-0.0197885 tailCollective=0.615425 autohover=0 collectiveMode=3 +10:58:36.786 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=608 +10:58:36.786 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.29014 drift=6.8058 speed=1.66041 vertical=1.63495 up=0.986606 groundContact=0 fuel=1937.42 engine=1 +10:58:36.787 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0677973,-0.169902,1.59924> +10:58:36.787 SCRIPT : ERR POWERED MOTION: offset=<-2.71631,-5.29014,6.24023> velocity=<0.286953,1.63495,-0.0394346> angularLocal=<0.0478316,0.131717,0.0109286> forward=<0.287366,-0.155441,0.945124> right=<0.957817,0.0494724,-0.283088> +10:58:36.787 SCRIPT : ERR POWERED INPUT: pilotHooks=608 vehicleHooks=608 readback=1 collective=0.135715 cyclicF=-0.101375 cyclicR=-0.00220373 antiTorque=0.236172 rotorRPM=196 targetRPM=196 +10:58:36.787 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=608 applyCallbacks=986 beforeWriteSequence=607 writtenAgeMs=11.668 beforeWriteAgeMs=25.5977 +10:58:36.788 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.135764 beforeWriteCollective=0.135715 writtenFRA=<-0.106086,-0.000250808,0.0977655> beforeWriteFRA=<-0.101375,-0.00220373,0.236172> writtenThrottle=0 beforeWriteThrottle=0 +10:58:36.788 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.135715 cyclicForward=-0.101375 cyclicAside=-0.00220373 tailCollective=0.618086 autohover=0 collectiveMode=3 +10:58:37.286 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=617 +10:58:37.287 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.07109 drift=6.75294 speed=1.69137 vertical=1.47169 up=0.983987 groundContact=0 fuel=1937.42 engine=1 +10:58:37.287 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0291663,-0.498676,1.68318> +10:58:37.287 SCRIPT : ERR POWERED MOTION: offset=<-2.90186,-6.07109,6.09766> velocity=<0.263101,1.47169,0.79098> angularLocal=<0.0123263,0.146307,0.00332462> forward=<0.35386,-0.166202,0.920413> right=<0.935297,0.0644001,-0.347953> +10:58:37.287 SCRIPT : ERR POWERED INPUT: pilotHooks=617 vehicleHooks=617 readback=1 collective=0.119897 cyclicF=-0.14483 cyclicR=0.0208855 antiTorque=0.2317 rotorRPM=196 targetRPM=196 +10:58:37.288 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=617 applyCallbacks=1001 beforeWriteSequence=617 writtenAgeMs=30.1914 beforeWriteAgeMs=13.2773 +10:58:37.288 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.119897 beforeWriteCollective=0.119897 writtenFRA=<-0.14483,0.0208855,0.09985> beforeWriteFRA=<-0.14483,0.0208855,0.2317> writtenThrottle=0 beforeWriteThrottle=0 +10:58:37.288 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.122218 cyclicForward=-0.140498 cyclicAside=0.017932 tailCollective=0.615928 autohover=0 collectiveMode=3 +10:58:37.796 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=627 +10:58:37.796 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.74708 drift=6.29486 speed=2.01519 vertical=1.17601 up=0.984812 groundContact=0 fuel=1937.37 engine=1 +10:58:37.797 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00561655,-0.60261,1.6006> +10:58:37.797 SCRIPT : ERR POWERED MOTION: offset=<-3.09326,-6.74708,5.48242> velocity=<0.260397,1.17601,1.6156> angularLocal=<-0.0283605,0.146794,-0.00646159> forward=<0.423076,-0.156213,0.892527> right=<0.90609,0.0757862,-0.416241> +10:58:37.797 SCRIPT : ERR POWERED INPUT: pilotHooks=627 vehicleHooks=627 readback=1 collective=0.102632 cyclicF=-0.15 cyclicR=0.0442431 antiTorque=0.216349 rotorRPM=196 targetRPM=196 +10:58:37.797 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=627 applyCallbacks=1016 beforeWriteSequence=626 writtenAgeMs=13.3203 beforeWriteAgeMs=26.5117 +10:58:37.797 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.100672 beforeWriteCollective=0.102632 writtenFRA=<-0.15,0.0461454,0.0940656> beforeWriteFRA=<-0.15,0.0442431,0.216349> writtenThrottle=0 beforeWriteThrottle=0 +10:58:37.798 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.102632 cyclicForward=-0.15 cyclicAside=0.0442431 tailCollective=0.608175 autohover=0 collectiveMode=3 +10:58:38.301 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=636 +10:58:38.301 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.27867 drift=5.50774 speed=2.55987 vertical=0.894319 up=0.988833 groundContact=0 fuel=1937.37 engine=1 +10:58:38.302 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.00978291,-0.456873,1.35411> +10:58:38.302 SCRIPT : ERR POWERED MOTION: offset=<-3.2915,-7.27867,4.41602> velocity=<0.261374,0.894319,2.38429> angularLocal=<-0.0675227,0.13373,-0.0179831> forward=<0.486466,-0.125899,0.864581> right=<0.873658,0.079739,-0.479962> +10:58:38.302 SCRIPT : ERR POWERED INPUT: pilotHooks=636 vehicleHooks=636 readback=1 collective=0.0869463 cyclicF=-0.15 cyclicR=0.0671313 antiTorque=0.195693 rotorRPM=196 targetRPM=196 +10:58:38.302 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=636 applyCallbacks=1031 beforeWriteSequence=635 writtenAgeMs=21.9219 beforeWriteAgeMs=36.957 +10:58:38.302 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0851846 beforeWriteCollective=0.0869463 writtenFRA=<-0.15,0.0693234,0.0809917> beforeWriteFRA=<-0.15,0.0671313,0.195693> writtenThrottle=0 beforeWriteThrottle=0 +10:58:38.303 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0869463 cyclicForward=-0.15 cyclicAside=0.0671313 tailCollective=0.597847 autohover=0 collectiveMode=3 +10:58:38.812 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=645 +10:58:38.813 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.70517 drift=4.57444 speed=3.05025 vertical=0.700506 up=0.994205 groundContact=0 fuel=1937.33 engine=1 +10:58:38.813 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0803974,-0.323718,0.931449> +10:58:38.813 SCRIPT : ERR POWERED MOTION: offset=<-3.49268,-7.70517,2.9541> velocity=<0.24081,0.700506,2.95894> angularLocal=<-0.100007,0.110523,-0.0291229> forward=<0.539408,-0.077871,0.838436> right=<0.841795,0.0741143,-0.534686> +10:58:38.813 SCRIPT : ERR POWERED INPUT: pilotHooks=645 vehicleHooks=645 readback=1 collective=0.0674932 cyclicF=-0.15 cyclicR=0.0871845 antiTorque=0.164165 rotorRPM=196 targetRPM=196 +10:58:38.814 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=645 applyCallbacks=1047 beforeWriteSequence=645 writtenAgeMs=47.8984 beforeWriteAgeMs=12.3359 +10:58:38.814 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0674932 beforeWriteCollective=0.0674932 writtenFRA=<-0.15,0.0871845,0.0615023> beforeWriteFRA=<-0.15,0.0871845,0.164165> writtenThrottle=0 beforeWriteThrottle=0 +10:58:38.814 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0674932 cyclicForward=-0.15 cyclicAside=0.0871845 tailCollective=0.582683 autohover=0 collectiveMode=3 +10:58:39.319 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=655 +10:58:39.319 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.06414 drift=3.8729 speed=3.34595 vertical=0.583448 up=0.9981 groundContact=0 fuel=1937.33 engine=1 +10:58:39.320 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.223294,-0.162978,0.347357> +10:58:39.320 SCRIPT : ERR POWERED MOTION: offset=<-3.66895,-8.06414,1.24023> velocity=<0.164067,0.583448,3.2906> angularLocal=<-0.124607,0.078685,-0.0387218> forward=<0.577201,-0.0171668,0.816421> right=<0.815697,0.0591803,-0.575445> +10:58:39.320 SCRIPT : ERR POWERED INPUT: pilotHooks=655 vehicleHooks=655 readback=1 collective=0.0429379 cyclicF=-0.120649 cyclicR=0.0974911 antiTorque=0.125685 rotorRPM=196 targetRPM=196 +10:58:39.321 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=655 applyCallbacks=1062 beforeWriteSequence=655 writtenAgeMs=14.1055 beforeWriteAgeMs=14.1055 +10:58:39.321 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0429379 beforeWriteCollective=0.0429379 writtenFRA=<-0.120649,0.0974911,0.0347094> beforeWriteFRA=<-0.120649,0.0974911,0.125685> writtenThrottle=0 beforeWriteThrottle=0 +10:58:39.321 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0455788 cyclicForward=-0.125198 cyclicAside=0.0970755 tailCollective=0.56488 autohover=0 collectiveMode=3 +10:58:39.819 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=663 +10:58:39.820 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.38875 drift=3.82295 speed=3.33688 vertical=0.507004 up=0.998064 groundContact=0 fuel=1937.28 engine=1 +10:58:39.820 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.408601,-0.152267,-0.30005> +10:58:39.820 SCRIPT : ERR POWERED MOTION: offset=<-3.78076,-8.38875,-0.566406> velocity=<0.0058185,0.507004,3.29813> angularLocal=<-0.132731,0.0430589,-0.0446298> forward=<0.598383,0.0494468,0.799683> right=<0.798972,0.0377208,-0.600184> +10:58:39.820 SCRIPT : ERR POWERED INPUT: pilotHooks=663 vehicleHooks=663 readback=1 collective=0.0181988 cyclicF=-0.0758978 cyclicR=0.0966842 antiTorque=0.0867461 rotorRPM=196 targetRPM=196 +10:58:39.821 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=663 applyCallbacks=1077 beforeWriteSequence=663 writtenAgeMs=60.6406 beforeWriteAgeMs=12.9688 +10:58:39.821 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0181988 beforeWriteCollective=0.0181988 writtenFRA=<-0.0758978,0.0966842,0.0103734> beforeWriteFRA=<-0.0758978,0.0966842,0.0867461> writtenThrottle=0 beforeWriteThrottle=0 +10:58:39.821 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0181988 cyclicForward=-0.0758978 cyclicAside=0.0966842 tailCollective=0.544622 autohover=0 collectiveMode=3 +10:58:40.320 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=672 +10:58:40.320 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.68249 drift=4.41692 speed=3.02163 vertical=0.427975 up=0.993308 groundContact=0 fuel=1937.28 engine=1 +10:58:40.320 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.616981,-0.0496352,-0.949459> +10:58:40.320 SCRIPT : ERR POWERED MOTION: offset=<-3.77393,-8.68249,-2.29492> velocity=<-0.250244,0.427975,2.98069> angularLocal=<-0.125325,0.00529214,-0.0462603> forward=<0.603181,0.114645,0.789322> right=<0.793501,0.0139978,-0.608408> +10:58:40.321 SCRIPT : ERR POWERED INPUT: pilotHooks=672 vehicleHooks=672 readback=1 collective=0 cyclicF=-0.012678 cyclicR=0.0868232 antiTorque=0.0495065 rotorRPM=196 targetRPM=196 +10:58:40.321 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=672 applyCallbacks=1092 beforeWriteSequence=672 writtenAgeMs=49.7734 beforeWriteAgeMs=12.6797 +10:58:40.321 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.012678,0.0868232,-0.0171602> beforeWriteFRA=<-0.012678,0.0868232,0.0495065> writtenThrottle=0 beforeWriteThrottle=0 +10:58:40.321 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.012678 cyclicAside=0.0868232 tailCollective=0.524753 autohover=0 collectiveMode=3 +10:58:40.824 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=681 +10:58:40.824 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.96462 drift=5.21443 speed=2.46433 vertical=0.429922 up=0.984989 groundContact=0 fuel=1937.24 engine=1 +10:58:40.824 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.798529,-0.0103658,-1.536> +10:58:40.825 SCRIPT : ERR POWERED MOTION: offset=<-3.58545,-8.96462,-3.78613> velocity=<-0.608944,0.429922,2.34889> angularLocal=<-0.104356,-0.0304224,-0.0439122> forward=<0.592345,0.172447,0.787013> right=<0.799759,-0.0076023,-0.600273> +10:58:40.825 SCRIPT : ERR POWERED INPUT: pilotHooks=681 vehicleHooks=681 readback=1 collective=0 cyclicF=0.056258 cyclicR=0.0713467 antiTorque=0.0265338 rotorRPM=196 targetRPM=196 +10:58:40.825 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=681 applyCallbacks=1107 beforeWriteSequence=681 writtenAgeMs=49.7539 beforeWriteAgeMs=25.2969 +10:58:40.825 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.056258,0.0713467,-0.0401329> beforeWriteFRA=<0.056258,0.0713467,0.0265338> writtenThrottle=0 beforeWriteThrottle=0 +10:58:40.825 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.056258 cyclicAside=0.0713467 tailCollective=0.513267 autohover=0 collectiveMode=3 +10:58:42.839 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=719 +10:58:42.840 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.34774 drift=4.67838 speed=2.92926 vertical=-0.289553 up=0.972756 groundContact=0 fuel=1937.15 engine=1 +10:58:42.840 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.604334,-0.451886,-2.15162> +10:58:42.840 SCRIPT : ERR POWERED MOTION: offset=<-0.434082,-9.34774,-4.6582> velocity=<-2.25791,-0.289553,-1.84351> angularLocal=<0.0534739,-0.0916391,-0.0225243> forward=<0.455204,0.229096,0.86041> right=<0.887238,-0.0355042,-0.459944> +10:58:42.840 SCRIPT : ERR POWERED INPUT: pilotHooks=719 vehicleHooks=719 readback=1 collective=0 cyclicF=0.15 cyclicR=0.0329074 antiTorque=0.00888454 rotorRPM=196 targetRPM=196 +10:58:42.841 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=719 applyCallbacks=1167 beforeWriteSequence=719 writtenAgeMs=34.7188 beforeWriteAgeMs=34.7188 +10:58:42.841 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.15,0.0329074,-0.0577822> beforeWriteFRA=<0.15,0.0329074,0.00888454> writtenThrottle=0 beforeWriteThrottle=0 +10:58:42.841 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.15 cyclicAside=0.0329074 tailCollective=0.504442 autohover=0 collectiveMode=3 +10:58:44.861 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=757 +10:58:44.861 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.51132 drift=5.8503 speed=5.28677 vertical=0.0228449 up=0.998563 groundContact=0 fuel=1937.06 engine=1 +10:58:44.861 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.5269,0.507093,-0.293426> +10:58:44.861 SCRIPT : ERR POWERED MOTION: offset=<5.01318,-8.51132,3.01562> velocity=<-2.41027,0.0228449,-4.70532> angularLocal=<0.150753,0.0150363,-0.0107281> forward=<0.37006,0.0102441,0.928951> right=<0.927913,-0.0526081,-0.369066> +10:58:44.861 SCRIPT : ERR POWERED INPUT: pilotHooks=757 vehicleHooks=757 readback=1 collective=0.00609747 cyclicF=0.15 cyclicR=0.00344682 antiTorque=0.105885 rotorRPM=196 targetRPM=196 +10:58:44.862 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=757 applyCallbacks=1228 beforeWriteSequence=757 writtenAgeMs=35.0508 beforeWriteAgeMs=12.5469 +10:58:44.862 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.00609747 beforeWriteCollective=0.00609747 writtenFRA=<0.15,0.00344682,0.0353014> beforeWriteFRA=<0.15,0.00344682,0.105885> writtenThrottle=0 beforeWriteThrottle=0 +10:58:44.862 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.00734353 cyclicForward=0.15 cyclicAside=0.0051688 tailCollective=0.551436 autohover=0 collectiveMode=3 +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/error.log.txt b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/error.log.txt new file mode 100644 index 0000000..758f3ea --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09\error.log started at 2026-09-19 10:57:10 (2026-09-19 08:57:10 UTC) + +10:57:10.815 INIT : Workbench startup +10:57:10.815 INIT : Workbench Init Engine +10:57:10.815 RESOURCES : ResourceDB: full scan +10:57:10.815 RESOURCES : processing files... +10:57:10.815 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +10:57:10.815 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +10:57:10.815 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +10:57:14.062 INIT : Workbench Create Game +10:57:14.062 SCRIPT : Compiling Game scripts +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:57:14.218 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.331 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:57:14.363 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:57:14.502 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:57:14.567 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:57:14.638 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.673 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:57:23.353 WORLD : CreateEntities +10:57:23.353 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:57:23.353 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:57:23.353 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:57:38.658 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +10:57:43.387 WORLD : Game::LoadEntities +10:57:43.387 WORLD : CreateEntities +10:57:43.387 WORLD : CreateEntities +10:57:43.387 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +10:57:43.387 ENTITY : CreateComponent 'ScriptedRadioComponent' +10:57:43.387 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +10:57:44.809 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +10:57:44.809 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +10:57:44.809 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +10:57:44.809 ENTITY : CreateComponent 'Hierarchy' +10:57:44.809 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +10:57:44.814 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +10:57:44.814 ENTITY : CreateComponent 'Hierarchy' +10:57:44.814 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +10:57:44.818 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +10:57:44.818 ENTITY : CreateComponent 'Hierarchy' +10:57:44.818 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +10:57:44.819 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +10:57:44.819 ENTITY : CreateComponent 'Hierarchy' +10:57:44.819 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +10:57:44.819 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +10:57:44.819 ENTITY : CreateComponent 'Hierarchy' +10:57:44.819 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +10:57:51.661 WORLD : InitEntities 'world' +10:57:51.661 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +10:57:51.661 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:57:52.247 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.247 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +10:57:52.247 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.247 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! +10:57:52.248 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! +10:57:52.249 SCRIPT (W): Can't open config file "" +10:57:52.255 WORLD : InitEntities 'world' +10:57:52.255 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +10:57:52.255 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +10:57:52.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:57:52.256 SCRIPT (W): Slot_Chat Has no Content! +10:57:52.256 SCRIPT (W): Slot_VON Has no Content! +10:57:52.256 SCRIPT (W): Slot_AvailableActions Has no Content! +10:57:52.256 SCRIPT (W): Slot_Vehicle Has no Content! +10:57:52.256 SCRIPT (W): Slot_GameVersion Has no Content! +10:57:52.256 SCRIPT (W): Slot_Notifications Has no Content! +10:57:52.256 SCRIPT (W): Slot_Hints Has no Content! +10:57:52.268 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:57:52.268 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +10:57:52.268 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +10:57:52.269 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. +10:57:52.269 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. +10:57:52.273 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:57:52.506 WORLD : UpdateEntities +10:57:52.506 WORLD : PostFrame +10:57:52.506 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +10:57:52.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:57:52.552 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:57:52.552 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +10:57:52.552 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +10:57:52.552 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +10:57:54.953 WORLD : UpdateEntities +10:57:54.954 WORLD : AfterPostSimulate +10:57:54.954 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:58:21.757 WORLD : UpdateEntities +10:58:21.757 WORLD : AfterPostSimulate +10:58:21.757 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/headless-launch.log.txt new file mode 100644 index 0000000..a3856fc --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555925c3fa0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555925c3fa0 +[Gamescope WSI] Destroyed swapchain: 0x5555925c3fa0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555925c3fa0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555925c3fa0 +[Gamescope WSI] Destroyed swapchain: 0x5555925c3fa0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555925c3fa0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source-sha256.json new file mode 100644 index 0000000..2cf3fd5 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source.json b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source.json new file mode 100644 index 0000000..59120f6 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "931ba2da-a40d-4bce-90f3-e80ba141327b", + "captured_unix": 1789808227.3741798, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692" +} diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/report.json b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/report.json new file mode 100644 index 0000000..0e83035 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-105709-flight-damping-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 70, + "script_or_runtime_failures": [ + "10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/runner.json.txt new file mode 100644 index 0000000..b2e8368 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789808326.249435, + "console_sha256": "a763607226ff547835760487e06a10c7f004c05355485df4f98bf06b2a37409d", + "end_source_sha256": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "931ba2da-a40d-4bce-90f3-e80ba141327b", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692", + "started_unix": 1789808227.3742554, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_10-57-09", + "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/native-2026-09-19-105709-flight-damping-refusal/script.log.txt b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/script.log.txt new file mode 100644 index 0000000..72f4d6e --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/script.log.txt @@ -0,0 +1,559 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_10-57-09\script.log started at 2026-09-19 10:57:11 (2026-09-19 08:57:11 UTC) + +10:57:11.961 SCRIPT : SCRIPT : Initializing scripts +10:57:11.961 SCRIPT : SCRIPT : ScriptProjectManager init +10:57:12.885 SCRIPT : SCRIPT : Compiling GameLib scripts +10:57:12.943 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +10:57:12.944 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +10:57:12.944 SCRIPT : SCRIPT : Compiling Game scripts +10:57:14.062 SCRIPT : Compiling Game scripts +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +10:57:14.062 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +10:57:14.218 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.331 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +10:57:14.363 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +10:57:14.469 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +10:57:14.502 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +10:57:14.565 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +10:57:14.567 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.610 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +10:57:14.611 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +10:57:14.638 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +10:57:14.673 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +10:57:14.964 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +10:57:14.971 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 9c8acf09 +10:57:15.972 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:57:15.972 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:57:35.213 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +10:57:38.655 SCRIPT : Unable to register a script command due keyword duplicity: ban +10:57:38.655 SCRIPT : Unable to register a script command due keyword duplicity: kick +10:57:51.661 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +10:57:51.693 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +10:57:52.247 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! +10:57:52.248 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! +10:57:52.249 SCRIPT (W): Can't open config file "" +10:57:52.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +10:57:52.256 SCRIPT (W): Slot_Chat Has no Content! +10:57:52.256 SCRIPT (W): Slot_VON Has no Content! +10:57:52.256 SCRIPT (W): Slot_AvailableActions Has no Content! +10:57:52.256 SCRIPT (W): Slot_Vehicle Has no Content! +10:57:52.256 SCRIPT (W): Slot_GameVersion Has no Content! +10:57:52.256 SCRIPT (W): Slot_Notifications Has no Content! +10:57:52.256 SCRIPT (W): Slot_Hints Has no Content! +10:57:52.269 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. +10:57:52.269 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. +10:57:52.273 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +10:57:52.328 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +10:57:52.342 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +10:57:52.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +10:57:54.023 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +10:57:54.045 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +10:57:54.046 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +10:57:54.074 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +10:57:54.076 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +10:57:54.126 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +10:57:54.126 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +10:57:54.134 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +10:57:54.185 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +10:57:54.185 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +10:57:54.188 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +10:57:54.188 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +10:57:54.191 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +10:57:54.193 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +10:57:54.193 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +10:57:54.194 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +10:57:54.194 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +10:57:54.194 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +10:57:54.194 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +10:57:54.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +10:57:54.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +10:57:54.195 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.195 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +10:57:54.195 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +10:57:54.196 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.196 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +10:57:54.196 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +10:57:54.196 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.196 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:54.197 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +10:57:55.027 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.028 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5282,7499.7> up=0.995677 +10:57:55.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588 +10:57:55.283 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:55.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6129,7501.97> +10:57:55.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3129,7501.97> terrainY=63.3164 tireTerrainGap=-0.00355148 +10:57:55.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6129,7501.97> radius=0.3 bottom=<7012.07,63.3129,7501.97> fraction=0.438655 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00349426 +10:57:55.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6005,7497.71> +10:57:55.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1505,7497.71> terrainY=64.1556 tireTerrainGap=-0.00514221 +10:57:55.284 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6005,7497.71> radius=0.45 bottom=<7009.88,64.1505,7497.71> fraction=0.430976 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00518036 +10:57:55.284 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2626,7497.74> +10:57:55.284 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8126,7497.74> terrainY=63.8179 tireTerrainGap=-0.00529099 +10:57:55.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2626,7497.74> radius=0.45 bottom=<7014.42,63.8126,7497.74> fraction=0.430278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00533676 +10:57:55.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:55.539 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +10:57:56.049 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.050 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.366 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5349,7499.71> up=0.994337 +10:57:56.366 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +10:57:56.366 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:56.367 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.619,7501.99> +10:57:56.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.319,7501.99> terrainY=63.3145 tireTerrainGap=0.00450134 +10:57:56.367 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.619,7501.99> radius=0.3 bottom=<7012.07,63.319,7501.99> fraction=0.475336 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00457382 +10:57:56.367 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6022,7497.71> +10:57:56.367 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1522,7497.71> terrainY=64.149 tireTerrainGap=0.00312805 +10:57:56.367 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6022,7497.71> radius=0.45 bottom=<7009.93,64.1522,7497.71> fraction=0.468873 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00315094 +10:57:56.368 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.265,7497.78> +10:57:56.368 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.815,7497.78> terrainY=63.8155 tireTerrainGap=-0.000499725 +10:57:56.368 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.265,7497.78> radius=0.45 bottom=<7014.47,63.815,7497.78> fraction=0.452222 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000511169 +10:57:56.368 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:56.368 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +10:57:56.369 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.866 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:56.867 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:57.377 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5311,7499.74> up=0.994218 +10:57:57.377 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0403679 angularSpeed=0.0725902 +10:57:57.377 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:57.377 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6139,7502.01> +10:57:57.377 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3139,7502.01> terrainY=63.3115 tireTerrainGap=0.00246811 +10:57:57.378 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6139,7502.01> radius=0.3 bottom=<7012.07,63.3139,7502.01> fraction=0.465776 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00247192 +10:57:57.378 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5951,7497.72> +10:57:57.378 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1451,7497.72> terrainY=64.1428 tireTerrainGap=0.00231171 +10:57:57.378 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5951,7497.72> radius=0.45 bottom=<7009.97,64.1451,7497.72> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +10:57:57.378 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.83> +10:57:57.379 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.83> terrainY=63.8127 tireTerrainGap=-0.00236893 +10:57:57.379 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.83> radius=0.45 bottom=<7014.51,63.8103,7497.83> fraction=0.443766 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00237274 +10:57:57.379 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:57.379 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.380 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.876 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:57.876 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:57.877 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:57.877 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +10:57:58.383 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:57:58.383 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:57:58.383 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:58.384 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6126,7502.02> +10:57:58.384 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3126,7502.02> terrainY=63.3109 tireTerrainGap=0.00170135 +10:57:58.384 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6126,7502.02> radius=0.3 bottom=<7012.08,63.3126,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:57:58.384 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:57:58.384 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00256348 +10:57:58.385 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:57:58.385 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:57:58.385 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00187302 +10:57:58.385 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:57:58.385 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.386 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.894 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:58.895 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.396 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144 +10:57:59.397 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +10:57:59.397 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +10:57:59.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6126,7502.02> +10:57:59.397 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3126,7502.02> terrainY=63.3109 tireTerrainGap=0.00170135 +10:57:59.397 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6126,7502.02> radius=0.3 bottom=<7012.08,63.3126,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +10:57:59.397 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73> +10:57:59.398 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00256348 +10:57:59.398 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059 +10:57:59.398 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84> +10:57:59.398 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00187302 +10:57:59.398 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +10:57:59.398 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +10:57:59.399 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.399 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +10:57:59.400 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +10:57:59.400 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +10:57:59.401 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +10:57:59.401 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +10:57:59.401 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +10:57:59.402 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +10:57:59.402 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +10:57:59.402 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +10:57:59.544 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +10:57:59.585 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +10:57:59.818 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +10:57:59.819 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.820 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.820 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:57:59.820 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +10:57:59.821 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +10:57:59.821 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +10:57:59.822 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:57:59.822 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +10:57:59.822 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.823 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +10:57:59.823 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +10:57:59.823 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +10:57:59.824 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +10:57:59.824 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +10:57:59.825 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +10:57:59.825 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +10:57:59.825 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +10:57:59.826 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +10:57:59.826 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +10:57:59.826 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +10:57:59.844 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +10:57:59.845 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +10:57:59.846 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +10:57:59.847 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +10:57:59.849 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +10:57:59.850 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +10:57:59.850 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +10:58:00.323 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +10:58:00.323 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +10:58:00.331 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +10:58:00.332 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +10:58:00.821 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +10:58:00.822 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +10:58:00.822 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +10:58:00.822 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +10:58:00.822 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +10:58:00.841 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +10:58:00.841 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +10:58:01.323 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28998.3 +10:58:01.324 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:58:01.324 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082933CA8> activeSeat=PilotCompartmentSlot<0x0000000082933CA8> group=<0x00000001B9F4EF90> SCR_AIGroup actualGroup=<0x00000001B9F4EF90> SCR_AIGroup +10:58:01.325 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:58:01.325 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:58:01.325 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +10:58:01.325 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:58:03.346 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10022.8 remainingMs=26975.5 +10:58:03.347 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +10:58:03.347 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397778 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA48B0F0> @"ENTITY:4611686018427390741" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397778 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082933CA8> activeSeat=PilotCompartmentSlot<0x0000000082933CA8> group=<0x00000001B9F4EF90> SCR_AIGroup actualGroup=<0x00000001B9F4EF90> SCR_AIGroup +10:58:03.347 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +10:58:03.348 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +10:58:03.348 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996331 entityOrigin=<4801.01,27.5743,11487.4> +10:58:03.348 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +10:58:03.853 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +10:58:03.889 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0461188 input=1 simulation=1 +10:58:03.938 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0491118 input=1 simulation=1 +10:58:03.990 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0524682 input=1 simulation=1 +10:58:04.041 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.050569 input=1 simulation=1 +10:58:04.361 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +10:58:04.361 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0132961 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996204 groundContact=1 fuel=1938.75 engine=0 +10:58:04.361 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +10:58:04.361 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0132961,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0277555,0.0781884,0.996552> right=<0.998959,-0.0382646,-0.0248203> +10:58:04.362 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:58:04.362 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=10 writtenAgeMs=12.9141 beforeWriteAgeMs=12.9141 +10:58:04.362 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:58:04.362 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:58:04.362 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +10:58:04.363 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +10:58:04.363 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4901,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7787 +10:58:04.363 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7451,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +10:58:04.364 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6665 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.100662 initialHeight=-0.224243 +10:58:04.364 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +10:58:04.364 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +10:58:06.379 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +10:58:06.380 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00550842 drift=0.0379134 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +10:58:06.380 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +10:58:06.380 SCRIPT : ERR POWERED MOTION: offset=<-0.0375977,0.00550842,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328704,0.0800933,0.996245> right=<0.998831,-0.0379771,-0.0299026> +10:58:06.380 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +10:58:06.380 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=75 beforeWriteSequence=48 writtenAgeMs=29.9668 beforeWriteAgeMs=29.9668 +10:58:06.381 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +10:58:06.381 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +10:58:08.402 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=87 +10:58:08.402 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00991249 drift=0.129039 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +10:58:08.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109307,-0.0708191> +10:58:08.402 SCRIPT : ERR POWERED MOTION: offset=<-0.128906,0.00991249,-0.00585938> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204044,-0.0427907,-0.000639235> forward=<0.0433787,0.0803369,0.995823> right=<0.998471,-0.0376731,-0.0404548> +10:58:08.402 SCRIPT : ERR POWERED INPUT: pilotHooks=87 vehicleHooks=87 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000330322 targetRPM=196 +10:58:08.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=87 applyCallbacks=136 beforeWriteSequence=86 writtenAgeMs=9.89453 beforeWriteAgeMs=21.9971 +10:58:08.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:08.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:10.417 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=125 +10:58:10.417 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0130291 drift=0.220293 speed=0.0438123 vertical=-0.00226769 up=0.996079 groundContact=1 fuel=1938.62 engine=1 +10:58:10.417 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494648,0.00328747,0.0203781> +10:58:10.417 SCRIPT : ERR POWERED MOTION: offset=<-0.220215,0.0130291,-0.00585938> velocity=<0.0436935,-0.00226769,0.00229078> angularLocal=<-1.09793e-05,-0.0428091,-0.000768756> forward=<0.0545381,0.0801713,0.995288> right=<0.997964,-0.0373947,-0.0516726> +10:58:10.417 SCRIPT : ERR POWERED INPUT: pilotHooks=125 vehicleHooks=125 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0239029 targetRPM=196 +10:58:10.418 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=125 applyCallbacks=196 beforeWriteSequence=125 writtenAgeMs=25.0332 beforeWriteAgeMs=25.0332 +10:58:10.418 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:10.418 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:12.446 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=165 +10:58:12.446 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0161648 drift=0.311579 speed=0.0440748 vertical=-0.00217562 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +10:58:12.447 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511698,0.00175333,0.0247809> +10:58:12.447 SCRIPT : ERR POWERED MOTION: offset=<-0.311523,0.0161648,-0.00585938> velocity=<0.0439499,-0.00217562,0.00250313> angularLocal=<0.000393733,-0.0428488,-0.000908049> forward=<0.0656793,0.0799607,0.994632> right=<0.99733,-0.0371502,-0.0628709> +10:58:12.447 SCRIPT : ERR POWERED INPUT: pilotHooks=165 vehicleHooks=165 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.393161 targetRPM=196 +10:58:12.447 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=165 applyCallbacks=257 beforeWriteSequence=164 writtenAgeMs=11.084 beforeWriteAgeMs=23.5957 +10:58:12.448 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:12.448 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:14.469 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=203 +10:58:14.469 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0193176 drift=0.404339 speed=0.0437453 vertical=-0.00180797 up=0.996136 groundContact=1 fuel=1938.39 engine=1 +10:58:14.469 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0730549,0.00494328,-0.0493008> +10:58:14.470 SCRIPT : ERR POWERED MOTION: offset=<-0.404297,0.0193176,-0.00585938> velocity=<0.0436763,-0.00180797,0.00166405> angularLocal=<0.000898773,-0.0437159,-0.00084704> forward=<0.0760103,0.0797413,0.993913> right=<0.996633,-0.0368133,-0.0732647> +10:58:14.470 SCRIPT : ERR POWERED INPUT: pilotHooks=203 vehicleHooks=203 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.21442 targetRPM=196 +10:58:14.470 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=203 applyCallbacks=318 beforeWriteSequence=203 writtenAgeMs=24.8438 beforeWriteAgeMs=12.9082 +10:58:14.470 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:14.470 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:16.491 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=240 +10:58:16.491 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0204964 drift=0.496118 speed=0.0431209 vertical=0.00101001 up=0.996169 groundContact=1 fuel=1938.31 engine=1 +10:58:16.491 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0939245,0.00909876,0.0217017> +10:58:16.491 SCRIPT : ERR POWERED MOTION: offset=<-0.496094,0.0204964,-0.00488281> velocity=<0.0430595,0.00101001,0.00206852> angularLocal=<0.000570654,-0.0463743,-0.00104605> forward=<0.0844584,0.0794873,0.993252> right=<0.995984,-0.0364615,-0.0817729> +10:58:16.492 SCRIPT : ERR POWERED INPUT: pilotHooks=240 vehicleHooks=240 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.4623 targetRPM=196 +10:58:16.492 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=240 applyCallbacks=378 beforeWriteSequence=240 writtenAgeMs=47.4102 beforeWriteAgeMs=35.7363 +10:58:16.492 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:16.492 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:18.516 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=278 +10:58:18.516 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.012846 drift=0.573255 speed=0.0395794 vertical=0.00617368 up=0.99622 groundContact=1 fuel=1938.22 engine=1 +10:58:18.516 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0151359,0.00182717,-0.0534722> +10:58:18.517 SCRIPT : ERR POWERED MOTION: offset=<-0.573242,0.012846,-0.00390625> velocity=<0.0380509,0.00617368,-0.00897458> angularLocal=<0.000629658,-0.0462294,-0.000705976> forward=<0.09089,0.0789674,0.992725> right=<0.995439,-0.0362028,-0.0882588> +10:58:18.517 SCRIPT : ERR POWERED INPUT: pilotHooks=278 vehicleHooks=278 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=62.3011 targetRPM=196 +10:58:18.517 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=278 applyCallbacks=439 beforeWriteSequence=278 writtenAgeMs=24.4336 beforeWriteAgeMs=24.4336 +10:58:18.517 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +10:58:18.517 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +10:58:20.538 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=315 +10:58:20.538 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00274467 drift=0.637698 speed=0.0308624 vertical=0.00472534 up=0.996288 groundContact=1 fuel=1938.13 engine=1 +10:58:20.538 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19815,0.00267807,0.0243678> +10:58:20.538 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00274467,-0.00195312> velocity=<0.027563,0.00472534,-0.0130553> angularLocal=<5.3871e-05,0.055616,0.00129963> forward=<0.0998085,0.0781848,0.99193> right=<0.994609,-0.0360178,-0.0972391> +10:58:20.538 SCRIPT : ERR POWERED INPUT: pilotHooks=315 vehicleHooks=315 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.735752 rotorRPM=87.2558 targetRPM=196 +10:58:20.539 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=315 applyCallbacks=499 beforeWriteSequence=315 writtenAgeMs=46.4863 beforeWriteAgeMs=34.8711 +10:58:20.539 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.735752> writtenThrottle=0 beforeWriteThrottle=0 +10:58:20.539 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.867876 autohover=0 collectiveMode=3 +10:58:22.562 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=351 +10:58:22.562 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00617409 drift=0.702148 speed=0.0305866 vertical=0.00497292 up=0.996354 groundContact=1 fuel=1938.04 engine=1 +10:58:22.563 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.284155,-0.00909084,-0.0377324> +10:58:22.563 SCRIPT : ERR POWERED MOTION: offset=<-0.702148,-0.00617409,0> velocity=<0.0223403,0.00497292,-0.0202909> angularLocal=<0.000204815,-0.0455586,0.000112496> forward=<0.108018,0.0774502,0.991127> right=<0.993774,-0.0357877,-0.10551> +10:58:22.563 SCRIPT : ERR POWERED INPUT: pilotHooks=351 vehicleHooks=351 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.530756 rotorRPM=104.943 targetRPM=196 +10:58:22.564 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=351 applyCallbacks=560 beforeWriteSequence=351 writtenAgeMs=28.0273 beforeWriteAgeMs=28.0273 +10:58:22.564 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.530756> writtenThrottle=0 beforeWriteThrottle=0 +10:58:22.564 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.765378 autohover=0 collectiveMode=3 +10:58:24.596 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=387 +10:58:24.596 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0169811 drift=0.745261 speed=0.0348926 vertical=0.00641793 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +10:58:24.596 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.21755,-0.0052728,-0.0326416> +10:58:24.597 SCRIPT : ERR POWERED MOTION: offset=<-0.745117,-0.0169811,0.0146484> velocity=<0.0155825,0.00641793,-0.0305531> angularLocal=<0.000308062,-0.045739,-0.00017631> forward=<0.113626,0.0767039,0.990558> right=<0.993164,-0.0355771,-0.11117> +10:58:24.597 SCRIPT : ERR POWERED INPUT: pilotHooks=387 vehicleHooks=387 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.393965 rotorRPM=121.596 targetRPM=196 +10:58:24.597 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=387 applyCallbacks=621 beforeWriteSequence=387 writtenAgeMs=56.4883 beforeWriteAgeMs=25.4375 +10:58:24.597 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.393965> writtenThrottle=0 beforeWriteThrottle=0 +10:58:24.598 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696983 autohover=0 collectiveMode=3 +10:58:26.614 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +10:58:26.615 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0303383 drift=0.75793 speed=0.0523117 vertical=0.00832622 up=0.996474 groundContact=1 fuel=1937.86 engine=1 +10:58:26.615 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.128049,0.00413245,-1.07435> +10:58:26.615 SCRIPT : ERR POWERED MOTION: offset=<-0.75293,-0.0303383,0.0869141> velocity=<0.0113367,0.00832622,-0.0503851> angularLocal=<0.00347895,0.021747,0.000288832> forward=<0.114996,0.0760359,0.990452> right=<0.993011,-0.0354693,-0.11257> +10:58:26.616 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.292178 rotorRPM=137.753 targetRPM=196 +10:58:26.616 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=682 beforeWriteSequence=424 writtenAgeMs=38.8867 beforeWriteAgeMs=13.0312 +10:58:26.616 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.292178> writtenThrottle=0 beforeWriteThrottle=0 +10:58:26.616 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646822 autohover=0 collectiveMode=3 +10:58:28.641 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=462 +10:58:28.642 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0456715 drift=0.773093 speed=0.0679677 vertical=0.0085335 up=0.996536 groundContact=1 fuel=1937.77 engine=1 +10:58:28.642 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00531692,0.000905078,-0.0113229> +10:58:28.642 SCRIPT : ERR POWERED MOTION: offset=<-0.749023,-0.0456715,0.191406> velocity=<0.0138808,0.0085335,-0.0659857> angularLocal=<0.000517305,-0.00172975,-3.66582e-05> forward=<0.110933,0.075256,0.990974> right=<0.993464,-0.0353808,-0.108525> +10:58:28.642 SCRIPT : ERR POWERED INPUT: pilotHooks=462 vehicleHooks=462 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213789 rotorRPM=153.886 targetRPM=196 +10:58:28.643 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=462 applyCallbacks=742 beforeWriteSequence=461 writtenAgeMs=11.6641 beforeWriteAgeMs=35.7852 +10:58:28.643 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213789> writtenThrottle=0 beforeWriteThrottle=0 +10:58:28.643 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606894 autohover=0 collectiveMode=3 +10:58:30.690 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=499 +10:58:30.690 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.061121 drift=0.818803 speed=0.0335667 vertical=0.00814781 up=0.996599 groundContact=1 fuel=1937.68 engine=1 +10:58:30.691 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00629593,0.000757892,-0.00164039> +10:58:30.691 SCRIPT : ERR POWERED MOTION: offset=<-0.793457,-0.061121,0.202148> velocity=<0.0224209,0.00814781,-0.0236145> angularLocal=<0.000418069,-0.00037441,0.000178016> forward=<0.10962,0.0745164,0.991176> right=<0.99361,-0.035179,-0.107245> +10:58:30.691 SCRIPT : ERR POWERED INPUT: pilotHooks=499 vehicleHooks=499 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149404 rotorRPM=169.94 targetRPM=196 +10:58:30.692 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=499 applyCallbacks=803 beforeWriteSequence=498 writtenAgeMs=29.3281 beforeWriteAgeMs=44.8516 +10:58:30.692 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149404> writtenThrottle=0 beforeWriteThrottle=0 +10:58:30.692 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574702 autohover=0 collectiveMode=3 +10:58:31.706 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +10:58:32.237 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:58:32.237 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=9 matched=1 +10:58:32.739 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=533 +10:58:32.739 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0955486 drift=1.06389 speed=0.596082 vertical=0.00641879 up=0.99624 groundContact=1 fuel=1937.59 engine=1 +10:58:32.739 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.193865,0.136826,-0.588788> +10:58:32.739 SCRIPT : ERR POWERED MOTION: offset=<-0.953613,-0.0955486,0.47168> velocity=<0.223116,0.00641879,-0.552713> angularLocal=<-0.00917336,0.0158407,-0.00368248> forward=<0.110828,0.0798762,0.990625> right=<0.993535,-0.0335623,-0.108447> +10:58:32.739 SCRIPT : ERR POWERED INPUT: pilotHooks=533 vehicleHooks=533 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139037 rotorRPM=181.276 targetRPM=196 +10:58:32.740 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=533 applyCallbacks=865 beforeWriteSequence=533 writtenAgeMs=25.875 beforeWriteAgeMs=14.2031 +10:58:32.740 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139037> writtenThrottle=0 beforeWriteThrottle=0 +10:58:32.740 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +10:58:32.740 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +10:58:32.740 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=16 matched=1 +10:58:32.741 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +10:58:34.761 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=570 +10:58:34.761 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.12472 drift=3.8399 speed=2.35506 vertical=1.4382 up=0.999988 groundContact=0 fuel=1937.51 engine=1 +10:58:34.761 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0277591,0.268471,-0.0249267> +10:58:34.761 SCRIPT : ERR POWERED MOTION: offset=<-1.81152,-2.12472,3.38574> velocity=<0.456099,1.4382,-1.80828> angularLocal=<0.0823732,0.0313877,0.0214624> forward=<0.125049,0.00245661,0.992148> right=<0.992143,-0.00426966,-0.125038> +10:58:34.762 SCRIPT : ERR POWERED INPUT: pilotHooks=570 vehicleHooks=570 readback=1 collective=0.162073 cyclicF=0.0874759 cyclicR=-0.0454596 antiTorque=0.210267 rotorRPM=189.195 targetRPM=196 +10:58:34.762 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=570 applyCallbacks=925 beforeWriteSequence=569 writtenAgeMs=22.2227 beforeWriteAgeMs=35.1094 +10:58:34.762 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.161232 beforeWriteCollective=0.162073 writtenFRA=<0.0840982,-0.0448998,0.0362335> beforeWriteFRA=<0.0874759,-0.0454596,0.210267> writtenThrottle=0 beforeWriteThrottle=0 +10:58:34.762 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.162073 cyclicForward=0.0874759 cyclicAside=-0.0454596 tailCollective=0.605134 autohover=0 collectiveMode=3 +10:58:35.264 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=579 +10:58:35.265 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.84476 drift=4.84193 speed=2.34887 vertical=1.55664 up=0.999113 groundContact=0 fuel=1937.51 engine=1 +10:58:35.265 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0765914,0.203576,0.42552> +10:58:35.265 SCRIPT : ERR POWERED MOTION: offset=<-2.06006,-2.84476,4.38184> velocity=<0.428723,1.55664,-1.70595> angularLocal=<0.091197,0.0538512,0.021176> forward=<0.146361,-0.041539,0.988359> right=<0.989231,0.00690604,-0.1462> +10:58:35.265 SCRIPT : ERR POWERED INPUT: pilotHooks=579 vehicleHooks=579 readback=1 collective=0.15457 cyclicF=0.0500589 cyclicR=-0.0393378 antiTorque=0.21876 rotorRPM=191.158 targetRPM=196 +10:58:35.266 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=579 applyCallbacks=940 beforeWriteSequence=579 writtenAgeMs=62.2578 beforeWriteAgeMs=39.8672 +10:58:35.266 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.15457 beforeWriteCollective=0.15457 writtenFRA=<0.0500589,-0.0393378,0.0532002> beforeWriteFRA=<0.0500589,-0.0393378,0.21876> writtenThrottle=0 beforeWriteThrottle=0 +10:58:35.266 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.15457 cyclicForward=0.0500589 cyclicAside=-0.0393378 tailCollective=0.60938 autohover=0 collectiveMode=3 +10:58:35.779 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=589 +10:58:35.779 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.64175 drift=5.7714 speed=2.16465 vertical=1.64166 up=0.995955 groundContact=0 fuel=1937.46 engine=1 +10:58:35.779 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.101606,0.120921,0.900643> +10:58:35.779 SCRIPT : ERR POWERED MOTION: offset=<-2.30078,-3.64175,5.29297> velocity=<0.381248,1.64166,-1.35842> angularLocal=<0.0885794,0.0806968,0.0194578> forward=<0.180999,-0.087671,0.979568> right=<0.983477,0.0196846,-0.17996> +10:58:35.779 SCRIPT : ERR POWERED INPUT: pilotHooks=589 vehicleHooks=589 readback=1 collective=0.145521 cyclicF=-0.00244873 cyclicR=-0.0300013 antiTorque=0.227543 rotorRPM=193.187 targetRPM=196 +10:58:35.780 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=589 applyCallbacks=956 beforeWriteSequence=589 writtenAgeMs=14.8516 beforeWriteAgeMs=14.8516 +10:58:35.780 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.145521 beforeWriteCollective=0.145521 writtenFRA=<-0.00244873,-0.0300013,0.0737105> beforeWriteFRA=<-0.00244873,-0.0300013,0.227543> writtenThrottle=0 beforeWriteThrottle=0 +10:58:35.780 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.146349 cyclicForward=0.00338791 cyclicAside=-0.0311025 tailCollective=0.612732 autohover=0 collectiveMode=3 +10:58:36.279 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=598 +10:58:36.279 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.44673 drift=6.44606 speed=1.8839 vertical=1.6734 up=0.991357 groundContact=0 fuel=1937.46 engine=1 +10:58:36.279 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0976127,0.0158787,1.3075> +10:58:36.279 SCRIPT : ERR POWERED MOTION: offset=<-2.51416,-4.44673,5.93555> velocity=<0.330332,1.6734,-0.799798> angularLocal=<0.0742718,0.107318,0.0162753> forward=<0.227274,-0.126806,0.96554> right=<0.973823,0.0336418,-0.224805> +10:58:36.279 SCRIPT : ERR POWERED INPUT: pilotHooks=598 vehicleHooks=598 readback=1 collective=0.138792 cyclicF=-0.0530235 cyclicR=-0.0182608 antiTorque=0.23212 rotorRPM=195.15 targetRPM=196 +10:58:36.280 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=598 applyCallbacks=971 beforeWriteSequence=598 writtenAgeMs=30.6914 beforeWriteAgeMs=18.8906 +10:58:36.280 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.138792 beforeWriteCollective=0.138792 writtenFRA=<-0.0530235,-0.0182608,0.0882113> beforeWriteFRA=<-0.0530235,-0.0182608,0.23212> writtenThrottle=0 beforeWriteThrottle=0 +10:58:36.280 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.139479 cyclicForward=-0.0472082 cyclicAside=-0.0197885 tailCollective=0.615425 autohover=0 collectiveMode=3 +10:58:36.786 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=608 +10:58:36.786 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.29014 drift=6.8058 speed=1.66041 vertical=1.63495 up=0.986606 groundContact=0 fuel=1937.42 engine=1 +10:58:36.787 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0677973,-0.169902,1.59924> +10:58:36.787 SCRIPT : ERR POWERED MOTION: offset=<-2.71631,-5.29014,6.24023> velocity=<0.286953,1.63495,-0.0394346> angularLocal=<0.0478316,0.131717,0.0109286> forward=<0.287366,-0.155441,0.945124> right=<0.957817,0.0494724,-0.283088> +10:58:36.787 SCRIPT : ERR POWERED INPUT: pilotHooks=608 vehicleHooks=608 readback=1 collective=0.135715 cyclicF=-0.101375 cyclicR=-0.00220373 antiTorque=0.236172 rotorRPM=196 targetRPM=196 +10:58:36.787 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=608 applyCallbacks=986 beforeWriteSequence=607 writtenAgeMs=11.668 beforeWriteAgeMs=25.5977 +10:58:36.788 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.135764 beforeWriteCollective=0.135715 writtenFRA=<-0.106086,-0.000250808,0.0977655> beforeWriteFRA=<-0.101375,-0.00220373,0.236172> writtenThrottle=0 beforeWriteThrottle=0 +10:58:36.788 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.135715 cyclicForward=-0.101375 cyclicAside=-0.00220373 tailCollective=0.618086 autohover=0 collectiveMode=3 +10:58:37.287 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=617 +10:58:37.287 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.07109 drift=6.75294 speed=1.69137 vertical=1.47169 up=0.983987 groundContact=0 fuel=1937.42 engine=1 +10:58:37.287 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0291663,-0.498676,1.68318> +10:58:37.287 SCRIPT : ERR POWERED MOTION: offset=<-2.90186,-6.07109,6.09766> velocity=<0.263101,1.47169,0.79098> angularLocal=<0.0123263,0.146307,0.00332462> forward=<0.35386,-0.166202,0.920413> right=<0.935297,0.0644001,-0.347953> +10:58:37.287 SCRIPT : ERR POWERED INPUT: pilotHooks=617 vehicleHooks=617 readback=1 collective=0.119897 cyclicF=-0.14483 cyclicR=0.0208855 antiTorque=0.2317 rotorRPM=196 targetRPM=196 +10:58:37.288 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=617 applyCallbacks=1001 beforeWriteSequence=617 writtenAgeMs=30.1914 beforeWriteAgeMs=13.2773 +10:58:37.288 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.119897 beforeWriteCollective=0.119897 writtenFRA=<-0.14483,0.0208855,0.09985> beforeWriteFRA=<-0.14483,0.0208855,0.2317> writtenThrottle=0 beforeWriteThrottle=0 +10:58:37.288 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.122218 cyclicForward=-0.140498 cyclicAside=0.017932 tailCollective=0.615928 autohover=0 collectiveMode=3 +10:58:37.796 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=627 +10:58:37.796 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.74708 drift=6.29486 speed=2.01519 vertical=1.17601 up=0.984812 groundContact=0 fuel=1937.37 engine=1 +10:58:37.797 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00561655,-0.60261,1.6006> +10:58:37.797 SCRIPT : ERR POWERED MOTION: offset=<-3.09326,-6.74708,5.48242> velocity=<0.260397,1.17601,1.6156> angularLocal=<-0.0283605,0.146794,-0.00646159> forward=<0.423076,-0.156213,0.892527> right=<0.90609,0.0757862,-0.416241> +10:58:37.797 SCRIPT : ERR POWERED INPUT: pilotHooks=627 vehicleHooks=627 readback=1 collective=0.102632 cyclicF=-0.15 cyclicR=0.0442431 antiTorque=0.216349 rotorRPM=196 targetRPM=196 +10:58:37.797 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=627 applyCallbacks=1016 beforeWriteSequence=626 writtenAgeMs=13.3203 beforeWriteAgeMs=26.5117 +10:58:37.797 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.100672 beforeWriteCollective=0.102632 writtenFRA=<-0.15,0.0461454,0.0940656> beforeWriteFRA=<-0.15,0.0442431,0.216349> writtenThrottle=0 beforeWriteThrottle=0 +10:58:37.798 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.102632 cyclicForward=-0.15 cyclicAside=0.0442431 tailCollective=0.608175 autohover=0 collectiveMode=3 +10:58:38.301 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=636 +10:58:38.301 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.27867 drift=5.50774 speed=2.55987 vertical=0.894319 up=0.988833 groundContact=0 fuel=1937.37 engine=1 +10:58:38.302 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.00978291,-0.456873,1.35411> +10:58:38.302 SCRIPT : ERR POWERED MOTION: offset=<-3.2915,-7.27867,4.41602> velocity=<0.261374,0.894319,2.38429> angularLocal=<-0.0675227,0.13373,-0.0179831> forward=<0.486466,-0.125899,0.864581> right=<0.873658,0.079739,-0.479962> +10:58:38.302 SCRIPT : ERR POWERED INPUT: pilotHooks=636 vehicleHooks=636 readback=1 collective=0.0869463 cyclicF=-0.15 cyclicR=0.0671313 antiTorque=0.195693 rotorRPM=196 targetRPM=196 +10:58:38.302 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=636 applyCallbacks=1031 beforeWriteSequence=635 writtenAgeMs=21.9219 beforeWriteAgeMs=36.957 +10:58:38.302 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0851846 beforeWriteCollective=0.0869463 writtenFRA=<-0.15,0.0693234,0.0809917> beforeWriteFRA=<-0.15,0.0671313,0.195693> writtenThrottle=0 beforeWriteThrottle=0 +10:58:38.303 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0869463 cyclicForward=-0.15 cyclicAside=0.0671313 tailCollective=0.597847 autohover=0 collectiveMode=3 +10:58:38.812 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=645 +10:58:38.813 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.70517 drift=4.57444 speed=3.05025 vertical=0.700506 up=0.994205 groundContact=0 fuel=1937.33 engine=1 +10:58:38.813 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0803974,-0.323718,0.931449> +10:58:38.813 SCRIPT : ERR POWERED MOTION: offset=<-3.49268,-7.70517,2.9541> velocity=<0.24081,0.700506,2.95894> angularLocal=<-0.100007,0.110523,-0.0291229> forward=<0.539408,-0.077871,0.838436> right=<0.841795,0.0741143,-0.534686> +10:58:38.813 SCRIPT : ERR POWERED INPUT: pilotHooks=645 vehicleHooks=645 readback=1 collective=0.0674932 cyclicF=-0.15 cyclicR=0.0871845 antiTorque=0.164165 rotorRPM=196 targetRPM=196 +10:58:38.814 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=645 applyCallbacks=1047 beforeWriteSequence=645 writtenAgeMs=47.8984 beforeWriteAgeMs=12.3359 +10:58:38.814 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0674932 beforeWriteCollective=0.0674932 writtenFRA=<-0.15,0.0871845,0.0615023> beforeWriteFRA=<-0.15,0.0871845,0.164165> writtenThrottle=0 beforeWriteThrottle=0 +10:58:38.814 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0674932 cyclicForward=-0.15 cyclicAside=0.0871845 tailCollective=0.582683 autohover=0 collectiveMode=3 +10:58:39.319 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=655 +10:58:39.320 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.06414 drift=3.8729 speed=3.34595 vertical=0.583448 up=0.9981 groundContact=0 fuel=1937.33 engine=1 +10:58:39.320 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.223294,-0.162978,0.347357> +10:58:39.320 SCRIPT : ERR POWERED MOTION: offset=<-3.66895,-8.06414,1.24023> velocity=<0.164067,0.583448,3.2906> angularLocal=<-0.124607,0.078685,-0.0387218> forward=<0.577201,-0.0171668,0.816421> right=<0.815697,0.0591803,-0.575445> +10:58:39.320 SCRIPT : ERR POWERED INPUT: pilotHooks=655 vehicleHooks=655 readback=1 collective=0.0429379 cyclicF=-0.120649 cyclicR=0.0974911 antiTorque=0.125685 rotorRPM=196 targetRPM=196 +10:58:39.321 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=655 applyCallbacks=1062 beforeWriteSequence=655 writtenAgeMs=14.1055 beforeWriteAgeMs=14.1055 +10:58:39.321 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0429379 beforeWriteCollective=0.0429379 writtenFRA=<-0.120649,0.0974911,0.0347094> beforeWriteFRA=<-0.120649,0.0974911,0.125685> writtenThrottle=0 beforeWriteThrottle=0 +10:58:39.321 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0455788 cyclicForward=-0.125198 cyclicAside=0.0970755 tailCollective=0.56488 autohover=0 collectiveMode=3 +10:58:39.819 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=663 +10:58:39.820 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.38875 drift=3.82295 speed=3.33688 vertical=0.507004 up=0.998064 groundContact=0 fuel=1937.28 engine=1 +10:58:39.820 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.408601,-0.152267,-0.30005> +10:58:39.820 SCRIPT : ERR POWERED MOTION: offset=<-3.78076,-8.38875,-0.566406> velocity=<0.0058185,0.507004,3.29813> angularLocal=<-0.132731,0.0430589,-0.0446298> forward=<0.598383,0.0494468,0.799683> right=<0.798972,0.0377208,-0.600184> +10:58:39.820 SCRIPT : ERR POWERED INPUT: pilotHooks=663 vehicleHooks=663 readback=1 collective=0.0181988 cyclicF=-0.0758978 cyclicR=0.0966842 antiTorque=0.0867461 rotorRPM=196 targetRPM=196 +10:58:39.821 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=663 applyCallbacks=1077 beforeWriteSequence=663 writtenAgeMs=60.6406 beforeWriteAgeMs=12.9688 +10:58:39.821 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0181988 beforeWriteCollective=0.0181988 writtenFRA=<-0.0758978,0.0966842,0.0103734> beforeWriteFRA=<-0.0758978,0.0966842,0.0867461> writtenThrottle=0 beforeWriteThrottle=0 +10:58:39.821 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0181988 cyclicForward=-0.0758978 cyclicAside=0.0966842 tailCollective=0.544622 autohover=0 collectiveMode=3 +10:58:40.320 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=672 +10:58:40.320 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.68249 drift=4.41692 speed=3.02163 vertical=0.427975 up=0.993308 groundContact=0 fuel=1937.28 engine=1 +10:58:40.320 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.616981,-0.0496352,-0.949459> +10:58:40.320 SCRIPT : ERR POWERED MOTION: offset=<-3.77393,-8.68249,-2.29492> velocity=<-0.250244,0.427975,2.98069> angularLocal=<-0.125325,0.00529214,-0.0462603> forward=<0.603181,0.114645,0.789322> right=<0.793501,0.0139978,-0.608408> +10:58:40.321 SCRIPT : ERR POWERED INPUT: pilotHooks=672 vehicleHooks=672 readback=1 collective=0 cyclicF=-0.012678 cyclicR=0.0868232 antiTorque=0.0495065 rotorRPM=196 targetRPM=196 +10:58:40.321 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=672 applyCallbacks=1092 beforeWriteSequence=672 writtenAgeMs=49.7734 beforeWriteAgeMs=12.6797 +10:58:40.321 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.012678,0.0868232,-0.0171602> beforeWriteFRA=<-0.012678,0.0868232,0.0495065> writtenThrottle=0 beforeWriteThrottle=0 +10:58:40.321 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.012678 cyclicAside=0.0868232 tailCollective=0.524753 autohover=0 collectiveMode=3 +10:58:40.824 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=681 +10:58:40.824 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.96462 drift=5.21443 speed=2.46433 vertical=0.429922 up=0.984989 groundContact=0 fuel=1937.24 engine=1 +10:58:40.824 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.798529,-0.0103658,-1.536> +10:58:40.825 SCRIPT : ERR POWERED MOTION: offset=<-3.58545,-8.96462,-3.78613> velocity=<-0.608944,0.429922,2.34889> angularLocal=<-0.104356,-0.0304224,-0.0439122> forward=<0.592345,0.172447,0.787013> right=<0.799759,-0.0076023,-0.600273> +10:58:40.825 SCRIPT : ERR POWERED INPUT: pilotHooks=681 vehicleHooks=681 readback=1 collective=0 cyclicF=0.056258 cyclicR=0.0713467 antiTorque=0.0265338 rotorRPM=196 targetRPM=196 +10:58:40.825 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=681 applyCallbacks=1107 beforeWriteSequence=681 writtenAgeMs=49.7539 beforeWriteAgeMs=25.2969 +10:58:40.825 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.056258,0.0713467,-0.0401329> beforeWriteFRA=<0.056258,0.0713467,0.0265338> writtenThrottle=0 beforeWriteThrottle=0 +10:58:40.825 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.056258 cyclicAside=0.0713467 tailCollective=0.513267 autohover=0 collectiveMode=3 +10:58:42.839 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=719 +10:58:42.840 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.34774 drift=4.67838 speed=2.92926 vertical=-0.289553 up=0.972756 groundContact=0 fuel=1937.15 engine=1 +10:58:42.840 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.604334,-0.451886,-2.15162> +10:58:42.840 SCRIPT : ERR POWERED MOTION: offset=<-0.434082,-9.34774,-4.6582> velocity=<-2.25791,-0.289553,-1.84351> angularLocal=<0.0534739,-0.0916391,-0.0225243> forward=<0.455204,0.229096,0.86041> right=<0.887238,-0.0355042,-0.459944> +10:58:42.840 SCRIPT : ERR POWERED INPUT: pilotHooks=719 vehicleHooks=719 readback=1 collective=0 cyclicF=0.15 cyclicR=0.0329074 antiTorque=0.00888454 rotorRPM=196 targetRPM=196 +10:58:42.841 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=719 applyCallbacks=1167 beforeWriteSequence=719 writtenAgeMs=34.7188 beforeWriteAgeMs=34.7188 +10:58:42.841 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.15,0.0329074,-0.0577822> beforeWriteFRA=<0.15,0.0329074,0.00888454> writtenThrottle=0 beforeWriteThrottle=0 +10:58:42.841 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.15 cyclicAside=0.0329074 tailCollective=0.504442 autohover=0 collectiveMode=3 +10:58:44.861 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=757 +10:58:44.861 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.51132 drift=5.8503 speed=5.28677 vertical=0.0228449 up=0.998563 groundContact=0 fuel=1937.06 engine=1 +10:58:44.861 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.5269,0.507093,-0.293426> +10:58:44.861 SCRIPT : ERR POWERED MOTION: offset=<5.01318,-8.51132,3.01562> velocity=<-2.41027,0.0228449,-4.70532> angularLocal=<0.150753,0.0150363,-0.0107281> forward=<0.37006,0.0102441,0.928951> right=<0.927913,-0.0526081,-0.369066> +10:58:44.861 SCRIPT : ERR POWERED INPUT: pilotHooks=757 vehicleHooks=757 readback=1 collective=0.00609747 cyclicF=0.15 cyclicR=0.00344682 antiTorque=0.105885 rotorRPM=196 targetRPM=196 +10:58:44.862 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=757 applyCallbacks=1228 beforeWriteSequence=757 writtenAgeMs=35.0508 beforeWriteAgeMs=12.5469 +10:58:44.862 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.00609747 beforeWriteCollective=0.00609747 writtenFRA=<0.15,0.00344682,0.0353014> beforeWriteFRA=<0.15,0.00344682,0.105885> writtenThrottle=0 beforeWriteThrottle=0 +10:58:44.862 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.00734353 cyclicForward=0.15 cyclicAside=0.0051688 tailCollective=0.551436 autohover=0 collectiveMode=3 +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +10:58:45.365 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-sha256.json new file mode 100644 index 0000000..2cf3fd5 --- /dev/null +++ b/docs/evidence/native-2026-09-19-105709-flight-damping-refusal/source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/console.log.txt b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/console.log.txt new file mode 100644 index 0000000..a291131 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/console.log.txt @@ -0,0 +1,889 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58\console.log started at 2026-09-19 11:04:58 (2026-09-19 09:04:58 UTC) + +11:04:58.817 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58' to filesystem under name logs +11:04:58.817 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:04:58.817 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:04:58.818 PROFILING : Workbench Create Engine took: 10.196900 ms +11:04:59.852 INIT : INIT : Workbench Init Engine +11:04:59.852 ENGINE : Initializing engine, version 192142 +11:04:59.852 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +11:04:59.860 ENGINE : Addon dirs: +11:04:59.860 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +11:04:59.860 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:04:59.860 ENGINE : dir: './addons' +11:04:59.860 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:04:59.860 ENGINE : Available addons: +11:04:59.860 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:04:59.860 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:04:59.860 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:04:59.860 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:04:59.860 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:04:59.860 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:04:59.860 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:04:59.861 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:04:59.975 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:04:59.978 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:04:59.978 ENGINE : CPU vendor : AuthenticAMD +11:04:59.978 ENGINE : CPU type : 2 +11:04:59.978 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:04:59.978 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:04:59.978 ENGINE : CPU count logical : 16 +11:04:59.978 ENGINE : CPU count physical : 8 +11:04:59.978 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:04:59.978 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:04:59.979 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:05:00.114 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:05:00.116 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:05:00.116 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58/resourceDatabase.rdb) +11:05:00.266 RESOURCES : RESOURCES : ResourceDB: full scan +11:05:00.270 RESOURCES : RESOURCES : scanning... +11:05:00.270 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:05:00.274 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:05:00.411 RESOURCES : RESOURCES : scanning @"core" +11:05:00.415 RESOURCES : RESOURCES : scanning @"profile" +11:05:00.415 RESOURCES : RESOURCES : scanning @"logs" +11:05:00.416 RESOURCES : RESOURCES : processing meta-files... +11:05:00.485 RESOURCES : RESOURCES : processing files... +11:05:00.498 INIT : Workbench startup +11:05:00.498 INIT : Workbench Init Engine +11:05:00.498 RESOURCES : ResourceDB: full scan +11:05:00.498 RESOURCES : processing files... +11:05:00.498 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:05:00.498 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:05:00.498 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:05:00.498 RESOURCES : RESOURCES : processing folders... +11:05:00.506 RESOURCES : RESOURCES : creating GUID-item mapping... +11:05:00.524 RESOURCES : RESOURCES : building tree... +11:05:00.580 PROFILING : ResourceDB: full scan took: 313.877900 ms +11:05:00.581 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:05:00.583 RESOURCES : ResourceDB: written 6865/6865 bytes +11:05:00.583 RESOURCES : ResourceDB: cache successfully saved +11:05:00.583 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:05:00.584 RESOURCES : ResourceDB: written 206/206 bytes +11:05:00.584 RESOURCES : ResourceDB: cache successfully saved +11:05:00.584 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58/resourceDatabase.rdb) +11:05:00.586 RESOURCES : ResourceDB: written 162/162 bytes +11:05:00.586 RESOURCES : ResourceDB: cache successfully saved +11:05:00.586 ENGINE : GameProject load +11:05:00.586 ENGINE : Loaded addons: +11:05:00.586 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:05:00.586 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:05:00.586 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:05:00.587 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:05:00.588 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:05:00.588 ENGINE : Engine user settings config loaded +11:05:00.588 PROFILING : Settings changed took: 0.002900 ms +11:05:00.692 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:05:00.694 RENDER : Basic screen setup: +11:05:00.694 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:05:00.694 RENDER : MSAA : none +11:05:00.711 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:05:00.711 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:05:00.711 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:05:00.711 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:05:00.711 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:05:00.711 RENDER : AMD AGS correctly initialized +11:05:00.712 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 +11:05:00.712 RENDER : Detected output devices: +11:05:00.712 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:05:00.712 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:05:00.712 RENDER : Concurrent frames limit 2 +11:05:00.797 RENDER : DX12 device successfully created by AMD AGS library +11:05:00.797 RENDER : * user markers not supported in this version AMD SW +11:05:00.797 RENDER : Graphics device features +11:05:00.797 RENDER : Needed: +11:05:00.798 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:05:00.798 RENDER : Optional: +11:05:00.798 RENDER : * Allow tearing (VSYNC) : 1 +11:05:00.798 RENDER : * 16 bits : 1 +11:05:00.798 RENDER : * Resource heap tier : 3 +11:05:00.798 RENDER : * Persistent heaps (DRED) : 1 +11:05:00.798 RENDER : * DRED 1.2 is supported by compiler +11:05:00.822 RENDER : Main RT format setup. +11:05:00.822 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:05:00.822 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:05:00.823 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:05:00.854 PROFILING : Settings changed took: 0.021200 ms +11:05:01.361 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:05:01.361 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:05:01.361 AUDIO : Audio client: +11:05:01.361 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:05:01.364 RENDER : RENDER : Reload shaders +11:05:01.365 RENDER : Enfusion shader version 13 +11:05:01.365 INIT : INIT : ShaderListReload +11:05:01.365 PROFILING : ShaderListReload took: 0.000500 ms +11:05:01.504 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:05:01.504 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:05:01.504 AUDIO : Audio client: +11:05:01.504 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:05:01.604 RENDER : Loaded 3752 newer shader binaries +11:05:01.604 PROFILING : Reload shaders took: 239.704100 ms +11:05:01.604 ENGINE : Initializing inputs. +11:05:01.617 NETWORK : Initializing networking. +11:05:01.617 NETWORK : Using new GameRplScheduler. +11:05:01.617 SCRIPT : SCRIPT : Initializing scripts +11:05:01.618 SCRIPT : SCRIPT : ScriptProjectManager init +11:05:02.446 PROFILING : ScriptProjectManager init took: 828.171800 ms +11:05:02.483 PROFILING : Initializing scripts took: 864.802100 ms +11:05:02.503 ENGINE : Enfusion engine successfully created. +11:05:02.503 PROFILING : Workbench Init Engine took: 2651.544100 ms +11:05:02.503 INIT : INIT : Workbench Create Game +11:05:02.514 GUI : Using default language (en_us) +11:05:02.514 GUI : Loading 'en_us' localization file. +11:05:02.514 INIT : INIT : Loading StringTable +11:05:02.537 PROFILING : Loading StringTable took: 23.651500 ms +11:05:02.537 SCRIPT : SCRIPT : Compiling GameLib scripts +11:05:02.594 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:05:02.595 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:05:02.596 PROFILING : Compiling GameLib scripts took: 58.458900 ms +11:05:02.596 SCRIPT : SCRIPT : Compiling Game scripts +11:05:03.778 INIT : Workbench Create Game +11:05:03.778 SCRIPT : Compiling Game scripts +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:05:03.947 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.077 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:05:04.115 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:05:04.261 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:05:04.325 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:05:04.393 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.426 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:05:04.697 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:05:04.704 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 8af41c8d +11:05:04.745 PROFILING : Compiling Game scripts took: 2149.352000 ms +11:05:04.752 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:05:04.792 ENGINE : Game successfully created. +11:05:04.793 PROFILING : Workbench Create Game took: 2289.692700 ms +11:05:04.801 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +11:05:05.602 INIT : INIT : Workbench Reload Game +11:05:05.604 ENGINE : Game destroyed. +11:05:05.609 GUI : Using default language (en_us) +11:05:05.609 GUI : Loading 'en_us' localization file. +11:05:05.609 INIT : INIT : Loading StringTable +11:05:05.619 PROFILING : Loading StringTable took: 9.195700 ms +11:05:05.619 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:05:05.625 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:05:05.625 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:05:05.625 ENGINE : Game successfully created. +11:05:05.626 ENGINE : Game successfully initialized. +11:05:05.626 PROFILING : Workbench Reload Game took: 23.369800 ms +11:05:06.296 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:05:07.312 PROFILING : Entities load took: 1015.319000 ms +11:05:07.322 WORLD : WORLD : CreateEntities +11:05:07.327 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:05:07.327 PROFILING : NotifyBeforeEntitiesCreated took: 0.004300 ms +11:05:07.327 WORLD : WORLD : Wait for preloading data +11:05:07.327 PROFILING : Wait for preloading data took: 0.004400 ms +11:05:07.434 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:05:07.434 PROFILING : PROFILING : Terrain load +11:05:09.131 PROFILING : Terrain load took: 1697.008700 ms +11:05:13.145 WORLD : CreateEntities +11:05:13.145 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:05:13.145 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:05:13.145 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:05:22.801 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:05:22.801 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005100 ms +11:05:23.231 WORLD : WORLD : NotifyEntitiesInitialized +11:05:23.231 TERRAIN : TERRAIN : Initializing road networks... +11:05:23.234 PROFILING : Initializing road networks... took: 2.647100 ms +11:05:23.234 PROFILING : NotifyEntitiesInitialized took: 3.091000 ms +11:05:23.234 PROFILING : CreateEntities took: 15911.439000 ms +11:05:23.412 PROFILING : * WorldEditor: LoadWorld: 17121.003500 ms +11:05:24.832 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:05:24.833 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:05:24.834 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:05:24.834 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:05:24.923 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:05:24.945 BACKEND : Attempting online Game Config instead. +11:05:28.274 INIT : INIT : Workbench Reload Game +11:05:28.276 ENGINE : Game destroyed. +11:05:28.282 GUI : Using default language (en_us) +11:05:28.282 GUI : Loading 'en_us' localization file. +11:05:28.282 INIT : INIT : Loading StringTable +11:05:28.303 PROFILING : Loading StringTable took: 20.235900 ms +11:05:28.303 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:05:28.311 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:05:28.311 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:05:28.311 ENGINE : Game successfully created. +11:05:28.311 ENGINE : Game successfully initialized. +11:05:28.311 PROFILING : Workbench Reload Game took: 37.398500 ms +11:05:28.314 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:05:28.371 PLATFORM : Save data from container 'settings' have been loaded +11:05:28.462 PLATFORM : Save data from container 'sessions' have been loaded +11:05:28.463 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:05:28.463 ENGINE : Game user settings config loaded +11:05:28.560 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:05:28.569 WORLD : WORLD : Game::LoadEntities +11:05:28.569 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:05:28.571 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:05:28.571 WORLD : WORLD : CreateEntities +11:05:28.571 WORLD : WORLD : CreateEntities +11:05:28.571 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:05:28.576 RESOURCES : Loaded mission headers from 7 addon(s)! +11:05:28.576 PROFILING : NotifyBeforeEntitiesCreated took: 5.292100 ms +11:05:28.576 WORLD : WORLD : Wait for preloading data +11:05:28.576 PROFILING : Wait for preloading data took: 0.000900 ms +11:05:33.043 WORLD : Game::LoadEntities +11:05:33.043 WORLD : CreateEntities +11:05:33.043 WORLD : CreateEntities +11:05:33.043 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:05:33.043 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:05:33.043 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:05:34.427 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:05:34.427 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:05:34.427 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:05:34.436 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:05:34.436 ENTITY : CreateComponent 'Hierarchy' +11:05:34.436 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:05:34.437 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:05:34.437 ENTITY : CreateComponent 'Hierarchy' +11:05:34.437 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:05:34.437 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:05:34.437 ENTITY : CreateComponent 'Hierarchy' +11:05:34.437 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:05:39.277 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:05:39.277 PROFILING : NotifyBeforeEntitiesInitialized took: 0.056100 ms +11:05:41.357 WORLD : InitEntities 'world' +11:05:41.357 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:05:41.357 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:05:41.384 WORLD : InitEntities 'world' +11:05:41.384 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:05:41.384 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:05:41.385 WORLD : WORLD : NotifyEntitiesInitialized +11:05:41.385 TERRAIN : TERRAIN : Initializing road networks... +11:05:41.387 PROFILING : Initializing road networks... took: 2.290100 ms +11:05:41.387 DEFAULT : DEFAULT : WorldVolumesCollection +11:05:41.454 PROFILING : WorldVolumesCollection took: 66.979200 ms +11:05:41.454 INIT : INIT : SoundWorldInit +11:05:41.468 PROFILING : SoundWorldInit took: 14.030200 ms +11:05:41.468 PROFILING : NotifyEntitiesInitialized took: 83.557100 ms +11:05:41.468 PROFILING : CreateEntities took: 12896.819400 ms +11:05:41.468 PROFILING : CreateEntities took: 12896.992500 ms +11:05:41.469 WORLD : WORLD : Wait for preloading data around camera +11:05:41.469 PROFILING : Wait for preloading data around camera took: 0.000800 ms +11:05:41.469 WORLD : WORLD : EOnActivate +11:05:41.504 PROFILING : EOnActivate took: 34.637100 ms +11:05:41.504 PROFILING : Game::LoadEntities took: 12933.980200 ms +11:05:41.799 DEFAULT : Entered offline game state. +11:05:41.903 NETWORK : Player connected: connectionID=2147483646 +11:05:41.903 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:05:41.903 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:05:41.907 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.908 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:05:41.908 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.908 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! +11:05:41.908 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! +11:05:41.911 SCRIPT (W): Can't open config file "" +11:05:41.917 WORLD : InitEntities 'world' +11:05:41.917 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.917 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:05:41.917 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:05:41.918 SCRIPT (W): Slot_Chat Has no Content! +11:05:41.918 SCRIPT (W): Slot_VON Has no Content! +11:05:41.918 SCRIPT (W): Slot_AvailableActions Has no Content! +11:05:41.918 SCRIPT (W): Slot_Vehicle Has no Content! +11:05:41.918 SCRIPT (W): Slot_GameVersion Has no Content! +11:05:41.918 SCRIPT (W): Slot_Notifications Has no Content! +11:05:41.918 SCRIPT (W): Slot_Hints Has no Content! +11:05:41.929 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:05:41.929 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:05:41.929 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:05:41.929 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. +11:05:41.930 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. +11:05:41.933 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:05:41.934 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:05:41.934 NETWORK : Players connecting: 0 +11:05:41.934 NETWORK : Players connected: 1 / 1 +11:05:41.963 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +11:05:41.965 PROFILING : Workbench startup took: 43208.444400 ms +11:05:41.989 WORLD : Frame start +11:05:41.989 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:05:42.002 WORLD : UpdateEntities +11:05:42.003 WORLD : Frame +11:05:42.003 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:05:42.186 WORLD : UpdateEntities +11:05:42.187 WORLD : PostFrame +11:05:42.187 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:05:42.187 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:05:42.230 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:05:42.230 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:05:42.230 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:05:42.231 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:05:42.368 RENDER : RENDER : ObjectsHeightMap::Build +11:05:42.368 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:05:42.540 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 171.366200 ms +11:05:42.548 PROFILING : ObjectsHeightMap::Build took: 179.480900 ms +11:05:43.715 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:05:43.735 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:05:43.735 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:05:43.764 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:05:43.767 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:05:43.821 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:05:43.822 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:05:43.828 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:05:43.881 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:05:43.882 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:05:43.884 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:05:43.884 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:05:43.888 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:05:43.889 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:05:43.890 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:05:43.891 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:05:43.891 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:05:43.891 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:05:43.891 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:05:43.891 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:05:43.892 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.892 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:05:43.892 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.892 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:05:43.893 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:44.655 WORLD : UpdateEntities +11:05:44.656 WORLD : AfterPostSimulate +11:05:44.656 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.726 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.977 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5309,7499.7> up=0.995681 +11:05:44.979 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:05:44.980 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:44.980 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.616,7501.97> +11:05:44.980 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.316,7501.97> terrainY=63.3164 tireTerrainGap=-0.000377655 +11:05:44.980 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.616,7501.97> radius=0.3 bottom=<7012.07,63.316,7501.97> fraction=0.452915 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000358582 +11:05:44.980 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6032,7497.71> +11:05:44.981 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1532,7497.71> terrainY=64.1555 tireTerrainGap=-0.00235748 +11:05:44.981 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6032,7497.71> radius=0.45 bottom=<7009.88,64.1532,7497.71> fraction=0.443946 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00232697 +11:05:44.981 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2644,7497.74> +11:05:44.981 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8144,7497.74> terrainY=63.8179 tireTerrainGap=-0.00347519 +11:05:44.981 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2644,7497.74> radius=0.45 bottom=<7014.42,63.8144,7497.74> fraction=0.438611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00350571 +11:05:44.981 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:45.234 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:45.746 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:45.747 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.747 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.066 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5347,7499.71> up=0.994334 +11:05:46.066 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +11:05:46.066 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:46.066 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6187,7501.99> +11:05:46.066 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3187,7501.99> terrainY=63.3146 tireTerrainGap=0.00416946 +11:05:46.067 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6187,7501.99> radius=0.3 bottom=<7012.07,63.3187,7501.99> fraction=0.473655 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0042038 +11:05:46.067 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71> +11:05:46.067 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00301361 +11:05:46.067 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468312 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00302887 +11:05:46.067 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2648,7497.78> +11:05:46.067 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8148,7497.78> terrainY=63.8155 tireTerrainGap=-0.000720978 +11:05:46.068 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2648,7497.78> radius=0.45 bottom=<7014.47,63.8148,7497.78> fraction=0.451111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00075531 +11:05:46.068 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.069 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.561 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:05:46.561 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.561 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.562 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:47.063 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5314,7499.74> up=0.994217 +11:05:47.063 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0409494 angularSpeed=0.0213691 +11:05:47.063 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:47.063 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6137,7502.01> +11:05:47.063 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3137,7502.01> terrainY=63.3116 tireTerrainGap=0.0021019 +11:05:47.063 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6137,7502.01> radius=0.3 bottom=<7012.08,63.3137,7502.01> fraction=0.464236 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00213242 +11:05:47.064 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5947,7497.72> +11:05:47.064 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1448,7497.72> terrainY=64.1428 tireTerrainGap=0.00193024 +11:05:47.064 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5947,7497.72> radius=0.45 bottom=<7009.97,64.1448,7497.72> fraction=0.463825 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00204468 +11:05:47.064 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.82> +11:05:47.064 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.82> terrainY=63.8128 tireTerrainGap=-0.00243759 +11:05:47.064 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.82> radius=0.45 bottom=<7014.51,63.8104,7497.82> fraction=0.443333 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00246811 +11:05:47.065 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.066 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:48.077 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994143 +11:05:48.077 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:05:48.078 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:48.078 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:05:48.078 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:05:48.078 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:05:48.078 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:05:48.078 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00250244 +11:05:48.079 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:05:48.079 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:05:48.079 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00201797 +11:05:48.079 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:05:48.079 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.585 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.089 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994143 +11:05:49.090 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:05:49.090 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:49.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:05:49.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:05:49.090 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:05:49.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:05:49.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00250244 +11:05:49.091 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:05:49.091 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:05:49.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00201797 +11:05:49.091 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:05:49.091 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:49.092 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.092 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.093 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:05:49.093 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:05:49.094 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:05:49.094 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:05:49.095 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:05:49.095 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:05:49.095 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:05:49.095 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:05:49.232 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:05:49.273 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.488 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.489 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:05:49.489 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:05:49.489 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:05:49.490 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:05:49.490 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:05:49.491 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.491 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.491 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:05:49.492 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:05:49.492 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:05:49.493 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:05:49.493 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:05:49.494 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:05:49.495 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:05:49.495 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:05:49.495 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:05:49.495 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:05:49.525 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:05:49.527 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:05:49.529 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:05:49.996 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:05:49.996 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:05:50.005 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:05:50.005 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:05:50.504 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:05:50.504 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:05:50.504 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:05:50.504 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:05:50.504 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:05:50.524 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:05:50.524 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:05:51.011 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28983.2 +11:05:51.012 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:05:51.012 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081463CA8> activeSeat=PilotCompartmentSlot<0x0000000081463CA8> group=<0x00000001BA36BEE0> SCR_AIGroup actualGroup=<0x00000001BA36BEE0> SCR_AIGroup +11:05:51.012 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:05:51.012 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:05:51.013 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:05:51.013 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:05:53.024 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=9995.64 remainingMs=26971.1 +11:05:53.024 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:05:53.025 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491211 29.396900 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491211 29.396900 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081463CA8> activeSeat=PilotCompartmentSlot<0x0000000081463CA8> group=<0x00000001BA36BEE0> SCR_AIGroup actualGroup=<0x00000001BA36BEE0> SCR_AIGroup +11:05:53.025 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:05:53.025 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:05:53.025 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996297 entityOrigin=<4801.01,27.5723,11487.4> +11:05:53.025 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:05:53.523 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:05:53.524 WORLD : UpdateEntities +11:05:53.524 WORLD : Frame +11:05:53.524 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0534073 input=1 simulation=1 +11:05:53.579 WORLD : UpdateEntities +11:05:53.579 WORLD : Frame +11:05:53.579 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0546114 input=1 simulation=1 +11:05:53.635 WORLD : UpdateEntities +11:05:53.635 WORLD : Frame +11:05:53.635 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0566771 input=1 simulation=1 +11:05:53.688 WORLD : UpdateEntities +11:05:53.688 WORLD : Frame +11:05:53.689 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0514278 input=1 simulation=1 +11:05:54.029 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:05:54.029 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0124302 drift=0.0275219 speed=0.0363643 vertical=-0.0109936 up=0.996186 groundContact=1 fuel=1938.75 engine=0 +11:05:54.029 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.57203,4.49572,2.20286> +11:05:54.029 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.121492,-0.645408,0.0310444> +11:05:54.030 SCRIPT : ERR POWERED MOTION: offset=<-0.0249023,-0.0124302,0.0117188> velocity=<0.0338432,-0.0109936,0.00749283> angularLocal=<0.0151757,0.0579201,0.00572153> forward=<0.0273493,0.0783846,0.996548> right=<0.998968,-0.0383194,-0.0244016> +11:05:54.030 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:05:54.030 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=10.3262 beforeWriteAgeMs=21.8369 +11:05:54.030 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:05:54.030 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:05:54.031 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:05:54.031 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:05:54.031 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.59,31.488,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7787 +11:05:54.031 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7455,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6822 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6671 damageSphere=27.6822 simulationSphere=16.458 completeSphere=27.6822 initialDrift=0.0996859 initialHeight=-0.223612 +11:05:54.033 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:05:54.033 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:05:56.061 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +11:05:56.061 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00614738 drift=0.038882 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +11:05:56.061 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.88881,4.59371,2.18342> +11:05:56.061 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:05:56.062 SCRIPT : ERR POWERED MOTION: offset=<-0.0385742,0.00614738,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328541,0.0800895,0.996246> right=<0.998832,-0.0379763,-0.0298864> +11:05:56.062 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:05:56.062 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=76 beforeWriteSequence=48 writtenAgeMs=23.7373 beforeWriteAgeMs=13.668 +11:05:56.062 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:05:56.063 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:05:58.079 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=86 +11:05:58.079 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0105667 drift=0.130015 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +11:05:58.079 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.51409,4.60719,2.1668> +11:05:58.080 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109307,-0.0708191> +11:05:58.080 SCRIPT : ERR POWERED MOTION: offset=<-0.129883,0.0105667,-0.00585938> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204044,-0.0427907,-0.000639235> forward=<0.0437233,0.0803239,0.995809> right=<0.998456,-0.0376865,-0.0407996> +11:05:58.080 SCRIPT : ERR POWERED INPUT: pilotHooks=86 vehicleHooks=86 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000330322 targetRPM=196 +11:05:58.080 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=86 applyCallbacks=136 beforeWriteSequence=86 writtenAgeMs=46.2725 beforeWriteAgeMs=24.0469 +11:05:58.081 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:05:58.081 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:00.095 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=123 +11:06:00.096 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0136871 drift=0.221269 speed=0.0438123 vertical=-0.00226769 up=0.99608 groundContact=1 fuel=1938.57 engine=1 +11:06:00.096 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<3.15866,4.59765,2.15089> +11:06:00.096 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494648,0.00328747,0.0203781> +11:06:00.097 SCRIPT : ERR POWERED MOTION: offset=<-0.221191,0.0136871,-0.00585938> velocity=<0.0436935,-0.00226769,0.00229078> angularLocal=<-1.09793e-05,-0.0428091,-0.000768756> forward=<0.0549238,0.0801581,0.995268> right=<0.997943,-0.0374105,-0.0520584> +11:06:00.097 SCRIPT : ERR POWERED INPUT: pilotHooks=123 vehicleHooks=123 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0239029 targetRPM=196 +11:06:00.097 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=123 applyCallbacks=197 beforeWriteSequence=123 writtenAgeMs=59.6699 beforeWriteAgeMs=13.7832 +11:06:00.097 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:00.097 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:02.113 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=162 +11:06:02.113 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0167809 drift=0.312067 speed=0.0440748 vertical=-0.00217562 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +11:06:02.113 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<3.76692,4.58676,2.13541> +11:06:02.113 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511698,0.00175333,0.0247809> +11:06:02.114 SCRIPT : ERR POWERED MOTION: offset=<-0.312012,0.0167809,-0.00585938> velocity=<0.0439499,-0.00217562,0.00250313> angularLocal=<0.000393733,-0.0428488,-0.000908049> forward=<0.0654875,0.0799686,0.994644> right=<0.997342,-0.037142,-0.062679> +11:06:02.114 SCRIPT : ERR POWERED INPUT: pilotHooks=162 vehicleHooks=162 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.393161 targetRPM=196 +11:06:02.114 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=162 applyCallbacks=257 beforeWriteSequence=162 writtenAgeMs=28.793 beforeWriteAgeMs=28.793 +11:06:02.114 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:02.114 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:04.127 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=200 +11:06:04.127 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0199318 drift=0.404339 speed=0.0450023 vertical=-0.00189036 up=0.996135 groundContact=1 fuel=1938.39 engine=1 +11:06:04.127 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<4.38576,4.57368,2.11735> +11:06:04.127 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0542685,-0.00315286,0.0212518> +11:06:04.128 SCRIPT : ERR POWERED MOTION: offset=<-0.404297,0.0199318,-0.00585938> velocity=<0.0448938,-0.00189036,0.00248573> angularLocal=<0.000681852,0.0559877,0.00210466> forward=<0.0762278,0.079741,0.993897> right=<0.996616,-0.0368287,-0.0734815> +11:06:04.128 SCRIPT : ERR POWERED INPUT: pilotHooks=200 vehicleHooks=200 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.12634 targetRPM=196 +11:06:04.128 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=200 applyCallbacks=317 beforeWriteSequence=200 writtenAgeMs=46.8438 beforeWriteAgeMs=34.7129 +11:06:04.128 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:04.128 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:06.150 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=239 +11:06:06.150 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0211201 drift=0.496118 speed=0.0446657 vertical=0.00085836 up=0.996168 groundContact=1 fuel=1938.31 engine=1 +11:06:06.150 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<4.83594,4.56026,2.09536> +11:06:06.150 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0801826,-0.000956358,0.00795863> +11:06:06.150 SCRIPT : ERR POWERED MOTION: offset=<-0.496094,0.0211201,-0.00488281> velocity=<0.0446249,0.00085836,0.00170683> angularLocal=<0.000750688,0.0545862,0.00211499> forward=<0.0840361,0.0795075,0.993286> right=<0.996019,-0.036447,-0.0813499> +11:06:06.150 SCRIPT : ERR POWERED INPUT: pilotHooks=239 vehicleHooks=239 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.1971 targetRPM=196 +11:06:06.151 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=239 applyCallbacks=378 beforeWriteSequence=239 writtenAgeMs=35.8691 beforeWriteAgeMs=22.9355 +11:06:06.151 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:06.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:08.160 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=275 +11:06:08.161 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0136566 drift=0.573255 speed=0.0398788 vertical=0.00615219 up=0.996218 groundContact=1 fuel=1938.22 engine=1 +11:06:08.161 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<5.22678,4.5303,2.08173> +11:06:08.161 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0122476,0.0027123,-0.0518002> +11:06:08.161 SCRIPT : ERR POWERED MOTION: offset=<-0.573242,0.0136566,-0.00390625> velocity=<0.0383889,0.00615219,-0.00887453> angularLocal=<0.000606402,-0.0462743,-0.000858448> forward=<0.0908135,0.0789863,0.992731> right=<0.995446,-0.0362116,-0.0881807> +11:06:08.161 SCRIPT : ERR POWERED INPUT: pilotHooks=275 vehicleHooks=275 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=61.7593 targetRPM=196 +11:06:08.162 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=275 applyCallbacks=438 beforeWriteSequence=275 writtenAgeMs=48.666 beforeWriteAgeMs=16.7891 +11:06:08.162 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:08.162 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:10.183 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=312 +11:06:10.183 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00348854 drift=0.637698 speed=0.031133 vertical=0.00477819 up=0.996287 groundContact=1 fuel=1938.13 engine=1 +11:06:10.184 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<5.72119,4.48525,2.06967> +11:06:10.184 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.1958,0.00280224,0.023666> +11:06:10.184 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00348854,-0.00195312> velocity=<0.0278638,0.00477819,-0.0130399> angularLocal=<-9.14626e-06,0.055654,0.00119417> forward=<0.0993824,0.0782024,0.991972> right=<0.994651,-0.0360042,-0.0968125> +11:06:10.184 SCRIPT : ERR POWERED INPUT: pilotHooks=312 vehicleHooks=312 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.737977 rotorRPM=86.9359 targetRPM=196 +11:06:10.185 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=312 applyCallbacks=499 beforeWriteSequence=312 writtenAgeMs=26.5547 beforeWriteAgeMs=13.9316 +11:06:10.185 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.737977> writtenThrottle=0 beforeWriteThrottle=0 +11:06:10.185 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.870108 autohover=0 collectiveMode=3 +11:06:11.413 WORLD : UpdateEntities +11:06:11.414 WORLD : AfterPostSimulate +11:06:11.414 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:06:12.218 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=349 +11:06:12.219 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00548172 drift=0.702148 speed=0.0268787 vertical=0.0050984 up=0.996353 groundContact=1 fuel=1938.04 engine=1 +11:06:12.219 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.19451,4.4431,2.05588> +11:06:12.219 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.302581,0.00704261,0.0355307> +11:06:12.219 SCRIPT : ERR POWERED MOTION: offset=<-0.702148,-0.00548172,0> velocity=<0.0176056,0.0050984,-0.01966> angularLocal=<0.000150422,0.0547094,0.000830817> forward=<0.10758,0.077469,0.991174> right=<0.993821,-0.0357663,-0.105072> +11:06:12.219 SCRIPT : ERR POWERED INPUT: pilotHooks=349 vehicleHooks=349 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.530756 rotorRPM=104.803 targetRPM=196 +11:06:12.220 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=349 applyCallbacks=560 beforeWriteSequence=349 writtenAgeMs=63.1758 beforeWriteAgeMs=15.1699 +11:06:12.220 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.530756> writtenThrottle=0 beforeWriteThrottle=0 +11:06:12.220 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.766708 autohover=0 collectiveMode=3 +11:06:14.267 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=386 +11:06:14.267 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0163555 drift=0.746238 speed=0.0348933 vertical=0.00639826 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +11:06:14.268 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.54764,4.39901,2.04514> +11:06:14.268 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.217311,-0.00519527,-0.0326109> +11:06:14.268 SCRIPT : ERR POWERED MOTION: offset=<-0.746094,-0.0163555,0.0146484> velocity=<0.0155765,0.00639826,-0.0305611> angularLocal=<0.000302604,-0.0457473,-0.000176044> forward=<0.113693,0.0767019,0.990551> right=<0.993157,-0.0355817,-0.111237> +11:06:14.268 SCRIPT : ERR POWERED INPUT: pilotHooks=386 vehicleHooks=386 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.393965 rotorRPM=121.596 targetRPM=196 +11:06:14.268 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=386 applyCallbacks=621 beforeWriteSequence=386 writtenAgeMs=51.4473 beforeWriteAgeMs=24.2461 +11:06:14.269 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.393965> writtenThrottle=0 beforeWriteThrottle=0 +11:06:14.269 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696983 autohover=0 collectiveMode=3 +11:06:16.285 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +11:06:16.285 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0296974 drift=0.760355 speed=0.0527908 vertical=0.00855232 up=0.996474 groundContact=1 fuel=1937.86 engine=1 +11:06:16.285 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.64586,4.36103,2.03819> +11:06:16.285 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.127795,0.00471108,-1.05906> +11:06:16.286 SCRIPT : ERR POWERED MOTION: offset=<-0.755371,-0.0296974,0.0869141> velocity=<0.0114065,0.00855232,-0.0508293> angularLocal=<0.00382469,0.0210882,0.000191404> forward=<0.115397,0.0760408,0.990405> right=<0.992965,-0.0354627,-0.112973> +11:06:16.286 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.293643 rotorRPM=137.753 targetRPM=196 +11:06:16.286 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=681 beforeWriteSequence=423 writtenAgeMs=23.0898 beforeWriteAgeMs=37.2266 +11:06:16.286 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.293643> writtenThrottle=0 beforeWriteThrottle=0 +11:06:16.286 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646822 autohover=0 collectiveMode=3 +11:06:18.306 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=459 +11:06:18.306 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0449486 drift=0.775458 speed=0.0679512 vertical=0.00855192 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +11:06:18.306 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.41492,4.31529,2.03322> +11:06:18.306 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00546802,0.000396408,-0.0112724> +11:06:18.306 SCRIPT : ERR POWERED MOTION: offset=<-0.751465,-0.0449486,0.191406> velocity=<0.0138637,0.00855192,-0.0659699> angularLocal=<0.000527016,-0.00172884,-5.19702e-05> forward=<0.111411,0.0752448,0.990922> right=<0.993411,-0.0353784,-0.109005> +11:06:18.306 SCRIPT : ERR POWERED INPUT: pilotHooks=459 vehicleHooks=459 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213789 rotorRPM=153.886 targetRPM=196 +11:06:18.307 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=459 applyCallbacks=742 beforeWriteSequence=459 writtenAgeMs=47.5156 beforeWriteAgeMs=25.293 +11:06:18.307 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213789> writtenThrottle=0 beforeWriteThrottle=0 +11:06:18.307 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606894 autohover=0 collectiveMode=3 +11:06:20.337 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=495 +11:06:20.337 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.060339 drift=0.821169 speed=0.0334606 vertical=0.00809227 up=0.9966 groundContact=1 fuel=1937.68 engine=1 +11:06:20.338 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.33848,4.27282,2.02168> +11:06:20.338 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00650369,0.00067234,-0.00116687> +11:06:20.338 SCRIPT : ERR POWERED MOTION: offset=<-0.795898,-0.060339,0.202148> velocity=<0.0223205,0.00809227,-0.023578> angularLocal=<0.000295097,-0.00038253,0.000152412> forward=<0.110095,0.0745057,0.991125> right=<0.993559,-0.0351796,-0.107721> +11:06:20.338 SCRIPT : ERR POWERED INPUT: pilotHooks=495 vehicleHooks=495 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149404 rotorRPM=169.809 targetRPM=196 +11:06:20.339 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=495 applyCallbacks=803 beforeWriteSequence=495 writtenAgeMs=68.793 beforeWriteAgeMs=19.3047 +11:06:20.339 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149404> writtenThrottle=0 beforeWriteThrottle=0 +11:06:20.339 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574941 autohover=0 collectiveMode=3 +11:06:21.358 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:06:21.860 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:06:21.860 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=9 matched=1 +11:06:22.372 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=530 +11:06:22.372 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0949421 drift=1.06435 speed=0.586601 vertical=0.0134744 up=0.996223 groundContact=1 fuel=1937.59 engine=1 +11:06:22.373 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.42437,4.59007,1.93769> +11:06:22.373 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.185917,0.120152,-0.570652> +11:06:22.373 SCRIPT : ERR POWERED MOTION: offset=<-0.955566,-0.0949421,0.46875> velocity=<0.223768,0.0134744,-0.542076> angularLocal=<-0.00995382,0.00760826,-0.00117042> forward=<0.111533,0.0800261,0.990533> right=<0.993455,-0.0337042,-0.109139> +11:06:22.373 SCRIPT : ERR POWERED INPUT: pilotHooks=530 vehicleHooks=530 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.145 targetRPM=196 +11:06:22.373 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=530 applyCallbacks=864 beforeWriteSequence=530 writtenAgeMs=56.3477 beforeWriteAgeMs=13.6523 +11:06:22.374 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +11:06:22.374 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.570067 autohover=0 collectiveMode=3 +11:06:22.374 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:06:22.374 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=17 matched=1 +11:06:22.374 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:06:24.402 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=566 +11:06:24.402 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.16571 drift=3.80276 speed=2.34883 vertical=1.44051 up=0.999997 groundContact=0 fuel=1937.51 engine=1 +11:06:24.402 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.97327,0.120419,0.0782183> +11:06:24.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0413883,0.251126,-0.024569> +11:06:24.403 SCRIPT : ERR POWERED MOTION: offset=<-1.74658,-2.16571,3.37793> velocity=<0.445884,1.44051,-1.80087> angularLocal=<0.0836128,-0.0185104,0.018583> forward=<0.05187,0.0021017,0.998652> right=<0.998653,-0.00136516,-0.0518672> +11:06:24.403 SCRIPT : ERR POWERED INPUT: pilotHooks=566 vehicleHooks=566 readback=1 collective=0.162056 cyclicF=0.0874546 cyclicR=-0.0350311 antiTorque=0.166063 rotorRPM=189.065 targetRPM=196 +11:06:24.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=566 applyCallbacks=925 beforeWriteSequence=566 writtenAgeMs=43.7227 beforeWriteAgeMs=13.5781 +11:06:24.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.162056 beforeWriteCollective=0.162056 writtenFRA=<0.0874546,-0.0350311,-0.00999095> beforeWriteFRA=<0.0874546,-0.0350311,0.166063> writtenThrottle=0 beforeWriteThrottle=0 +11:06:24.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.162056 cyclicForward=0.0874546 cyclicAside=-0.0350311 tailCollective=0.583376 autohover=0 collectiveMode=3 +11:06:24.909 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=575 +11:06:24.910 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.89985 drift=4.80887 speed=2.33773 vertical=1.5616 up=0.999024 groundContact=0 fuel=1937.51 engine=1 +11:06:24.910 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.53347,-2.49409,-0.434327> +11:06:24.910 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107662,0.193477,0.439317> +11:06:24.910 SCRIPT : ERR POWERED MOTION: offset=<-1.97461,-2.89985,4.38477> velocity=<0.406324,1.5616,-1.69154> angularLocal=<0.0929288,-0.0129278,0.016997> forward=<0.0441611,-0.0435163,0.998076> right=<0.999008,0.00757318,-0.0438722> +11:06:24.910 SCRIPT : ERR POWERED INPUT: pilotHooks=575 vehicleHooks=575 readback=1 collective=0.15458 cyclicF=0.0492364 cyclicR=-0.0268871 antiTorque=0.158792 rotorRPM=191.093 targetRPM=196 +11:06:24.911 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=575 applyCallbacks=940 beforeWriteSequence=575 writtenAgeMs=24.3594 beforeWriteAgeMs=24.3594 +11:06:24.911 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.15458 beforeWriteCollective=0.15458 writtenFRA=<0.0492364,-0.0268871,-0.00701212> beforeWriteFRA=<0.0492364,-0.0268871,0.158792> writtenThrottle=0 beforeWriteThrottle=0 +11:06:24.911 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.15458 cyclicForward=0.0492364 cyclicAside=-0.0268871 tailCollective=0.579396 autohover=0 collectiveMode=3 +11:06:25.421 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=584 +11:06:25.421 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.68959 drift=5.707 speed=2.15486 vertical=1.64321 up=0.995767 groundContact=0 fuel=1937.46 engine=1 +11:06:25.422 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.24611,-5.20094,-0.872839> +11:06:25.422 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.1593,0.115077,0.898268> +11:06:25.422 SCRIPT : ERR POWERED MOTION: offset=<-2.1748,-3.68959,5.27637> velocity=<0.338556,1.64321,-1.35227> angularLocal=<0.0906584,-0.00937594,0.0144032> forward=<0.0390307,-0.0906489,0.995118> right=<0.99917,0.0151706,-0.0378076> +11:06:25.422 SCRIPT : ERR POWERED INPUT: pilotHooks=584 vehicleHooks=584 readback=1 collective=0.146641 cyclicF=0.00468201 cyclicR=-0.0189743 antiTorque=0.14932 rotorRPM=193.056 targetRPM=196 +11:06:25.423 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=584 applyCallbacks=955 beforeWriteSequence=584 writtenAgeMs=58.6172 beforeWriteAgeMs=35.082 +11:06:25.423 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.146641 beforeWriteCollective=0.146641 writtenFRA=<0.00468201,-0.0189743,-0.00530162> beforeWriteFRA=<0.00468201,-0.0189743,0.14932> writtenThrottle=0 beforeWriteThrottle=0 +11:06:25.423 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.146641 cyclicForward=0.00468201 cyclicAside=-0.0189743 tailCollective=0.57466 autohover=0 collectiveMode=3 +11:06:25.932 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=594 +11:06:25.932 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.51246 drift=6.35925 speed=1.86075 vertical=1.67515 up=0.990883 groundContact=0 fuel=1937.46 engine=1 +11:06:25.933 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.05572,-7.6469,-1.21915> +11:06:25.933 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19742,0.00403404,1.31976> +11:06:25.933 SCRIPT : ERR POWERED MOTION: offset=<-2.33008,-4.51246,5.91699> velocity=<0.245382,1.67515,-0.772026> angularLocal=<0.0762974,-0.00704507,0.0110194> forward=<0.0355524,-0.133068,0.990469> right=<0.999232,0.0210873,-0.0330339> +11:06:25.933 SCRIPT : ERR POWERED INPUT: pilotHooks=594 vehicleHooks=594 readback=1 collective=0.139506 cyclicF=-0.0478116 cyclicR=-0.0105968 antiTorque=0.140292 rotorRPM=195.084 targetRPM=196 +11:06:25.933 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=594 applyCallbacks=970 beforeWriteSequence=593 writtenAgeMs=18.1445 beforeWriteAgeMs=43.5156 +11:06:25.934 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.138955 beforeWriteCollective=0.139506 writtenFRA=<-0.0531225,-0.00978026,-0.00394619> beforeWriteFRA=<-0.0478116,-0.0105968,0.140292> writtenThrottle=0 beforeWriteThrottle=0 +11:06:25.934 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.139506 cyclicForward=-0.0478116 cyclicAside=-0.0105968 tailCollective=0.570146 autohover=0 collectiveMode=3 +11:06:26.440 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=603 +11:06:26.440 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.3496 drift=6.65269 speed=1.64097 vertical=1.63523 up=0.985935 groundContact=0 fuel=1937.42 engine=1 +11:06:26.440 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.91449,-9.51001,-1.46308> +11:06:26.441 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.218243,-0.176775,1.61678> +11:06:26.441 SCRIPT : ERR POWERED MOTION: offset=<-2.43408,-5.3496,6.19141> velocity=<0.137013,1.63523,-0.00368975> angularLocal=<0.0498566,-0.00568927,0.00720141> forward=<0.0329488,-0.16522,0.985706> right=<0.999257,0.0251818,-0.0291809> +11:06:26.441 SCRIPT : ERR POWERED INPUT: pilotHooks=603 vehicleHooks=603 readback=1 collective=0.136091 cyclicF=-0.105014 cyclicR=-0.00189645 antiTorque=0.136255 rotorRPM=196 targetRPM=196 +11:06:26.441 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=603 applyCallbacks=986 beforeWriteSequence=603 writtenAgeMs=26.7148 beforeWriteAgeMs=14.4023 +11:06:26.441 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.136091 beforeWriteCollective=0.136091 writtenFRA=<-0.105014,-0.00189645,-0.00295208> beforeWriteFRA=<-0.105014,-0.00189645,0.136255> writtenThrottle=0 beforeWriteThrottle=0 +11:06:26.442 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.136013 cyclicForward=-0.100103 cyclicAside=-0.00264369 tailCollective=0.568099 autohover=0 collectiveMode=3 +11:06:26.951 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=612 +11:06:26.951 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.1407 drift=6.49862 speed=1.67892 vertical=1.45584 up=0.983076 groundContact=0 fuel=1937.42 engine=1 +11:06:26.951 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.79651,-10.4365,-1.59402> +11:06:26.952 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.218676,-0.56453,1.70072> +11:06:26.952 SCRIPT : ERR POWERED MOTION: offset=<-2.47754,-6.1407,6.00781> velocity=<0.0269669,1.45584,0.835808> angularLocal=<0.0137505,-0.00388931,0.00338115> forward=<0.0308312,-0.181146,0.982973> right=<0.99928,0.0273572,-0.0263012> +11:06:26.952 SCRIPT : ERR POWERED INPUT: pilotHooks=612 vehicleHooks=612 readback=1 collective=0.119218 cyclicF=-0.147468 cyclicR=0.00482987 antiTorque=0.127923 rotorRPM=196 targetRPM=196 +11:06:26.952 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=612 applyCallbacks=1001 beforeWriteSequence=612 writtenAgeMs=58.5898 beforeWriteAgeMs=13.9648 +11:06:26.953 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.119218 beforeWriteCollective=0.119218 writtenFRA=<-0.147468,0.00482987,-0.00232647> beforeWriteFRA=<-0.147468,0.00482987,0.127923> writtenThrottle=0 beforeWriteThrottle=0 +11:06:26.953 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.119218 cyclicForward=-0.147468 cyclicAside=0.00482987 tailCollective=0.564494 autohover=0 collectiveMode=3 +11:06:27.455 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=621 +11:06:27.455 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.79412 drift=5.88025 speed=2.05433 vertical=1.13991 up=0.983843 groundContact=0 fuel=1937.37 engine=1 +11:06:27.455 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.69262,-10.1877,-1.61544> +11:06:27.456 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.200241,-0.612202,1.64764> +11:06:27.456 SCRIPT : ERR POWERED MOTION: offset=<-2.4624,-6.79412,5.33984> velocity=<-0.0802435,1.13991,1.70717> angularLocal=<-0.0284465,-0.00282565,-0.000323308> forward=<0.0290718,-0.176873,0.983804> right=<0.999314,0.0277466,-0.0245417> +11:06:27.456 SCRIPT : ERR POWERED INPUT: pilotHooks=621 vehicleHooks=621 readback=1 collective=0.101477 cyclicF=-0.15 cyclicR=0.0105065 antiTorque=0.11916 rotorRPM=196 targetRPM=196 +11:06:27.456 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=621 applyCallbacks=1016 beforeWriteSequence=621 writtenAgeMs=56.6445 beforeWriteAgeMs=27.2266 +11:06:27.456 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.101477 beforeWriteCollective=0.101477 writtenFRA=<-0.15,0.0105065,-0.00162783> beforeWriteFRA=<-0.15,0.0105065,0.11916> writtenThrottle=0 beforeWriteThrottle=0 +11:06:27.457 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.101477 cyclicForward=-0.15 cyclicAside=0.0105065 tailCollective=0.55958 autohover=0 collectiveMode=3 +11:06:27.965 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=630 +11:06:27.965 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.30888 drift=4.82767 speed=2.63597 vertical=0.865687 up=0.987975 groundContact=0 fuel=1937.37 engine=1 +11:06:27.966 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.58087,-8.76146,-1.53818> +11:06:27.966 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.188177,-0.487518,1.43396> +11:06:27.966 SCRIPT : ERR POWERED MOTION: offset=<-2.39209,-7.30888,4.19336> velocity=<-0.177657,0.865687,2.48341> angularLocal=<-0.0663617,-0.00203948,-0.00342586> forward=<0.0272659,-0.152321,0.987955> right=<0.999372,0.0265299,-0.0234907> +11:06:27.966 SCRIPT : ERR POWERED INPUT: pilotHooks=630 vehicleHooks=630 readback=1 collective=0.086668 cyclicF=-0.15 cyclicR=0.0151215 antiTorque=0.113035 rotorRPM=196 targetRPM=196 +11:06:27.967 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=630 applyCallbacks=1031 beforeWriteSequence=630 writtenAgeMs=54.7891 beforeWriteAgeMs=25.293 +11:06:27.967 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.086668 beforeWriteCollective=0.086668 writtenFRA=<-0.15,0.0151215,-0.000782894> beforeWriteFRA=<-0.15,0.0151215,0.113035> writtenThrottle=0 beforeWriteThrottle=0 +11:06:27.967 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.086668 cyclicForward=-0.15 cyclicAside=0.0151215 tailCollective=0.556517 autohover=0 collectiveMode=3 +11:06:28.466 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=639 +11:06:28.467 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.70592 drift=3.50479 speed=3.19223 vertical=0.671457 up=0.993598 groundContact=0 fuel=1937.33 engine=1 +11:06:28.467 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.47476,-6.33783,-1.38392> +11:06:28.467 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.16804,-0.31909,1.05228> +11:06:28.467 SCRIPT : ERR POWERED MOTION: offset=<-2.27393,-7.70592,2.66699> velocity=<-0.267014,0.671457,3.10937> angularLocal=<-0.09884,-0.00106336,-0.00602943> forward=<0.0255793,-0.110391,0.993559> right=<0.999446,0.0240041,-0.0230639> +11:06:28.467 SCRIPT : ERR POWERED INPUT: pilotHooks=639 vehicleHooks=639 readback=1 collective=0.0697308 cyclicF=-0.15 cyclicR=0.0185776 antiTorque=0.104934 rotorRPM=196 targetRPM=196 +11:06:28.468 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=639 applyCallbacks=1046 beforeWriteSequence=639 writtenAgeMs=40.7422 beforeWriteAgeMs=40.7422 +11:06:28.468 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0697308 beforeWriteCollective=0.0697308 writtenFRA=<-0.15,0.0185776,4.47428e-05> beforeWriteFRA=<-0.15,0.0185776,0.104934> writtenThrottle=0 beforeWriteThrottle=0 +11:06:28.468 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0697308 cyclicForward=-0.15 cyclicAside=0.0185776 tailCollective=0.552467 autohover=0 collectiveMode=3 +11:06:28.979 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=648 +11:06:28.979 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.04956 drift=2.26105 speed=3.57428 vertical=0.561098 up=0.998412 groundContact=0 fuel=1937.33 engine=1 +11:06:28.980 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.38505,-3.01149,-1.16543> +11:06:28.980 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.139713,-0.153669,0.500178> +11:06:28.980 SCRIPT : ERR POWERED MOTION: offset=<-2.10889,-8.04956,0.81543> velocity=<-0.346758,0.561098,3.51289> angularLocal=<-0.125464,-1.21953e-05,-0.00813331> forward=<0.0241379,-0.0525363,0.998327> right=<0.999527,0.0203111,-0.023098> +11:06:28.980 SCRIPT : ERR POWERED INPUT: pilotHooks=648 vehicleHooks=648 readback=1 collective=0.0484156 cyclicF=-0.15 cyclicR=0.0207343 antiTorque=0.0931352 rotorRPM=196 targetRPM=196 +11:06:28.980 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=648 applyCallbacks=1062 beforeWriteSequence=648 writtenAgeMs=56.332 beforeWriteAgeMs=14.3047 +11:06:28.981 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0484156 beforeWriteCollective=0.0484156 writtenFRA=<-0.15,0.0207343,0.000646877> beforeWriteFRA=<-0.15,0.0207343,0.0931352> writtenThrottle=0 beforeWriteThrottle=0 +11:06:28.981 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0484156 cyclicForward=-0.15 cyclicAside=0.0207343 tailCollective=0.547218 autohover=0 collectiveMode=3 +11:06:29.480 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=658 +11:06:29.480 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.36654 drift=2.2273 speed=3.65593 vertical=0.508016 up=0.99975 groundContact=0 fuel=1937.28 engine=1 +11:06:29.480 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.32634,0.90623,-0.906628> +11:06:29.480 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.106121,-0.0900793,-0.156684> +11:06:29.481 SCRIPT : ERR POWERED MOTION: offset=<-1.91016,-8.36654,-1.14551> velocity=<-0.408176,0.508016,3.59738> angularLocal=<-0.144134,0.000789507,-0.00956501> forward=<0.023144,0.015816,0.999607> right=<0.999601,0.015821,-0.0233942> +11:06:29.481 SCRIPT : ERR POWERED INPUT: pilotHooks=658 vehicleHooks=658 readback=1 collective=0.0189409 cyclicF=-0.129739 cyclicR=0.0216149 antiTorque=0.0793393 rotorRPM=196 targetRPM=196 +11:06:29.481 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=658 applyCallbacks=1077 beforeWriteSequence=658 writtenAgeMs=24.1641 beforeWriteAgeMs=12.4844 +11:06:29.481 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0189409 beforeWriteCollective=0.0189409 writtenFRA=<-0.129739,0.0216149,0.00102812> beforeWriteFRA=<-0.129739,0.0216149,0.0793393> writtenThrottle=0 beforeWriteThrottle=0 +11:06:29.481 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0218337 cyclicForward=-0.13474 cyclicAside=0.0215882 tailCollective=0.540669 autohover=0 collectiveMode=3 +11:06:29.989 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=667 +11:06:29.990 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.67973 drift=3.52234 speed=3.38219 vertical=0.464191 up=0.995811 groundContact=0 fuel=1937.28 engine=1 +11:06:29.990 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.30077,5.2101,-0.614467> +11:06:29.990 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0704008,0.0402439,-0.908174> +11:06:29.990 SCRIPT : ERR POWERED MOTION: offset=<-1.68213,-8.67973,-3.09473> velocity=<-0.453078,0.464191,3.3194> angularLocal=<-0.147432,0.0010191,-0.0103665> forward=<0.0226069,0.0908082,0.995612> right=<0.999663,0.01068,-0.023673> +11:06:29.990 SCRIPT : ERR POWERED INPUT: pilotHooks=667 vehicleHooks=667 readback=1 collective=0 cyclicF=-0.0749044 cyclicR=0.0210997 antiTorque=0.0678214 rotorRPM=196 targetRPM=196 +11:06:29.991 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=667 applyCallbacks=1092 beforeWriteSequence=666 writtenAgeMs=12.6992 beforeWriteAgeMs=27.5234 +11:06:29.991 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0667974,0.0209798,0.00119987> beforeWriteFRA=<-0.0749044,0.0210997,0.0678214> writtenThrottle=0 beforeWriteThrottle=0 +11:06:29.991 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0749044 cyclicAside=0.0210997 tailCollective=0.533911 autohover=0 collectiveMode=3 +11:06:30.492 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=676 +11:06:30.492 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.00703 drift=4.98678 speed=2.76828 vertical=0.52812 up=0.986807 groundContact=0 fuel=1937.24 engine=1 +11:06:30.492 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.29487,9.31216,-0.311805> +11:06:30.493 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0345325,0.130742,-1.62855> +11:06:30.493 SCRIPT : ERR POWERED MOTION: offset=<-1.43652,-9.00703,-4.77539> velocity=<-0.479257,0.52812,2.67484> angularLocal=<-0.13411,0.00098458,-0.0104711> forward=<0.0223,0.161813,0.986569> right=<0.99971,0.00537028,-0.0234778> +11:06:30.493 SCRIPT : ERR POWERED INPUT: pilotHooks=676 vehicleHooks=676 readback=1 collective=0 cyclicF=0.0025643 cyclicR=0.0192639 antiTorque=0.0679573 rotorRPM=196 targetRPM=196 +11:06:30.494 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=676 applyCallbacks=1107 beforeWriteSequence=676 writtenAgeMs=43.8984 beforeWriteAgeMs=21.5781 +11:06:30.494 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0025643,0.0192639,0.00129055> beforeWriteFRA=<0.0025643,0.0192639,0.0679573> writtenThrottle=0 beforeWriteThrottle=0 +11:06:30.494 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0025643 cyclicAside=0.0192639 tailCollective=0.533979 autohover=0 collectiveMode=3 +11:06:32.525 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=715 +11:06:32.525 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.76712 drift=5.7899 speed=2.23333 vertical=-0.252845 up=0.959675 groundContact=0 fuel=1937.15 engine=1 +11:06:32.525 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.41214,16.3118,0.703366> +11:06:32.525 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0909465,-0.734179,-2.64052> +11:06:32.526 SCRIPT : ERR POWERED MOTION: offset=<-0.461426,-9.76712,-5.77148> velocity=<-0.408527,-0.252845,-2.18104> angularLocal=<0.0214384,0.000557532,-0.00549838> forward=<0.0236521,0.280864,0.959456> right=<0.999706,-0.0117816,-0.0211955> +11:06:32.526 SCRIPT : ERR POWERED INPUT: pilotHooks=715 vehicleHooks=715 readback=1 collective=0 cyclicF=0.15 cyclicR=0.00457677 antiTorque=0.0669034 rotorRPM=196 targetRPM=196 +11:06:32.526 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=715 applyCallbacks=1168 beforeWriteSequence=715 writtenAgeMs=24.8086 beforeWriteAgeMs=13.8125 +11:06:32.526 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.15,0.00457677,0.000236641> beforeWriteFRA=<0.15,0.00457677,0.0669034> writtenThrottle=0 beforeWriteThrottle=0 +11:06:32.526 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.15 cyclicAside=0.00496829 tailCollective=0.533454 autohover=0 collectiveMode=3 +11:06:34.544 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=751 +11:06:34.545 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.41809 drift=3.93025 speed=6.3878 vertical=-0.338258 up=0.994591 groundContact=0 fuel=1937.06 engine=1 +11:06:34.545 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.32725,5.89992,0.860548> +11:06:34.545 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.141689,0.595352,-1.03766> +11:06:34.545 SCRIPT : ERR POWERED MOTION: offset=<0.140625,-8.41809,3.92773> velocity=<-0.155124,-0.338258,-6.37695> angularLocal=<0.137389,0.00164842,0.00228982> forward=<0.0230401,0.102791,0.994436> right=<0.999655,-0.0149393,-0.0216168> +11:06:34.545 SCRIPT : ERR POWERED INPUT: pilotHooks=751 vehicleHooks=751 readback=1 collective=0.0384276 cyclicF=0.15 cyclicR=-0.00976765 antiTorque=0.0884025 rotorRPM=196 targetRPM=196 +11:06:34.546 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=751 applyCallbacks=1228 beforeWriteSequence=751 writtenAgeMs=51.6875 beforeWriteAgeMs=40.3828 +11:06:34.546 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0384276 beforeWriteCollective=0.0384276 writtenFRA=<0.15,-0.00976765,0.000764881> beforeWriteFRA=<0.15,-0.00976765,0.0884025> writtenThrottle=0 beforeWriteThrottle=0 +11:06:34.546 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0384276 cyclicForward=0.15 cyclicAside=-0.00976765 tailCollective=0.544201 autohover=0 collectiveMode=3 +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/error.log.txt b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/error.log.txt new file mode 100644 index 0000000..7cbc9a7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58\error.log started at 2026-09-19 11:05:00 (2026-09-19 09:05:00 UTC) + +11:05:00.498 INIT : Workbench startup +11:05:00.498 INIT : Workbench Init Engine +11:05:00.498 RESOURCES : ResourceDB: full scan +11:05:00.498 RESOURCES : processing files... +11:05:00.498 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:05:00.498 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:05:00.498 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:05:03.778 INIT : Workbench Create Game +11:05:03.778 SCRIPT : Compiling Game scripts +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:05:03.947 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.076 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:05:04.115 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:05:04.261 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:05:04.325 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:05:04.393 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.426 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:05:13.145 WORLD : CreateEntities +11:05:13.145 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:05:13.145 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:05:13.145 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:05:28.314 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:05:33.043 WORLD : Game::LoadEntities +11:05:33.043 WORLD : CreateEntities +11:05:33.043 WORLD : CreateEntities +11:05:33.043 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:05:33.043 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:05:33.043 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:05:34.427 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:05:34.427 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:05:34.427 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:05:34.427 ENTITY : CreateComponent 'Hierarchy' +11:05:34.427 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:05:34.432 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:05:34.432 ENTITY : CreateComponent 'Hierarchy' +11:05:34.432 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:05:34.436 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:05:34.436 ENTITY : CreateComponent 'Hierarchy' +11:05:34.436 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:05:34.437 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:05:34.437 ENTITY : CreateComponent 'Hierarchy' +11:05:34.437 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:05:34.437 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:05:34.437 ENTITY : CreateComponent 'Hierarchy' +11:05:34.437 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:05:41.357 WORLD : InitEntities 'world' +11:05:41.357 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:05:41.357 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:05:41.907 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.908 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:05:41.908 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.908 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! +11:05:41.908 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! +11:05:41.911 SCRIPT (W): Can't open config file "" +11:05:41.917 WORLD : InitEntities 'world' +11:05:41.917 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:05:41.917 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:05:41.917 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:05:41.918 SCRIPT (W): Slot_Chat Has no Content! +11:05:41.918 SCRIPT (W): Slot_VON Has no Content! +11:05:41.918 SCRIPT (W): Slot_AvailableActions Has no Content! +11:05:41.918 SCRIPT (W): Slot_Vehicle Has no Content! +11:05:41.918 SCRIPT (W): Slot_GameVersion Has no Content! +11:05:41.918 SCRIPT (W): Slot_Notifications Has no Content! +11:05:41.918 SCRIPT (W): Slot_Hints Has no Content! +11:05:41.929 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:05:41.929 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:05:41.929 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:05:41.929 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. +11:05:41.930 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. +11:05:41.934 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:05:42.186 WORLD : UpdateEntities +11:05:42.187 WORLD : PostFrame +11:05:42.187 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:05:42.187 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:05:42.230 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:05:42.230 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:05:42.230 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:05:42.231 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:05:44.655 WORLD : UpdateEntities +11:05:44.656 WORLD : AfterPostSimulate +11:05:44.656 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:06:11.413 WORLD : UpdateEntities +11:06:11.414 WORLD : AfterPostSimulate +11:06:11.414 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/headless-launch.log.txt new file mode 100644 index 0000000..b085484 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555591aaaeb0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555591aaaeb0 +[Gamescope WSI] Destroyed swapchain: 0x555591aaaeb0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555591aaaeb0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555591aaaeb0 +[Gamescope WSI] Destroyed swapchain: 0x555591aaaeb0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555591aaaeb0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source-sha256.json new file mode 100644 index 0000000..6bfa418 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source.json b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source.json new file mode 100644 index 0000000..824eefa --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "543bbc88-4240-457e-92dc-069cb9522e15", + "captured_unix": 1789808697.0457647, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "a3a60bd81d6d2756ac4d17029be655e17212e64dc69991c9c76afbf5023a41f6" +} diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/report.json b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/report.json new file mode 100644 index 0000000..363e609 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-110458-flight-heading-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 70, + "script_or_runtime_failures": [ + "11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/runner.json.txt new file mode 100644 index 0000000..6a2639c --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789808796.919526, + "console_sha256": "460178ad9b9616cee02f951fb61d5889d0014b9ecf8bb4ce42db0f1984ac5190", + "end_source_sha256": "a3a60bd81d6d2756ac4d17029be655e17212e64dc69991c9c76afbf5023a41f6", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "543bbc88-4240-457e-92dc-069cb9522e15", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "a3a60bd81d6d2756ac4d17029be655e17212e64dc69991c9c76afbf5023a41f6", + "started_unix": 1789808697.0458443, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-04-58", + "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/native-2026-09-19-110458-flight-heading-refusal/script.log.txt b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/script.log.txt new file mode 100644 index 0000000..f750ca5 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/script.log.txt @@ -0,0 +1,589 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-04-58\script.log started at 2026-09-19 11:05:01 (2026-09-19 09:05:01 UTC) + +11:05:01.618 SCRIPT : SCRIPT : Initializing scripts +11:05:01.618 SCRIPT : SCRIPT : ScriptProjectManager init +11:05:02.537 SCRIPT : SCRIPT : Compiling GameLib scripts +11:05:02.594 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:05:02.595 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:05:02.596 SCRIPT : SCRIPT : Compiling Game scripts +11:05:03.778 SCRIPT : Compiling Game scripts +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:05:03.778 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:05:03.947 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.077 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:05:04.115 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:05:04.226 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:05:04.261 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:05:04.324 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:05:04.325 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.367 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:05:04.368 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:05:04.393 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:05:04.426 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:05:04.697 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:05:04.704 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33009K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 8af41c8d +11:05:05.625 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:05:05.625 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:05:24.923 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:05:28.311 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:05:28.311 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:05:41.357 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:05:41.384 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:05:41.908 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! +11:05:41.908 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! +11:05:41.911 SCRIPT (W): Can't open config file "" +11:05:41.917 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:05:41.918 SCRIPT (W): Slot_Chat Has no Content! +11:05:41.918 SCRIPT (W): Slot_VON Has no Content! +11:05:41.918 SCRIPT (W): Slot_AvailableActions Has no Content! +11:05:41.918 SCRIPT (W): Slot_Vehicle Has no Content! +11:05:41.918 SCRIPT (W): Slot_GameVersion Has no Content! +11:05:41.918 SCRIPT (W): Slot_Notifications Has no Content! +11:05:41.918 SCRIPT (W): Slot_Hints Has no Content! +11:05:41.929 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. +11:05:41.930 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. +11:05:41.934 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:05:41.989 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:05:42.003 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:05:42.187 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:05:43.715 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:05:43.735 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:05:43.735 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:05:43.764 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:05:43.767 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:05:43.821 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:05:43.822 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:05:43.828 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:05:43.881 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:05:43.882 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:05:43.884 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:05:43.884 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:05:43.888 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:05:43.889 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:05:43.890 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:05:43.891 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:05:43.891 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:05:43.891 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:05:43.891 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:05:43.891 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:05:43.892 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.892 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:05:43.892 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.892 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:05:43.892 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:05:43.893 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.893 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:43.894 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.725 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.726 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:44.977 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5309,7499.7> up=0.995681 +11:05:44.979 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:05:44.980 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:44.980 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.616,7501.97> +11:05:44.980 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.316,7501.97> terrainY=63.3164 tireTerrainGap=-0.000377655 +11:05:44.980 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.616,7501.97> radius=0.3 bottom=<7012.07,63.316,7501.97> fraction=0.452915 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000358582 +11:05:44.980 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6032,7497.71> +11:05:44.981 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1532,7497.71> terrainY=64.1555 tireTerrainGap=-0.00235748 +11:05:44.981 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6032,7497.71> radius=0.45 bottom=<7009.88,64.1532,7497.71> fraction=0.443946 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00232697 +11:05:44.981 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2644,7497.74> +11:05:44.981 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8144,7497.74> terrainY=63.8179 tireTerrainGap=-0.00347519 +11:05:44.981 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2644,7497.74> radius=0.45 bottom=<7014.42,63.8144,7497.74> fraction=0.438611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00350571 +11:05:44.981 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.233 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:45.234 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:05:45.746 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:45.747 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:45.747 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.066 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5347,7499.71> up=0.994334 +11:05:46.066 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954657 angularSpeed=0.0274343 +11:05:46.066 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:46.066 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6187,7501.99> +11:05:46.066 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3187,7501.99> terrainY=63.3146 tireTerrainGap=0.00416946 +11:05:46.067 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6187,7501.99> radius=0.3 bottom=<7012.07,63.3187,7501.99> fraction=0.473655 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.0042038 +11:05:46.067 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71> +11:05:46.067 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00301361 +11:05:46.067 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468312 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00302887 +11:05:46.067 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2648,7497.78> +11:05:46.067 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8148,7497.78> terrainY=63.8155 tireTerrainGap=-0.000720978 +11:05:46.068 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2648,7497.78> radius=0.45 bottom=<7014.47,63.8148,7497.78> fraction=0.451111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00075531 +11:05:46.068 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.068 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:05:46.069 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.561 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:05:46.561 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.561 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:46.562 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:47.063 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5314,7499.74> up=0.994217 +11:05:47.063 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0409494 angularSpeed=0.0213691 +11:05:47.063 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:47.063 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6137,7502.01> +11:05:47.063 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3137,7502.01> terrainY=63.3116 tireTerrainGap=0.0021019 +11:05:47.063 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6137,7502.01> radius=0.3 bottom=<7012.08,63.3137,7502.01> fraction=0.464236 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00213242 +11:05:47.064 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5947,7497.72> +11:05:47.064 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1448,7497.72> terrainY=64.1428 tireTerrainGap=0.00193024 +11:05:47.064 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5947,7497.72> radius=0.45 bottom=<7009.97,64.1448,7497.72> fraction=0.463825 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00204468 +11:05:47.064 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.82> +11:05:47.064 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.82> terrainY=63.8128 tireTerrainGap=-0.00243759 +11:05:47.064 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.82> radius=0.45 bottom=<7014.51,63.8104,7497.82> fraction=0.443333 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00246811 +11:05:47.065 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:05:47.065 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.066 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:47.570 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:05:48.077 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994143 +11:05:48.077 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:05:48.078 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:48.078 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:05:48.078 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:05:48.078 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:05:48.078 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:05:48.078 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00250244 +11:05:48.079 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:05:48.079 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:05:48.079 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00201797 +11:05:48.079 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:05:48.079 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.080 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.585 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:48.586 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.089 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994143 +11:05:49.090 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:05:49.090 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:05:49.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:05:49.090 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:05:49.090 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:05:49.090 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:05:49.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00250244 +11:05:49.091 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:05:49.091 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:05:49.091 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00201797 +11:05:49.091 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:05:49.091 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:05:49.092 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.092 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:05:49.093 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:05:49.093 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:05:49.094 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:05:49.094 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:05:49.095 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:05:49.095 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:05:49.095 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:05:49.095 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:05:49.233 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:05:49.273 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:05:49.487 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.488 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:05:49.488 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.489 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:05:49.489 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:05:49.489 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:05:49.489 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:05:49.490 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:05:49.490 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.490 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:05:49.491 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.491 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:05:49.491 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:05:49.491 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:05:49.492 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:05:49.492 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:05:49.492 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:05:49.493 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:05:49.493 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:05:49.493 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:05:49.494 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:05:49.494 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:05:49.495 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:05:49.495 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:05:49.495 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:05:49.495 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:05:49.524 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:05:49.525 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:05:49.526 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:05:49.527 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:05:49.528 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:05:49.529 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:05:49.996 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:05:49.996 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:05:50.005 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:05:50.005 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:05:50.504 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:05:50.504 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:05:50.504 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:05:50.504 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:05:50.504 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:05:50.524 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:05:50.524 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:05:51.011 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28983.2 +11:05:51.012 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:05:51.012 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081463CA8> activeSeat=PilotCompartmentSlot<0x0000000081463CA8> group=<0x00000001BA36BEE0> SCR_AIGroup actualGroup=<0x00000001BA36BEE0> SCR_AIGroup +11:05:51.012 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:05:51.012 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:05:51.013 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:05:51.013 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:05:53.024 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=9995.64 remainingMs=26971.1 +11:05:53.024 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:05:53.025 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491211 29.396900 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA77A130> @"ENTITY:4611686018427390722" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491211 29.396900 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081463CA8> activeSeat=PilotCompartmentSlot<0x0000000081463CA8> group=<0x00000001BA36BEE0> SCR_AIGroup actualGroup=<0x00000001BA36BEE0> SCR_AIGroup +11:05:53.025 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:05:53.025 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:05:53.025 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996297 entityOrigin=<4801.01,27.5723,11487.4> +11:05:53.025 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:05:53.523 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:05:53.524 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0534073 input=1 simulation=1 +11:05:53.579 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0546114 input=1 simulation=1 +11:05:53.635 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0566771 input=1 simulation=1 +11:05:53.689 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0514278 input=1 simulation=1 +11:05:54.029 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:05:54.029 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0124302 drift=0.0275219 speed=0.0363643 vertical=-0.0109936 up=0.996186 groundContact=1 fuel=1938.75 engine=0 +11:05:54.029 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.57203,4.49572,2.20286> +11:05:54.029 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.121492,-0.645408,0.0310444> +11:05:54.030 SCRIPT : ERR POWERED MOTION: offset=<-0.0249023,-0.0124302,0.0117188> velocity=<0.0338432,-0.0109936,0.00749283> angularLocal=<0.0151757,0.0579201,0.00572153> forward=<0.0273493,0.0783846,0.996548> right=<0.998968,-0.0383194,-0.0244016> +11:05:54.030 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:05:54.030 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=10.3262 beforeWriteAgeMs=21.8369 +11:05:54.030 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:05:54.030 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:05:54.031 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:05:54.031 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:05:54.031 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.59,31.488,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7787 +11:05:54.031 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7455,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6822 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:05:54.032 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6671 damageSphere=27.6822 simulationSphere=16.458 completeSphere=27.6822 initialDrift=0.0996859 initialHeight=-0.223612 +11:05:54.033 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:05:54.033 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:05:56.061 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +11:05:56.061 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00614738 drift=0.038882 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +11:05:56.061 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.88881,4.59371,2.18342> +11:05:56.062 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:05:56.062 SCRIPT : ERR POWERED MOTION: offset=<-0.0385742,0.00614738,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328541,0.0800895,0.996246> right=<0.998832,-0.0379763,-0.0298864> +11:05:56.062 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:05:56.062 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=76 beforeWriteSequence=48 writtenAgeMs=23.7373 beforeWriteAgeMs=13.668 +11:05:56.062 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:05:56.063 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:05:58.079 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=86 +11:05:58.079 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0105667 drift=0.130015 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +11:05:58.079 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.51409,4.60719,2.1668> +11:05:58.080 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109307,-0.0708191> +11:05:58.080 SCRIPT : ERR POWERED MOTION: offset=<-0.129883,0.0105667,-0.00585938> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204044,-0.0427907,-0.000639235> forward=<0.0437233,0.0803239,0.995809> right=<0.998456,-0.0376865,-0.0407996> +11:05:58.080 SCRIPT : ERR POWERED INPUT: pilotHooks=86 vehicleHooks=86 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000330322 targetRPM=196 +11:05:58.080 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=86 applyCallbacks=136 beforeWriteSequence=86 writtenAgeMs=46.2725 beforeWriteAgeMs=24.0469 +11:05:58.081 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:05:58.081 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:00.095 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=123 +11:06:00.096 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0136871 drift=0.221269 speed=0.0438123 vertical=-0.00226769 up=0.99608 groundContact=1 fuel=1938.57 engine=1 +11:06:00.096 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<3.15866,4.59765,2.15089> +11:06:00.096 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494648,0.00328747,0.0203781> +11:06:00.097 SCRIPT : ERR POWERED MOTION: offset=<-0.221191,0.0136871,-0.00585938> velocity=<0.0436935,-0.00226769,0.00229078> angularLocal=<-1.09793e-05,-0.0428091,-0.000768756> forward=<0.0549238,0.0801581,0.995268> right=<0.997943,-0.0374105,-0.0520584> +11:06:00.097 SCRIPT : ERR POWERED INPUT: pilotHooks=123 vehicleHooks=123 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0239029 targetRPM=196 +11:06:00.097 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=123 applyCallbacks=197 beforeWriteSequence=123 writtenAgeMs=59.6699 beforeWriteAgeMs=13.7832 +11:06:00.097 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:00.097 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:02.113 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=162 +11:06:02.113 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0167809 drift=0.312067 speed=0.0440748 vertical=-0.00217562 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +11:06:02.113 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<3.76692,4.58676,2.13541> +11:06:02.113 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511698,0.00175333,0.0247809> +11:06:02.114 SCRIPT : ERR POWERED MOTION: offset=<-0.312012,0.0167809,-0.00585938> velocity=<0.0439499,-0.00217562,0.00250313> angularLocal=<0.000393733,-0.0428488,-0.000908049> forward=<0.0654875,0.0799686,0.994644> right=<0.997342,-0.037142,-0.062679> +11:06:02.114 SCRIPT : ERR POWERED INPUT: pilotHooks=162 vehicleHooks=162 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.393161 targetRPM=196 +11:06:02.114 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=162 applyCallbacks=257 beforeWriteSequence=162 writtenAgeMs=28.793 beforeWriteAgeMs=28.793 +11:06:02.114 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:02.114 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:04.127 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=200 +11:06:04.127 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0199318 drift=0.404339 speed=0.0450023 vertical=-0.00189036 up=0.996135 groundContact=1 fuel=1938.39 engine=1 +11:06:04.127 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<4.38576,4.57368,2.11735> +11:06:04.127 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0542685,-0.00315286,0.0212518> +11:06:04.128 SCRIPT : ERR POWERED MOTION: offset=<-0.404297,0.0199318,-0.00585938> velocity=<0.0448938,-0.00189036,0.00248573> angularLocal=<0.000681852,0.0559877,0.00210466> forward=<0.0762278,0.079741,0.993897> right=<0.996616,-0.0368287,-0.0734815> +11:06:04.128 SCRIPT : ERR POWERED INPUT: pilotHooks=200 vehicleHooks=200 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.12634 targetRPM=196 +11:06:04.128 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=200 applyCallbacks=317 beforeWriteSequence=200 writtenAgeMs=46.8438 beforeWriteAgeMs=34.7129 +11:06:04.128 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:04.128 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:06.150 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=239 +11:06:06.150 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0211201 drift=0.496118 speed=0.0446657 vertical=0.00085836 up=0.996168 groundContact=1 fuel=1938.31 engine=1 +11:06:06.150 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<4.83594,4.56026,2.09536> +11:06:06.150 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0801826,-0.000956358,0.00795863> +11:06:06.150 SCRIPT : ERR POWERED MOTION: offset=<-0.496094,0.0211201,-0.00488281> velocity=<0.0446249,0.00085836,0.00170683> angularLocal=<0.000750688,0.0545862,0.00211499> forward=<0.0840361,0.0795075,0.993286> right=<0.996019,-0.036447,-0.0813499> +11:06:06.150 SCRIPT : ERR POWERED INPUT: pilotHooks=239 vehicleHooks=239 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.1971 targetRPM=196 +11:06:06.151 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=239 applyCallbacks=378 beforeWriteSequence=239 writtenAgeMs=35.8691 beforeWriteAgeMs=22.9355 +11:06:06.151 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:06.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:08.160 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=275 +11:06:08.161 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0136566 drift=0.573255 speed=0.0398788 vertical=0.00615219 up=0.996218 groundContact=1 fuel=1938.22 engine=1 +11:06:08.161 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<5.22678,4.5303,2.08173> +11:06:08.161 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0122476,0.0027123,-0.0518002> +11:06:08.161 SCRIPT : ERR POWERED MOTION: offset=<-0.573242,0.0136566,-0.00390625> velocity=<0.0383889,0.00615219,-0.00887453> angularLocal=<0.000606402,-0.0462743,-0.000858448> forward=<0.0908135,0.0789863,0.992731> right=<0.995446,-0.0362116,-0.0881807> +11:06:08.161 SCRIPT : ERR POWERED INPUT: pilotHooks=275 vehicleHooks=275 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=61.7593 targetRPM=196 +11:06:08.162 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=275 applyCallbacks=438 beforeWriteSequence=275 writtenAgeMs=48.666 beforeWriteAgeMs=16.7891 +11:06:08.162 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:06:08.162 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:06:10.183 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=312 +11:06:10.183 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00348854 drift=0.637698 speed=0.031133 vertical=0.00477819 up=0.996287 groundContact=1 fuel=1938.13 engine=1 +11:06:10.184 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<5.72119,4.48525,2.06967> +11:06:10.184 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.1958,0.00280224,0.023666> +11:06:10.184 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00348854,-0.00195312> velocity=<0.0278638,0.00477819,-0.0130399> angularLocal=<-9.14626e-06,0.055654,0.00119417> forward=<0.0993824,0.0782024,0.991972> right=<0.994651,-0.0360042,-0.0968125> +11:06:10.184 SCRIPT : ERR POWERED INPUT: pilotHooks=312 vehicleHooks=312 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.737977 rotorRPM=86.9359 targetRPM=196 +11:06:10.185 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=312 applyCallbacks=499 beforeWriteSequence=312 writtenAgeMs=26.5547 beforeWriteAgeMs=13.9316 +11:06:10.185 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.737977> writtenThrottle=0 beforeWriteThrottle=0 +11:06:10.185 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.870108 autohover=0 collectiveMode=3 +11:06:12.218 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=349 +11:06:12.219 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00548172 drift=0.702148 speed=0.0268787 vertical=0.0050984 up=0.996353 groundContact=1 fuel=1938.04 engine=1 +11:06:12.219 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.19451,4.4431,2.05588> +11:06:12.219 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.302581,0.00704261,0.0355307> +11:06:12.219 SCRIPT : ERR POWERED MOTION: offset=<-0.702148,-0.00548172,0> velocity=<0.0176056,0.0050984,-0.01966> angularLocal=<0.000150422,0.0547094,0.000830817> forward=<0.10758,0.077469,0.991174> right=<0.993821,-0.0357663,-0.105072> +11:06:12.219 SCRIPT : ERR POWERED INPUT: pilotHooks=349 vehicleHooks=349 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.530756 rotorRPM=104.803 targetRPM=196 +11:06:12.220 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=349 applyCallbacks=560 beforeWriteSequence=349 writtenAgeMs=63.1758 beforeWriteAgeMs=15.1699 +11:06:12.220 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.530756> writtenThrottle=0 beforeWriteThrottle=0 +11:06:12.220 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.766708 autohover=0 collectiveMode=3 +11:06:14.267 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=386 +11:06:14.268 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0163555 drift=0.746238 speed=0.0348933 vertical=0.00639826 up=0.996419 groundContact=1 fuel=1937.95 engine=1 +11:06:14.268 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.54764,4.39901,2.04514> +11:06:14.268 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.217311,-0.00519527,-0.0326109> +11:06:14.268 SCRIPT : ERR POWERED MOTION: offset=<-0.746094,-0.0163555,0.0146484> velocity=<0.0155765,0.00639826,-0.0305611> angularLocal=<0.000302604,-0.0457473,-0.000176044> forward=<0.113693,0.0767019,0.990551> right=<0.993157,-0.0355817,-0.111237> +11:06:14.268 SCRIPT : ERR POWERED INPUT: pilotHooks=386 vehicleHooks=386 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.393965 rotorRPM=121.596 targetRPM=196 +11:06:14.268 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=386 applyCallbacks=621 beforeWriteSequence=386 writtenAgeMs=51.4473 beforeWriteAgeMs=24.2461 +11:06:14.269 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.393965> writtenThrottle=0 beforeWriteThrottle=0 +11:06:14.269 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696983 autohover=0 collectiveMode=3 +11:06:16.285 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=424 +11:06:16.285 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0296974 drift=0.760355 speed=0.0527908 vertical=0.00855232 up=0.996474 groundContact=1 fuel=1937.86 engine=1 +11:06:16.285 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.64586,4.36103,2.03819> +11:06:16.285 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.127795,0.00471108,-1.05906> +11:06:16.286 SCRIPT : ERR POWERED MOTION: offset=<-0.755371,-0.0296974,0.0869141> velocity=<0.0114065,0.00855232,-0.0508293> angularLocal=<0.00382469,0.0210882,0.000191404> forward=<0.115397,0.0760408,0.990405> right=<0.992965,-0.0354627,-0.112973> +11:06:16.286 SCRIPT : ERR POWERED INPUT: pilotHooks=424 vehicleHooks=424 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.293643 rotorRPM=137.753 targetRPM=196 +11:06:16.286 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=424 applyCallbacks=681 beforeWriteSequence=423 writtenAgeMs=23.0898 beforeWriteAgeMs=37.2266 +11:06:16.286 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.293643> writtenThrottle=0 beforeWriteThrottle=0 +11:06:16.286 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.646822 autohover=0 collectiveMode=3 +11:06:18.306 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=459 +11:06:18.306 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0449486 drift=0.775458 speed=0.0679512 vertical=0.00855192 up=0.996537 groundContact=1 fuel=1937.77 engine=1 +11:06:18.306 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.41492,4.31529,2.03322> +11:06:18.306 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00546802,0.000396408,-0.0112724> +11:06:18.306 SCRIPT : ERR POWERED MOTION: offset=<-0.751465,-0.0449486,0.191406> velocity=<0.0138637,0.00855192,-0.0659699> angularLocal=<0.000527016,-0.00172884,-5.19702e-05> forward=<0.111411,0.0752448,0.990922> right=<0.993411,-0.0353784,-0.109005> +11:06:18.306 SCRIPT : ERR POWERED INPUT: pilotHooks=459 vehicleHooks=459 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.213789 rotorRPM=153.886 targetRPM=196 +11:06:18.307 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=459 applyCallbacks=742 beforeWriteSequence=459 writtenAgeMs=47.5156 beforeWriteAgeMs=25.293 +11:06:18.307 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.213789> writtenThrottle=0 beforeWriteThrottle=0 +11:06:18.307 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606894 autohover=0 collectiveMode=3 +11:06:20.337 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=495 +11:06:20.337 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.060339 drift=0.821169 speed=0.0334606 vertical=0.00809227 up=0.9966 groundContact=1 fuel=1937.68 engine=1 +11:06:20.338 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.33848,4.27282,2.02168> +11:06:20.338 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00650369,0.00067234,-0.00116687> +11:06:20.338 SCRIPT : ERR POWERED MOTION: offset=<-0.795898,-0.060339,0.202148> velocity=<0.0223205,0.00809227,-0.023578> angularLocal=<0.000295097,-0.00038253,0.000152412> forward=<0.110095,0.0745057,0.991125> right=<0.993559,-0.0351796,-0.107721> +11:06:20.338 SCRIPT : ERR POWERED INPUT: pilotHooks=495 vehicleHooks=495 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.149404 rotorRPM=169.809 targetRPM=196 +11:06:20.339 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=495 applyCallbacks=803 beforeWriteSequence=495 writtenAgeMs=68.793 beforeWriteAgeMs=19.3047 +11:06:20.339 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.149404> writtenThrottle=0 beforeWriteThrottle=0 +11:06:20.339 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574941 autohover=0 collectiveMode=3 +11:06:21.358 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:06:21.860 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:06:21.860 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=9 matched=1 +11:06:22.372 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=530 +11:06:22.372 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0949421 drift=1.06435 speed=0.586601 vertical=0.0134744 up=0.996223 groundContact=1 fuel=1937.59 engine=1 +11:06:22.373 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<6.42437,4.59007,1.93769> +11:06:22.373 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.185917,0.120152,-0.570652> +11:06:22.373 SCRIPT : ERR POWERED MOTION: offset=<-0.955566,-0.0949421,0.46875> velocity=<0.223768,0.0134744,-0.542076> angularLocal=<-0.00995382,0.00760826,-0.00117042> forward=<0.111533,0.0800261,0.990533> right=<0.993455,-0.0337042,-0.109139> +11:06:22.373 SCRIPT : ERR POWERED INPUT: pilotHooks=530 vehicleHooks=530 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.145 targetRPM=196 +11:06:22.373 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=530 applyCallbacks=864 beforeWriteSequence=530 writtenAgeMs=56.3477 beforeWriteAgeMs=13.6523 +11:06:22.374 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +11:06:22.374 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.570067 autohover=0 collectiveMode=3 +11:06:22.374 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:06:22.374 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=17 matched=1 +11:06:22.374 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:06:24.402 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=566 +11:06:24.402 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.16571 drift=3.80276 speed=2.34883 vertical=1.44051 up=0.999997 groundContact=0 fuel=1937.51 engine=1 +11:06:24.402 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.97327,0.120419,0.0782183> +11:06:24.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0413883,0.251126,-0.024569> +11:06:24.403 SCRIPT : ERR POWERED MOTION: offset=<-1.74658,-2.16571,3.37793> velocity=<0.445884,1.44051,-1.80087> angularLocal=<0.0836128,-0.0185104,0.018583> forward=<0.05187,0.0021017,0.998652> right=<0.998653,-0.00136516,-0.0518672> +11:06:24.403 SCRIPT : ERR POWERED INPUT: pilotHooks=566 vehicleHooks=566 readback=1 collective=0.162056 cyclicF=0.0874546 cyclicR=-0.0350311 antiTorque=0.166063 rotorRPM=189.065 targetRPM=196 +11:06:24.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=566 applyCallbacks=925 beforeWriteSequence=566 writtenAgeMs=43.7227 beforeWriteAgeMs=13.5781 +11:06:24.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.162056 beforeWriteCollective=0.162056 writtenFRA=<0.0874546,-0.0350311,-0.00999095> beforeWriteFRA=<0.0874546,-0.0350311,0.166063> writtenThrottle=0 beforeWriteThrottle=0 +11:06:24.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.162056 cyclicForward=0.0874546 cyclicAside=-0.0350311 tailCollective=0.583376 autohover=0 collectiveMode=3 +11:06:24.909 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=575 +11:06:24.910 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.89985 drift=4.80887 speed=2.33773 vertical=1.5616 up=0.999024 groundContact=0 fuel=1937.51 engine=1 +11:06:24.910 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.53347,-2.49409,-0.434327> +11:06:24.910 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107662,0.193477,0.439317> +11:06:24.910 SCRIPT : ERR POWERED MOTION: offset=<-1.97461,-2.89985,4.38477> velocity=<0.406324,1.5616,-1.69154> angularLocal=<0.0929288,-0.0129278,0.016997> forward=<0.0441611,-0.0435163,0.998076> right=<0.999008,0.00757318,-0.0438722> +11:06:24.910 SCRIPT : ERR POWERED INPUT: pilotHooks=575 vehicleHooks=575 readback=1 collective=0.15458 cyclicF=0.0492364 cyclicR=-0.0268871 antiTorque=0.158792 rotorRPM=191.093 targetRPM=196 +11:06:24.911 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=575 applyCallbacks=940 beforeWriteSequence=575 writtenAgeMs=24.3594 beforeWriteAgeMs=24.3594 +11:06:24.911 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.15458 beforeWriteCollective=0.15458 writtenFRA=<0.0492364,-0.0268871,-0.00701212> beforeWriteFRA=<0.0492364,-0.0268871,0.158792> writtenThrottle=0 beforeWriteThrottle=0 +11:06:24.911 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.15458 cyclicForward=0.0492364 cyclicAside=-0.0268871 tailCollective=0.579396 autohover=0 collectiveMode=3 +11:06:25.421 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=584 +11:06:25.421 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.68959 drift=5.707 speed=2.15486 vertical=1.64321 up=0.995767 groundContact=0 fuel=1937.46 engine=1 +11:06:25.422 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.24611,-5.20094,-0.872839> +11:06:25.422 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.1593,0.115077,0.898268> +11:06:25.422 SCRIPT : ERR POWERED MOTION: offset=<-2.1748,-3.68959,5.27637> velocity=<0.338556,1.64321,-1.35227> angularLocal=<0.0906584,-0.00937594,0.0144032> forward=<0.0390307,-0.0906489,0.995118> right=<0.99917,0.0151706,-0.0378076> +11:06:25.422 SCRIPT : ERR POWERED INPUT: pilotHooks=584 vehicleHooks=584 readback=1 collective=0.146641 cyclicF=0.00468201 cyclicR=-0.0189743 antiTorque=0.14932 rotorRPM=193.056 targetRPM=196 +11:06:25.423 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=584 applyCallbacks=955 beforeWriteSequence=584 writtenAgeMs=58.6172 beforeWriteAgeMs=35.082 +11:06:25.423 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.146641 beforeWriteCollective=0.146641 writtenFRA=<0.00468201,-0.0189743,-0.00530162> beforeWriteFRA=<0.00468201,-0.0189743,0.14932> writtenThrottle=0 beforeWriteThrottle=0 +11:06:25.423 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.146641 cyclicForward=0.00468201 cyclicAside=-0.0189743 tailCollective=0.57466 autohover=0 collectiveMode=3 +11:06:25.932 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=594 +11:06:25.932 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.51246 drift=6.35925 speed=1.86075 vertical=1.67515 up=0.990883 groundContact=0 fuel=1937.46 engine=1 +11:06:25.933 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<2.05572,-7.6469,-1.21915> +11:06:25.933 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.19742,0.00403404,1.31976> +11:06:25.933 SCRIPT : ERR POWERED MOTION: offset=<-2.33008,-4.51246,5.91699> velocity=<0.245382,1.67515,-0.772026> angularLocal=<0.0762974,-0.00704507,0.0110194> forward=<0.0355524,-0.133068,0.990469> right=<0.999232,0.0210873,-0.0330339> +11:06:25.933 SCRIPT : ERR POWERED INPUT: pilotHooks=594 vehicleHooks=594 readback=1 collective=0.139506 cyclicF=-0.0478116 cyclicR=-0.0105968 antiTorque=0.140292 rotorRPM=195.084 targetRPM=196 +11:06:25.933 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=594 applyCallbacks=970 beforeWriteSequence=593 writtenAgeMs=18.1445 beforeWriteAgeMs=43.5156 +11:06:25.934 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.138955 beforeWriteCollective=0.139506 writtenFRA=<-0.0531225,-0.00978026,-0.00394619> beforeWriteFRA=<-0.0478116,-0.0105968,0.140292> writtenThrottle=0 beforeWriteThrottle=0 +11:06:25.934 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.139506 cyclicForward=-0.0478116 cyclicAside=-0.0105968 tailCollective=0.570146 autohover=0 collectiveMode=3 +11:06:26.440 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=603 +11:06:26.440 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.3496 drift=6.65269 speed=1.64097 vertical=1.63523 up=0.985935 groundContact=0 fuel=1937.42 engine=1 +11:06:26.440 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.91449,-9.51001,-1.46308> +11:06:26.441 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.218243,-0.176775,1.61678> +11:06:26.441 SCRIPT : ERR POWERED MOTION: offset=<-2.43408,-5.3496,6.19141> velocity=<0.137013,1.63523,-0.00368975> angularLocal=<0.0498566,-0.00568927,0.00720141> forward=<0.0329488,-0.16522,0.985706> right=<0.999257,0.0251818,-0.0291809> +11:06:26.441 SCRIPT : ERR POWERED INPUT: pilotHooks=603 vehicleHooks=603 readback=1 collective=0.136091 cyclicF=-0.105014 cyclicR=-0.00189645 antiTorque=0.136255 rotorRPM=196 targetRPM=196 +11:06:26.441 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=603 applyCallbacks=986 beforeWriteSequence=603 writtenAgeMs=26.7148 beforeWriteAgeMs=14.4023 +11:06:26.441 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.136091 beforeWriteCollective=0.136091 writtenFRA=<-0.105014,-0.00189645,-0.00295208> beforeWriteFRA=<-0.105014,-0.00189645,0.136255> writtenThrottle=0 beforeWriteThrottle=0 +11:06:26.442 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.136013 cyclicForward=-0.100103 cyclicAside=-0.00264369 tailCollective=0.568099 autohover=0 collectiveMode=3 +11:06:26.951 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=612 +11:06:26.951 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.1407 drift=6.49862 speed=1.67892 vertical=1.45584 up=0.983076 groundContact=0 fuel=1937.42 engine=1 +11:06:26.952 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.79651,-10.4365,-1.59402> +11:06:26.952 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.218676,-0.56453,1.70072> +11:06:26.952 SCRIPT : ERR POWERED MOTION: offset=<-2.47754,-6.1407,6.00781> velocity=<0.0269669,1.45584,0.835808> angularLocal=<0.0137505,-0.00388931,0.00338115> forward=<0.0308312,-0.181146,0.982973> right=<0.99928,0.0273572,-0.0263012> +11:06:26.952 SCRIPT : ERR POWERED INPUT: pilotHooks=612 vehicleHooks=612 readback=1 collective=0.119218 cyclicF=-0.147468 cyclicR=0.00482987 antiTorque=0.127923 rotorRPM=196 targetRPM=196 +11:06:26.952 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=612 applyCallbacks=1001 beforeWriteSequence=612 writtenAgeMs=58.5898 beforeWriteAgeMs=13.9648 +11:06:26.953 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.119218 beforeWriteCollective=0.119218 writtenFRA=<-0.147468,0.00482987,-0.00232647> beforeWriteFRA=<-0.147468,0.00482987,0.127923> writtenThrottle=0 beforeWriteThrottle=0 +11:06:26.953 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.119218 cyclicForward=-0.147468 cyclicAside=0.00482987 tailCollective=0.564494 autohover=0 collectiveMode=3 +11:06:27.455 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=621 +11:06:27.455 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.79412 drift=5.88025 speed=2.05433 vertical=1.13991 up=0.983843 groundContact=0 fuel=1937.37 engine=1 +11:06:27.455 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.69262,-10.1877,-1.61544> +11:06:27.456 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.200241,-0.612202,1.64764> +11:06:27.456 SCRIPT : ERR POWERED MOTION: offset=<-2.4624,-6.79412,5.33984> velocity=<-0.0802435,1.13991,1.70717> angularLocal=<-0.0284465,-0.00282565,-0.000323308> forward=<0.0290718,-0.176873,0.983804> right=<0.999314,0.0277466,-0.0245417> +11:06:27.456 SCRIPT : ERR POWERED INPUT: pilotHooks=621 vehicleHooks=621 readback=1 collective=0.101477 cyclicF=-0.15 cyclicR=0.0105065 antiTorque=0.11916 rotorRPM=196 targetRPM=196 +11:06:27.456 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=621 applyCallbacks=1016 beforeWriteSequence=621 writtenAgeMs=56.6445 beforeWriteAgeMs=27.2266 +11:06:27.456 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.101477 beforeWriteCollective=0.101477 writtenFRA=<-0.15,0.0105065,-0.00162783> beforeWriteFRA=<-0.15,0.0105065,0.11916> writtenThrottle=0 beforeWriteThrottle=0 +11:06:27.457 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.101477 cyclicForward=-0.15 cyclicAside=0.0105065 tailCollective=0.55958 autohover=0 collectiveMode=3 +11:06:27.965 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=630 +11:06:27.965 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.30888 drift=4.82767 speed=2.63597 vertical=0.865687 up=0.987975 groundContact=0 fuel=1937.37 engine=1 +11:06:27.966 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.58087,-8.76146,-1.53818> +11:06:27.966 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.188177,-0.487518,1.43396> +11:06:27.966 SCRIPT : ERR POWERED MOTION: offset=<-2.39209,-7.30888,4.19336> velocity=<-0.177657,0.865687,2.48341> angularLocal=<-0.0663617,-0.00203948,-0.00342586> forward=<0.0272659,-0.152321,0.987955> right=<0.999372,0.0265299,-0.0234907> +11:06:27.966 SCRIPT : ERR POWERED INPUT: pilotHooks=630 vehicleHooks=630 readback=1 collective=0.086668 cyclicF=-0.15 cyclicR=0.0151215 antiTorque=0.113035 rotorRPM=196 targetRPM=196 +11:06:27.967 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=630 applyCallbacks=1031 beforeWriteSequence=630 writtenAgeMs=54.7891 beforeWriteAgeMs=25.293 +11:06:27.967 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.086668 beforeWriteCollective=0.086668 writtenFRA=<-0.15,0.0151215,-0.000782894> beforeWriteFRA=<-0.15,0.0151215,0.113035> writtenThrottle=0 beforeWriteThrottle=0 +11:06:27.967 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.086668 cyclicForward=-0.15 cyclicAside=0.0151215 tailCollective=0.556517 autohover=0 collectiveMode=3 +11:06:28.466 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=639 +11:06:28.467 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.70592 drift=3.50479 speed=3.19223 vertical=0.671457 up=0.993598 groundContact=0 fuel=1937.33 engine=1 +11:06:28.467 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.47476,-6.33783,-1.38392> +11:06:28.467 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.16804,-0.31909,1.05228> +11:06:28.467 SCRIPT : ERR POWERED MOTION: offset=<-2.27393,-7.70592,2.66699> velocity=<-0.267014,0.671457,3.10937> angularLocal=<-0.09884,-0.00106336,-0.00602943> forward=<0.0255793,-0.110391,0.993559> right=<0.999446,0.0240041,-0.0230639> +11:06:28.467 SCRIPT : ERR POWERED INPUT: pilotHooks=639 vehicleHooks=639 readback=1 collective=0.0697308 cyclicF=-0.15 cyclicR=0.0185776 antiTorque=0.104934 rotorRPM=196 targetRPM=196 +11:06:28.468 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=639 applyCallbacks=1046 beforeWriteSequence=639 writtenAgeMs=40.7422 beforeWriteAgeMs=40.7422 +11:06:28.468 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0697308 beforeWriteCollective=0.0697308 writtenFRA=<-0.15,0.0185776,4.47428e-05> beforeWriteFRA=<-0.15,0.0185776,0.104934> writtenThrottle=0 beforeWriteThrottle=0 +11:06:28.468 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0697308 cyclicForward=-0.15 cyclicAside=0.0185776 tailCollective=0.552467 autohover=0 collectiveMode=3 +11:06:28.979 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=648 +11:06:28.979 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.04956 drift=2.26105 speed=3.57428 vertical=0.561098 up=0.998412 groundContact=0 fuel=1937.33 engine=1 +11:06:28.980 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.38505,-3.01149,-1.16543> +11:06:28.980 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.139713,-0.153669,0.500178> +11:06:28.980 SCRIPT : ERR POWERED MOTION: offset=<-2.10889,-8.04956,0.81543> velocity=<-0.346758,0.561098,3.51289> angularLocal=<-0.125464,-1.21953e-05,-0.00813331> forward=<0.0241379,-0.0525363,0.998327> right=<0.999527,0.0203111,-0.023098> +11:06:28.980 SCRIPT : ERR POWERED INPUT: pilotHooks=648 vehicleHooks=648 readback=1 collective=0.0484156 cyclicF=-0.15 cyclicR=0.0207343 antiTorque=0.0931352 rotorRPM=196 targetRPM=196 +11:06:28.980 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=648 applyCallbacks=1062 beforeWriteSequence=648 writtenAgeMs=56.332 beforeWriteAgeMs=14.3047 +11:06:28.981 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0484156 beforeWriteCollective=0.0484156 writtenFRA=<-0.15,0.0207343,0.000646877> beforeWriteFRA=<-0.15,0.0207343,0.0931352> writtenThrottle=0 beforeWriteThrottle=0 +11:06:28.981 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0484156 cyclicForward=-0.15 cyclicAside=0.0207343 tailCollective=0.547218 autohover=0 collectiveMode=3 +11:06:29.480 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=658 +11:06:29.480 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.36654 drift=2.2273 speed=3.65593 vertical=0.508016 up=0.99975 groundContact=0 fuel=1937.28 engine=1 +11:06:29.480 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.32634,0.90623,-0.906628> +11:06:29.480 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.106121,-0.0900793,-0.156684> +11:06:29.481 SCRIPT : ERR POWERED MOTION: offset=<-1.91016,-8.36654,-1.14551> velocity=<-0.408176,0.508016,3.59738> angularLocal=<-0.144134,0.000789507,-0.00956501> forward=<0.023144,0.015816,0.999607> right=<0.999601,0.015821,-0.0233942> +11:06:29.481 SCRIPT : ERR POWERED INPUT: pilotHooks=658 vehicleHooks=658 readback=1 collective=0.0189409 cyclicF=-0.129739 cyclicR=0.0216149 antiTorque=0.0793393 rotorRPM=196 targetRPM=196 +11:06:29.481 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=658 applyCallbacks=1077 beforeWriteSequence=658 writtenAgeMs=24.1641 beforeWriteAgeMs=12.4844 +11:06:29.481 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0189409 beforeWriteCollective=0.0189409 writtenFRA=<-0.129739,0.0216149,0.00102812> beforeWriteFRA=<-0.129739,0.0216149,0.0793393> writtenThrottle=0 beforeWriteThrottle=0 +11:06:29.481 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0218337 cyclicForward=-0.13474 cyclicAside=0.0215882 tailCollective=0.540669 autohover=0 collectiveMode=3 +11:06:29.989 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=667 +11:06:29.990 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.67973 drift=3.52234 speed=3.38219 vertical=0.464191 up=0.995811 groundContact=0 fuel=1937.28 engine=1 +11:06:29.990 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.30077,5.2101,-0.614467> +11:06:29.990 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0704008,0.0402439,-0.908174> +11:06:29.990 SCRIPT : ERR POWERED MOTION: offset=<-1.68213,-8.67973,-3.09473> velocity=<-0.453078,0.464191,3.3194> angularLocal=<-0.147432,0.0010191,-0.0103665> forward=<0.0226069,0.0908082,0.995612> right=<0.999663,0.01068,-0.023673> +11:06:29.990 SCRIPT : ERR POWERED INPUT: pilotHooks=667 vehicleHooks=667 readback=1 collective=0 cyclicF=-0.0749044 cyclicR=0.0210997 antiTorque=0.0678214 rotorRPM=196 targetRPM=196 +11:06:29.991 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=667 applyCallbacks=1092 beforeWriteSequence=666 writtenAgeMs=12.6992 beforeWriteAgeMs=27.5234 +11:06:29.991 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0667974,0.0209798,0.00119987> beforeWriteFRA=<-0.0749044,0.0210997,0.0678214> writtenThrottle=0 beforeWriteThrottle=0 +11:06:29.991 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0749044 cyclicAside=0.0210997 tailCollective=0.533911 autohover=0 collectiveMode=3 +11:06:30.492 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=676 +11:06:30.492 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.00703 drift=4.98678 speed=2.76828 vertical=0.52812 up=0.986807 groundContact=0 fuel=1937.24 engine=1 +11:06:30.492 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.29487,9.31216,-0.311805> +11:06:30.493 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0345325,0.130742,-1.62855> +11:06:30.493 SCRIPT : ERR POWERED MOTION: offset=<-1.43652,-9.00703,-4.77539> velocity=<-0.479257,0.52812,2.67484> angularLocal=<-0.13411,0.00098458,-0.0104711> forward=<0.0223,0.161813,0.986569> right=<0.99971,0.00537028,-0.0234778> +11:06:30.493 SCRIPT : ERR POWERED INPUT: pilotHooks=676 vehicleHooks=676 readback=1 collective=0 cyclicF=0.0025643 cyclicR=0.0192639 antiTorque=0.0679573 rotorRPM=196 targetRPM=196 +11:06:30.494 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=676 applyCallbacks=1107 beforeWriteSequence=676 writtenAgeMs=43.8984 beforeWriteAgeMs=21.5781 +11:06:30.494 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0025643,0.0192639,0.00129055> beforeWriteFRA=<0.0025643,0.0192639,0.0679573> writtenThrottle=0 beforeWriteThrottle=0 +11:06:30.494 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0025643 cyclicAside=0.0192639 tailCollective=0.533979 autohover=0 collectiveMode=3 +11:06:32.525 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=715 +11:06:32.525 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.76712 drift=5.7899 speed=2.23333 vertical=-0.252845 up=0.959675 groundContact=0 fuel=1937.15 engine=1 +11:06:32.525 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.41214,16.3118,0.703366> +11:06:32.525 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0909465,-0.734179,-2.64052> +11:06:32.526 SCRIPT : ERR POWERED MOTION: offset=<-0.461426,-9.76712,-5.77148> velocity=<-0.408527,-0.252845,-2.18104> angularLocal=<0.0214384,0.000557532,-0.00549838> forward=<0.0236521,0.280864,0.959456> right=<0.999706,-0.0117816,-0.0211955> +11:06:32.526 SCRIPT : ERR POWERED INPUT: pilotHooks=715 vehicleHooks=715 readback=1 collective=0 cyclicF=0.15 cyclicR=0.00457677 antiTorque=0.0669034 rotorRPM=196 targetRPM=196 +11:06:32.526 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=715 applyCallbacks=1168 beforeWriteSequence=715 writtenAgeMs=24.8086 beforeWriteAgeMs=13.8125 +11:06:32.526 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.15,0.00457677,0.000236641> beforeWriteFRA=<0.15,0.00457677,0.0669034> writtenThrottle=0 beforeWriteThrottle=0 +11:06:32.526 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.15 cyclicAside=0.00496829 tailCollective=0.533454 autohover=0 collectiveMode=3 +11:06:34.544 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=751 +11:06:34.545 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.41809 drift=3.93025 speed=6.3878 vertical=-0.338258 up=0.994591 groundContact=0 fuel=1937.06 engine=1 +11:06:34.545 SCRIPT : ERR POWERED HEADING: desiredYaw=1.45234 actualYawPitchRoll=<1.32725,5.89992,0.860548> +11:06:34.545 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.141689,0.595352,-1.03766> +11:06:34.545 SCRIPT : ERR POWERED MOTION: offset=<0.140625,-8.41809,3.92773> velocity=<-0.155124,-0.338258,-6.37695> angularLocal=<0.137389,0.00164842,0.00228982> forward=<0.0230401,0.102791,0.994436> right=<0.999655,-0.0149393,-0.0216168> +11:06:34.545 SCRIPT : ERR POWERED INPUT: pilotHooks=751 vehicleHooks=751 readback=1 collective=0.0384276 cyclicF=0.15 cyclicR=-0.00976765 antiTorque=0.0884025 rotorRPM=196 targetRPM=196 +11:06:34.546 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=751 applyCallbacks=1228 beforeWriteSequence=751 writtenAgeMs=51.6875 beforeWriteAgeMs=40.3828 +11:06:34.546 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0384276 beforeWriteCollective=0.0384276 writtenFRA=<0.15,-0.00976765,0.000764881> beforeWriteFRA=<0.15,-0.00976765,0.0884025> writtenThrottle=0 beforeWriteThrottle=0 +11:06:34.546 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0384276 cyclicForward=0.15 cyclicAside=-0.00976765 tailCollective=0.544201 autohover=0 collectiveMode=3 +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:06:35.557 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-sha256.json new file mode 100644 index 0000000..6bfa418 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110458-flight-heading-refusal/source-sha256.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/console.log.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/console.log.txt new file mode 100644 index 0000000..b239f02 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/console.log.txt @@ -0,0 +1,621 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55\console.log started at 2026-09-19 11:09:55 (2026-09-19 09:09:55 UTC) + +11:09:55.498 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55' to filesystem under name logs +11:09:55.498 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:09:55.498 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:09:55.500 PROFILING : Workbench Create Engine took: 9.624200 ms +11:09:56.537 INIT : INIT : Workbench Init Engine +11:09:56.537 ENGINE : Initializing engine, version 192142 +11:09:56.537 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome mortar-expiry -noThrow -disableCrashReporter +11:09:56.546 ENGINE : Addon dirs: +11:09:56.546 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/' +11:09:56.546 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:09:56.546 ENGINE : dir: './addons' +11:09:56.546 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:09:56.546 ENGINE : Available addons: +11:09:56.546 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:09:56.546 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:09:56.546 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:09:56.546 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:09:56.546 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:09:56.546 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:09:56.546 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:09:56.547 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat +11:09:56.547 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map +11:09:56.547 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel +11:09:56.547 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai +11:09:56.547 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:09:56.667 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:09:56.671 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:09:56.671 ENGINE : CPU vendor : AuthenticAMD +11:09:56.671 ENGINE : CPU type : 2 +11:09:56.671 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:09:56.671 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:09:56.671 ENGINE : CPU count logical : 16 +11:09:56.671 ENGINE : CPU count physical : 8 +11:09:56.671 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:09:56.671 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:09:56.671 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:09:56.672 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:09:56.672 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:09:56.672 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:09:56.673 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:09:56.813 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +11:09:56.814 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:09:56.814 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55/resourceDatabase.rdb) +11:09:56.955 RESOURCES : RESOURCES : ResourceDB: full scan +11:09:56.960 RESOURCES : RESOURCES : scanning... +11:09:56.960 RESOURCES : RESOURCES : scanning @"ERR_Chat" +11:09:56.961 RESOURCES : RESOURCES : scanning @"ERR_Map" +11:09:56.963 RESOURCES : RESOURCES : scanning @"ERR_Intel" +11:09:56.964 RESOURCES : RESOURCES : scanning @"ERR_Ai" +11:09:56.965 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:09:56.968 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:09:57.101 RESOURCES : RESOURCES : scanning @"core" +11:09:57.105 RESOURCES : RESOURCES : scanning @"profile" +11:09:57.106 RESOURCES : RESOURCES : scanning @"logs" +11:09:57.106 RESOURCES : RESOURCES : processing meta-files... +11:09:57.171 RESOURCES : RESOURCES : processing files... +11:09:57.182 INIT : Workbench startup +11:09:57.182 INIT : Workbench Init Engine +11:09:57.182 RESOURCES : ResourceDB: full scan +11:09:57.182 RESOURCES : processing files... +11:09:57.182 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:09:57.182 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:09:57.182 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:09:57.182 RESOURCES : RESOURCES : processing folders... +11:09:57.189 RESOURCES : RESOURCES : creating GUID-item mapping... +11:09:57.208 RESOURCES : RESOURCES : building tree... +11:09:57.265 PROFILING : ResourceDB: full scan took: 309.111100 ms +11:09:57.266 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:09:57.267 RESOURCES : ResourceDB: written 804/804 bytes +11:09:57.267 RESOURCES : ResourceDB: cache successfully saved +11:09:57.267 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:09:57.269 RESOURCES : ResourceDB: written 750/750 bytes +11:09:57.269 RESOURCES : ResourceDB: cache successfully saved +11:09:57.269 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:09:57.270 RESOURCES : ResourceDB: written 227/227 bytes +11:09:57.270 RESOURCES : ResourceDB: cache successfully saved +11:09:57.271 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:09:57.272 RESOURCES : ResourceDB: written 1721/1721 bytes +11:09:57.272 RESOURCES : ResourceDB: cache successfully saved +11:09:57.272 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:09:57.274 RESOURCES : ResourceDB: written 6865/6865 bytes +11:09:57.274 RESOURCES : ResourceDB: cache successfully saved +11:09:57.274 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:09:57.276 RESOURCES : ResourceDB: written 206/206 bytes +11:09:57.276 RESOURCES : ResourceDB: cache successfully saved +11:09:57.276 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55/resourceDatabase.rdb) +11:09:57.277 RESOURCES : ResourceDB: written 162/162 bytes +11:09:57.277 RESOURCES : ResourceDB: cache successfully saved +11:09:57.277 ENGINE : GameProject load +11:09:57.277 ENGINE : Loaded addons: +11:09:57.277 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:09:57.277 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:09:57.277 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:09:57.277 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:09:57.277 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:09:57.277 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:09:57.277 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:09:57.280 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:09:57.280 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:09:57.280 ENGINE : Engine user settings config loaded +11:09:57.280 PROFILING : Settings changed took: 0.001900 ms +11:09:57.382 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:09:57.383 RENDER : Basic screen setup: +11:09:57.383 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:09:57.383 RENDER : MSAA : none +11:09:57.396 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:09:57.396 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:09:57.396 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:09:57.396 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:09:57.396 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:09:57.396 RENDER : AMD AGS correctly initialized +11:09:57.397 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 +11:09:57.397 RENDER : Detected output devices: +11:09:57.397 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:09:57.397 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:09:57.397 RENDER : Concurrent frames limit 2 +11:09:57.470 RENDER : DX12 device successfully created by AMD AGS library +11:09:57.470 RENDER : * user markers not supported in this version AMD SW +11:09:57.470 RENDER : Graphics device features +11:09:57.470 RENDER : Needed: +11:09:57.470 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:09:57.470 RENDER : Optional: +11:09:57.470 RENDER : * Allow tearing (VSYNC) : 1 +11:09:57.470 RENDER : * 16 bits : 1 +11:09:57.470 RENDER : * Resource heap tier : 3 +11:09:57.470 RENDER : * Persistent heaps (DRED) : 1 +11:09:57.470 RENDER : * DRED 1.2 is supported by compiler +11:09:57.492 RENDER : Main RT format setup. +11:09:57.492 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:09:57.492 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:09:57.494 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:09:57.522 PROFILING : Settings changed took: 0.018100 ms +11:09:58.034 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:09:58.034 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:09:58.034 AUDIO : Audio client: +11:09:58.034 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:09:58.037 RENDER : RENDER : Reload shaders +11:09:58.037 RENDER : Enfusion shader version 13 +11:09:58.037 INIT : INIT : ShaderListReload +11:09:58.037 PROFILING : ShaderListReload took: 0.000500 ms +11:09:58.178 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:09:58.179 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:09:58.179 AUDIO : Audio client: +11:09:58.179 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:09:58.379 RENDER : Loaded 3752 newer shader binaries +11:09:58.379 PROFILING : Reload shaders took: 341.876500 ms +11:09:58.379 ENGINE : Initializing inputs. +11:09:58.392 NETWORK : Initializing networking. +11:09:58.392 NETWORK : Using new GameRplScheduler. +11:09:58.392 SCRIPT : SCRIPT : Initializing scripts +11:09:58.393 SCRIPT : SCRIPT : ScriptProjectManager init +11:10:00.544 PROFILING : ScriptProjectManager init took: 2151.408500 ms +11:10:00.631 PROFILING : Initializing scripts took: 2238.732400 ms +11:10:00.649 ENGINE : Enfusion engine successfully created. +11:10:00.649 PROFILING : Workbench Init Engine took: 4111.564300 ms +11:10:00.649 INIT : INIT : Workbench Create Game +11:10:00.664 GUI : Using default language (en_us) +11:10:00.664 GUI : Loading 'en_us' localization file. +11:10:00.664 INIT : INIT : Loading StringTable +11:10:00.690 PROFILING : Loading StringTable took: 25.785300 ms +11:10:00.690 SCRIPT : SCRIPT : Compiling GameLib scripts +11:10:00.770 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:10:00.770 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:10:00.771 PROFILING : Compiling GameLib scripts took: 81.090700 ms +11:10:00.771 SCRIPT : SCRIPT : Compiling Game scripts +11:10:02.032 INIT : Workbench Create Game +11:10:02.032 SCRIPT : Compiling Game scripts +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:10:02.190 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.306 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:10:02.338 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:10:02.476 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:10:02.538 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:10:02.605 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.638 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:10:02.914 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:10:02.922 SCRIPT : Module: Game; loaded 5776x files; 11364x classes; used 33467K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c91180ab +11:10:02.962 PROFILING : Compiling Game scripts took: 2190.945000 ms +11:10:02.968 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:10:03.006 ENGINE : Game successfully created. +11:10:03.007 PROFILING : Workbench Create Game took: 2357.671200 ms +11:10:03.016 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails +11:10:03.822 INIT : INIT : Workbench Reload Game +11:10:03.824 ENGINE : Game destroyed. +11:10:03.830 GUI : Using default language (en_us) +11:10:03.830 GUI : Loading 'en_us' localization file. +11:10:03.830 INIT : INIT : Loading StringTable +11:10:03.839 PROFILING : Loading StringTable took: 9.123700 ms +11:10:03.839 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:10:03.846 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:10:03.846 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:10:03.846 ENGINE : Game successfully created. +11:10:03.846 ENGINE : Game successfully initialized. +11:10:03.846 PROFILING : Workbench Reload Game took: 23.894100 ms +11:10:04.525 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:10:05.564 PROFILING : Entities load took: 1038.458400 ms +11:10:05.576 WORLD : WORLD : CreateEntities +11:10:05.581 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:10:05.581 PROFILING : NotifyBeforeEntitiesCreated took: 0.002800 ms +11:10:05.581 WORLD : WORLD : Wait for preloading data +11:10:05.581 PROFILING : Wait for preloading data took: 0.003100 ms +11:10:05.690 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:10:05.690 PROFILING : PROFILING : Terrain load +11:10:07.644 PROFILING : Terrain load took: 1953.242400 ms +11:10:11.715 WORLD : CreateEntities +11:10:11.716 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:10:11.716 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:10:11.716 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:10:22.833 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:10:22.833 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005300 ms +11:10:23.280 WORLD : WORLD : NotifyEntitiesInitialized +11:10:23.281 TERRAIN : TERRAIN : Initializing road networks... +11:10:23.284 PROFILING : Initializing road networks... took: 2.893200 ms +11:10:23.284 PROFILING : NotifyEntitiesInitialized took: 3.526500 ms +11:10:23.284 PROFILING : CreateEntities took: 17708.136300 ms +11:10:23.468 PROFILING : * WorldEditor: LoadWorld: 18949.060200 ms +11:10:24.966 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:10:24.967 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:10:24.968 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:10:24.968 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:10:25.054 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:10:25.080 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:10:25.103 BACKEND : Attempting online Game Config instead. +11:10:28.457 INIT : INIT : Workbench Reload Game +11:10:28.460 ENGINE : Game destroyed. +11:10:28.467 GUI : Using default language (en_us) +11:10:28.468 GUI : Loading 'en_us' localization file. +11:10:28.468 INIT : INIT : Loading StringTable +11:10:28.487 PROFILING : Loading StringTable took: 19.203800 ms +11:10:28.487 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:10:28.496 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:10:28.496 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:10:28.496 ENGINE : Game successfully created. +11:10:28.496 ENGINE : Game successfully initialized. +11:10:28.496 PROFILING : Workbench Reload Game took: 38.294300 ms +11:10:28.499 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:10:28.550 PLATFORM : Save data from container 'settings' have been loaded +11:10:28.639 PLATFORM : Save data from container 'sessions' have been loaded +11:10:28.640 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:10:28.640 ENGINE : Game user settings config loaded +11:10:28.738 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:10:28.744 WORLD : WORLD : Game::LoadEntities +11:10:28.744 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:10:28.745 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:10:28.745 WORLD : WORLD : CreateEntities +11:10:28.745 WORLD : WORLD : CreateEntities +11:10:28.745 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:10:28.757 RESOURCES : Loaded mission headers from 7 addon(s)! +11:10:28.757 PROFILING : NotifyBeforeEntitiesCreated took: 12.386100 ms +11:10:28.757 WORLD : WORLD : Wait for preloading data +11:10:28.757 PROFILING : Wait for preloading data took: 0.001100 ms +11:10:33.483 WORLD : Game::LoadEntities +11:10:33.483 WORLD : CreateEntities +11:10:33.483 WORLD : CreateEntities +11:10:33.483 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:10:33.483 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:10:33.483 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:10:34.954 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:10:34.954 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:10:34.954 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:10:40.324 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:10:40.324 PROFILING : NotifyBeforeEntitiesInitialized took: 0.046500 ms +11:10:42.280 WORLD : InitEntities 'world' +11:10:42.280 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:10:42.280 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:10:42.308 WORLD : InitEntities 'world' +11:10:42.308 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:10:42.308 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:10:42.308 WORLD : WORLD : NotifyEntitiesInitialized +11:10:42.308 TERRAIN : TERRAIN : Initializing road networks... +11:10:42.311 PROFILING : Initializing road networks... took: 2.694700 ms +11:10:42.311 DEFAULT : DEFAULT : WorldVolumesCollection +11:10:42.378 PROFILING : WorldVolumesCollection took: 66.819700 ms +11:10:42.378 INIT : INIT : SoundWorldInit +11:10:42.395 PROFILING : SoundWorldInit took: 16.630900 ms +11:10:42.395 PROFILING : NotifyEntitiesInitialized took: 86.387800 ms +11:10:42.395 PROFILING : CreateEntities took: 13649.483000 ms +11:10:42.395 PROFILING : CreateEntities took: 13649.661600 ms +11:10:42.396 WORLD : WORLD : Wait for preloading data around camera +11:10:42.396 PROFILING : Wait for preloading data around camera took: 0.001100 ms +11:10:42.396 WORLD : WORLD : EOnActivate +11:10:42.434 PROFILING : EOnActivate took: 38.648500 ms +11:10:42.435 PROFILING : Game::LoadEntities took: 13690.395700 ms +11:10:42.707 DEFAULT : Entered offline game state. +11:10:42.810 NETWORK : Player connected: connectionID=2147483646 +11:10:42.811 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:10:42.811 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:10:42.817 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.817 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:10:42.818 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.818 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! +11:10:42.818 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! +11:10:42.820 SCRIPT (W): Can't open config file "" +11:10:42.827 WORLD : InitEntities 'world' +11:10:42.827 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.827 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:10:42.828 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:10:42.828 SCRIPT (W): Slot_Chat Has no Content! +11:10:42.828 SCRIPT (W): Slot_VON Has no Content! +11:10:42.828 SCRIPT (W): Slot_AvailableActions Has no Content! +11:10:42.828 SCRIPT (W): Slot_Vehicle Has no Content! +11:10:42.828 SCRIPT (W): Slot_GameVersion Has no Content! +11:10:42.829 SCRIPT (W): Slot_Notifications Has no Content! +11:10:42.829 SCRIPT (W): Slot_Hints Has no Content! +11:10:42.843 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:10:42.843 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:10:42.844 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:10:42.844 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. +11:10:42.845 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. +11:10:42.849 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:10:42.850 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:10:42.850 NETWORK : Players connecting: 0 +11:10:42.850 NETWORK : Players connected: 1 / 1 +11:10:42.890 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves +11:10:42.892 PROFILING : Workbench startup took: 47451.324700 ms +11:10:42.918 WORLD : Frame start +11:10:42.919 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:10:42.934 WORLD : UpdateEntities +11:10:42.934 WORLD : Frame +11:10:42.934 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:10:43.137 WORLD : UpdateEntities +11:10:43.137 WORLD : PostFrame +11:10:43.137 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:10:43.137 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:10:43.193 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:10:43.194 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:10:43.194 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:10:43.194 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:10:43.361 RENDER : RENDER : ObjectsHeightMap::Build +11:10:43.361 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:10:43.549 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 188.174100 ms +11:10:43.558 PROFILING : ObjectsHeightMap::Build took: 196.799700 ms +11:10:44.706 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:10:44.727 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:10:44.728 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:10:44.759 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:10:44.762 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:10:44.811 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:10:44.811 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:10:44.816 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:10:44.863 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:10:44.863 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:10:44.865 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:10:44.865 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:10:44.869 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:10:44.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:10:44.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:10:44.873 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:10:44.873 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:10:44.873 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:10:44.873 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:10:44.873 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:10:44.874 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:10:44.874 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.874 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:10:44.874 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:10:44.874 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.875 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:10:44.875 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:10:44.875 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:45.649 WORLD : UpdateEntities +11:10:45.649 WORLD : AfterPostSimulate +11:10:45.649 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:10:45.713 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.964 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.533,7499.7> up=0.995661 +11:10:45.965 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.314752 angularSpeed=0.0541404 +11:10:45.965 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:45.965 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6131,7501.98> +11:10:45.965 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3131,7501.98> terrainY=63.3157 tireTerrainGap=-0.0026474 +11:10:45.965 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6131,7501.98> radius=0.3 bottom=<7012.06,63.3131,7501.98> fraction=0.442825 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00257874 +11:10:45.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6003,7497.71> +11:10:45.966 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1503,7497.71> terrainY=64.156 tireTerrainGap=-0.00565338 +11:10:45.966 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6003,7497.71> radius=0.45 bottom=<7009.88,64.1503,7497.71> fraction=0.429052 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0056076 +11:10:45.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2624,7497.75> +11:10:45.966 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8124,7497.75> terrainY=63.8177 tireTerrainGap=-0.00533676 +11:10:45.966 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2624,7497.75> radius=0.45 bottom=<7014.42,63.8124,7497.75> fraction=0.43 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0053978 +11:10:45.966 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:46.216 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.216 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.217 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:46.217 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:46.716 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:46.716 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.717 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.973 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5325,7499.72> up=0.994175 +11:10:46.974 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0958214 angularSpeed=0.0540664 +11:10:46.974 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:46.974 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6177,7501.99> +11:10:46.974 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3177,7501.99> terrainY=63.3137 tireTerrainGap=0.00395203 +11:10:46.974 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6177,7501.99> radius=0.3 bottom=<7012.06,63.3177,7501.99> fraction=0.472829 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00402451 +11:10:46.975 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.603,7497.72> +11:10:46.975 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.153,7497.72> terrainY=64.1497 tireTerrainGap=0.00325775 +11:10:46.975 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.603,7497.72> radius=0.45 bottom=<7009.92,64.153,7497.72> fraction=0.469434 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00328064 +11:10:46.975 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2649,7497.79> +11:10:46.975 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8149,7497.79> terrainY=63.8154 tireTerrainGap=-0.000499725 +11:10:46.975 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2649,7497.79> radius=0.45 bottom=<7014.46,63.8149,7497.79> fraction=0.452222 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000511169 +11:10:46.975 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.480 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:48.047 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.11,63.5326,7499.74> up=0.993858 +11:10:48.047 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0388562 angularSpeed=0.0404482 +11:10:48.048 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:48.048 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6139,7502.01> +11:10:48.048 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00230408 +11:10:48.048 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6139,7502.01> radius=0.3 bottom=<7012.06,63.3139,7502.01> fraction=0.464942 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00228882 +11:10:48.048 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.96,64.5951,7497.72> +11:10:48.048 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.96,64.1451,7497.72> terrainY=64.1434 tireTerrainGap=0.00166321 +11:10:48.049 SCRIPT : ERR GEAR SUPPORT: center=<7009.96,64.5951,7497.72> radius=0.45 bottom=<7009.96,64.1451,7497.72> fraction=0.462402 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00173187 +11:10:48.049 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.5,64.26,7497.83> +11:10:48.049 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.5,63.81,7497.83> terrainY=63.8125 tireTerrainGap=-0.00252151 +11:10:48.049 SCRIPT : ERR GEAR SUPPORT: center=<7014.5,64.26,7497.83> radius=0.45 bottom=<7014.5,63.81,7497.83> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:10:48.049 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.051 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.551 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:48.551 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:48.551 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.552 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:49.064 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5281,7499.74> up=0.993809 +11:10:49.064 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:10:49.064 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:49.065 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6134,7502.01> +11:10:49.065 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3134,7502.01> terrainY=63.3116 tireTerrainGap=0.00188828 +11:10:49.065 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6134,7502.01> radius=0.3 bottom=<7012.07,63.3134,7502.01> fraction=0.463272 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00191879 +11:10:49.065 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +11:10:49.065 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1423 tireTerrainGap=0.00229645 +11:10:49.065 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +11:10:49.066 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:10:49.066 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8121 tireTerrainGap=-0.00201035 +11:10:49.066 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:10:49.066 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:49.066 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.568 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.078 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5281,7499.74> up=0.993809 +11:10:50.079 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:10:50.079 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:50.079 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6134,7502.01> +11:10:50.079 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3134,7502.01> terrainY=63.3116 tireTerrainGap=0.00188828 +11:10:50.079 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6134,7502.01> radius=0.3 bottom=<7012.07,63.3134,7502.01> fraction=0.463272 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00191879 +11:10:50.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +11:10:50.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1423 tireTerrainGap=0.00229645 +11:10:50.080 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +11:10:50.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:10:50.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8121 tireTerrainGap=-0.00201035 +11:10:50.080 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:10:50.081 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:50.081 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.081 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.082 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:10:50.097 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:10:50.098 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:10:50.098 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:10:50.098 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:10:50.098 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:10:50.099 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:10:50.099 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:10:50.233 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:10:50.272 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:10:50.481 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:10:50.481 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:10:50.481 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:10:50.481 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:10:50.482 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:10:50.482 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:10:50.488 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:10:50.488 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:10:50.989 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:10:56.029 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:11:01.069 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:11:01.572 SCRIPT : ERR SMOKE PASS: mortar firing untasked original gun and complete four-person crew start without shots +11:11:01.572 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.573 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.573 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing dedicated actual manpack supplies the radio route +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing exactly 27 distinct physical initial HE shells +11:11:01.588 SCRIPT : ERR MORTAR FIXTURE IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:11:01.588 SCRIPT : ERR SMOKE PASS: mortar firing bounded candidate survey finds an unoccupied production-safe impact area +11:11:01.589 SCRIPT : ERR SMOKE PASS: mortar firing fixture-owned inert report identity exists; no enemy perception is claimed +11:11:01.589 SCRIPT : ERR SMOKE PASS: mortar firing synthetic observation enters actual existing radio uplink once +11:11:06.130 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:11.175 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:16.226 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:21.264 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:26.335 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:31.375 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:36.427 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:41.483 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:41.604 WORLD : UpdateEntities +11:11:41.604 WORLD : FixedFrame +11:11:41.605 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=1 order=1 shot=0 source=M1 observedAge=40026.7; recorded before native inventory transfer +11:11:42.641 WORLD : UpdateEntities +11:11:42.641 WORLD : Frame +11:11:42.642 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=1 entity=Projectile<0x000000019FCAA1B0> @"ENTITY:4611686018427390981" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 source=M1 aimAge=26325.8 flight=24.2333; impact is not measured +11:11:42.994 SCRIPT : ERR SMOKE PASS: mortar firing one physical projectile follows real uplink/downlink, native activity and fresh aim +11:11:42.994 SCRIPT : ERR SMOKE PASS: mortar firing one fired projectile consumes one of 27 original inventory shells +11:11:46.539 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:11:51.607 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:11:51.758 WORLD : UpdateEntities +11:11:51.759 WORLD : FixedFrame +11:11:51.759 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=2 order=1 shot=1 source=M1 observedAge=50181.6; recorded before native inventory transfer +11:11:52.788 WORLD : UpdateEntities +11:11:52.788 WORLD : Frame +11:11:52.788 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=2 entity=Projectile<0x000000019FCAA2C0> @"ENTITY:4611686018427390986" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 source=M1 aimAge=6852.98 flight=24.1666; impact is not measured +11:11:56.663 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:12:01.230 WORLD : UpdateEntities +11:12:01.230 WORLD : FixedFrame +11:12:01.230 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=3 order=1 shot=2 source=M1 observedAge=59652.8; recorded before native inventory transfer +11:12:01.719 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:12:02.257 WORLD : UpdateEntities +11:12:02.257 WORLD : Frame +11:12:02.257 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=3 entity=Projectile<0x000000019FCAA3D0> @"ENTITY:4611686018427390991" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 source=M1 aimAge=6248.55 flight=24.3333; impact is not measured +11:12:02.583 SCRIPT : ERR MORTAR FIXTURE CLOSURE: order=1 observedAge=61008.5 reason=native aim or firing authorization rejected lastFailure=next native load lacks confirmed physical gunner ammunition; complete=0 expiredWithheld=0 +11:12:02.735 SCRIPT (E): ERR SMOKE FAIL: mortar firing expiry evidence interrupted by Stop or unrelated/incomplete order closure +11:12:02.736 SCRIPT (E): ERR SMOKE FAIL: native mortar firing probe failed; see diagnostics diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/error.log.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/error.log.txt new file mode 100644 index 0000000..6fda991 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55\error.log started at 2026-09-19 11:09:57 (2026-09-19 09:09:57 UTC) + +11:09:57.182 INIT : Workbench startup +11:09:57.182 INIT : Workbench Init Engine +11:09:57.182 RESOURCES : ResourceDB: full scan +11:09:57.182 RESOURCES : processing files... +11:09:57.182 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:09:57.182 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:09:57.182 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:10:02.032 INIT : Workbench Create Game +11:10:02.032 SCRIPT : Compiling Game scripts +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:10:02.190 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.306 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:10:02.338 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:10:02.476 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:10:02.538 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:10:02.605 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.638 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:10:11.715 WORLD : CreateEntities +11:10:11.716 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:10:11.716 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:10:11.716 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:10:28.498 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:10:33.483 WORLD : Game::LoadEntities +11:10:33.483 WORLD : CreateEntities +11:10:33.483 WORLD : CreateEntities +11:10:33.483 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:10:33.483 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:10:33.483 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:10:34.954 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:10:34.954 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:10:34.954 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:10:34.954 ENTITY : CreateComponent 'Hierarchy' +11:10:34.954 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:10:34.960 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:10:34.960 ENTITY : CreateComponent 'Hierarchy' +11:10:34.960 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:10:34.964 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:10:34.964 ENTITY : CreateComponent 'Hierarchy' +11:10:34.964 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:10:42.280 WORLD : InitEntities 'world' +11:10:42.280 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:10:42.280 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:10:42.817 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.817 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:10:42.818 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.818 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! +11:10:42.818 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! +11:10:42.820 SCRIPT (W): Can't open config file "" +11:10:42.827 WORLD : InitEntities 'world' +11:10:42.827 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:10:42.827 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:10:42.828 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:10:42.828 SCRIPT (W): Slot_Chat Has no Content! +11:10:42.828 SCRIPT (W): Slot_VON Has no Content! +11:10:42.828 SCRIPT (W): Slot_AvailableActions Has no Content! +11:10:42.828 SCRIPT (W): Slot_Vehicle Has no Content! +11:10:42.828 SCRIPT (W): Slot_GameVersion Has no Content! +11:10:42.829 SCRIPT (W): Slot_Notifications Has no Content! +11:10:42.829 SCRIPT (W): Slot_Hints Has no Content! +11:10:42.843 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:10:42.843 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:10:42.844 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:10:42.844 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. +11:10:42.845 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. +11:10:42.850 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:10:43.137 WORLD : UpdateEntities +11:10:43.137 WORLD : PostFrame +11:10:43.137 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:10:43.137 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:10:43.193 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:10:43.194 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:10:43.194 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:10:43.194 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:10:45.649 WORLD : UpdateEntities +11:10:45.649 WORLD : AfterPostSimulate +11:10:45.649 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:12:02.735 SCRIPT (E): ERR SMOKE FAIL: mortar firing expiry evidence interrupted by Stop or unrelated/incomplete order closure +11:12:02.736 SCRIPT (E): ERR SMOKE FAIL: native mortar firing probe failed; see diagnostics diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/headless-launch.log.txt new file mode 100644 index 0000000..c0246ea --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555944ab1c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555944ab1c0 +[Gamescope WSI] Destroyed swapchain: 0x5555944ab1c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555944ab1c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555944ab1c0 +[Gamescope WSI] Destroyed swapchain: 0x5555944ab1c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555944ab1c0 - imageCount: 4 +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source-sha256.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source.json b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source.json new file mode 100644 index 0000000..1718dc0 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "4c81a80f-fa5c-451d-8323-6492e249742a", + "captured_unix": 1789808993.8525875, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/chat/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "1", + "-errSmokeOutcome", + "mortar-expiry", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/report.json b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/report.json new file mode 100644 index 0000000..95eada6 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 40, + "script_or_runtime_failures": [ + "11:12:02.735 SCRIPT (E): ERR SMOKE FAIL: mortar firing expiry evidence interrupted by Stop or unrelated/incomplete order closure", + "11:12:02.736 SCRIPT (E): ERR SMOKE FAIL: native mortar firing probe failed; see diagnostics" + ], + "engine_errors": [ + "11:12:02.735 SCRIPT (E): ERR SMOKE FAIL: mortar firing expiry evidence interrupted by Stop or unrelated/incomplete order closure", + "11:12:02.736 SCRIPT (E): ERR SMOKE FAIL: native mortar firing probe failed; see diagnostics" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/rereintroduced-hq.log.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/rereintroduced-hq.log.txt new file mode 100644 index 0000000..70fb282 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/rereintroduced-hq.log.txt @@ -0,0 +1,79 @@ +#1 t=6.5s M0 REGISTER group 1 [session=1789809042-1] +#2 t=6.5s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789809042-1] +#3 t=6.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789809042-1] +#4 t=7.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=1 fighting=1 inventory HE=0 radio connected=0 cooldown remaining=0s [session=1789809042-1] +#5 t=7.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=7.45069s last failure= [session=1789809042-1] +#6 t=8.6s M0 REGISTER group 2 [session=1789809042-1] +#7 t=8.6s M0 REGISTER group 3 [session=1789809042-1] +#8 t=8.6s M0 REGISTER group 4 [session=1789809042-1] +#9 t=8.6s M0 REGISTER group 5 [session=1789809042-1] +#10 t=8.6s M0 REGISTER group 6 [session=1789809042-1] +#11 t=8.6s M0 REGISTER group 7 [session=1789809042-1] +#12 t=12.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=0 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#13 t=12.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=12.4909s last failure= [session=1789809042-1] +#14 t=17.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#15 t=17.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=17.5307s last failure= [session=1789809042-1] +#16 t=17.8s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789809042-1] +#17 t=18s M1 FIXTURE REPORT EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789809042-1] +#18 t=18.8s M1 TRANSMIT unit 1 -> HQ (long-range) [session=1789809042-1] +#19 t=20.8s M1 RECEIVE HQ received from unit 1 [session=1789809042-1] +#20 t=22.6s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#21 t=22.6s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=22.5915s last failure= [session=1789809042-1] +#22 t=22.8s M5 TRANSMIT HQ -> unit 6 (long-range) [session=1789809042-1] +#23 t=22.8s M4 TRANSMIT HQ -> unit 4 (long-range) [session=1789809042-1] +#24 t=22.8s M3 TRANSMIT HQ -> unit 3 (long-range) [session=1789809042-1] +#25 t=22.8s M2 TRANSMIT HQ -> unit 2 (long-range) [session=1789809042-1] +#26 t=24.8s M5 RECEIVE unit 6 received from HQ [session=1789809042-1] +#27 t=24.8s M5 ORDER DELIVERED group 6 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809042-1] +#28 t=24.8s M4 RECEIVE unit 4 received from HQ [session=1789809042-1] +#29 t=24.8s M4 ORDER DELIVERED group 4 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809042-1] +#30 t=24.8s M3 RECEIVE unit 3 received from HQ [session=1789809042-1] +#31 t=24.8s M3 ORDER DELIVERED group 3 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809042-1] +#32 t=24.8s M2 RECEIVE unit 2 received from HQ [session=1789809042-1] +#33 t=24.8s M2 ORDER DELIVERED group 2 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809042-1] +#34 t=26.8s M6 ORDER QUEUED MORTAR ORDER from report M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789809042-1] +#35 t=26.8s M0 MORTAR COMMAND site=1 order=1 radio=M0 source=M1 position=<6000,202.788,7000>; requested rounds=8 HE radius=40m; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789809042-1] +#36 t=27.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#37 t=27.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=1 native action=-1 shell committed=0 order shots=0 total shots=0 age=0.84101s last failure= [session=1789809042-1] +#38 t=27.8s M6 TRANSMIT HQ -> unit 1 (long-range) [session=1789809042-1] +#39 t=29.8s M6 RECEIVE unit 1 received from HQ [session=1789809042-1] +#40 t=29.8s M6 MORTAR AIM site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; native activity created; latest source=M1 observed=X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (12s ago) [session=1789809042-1] +#41 t=30.8s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=1.00289s aim age=30.8251s committed=0 shots=0; previous= repeated polls omitted=0 [session=1789809042-1] +#42 t=32.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=27.1334s [session=1789809042-1] +#43 t=32.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=2.86659s last failure= [session=1789809042-1] +#44 t=32.8s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (15s ago); previous= repeated polls omitted=0 [session=1789809042-1] +#45 t=32.8s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s charge index=2 aim target=<5207.07,2689.01,6387.75> latest source=M1; previous= repeated polls omitted=0 [session=1789809042-1] +#46 t=37.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=22.0961s [session=1789809042-1] +#47 t=37.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=7.90387s last failure= [session=1789809042-1] +#48 t=42.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=17.0254s [session=1789809042-1] +#49 t=42.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=12.9746s last failure= [session=1789809042-1] +#50 t=47.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=11.9852s [session=1789809042-1] +#51 t=47.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=18.0148s last failure= [session=1789809042-1] +#52 t=52.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=6.93353s [session=1789809042-1] +#53 t=52.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=23.0665s last failure= [session=1789809042-1] +#54 t=57.2s M6 MORTAR AIM REVALIDATED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=same native command; fresh ballistic solve matched original; source=M1 observed age=39.1471s; previous= repeated polls omitted=0 [session=1789809042-1] +#55 t=57.2s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous= repeated polls omitted=0 [session=1789809042-1] +#56 t=57.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=1.8779s [session=1789809042-1] +#57 t=57.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=28.1221s last failure= [session=1789809042-1] +#58 t=58.1s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.122070 202.732025 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s; invoking native transfer, awaiting projectile event [session=1789809042-1] +#59 t=59.1s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x000000019FCAA1B0> @"ENTITY:4611686018427390981" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order shots=1 total shots=1 predicted impact=<5207.07,78.6842,6387.75> predicted flight=24.2333s gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.122070 202.734848 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809042-1] +#60 t=61s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=31.1438s aim age=60.966s committed=0 shots=1; previous=native state=1 repeated polls omitted=29 [session=1789809042-1] +#61 t=63s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#62 t=63s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=33.1779s last failure= [session=1789809042-1] +#63 t=68.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#64 t=68.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=38.246s last failure= [session=1789809042-1] +#65 t=68.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.119141 202.735840 7000.159180> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s; invoking native transfer, awaiting projectile event [session=1789809042-1] +#66 t=69.2s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x000000019FCAA2C0> @"ENTITY:4611686018427390986" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order shots=2 total shots=2 predicted impact=<5180.93,82.8334,6406.01> predicted flight=24.1666s gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.119141 202.738113 7000.159180> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809042-1] +#67 t=72.5s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (54s ago); previous=solving moving intercept repeated polls omitted=1 [session=1789809042-1] +#68 t=72.5s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5222.2,80.6071,6410.35> flight=24.3333s charge index=2 aim target=<5222.2,2710.04,6410.35> latest source=M1; previous=ready repeated polls omitted=1 [session=1789809042-1] +#69 t=73.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#70 t=73.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=43.3026s last failure= [session=1789809042-1] +#71 t=77.7s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.137695 202.735245 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5222.2,80.6071,6410.35> flight=24.3333s; invoking native transfer, awaiting projectile event [session=1789809042-1] +#72 t=78.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=24 radio connected=1 cooldown remaining=0s [session=1789809042-1] +#73 t=78.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=1 order shots=2 total shots=2 age=48.3578s last failure= [session=1789809042-1] +#74 t=78.7s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x000000019FCAA3D0> @"ENTITY:4611686018427390991" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order shots=3 total shots=3 predicted impact=<5222.2,80.6071,6410.35> predicted flight=24.3333s gunner=SCR_ChimeraCharacter<0x00000001BB3C9F70> @"ENTITY:4611686018427390773" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.137695 202.737457 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809042-1] +#75 t=78.8s M6 MORTAR AMMO FAILED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; current HQ order, crew or report is unavailable [session=1789809042-1] +#76 t=78.8s M6 MORTAR WITHHELD site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=next native load lacks confirmed physical gunner ammunition; ; previous= repeated polls omitted=0 [session=1789809042-1] +#77 t=79s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=SHOOT NODE reason=native result=2 repeated polls omitted=2 [session=1789809042-1] +#78 t=79s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=ACTIVITY reason=native state=1 repeated polls omitted=17 [session=1789809042-1] +#79 t=79s M6 MORTAR ORDER END site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native aim or firing authorization rejected observed shots=3 shell committed=0 elapsed=49.221s last failure=next native load lacks confirmed physical gunner ammunition; [session=1789809042-1] diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/runner.json.txt new file mode 100644 index 0000000..0986365 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789809124.1307309, + "console_sha256": "44d7e8104451ee9a3f7f576dd130b4c2c8fcfb3e50bc9ab7a2e8bab024c3eb01", + "end_source_sha256": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "4c81a80f-fa5c-451d-8323-6492e249742a", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "started_unix": 1789808993.8527157, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-09-55", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1280x720/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/script.log.txt b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/script.log.txt new file mode 100644 index 0000000..d5ec9ce --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/script.log.txt @@ -0,0 +1,292 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-09-55\script.log started at 2026-09-19 11:09:58 (2026-09-19 09:09:58 UTC) + +11:09:58.393 SCRIPT : SCRIPT : Initializing scripts +11:09:58.393 SCRIPT : SCRIPT : ScriptProjectManager init +11:10:00.690 SCRIPT : SCRIPT : Compiling GameLib scripts +11:10:00.770 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:10:00.770 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:10:00.771 SCRIPT : SCRIPT : Compiling Game scripts +11:10:02.032 SCRIPT : Compiling Game scripts +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:10:02.032 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:10:02.190 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.306 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:10:02.338 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:10:02.437 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:10:02.476 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:10:02.537 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:10:02.538 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.578 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:10:02.579 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:10:02.605 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:10:02.638 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:10:02.914 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:10:02.922 SCRIPT : Module: Game; loaded 5776x files; 11364x classes; used 33467K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c91180ab +11:10:03.846 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:10:03.846 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:10:25.054 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:10:25.055 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:10:25.056 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:10:25.057 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:10:25.080 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:10:28.496 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:10:28.496 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:10:42.280 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:10:42.308 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:10:42.818 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! +11:10:42.818 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! +11:10:42.820 SCRIPT (W): Can't open config file "" +11:10:42.828 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:10:42.828 SCRIPT (W): Slot_Chat Has no Content! +11:10:42.828 SCRIPT (W): Slot_VON Has no Content! +11:10:42.828 SCRIPT (W): Slot_AvailableActions Has no Content! +11:10:42.828 SCRIPT (W): Slot_Vehicle Has no Content! +11:10:42.828 SCRIPT (W): Slot_GameVersion Has no Content! +11:10:42.829 SCRIPT (W): Slot_Notifications Has no Content! +11:10:42.829 SCRIPT (W): Slot_Hints Has no Content! +11:10:42.844 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. +11:10:42.845 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. +11:10:42.850 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:10:42.919 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:10:42.934 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:10:43.137 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:10:44.706 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:10:44.727 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:10:44.728 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:10:44.759 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:10:44.762 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:10:44.811 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:10:44.811 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:10:44.816 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:10:44.863 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:10:44.863 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:10:44.865 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:10:44.865 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:10:44.869 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:10:44.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:10:44.871 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:10:44.873 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:10:44.873 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:10:44.873 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:10:44.873 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:10:44.873 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:10:44.874 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:10:44.874 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.874 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:10:44.874 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:10:44.874 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.875 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:10:44.875 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:10:44.875 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.875 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:44.876 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:10:45.713 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.714 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:45.964 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.533,7499.7> up=0.995661 +11:10:45.965 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.314752 angularSpeed=0.0541404 +11:10:45.965 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:45.965 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6131,7501.98> +11:10:45.965 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3131,7501.98> terrainY=63.3157 tireTerrainGap=-0.0026474 +11:10:45.965 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6131,7501.98> radius=0.3 bottom=<7012.06,63.3131,7501.98> fraction=0.442825 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00257874 +11:10:45.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6003,7497.71> +11:10:45.966 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1503,7497.71> terrainY=64.156 tireTerrainGap=-0.00565338 +11:10:45.966 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6003,7497.71> radius=0.45 bottom=<7009.88,64.1503,7497.71> fraction=0.429052 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0056076 +11:10:45.966 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2624,7497.75> +11:10:45.966 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8124,7497.75> terrainY=63.8177 tireTerrainGap=-0.00533676 +11:10:45.966 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2624,7497.75> radius=0.45 bottom=<7014.42,63.8124,7497.75> fraction=0.43 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0053978 +11:10:45.966 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:46.216 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.216 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.217 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:46.217 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:10:46.716 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:46.716 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.717 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:46.973 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5325,7499.72> up=0.994175 +11:10:46.974 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0958214 angularSpeed=0.0540664 +11:10:46.974 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:46.974 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6177,7501.99> +11:10:46.974 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3177,7501.99> terrainY=63.3137 tireTerrainGap=0.00395203 +11:10:46.974 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6177,7501.99> radius=0.3 bottom=<7012.06,63.3177,7501.99> fraction=0.472829 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00402451 +11:10:46.975 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.603,7497.72> +11:10:46.975 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.153,7497.72> terrainY=64.1497 tireTerrainGap=0.00325775 +11:10:46.975 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.603,7497.72> radius=0.45 bottom=<7009.92,64.153,7497.72> fraction=0.469434 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00328064 +11:10:46.975 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2649,7497.79> +11:10:46.975 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8149,7497.79> terrainY=63.8154 tireTerrainGap=-0.000499725 +11:10:46.975 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2649,7497.79> radius=0.45 bottom=<7014.46,63.8149,7497.79> fraction=0.452222 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000511169 +11:10:46.975 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:10:47.229 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.480 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:47.733 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:48.047 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.11,63.5326,7499.74> up=0.993858 +11:10:48.047 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0388562 angularSpeed=0.0404482 +11:10:48.048 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:48.048 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6139,7502.01> +11:10:48.048 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00230408 +11:10:48.048 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6139,7502.01> radius=0.3 bottom=<7012.06,63.3139,7502.01> fraction=0.464942 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00228882 +11:10:48.048 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.96,64.5951,7497.72> +11:10:48.048 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.96,64.1451,7497.72> terrainY=64.1434 tireTerrainGap=0.00166321 +11:10:48.049 SCRIPT : ERR GEAR SUPPORT: center=<7009.96,64.5951,7497.72> radius=0.45 bottom=<7009.96,64.1451,7497.72> fraction=0.462402 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00173187 +11:10:48.049 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.5,64.26,7497.83> +11:10:48.049 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.5,63.81,7497.83> terrainY=63.8125 tireTerrainGap=-0.00252151 +11:10:48.049 SCRIPT : ERR GEAR SUPPORT: center=<7014.5,64.26,7497.83> radius=0.45 bottom=<7014.5,63.81,7497.83> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:10:48.049 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:10:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.051 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.551 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:48.551 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:48.552 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:48.552 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:10:49.064 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5281,7499.74> up=0.993809 +11:10:49.064 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:10:49.064 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:49.065 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6134,7502.01> +11:10:49.065 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3134,7502.01> terrainY=63.3116 tireTerrainGap=0.00188828 +11:10:49.065 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6134,7502.01> radius=0.3 bottom=<7012.07,63.3134,7502.01> fraction=0.463272 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00191879 +11:10:49.065 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +11:10:49.065 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1423 tireTerrainGap=0.00229645 +11:10:49.065 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +11:10:49.066 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:10:49.066 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8121 tireTerrainGap=-0.00201035 +11:10:49.066 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:10:49.066 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:49.066 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.067 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.568 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:49.569 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.078 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5281,7499.74> up=0.993809 +11:10:50.079 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:10:50.079 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:10:50.079 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6134,7502.01> +11:10:50.079 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3134,7502.01> terrainY=63.3116 tireTerrainGap=0.00188828 +11:10:50.079 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6134,7502.01> radius=0.3 bottom=<7012.07,63.3134,7502.01> fraction=0.463272 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00191879 +11:10:50.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72> +11:10:50.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1423 tireTerrainGap=0.00229645 +11:10:50.080 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.465247 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00235748 +11:10:50.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:10:50.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8121 tireTerrainGap=-0.00201035 +11:10:50.080 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:10:50.081 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:10:50.081 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.081 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:10:50.082 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:10:50.097 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:10:50.098 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:10:50.098 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:10:50.098 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:10:50.098 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:10:50.099 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:10:50.099 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:10:50.233 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:10:50.272 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:10:50.481 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:10:50.481 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:10:50.481 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:10:50.481 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:10:50.482 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:10:50.482 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:10:50.482 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:10:50.483 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:10:50.486 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:10:50.488 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:10:50.488 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:10:50.489 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:10:50.989 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:10:56.029 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:11:01.069 SCRIPT : ERR MORTAR FIXTURE: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:11:01.572 SCRIPT : ERR SMOKE PASS: mortar firing untasked original gun and complete four-person crew start without shots +11:11:01.572 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.573 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.573 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing initial physical crew member is conscious and unique +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing dedicated actual manpack supplies the radio route +11:11:01.574 SCRIPT : ERR SMOKE PASS: mortar firing exactly 27 distinct physical initial HE shells +11:11:01.588 SCRIPT : ERR MORTAR FIXTURE IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:11:01.588 SCRIPT : ERR SMOKE PASS: mortar firing bounded candidate survey finds an unoccupied production-safe impact area +11:11:01.589 SCRIPT : ERR SMOKE PASS: mortar firing fixture-owned inert report identity exists; no enemy perception is claimed +11:11:01.589 SCRIPT : ERR SMOKE PASS: mortar firing synthetic observation enters actual existing radio uplink once +11:11:06.130 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:11.175 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:16.226 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:21.264 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:26.335 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:31.375 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:36.427 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:41.483 SCRIPT : ERR MORTAR FIXTURE: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:11:41.605 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=1 order=1 shot=0 source=M1 observedAge=40026.7; recorded before native inventory transfer +11:11:42.642 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=1 entity=Projectile<0x000000019FCAA1B0> @"ENTITY:4611686018427390981" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 source=M1 aimAge=26325.8 flight=24.2333; impact is not measured +11:11:42.994 SCRIPT : ERR SMOKE PASS: mortar firing one physical projectile follows real uplink/downlink, native activity and fresh aim +11:11:42.994 SCRIPT : ERR SMOKE PASS: mortar firing one fired projectile consumes one of 27 original inventory shells +11:11:46.539 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:11:51.607 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:11:51.759 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=2 order=1 shot=1 source=M1 observedAge=50181.6; recorded before native inventory transfer +11:11:52.788 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=2 entity=Projectile<0x000000019FCAA2C0> @"ENTITY:4611686018427390986" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 source=M1 aimAge=6852.98 flight=24.1666; impact is not measured +11:11:56.664 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:12:01.230 SCRIPT : ERR MORTAR FIXTURE COMMIT: count=3 order=1 shot=2 source=M1 observedAge=59652.8; recorded before native inventory transfer +11:12:01.719 SCRIPT : ERR MORTAR FIXTURE: step=3 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:12:02.257 SCRIPT : ERR MORTAR FIXTURE PROJECTILE: event=3 entity=Projectile<0x000000019FCAA3D0> @"ENTITY:4611686018427390991" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 source=M1 aimAge=6248.55 flight=24.3333; impact is not measured +11:12:02.583 SCRIPT : ERR MORTAR FIXTURE CLOSURE: order=1 observedAge=61008.5 reason=native aim or firing authorization rejected lastFailure=next native load lacks confirmed physical gunner ammunition; complete=0 expiredWithheld=0 +11:12:02.735 SCRIPT (E): ERR SMOKE FAIL: mortar firing expiry evidence interrupted by Stop or unrelated/incomplete order closure +11:12:02.736 SCRIPT (E): ERR SMOKE FAIL: native mortar firing probe failed; see diagnostics diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-sha256.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/native-2026-09-19-110955-expiry-classification-refusal/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/console.log.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/console.log.txt new file mode 100644 index 0000000..ecb088a --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/console.log.txt @@ -0,0 +1,675 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15\console.log started at 2026-09-19 11:19:15 (2026-09-19 09:19:15 UTC) + +11:19:15.552 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15' to filesystem under name logs +11:19:15.552 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:19:15.552 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:19:15.554 PROFILING : Workbench Create Engine took: 10.101800 ms +11:19:16.591 INIT : INIT : Workbench Init Engine +11:19:16.591 ENGINE : Initializing engine, version 192142 +11:19:16.591 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome mortar-refresh -noThrow -disableCrashReporter +11:19:16.599 ENGINE : Addon dirs: +11:19:16.599 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/' +11:19:16.599 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:19:16.599 ENGINE : dir: './addons' +11:19:16.599 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:19:16.599 ENGINE : Available addons: +11:19:16.599 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:19:16.599 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:19:16.599 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:19:16.599 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:19:16.599 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:19:16.599 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:19:16.599 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:19:16.599 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat +11:19:16.599 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map +11:19:16.600 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel +11:19:16.600 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai +11:19:16.600 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:19:16.726 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:19:16.729 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:19:16.729 ENGINE : CPU vendor : AuthenticAMD +11:19:16.729 ENGINE : CPU type : 2 +11:19:16.729 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:19:16.729 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:19:16.729 ENGINE : CPU count logical : 16 +11:19:16.729 ENGINE : CPU count physical : 8 +11:19:16.729 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:19:16.729 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:19:16.730 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:19:16.730 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:19:16.730 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:19:16.730 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:19:16.731 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:19:16.883 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +11:19:16.885 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:19:16.885 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15/resourceDatabase.rdb) +11:19:17.036 RESOURCES : RESOURCES : ResourceDB: full scan +11:19:17.040 RESOURCES : RESOURCES : scanning... +11:19:17.040 RESOURCES : RESOURCES : scanning @"ERR_Chat" +11:19:17.042 RESOURCES : RESOURCES : scanning @"ERR_Map" +11:19:17.044 RESOURCES : RESOURCES : scanning @"ERR_Intel" +11:19:17.044 RESOURCES : RESOURCES : scanning @"ERR_Ai" +11:19:17.046 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:19:17.050 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:19:17.186 RESOURCES : RESOURCES : scanning @"core" +11:19:17.190 RESOURCES : RESOURCES : scanning @"profile" +11:19:17.190 RESOURCES : RESOURCES : scanning @"logs" +11:19:17.191 RESOURCES : RESOURCES : processing meta-files... +11:19:17.256 RESOURCES : RESOURCES : processing files... +11:19:17.267 INIT : Workbench startup +11:19:17.267 INIT : Workbench Init Engine +11:19:17.267 RESOURCES : ResourceDB: full scan +11:19:17.267 RESOURCES : processing files... +11:19:17.267 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:19:17.267 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:19:17.267 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:19:17.267 RESOURCES : RESOURCES : processing folders... +11:19:17.274 RESOURCES : RESOURCES : creating GUID-item mapping... +11:19:17.290 RESOURCES : RESOURCES : building tree... +11:19:17.351 PROFILING : ResourceDB: full scan took: 315.703100 ms +11:19:17.352 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:19:17.354 RESOURCES : ResourceDB: written 804/804 bytes +11:19:17.354 RESOURCES : ResourceDB: cache successfully saved +11:19:17.354 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:19:17.355 RESOURCES : ResourceDB: written 750/750 bytes +11:19:17.355 RESOURCES : ResourceDB: cache successfully saved +11:19:17.355 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:19:17.357 RESOURCES : ResourceDB: written 227/227 bytes +11:19:17.357 RESOURCES : ResourceDB: cache successfully saved +11:19:17.357 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:19:17.358 RESOURCES : ResourceDB: written 1721/1721 bytes +11:19:17.358 RESOURCES : ResourceDB: cache successfully saved +11:19:17.358 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:19:17.360 RESOURCES : ResourceDB: written 6865/6865 bytes +11:19:17.360 RESOURCES : ResourceDB: cache successfully saved +11:19:17.360 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:19:17.361 RESOURCES : ResourceDB: written 206/206 bytes +11:19:17.361 RESOURCES : ResourceDB: cache successfully saved +11:19:17.361 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15/resourceDatabase.rdb) +11:19:17.363 RESOURCES : ResourceDB: written 162/162 bytes +11:19:17.363 RESOURCES : ResourceDB: cache successfully saved +11:19:17.363 ENGINE : GameProject load +11:19:17.363 ENGINE : Loaded addons: +11:19:17.363 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:19:17.363 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:19:17.363 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:19:17.363 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:19:17.363 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:19:17.363 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:19:17.363 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:19:17.365 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:19:17.366 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:19:17.366 ENGINE : Engine user settings config loaded +11:19:17.366 PROFILING : Settings changed took: 0.001600 ms +11:19:17.471 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:19:17.472 RENDER : Basic screen setup: +11:19:17.472 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:19:17.472 RENDER : MSAA : none +11:19:17.486 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:19:17.486 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:19:17.486 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:19:17.486 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:19:17.486 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:19:17.486 RENDER : AMD AGS correctly initialized +11:19:17.487 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 +11:19:17.487 RENDER : Detected output devices: +11:19:17.487 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:19:17.487 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:19:17.487 RENDER : Concurrent frames limit 2 +11:19:17.564 RENDER : DX12 device successfully created by AMD AGS library +11:19:17.564 RENDER : * user markers not supported in this version AMD SW +11:19:17.564 RENDER : Graphics device features +11:19:17.564 RENDER : Needed: +11:19:17.564 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:19:17.564 RENDER : Optional: +11:19:17.564 RENDER : * Allow tearing (VSYNC) : 1 +11:19:17.564 RENDER : * 16 bits : 1 +11:19:17.564 RENDER : * Resource heap tier : 3 +11:19:17.564 RENDER : * Persistent heaps (DRED) : 1 +11:19:17.564 RENDER : * DRED 1.2 is supported by compiler +11:19:17.587 RENDER : Main RT format setup. +11:19:17.587 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:19:17.587 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:19:17.589 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:19:17.619 PROFILING : Settings changed took: 0.025600 ms +11:19:18.205 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:19:18.205 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:19:18.205 AUDIO : Audio client: +11:19:18.205 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:19:18.209 RENDER : RENDER : Reload shaders +11:19:18.210 RENDER : Enfusion shader version 13 +11:19:18.210 INIT : INIT : ShaderListReload +11:19:18.210 PROFILING : ShaderListReload took: 0.000400 ms +11:19:18.357 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:19:18.357 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:19:18.357 AUDIO : Audio client: +11:19:18.357 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:19:18.632 RENDER : Loaded 3752 newer shader binaries +11:19:18.632 PROFILING : Reload shaders took: 423.204500 ms +11:19:18.632 ENGINE : Initializing inputs. +11:19:18.647 NETWORK : Initializing networking. +11:19:18.647 NETWORK : Using new GameRplScheduler. +11:19:18.647 SCRIPT : SCRIPT : Initializing scripts +11:19:18.647 SCRIPT : SCRIPT : ScriptProjectManager init +11:19:20.829 PROFILING : ScriptProjectManager init took: 2181.049100 ms +11:19:20.917 PROFILING : Initializing scripts took: 2269.733100 ms +11:19:20.935 ENGINE : Enfusion engine successfully created. +11:19:20.935 PROFILING : Workbench Init Engine took: 4343.828600 ms +11:19:20.935 INIT : INIT : Workbench Create Game +11:19:20.947 GUI : Using default language (en_us) +11:19:20.947 GUI : Loading 'en_us' localization file. +11:19:20.947 INIT : INIT : Loading StringTable +11:19:20.971 PROFILING : Loading StringTable took: 24.017700 ms +11:19:20.971 SCRIPT : SCRIPT : Compiling GameLib scripts +11:19:21.040 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:19:21.040 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:19:21.041 PROFILING : Compiling GameLib scripts took: 69.654500 ms +11:19:21.041 SCRIPT : SCRIPT : Compiling Game scripts +11:19:22.412 INIT : Workbench Create Game +11:19:22.412 SCRIPT : Compiling Game scripts +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:19:22.569 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.685 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:19:22.718 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:19:22.853 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:19:22.916 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:19:22.981 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:23.015 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:19:23.294 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:19:23.301 SCRIPT : Module: Game; loaded 5776x files; 11367x classes; used 33488K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 80e87e58 +11:19:23.339 PROFILING : Compiling Game scripts took: 2298.583900 ms +11:19:23.345 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:19:23.383 ENGINE : Game successfully created. +11:19:23.385 PROFILING : Workbench Create Game took: 2450.064400 ms +11:19:23.393 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails +11:19:24.284 INIT : INIT : Workbench Reload Game +11:19:24.285 ENGINE : Game destroyed. +11:19:24.291 GUI : Using default language (en_us) +11:19:24.291 GUI : Loading 'en_us' localization file. +11:19:24.291 INIT : INIT : Loading StringTable +11:19:24.302 PROFILING : Loading StringTable took: 10.032200 ms +11:19:24.302 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:19:24.310 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:19:24.310 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:19:24.310 ENGINE : Game successfully created. +11:19:24.310 ENGINE : Game successfully initialized. +11:19:24.310 PROFILING : Workbench Reload Game took: 25.921400 ms +11:19:25.061 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:19:26.079 PROFILING : Entities load took: 1017.624000 ms +11:19:26.090 WORLD : WORLD : CreateEntities +11:19:26.095 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:19:26.095 PROFILING : NotifyBeforeEntitiesCreated took: 0.002400 ms +11:19:26.095 WORLD : WORLD : Wait for preloading data +11:19:26.095 PROFILING : Wait for preloading data took: 0.002900 ms +11:19:26.209 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:19:26.209 PROFILING : PROFILING : Terrain load +11:19:28.194 PROFILING : Terrain load took: 1984.525000 ms +11:19:32.366 WORLD : CreateEntities +11:19:32.367 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:19:32.367 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:19:32.367 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:19:43.221 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:19:43.222 PROFILING : NotifyBeforeEntitiesInitialized took: 0.007700 ms +11:19:43.664 WORLD : WORLD : NotifyEntitiesInitialized +11:19:43.664 TERRAIN : TERRAIN : Initializing road networks... +11:19:43.667 PROFILING : Initializing road networks... took: 2.387400 ms +11:19:43.667 PROFILING : NotifyEntitiesInitialized took: 2.878500 ms +11:19:43.667 PROFILING : CreateEntities took: 17575.950700 ms +11:19:43.841 PROFILING : * WorldEditor: LoadWorld: 18785.225600 ms +11:19:45.266 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:19:45.267 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:19:45.268 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:19:45.269 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:19:45.353 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:19:45.379 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:19:45.402 BACKEND : Attempting online Game Config instead. +11:19:48.682 INIT : INIT : Workbench Reload Game +11:19:48.685 ENGINE : Game destroyed. +11:19:48.692 GUI : Using default language (en_us) +11:19:48.692 GUI : Loading 'en_us' localization file. +11:19:48.692 INIT : INIT : Loading StringTable +11:19:48.715 PROFILING : Loading StringTable took: 22.021100 ms +11:19:48.715 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:19:48.723 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:19:48.724 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:19:48.724 ENGINE : Game successfully created. +11:19:48.724 ENGINE : Game successfully initialized. +11:19:48.724 PROFILING : Workbench Reload Game took: 41.704500 ms +11:19:48.727 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:19:48.783 PLATFORM : Save data from container 'settings' have been loaded +11:19:48.872 PLATFORM : Save data from container 'sessions' have been loaded +11:19:48.873 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:19:48.873 ENGINE : Game user settings config loaded +11:19:48.969 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:19:48.978 WORLD : WORLD : Game::LoadEntities +11:19:48.978 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:19:48.979 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:19:48.979 WORLD : WORLD : CreateEntities +11:19:48.979 WORLD : WORLD : CreateEntities +11:19:48.979 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:19:48.992 RESOURCES : Loaded mission headers from 7 addon(s)! +11:19:48.992 PROFILING : NotifyBeforeEntitiesCreated took: 12.914300 ms +11:19:48.992 WORLD : WORLD : Wait for preloading data +11:19:48.992 PROFILING : Wait for preloading data took: 0.000700 ms +11:19:53.800 WORLD : Game::LoadEntities +11:19:53.800 WORLD : CreateEntities +11:19:53.800 WORLD : CreateEntities +11:19:53.800 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:19:53.800 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:19:53.800 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:19:55.186 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:19:55.186 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:19:55.186 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:20:00.597 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:20:00.597 PROFILING : NotifyBeforeEntitiesInitialized took: 0.053700 ms +11:20:02.678 WORLD : InitEntities 'world' +11:20:02.678 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:20:02.678 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:20:02.706 WORLD : InitEntities 'world' +11:20:02.706 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:20:02.706 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:20:02.707 WORLD : WORLD : NotifyEntitiesInitialized +11:20:02.707 TERRAIN : TERRAIN : Initializing road networks... +11:20:02.710 PROFILING : Initializing road networks... took: 2.822800 ms +11:20:02.710 DEFAULT : DEFAULT : WorldVolumesCollection +11:20:02.777 PROFILING : WorldVolumesCollection took: 66.651000 ms +11:20:02.777 INIT : INIT : SoundWorldInit +11:20:02.793 PROFILING : SoundWorldInit took: 16.248900 ms +11:20:02.793 PROFILING : NotifyEntitiesInitialized took: 86.031900 ms +11:20:02.793 PROFILING : CreateEntities took: 13813.844200 ms +11:20:02.793 PROFILING : CreateEntities took: 13814.017100 ms +11:20:02.794 WORLD : WORLD : Wait for preloading data around camera +11:20:02.794 PROFILING : Wait for preloading data around camera took: 0.001300 ms +11:20:02.794 WORLD : WORLD : EOnActivate +11:20:02.827 PROFILING : EOnActivate took: 33.593200 ms +11:20:02.828 PROFILING : Game::LoadEntities took: 13849.776300 ms +11:20:03.134 DEFAULT : Entered offline game state. +11:20:03.239 NETWORK : Player connected: connectionID=2147483646 +11:20:03.239 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:20:03.239 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:20:03.245 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.245 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:20:03.245 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.245 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! +11:20:03.246 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! +11:20:03.247 SCRIPT (W): Can't open config file "" +11:20:03.254 WORLD : InitEntities 'world' +11:20:03.254 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.254 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:20:03.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:20:03.255 SCRIPT (W): Slot_Chat Has no Content! +11:20:03.255 SCRIPT (W): Slot_VON Has no Content! +11:20:03.255 SCRIPT (W): Slot_AvailableActions Has no Content! +11:20:03.255 SCRIPT (W): Slot_Vehicle Has no Content! +11:20:03.255 SCRIPT (W): Slot_GameVersion Has no Content! +11:20:03.255 SCRIPT (W): Slot_Notifications Has no Content! +11:20:03.255 SCRIPT (W): Slot_Hints Has no Content! +11:20:03.266 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:20:03.266 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:20:03.267 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:20:03.267 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. +11:20:03.267 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. +11:20:03.270 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:20:03.270 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:20:03.270 NETWORK : Players connecting: 0 +11:20:03.271 NETWORK : Players connected: 1 / 1 +11:20:03.301 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves +11:20:03.303 PROFILING : Workbench startup took: 47812.846100 ms +11:20:03.328 WORLD : Frame start +11:20:03.329 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:20:03.342 WORLD : UpdateEntities +11:20:03.342 WORLD : Frame +11:20:03.342 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:20:03.529 WORLD : UpdateEntities +11:20:03.529 WORLD : PostFrame +11:20:03.529 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:20:03.530 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:20:03.579 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:20:03.579 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:20:03.580 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:20:03.580 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:20:03.728 RENDER : RENDER : ObjectsHeightMap::Build +11:20:03.728 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:20:03.894 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 166.388500 ms +11:20:03.902 PROFILING : ObjectsHeightMap::Build took: 174.320800 ms +11:20:05.065 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:20:05.085 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:20:05.086 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:20:05.114 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:20:05.116 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:20:05.167 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:20:05.167 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:20:05.173 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:20:05.226 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:20:05.226 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:20:05.229 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:20:05.229 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:20:05.233 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:20:05.235 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:20:05.235 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:20:05.237 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:20:05.237 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:20:05.237 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:20:05.238 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:20:05.238 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:20:05.238 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:20:05.238 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.238 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:20:05.238 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:20:05.239 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.239 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:20:05.239 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:20:05.239 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:06.023 WORLD : UpdateEntities +11:20:06.023 WORLD : AfterPostSimulate +11:20:06.023 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.101 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.356 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5268,7499.7> up=0.995673 +11:20:06.356 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +11:20:06.356 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:06.356 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6169,7501.97> +11:20:06.356 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3169,7501.97> terrainY=63.3166 tireTerrainGap=0.000385284 +11:20:06.356 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6169,7501.97> radius=0.3 bottom=<7012.06,63.3169,7501.97> fraction=0.456583 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.000450134 +11:20:06.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6047,7497.71> +11:20:06.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1547,7497.71> terrainY=64.1556 tireTerrainGap=-0.000846863 +11:20:06.357 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6047,7497.71> radius=0.45 bottom=<7009.88,64.1547,7497.71> fraction=0.450925 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000793457 +11:20:06.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2647,7497.75> +11:20:06.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8147,7497.75> terrainY=63.8178 tireTerrainGap=-0.0030632 +11:20:06.357 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2647,7497.75> radius=0.45 bottom=<7014.42,63.8147,7497.75> fraction=0.440556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00307846 +11:20:06.357 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:06.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:07.115 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.116 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.116 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.456 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5348,7499.71> up=0.994335 +11:20:07.456 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +11:20:07.456 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:07.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6188,7501.99> +11:20:07.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3188,7501.99> terrainY=63.3145 tireTerrainGap=0.0043602 +11:20:07.457 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6188,7501.99> radius=0.3 bottom=<7012.07,63.3188,7501.99> fraction=0.47451 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00439072 +11:20:07.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71> +11:20:07.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00304413 +11:20:07.457 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468312 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00302887 +11:20:07.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2648,7497.78> +11:20:07.458 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8148,7497.78> terrainY=63.8155 tireTerrainGap=-0.000652313 +11:20:07.458 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2648,7497.78> radius=0.45 bottom=<7014.47,63.8148,7497.78> fraction=0.451667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00063324 +11:20:07.458 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:07.458 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:07.458 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.459 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.459 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.955 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:08.455 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994319 +11:20:08.455 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +11:20:08.456 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:08.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6147,7502.01> +11:20:08.456 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3147,7502.01> terrainY=63.3115 tireTerrainGap=0.00315094 +11:20:08.456 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6147,7502.01> radius=0.3 bottom=<7012.07,63.3147,7502.01> fraction=0.468837 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00314331 +11:20:08.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5934,7497.71> +11:20:08.456 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1434,7497.71> terrainY=64.1425 tireTerrainGap=0.000892639 +11:20:08.457 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5934,7497.71> radius=0.45 bottom=<7009.97,64.1434,7497.71> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +11:20:08.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2594,7497.83> +11:20:08.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8094,7497.83> terrainY=63.8125 tireTerrainGap=-0.00302505 +11:20:08.457 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2594,7497.83> radius=0.45 bottom=<7014.51,63.8094,7497.83> fraction=0.440556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00307846 +11:20:08.457 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:08.457 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.960 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:09.470 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994379 +11:20:09.470 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:20:09.470 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:09.471 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6126,7502.02> +11:20:09.471 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3126,7502.02> terrainY=63.3108 tireTerrainGap=0.00182724 +11:20:09.471 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6126,7502.02> radius=0.3 bottom=<7012.07,63.3126,7502.02> fraction=0.462844 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00182724 +11:20:09.471 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:20:09.471 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00252533 +11:20:09.472 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:20:09.472 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:20:09.472 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00185013 +11:20:09.472 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:20:09.472 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.981 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.480 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994379 +11:20:10.480 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:20:10.481 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:10.481 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6126,7502.02> +11:20:10.481 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3126,7502.02> terrainY=63.3108 tireTerrainGap=0.00182724 +11:20:10.481 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6126,7502.02> radius=0.3 bottom=<7012.07,63.3126,7502.02> fraction=0.462844 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00182724 +11:20:10.481 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:20:10.481 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00252533 +11:20:10.482 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:20:10.482 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:20:10.482 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00185013 +11:20:10.482 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:20:10.482 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:10.482 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.483 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.483 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:20:10.496 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:20:10.497 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:20:10.497 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:20:10.498 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:20:10.498 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:20:10.498 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:20:10.498 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:20:10.600 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:20:10.639 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:20:10.877 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:20:10.877 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:20:10.877 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:20:10.877 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:20:10.878 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:20:10.886 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:20:11.386 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:16.434 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:21.477 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:21.982 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +11:20:21.982 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +11:20:22.000 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +11:20:22.001 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M1 actualObservedAt=18093.5 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378983 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:20:22.001 SCRIPT : ERR SMOKE PASS: mortar salvo first actual-clock observation recorded without replacement +11:20:26.528 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:31.086 SCRIPT : ERR SMOKE PASS: mortar salvo initial order traverses actual nonempty HQ downlink +11:20:31.587 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:36.632 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:41.688 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:42.194 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M7 actualObservedAt=38302.8 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6004.369629 202.426758 6998.412598> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:20:42.194 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:20:46.757 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:48.804 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M7 observedAt=38302.8 downlink=M8 sameOrder=1 originalActivity=1 +11:20:51.809 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:56.868 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:21:01.914 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:21:02.417 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M9 actualObservedAt=58525.2 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.523438 202.453217 6998.242188> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:21:02.417 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:21:03.071 WORLD : UpdateEntities +11:21:03.071 WORLD : FixedFrame +11:21:03.071 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 acceptedSource=M7 observedAge=20874 commandAge=25403 validationAge=876.266; recorded before native inventory transfer +11:21:04.103 WORLD : UpdateEntities +11:21:04.104 WORLD : Frame +11:21:04.104 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x00000001A04CA2C0> @"ENTITY:4611686018427390996" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 acceptedSource=M7 aimAge=26436.9 flight=24.2333; impact is not measured +11:21:06.971 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:21:08.965 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M9 observedAt=58525.2 downlink=M10 sameOrder=1 originalActivity=1 +11:21:12.022 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:21:13.455 WORLD : UpdateEntities +11:21:13.455 WORLD : FixedFrame +11:21:13.456 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 acceptedSource=M9 observedAge=11037 commandAge=5744.95 validationAge=4492.13; recorded before native inventory transfer +11:21:14.486 WORLD : UpdateEntities +11:21:14.486 WORLD : Frame +11:21:14.486 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x00000001A04CA3D0> @"ENTITY:4611686018427391001" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 acceptedSource=M9 aimAge=6776.99 flight=24.1666; impact is not measured +11:21:17.066 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:21:22.120 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:21:22.625 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M11 actualObservedAt=78732.8 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6001.541016 201.155823 6989.592285> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:21:22.626 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:21:23.334 WORLD : UpdateEntities +11:21:23.334 WORLD : FixedFrame +11:21:23.335 SCRIPT : ERR MORTAR SALVO COMMIT: count=3 order=1 shot=2 acceptedSource=M9 observedAge=20915.1 commandAge=5212.78 validationAge=5212.78; recorded before native inventory transfer +11:21:24.366 WORLD : UpdateEntities +11:21:24.366 WORLD : Frame +11:21:24.366 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=3 entity=Projectile<0x00000001A04CA4E0> @"ENTITY:4611686018427391006" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 acceptedSource=M9 aimAge=6245.93 flight=24.3333; impact is not measured +11:21:27.173 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:21:29.092 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M11 observedAt=78732.8 downlink=M12 sameOrder=1 originalActivity=1 +11:21:32.148 WORLD : UpdateEntities +11:21:32.148 WORLD : FixedFrame +11:21:32.148 SCRIPT : ERR MORTAR SALVO COMMIT: count=4 order=1 shot=3 acceptedSource=M11 observedAge=9520.66 commandAge=4326.23 validationAge=3056.91; recorded before native inventory transfer +11:21:32.251 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:21:33.180 WORLD : UpdateEntities +11:21:33.180 WORLD : Frame +11:21:33.181 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=4 entity=Projectile<0x00000001A04CA5F0> @"ENTITY:4611686018427391011" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994736 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order=1 acceptedSource=M11 aimAge=5359.06 flight=24.1333; impact is not measured +11:21:37.298 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:21:42.350 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:21:42.738 WORLD : UpdateEntities +11:21:42.738 WORLD : FixedFrame +11:21:42.738 SCRIPT : ERR MORTAR SALVO COMMIT: count=5 order=1 shot=4 acceptedSource=M11 observedAge=20110.4 commandAge=6264.87 validationAge=6264.87; recorded before native inventory transfer +11:21:43.771 WORLD : UpdateEntities +11:21:43.771 WORLD : Frame +11:21:43.772 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=5 entity=Projectile<0x00000001A04CA700> @"ENTITY:4611686018427391016" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order=1 acceptedSource=M11 aimAge=7300.38 flight=24.2; impact is not measured +11:21:47.388 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:21:52.426 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:21:53.723 WORLD : UpdateEntities +11:21:53.723 WORLD : FixedFrame +11:21:53.724 SCRIPT : ERR MORTAR SALVO COMMIT: count=6 order=1 shot=5 acceptedSource=M11 observedAge=31094.6 commandAge=6890.07 validationAge=6890.07; recorded before native inventory transfer +11:21:54.752 WORLD : UpdateEntities +11:21:54.752 WORLD : Frame +11:21:54.753 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=6 entity=Projectile<0x00000001A04CA810> @"ENTITY:4611686018427391021" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order=1 acceptedSource=M11 aimAge=7921.7 flight=24.3; impact is not measured +11:21:57.500 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:22:02.522 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:22:04.527 WORLD : UpdateEntities +11:22:04.527 WORLD : FixedFrame +11:22:04.528 SCRIPT : ERR MORTAR SALVO COMMIT: count=7 order=1 shot=6 acceptedSource=M11 observedAge=41898.4 commandAge=6190.77 validationAge=6190.77; recorded before native inventory transfer +11:22:05.567 WORLD : UpdateEntities +11:22:05.567 WORLD : Frame +11:22:05.567 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=7 entity=Projectile<0x00000001A04CA920> @"ENTITY:4611686018427391026" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.679199> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order=1 acceptedSource=M11 aimAge=7231.77 flight=24.0666; impact is not measured +11:22:07.581 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:22:12.625 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:22:13.101 WORLD : UpdateEntities +11:22:13.101 WORLD : FixedFrame +11:22:13.101 SCRIPT : ERR MORTAR SALVO COMMIT: count=8 order=1 shot=7 acceptedSource=M11 observedAge=50473 commandAge=4299.85 validationAge=4299.85; recorded before native inventory transfer +11:22:14.133 WORLD : UpdateEntities +11:22:14.133 WORLD : Frame +11:22:14.134 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=8 entity=Projectile<0x00000001A04CAA30> @"ENTITY:4611686018427391031" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008865 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order=1 acceptedSource=M11 aimAge=5333.92 flight=24.3333; impact is not measured +11:22:17.696 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:22.747 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:27.784 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:32.848 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:34.488 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=120s artillery salvo timeout lastFailure= events=8 commits=8 complete=1 +11:22:34.873 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +11:22:34.874 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/error.log.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/error.log.txt new file mode 100644 index 0000000..a4768c9 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15\error.log started at 2026-09-19 11:19:17 (2026-09-19 09:19:17 UTC) + +11:19:17.267 INIT : Workbench startup +11:19:17.267 INIT : Workbench Init Engine +11:19:17.267 RESOURCES : ResourceDB: full scan +11:19:17.267 RESOURCES : processing files... +11:19:17.267 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:19:17.267 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:19:17.267 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:19:22.412 INIT : Workbench Create Game +11:19:22.412 SCRIPT : Compiling Game scripts +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:19:22.569 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.685 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:19:22.718 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:19:22.853 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:19:22.916 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:19:22.981 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:23.015 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:19:32.366 WORLD : CreateEntities +11:19:32.367 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:19:32.367 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:19:32.367 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:19:48.727 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:19:53.800 WORLD : Game::LoadEntities +11:19:53.800 WORLD : CreateEntities +11:19:53.800 WORLD : CreateEntities +11:19:53.800 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:19:53.800 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:19:53.800 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:19:55.186 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:19:55.186 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:19:55.186 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:19:55.186 ENTITY : CreateComponent 'Hierarchy' +11:19:55.186 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:19:55.191 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:19:55.191 ENTITY : CreateComponent 'Hierarchy' +11:19:55.191 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:19:55.195 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:19:55.195 ENTITY : CreateComponent 'Hierarchy' +11:19:55.195 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:20:02.678 WORLD : InitEntities 'world' +11:20:02.678 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:20:02.678 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:20:03.245 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.245 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:20:03.245 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.245 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! +11:20:03.246 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! +11:20:03.247 SCRIPT (W): Can't open config file "" +11:20:03.254 WORLD : InitEntities 'world' +11:20:03.254 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:20:03.254 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:20:03.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:20:03.255 SCRIPT (W): Slot_Chat Has no Content! +11:20:03.255 SCRIPT (W): Slot_VON Has no Content! +11:20:03.255 SCRIPT (W): Slot_AvailableActions Has no Content! +11:20:03.255 SCRIPT (W): Slot_Vehicle Has no Content! +11:20:03.255 SCRIPT (W): Slot_GameVersion Has no Content! +11:20:03.255 SCRIPT (W): Slot_Notifications Has no Content! +11:20:03.255 SCRIPT (W): Slot_Hints Has no Content! +11:20:03.266 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:20:03.266 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:20:03.267 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:20:03.267 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. +11:20:03.267 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. +11:20:03.270 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:20:03.529 WORLD : UpdateEntities +11:20:03.529 WORLD : PostFrame +11:20:03.529 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:20:03.530 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:20:03.579 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:20:03.579 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:20:03.580 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:20:03.580 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:20:06.023 WORLD : UpdateEntities +11:20:06.023 WORLD : AfterPostSimulate +11:20:06.023 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:22:34.873 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +11:22:34.874 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/headless-launch.log.txt new file mode 100644 index 0000000..294c724 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 178 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555932a00c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555932a00c0 +[Gamescope WSI] Destroyed swapchain: 0x5555932a00c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555932a00c0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555932a00c0 +[Gamescope WSI] Destroyed swapchain: 0x5555932a00c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555932ac7a0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source-sha256.json new file mode 100644 index 0000000..eee7b97 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source.json b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source.json new file mode 100644 index 0000000..bf3237a --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "c6f26208-8ad4-4675-a19d-ba711cf55b13", + "captured_unix": 1789809553.7900453, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/chat/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "1", + "-errSmokeOutcome", + "mortar-refresh", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "bd237e2134da20bcb0fbe9dbc4e9f27e46cefdef997461189bb1af8da6738146" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json new file mode 100644 index 0000000..6314674 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 43, + "script_or_runtime_failures": [ + "11:22:34.873 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success", + "11:22:34.874 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics" + ], + "engine_errors": [ + "11:22:34.873 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success", + "11:22:34.874 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/rereintroduced-hq.log.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/rereintroduced-hq.log.txt new file mode 100644 index 0000000..45b2254 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/rereintroduced-hq.log.txt @@ -0,0 +1,159 @@ +#1 t=6.6s M0 REGISTER group 1 [session=1789809602-1] +#2 t=6.6s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789809602-1] +#3 t=6.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789809602-1] +#4 t=7.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=1 fighting=1 inventory HE=0 radio connected=0 cooldown remaining=0s [session=1789809602-1] +#5 t=7.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=7.49724s last failure= [session=1789809602-1] +#6 t=8.6s M0 REGISTER group 2 [session=1789809602-1] +#7 t=8.6s M0 REGISTER group 3 [session=1789809602-1] +#8 t=8.6s M0 REGISTER group 4 [session=1789809602-1] +#9 t=8.6s M0 REGISTER group 5 [session=1789809602-1] +#10 t=8.6s M0 REGISTER group 6 [session=1789809602-1] +#11 t=8.6s M0 REGISTER group 7 [session=1789809602-1] +#12 t=12.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=0 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#13 t=12.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=12.546s last failure= [session=1789809602-1] +#14 t=17.6s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#15 t=17.6s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=17.5889s last failure= [session=1789809602-1] +#16 t=17.8s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789809602-1] +#17 t=18.1s M1 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789809602-1] +#18 t=18.8s M1 TRANSMIT unit 1 -> HQ (long-range) [session=1789809602-1] +#19 t=20.8s M1 RECEIVE HQ received from unit 1 [session=1789809602-1] +#20 t=22.6s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#21 t=22.6s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=22.6392s last failure= [session=1789809602-1] +#22 t=22.8s M5 TRANSMIT HQ -> unit 6 (long-range) [session=1789809602-1] +#23 t=22.8s M4 TRANSMIT HQ -> unit 4 (long-range) [session=1789809602-1] +#24 t=22.8s M3 TRANSMIT HQ -> unit 3 (long-range) [session=1789809602-1] +#25 t=22.8s M2 TRANSMIT HQ -> unit 2 (long-range) [session=1789809602-1] +#26 t=24.8s M5 RECEIVE unit 6 received from HQ [session=1789809602-1] +#27 t=24.8s M5 ORDER DELIVERED group 6 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809602-1] +#28 t=24.8s M4 RECEIVE unit 4 received from HQ [session=1789809602-1] +#29 t=24.8s M4 ORDER DELIVERED group 4 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809602-1] +#30 t=24.8s M3 RECEIVE unit 3 received from HQ [session=1789809602-1] +#31 t=24.8s M3 ORDER DELIVERED group 3 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809602-1] +#32 t=24.8s M2 RECEIVE unit 2 received from HQ [session=1789809602-1] +#33 t=24.8s M2 ORDER DELIVERED group 2 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789809602-1] +#34 t=26.8s M6 ORDER QUEUED MORTAR ORDER from report M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789809602-1] +#35 t=26.8s M0 MORTAR COMMAND site=1 order=1 radio=M0 source=M1 position=<6000,202.788,7000>; requested rounds=8 HE radius=40m; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789809602-1] +#36 t=27.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#37 t=27.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=1 native action=-1 shell committed=0 order shots=0 total shots=0 age=0.871445s last failure= [session=1789809602-1] +#38 t=27.8s M6 TRANSMIT HQ -> unit 1 (long-range) [session=1789809602-1] +#39 t=29.8s M6 RECEIVE unit 1 received from HQ [session=1789809602-1] +#40 t=29.8s M6 MORTAR AIM site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; native activity created; latest source=M1 observed=X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (12s ago) [session=1789809602-1] +#41 t=30.8s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=1.00148s aim age=30.8382s committed=0 shots=0; previous= repeated polls omitted=0 [session=1789809602-1] +#42 t=32.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=27.0929s [session=1789809602-1] +#43 t=32.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=2.90713s last failure= [session=1789809602-1] +#44 t=33.8s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (16s ago); previous= repeated polls omitted=0 [session=1789809602-1] +#45 t=33.8s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s charge index=2 aim target=<5207.07,2689.01,6387.75> latest source=M1; previous= repeated polls omitted=0 [session=1789809602-1] +#46 t=37.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=22.0369s [session=1789809602-1] +#47 t=37.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=7.96314s last failure= [session=1789809602-1] +#48 t=38.3s M7 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789809602-1] +#49 t=38.9s M7 TRANSMIT unit 1 -> HQ (long-range) [session=1789809602-1] +#50 t=40.9s M7 RECEIVE HQ received from unit 1 [session=1789809602-1] +#51 t=41.9s M8 ORDER QUEUED MORTAR UPDATE from report M7; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (4s ago) [session=1789809602-1] +#52 t=41.9s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M8 newer observation=M7 observed=38302.8 [session=1789809602-1] +#53 t=42.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=16.9679s [session=1789809602-1] +#54 t=42.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=13.0321s last failure= [session=1789809602-1] +#55 t=42.9s M8 TRANSMIT HQ -> unit 1 (long-range) [session=1789809602-1] +#56 t=44.9s M8 RECEIVE unit 1 received from HQ [session=1789809602-1] +#57 t=44.9s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M8 accepted observation=M7 observed=38302.8; shots=0 original aim time=33773.8 [session=1789809602-1] +#58 t=47.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=11.916s [session=1789809602-1] +#59 t=47.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=18.084s last failure= [session=1789809602-1] +#60 t=53s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=6.85854s [session=1789809602-1] +#61 t=53s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=23.1415s last failure= [session=1789809602-1] +#62 t=58s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=1.81132s [session=1789809602-1] +#63 t=58s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=28.1887s last failure= [session=1789809602-1] +#64 t=58.3s M6 MORTAR AIM REVALIDATED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=same native command; fresh ballistic solve matched original; source=M7 observed age=19.9977s; previous= repeated polls omitted=0 [session=1789809602-1] +#65 t=58.3s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous= repeated polls omitted=0 [session=1789809602-1] +#66 t=58.5s M9 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789809602-1] +#67 t=59s M9 TRANSMIT unit 1 -> HQ (long-range) [session=1789809602-1] +#68 t=59.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.120117 202.731232 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#69 t=60.2s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA2C0> @"ENTITY:4611686018427390996" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order shots=1 total shots=1 predicted impact=<5207.07,78.6842,6387.75> predicted flight=24.2333s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.120117 202.734207 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#70 t=61s M9 RECEIVE HQ received from unit 1 [session=1789809602-1] +#71 t=61s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=31.2009s aim age=61.0377s committed=0 shots=1; previous=native state=1 repeated polls omitted=29 [session=1789809602-1] +#72 t=62s M10 ORDER QUEUED MORTAR UPDATE from report M9; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (4s ago) [session=1789809602-1] +#73 t=62s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M10 newer observation=M9 observed=58525.2 [session=1789809602-1] +#74 t=63.1s M10 TRANSMIT HQ -> unit 1 (long-range) [session=1789809602-1] +#75 t=63.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#76 t=63.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=33.2454s last failure= [session=1789809602-1] +#77 t=63.8s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M7; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (26s ago); previous=solving moving intercept repeated polls omitted=0 [session=1789809602-1] +#78 t=63.8s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s charge index=2 aim target=<5180.93,2673.01,6406.01> latest source=M7; previous=ready repeated polls omitted=0 [session=1789809602-1] +#79 t=65.1s M10 RECEIVE unit 1 received from HQ [session=1789809602-1] +#80 t=65.1s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M10 accepted observation=M9 observed=58525.2; shots=1 original aim time=63817.3 [session=1789809602-1] +#81 t=68.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#82 t=68.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=38.2968s last failure= [session=1789809602-1] +#83 t=69.6s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.118652 202.737350 7000.160156> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#84 t=70.6s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA3D0> @"ENTITY:4611686018427391001" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order shots=2 total shots=2 predicted impact=<5180.93,82.8334,6406.01> predicted flight=24.1666s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.118652 202.739655 7000.160156> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#85 t=73.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#86 t=73.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=43.3404s last failure= [session=1789809602-1] +#87 t=78.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#88 t=78.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=48.3946s last failure= [session=1789809602-1] +#89 t=78.7s M11 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789809602-1] +#90 t=79.1s M11 TRANSMIT unit 1 -> HQ (long-range) [session=1789809602-1] +#91 t=79.4s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.136719 202.736465 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5222.2,80.6071,6410.35> flight=24.3333s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#92 t=80.5s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA4E0> @"ENTITY:4611686018427391006" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order shots=3 total shots=3 predicted impact=<5222.2,80.6071,6410.35> predicted flight=24.3333s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.136719 202.738800 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#93 t=81.2s M11 RECEIVE HQ received from unit 1 [session=1789809602-1] +#94 t=82.2s M12 ORDER QUEUED MORTAR UPDATE from report M11; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (3s ago) [session=1789809602-1] +#95 t=82.2s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M12 newer observation=M11 observed=78732.8 [session=1789809602-1] +#96 t=83.2s M12 TRANSMIT HQ -> unit 1 (long-range) [session=1789809602-1] +#97 t=83.3s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=24 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#98 t=83.3s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=3 total shots=3 age=53.4475s last failure= [session=1789809602-1] +#99 t=85.2s M12 RECEIVE unit 1 received from HQ [session=1789809602-1] +#100 t=85.2s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M12 accepted observation=M11 observed=78732.8; shots=3 original aim time=83927.3 [session=1789809602-1] +#101 t=88.3s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.109375 202.732330 7000.132812> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5189.18,78.0938,6373.87> flight=24.1333s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#102 t=88.4s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=23 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#103 t=88.4s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=1 order shots=3 total shots=3 age=58.5254s last failure= [session=1789809602-1] +#104 t=89.3s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA5F0> @"ENTITY:4611686018427391011" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994736 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order shots=4 total shots=4 predicted impact=<5189.18,78.0938,6373.87> predicted flight=24.1333s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.109375 202.734573 7000.132812> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#105 t=91.2s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=61.3902s aim age=91.227s committed=0 shots=4; previous=native state=1 repeated polls omitted=29 [session=1789809602-1] +#106 t=93.4s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=23 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#107 t=93.4s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=4 total shots=4 age=63.5718s last failure= [session=1789809602-1] +#108 t=98s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous=native result=2 repeated polls omitted=3 [session=1789809602-1] +#109 t=98.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=23 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#110 t=98.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=4 total shots=4 age=68.6235s last failure= [session=1789809602-1] +#111 t=98.8s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.353516 202.635574 6999.759277> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5189.18,85.9269,6429.72> flight=24.2s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#112 t=99.9s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA700> @"ENTITY:4611686018427391016" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order shots=5 total shots=5 predicted impact=<5189.18,85.9269,6429.72> predicted flight=24.2s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.353516 202.636871 6999.759277> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#113 t=102.9s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M11; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (24s ago); previous=solving moving intercept repeated polls omitted=3 [session=1789809602-1] +#114 t=102.9s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5230.73,79.0856,6384> flight=24.3s charge index=2 aim target=<5230.73,2701.44,6384> latest source=M11; previous=ready repeated polls omitted=3 [session=1789809602-1] +#115 t=103.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=22 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#116 t=103.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=5 total shots=5 age=73.6617s last failure= [session=1789809602-1] +#117 t=108.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=22 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#118 t=108.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=5 total shots=5 age=78.6994s last failure= [session=1789809602-1] +#119 t=109.8s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.127441 202.731720 7000.133789> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5230.73,79.0856,6384> flight=24.3s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#120 t=110.9s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA810> @"ENTITY:4611686018427391021" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order shots=6 total shots=6 predicted impact=<5230.73,79.0856,6384> predicted flight=24.3s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.127441 202.733871 7000.133789> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#121 t=113.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=21 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#122 t=113.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=6 total shots=6 age=83.7671s last failure= [session=1789809602-1] +#123 t=118.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=21 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#124 t=118.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=6 total shots=6 age=88.7952s last failure= [session=1789809602-1] +#125 t=120.6s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.105469 202.734070 7000.148438> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5163.86,80.932,6390.32> flight=24.0666s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#126 t=121.4s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=91.5786s aim age=6.97388s committed=1 shots=6; previous=native state=1 repeated polls omitted=29 [session=1789809602-1] +#127 t=121.7s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CA920> @"ENTITY:4611686018427391026" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.679199> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order shots=7 total shots=7 predicted impact=<5163.86,80.932,6390.32> predicted flight=24.0666s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.105469 202.736420 7000.148438> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#128 t=123.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=20 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#129 t=123.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=7 total shots=7 age=93.8538s last failure= [session=1789809602-1] +#130 t=128.3s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous=native result=2 repeated polls omitted=2 [session=1789809602-1] +#131 t=128.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=20 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#132 t=128.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=7 total shots=7 age=98.8977s last failure= [session=1789809602-1] +#133 t=129.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.145020 202.739777 7000.179199> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5221.49,84.082,6433.74> flight=24.3333s; invoking native transfer, awaiting projectile event [session=1789809602-1] +#134 t=130.2s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A04CAA30> @"ENTITY:4611686018427391031" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008865 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order shots=8 total shots=8 predicted impact=<5221.49,84.082,6433.74> predicted flight=24.3333s gunner=SCR_ChimeraCharacter<0x00000001BBB0FDF0> @"ENTITY:4611686018427390788" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.145020 202.747650 7000.179199> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789809602-1] +#135 t=130.5s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=0; age=100.64s aim age=130.477s committed=0 shots=8; previous=native state=1 repeated polls omitted=8 [session=1789809602-1] +#136 t=133.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#137 t=133.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=0 shell committed=0 order shots=8 total shots=8 age=103.968s last failure= [session=1789809602-1] +#138 t=138.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#139 t=138.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=0 shell committed=0 order shots=8 total shots=8 age=109.019s last failure= [session=1789809602-1] +#140 t=143.6s M16 TRANSMIT HQ -> unit 6 (long-range) [session=1789809602-1] +#141 t=143.6s M15 TRANSMIT HQ -> unit 4 (long-range) [session=1789809602-1] +#142 t=143.6s M14 TRANSMIT HQ -> unit 3 (long-range) [session=1789809602-1] +#143 t=143.6s M13 TRANSMIT HQ -> unit 2 (long-range) [session=1789809602-1] +#144 t=143.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#145 t=143.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=0 shell committed=0 order shots=8 total shots=8 age=114.057s last failure= [session=1789809602-1] +#146 t=145.6s M16 RECEIVE unit 6 received from HQ [session=1789809602-1] +#147 t=145.6s M16 ORDER DELIVERED group 6 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789809602-1] +#148 t=145.6s M15 RECEIVE unit 4 received from HQ [session=1789809602-1] +#149 t=145.6s M15 ORDER DELIVERED group 4 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789809602-1] +#150 t=145.6s M14 RECEIVE unit 3 received from HQ [session=1789809602-1] +#151 t=145.6s M14 ORDER DELIVERED group 3 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789809602-1] +#152 t=145.6s M13 RECEIVE unit 2 received from HQ [session=1789809602-1] +#153 t=145.6s M13 ORDER DELIVERED group 2 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789809602-1] +#154 t=149s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789809602-1] +#155 t=149s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=0 shell committed=0 order shots=8 total shots=8 age=119.121s last failure= [session=1789809602-1] +#156 t=150.6s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM SOLUTION reason=ready repeated polls omitted=2 [session=1789809602-1] +#157 t=150.6s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=ACTIVITY reason=native state=0 repeated polls omitted=20 [session=1789809602-1] +#158 t=150.6s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM START reason=solving moving intercept repeated polls omitted=2 [session=1789809602-1] +#159 t=150.6s M6 MORTAR ORDER END site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=120s artillery salvo timeout observed shots=8 shell committed=0 elapsed=120.759s last failure= [session=1789809602-1] diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/runner.json.txt new file mode 100644 index 0000000..d5d686b --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789809756.0274456, + "console_sha256": "f163ac16dc0dc7185a13f2964f872ea3b3d46fd9c5ddb282656d5f82a7569cd2", + "end_source_sha256": "bd237e2134da20bcb0fbe9dbc4e9f27e46cefdef997461189bb1af8da6738146", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "c6f26208-8ad4-4675-a19d-ba711cf55b13", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "bd237e2134da20bcb0fbe9dbc4e9f27e46cefdef997461189bb1af8da6738146", + "started_unix": 1789809553.7901223, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-19-15", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1280x720/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/script.log.txt b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/script.log.txt new file mode 100644 index 0000000..825cc6b --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/script.log.txt @@ -0,0 +1,326 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-19-15\script.log started at 2026-09-19 11:19:18 (2026-09-19 09:19:18 UTC) + +11:19:18.647 SCRIPT : SCRIPT : Initializing scripts +11:19:18.647 SCRIPT : SCRIPT : ScriptProjectManager init +11:19:20.971 SCRIPT : SCRIPT : Compiling GameLib scripts +11:19:21.040 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:19:21.040 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:19:21.041 SCRIPT : SCRIPT : Compiling Game scripts +11:19:22.412 SCRIPT : Compiling Game scripts +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:19:22.412 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:19:22.569 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.685 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:19:22.718 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:19:22.817 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:19:22.853 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:19:22.915 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:19:22.916 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.955 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:19:22.957 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:19:22.981 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:19:23.015 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:19:23.294 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:19:23.301 SCRIPT : Module: Game; loaded 5776x files; 11367x classes; used 33488K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 80e87e58 +11:19:24.310 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:19:24.310 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:19:45.354 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:19:45.354 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:19:45.355 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:19:45.356 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:19:45.379 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:19:48.723 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:19:48.724 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:20:02.678 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:20:02.706 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:20:03.245 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! +11:20:03.246 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! +11:20:03.247 SCRIPT (W): Can't open config file "" +11:20:03.255 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:20:03.255 SCRIPT (W): Slot_Chat Has no Content! +11:20:03.255 SCRIPT (W): Slot_VON Has no Content! +11:20:03.255 SCRIPT (W): Slot_AvailableActions Has no Content! +11:20:03.255 SCRIPT (W): Slot_Vehicle Has no Content! +11:20:03.255 SCRIPT (W): Slot_GameVersion Has no Content! +11:20:03.255 SCRIPT (W): Slot_Notifications Has no Content! +11:20:03.255 SCRIPT (W): Slot_Hints Has no Content! +11:20:03.267 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. +11:20:03.267 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. +11:20:03.270 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:20:03.329 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:20:03.342 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:20:03.530 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:20:05.065 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:20:05.085 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:20:05.086 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:20:05.114 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:20:05.116 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:20:05.167 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:20:05.167 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:20:05.173 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:20:05.226 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:20:05.226 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:20:05.229 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:20:05.229 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:20:05.233 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:20:05.235 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:20:05.235 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:20:05.237 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:20:05.237 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:20:05.237 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:20:05.238 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:20:05.238 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:20:05.238 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:20:05.238 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.238 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:20:05.238 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:20:05.239 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.239 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:20:05.239 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:20:05.239 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.239 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:05.240 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.100 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.101 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.356 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5268,7499.7> up=0.995673 +11:20:06.356 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +11:20:06.356 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:06.356 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6169,7501.97> +11:20:06.356 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3169,7501.97> terrainY=63.3166 tireTerrainGap=0.000385284 +11:20:06.356 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6169,7501.97> radius=0.3 bottom=<7012.06,63.3169,7501.97> fraction=0.456583 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.000450134 +11:20:06.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6047,7497.71> +11:20:06.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1547,7497.71> terrainY=64.1556 tireTerrainGap=-0.000846863 +11:20:06.357 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6047,7497.71> radius=0.45 bottom=<7009.88,64.1547,7497.71> fraction=0.450925 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000793457 +11:20:06.357 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2647,7497.75> +11:20:06.357 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8147,7497.75> terrainY=63.8178 tireTerrainGap=-0.0030632 +11:20:06.357 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2647,7497.75> radius=0.45 bottom=<7014.42,63.8147,7497.75> fraction=0.440556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00307846 +11:20:06.357 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:06.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:06.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:20:07.115 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.116 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.116 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.456 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5348,7499.71> up=0.994335 +11:20:07.456 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +11:20:07.456 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:07.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6188,7501.99> +11:20:07.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3188,7501.99> terrainY=63.3145 tireTerrainGap=0.0043602 +11:20:07.457 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6188,7501.99> radius=0.3 bottom=<7012.07,63.3188,7501.99> fraction=0.47451 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00439072 +11:20:07.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71> +11:20:07.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00304413 +11:20:07.457 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468312 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00302887 +11:20:07.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2648,7497.78> +11:20:07.458 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8148,7497.78> terrainY=63.8155 tireTerrainGap=-0.000652313 +11:20:07.458 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2648,7497.78> radius=0.45 bottom=<7014.47,63.8148,7497.78> fraction=0.451667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00063324 +11:20:07.458 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:07.458 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:07.458 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.459 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:20:07.459 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.955 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:07.956 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:08.455 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.531,7499.74> up=0.994319 +11:20:08.455 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0448097 angularSpeed=0.0612553 +11:20:08.456 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:08.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6147,7502.01> +11:20:08.456 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3147,7502.01> terrainY=63.3115 tireTerrainGap=0.00315094 +11:20:08.456 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6147,7502.01> radius=0.3 bottom=<7012.07,63.3147,7502.01> fraction=0.468837 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00314331 +11:20:08.456 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5934,7497.71> +11:20:08.456 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1434,7497.71> terrainY=64.1425 tireTerrainGap=0.000892639 +11:20:08.457 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5934,7497.71> radius=0.45 bottom=<7009.97,64.1434,7497.71> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +11:20:08.457 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2594,7497.83> +11:20:08.457 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8094,7497.83> terrainY=63.8125 tireTerrainGap=-0.00302505 +11:20:08.457 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2594,7497.83> radius=0.45 bottom=<7014.51,63.8094,7497.83> fraction=0.440556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00307846 +11:20:08.457 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:08.457 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.458 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.960 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:08.961 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:20:09.470 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994379 +11:20:09.470 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:20:09.470 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:09.471 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6126,7502.02> +11:20:09.471 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3126,7502.02> terrainY=63.3108 tireTerrainGap=0.00182724 +11:20:09.471 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6126,7502.02> radius=0.3 bottom=<7012.07,63.3126,7502.02> fraction=0.462844 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00182724 +11:20:09.471 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:20:09.471 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00252533 +11:20:09.472 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:20:09.472 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:20:09.472 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00185013 +11:20:09.472 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:20:09.472 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.473 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.980 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:09.981 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.480 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994379 +11:20:10.480 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:20:10.481 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:20:10.481 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6126,7502.02> +11:20:10.481 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3126,7502.02> terrainY=63.3108 tireTerrainGap=0.00182724 +11:20:10.481 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6126,7502.02> radius=0.3 bottom=<7012.07,63.3126,7502.02> fraction=0.462844 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00182724 +11:20:10.481 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:20:10.481 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00252533 +11:20:10.482 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:20:10.482 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:20:10.482 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00185013 +11:20:10.482 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:20:10.482 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:20:10.482 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.483 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:20:10.483 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:20:10.496 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:20:10.497 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:20:10.497 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:20:10.498 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:20:10.498 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:20:10.498 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:20:10.498 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:20:10.600 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:20:10.639 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:20:10.877 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:20:10.877 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:20:10.877 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:20:10.877 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:20:10.878 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:20:10.878 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:20:10.879 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:20:10.883 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:20:10.886 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:20:10.886 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:20:10.887 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:20:11.386 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:16.434 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:21.477 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:20:21.982 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +11:20:21.982 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:20:21.983 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +11:20:21.984 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +11:20:22.000 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +11:20:22.000 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +11:20:22.001 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M1 actualObservedAt=18093.5 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378983 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:20:22.001 SCRIPT : ERR SMOKE PASS: mortar salvo first actual-clock observation recorded without replacement +11:20:26.528 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:31.086 SCRIPT : ERR SMOKE PASS: mortar salvo initial order traverses actual nonempty HQ downlink +11:20:31.587 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:36.632 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:41.688 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:42.194 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M7 actualObservedAt=38302.8 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6004.369629 202.426758 6998.412598> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:20:42.194 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:20:46.757 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:48.804 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M7 observedAt=38302.8 downlink=M8 sameOrder=1 originalActivity=1 +11:20:51.809 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:20:56.868 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:21:01.914 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:21:02.417 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M9 actualObservedAt=58525.2 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.523438 202.453217 6998.242188> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:21:02.417 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:21:03.071 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 acceptedSource=M7 observedAge=20874 commandAge=25403 validationAge=876.266; recorded before native inventory transfer +11:21:04.104 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x00000001A04CA2C0> @"ENTITY:4611686018427390996" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 acceptedSource=M7 aimAge=26436.9 flight=24.2333; impact is not measured +11:21:06.971 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:21:08.965 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M9 observedAt=58525.2 downlink=M10 sameOrder=1 originalActivity=1 +11:21:12.022 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:21:13.456 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 acceptedSource=M9 observedAge=11037 commandAge=5744.95 validationAge=4492.13; recorded before native inventory transfer +11:21:14.487 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x00000001A04CA3D0> @"ENTITY:4611686018427391001" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 acceptedSource=M9 aimAge=6776.99 flight=24.1666; impact is not measured +11:21:17.066 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:21:22.120 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:21:22.625 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M11 actualObservedAt=78732.8 originalRTO=SCR_ChimeraCharacter<0x00000001BBB1BEF0> @"ENTITY:4611686018427390902" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6001.541016 201.155823 6989.592285> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:21:22.626 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:21:23.335 SCRIPT : ERR MORTAR SALVO COMMIT: count=3 order=1 shot=2 acceptedSource=M9 observedAge=20915.1 commandAge=5212.78 validationAge=5212.78; recorded before native inventory transfer +11:21:24.366 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=3 entity=Projectile<0x00000001A04CA4E0> @"ENTITY:4611686018427391006" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 acceptedSource=M9 aimAge=6245.93 flight=24.3333; impact is not measured +11:21:27.173 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:21:29.092 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M11 observedAt=78732.8 downlink=M12 sameOrder=1 originalActivity=1 +11:21:32.148 SCRIPT : ERR MORTAR SALVO COMMIT: count=4 order=1 shot=3 acceptedSource=M11 observedAge=9520.66 commandAge=4326.23 validationAge=3056.91; recorded before native inventory transfer +11:21:32.251 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:21:33.181 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=4 entity=Projectile<0x00000001A04CA5F0> @"ENTITY:4611686018427391011" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994736 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order=1 acceptedSource=M11 aimAge=5359.06 flight=24.1333; impact is not measured +11:21:37.298 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:21:42.350 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:21:42.738 SCRIPT : ERR MORTAR SALVO COMMIT: count=5 order=1 shot=4 acceptedSource=M11 observedAge=20110.4 commandAge=6264.87 validationAge=6264.87; recorded before native inventory transfer +11:21:43.772 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=5 entity=Projectile<0x00000001A04CA700> @"ENTITY:4611686018427391016" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order=1 acceptedSource=M11 aimAge=7300.38 flight=24.2; impact is not measured +11:21:47.388 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:21:52.426 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:21:53.724 SCRIPT : ERR MORTAR SALVO COMMIT: count=6 order=1 shot=5 acceptedSource=M11 observedAge=31094.6 commandAge=6890.07 validationAge=6890.07; recorded before native inventory transfer +11:21:54.753 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=6 entity=Projectile<0x00000001A04CA810> @"ENTITY:4611686018427391021" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order=1 acceptedSource=M11 aimAge=7921.7 flight=24.3; impact is not measured +11:21:57.500 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:22:02.522 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:22:04.528 SCRIPT : ERR MORTAR SALVO COMMIT: count=7 order=1 shot=6 acceptedSource=M11 observedAge=41898.4 commandAge=6190.77 validationAge=6190.77; recorded before native inventory transfer +11:22:05.567 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=7 entity=Projectile<0x00000001A04CA920> @"ENTITY:4611686018427391026" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.679199> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order=1 acceptedSource=M11 aimAge=7231.77 flight=24.0666; impact is not measured +11:22:07.581 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:22:12.625 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:22:13.101 SCRIPT : ERR MORTAR SALVO COMMIT: count=8 order=1 shot=7 acceptedSource=M11 observedAge=50473 commandAge=4299.85 validationAge=4299.85; recorded before native inventory transfer +11:22:14.134 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=8 entity=Projectile<0x00000001A04CAA30> @"ENTITY:4611686018427391031" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008865 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order=1 acceptedSource=M11 aimAge=5333.92 flight=24.3333; impact is not measured +11:22:17.696 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:22.747 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:27.784 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:32.848 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:22:34.488 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=120s artillery salvo timeout lastFailure= events=8 commits=8 complete=1 +11:22:34.873 SCRIPT (E): ERR SMOKE FAIL: mortar salvo full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success +11:22:34.874 SCRIPT (E): ERR SMOKE FAIL: native complete mortar salvo fixture; inspect source diagnostics diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-sha256.json new file mode 100644 index 0000000..eee7b97 --- /dev/null +++ b/docs/evidence/native-2026-09-19-111915-refresh-completion-refusal/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/console.log.txt b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/console.log.txt new file mode 100644 index 0000000..87bf683 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/console.log.txt @@ -0,0 +1,601 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20\console.log started at 2026-09-19 11:23:20 (2026-09-19 09:23:20 UTC) + +11:23:20.032 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20' to filesystem under name logs +11:23:20.032 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:23:20.032 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:23:20.033 PROFILING : Workbench Create Engine took: 10.191900 ms +11:23:21.070 INIT : INIT : Workbench Init Engine +11:23:21.070 ENGINE : Initializing engine, version 192142 +11:23:21.070 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 -errFlightAutohover 1 +11:23:21.079 ENGINE : Addon dirs: +11:23:21.079 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +11:23:21.079 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:23:21.079 ENGINE : dir: './addons' +11:23:21.079 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:23:21.079 ENGINE : Available addons: +11:23:21.079 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:23:21.079 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:23:21.079 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:23:21.079 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:23:21.079 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:23:21.079 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:23:21.079 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:23:21.080 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:23:21.202 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:23:21.205 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:23:21.205 ENGINE : CPU vendor : AuthenticAMD +11:23:21.205 ENGINE : CPU type : 2 +11:23:21.205 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:23:21.205 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:23:21.205 ENGINE : CPU count logical : 16 +11:23:21.205 ENGINE : CPU count physical : 8 +11:23:21.205 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:23:21.205 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:23:21.205 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:23:21.342 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:23:21.343 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:23:21.344 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20/resourceDatabase.rdb) +11:23:21.494 RESOURCES : RESOURCES : ResourceDB: full scan +11:23:21.499 RESOURCES : RESOURCES : scanning... +11:23:21.499 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:23:21.503 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:23:21.636 RESOURCES : RESOURCES : scanning @"core" +11:23:21.640 RESOURCES : RESOURCES : scanning @"profile" +11:23:21.641 RESOURCES : RESOURCES : scanning @"logs" +11:23:21.641 RESOURCES : RESOURCES : processing meta-files... +11:23:21.719 RESOURCES : RESOURCES : processing files... +11:23:21.730 INIT : Workbench startup +11:23:21.730 INIT : Workbench Init Engine +11:23:21.730 RESOURCES : ResourceDB: full scan +11:23:21.730 RESOURCES : processing files... +11:23:21.730 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:23:21.730 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:23:21.730 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:23:21.730 RESOURCES : RESOURCES : processing folders... +11:23:21.738 RESOURCES : RESOURCES : creating GUID-item mapping... +11:23:21.760 RESOURCES : RESOURCES : building tree... +11:23:21.834 PROFILING : ResourceDB: full scan took: 339.779900 ms +11:23:21.835 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:23:21.837 RESOURCES : ResourceDB: written 6865/6865 bytes +11:23:21.837 RESOURCES : ResourceDB: cache successfully saved +11:23:21.838 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:23:21.840 RESOURCES : ResourceDB: written 206/206 bytes +11:23:21.840 RESOURCES : ResourceDB: cache successfully saved +11:23:21.840 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20/resourceDatabase.rdb) +11:23:21.843 RESOURCES : ResourceDB: written 162/162 bytes +11:23:21.843 RESOURCES : ResourceDB: cache successfully saved +11:23:21.843 ENGINE : GameProject load +11:23:21.843 ENGINE : Loaded addons: +11:23:21.843 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:23:21.843 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:23:21.843 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:23:21.845 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:23:21.845 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:23:21.845 ENGINE : Engine user settings config loaded +11:23:21.845 PROFILING : Settings changed took: 0.002200 ms +11:23:21.965 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:23:21.967 RENDER : Basic screen setup: +11:23:21.967 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:23:21.967 RENDER : MSAA : none +11:23:21.983 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:23:21.983 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:23:21.983 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:23:21.983 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:23:21.983 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:23:21.983 RENDER : AMD AGS correctly initialized +11:23:21.983 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 +11:23:21.983 RENDER : Detected output devices: +11:23:21.983 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:23:21.983 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:23:21.983 RENDER : Concurrent frames limit 2 +11:23:22.058 RENDER : DX12 device successfully created by AMD AGS library +11:23:22.058 RENDER : * user markers not supported in this version AMD SW +11:23:22.058 RENDER : Graphics device features +11:23:22.058 RENDER : Needed: +11:23:22.058 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:23:22.058 RENDER : Optional: +11:23:22.058 RENDER : * Allow tearing (VSYNC) : 1 +11:23:22.058 RENDER : * 16 bits : 1 +11:23:22.058 RENDER : * Resource heap tier : 3 +11:23:22.058 RENDER : * Persistent heaps (DRED) : 1 +11:23:22.058 RENDER : * DRED 1.2 is supported by compiler +11:23:22.079 RENDER : Main RT format setup. +11:23:22.079 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:23:22.079 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:23:22.081 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:23:22.114 PROFILING : Settings changed took: 0.015600 ms +11:23:22.621 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:23:22.621 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:23:22.622 AUDIO : Audio client: +11:23:22.622 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:23:22.625 RENDER : RENDER : Reload shaders +11:23:22.626 RENDER : Enfusion shader version 13 +11:23:22.626 INIT : INIT : ShaderListReload +11:23:22.626 PROFILING : ShaderListReload took: 0.000500 ms +11:23:22.769 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:23:22.769 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:23:22.770 AUDIO : Audio client: +11:23:22.770 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:23:22.880 RENDER : Loaded 3752 newer shader binaries +11:23:22.880 PROFILING : Reload shaders took: 254.895000 ms +11:23:22.880 ENGINE : Initializing inputs. +11:23:22.896 NETWORK : Initializing networking. +11:23:22.896 NETWORK : Using new GameRplScheduler. +11:23:22.896 SCRIPT : SCRIPT : Initializing scripts +11:23:22.897 SCRIPT : SCRIPT : ScriptProjectManager init +11:23:23.751 PROFILING : ScriptProjectManager init took: 854.504100 ms +11:23:23.786 PROFILING : Initializing scripts took: 889.317200 ms +11:23:23.805 ENGINE : Enfusion engine successfully created. +11:23:23.805 PROFILING : Workbench Init Engine took: 2735.153500 ms +11:23:23.805 INIT : INIT : Workbench Create Game +11:23:23.817 GUI : Using default language (en_us) +11:23:23.817 GUI : Loading 'en_us' localization file. +11:23:23.817 INIT : INIT : Loading StringTable +11:23:23.840 PROFILING : Loading StringTable took: 23.397800 ms +11:23:23.841 SCRIPT : SCRIPT : Compiling GameLib scripts +11:23:23.895 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:23:23.896 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:23:23.896 PROFILING : Compiling GameLib scripts took: 55.767900 ms +11:23:23.896 SCRIPT : SCRIPT : Compiling Game scripts +11:23:25.037 INIT : Workbench Create Game +11:23:25.037 SCRIPT : Compiling Game scripts +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:23:25.202 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.324 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:23:25.356 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:23:25.492 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:23:25.563 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:23:25.630 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.663 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:23:25.938 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:23:25.947 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33012K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c9afb333 +11:23:25.991 PROFILING : Compiling Game scripts took: 2094.681000 ms +11:23:25.997 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:23:26.042 ENGINE : Game successfully created. +11:23:26.044 PROFILING : Workbench Create Game took: 2238.848600 ms +11:23:26.051 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +11:23:26.883 INIT : INIT : Workbench Reload Game +11:23:26.885 ENGINE : Game destroyed. +11:23:26.891 GUI : Using default language (en_us) +11:23:26.891 GUI : Loading 'en_us' localization file. +11:23:26.891 INIT : INIT : Loading StringTable +11:23:26.900 PROFILING : Loading StringTable took: 9.139800 ms +11:23:26.900 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:23:26.907 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:23:26.907 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:23:26.907 ENGINE : Game successfully created. +11:23:26.907 ENGINE : Game successfully initialized. +11:23:26.907 PROFILING : Workbench Reload Game took: 24.202900 ms +11:23:27.579 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:23:28.585 PROFILING : Entities load took: 1005.858300 ms +11:23:28.596 WORLD : WORLD : CreateEntities +11:23:28.601 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:23:28.601 PROFILING : NotifyBeforeEntitiesCreated took: 0.003100 ms +11:23:28.602 WORLD : WORLD : Wait for preloading data +11:23:28.602 PROFILING : Wait for preloading data took: 0.004000 ms +11:23:28.716 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:23:28.716 PROFILING : PROFILING : Terrain load +11:23:30.312 PROFILING : Terrain load took: 1595.816900 ms +11:23:34.296 WORLD : CreateEntities +11:23:34.296 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:23:34.296 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:23:34.297 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:23:44.458 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:23:44.458 PROFILING : NotifyBeforeEntitiesInitialized took: 0.006800 ms +11:23:44.915 WORLD : WORLD : NotifyEntitiesInitialized +11:23:44.915 TERRAIN : TERRAIN : Initializing road networks... +11:23:44.918 PROFILING : Initializing road networks... took: 2.414400 ms +11:23:44.918 PROFILING : NotifyEntitiesInitialized took: 2.894800 ms +11:23:44.918 PROFILING : CreateEntities took: 16320.920100 ms +11:23:45.101 PROFILING : * WorldEditor: LoadWorld: 17528.082300 ms +11:23:46.602 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:23:46.603 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:23:46.604 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:23:46.604 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:23:46.720 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:23:46.743 BACKEND : Attempting online Game Config instead. +11:23:50.113 INIT : INIT : Workbench Reload Game +11:23:50.115 ENGINE : Game destroyed. +11:23:50.122 GUI : Using default language (en_us) +11:23:50.122 GUI : Loading 'en_us' localization file. +11:23:50.122 INIT : INIT : Loading StringTable +11:23:50.143 PROFILING : Loading StringTable took: 20.808600 ms +11:23:50.143 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:23:50.151 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:23:50.151 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:23:50.152 ENGINE : Game successfully created. +11:23:50.152 ENGINE : Game successfully initialized. +11:23:50.152 PROFILING : Workbench Reload Game took: 38.641000 ms +11:23:50.155 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:23:50.204 PLATFORM : Save data from container 'settings' have been loaded +11:23:50.294 PLATFORM : Save data from container 'sessions' have been loaded +11:23:50.295 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:23:50.295 ENGINE : Game user settings config loaded +11:23:50.392 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:23:50.398 WORLD : WORLD : Game::LoadEntities +11:23:50.398 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:23:50.399 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:23:50.399 WORLD : WORLD : CreateEntities +11:23:50.399 WORLD : WORLD : CreateEntities +11:23:50.399 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:23:50.403 RESOURCES : Loaded mission headers from 7 addon(s)! +11:23:50.403 PROFILING : NotifyBeforeEntitiesCreated took: 4.139500 ms +11:23:50.403 WORLD : WORLD : Wait for preloading data +11:23:50.403 PROFILING : Wait for preloading data took: 0.000800 ms +11:23:55.084 WORLD : Game::LoadEntities +11:23:55.084 WORLD : CreateEntities +11:23:55.084 WORLD : CreateEntities +11:23:55.084 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:23:55.084 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:23:55.084 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:23:56.577 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:23:56.577 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:23:56.577 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:24:01.734 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:24:01.734 PROFILING : NotifyBeforeEntitiesInitialized took: 0.070900 ms +11:24:03.782 WORLD : InitEntities 'world' +11:24:03.782 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:24:03.782 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:24:03.811 WORLD : InitEntities 'world' +11:24:03.811 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:24:03.811 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:24:03.812 WORLD : WORLD : NotifyEntitiesInitialized +11:24:03.812 TERRAIN : TERRAIN : Initializing road networks... +11:24:03.814 PROFILING : Initializing road networks... took: 2.317900 ms +11:24:03.814 DEFAULT : DEFAULT : WorldVolumesCollection +11:24:03.878 PROFILING : WorldVolumesCollection took: 63.551100 ms +11:24:03.878 INIT : INIT : SoundWorldInit +11:24:03.892 PROFILING : SoundWorldInit took: 14.218500 ms +11:24:03.892 PROFILING : NotifyEntitiesInitialized took: 80.280400 ms +11:24:03.892 PROFILING : CreateEntities took: 13492.345800 ms +11:24:03.892 PROFILING : CreateEntities took: 13492.527200 ms +11:24:03.893 WORLD : WORLD : Wait for preloading data around camera +11:24:03.893 PROFILING : Wait for preloading data around camera took: 0.000800 ms +11:24:03.893 WORLD : WORLD : EOnActivate +11:24:03.929 PROFILING : EOnActivate took: 36.115900 ms +11:24:03.929 PROFILING : Game::LoadEntities took: 13530.727100 ms +11:24:04.277 DEFAULT : Entered offline game state. +11:24:04.380 NETWORK : Player connected: connectionID=2147483646 +11:24:04.380 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:24:04.381 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:24:04.385 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.386 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:24:04.386 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.386 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! +11:24:04.386 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! +11:24:04.388 SCRIPT (W): Can't open config file "" +11:24:04.393 WORLD : InitEntities 'world' +11:24:04.394 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.394 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:24:04.394 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:24:04.394 SCRIPT (W): Slot_Chat Has no Content! +11:24:04.394 SCRIPT (W): Slot_VON Has no Content! +11:24:04.394 SCRIPT (W): Slot_AvailableActions Has no Content! +11:24:04.395 SCRIPT (W): Slot_Vehicle Has no Content! +11:24:04.395 SCRIPT (W): Slot_GameVersion Has no Content! +11:24:04.395 SCRIPT (W): Slot_Notifications Has no Content! +11:24:04.395 SCRIPT (W): Slot_Hints Has no Content! +11:24:04.405 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:24:04.406 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:24:04.406 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:24:04.406 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. +11:24:04.407 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. +11:24:04.410 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:24:04.411 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:24:04.411 NETWORK : Players connecting: 0 +11:24:04.411 NETWORK : Players connected: 1 / 1 +11:24:04.444 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +11:24:04.446 PROFILING : Workbench startup took: 44474.935600 ms +11:24:04.470 WORLD : Frame start +11:24:04.471 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:24:04.485 WORLD : UpdateEntities +11:24:04.486 WORLD : Frame +11:24:04.486 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:24:04.668 WORLD : UpdateEntities +11:24:04.668 WORLD : PostFrame +11:24:04.668 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:24:04.668 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:24:04.717 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:24:04.717 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:24:04.717 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:24:04.717 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:24:04.854 RENDER : RENDER : ObjectsHeightMap::Build +11:24:04.854 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:24:05.032 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 177.436500 ms +11:24:05.040 PROFILING : ObjectsHeightMap::Build took: 186.189300 ms +11:24:06.205 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:24:06.225 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:24:06.226 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:24:06.261 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:24:06.263 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:24:06.324 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:24:06.324 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:24:06.331 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:24:06.396 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:24:06.396 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:24:06.398 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:24:06.399 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:24:06.402 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:24:06.404 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:24:06.404 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:24:06.406 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:24:06.406 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:24:06.406 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:24:06.406 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:24:06.407 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:24:06.407 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:24:06.407 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.407 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:24:06.408 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:24:06.408 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.408 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:24:06.408 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:24:06.408 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.408 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:07.187 WORLD : UpdateEntities +11:24:07.187 WORLD : AfterPostSimulate +11:24:07.187 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.506 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5309,7499.7> up=0.995681 +11:24:07.506 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:24:07.506 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:07.506 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.616,7501.97> +11:24:07.507 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.316,7501.97> terrainY=63.3164 tireTerrainGap=-0.000377655 +11:24:07.507 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.616,7501.97> radius=0.3 bottom=<7012.07,63.316,7501.97> fraction=0.452915 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000358582 +11:24:07.507 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6032,7497.71> +11:24:07.507 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1532,7497.71> terrainY=64.1555 tireTerrainGap=-0.00235748 +11:24:07.507 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6032,7497.71> radius=0.45 bottom=<7009.88,64.1532,7497.71> fraction=0.443946 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00232697 +11:24:07.508 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2644,7497.74> +11:24:07.508 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8144,7497.74> terrainY=63.8179 tireTerrainGap=-0.00347519 +11:24:07.508 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2644,7497.74> radius=0.45 bottom=<7014.42,63.8144,7497.74> fraction=0.438611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00350571 +11:24:07.508 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:07.760 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:08.274 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:08.275 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.275 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.606 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5357,7499.71> up=0.994347 +11:24:08.607 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686 +11:24:08.607 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:08.607 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6199,7501.99> +11:24:08.607 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3199,7501.99> terrainY=63.3144 tireTerrainGap=0.00553513 +11:24:08.607 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6199,7501.99> radius=0.3 bottom=<7012.07,63.3199,7501.99> fraction=0.480112 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00562668 +11:24:08.607 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6026,7497.71> +11:24:08.608 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1526,7497.71> terrainY=64.149 tireTerrainGap=0.00365448 +11:24:08.608 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6026,7497.71> radius=0.45 bottom=<7009.93,64.1526,7497.71> fraction=0.47138 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00370789 +11:24:08.608 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2657,7497.78> +11:24:08.608 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8157,7497.78> terrainY=63.8154 tireTerrainGap=0.000225067 +11:24:08.609 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2657,7497.78> radius=0.45 bottom=<7014.47,63.8157,7497.78> fraction=0.455556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000221252 +11:24:08.609 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.112 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:24:09.112 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.112 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.113 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.113 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.619 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5306,7499.74> up=0.994219 +11:24:09.620 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0461216 angularSpeed=0.0219731 +11:24:09.620 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:09.620 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6136,7502.01> +11:24:09.620 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3136,7502.01> terrainY=63.3115 tireTerrainGap=0.0021286 +11:24:09.620 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6136,7502.01> radius=0.3 bottom=<7012.07,63.3136,7502.01> fraction=0.464107 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00210571 +11:24:09.620 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5949,7497.72> +11:24:09.620 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1449,7497.72> terrainY=64.1426 tireTerrainGap=0.00223541 +11:24:09.621 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5949,7497.72> radius=0.45 bottom=<7009.97,64.1449,7497.72> fraction=0.464947 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00228882 +11:24:09.621 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2605,7497.83> +11:24:09.621 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8105,7497.83> terrainY=63.8126 tireTerrainGap=-0.00211716 +11:24:09.621 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2605,7497.83> radius=0.45 bottom=<7014.51,63.8105,7497.83> fraction=0.444722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00215912 +11:24:09.621 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.623 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:10.120 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:10.627 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:24:10.627 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:24:10.627 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:10.627 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:24:10.628 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:24:10.628 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:24:10.628 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:24:10.628 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00249481 +11:24:10.628 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:24:10.628 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:24:10.629 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0020256 +11:24:10.629 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:24:10.629 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:10.629 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:10.629 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.630 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.630 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:11.134 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.410 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.411 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:24:11.411 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:24:11.412 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:24:11.412 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:24:11.412 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:24:11.413 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:24:11.413 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:24:11.413 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:24:11.757 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:24:11.799 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.030 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.030 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:24:12.031 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:24:12.031 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.033 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.033 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:24:12.035 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:24:12.035 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:24:12.036 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:24:12.036 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:24:12.057 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:24:12.059 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:24:12.061 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:24:12.061 SCRIPT : ERR SMOKE PASS: base owned native autohover experiment selected before allocation +11:24:12.533 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:24:12.533 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:24:12.541 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:24:12.541 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:24:13.035 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:24:13.035 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:24:13.035 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:24:13.035 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:24:13.035 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:24:13.054 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:24:13.054 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:24:13.541 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28990.3 +11:24:13.542 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:24:13.542 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081793CA8> activeSeat=PilotCompartmentSlot<0x0000000081793CA8> group=<0x00000001BB5CD650> SCR_AIGroup actualGroup=<0x00000001BB5CD650> SCR_AIGroup +11:24:13.542 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:24:13.542 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:24:13.543 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:24:13.543 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:24:15.562 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10010.1 remainingMs=26969.5 +11:24:15.562 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:24:15.563 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.488770 29.397861 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.488770 29.397861 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081793CA8> activeSeat=PilotCompartmentSlot<0x0000000081793CA8> group=<0x00000001BB5CD650> SCR_AIGroup actualGroup=<0x00000001BB5CD650> SCR_AIGroup +11:24:15.563 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:24:15.563 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:24:15.563 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996335 entityOrigin=<4801.01,27.5745,11487.4> +11:24:15.563 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:24:16.071 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:24:16.071 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover mode enabled on exact owned controller with readback; manual mode unchanged +11:24:16.085 WORLD : UpdateEntities +11:24:16.085 WORLD : Frame +11:24:16.085 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0499322 input=1 simulation=1 +11:24:16.145 WORLD : UpdateEntities +11:24:16.145 WORLD : Frame +11:24:16.145 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0593453 input=1 simulation=1 +11:24:16.202 WORLD : UpdateEntities +11:24:16.202 WORLD : Frame +11:24:16.202 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0566723 input=1 simulation=1 +11:24:16.261 WORLD : UpdateEntities +11:24:16.261 WORLD : Frame +11:24:16.261 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0595808 input=1 simulation=1 +11:24:16.576 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:24:16.576 SCRIPT : ERR POWERED AUTOHOVER: selected=1 saved=1 enabled=1 exactController=1 +11:24:16.577 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0134945 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +11:24:16.577 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44818 actualYawPitchRoll=<1.60165,4.48305,2.19948> +11:24:16.577 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +11:24:16.577 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0134945,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0278649,0.0781642,0.996551> right=<0.998957,-0.0382614,-0.0249311> +11:24:16.577 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=-0.114253 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:24:16.578 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=11.833 beforeWriteAgeMs=35.8193 +11:24:16.578 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=-0.114253 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:24:16.578 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.114253 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=1 collectiveMode=5 +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: powered-flight owned native input hooks apply minimum collective in Direct mode +11:24:16.578 SCRIPT : ERR POWERED AUTOHOVER RESTORE: original=0 observed=0 +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/error.log.txt b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/error.log.txt new file mode 100644 index 0000000..9321c55 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/error.log.txt @@ -0,0 +1,108 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20\error.log started at 2026-09-19 11:23:21 (2026-09-19 09:23:21 UTC) + +11:23:21.730 INIT : Workbench startup +11:23:21.730 INIT : Workbench Init Engine +11:23:21.730 RESOURCES : ResourceDB: full scan +11:23:21.730 RESOURCES : processing files... +11:23:21.730 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:23:21.730 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:23:21.730 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:23:25.037 INIT : Workbench Create Game +11:23:25.037 SCRIPT : Compiling Game scripts +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:23:25.202 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.324 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:23:25.356 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:23:25.492 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:23:25.563 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:23:25.630 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.663 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:23:34.296 WORLD : CreateEntities +11:23:34.296 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:23:34.296 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:23:34.296 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:23:50.155 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:23:55.084 WORLD : Game::LoadEntities +11:23:55.084 WORLD : CreateEntities +11:23:55.084 WORLD : CreateEntities +11:23:55.084 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:23:55.084 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:23:55.084 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:23:56.577 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:23:56.577 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:23:56.577 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:23:56.577 ENTITY : CreateComponent 'Hierarchy' +11:23:56.577 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:23:56.582 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:23:56.582 ENTITY : CreateComponent 'Hierarchy' +11:23:56.582 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:23:56.587 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:23:56.587 ENTITY : CreateComponent 'Hierarchy' +11:23:56.587 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:24:03.782 WORLD : InitEntities 'world' +11:24:03.782 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:24:03.782 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:24:04.385 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.386 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:24:04.386 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.386 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! +11:24:04.386 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! +11:24:04.388 SCRIPT (W): Can't open config file "" +11:24:04.393 WORLD : InitEntities 'world' +11:24:04.394 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:24:04.394 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:24:04.394 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:24:04.394 SCRIPT (W): Slot_Chat Has no Content! +11:24:04.394 SCRIPT (W): Slot_VON Has no Content! +11:24:04.394 SCRIPT (W): Slot_AvailableActions Has no Content! +11:24:04.395 SCRIPT (W): Slot_Vehicle Has no Content! +11:24:04.395 SCRIPT (W): Slot_GameVersion Has no Content! +11:24:04.395 SCRIPT (W): Slot_Notifications Has no Content! +11:24:04.395 SCRIPT (W): Slot_Hints Has no Content! +11:24:04.405 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:24:04.406 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:24:04.406 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:24:04.406 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. +11:24:04.407 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. +11:24:04.411 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:24:04.668 WORLD : UpdateEntities +11:24:04.668 WORLD : PostFrame +11:24:04.668 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:24:04.668 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:24:04.717 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:24:04.717 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:24:04.717 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:24:04.717 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:24:07.187 WORLD : UpdateEntities +11:24:07.187 WORLD : AfterPostSimulate +11:24:07.187 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: powered-flight owned native input hooks apply minimum collective in Direct mode +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/headless-launch.log.txt new file mode 100644 index 0000000..afc70a0 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 148 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555579012aa0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555579012aa0 +[Gamescope WSI] Destroyed swapchain: 0x555579012aa0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555579012aa0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555579012aa0 +[Gamescope WSI] Destroyed swapchain: 0x555579012aa0 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555579012aa0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source-sha256.json new file mode 100644 index 0000000..615ef24 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "2911606c5541a593198eeb487c094741e8ae547677416dbbc4bb4d6f11c91c21", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source.json b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source.json new file mode 100644 index 0000000..5be89df --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/launch-source.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "launch_id": "5d9578b2-3484-4cc4-b31e-2cd7ffc36143", + "captured_unix": 1789809798.2645462, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1", + "-errFlightAutohover", + "1" + ], + "manifest_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37" +} diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/report.json b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/report.json new file mode 100644 index 0000000..312b806 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-112320-autohover-input-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 65, + "script_or_runtime_failures": [ + "11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: powered-flight owned native input hooks apply minimum collective in Direct mode", + "11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: powered-flight owned native input hooks apply minimum collective in Direct mode", + "11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/runner.json.txt new file mode 100644 index 0000000..972d431 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789809857.6244092, + "console_sha256": "e3ccdcf857fdefc298a189c7ccb07b16ae5072159f3bb2f186eba2f82b6f9818", + "end_source_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "5d9578b2-3484-4cc4-b31e-2cd7ffc36143", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37", + "started_unix": 1789809798.264619, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-23-20", + "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/native-2026-09-19-112320-autohover-input-refusal/script.log.txt b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/script.log.txt new file mode 100644 index 0000000..dd11ca4 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/script.log.txt @@ -0,0 +1,304 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-23-20\script.log started at 2026-09-19 11:23:22 (2026-09-19 09:23:22 UTC) + +11:23:22.897 SCRIPT : SCRIPT : Initializing scripts +11:23:22.897 SCRIPT : SCRIPT : ScriptProjectManager init +11:23:23.841 SCRIPT : SCRIPT : Compiling GameLib scripts +11:23:23.895 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:23:23.896 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:23:23.896 SCRIPT : SCRIPT : Compiling Game scripts +11:23:25.037 SCRIPT : Compiling Game scripts +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:23:25.037 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:23:25.202 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.324 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:23:25.356 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:23:25.459 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:23:25.492 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:23:25.561 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:23:25.563 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.604 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:23:25.606 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:23:25.630 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:23:25.663 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:23:25.938 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:23:25.947 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33012K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c9afb333 +11:23:26.907 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:23:26.907 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:23:46.720 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:23:50.151 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:23:50.151 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:24:03.782 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:24:03.811 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:24:04.386 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! +11:24:04.386 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! +11:24:04.388 SCRIPT (W): Can't open config file "" +11:24:04.394 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:24:04.394 SCRIPT (W): Slot_Chat Has no Content! +11:24:04.394 SCRIPT (W): Slot_VON Has no Content! +11:24:04.394 SCRIPT (W): Slot_AvailableActions Has no Content! +11:24:04.395 SCRIPT (W): Slot_Vehicle Has no Content! +11:24:04.395 SCRIPT (W): Slot_GameVersion Has no Content! +11:24:04.395 SCRIPT (W): Slot_Notifications Has no Content! +11:24:04.395 SCRIPT (W): Slot_Hints Has no Content! +11:24:04.406 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. +11:24:04.407 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. +11:24:04.411 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:24:04.471 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:24:04.486 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:24:04.668 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:24:06.205 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:24:06.225 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:24:06.226 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:24:06.261 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:24:06.264 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:24:06.324 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:24:06.324 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:24:06.331 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:24:06.396 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:24:06.396 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:24:06.399 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:24:06.399 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:24:06.402 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:24:06.404 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:24:06.404 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:24:06.406 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:24:06.406 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:24:06.406 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:24:06.406 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:24:06.407 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:24:06.407 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:24:06.407 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.407 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:24:06.408 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:24:06.408 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.408 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:24:06.408 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:24:06.408 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:24:06.408 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:06.409 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.253 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.506 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5309,7499.7> up=0.995681 +11:24:07.506 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:24:07.506 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:07.506 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.616,7501.97> +11:24:07.507 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.316,7501.97> terrainY=63.3164 tireTerrainGap=-0.000377655 +11:24:07.507 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.616,7501.97> radius=0.3 bottom=<7012.07,63.316,7501.97> fraction=0.452915 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.000358582 +11:24:07.507 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6032,7497.71> +11:24:07.507 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1532,7497.71> terrainY=64.1555 tireTerrainGap=-0.00235748 +11:24:07.507 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6032,7497.71> radius=0.45 bottom=<7009.88,64.1532,7497.71> fraction=0.443946 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00232697 +11:24:07.508 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2644,7497.74> +11:24:07.508 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8144,7497.74> terrainY=63.8179 tireTerrainGap=-0.00347519 +11:24:07.508 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2644,7497.74> radius=0.45 bottom=<7014.42,63.8144,7497.74> fraction=0.438611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00350571 +11:24:07.508 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:07.760 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:07.761 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:24:08.274 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:08.275 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.275 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.606 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5357,7499.71> up=0.994347 +11:24:08.607 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686 +11:24:08.607 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:08.607 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6199,7501.99> +11:24:08.607 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3199,7501.99> terrainY=63.3144 tireTerrainGap=0.00553513 +11:24:08.607 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6199,7501.99> radius=0.3 bottom=<7012.07,63.3199,7501.99> fraction=0.480112 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00562668 +11:24:08.607 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6026,7497.71> +11:24:08.608 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1526,7497.71> terrainY=64.149 tireTerrainGap=0.00365448 +11:24:08.608 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6026,7497.71> radius=0.45 bottom=<7009.93,64.1526,7497.71> fraction=0.47138 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00370789 +11:24:08.608 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2657,7497.78> +11:24:08.608 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8157,7497.78> terrainY=63.8154 tireTerrainGap=0.000225067 +11:24:08.609 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2657,7497.78> radius=0.45 bottom=<7014.47,63.8157,7497.78> fraction=0.455556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000221252 +11:24:08.609 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.609 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:24:08.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.112 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:24:09.112 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.112 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.113 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.113 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:24:09.619 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5306,7499.74> up=0.994219 +11:24:09.620 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0461216 angularSpeed=0.0219731 +11:24:09.620 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:09.620 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6136,7502.01> +11:24:09.620 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3136,7502.01> terrainY=63.3115 tireTerrainGap=0.0021286 +11:24:09.620 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6136,7502.01> radius=0.3 bottom=<7012.07,63.3136,7502.01> fraction=0.464107 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00210571 +11:24:09.620 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5949,7497.72> +11:24:09.620 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1449,7497.72> terrainY=64.1426 tireTerrainGap=0.00223541 +11:24:09.621 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5949,7497.72> radius=0.45 bottom=<7009.97,64.1449,7497.72> fraction=0.464947 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00228882 +11:24:09.621 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2605,7497.83> +11:24:09.621 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8105,7497.83> terrainY=63.8126 tireTerrainGap=-0.00211716 +11:24:09.621 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2605,7497.83> radius=0.45 bottom=<7014.51,63.8105,7497.83> fraction=0.444722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00215912 +11:24:09.621 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.622 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:09.623 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:10.120 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.121 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:24:10.627 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:24:10.627 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:24:10.627 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:24:10.627 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:24:10.628 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00164032 +11:24:10.628 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462009 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00164413 +11:24:10.628 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:24:10.628 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00249481 +11:24:10.628 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:24:10.628 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84> +11:24:10.629 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.0020256 +11:24:10.629 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705 +11:24:10.629 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:24:10.629 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:10.629 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.630 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:10.630 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:24:11.134 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.135 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.410 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:24:11.411 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:24:11.411 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:24:11.412 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:24:11.412 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:24:11.412 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:24:11.413 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:24:11.413 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:24:11.413 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:24:11.757 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:24:11.799 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:24:12.029 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.030 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.030 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:24:12.030 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:24:12.031 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:24:12.031 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.031 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:24:12.032 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:24:12.032 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.033 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:24:12.033 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:24:12.033 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:24:12.034 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:24:12.034 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:24:12.035 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:24:12.035 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:24:12.035 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:24:12.036 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:24:12.036 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:24:12.036 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:24:12.055 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:24:12.057 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:24:12.058 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:24:12.059 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:24:12.060 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:24:12.061 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:24:12.061 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:24:12.061 SCRIPT : ERR SMOKE PASS: base owned native autohover experiment selected before allocation +11:24:12.533 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:24:12.533 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:24:12.541 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:24:12.541 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:24:13.035 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:24:13.035 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:24:13.035 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:24:13.035 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:24:13.035 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:24:13.054 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:24:13.054 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:24:13.541 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28990.3 +11:24:13.542 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:24:13.542 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081793CA8> activeSeat=PilotCompartmentSlot<0x0000000081793CA8> group=<0x00000001BB5CD650> SCR_AIGroup actualGroup=<0x00000001BB5CD650> SCR_AIGroup +11:24:13.542 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:24:13.542 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:24:13.543 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:24:13.543 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:24:15.562 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10010.1 remainingMs=26969.5 +11:24:15.562 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:24:15.563 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.488770 29.397861 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA71ABB0> @"ENTITY:4611686018427390733" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.488770 29.397861 11490.616211> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000081793CA8> activeSeat=PilotCompartmentSlot<0x0000000081793CA8> group=<0x00000001BB5CD650> SCR_AIGroup actualGroup=<0x00000001BB5CD650> SCR_AIGroup +11:24:15.563 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:24:15.563 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:24:15.563 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996335 entityOrigin=<4801.01,27.5745,11487.4> +11:24:15.563 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:24:16.071 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:24:16.071 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover mode enabled on exact owned controller with readback; manual mode unchanged +11:24:16.085 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0499322 input=1 simulation=1 +11:24:16.145 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0593453 input=1 simulation=1 +11:24:16.202 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0566723 input=1 simulation=1 +11:24:16.261 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0595808 input=1 simulation=1 +11:24:16.576 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:24:16.576 SCRIPT : ERR POWERED AUTOHOVER: selected=1 saved=1 enabled=1 exactController=1 +11:24:16.577 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0134945 drift=0.0283876 speed=0.041193 vertical=-0.0209191 up=0.996206 groundContact=1 fuel=1938.75 engine=0 +11:24:16.577 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44818 actualYawPitchRoll=<1.60165,4.48305,2.19948> +11:24:16.577 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +11:24:16.577 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0134945,0.0126953> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0278649,0.0781642,0.996551> right=<0.998957,-0.0382614,-0.0249311> +11:24:16.577 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=-0.114253 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:24:16.578 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=11.833 beforeWriteAgeMs=35.8193 +11:24:16.578 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=-0.114253 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:24:16.578 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.114253 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=1 collectiveMode=5 +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: powered-flight owned native input hooks apply minimum collective in Direct mode +11:24:16.578 SCRIPT : ERR POWERED AUTOHOVER RESTORE: original=0 observed=0 +11:24:16.578 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-sha256.json new file mode 100644 index 0000000..615ef24 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112320-autohover-input-refusal/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "2911606c5541a593198eeb487c094741e8ae547677416dbbc4bb4d6f11c91c21", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/console.log.txt b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/console.log.txt new file mode 100644 index 0000000..8b6febe --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/console.log.txt @@ -0,0 +1,1130 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02\console.log started at 2026-09-19 11:25:02 (2026-09-19 09:25:02 UTC) + +11:25:02.666 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02' to filesystem under name logs +11:25:02.666 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:25:02.666 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:25:02.667 PROFILING : Workbench Create Engine took: 11.582700 ms +11:25:03.707 INIT : INIT : Workbench Init Engine +11:25:03.707 ENGINE : Initializing engine, version 192142 +11:25:03.707 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +11:25:03.716 ENGINE : Addon dirs: +11:25:03.716 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +11:25:03.716 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:25:03.716 ENGINE : dir: './addons' +11:25:03.716 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:25:03.716 ENGINE : Available addons: +11:25:03.716 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:25:03.716 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:25:03.716 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:25:03.716 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:25:03.716 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:25:03.716 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:25:03.716 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:25:03.717 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:25:03.836 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:25:03.840 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:25:03.840 ENGINE : CPU vendor : AuthenticAMD +11:25:03.840 ENGINE : CPU type : 2 +11:25:03.840 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:25:03.840 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:25:03.840 ENGINE : CPU count logical : 16 +11:25:03.840 ENGINE : CPU count physical : 8 +11:25:03.840 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:25:03.840 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:25:03.841 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:25:03.978 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:25:03.980 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:25:03.980 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02/resourceDatabase.rdb) +11:25:04.128 RESOURCES : RESOURCES : ResourceDB: full scan +11:25:04.133 RESOURCES : RESOURCES : scanning... +11:25:04.133 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:25:04.136 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:25:04.273 RESOURCES : RESOURCES : scanning @"core" +11:25:04.278 RESOURCES : RESOURCES : scanning @"profile" +11:25:04.278 RESOURCES : RESOURCES : scanning @"logs" +11:25:04.279 RESOURCES : RESOURCES : processing meta-files... +11:25:04.348 RESOURCES : RESOURCES : processing files... +11:25:04.359 INIT : Workbench startup +11:25:04.359 INIT : Workbench Init Engine +11:25:04.359 RESOURCES : ResourceDB: full scan +11:25:04.359 RESOURCES : processing files... +11:25:04.359 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:25:04.359 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:25:04.359 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:25:04.359 RESOURCES : RESOURCES : processing folders... +11:25:04.366 RESOURCES : RESOURCES : creating GUID-item mapping... +11:25:04.383 RESOURCES : RESOURCES : building tree... +11:25:04.442 PROFILING : ResourceDB: full scan took: 313.740000 ms +11:25:04.443 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:25:04.445 RESOURCES : ResourceDB: written 6865/6865 bytes +11:25:04.445 RESOURCES : ResourceDB: cache successfully saved +11:25:04.445 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:25:04.446 RESOURCES : ResourceDB: written 206/206 bytes +11:25:04.446 RESOURCES : ResourceDB: cache successfully saved +11:25:04.446 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02/resourceDatabase.rdb) +11:25:04.448 RESOURCES : ResourceDB: written 162/162 bytes +11:25:04.448 RESOURCES : ResourceDB: cache successfully saved +11:25:04.448 ENGINE : GameProject load +11:25:04.448 ENGINE : Loaded addons: +11:25:04.448 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:25:04.448 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:25:04.448 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:25:04.449 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:25:04.450 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:25:04.450 ENGINE : Engine user settings config loaded +11:25:04.450 PROFILING : Settings changed took: 0.002100 ms +11:25:04.554 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:25:04.555 RENDER : Basic screen setup: +11:25:04.555 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:25:04.555 RENDER : MSAA : none +11:25:04.567 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:25:04.567 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:25:04.567 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:25:04.567 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:25:04.567 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:25:04.567 RENDER : AMD AGS correctly initialized +11:25:04.568 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 +11:25:04.568 RENDER : Detected output devices: +11:25:04.568 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:25:04.568 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:25:04.568 RENDER : Concurrent frames limit 2 +11:25:04.642 RENDER : DX12 device successfully created by AMD AGS library +11:25:04.642 RENDER : * user markers not supported in this version AMD SW +11:25:04.642 RENDER : Graphics device features +11:25:04.642 RENDER : Needed: +11:25:04.642 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:25:04.642 RENDER : Optional: +11:25:04.642 RENDER : * Allow tearing (VSYNC) : 1 +11:25:04.642 RENDER : * 16 bits : 1 +11:25:04.642 RENDER : * Resource heap tier : 3 +11:25:04.642 RENDER : * Persistent heaps (DRED) : 1 +11:25:04.642 RENDER : * DRED 1.2 is supported by compiler +11:25:04.664 RENDER : Main RT format setup. +11:25:04.664 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:25:04.664 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:25:04.666 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:25:04.696 PROFILING : Settings changed took: 0.023700 ms +11:25:05.273 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:25:05.273 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:25:05.273 AUDIO : Audio client: +11:25:05.273 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:25:05.276 RENDER : RENDER : Reload shaders +11:25:05.276 RENDER : Enfusion shader version 13 +11:25:05.276 INIT : INIT : ShaderListReload +11:25:05.276 PROFILING : ShaderListReload took: 0.000400 ms +11:25:05.421 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:25:05.421 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:25:05.421 AUDIO : Audio client: +11:25:05.421 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:25:05.536 RENDER : Loaded 3752 newer shader binaries +11:25:05.536 PROFILING : Reload shaders took: 259.916700 ms +11:25:05.536 ENGINE : Initializing inputs. +11:25:05.549 NETWORK : Initializing networking. +11:25:05.549 NETWORK : Using new GameRplScheduler. +11:25:05.549 SCRIPT : SCRIPT : Initializing scripts +11:25:05.550 SCRIPT : SCRIPT : ScriptProjectManager init +11:25:06.406 PROFILING : ScriptProjectManager init took: 856.495700 ms +11:25:06.441 PROFILING : Initializing scripts took: 891.124700 ms +11:25:06.458 ENGINE : Enfusion engine successfully created. +11:25:06.458 PROFILING : Workbench Init Engine took: 2751.065200 ms +11:25:06.458 INIT : INIT : Workbench Create Game +11:25:06.470 GUI : Using default language (en_us) +11:25:06.470 GUI : Loading 'en_us' localization file. +11:25:06.470 INIT : INIT : Loading StringTable +11:25:06.496 PROFILING : Loading StringTable took: 25.571000 ms +11:25:06.496 SCRIPT : SCRIPT : Compiling GameLib scripts +11:25:06.556 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:25:06.557 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:25:06.557 PROFILING : Compiling GameLib scripts took: 61.378300 ms +11:25:06.557 SCRIPT : SCRIPT : Compiling Game scripts +11:25:07.725 INIT : Workbench Create Game +11:25:07.725 SCRIPT : Compiling Game scripts +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:25:07.887 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:07.998 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:25:08.029 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:25:08.159 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:25:08.222 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:25:08.289 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.322 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:25:08.584 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:25:08.591 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33012K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c9afb333 +11:25:08.629 PROFILING : Compiling Game scripts took: 2071.420600 ms +11:25:08.635 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:25:08.674 ENGINE : Game successfully created. +11:25:08.675 PROFILING : Workbench Create Game took: 2216.954900 ms +11:25:08.684 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +11:25:09.506 INIT : INIT : Workbench Reload Game +11:25:09.508 ENGINE : Game destroyed. +11:25:09.514 GUI : Using default language (en_us) +11:25:09.514 GUI : Loading 'en_us' localization file. +11:25:09.514 INIT : INIT : Loading StringTable +11:25:09.524 PROFILING : Loading StringTable took: 9.617700 ms +11:25:09.524 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:25:09.531 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:25:09.531 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:25:09.531 ENGINE : Game successfully created. +11:25:09.531 ENGINE : Game successfully initialized. +11:25:09.531 PROFILING : Workbench Reload Game took: 24.587100 ms +11:25:10.202 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:25:11.204 PROFILING : Entities load took: 1002.208300 ms +11:25:11.214 WORLD : WORLD : CreateEntities +11:25:11.220 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:25:11.220 PROFILING : NotifyBeforeEntitiesCreated took: 0.003200 ms +11:25:11.220 WORLD : WORLD : Wait for preloading data +11:25:11.220 PROFILING : Wait for preloading data took: 0.003500 ms +11:25:11.324 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:25:11.324 PROFILING : PROFILING : Terrain load +11:25:12.874 PROFILING : Terrain load took: 1549.587600 ms +11:25:16.967 WORLD : CreateEntities +11:25:16.967 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:25:16.967 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:25:16.967 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:25:26.632 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:25:26.632 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005700 ms +11:25:27.074 WORLD : WORLD : NotifyEntitiesInitialized +11:25:27.074 TERRAIN : TERRAIN : Initializing road networks... +11:25:27.076 PROFILING : Initializing road networks... took: 2.190400 ms +11:25:27.076 PROFILING : NotifyEntitiesInitialized took: 2.456900 ms +11:25:27.077 PROFILING : CreateEntities took: 15861.805200 ms +11:25:27.260 PROFILING : * WorldEditor: LoadWorld: 17062.876600 ms +11:25:28.799 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:25:28.799 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:25:28.800 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:25:28.800 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:25:28.890 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:25:28.911 BACKEND : Attempting online Game Config instead. +11:25:32.150 INIT : INIT : Workbench Reload Game +11:25:32.153 ENGINE : Game destroyed. +11:25:32.160 GUI : Using default language (en_us) +11:25:32.160 GUI : Loading 'en_us' localization file. +11:25:32.160 INIT : INIT : Loading StringTable +11:25:32.182 PROFILING : Loading StringTable took: 20.863600 ms +11:25:32.182 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:25:32.193 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:25:32.193 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:25:32.194 ENGINE : Game successfully created. +11:25:32.194 ENGINE : Game successfully initialized. +11:25:32.194 PROFILING : Workbench Reload Game took: 43.995900 ms +11:25:32.197 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:25:32.250 PLATFORM : Save data from container 'settings' have been loaded +11:25:32.340 PLATFORM : Save data from container 'sessions' have been loaded +11:25:32.341 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:25:32.341 ENGINE : Game user settings config loaded +11:25:32.438 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:25:32.447 WORLD : WORLD : Game::LoadEntities +11:25:32.447 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:25:32.448 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:25:32.448 WORLD : WORLD : CreateEntities +11:25:32.448 WORLD : WORLD : CreateEntities +11:25:32.448 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:25:32.453 RESOURCES : Loaded mission headers from 7 addon(s)! +11:25:32.453 PROFILING : NotifyBeforeEntitiesCreated took: 5.127400 ms +11:25:32.453 WORLD : WORLD : Wait for preloading data +11:25:32.453 PROFILING : Wait for preloading data took: 0.000800 ms +11:25:36.963 WORLD : Game::LoadEntities +11:25:36.963 WORLD : CreateEntities +11:25:36.963 WORLD : CreateEntities +11:25:36.963 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:25:36.963 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:25:36.963 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:25:38.422 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:25:38.422 ENTITY : CreateComponent 'Hierarchy' +11:25:38.422 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:25:38.422 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:25:38.422 ENTITY : CreateComponent 'Hierarchy' +11:25:38.422 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:25:38.423 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:25:38.423 ENTITY : CreateComponent 'Hierarchy' +11:25:38.423 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:25:38.432 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:25:38.432 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:25:38.433 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:25:38.433 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:25:38.433 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:25:38.433 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:25:43.386 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:25:43.386 PROFILING : NotifyBeforeEntitiesInitialized took: 0.037200 ms +11:25:45.393 WORLD : InitEntities 'world' +11:25:45.393 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:25:45.393 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:25:45.422 WORLD : InitEntities 'world' +11:25:45.422 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:25:45.422 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:25:45.422 WORLD : WORLD : NotifyEntitiesInitialized +11:25:45.422 TERRAIN : TERRAIN : Initializing road networks... +11:25:45.425 PROFILING : Initializing road networks... took: 2.601800 ms +11:25:45.425 DEFAULT : DEFAULT : WorldVolumesCollection +11:25:45.488 PROFILING : WorldVolumesCollection took: 62.604900 ms +11:25:45.488 INIT : INIT : SoundWorldInit +11:25:45.503 PROFILING : SoundWorldInit took: 15.466800 ms +11:25:45.503 PROFILING : NotifyEntitiesInitialized took: 80.954400 ms +11:25:45.503 PROFILING : CreateEntities took: 13054.627900 ms +11:25:45.504 PROFILING : CreateEntities took: 13054.866400 ms +11:25:45.504 WORLD : WORLD : Wait for preloading data around camera +11:25:45.504 PROFILING : Wait for preloading data around camera took: 0.001000 ms +11:25:45.504 WORLD : WORLD : EOnActivate +11:25:45.541 PROFILING : EOnActivate took: 36.856700 ms +11:25:45.541 PROFILING : Game::LoadEntities took: 13094.254200 ms +11:25:45.824 DEFAULT : Entered offline game state. +11:25:45.927 NETWORK : Player connected: connectionID=2147483646 +11:25:45.927 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:25:45.928 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:25:45.932 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.932 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:25:45.933 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.933 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! +11:25:45.933 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! +11:25:45.935 SCRIPT (W): Can't open config file "" +11:25:45.942 WORLD : InitEntities 'world' +11:25:45.942 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.942 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:25:45.942 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:25:45.943 SCRIPT (W): Slot_Chat Has no Content! +11:25:45.943 SCRIPT (W): Slot_VON Has no Content! +11:25:45.943 SCRIPT (W): Slot_AvailableActions Has no Content! +11:25:45.943 SCRIPT (W): Slot_Vehicle Has no Content! +11:25:45.943 SCRIPT (W): Slot_GameVersion Has no Content! +11:25:45.943 SCRIPT (W): Slot_Notifications Has no Content! +11:25:45.943 SCRIPT (W): Slot_Hints Has no Content! +11:25:45.955 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:25:45.955 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:25:45.955 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:25:45.956 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. +11:25:45.956 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. +11:25:45.959 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:25:45.960 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:25:45.960 NETWORK : Players connecting: 0 +11:25:45.960 NETWORK : Players connected: 1 / 1 +11:25:45.992 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +11:25:45.993 PROFILING : Workbench startup took: 43390.511400 ms +11:25:46.018 WORLD : Frame start +11:25:46.018 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:25:46.031 WORLD : UpdateEntities +11:25:46.032 WORLD : Frame +11:25:46.032 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:25:46.222 WORLD : UpdateEntities +11:25:46.222 WORLD : PostFrame +11:25:46.222 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:25:46.222 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:25:46.266 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:25:46.266 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:25:46.266 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:25:46.266 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:25:46.407 RENDER : RENDER : ObjectsHeightMap::Build +11:25:46.407 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:25:46.581 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 173.353800 ms +11:25:46.588 PROFILING : ObjectsHeightMap::Build took: 180.116300 ms +11:25:47.745 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:25:47.765 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:25:47.766 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:25:47.794 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:25:47.797 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:25:47.846 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:25:47.847 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:25:47.853 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:25:47.902 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:25:47.903 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:25:47.905 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:25:47.905 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:25:47.909 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:25:47.910 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:25:47.910 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:25:47.912 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:25:47.912 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:25:47.912 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:25:47.912 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:25:47.912 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:25:47.913 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.913 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:25:47.913 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.913 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:25:47.914 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.915 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:48.677 WORLD : UpdateEntities +11:25:48.677 WORLD : AfterPostSimulate +11:25:48.677 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.749 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.002 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.532,7499.7> up=0.99568 +11:25:49.003 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315906 angularSpeed=0.0413675 +11:25:49.003 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:49.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6173,7501.97> +11:25:49.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3173,7501.97> terrainY=63.3165 tireTerrainGap=0.000881195 +11:25:49.003 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6173,7501.97> radius=0.3 bottom=<7012.07,63.3173,7501.97> fraction=0.458824 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00094223 +11:25:49.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6043,7497.71> +11:25:49.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1543,7497.71> terrainY=64.1555 tireTerrainGap=-0.00117493 +11:25:49.004 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6043,7497.71> radius=0.45 bottom=<7009.88,64.1543,7497.71> fraction=0.449243 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0011673 +11:25:49.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2651,7497.74> +11:25:49.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8151,7497.74> terrainY=63.8179 tireTerrainGap=-0.00284195 +11:25:49.004 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2651,7497.74> radius=0.45 bottom=<7014.42,63.8151,7497.74> fraction=0.441667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00283432 +11:25:49.005 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:49.259 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.259 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.260 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.260 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.769 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:49.769 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.770 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.100 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5344,7499.71> up=0.994329 +11:25:50.100 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +11:25:50.101 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:50.101 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6207,7501.98> +11:25:50.101 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3207,7501.98> terrainY=63.3146 tireTerrainGap=0.00602341 +11:25:50.101 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6207,7501.98> radius=0.3 bottom=<7012.07,63.3207,7501.98> fraction=0.482353 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00611877 +11:25:50.101 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6029,7497.71> +11:25:50.102 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1529,7497.71> terrainY=64.1491 tireTerrainGap=0.00379181 +11:25:50.102 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6029,7497.71> radius=0.45 bottom=<7009.93,64.1529,7497.71> fraction=0.471677 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00376892 +11:25:50.102 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2658,7497.78> +11:25:50.102 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8158,7497.78> terrainY=63.8155 tireTerrainGap=0.000324249 +11:25:50.102 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2658,7497.78> radius=0.45 bottom=<7014.47,63.8158,7497.78> fraction=0.455833 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000282288 +11:25:50.103 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.603 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:25:50.603 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:51.106 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5316,7499.74> up=0.99427 +11:25:51.106 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0452181 angularSpeed=0.0643033 +11:25:51.106 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:51.107 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6163,7502.01> +11:25:51.107 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3163,7502.01> terrainY=63.3116 tireTerrainGap=0.00466537 +11:25:51.107 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6163,7502.01> radius=0.3 bottom=<7012.07,63.3163,7502.01> fraction=0.475647 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00464249 +11:25:51.107 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5915,7497.71> +11:25:51.107 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1415,7497.71> terrainY=64.1428 tireTerrainGap=-0.00121307 +11:25:51.108 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5915,7497.71> radius=0.45 bottom=<7009.97,64.1415,7497.71> fraction=0.448934 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00123596 +11:25:51.108 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2575,7497.83> +11:25:51.108 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8075,7497.83> terrainY=63.8126 tireTerrainGap=-0.00510025 +11:25:51.108 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2575,7497.83> radius=0.45 bottom=<7014.51,63.8075,7497.83> fraction=0.431111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00515366 +11:25:51.108 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:52.112 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994381 +11:25:52.112 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:25:52.112 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:52.112 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6127,7502.02> +11:25:52.112 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3127,7502.02> terrainY=63.3108 tireTerrainGap=0.00188065 +11:25:52.113 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6127,7502.02> radius=0.3 bottom=<7012.07,63.3127,7502.02> fraction=0.462994 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00185776 +11:25:52.113 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:25:52.113 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00250244 +11:25:52.113 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:25:52.113 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:25:52.113 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00183487 +11:25:52.114 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:25:52.114 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:52.114 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.114 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.115 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.115 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.615 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:53.121 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994381 +11:25:53.121 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:25:53.121 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:53.121 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6127,7502.02> +11:25:53.121 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3127,7502.02> terrainY=63.3108 tireTerrainGap=0.00188065 +11:25:53.122 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6127,7502.02> radius=0.3 bottom=<7012.07,63.3127,7502.02> fraction=0.462994 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00185776 +11:25:53.122 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:25:53.122 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00250244 +11:25:53.122 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:25:53.122 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:25:53.123 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00183487 +11:25:53.123 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:25:53.123 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:53.123 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:53.124 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:25:53.124 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:25:53.125 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:25:53.125 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:25:53.125 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:25:53.125 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:25:53.125 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:25:53.126 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:25:53.265 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:25:53.305 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +11:25:53.519 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.521 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.522 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:25:53.522 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:25:53.524 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.524 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.524 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:25:53.525 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:25:53.525 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:25:53.527 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:25:53.527 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:25:53.544 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:25:53.546 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:25:53.548 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:25:54.022 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:25:54.022 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:25:54.030 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:25:54.031 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:25:54.527 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:25:54.527 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:25:54.528 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:25:54.528 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:25:54.528 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:25:54.547 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:25:54.547 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:25:55.036 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28984.4 +11:25:55.037 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:25:55.037 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082173CA8> activeSeat=PilotCompartmentSlot<0x0000000082173CA8> group=<0x00000001B9EAA6D0> SCR_AIGroup actualGroup=<0x00000001B9EAA6D0> SCR_AIGroup +11:25:55.037 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:25:55.037 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:25:55.038 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:25:55.038 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:25:57.049 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=9988.22 remainingMs=26971.4 +11:25:57.049 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:25:57.050 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491699 29.396637 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491699 29.396637 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082173CA8> activeSeat=PilotCompartmentSlot<0x0000000082173CA8> group=<0x00000001B9EAA6D0> SCR_AIGroup actualGroup=<0x00000001B9EAA6D0> SCR_AIGroup +11:25:57.050 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:25:57.050 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:25:57.051 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996286 entityOrigin=<4801.01,27.5717,11487.4> +11:25:57.051 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:25:57.556 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:25:57.556 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover mode enabled on exact owned controller with readback; manual mode unchanged +11:25:57.557 WORLD : UpdateEntities +11:25:57.557 WORLD : Frame +11:25:57.557 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0546077 input=1 simulation=1 +11:25:57.614 WORLD : UpdateEntities +11:25:57.614 WORLD : Frame +11:25:57.614 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0574055 input=1 simulation=1 +11:25:57.661 WORLD : UpdateEntities +11:25:57.662 WORLD : Frame +11:25:57.662 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.04728 input=1 simulation=1 +11:25:57.711 WORLD : UpdateEntities +11:25:57.711 WORLD : Frame +11:25:57.711 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0494716 input=1 simulation=1 +11:25:58.056 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:25:58.056 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:25:58.056 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0129948 drift=0.0271205 speed=0.0363643 vertical=-0.0109936 up=0.996183 groundContact=1 fuel=1938.75 engine=0 +11:25:58.056 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.57888,4.49747,2.20398> +11:25:58.057 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.121492,-0.645408,0.0310444> +11:25:58.057 SCRIPT : ERR POWERED MOTION: offset=<-0.0249023,-0.0129948,0.0107422> velocity=<0.0338432,-0.0109936,0.00749283> angularLocal=<0.0151757,0.0579201,0.00572153> forward=<0.0274683,0.0784151,0.996542> right=<0.998964,-0.0383388,-0.0245183> +11:25:58.057 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:25:58.057 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=10 writtenAgeMs=33.4629 beforeWriteAgeMs=22.8926 +11:25:58.057 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:25:58.058 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:25:58.058 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:25:58.058 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4877,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7786 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7456,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:25:58.060 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.667 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.0992413 initialHeight=-0.223524 +11:25:58.060 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:25:58.060 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:26:00.068 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +11:26:00.068 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:00.068 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00610924 drift=0.0392573 speed=0 vertical=0 up=0.996058 groundContact=1 fuel=1938.75 engine=0 +11:26:00.068 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.90422,4.59732,2.18415> +11:26:00.068 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:26:00.068 SCRIPT : ERR POWERED MOTION: offset=<-0.0390625,0.00610924,-0.00390625> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.033122,0.0801522,0.996232> right=<0.998823,-0.0379887,-0.0301517> +11:26:00.069 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:26:00.069 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=75 beforeWriteSequence=48 writtenAgeMs=33.5605 beforeWriteAgeMs=33.5605 +11:26:00.069 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:26:00.069 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:26:02.092 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=88 +11:26:02.092 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:02.092 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0106468 drift=0.130462 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +11:26:02.092 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.50705,4.60745,2.16652> +11:26:02.092 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109306,-0.0708192> +11:26:02.093 SCRIPT : ERR POWERED MOTION: offset=<-0.130371,0.0106468,-0.00488281> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204043,-0.0427907,-0.000639237> forward=<0.043601,0.0803285,0.995814> right=<0.998462,-0.0376818,-0.0406772> +11:26:02.093 SCRIPT : ERR POWERED INPUT: pilotHooks=88 vehicleHooks=88 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.00031911 targetRPM=196 +11:26:02.093 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=88 applyCallbacks=136 beforeWriteSequence=88 writtenAgeMs=13.8213 beforeWriteAgeMs=13.8213 +11:26:02.093 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:02.093 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:04.103 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=125 +11:26:04.103 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:04.103 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0137691 drift=0.221733 speed=0.0438123 vertical=-0.0022677 up=0.99608 groundContact=1 fuel=1938.62 engine=1 +11:26:04.103 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<3.15213,4.59788,2.15062> +11:26:04.103 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494633,0.00328741,0.0203778> +11:26:04.103 SCRIPT : ERR POWERED MOTION: offset=<-0.22168,0.0137691,-0.00488281> velocity=<0.0436936,-0.0022677,0.00229078> angularLocal=<-1.09725e-05,-0.042809,-0.000768775> forward=<0.0548103,0.080162,0.995274> right=<0.997949,-0.0374058,-0.0519449> +11:26:04.104 SCRIPT : ERR POWERED INPUT: pilotHooks=125 vehicleHooks=125 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0235028 targetRPM=196 +11:26:04.104 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=125 applyCallbacks=196 beforeWriteSequence=125 writtenAgeMs=35.4824 beforeWriteAgeMs=23.9805 +11:26:04.104 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:04.104 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:06.124 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=162 +11:26:06.124 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:06.124 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0168514 drift=0.31205 speed=0.0440739 vertical=-0.00217407 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +11:26:06.124 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<3.75323,4.5873,2.13481> +11:26:06.124 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511515,0.00178536,0.02478> +11:26:06.125 SCRIPT : ERR POWERED MOTION: offset=<-0.312012,0.0168514,-0.00488281> velocity=<0.043949,-0.00217407,0.00250376> angularLocal=<0.00039381,-0.0428481,-0.000907389> forward=<0.0652496,0.0799781,0.994659> right=<0.997358,-0.0371315,-0.062441> +11:26:06.125 SCRIPT : ERR POWERED INPUT: pilotHooks=162 vehicleHooks=162 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.38924 targetRPM=196 +11:26:06.125 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=162 applyCallbacks=257 beforeWriteSequence=162 writtenAgeMs=61.8242 beforeWriteAgeMs=14.1562 +11:26:06.125 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:06.126 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:08.137 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=200 +11:26:08.137 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:08.137 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0200081 drift=0.404815 speed=0.0449941 vertical=-0.00191385 up=0.996135 groundContact=1 fuel=1938.39 engine=1 +11:26:08.137 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<4.39536,4.57344,2.11788> +11:26:08.137 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.054061,-0.00408153,0.0212722> +11:26:08.137 SCRIPT : ERR POWERED MOTION: offset=<-0.404785,0.0200081,-0.00488281> velocity=<0.0448836,-0.00191385,0.00250297> angularLocal=<0.000702434,0.0559877,0.00211> forward=<0.0763942,0.0797369,0.993884> right=<0.996604,-0.036838,-0.0736478> +11:26:08.138 SCRIPT : ERR POWERED INPUT: pilotHooks=200 vehicleHooks=200 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.09667 targetRPM=196 +11:26:08.138 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=200 applyCallbacks=317 beforeWriteSequence=199 writtenAgeMs=11.3574 beforeWriteAgeMs=24.7578 +11:26:08.138 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:08.138 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:10.149 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=239 +11:26:10.149 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:10.149 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.021244 drift=0.497086 speed=0.0446741 vertical=0.00083656 up=0.996168 groundContact=1 fuel=1938.31 engine=1 +11:26:10.149 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<4.87254,4.55939,2.09745> +11:26:10.149 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0801326,-0.00137086,0.00806762> +11:26:10.150 SCRIPT : ERR POWERED MOTION: offset=<-0.49707,0.021244,-0.00390625> velocity=<0.0446326,0.00083656,0.00173457> angularLocal=<0.000765431,0.0545855,0.0021156> forward=<0.0846706,0.0794924,0.993233> right=<0.995966,-0.0364833,-0.0819836> +11:26:10.150 SCRIPT : ERR POWERED INPUT: pilotHooks=239 vehicleHooks=239 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.1086 targetRPM=196 +11:26:10.150 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=239 applyCallbacks=377 beforeWriteSequence=239 writtenAgeMs=33.25 beforeWriteAgeMs=33.25 +11:26:10.151 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:10.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:12.168 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=277 +11:26:12.168 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:12.168 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0137863 drift=0.573738 speed=0.0398935 vertical=0.00606825 up=0.996217 groundContact=1 fuel=1938.22 engine=1 +11:26:12.168 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<5.22283,4.53124,2.08143> +11:26:12.169 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0118346,0.00238862,-0.0515224> +11:26:12.169 SCRIPT : ERR POWERED MOTION: offset=<-0.57373,0.0137863,-0.00292969> velocity=<0.0383985,0.00606825,-0.00895656> angularLocal=<0.000590173,-0.0462928,-0.000862172> forward=<0.0907448,0.0790026,0.992736> right=<0.995452,-0.0362063,-0.0881118> +11:26:12.169 SCRIPT : ERR POWERED INPUT: pilotHooks=277 vehicleHooks=277 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=61.6686 targetRPM=196 +11:26:12.170 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=277 applyCallbacks=438 beforeWriteSequence=277 writtenAgeMs=13.1445 beforeWriteAgeMs=13.1445 +11:26:12.170 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:12.170 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:14.188 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=315 +11:26:14.188 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:14.188 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00362968 drift=0.637696 speed=0.0311385 vertical=0.00476153 up=0.996287 groundContact=1 fuel=1938.13 engine=1 +11:26:14.188 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<5.73072,4.48504,2.07037> +11:26:14.188 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.195607,0.00235515,0.0235705> +11:26:14.188 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00362968,-0.000976562> velocity=<0.0278708,0.00476153,-0.0130441> angularLocal=<-2.13866e-05,0.0556554,0.00119655> forward=<0.0995475,0.0781988,0.991955> right=<0.994635,-0.0360164,-0.0969771> +11:26:14.189 SCRIPT : ERR POWERED INPUT: pilotHooks=315 vehicleHooks=315 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.740966 rotorRPM=86.8824 targetRPM=196 +11:26:14.189 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=315 applyCallbacks=498 beforeWriteSequence=314 writtenAgeMs=21.1094 beforeWriteAgeMs=33.3027 +11:26:14.189 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.740966> writtenThrottle=0 beforeWriteThrottle=0 +11:26:14.189 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.870483 autohover=0 collectiveMode=3 +11:26:15.446 WORLD : UpdateEntities +11:26:15.446 WORLD : AfterPostSimulate +11:26:15.446 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:26:16.231 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=353 +11:26:16.231 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:16.231 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00536919 drift=0.702637 speed=0.0268844 vertical=0.00510419 up=0.996353 groundContact=1 fuel=1938.04 engine=1 +11:26:16.231 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.1894,4.44331,2.05547> +11:26:16.231 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.302386,0.00766603,0.0354484> +11:26:16.232 SCRIPT : ERR POWERED MOTION: offset=<-0.702637,-0.00536919,0.000976562> velocity=<0.0176311,0.00510419,-0.0196433> angularLocal=<0.00014614,0.0547153,0.000829295> forward=<0.107491,0.0774727,0.991183> right=<0.993831,-0.0357593,-0.104984> +11:26:16.232 SCRIPT : ERR POWERED INPUT: pilotHooks=353 vehicleHooks=353 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.531198 rotorRPM=104.757 targetRPM=196 +11:26:16.232 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=353 applyCallbacks=560 beforeWriteSequence=353 writtenAgeMs=12.5918 beforeWriteAgeMs=12.5918 +11:26:16.232 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.531198> writtenThrottle=0 beforeWriteThrottle=0 +11:26:16.232 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.76693 autohover=0 collectiveMode=3 +11:26:18.252 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=390 +11:26:18.252 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:18.253 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0160751 drift=0.746726 speed=0.032918 vertical=0.00647738 up=0.996418 groundContact=1 fuel=1937.95 engine=1 +11:26:18.253 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.542,4.39972,2.04528> +11:26:18.253 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.230458,0.00424672,0.0262913> +11:26:18.253 SCRIPT : ERR POWERED MOTION: offset=<-0.746582,-0.0160751,0.0146484> velocity=<0.0119686,0.00647738,-0.0299731> angularLocal=<0.000235264,0.049473,0.000842434> forward=<0.113596,0.0767142,0.990561> right=<0.993168,-0.0355841,-0.111139> +11:26:18.253 SCRIPT : ERR POWERED INPUT: pilotHooks=390 vehicleHooks=390 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.396197 rotorRPM=121.416 targetRPM=196 +11:26:18.254 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=390 applyCallbacks=620 beforeWriteSequence=390 writtenAgeMs=47.4746 beforeWriteAgeMs=25.0156 +11:26:18.254 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.396197> writtenThrottle=0 beforeWriteThrottle=0 +11:26:18.254 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.698099 autohover=0 collectiveMode=3 +11:26:20.273 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=428 +11:26:20.273 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:20.273 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0293903 drift=0.759497 speed=0.0361158 vertical=0.00822391 up=0.996473 groundContact=1 fuel=1937.86 engine=1 +11:26:20.274 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.62586,4.36142,2.03861> +11:26:20.274 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.136141,0.00282682,1.11349> +11:26:20.274 SCRIPT : ERR POWERED MOTION: offset=<-0.754395,-0.0293903,0.0878906> velocity=<0.0134586,0.00822391,-0.0324898> angularLocal=<-0.00215759,-0.02037,-0.000774264> forward=<0.115051,0.0760476,0.990444> right=<0.993004,-0.0354699,-0.112625> +11:26:20.274 SCRIPT : ERR POWERED INPUT: pilotHooks=428 vehicleHooks=428 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.293888 rotorRPM=137.576 targetRPM=196 +11:26:20.274 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=428 applyCallbacks=681 beforeWriteSequence=428 writtenAgeMs=33.3594 beforeWriteAgeMs=12.625 +11:26:20.275 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.293888> writtenThrottle=0 beforeWriteThrottle=0 +11:26:20.275 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.64768 autohover=0 collectiveMode=3 +11:26:22.305 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=464 +11:26:22.306 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:22.306 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0445709 drift=0.774512 speed=0.0672471 vertical=0.00847187 up=0.996535 groundContact=1 fuel=1937.77 engine=1 +11:26:22.306 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.39317,4.31699,2.03367> +11:26:22.307 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00481322,0.00110367,-0.0120342> +11:26:22.308 SCRIPT : ERR POWERED MOTION: offset=<-0.750488,-0.0445709,0.191406> velocity=<0.0136086,0.00847187,-0.0653086> angularLocal=<0.00039551,-0.00175281,-5.18839e-05> forward=<0.111035,0.0752744,0.990962> right=<0.993453,-0.0353861,-0.108626> +11:26:22.308 SCRIPT : ERR POWERED INPUT: pilotHooks=464 vehicleHooks=464 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.215154 rotorRPM=153.447 targetRPM=196 +11:26:22.308 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=464 applyCallbacks=741 beforeWriteSequence=464 writtenAgeMs=73.8945 beforeWriteAgeMs=33.9844 +11:26:22.308 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.215154> writtenThrottle=0 beforeWriteThrottle=0 +11:26:22.309 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.608164 autohover=0 collectiveMode=3 +11:26:24.325 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=500 +11:26:24.325 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:24.326 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0601501 drift=0.81976 speed=0.0333264 vertical=0.00805853 up=0.996598 groundContact=1 fuel=1937.68 engine=1 +11:26:24.326 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.31333,4.27403,2.02208> +11:26:24.326 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00638265,0.000574998,0.000632666> +11:26:24.326 SCRIPT : ERR POWERED MOTION: offset=<-0.793945,-0.0601501,0.204102> velocity=<0.0221578,0.00805853,-0.0235529> angularLocal=<0.000142228,-0.000359035,0.000164375> forward=<0.10966,0.0745267,0.991171> right=<0.993606,-0.0351866,-0.107283> +11:26:24.326 SCRIPT : ERR POWERED INPUT: pilotHooks=500 vehicleHooks=500 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.15004 rotorRPM=169.634 targetRPM=196 +11:26:24.327 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=500 applyCallbacks=802 beforeWriteSequence=500 writtenAgeMs=23.582 beforeWriteAgeMs=23.582 +11:26:24.327 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.15004> writtenThrottle=0 beforeWriteThrottle=0 +11:26:24.327 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.57502 autohover=0 collectiveMode=3 +11:26:25.336 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:26:25.844 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:26:25.844 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +11:26:26.361 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=539 +11:26:26.361 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:26.361 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0957127 drift=1.06433 speed=0.577674 vertical=0.0186559 up=0.996192 groundContact=1 fuel=1937.59 engine=1 +11:26:26.361 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.39548,4.61168,1.9389> +11:26:26.361 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.179993,0.0924369,-0.565985> +11:26:26.362 SCRIPT : ERR POWERED MOTION: offset=<-0.954102,-0.0957127,0.47168> velocity=<0.224697,0.0186559,-0.531856> angularLocal=<-0.0109073,0.00115697,0.000583231> forward=<0.11103,0.0804022,0.990559> right=<0.993511,-0.0337242,-0.108623> +11:26:26.362 SCRIPT : ERR POWERED INPUT: pilotHooks=539 vehicleHooks=539 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.140134 rotorRPM=181.014 targetRPM=196 +11:26:26.362 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=539 applyCallbacks=863 beforeWriteSequence=539 writtenAgeMs=25.2148 beforeWriteAgeMs=25.2148 +11:26:26.362 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.140134> writtenThrottle=0 beforeWriteThrottle=0 +11:26:26.362 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.570067 autohover=0 collectiveMode=3 +11:26:26.363 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:26:26.363 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=20 matched=1 +11:26:26.363 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:26:28.371 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=576 +11:26:28.371 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:28.371 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.09955 drift=3.75801 speed=2.41194 vertical=1.42297 up=0.999785 groundContact=0 fuel=1937.51 engine=1 +11:26:28.371 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.96899,1.14328,0.319149> +11:26:28.371 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0117928,0.246899,-0.19088> +11:26:28.371 SCRIPT : ERR POWERED MOTION: offset=<-1.73975,-2.09955,3.33105> velocity=<0.457559,1.42297,-1.89295> angularLocal=<0.064208,-0.0183448,0.0143774> forward=<0.0517852,0.0199527,0.998459> right=<0.998648,-0.00556906,-0.0516837> +11:26:28.372 SCRIPT : ERR POWERED INPUT: pilotHooks=576 vehicleHooks=576 readback=1 collective=0.164178 cyclicF=0.054353 cyclicR=-0.0273122 antiTorque=0.167709 rotorRPM=188.934 targetRPM=196 +11:26:28.372 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=576 applyCallbacks=923 beforeWriteSequence=575 writtenAgeMs=16.1133 beforeWriteAgeMs=29.6875 +11:26:28.372 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163687 beforeWriteCollective=0.164178 writtenFRA=<0.0520435,-0.026917,-0.00987073> beforeWriteFRA=<0.054353,-0.0273122,0.167709> writtenThrottle=0 beforeWriteThrottle=0 +11:26:28.372 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.164178 cyclicForward=0.054353 cyclicAside=-0.0273122 tailCollective=0.583854 autohover=0 collectiveMode=3 +11:26:28.880 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=585 +11:26:28.880 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:28.881 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.83562 drift=4.82501 speed=2.48332 vertical=1.53629 up=0.999891 groundContact=0 fuel=1937.51 engine=1 +11:26:28.881 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.51394,-0.841244,-0.0919916> +11:26:28.881 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0634664,0.2,0.149531> +11:26:28.881 SCRIPT : ERR POWERED MOTION: offset=<-1.97705,-2.83562,4.40137> velocity=<0.438025,1.53629,-1.90126> angularLocal=<0.0690995,-0.0129175,0.013378> forward=<0.0438578,-0.014682,0.99893> right=<0.999037,0.00160538,-0.0438389> +11:26:28.881 SCRIPT : ERR POWERED INPUT: pilotHooks=585 vehicleHooks=585 readback=1 collective=0.157839 cyclicF=0.0283609 cyclicR=-0.0228026 antiTorque=0.160202 rotorRPM=190.897 targetRPM=196 +11:26:28.881 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=585 applyCallbacks=939 beforeWriteSequence=585 writtenAgeMs=58.0625 beforeWriteAgeMs=11.6289 +11:26:28.882 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.157839 beforeWriteCollective=0.157839 writtenFRA=<0.0283609,-0.0228026,-0.00715348> beforeWriteFRA=<0.0283609,-0.0228026,0.160202> writtenThrottle=0 beforeWriteThrottle=0 +11:26:28.882 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.157839 cyclicForward=0.0283609 cyclicAside=-0.0228026 tailCollective=0.580509 autohover=0 collectiveMode=3 +11:26:29.380 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=595 +11:26:29.380 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:29.380 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.60324 drift=5.82302 speed=2.4113 vertical=1.62492 up=0.998772 groundContact=0 fuel=1937.46 engine=1 +11:26:29.380 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.21564,-2.80472,-0.443406> +11:26:29.381 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107653,0.154431,0.492511> +11:26:29.381 SCRIPT : ERR POWERED MOTION: offset=<-2.19238,-3.60324,5.39453> velocity=<0.394551,1.62492,-1.73733> angularLocal=<0.0671976,-0.009168,0.0119073> forward=<0.0386142,-0.048932,0.998055> right=<0.999237,0.00772955,-0.038281> +11:26:29.381 SCRIPT : ERR POWERED INPUT: pilotHooks=595 vehicleHooks=595 readback=1 collective=0.149487 cyclicF=0.000241332 cyclicR=-0.0179497 antiTorque=0.152026 rotorRPM=192.86 targetRPM=196 +11:26:29.381 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=595 applyCallbacks=954 beforeWriteSequence=595 writtenAgeMs=27.9023 beforeWriteAgeMs=12.3086 +11:26:29.382 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.149487 beforeWriteCollective=0.149487 writtenFRA=<0.000241332,-0.0179497,-0.0051172> beforeWriteFRA=<0.000241332,-0.0179497,0.152026> writtenThrottle=0 beforeWriteThrottle=0 +11:26:29.382 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.150512 cyclicForward=0.00325378 cyclicAside=-0.018475 tailCollective=0.576043 autohover=0 collectiveMode=3 +11:26:29.889 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=605 +11:26:29.890 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:29.890 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.42638 drift=6.70616 speed=2.21013 vertical=1.68217 up=0.996629 groundContact=0 fuel=1937.46 engine=1 +11:26:29.890 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.01094,-4.64622,-0.748491> +11:26:29.890 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.144439,0.0843501,0.813775> +11:26:29.891 SCRIPT : ERR POWERED MOTION: offset=<-2.38281,-4.42638,6.26855> velocity=<0.328753,1.68217,-1.39532> angularLocal=<0.0586358,-0.00659467,0.010025> forward=<0.0349749,-0.081003,0.9961> right=<0.999336,0.0130203,-0.0340297> +11:26:29.891 SCRIPT : ERR POWERED INPUT: pilotHooks=605 vehicleHooks=605 readback=1 collective=0.141368 cyclicF=-0.0257667 cyclicR=-0.0132132 antiTorque=0.14232 rotorRPM=194.888 targetRPM=196 +11:26:29.891 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=605 applyCallbacks=969 beforeWriteSequence=605 writtenAgeMs=35.9805 beforeWriteAgeMs=13.2617 +11:26:29.891 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.141368 beforeWriteCollective=0.141368 writtenFRA=<-0.0257667,-0.0132132,-0.00381891> beforeWriteFRA=<-0.0257667,-0.0132132,0.14232> writtenThrottle=0 beforeWriteThrottle=0 +11:26:29.892 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.142107 cyclicForward=-0.0234308 cyclicAside=-0.0136637 tailCollective=0.571323 autohover=0 collectiveMode=3 +11:26:30.395 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=615 +11:26:30.395 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:30.396 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.27228 drift=7.36711 speed=1.94448 vertical=1.6937 up=0.994091 groundContact=0 fuel=1937.42 engine=1 +11:26:30.396 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.86759,-6.15207,-0.995021> +11:26:30.396 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.17004,-0.0573492,1.05633> +11:26:30.396 SCRIPT : ERR POWERED MOTION: offset=<-2.53564,-5.27228,6.91699> velocity=<0.249454,1.6937,-0.922043> angularLocal=<0.0449076,-0.00510508,0.00796158> forward=<0.0324021,-0.107168,0.993713> right=<0.999379,0.0172655,-0.0307248> +11:26:30.396 SCRIPT : ERR POWERED INPUT: pilotHooks=615 vehicleHooks=615 readback=1 collective=0.134444 cyclicF=-0.0499954 cyclicR=-0.00832157 antiTorque=0.135833 rotorRPM=196 targetRPM=196 +11:26:30.397 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=615 applyCallbacks=984 beforeWriteSequence=615 writtenAgeMs=23.3516 beforeWriteAgeMs=23.3516 +11:26:30.397 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.134444 beforeWriteCollective=0.134444 writtenFRA=<-0.0499954,-0.00832157,-0.00278721> beforeWriteFRA=<-0.0499954,-0.00832157,0.135833> writtenThrottle=0 beforeWriteThrottle=0 +11:26:30.398 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134444 cyclicForward=-0.0499954 cyclicAside=-0.00832157 tailCollective=0.567916 autohover=0 collectiveMode=3 +11:26:30.901 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=624 +11:26:30.901 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:30.901 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.09685 drift=7.73586 speed=1.61682 vertical=1.5738 up=0.991955 groundContact=0 fuel=1937.42 engine=1 +11:26:30.902 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.76301,-7.17693,-1.17803> +11:26:30.902 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.181645,-0.497539,1.18032> +11:26:30.902 SCRIPT : ERR POWERED MOTION: offset=<-2.64258,-6.09685,7.27051> velocity=<0.157591,1.5738,-0.335316> angularLocal=<0.0263561,-0.00328961,0.00566434> forward=<0.0305244,-0.124934,0.991695> right=<0.999394,0.020398,-0.0281916> +11:26:30.903 SCRIPT : ERR POWERED INPUT: pilotHooks=624 vehicleHooks=624 readback=1 collective=0.111974 cyclicF=-0.0682217 cyclicR=-0.00387327 antiTorque=0.125549 rotorRPM=196 targetRPM=196 +11:26:30.903 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=624 applyCallbacks=999 beforeWriteSequence=624 writtenAgeMs=24.5508 beforeWriteAgeMs=24.5508 +11:26:30.903 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.111974 beforeWriteCollective=0.111974 writtenFRA=<-0.0682217,-0.00387327,-0.00223052> beforeWriteFRA=<-0.0682217,-0.00387327,0.125549> writtenThrottle=0 beforeWriteThrottle=0 +11:26:30.904 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.111974 cyclicForward=-0.0682217 cyclicAside=-0.00387327 tailCollective=0.562775 autohover=0 collectiveMode=3 +11:26:31.401 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=633 +11:26:31.402 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:31.402 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.81092 drift=7.78337 speed=1.32521 vertical=1.29508 up=0.990896 groundContact=0 fuel=1937.37 engine=1 +11:26:31.402 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.69319,-7.62809,-1.29797> +11:26:31.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.188716,-0.590601,1.23863> +11:26:31.402 SCRIPT : ERR POWERED MOTION: offset=<-2.70068,-6.81092,7.2998> velocity=<0.0647099,1.29508,0.273404> angularLocal=<0.00557183,-0.00233978,0.00343733> forward=<0.029286,-0.132742,0.990718> right=<0.999396,0.0224515,-0.0265343> +11:26:31.402 SCRIPT : ERR POWERED INPUT: pilotHooks=633 vehicleHooks=633 readback=1 collective=0.0887082 cyclicF=-0.0786296 cyclicR=-0.000104288 antiTorque=0.112102 rotorRPM=196 targetRPM=196 +11:26:31.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=633 applyCallbacks=1014 beforeWriteSequence=633 writtenAgeMs=63.7148 beforeWriteAgeMs=24.0508 +11:26:31.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0887082 beforeWriteCollective=0.0887082 writtenFRA=<-0.0786296,-0.000104288,-0.0018758> beforeWriteFRA=<-0.0786296,-0.000104288,0.112102> writtenThrottle=0 beforeWriteThrottle=0 +11:26:31.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0887082 cyclicForward=-0.0786296 cyclicAside=-0.000104288 tailCollective=0.556051 autohover=0 collectiveMode=3 +11:26:31.912 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=643 +11:26:31.912 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:31.912 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.39211 drift=7.4926 speed=1.33471 vertical=0.995656 up=0.991286 groundContact=0 fuel=1937.37 engine=1 +11:26:31.912 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.62945,-7.44772,-1.35662> +11:26:31.913 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.176412,-0.603865,1.20538> +11:26:31.913 SCRIPT : ERR POWERED MOTION: offset=<-2.70996,-7.39211,6.98535> velocity=<-0.0286096,0.995656,0.888424> angularLocal=<-0.0165667,-0.00174708,0.00130824> forward=<0.0281955,-0.129622,0.991163> right=<0.999403,0.0234756,-0.0253598> +11:26:31.913 SCRIPT : ERR POWERED INPUT: pilotHooks=643 vehicleHooks=643 readback=1 collective=0.0664181 cyclicF=-0.0823489 cyclicR=0.00379958 antiTorque=0.101633 rotorRPM=196 targetRPM=196 +11:26:31.913 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=643 applyCallbacks=1029 beforeWriteSequence=643 writtenAgeMs=46.3906 beforeWriteAgeMs=35.3633 +11:26:31.914 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0664181 beforeWriteCollective=0.0664181 writtenFRA=<-0.0823489,0.00379958,-0.00140586> beforeWriteFRA=<-0.0823489,0.00379958,0.101633> writtenThrottle=0 beforeWriteThrottle=0 +11:26:31.914 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0664181 cyclicForward=-0.0823489 cyclicAside=0.00379958 tailCollective=0.550816 autohover=0 collectiveMode=3 +11:26:32.423 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=653 +11:26:32.423 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:32.423 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.82837 drift=6.86978 speed=1.64963 vertical=0.71401 up=0.99306 groundContact=0 fuel=1937.33 engine=1 +11:26:32.424 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.56418,-6.61724,-1.35476> +11:26:32.424 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.173226,-0.490494,1.07952> +11:26:32.424 SCRIPT : ERR POWERED MOTION: offset=<-2.67139,-7.82837,6.3291> velocity=<-0.119207,0.71401,1.48232> angularLocal=<-0.0382406,-0.00130693,-0.000699656> forward=<0.0271148,-0.115236,0.992968> right=<0.999422,0.0234854,-0.0245655> +11:26:32.424 SCRIPT : ERR POWERED INPUT: pilotHooks=653 vehicleHooks=653 readback=1 collective=0.0464978 cyclicF=-0.0777482 cyclicR=0.00703334 antiTorque=0.0917073 rotorRPM=196 targetRPM=196 +11:26:32.424 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=653 applyCallbacks=1045 beforeWriteSequence=653 writtenAgeMs=11.875 beforeWriteAgeMs=11.875 +11:26:32.425 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0464978 beforeWriteCollective=0.0464978 writtenFRA=<-0.0777482,0.00703334,-0.000851666> beforeWriteFRA=<-0.0777482,0.00703334,0.0917073> writtenThrottle=0 beforeWriteThrottle=0 +11:26:32.425 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0485481 cyclicForward=-0.0786448 cyclicAside=0.00674385 tailCollective=0.546247 autohover=0 collectiveMode=3 +11:26:32.930 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=662 +11:26:32.931 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:32.931 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.14252 drift=5.9647 speed=2.04116 vertical=0.496385 up=0.995596 groundContact=0 fuel=1937.33 engine=1 +11:26:32.931 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.49988,-5.22038,-1.29983> +11:26:32.931 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.164166,-0.368378,0.863292> +11:26:32.931 SCRIPT : ERR POWERED MOTION: offset=<-2.58594,-8.14252,5.375> velocity=<-0.203639,0.496385,1.96938> angularLocal=<-0.0554902,-0.000862731,-0.00243219> forward=<0.0260664,-0.0909868,0.995511> right=<0.999454,0.0225903,-0.0241049> +11:26:32.932 SCRIPT : ERR POWERED INPUT: pilotHooks=662 vehicleHooks=662 readback=1 collective=0.0310579 cyclicF=-0.0682385 cyclicR=0.00956938 antiTorque=0.0836533 rotorRPM=196 targetRPM=196 +11:26:32.932 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=662 applyCallbacks=1060 beforeWriteSequence=662 writtenAgeMs=34.3047 beforeWriteAgeMs=22.7461 +11:26:32.932 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0310579 beforeWriteCollective=0.0310579 writtenFRA=<-0.0682385,0.00956938,-0.000387908> beforeWriteFRA=<-0.0682385,0.00956938,0.0836533> writtenThrottle=0 beforeWriteThrottle=0 +11:26:32.932 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0310579 cyclicForward=-0.0682385 cyclicAside=0.00956938 tailCollective=0.541827 autohover=0 collectiveMode=3 +11:26:33.431 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=671 +11:26:33.431 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:33.431 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.36369 drift=4.87682 speed=2.36931 vertical=0.338068 up=0.99799 groundContact=0 fuel=1937.28 engine=1 +11:26:33.431 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44353,-3.42906,-1.20168> +11:26:33.431 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.149796,-0.239986,0.572777> +11:26:33.432 SCRIPT : ERR POWERED MOTION: offset=<-2.45996,-8.36369,4.21094> velocity=<-0.282077,0.338068,2.32804> angularLocal=<-0.067571,-0.000424739,-0.00393821> forward=<0.0251466,-0.0598126,0.997893> right=<0.999494,0.0209342,-0.0239321> +11:26:33.432 SCRIPT : ERR POWERED INPUT: pilotHooks=671 vehicleHooks=671 readback=1 collective=0.0162614 cyclicF=-0.054675 cyclicR=0.0117305 antiTorque=0.0762458 rotorRPM=196 targetRPM=196 +11:26:33.432 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=671 applyCallbacks=1075 beforeWriteSequence=671 writtenAgeMs=45.6953 beforeWriteAgeMs=23.1992 +11:26:33.432 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0162614 beforeWriteCollective=0.0162614 writtenFRA=<-0.054675,0.0117305,3.63299e-05> beforeWriteFRA=<-0.054675,0.0117305,0.0762458> writtenThrottle=0 beforeWriteThrottle=0 +11:26:33.433 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0162614 cyclicForward=-0.054675 cyclicAside=0.0117305 tailCollective=0.538123 autohover=0 collectiveMode=3 +11:26:33.933 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=680 +11:26:33.933 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:33.933 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.52603 drift=3.69101 speed=2.56508 vertical=0.224421 up=0.999542 groundContact=0 fuel=1937.28 engine=1 +11:26:33.934 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.39939,-1.36845,-1.06558> +11:26:33.934 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.12858,-0.182818,0.218325> +11:26:33.934 SCRIPT : ERR POWERED MOTION: offset=<-2.29395,-8.52603,2.8916> velocity=<-0.353909,0.224421,2.53062> angularLocal=<-0.0739559,5.56103e-05,-0.00523365> forward=<0.0244145,-0.0238818,0.999417> right=<0.99954,0.0185915,-0.0239733> +11:26:33.934 SCRIPT : ERR POWERED INPUT: pilotHooks=680 vehicleHooks=680 readback=1 collective=0.000843883 cyclicF=-0.0374995 cyclicR=0.0132805 antiTorque=0.0674882 rotorRPM=196 targetRPM=196 +11:26:33.935 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=680 applyCallbacks=1090 beforeWriteSequence=680 writtenAgeMs=58.3867 beforeWriteAgeMs=22.6055 +11:26:33.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.000843883 beforeWriteCollective=0.000843883 writtenFRA=<-0.0374995,0.0132805,0.000371591> beforeWriteFRA=<-0.0374995,0.0132805,0.0674882> writtenThrottle=0 beforeWriteThrottle=0 +11:26:33.935 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.000843883 cyclicForward=-0.0374995 cyclicAside=0.0132805 tailCollective=0.533744 autohover=0 collectiveMode=3 +11:26:34.433 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=690 +11:26:34.434 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:34.434 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.65619 drift=2.59555 speed=2.58828 vertical=0.205284 up=0.999789 groundContact=0 fuel=1937.24 engine=1 +11:26:34.434 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.36316,0.756507,-0.90095> +11:26:34.434 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107406,0.0658214,-0.144467> +11:26:34.434 SCRIPT : ERR POWERED MOTION: offset=<-2.09717,-8.65619,1.5293> velocity=<-0.413036,0.205284,2.54685> angularLocal=<-0.0742285,2.23272e-05,-0.00621185> forward=<0.0237873,0.0132032,0.99963> right=<0.999588,0.0157225,-0.023994> +11:26:34.434 SCRIPT : ERR POWERED INPUT: pilotHooks=690 vehicleHooks=690 readback=1 collective=0 cyclicF=-0.0162177 cyclicR=0.0143534 antiTorque=0.0674124 rotorRPM=196 targetRPM=196 +11:26:34.435 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=690 applyCallbacks=1105 beforeWriteSequence=690 writtenAgeMs=33.3867 beforeWriteAgeMs=12.6719 +11:26:34.435 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0162177,0.0143534,0.000745643> beforeWriteFRA=<-0.0162177,0.0143534,0.0674124> writtenThrottle=0 beforeWriteThrottle=0 +11:26:34.435 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0183075 cyclicAside=0.0142809 tailCollective=0.533692 autohover=0 collectiveMode=3 +11:26:36.450 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=727 +11:26:36.451 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:36.451 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.36788 drift=2.85761 speed=1.14007 vertical=0.329753 up=0.992105 groundContact=0 fuel=1937.15 engine=1 +11:26:36.451 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.35752,7.20372,-0.083653> +11:26:36.451 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0139618,-0.0707155,-1.2384> +11:26:36.451 SCRIPT : ERR POWERED MOTION: offset=<-1.104,-9.36788,-2.63574> velocity=<-0.509037,0.329753,0.965354> angularLocal=<-0.0262283,0.000749158,-0.0070359> forward=<0.023504,0.125398,0.991828> right=<0.999714,0.0014485,-0.023874> +11:26:36.451 SCRIPT : ERR POWERED INPUT: pilotHooks=727 vehicleHooks=727 readback=1 collective=0 cyclicF=0.0665449 cyclicR=0.0121527 antiTorque=0.0672914 rotorRPM=196 targetRPM=196 +11:26:36.452 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=727 applyCallbacks=1165 beforeWriteSequence=727 writtenAgeMs=55.2539 beforeWriteAgeMs=33.7344 +11:26:36.452 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0665449,0.0121527,0.000624656> beforeWriteFRA=<0.0665449,0.0121527,0.0672914> writtenThrottle=0 beforeWriteThrottle=0 +11:26:36.452 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0665449 cyclicAside=0.0121527 tailCollective=0.533646 autohover=0 collectiveMode=3 +11:26:38.482 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=765 +11:26:38.482 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:38.482 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.74134 drift=1.90442 speed=1.52038 vertical=0.082464 up=0.995731 groundContact=0 fuel=1937.06 engine=1 +11:26:38.482 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.40318,5.2653,0.570364> +11:26:38.482 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.114251,-0.0522722,-0.895278> +11:26:38.483 SCRIPT : ERR POWERED MOTION: offset=<-0.150879,-9.74134,-1.89844> velocity=<-0.37006,0.082464,-1.47235> angularLocal=<0.0555945,0.000369597,-0.00366242> forward=<0.0243843,0.0917675,0.995482> right=<0.999673,-0.00991256,-0.0235732> +11:26:38.483 SCRIPT : ERR POWERED INPUT: pilotHooks=765 vehicleHooks=765 readback=1 collective=0 cyclicF=0.0677126 cyclicR=0.00368753 antiTorque=0.0669215 rotorRPM=196 targetRPM=196 +11:26:38.483 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=765 applyCallbacks=1226 beforeWriteSequence=765 writtenAgeMs=50.3789 beforeWriteAgeMs=24.9141 +11:26:38.483 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0677126,0.00368753,0.000254825> beforeWriteFRA=<0.0677126,0.00368753,0.0669215> writtenThrottle=0 beforeWriteThrottle=0 +11:26:38.484 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0677126 cyclicAside=0.00368753 tailCollective=0.533461 autohover=0 collectiveMode=3 +11:26:40.509 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=801 +11:26:40.510 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:40.510 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.89239 drift=2.37854 speed=1.93496 vertical=0.244674 up=0.998721 groundContact=0 fuel=1936.97 engine=1 +11:26:40.510 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.37402,-2.80632,0.722031> +11:26:40.510 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.148452,0.123412,0.487089> +11:26:40.510 SCRIPT : ERR POWERED MOTION: offset=<0.337402,-9.89239,2.35449> velocity=<-0.0900028,0.244674,-1.91732> angularLocal=<0.0677267,0.00081862,0.000923631> forward=<0.0239501,-0.0489599,0.998514> right=<0.999618,-0.0125864,-0.0245937> +11:26:40.510 SCRIPT : ERR POWERED INPUT: pilotHooks=801 vehicleHooks=801 readback=1 collective=0 cyclicF=-0.00877868 cyclicR=-0.00488643 antiTorque=0.0670836 rotorRPM=196 targetRPM=196 +11:26:40.511 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=31 writtenSequence=801 applyCallbacks=1287 beforeWriteSequence=801 writtenAgeMs=57.207 beforeWriteAgeMs=23.7383 +11:26:40.511 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.00877868,-0.00488643,0.000416842> beforeWriteFRA=<-0.00877868,-0.00488643,0.0670836> writtenThrottle=0 beforeWriteThrottle=0 +11:26:40.511 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.00877868 cyclicAside=-0.00488643 tailCollective=0.533542 autohover=0 collectiveMode=3 +11:26:42.517 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=839 +11:26:42.518 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:42.518 SCRIPT : ERR POWERED FLIGHT: stage=4 height=10.4165 drift=4.6433 speed=0.277593 vertical=0.227713 up=0.991775 groundContact=0 fuel=1936.88 engine=1 +11:26:42.518 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.40704,-7.34138,0.422769> +11:26:42.518 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0831976,-0.134417,1.24387> +11:26:42.519 SCRIPT : ERR POWERED MOTION: offset=<0.24707,-10.4165,4.63672> velocity=<0.146141,0.227713,0.0620296> angularLocal=<0.00295509,0.000471619,0.00362921> forward=<0.0243537,-0.127781,0.991503> right=<0.999648,-0.00731816,-0.0254969> +11:26:42.519 SCRIPT : ERR POWERED INPUT: pilotHooks=839 vehicleHooks=839 readback=1 collective=0 cyclicF=-0.0785644 cyclicR=-0.00771583 antiTorque=0.0668595 rotorRPM=196 targetRPM=196 +11:26:42.519 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=32 writtenSequence=839 applyCallbacks=1347 beforeWriteSequence=839 writtenAgeMs=23.4648 beforeWriteAgeMs=23.4648 +11:26:42.519 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0785644,-0.00771583,0.000192732> beforeWriteFRA=<-0.0785644,-0.00771583,0.0668595> writtenThrottle=0 beforeWriteThrottle=0 +11:26:42.519 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0785644 cyclicAside=-0.00771583 tailCollective=0.53343 autohover=0 collectiveMode=3 +11:26:44.542 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=875 +11:26:44.542 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:44.542 SCRIPT : ERR POWERED FLIGHT: stage=4 height=10.6857 drift=2.03078 speed=2.07321 vertical=0.0694621 up=0.998626 groundContact=0 fuel=1936.79 engine=1 +11:26:44.543 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44458,-3.0033,-0.0141877> +11:26:44.543 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0113046,0.0577654,0.511894> +11:26:44.543 SCRIPT : ERR POWERED MOTION: offset=<-0.183594,-10.6857,2.02246> velocity=<0.220586,0.0694621,2.06027> angularLocal=<-0.0672608,5.59552e-05,0.00343253> forward=<0.0251754,-0.0523934,0.998309> right=<0.999682,0.000247283,-0.0251971> +11:26:44.543 SCRIPT : ERR POWERED INPUT: pilotHooks=875 vehicleHooks=875 readback=1 collective=0 cyclicF=-0.0509112 cyclicR=-0.00556213 antiTorque=0.0666058 rotorRPM=196 targetRPM=196 +11:26:44.544 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=33 writtenSequence=875 applyCallbacks=1408 beforeWriteSequence=875 writtenAgeMs=58.6797 beforeWriteAgeMs=12.3828 +11:26:44.544 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0509112,-0.00556213,-6.08951e-05> beforeWriteFRA=<-0.0509112,-0.00556213,0.0666058> writtenThrottle=0 beforeWriteThrottle=0 +11:26:44.544 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0509112 cyclicAside=-0.00556213 tailCollective=0.533303 autohover=0 collectiveMode=3 +11:26:46.578 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=911 +11:26:46.578 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:46.579 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.1874 drift=2.59628 speed=1.68354 vertical=0.309507 up=0.996321 groundContact=0 fuel=1936.71 engine=1 +11:26:46.579 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.42355,4.90715,-0.304366> +11:26:46.579 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0868624,0.0643158,-0.853193> +11:26:46.579 SCRIPT : ERR POWERED MOTION: offset=<-0.560059,-11.1874,-2.53516> velocity=<0.110169,0.309507,1.65117> angularLocal=<-0.054291,8.0483e-05,0.00138442> forward=<0.0247521,0.0855413,0.996027> right=<0.999666,0.0052927,-0.0252971> +11:26:46.579 SCRIPT : ERR POWERED INPUT: pilotHooks=911 vehicleHooks=911 readback=1 collective=0 cyclicF=0.0352596 cyclicR=-0.000755338 antiTorque=0.0668071 rotorRPM=196 targetRPM=196 +11:26:46.580 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=34 writtenSequence=911 applyCallbacks=1469 beforeWriteSequence=911 writtenAgeMs=30.6328 beforeWriteAgeMs=18.7383 +11:26:46.580 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0352596,-0.000755338,0.000140421> beforeWriteFRA=<0.0352596,-0.000755338,0.0668071> writtenThrottle=0 beforeWriteThrottle=0 +11:26:46.580 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0329321 cyclicAside=-0.000878006 tailCollective=0.533401 autohover=0 collectiveMode=3 +11:26:48.595 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=948 +11:26:48.595 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:48.596 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.7736 drift=3.73377 speed=0.687417 vertical=0.159901 up=0.992497 groundContact=0 fuel=1936.62 engine=1 +11:26:48.596 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.42974,7.01536,-0.326081> +11:26:48.596 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0743084,-0.140746,-1.18779> +11:26:48.596 SCRIPT : ERR POWERED MOTION: offset=<-0.598145,-11.7736,-3.68555> velocity=<-0.0657659,0.159901,-0.665318> angularLocal=<0.0222739,0.000139192,-0.000787151> forward=<0.0247643,0.122135,0.992204> right=<0.999655,0.00564855,-0.0256456> +11:26:48.596 SCRIPT : ERR POWERED INPUT: pilotHooks=948 vehicleHooks=948 readback=1 collective=0 cyclicF=0.0798464 cyclicR=0.00262895 antiTorque=0.0667366 rotorRPM=196 targetRPM=196 +11:26:48.597 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=35 writtenSequence=948 applyCallbacks=1529 beforeWriteSequence=947 writtenAgeMs=11.3906 beforeWriteAgeMs=28.6875 +11:26:48.597 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0795117,0.00265223,6.46531e-05> beforeWriteFRA=<0.0798464,0.00262895,0.0667366> writtenThrottle=0 beforeWriteThrottle=0 +11:26:48.597 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0798464 cyclicAside=0.00262895 tailCollective=0.533368 autohover=0 collectiveMode=3 +11:26:50.617 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=984 +11:26:50.617 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:50.617 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.8612 drift=0.382491 speed=2.15524 vertical=0.130661 up=0.999928 groundContact=0 fuel=1936.53 engine=1 +11:26:50.617 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.45066,0.667896,-0.167584> +11:26:50.617 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0152054,0.122856,-0.103712> +11:26:50.618 SCRIPT : ERR POWERED MOTION: offset=<-0.334473,-11.8612,-0.185547> velocity=<-0.162922,0.130661,-2.1451> angularLocal=<0.072395,-0.000184049,-0.00170046> forward=<0.0253144,0.0116567,0.999612> right=<0.999674,0.00292469,-0.0253501> +11:26:50.618 SCRIPT : ERR POWERED INPUT: pilotHooks=984 vehicleHooks=984 readback=1 collective=0 cyclicF=0.0286431 cyclicR=0.00345451 antiTorque=0.0666175 rotorRPM=196 targetRPM=196 +11:26:50.618 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=36 writtenSequence=984 applyCallbacks=1590 beforeWriteSequence=984 writtenAgeMs=56.9766 beforeWriteAgeMs=11.5273 +11:26:50.618 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0286431,0.00345451,-4.92099e-05> beforeWriteFRA=<0.0286431,0.00345451,0.0666175> writtenThrottle=0 beforeWriteThrottle=0 +11:26:50.618 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0286431 cyclicAside=0.00345451 tailCollective=0.533309 autohover=0 collectiveMode=3 +11:26:52.639 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1022 +11:26:52.639 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:52.639 SCRIPT : ERR POWERED FLIGHT: stage=4 height=12.286 drift=3.69629 speed=1.0637 vertical=0.3111 up=0.993932 groundContact=0 fuel=1936.44 engine=1 +11:26:52.639 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44274,-6.31481,0.0260814> +11:26:52.639 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0474407,-0.0290734,1.08496> +11:26:52.640 SCRIPT : ERR POWERED MOTION: offset=<-0.000488281,-12.286,3.69629> velocity=<-0.124504,0.3111,-1.00954> angularLocal=<0.0360687,-7.1496e-05,-0.00144928> forward=<0.0250251,-0.109991,0.993617> right=<0.999682,-0.000452444,-0.0252279> +11:26:52.640 SCRIPT : ERR POWERED INPUT: pilotHooks=1022 vehicleHooks=1022 readback=1 collective=0 cyclicF=-0.0569586 cyclicR=0.00216583 antiTorque=0.0666621 rotorRPM=196 targetRPM=196 +11:26:52.640 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=37 writtenSequence=1022 applyCallbacks=1650 beforeWriteSequence=1022 writtenAgeMs=33.5938 beforeWriteAgeMs=33.5938 +11:26:52.640 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0569586,0.00216583,-4.62043e-06> beforeWriteFRA=<-0.0569586,0.00216583,0.0666621> writtenThrottle=0 beforeWriteThrottle=0 +11:26:52.641 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0569586 cyclicAside=0.00216583 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:26:54.650 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1059 +11:26:54.651 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:54.651 SCRIPT : ERR POWERED FLIGHT: stage=4 height=12.7106 drift=3.28511 speed=1.32146 vertical=0.0916998 up=0.99487 groundContact=0 fuel=1936.35 engine=1 +11:26:54.651 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44313,-5.80462,0.137242> +11:26:54.652 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0587391,-0.0843175,0.98681> +11:26:54.652 SCRIPT : ERR POWERED MOTION: offset=<0.137695,-12.7106,3.28223> velocity=<-0.00808967,0.0916998,1.31825> angularLocal=<-0.0438092,-4.57002e-06,-0.000445364> forward=<0.0250555,-0.101137,0.994557> right=<0.999674,-0.00238303,-0.0254268> +11:26:54.652 SCRIPT : ERR POWERED INPUT: pilotHooks=1059 vehicleHooks=1059 readback=1 collective=0 cyclicF=-0.0714712 cyclicR=-5.01706e-05 antiTorque=0.0666396 rotorRPM=196 targetRPM=196 +11:26:54.652 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=38 writtenSequence=1059 applyCallbacks=1711 beforeWriteSequence=1059 writtenAgeMs=13.9688 beforeWriteAgeMs=13.9688 +11:26:54.653 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0714712,-5.01706e-05,-2.71522e-05> beforeWriteFRA=<-0.0714712,-5.01706e-05,0.0666396> writtenThrottle=0 beforeWriteThrottle=0 +11:26:54.653 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.072435 cyclicAside=2.28249e-05 tailCollective=0.533321 autohover=0 collectiveMode=3 +11:26:56.671 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1095 +11:26:56.671 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:56.671 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.0247 drift=0.953528 speed=2.10722 vertical=0.209173 up=0.999563 groundContact=0 fuel=1936.26 engine=1 +11:26:56.672 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.456,1.68868,0.125925> +11:26:56.672 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00648513,0.138883,-0.303297> +11:26:56.672 SCRIPT : ERR POWERED MOTION: offset=<0.0512695,-13.0247,-0.952148> velocity=<0.0662714,0.209173,2.09577> angularLocal=<-0.0695015,-0.000101466,0.000504093> forward=<0.0253982,0.0294688,0.999243> right=<0.999676,-0.00219685,-0.0253444> +11:26:56.672 SCRIPT : ERR POWERED INPUT: pilotHooks=1095 vehicleHooks=1095 readback=1 collective=0 cyclicF=-0.00526942 cyclicR=-0.00130074 antiTorque=0.0665404 rotorRPM=196 targetRPM=196 +11:26:56.672 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=39 writtenSequence=1095 applyCallbacks=1771 beforeWriteSequence=1094 writtenAgeMs=12.6719 beforeWriteAgeMs=28.4922 +11:26:56.673 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.00247639,-0.00130234,-0.000127276> beforeWriteFRA=<-0.00526942,-0.00130074,0.0665404> writtenThrottle=0 beforeWriteThrottle=0 +11:26:56.673 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.00526942 cyclicAside=-0.00130074 tailCollective=0.53327 autohover=0 collectiveMode=3 +11:26:58.696 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1133 +11:26:58.696 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:58.696 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.694 drift=3.94199 speed=0.457436 vertical=0.271912 up=0.99235 groundContact=0 fuel=1936.17 engine=1 +11:26:58.696 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.45071,7.09137,0.0538016> +11:26:58.696 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0304288,-0.104712,-1.20832> +11:26:58.697 SCRIPT : ERR POWERED MOTION: offset=<-0.0678711,-13.694,-3.94141> velocity=<0.0367551,0.271912,0.366006> angularLocal=<-0.0144154,-0.00011921,0.000641472> forward=<0.0251233,0.123452,0.992032> right=<0.999682,-0.000931831,-0.025201> +11:26:58.697 SCRIPT : ERR POWERED INPUT: pilotHooks=1133 vehicleHooks=1133 readback=1 collective=0 cyclicF=0.0724658 cyclicR=-0.00112211 antiTorque=0.066597 rotorRPM=196 targetRPM=196 +11:26:58.697 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=40 writtenSequence=1133 applyCallbacks=1832 beforeWriteSequence=1133 writtenAgeMs=15.6016 beforeWriteAgeMs=15.6016 +11:26:58.697 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0724658,-0.00112211,-6.97512e-05> beforeWriteFRA=<0.0724658,-0.00112211,0.066597> writtenThrottle=0 beforeWriteThrottle=0 +11:26:58.697 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0713309 cyclicAside=-0.00114273 tailCollective=0.533297 autohover=0 collectiveMode=3 +11:27:00.731 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1171 +11:27:00.731 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:00.731 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.9411 drift=2.12916 speed=1.79424 vertical=0.07216 up=0.997649 groundContact=0 fuel=1936.08 engine=1 +11:27:00.731 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.4425,3.92976,-0.00832296> +11:27:00.731 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0264369,0.0080122,-0.672154> +11:27:00.732 SCRIPT : ERR POWERED MOTION: offset=<-0.0722656,-13.9411,-2.12793> velocity=<-0.0286226,0.07216,-1.79256> angularLocal=<0.0606457,-2.58879e-05,0.000365214> forward=<0.0251144,0.0685336,0.997333> right=<0.999683,0.000144921,-0.0251836> +11:27:00.732 SCRIPT : ERR POWERED INPUT: pilotHooks=1171 vehicleHooks=1171 readback=1 collective=0 cyclicF=0.0562463 cyclicR=-0.00038257 antiTorque=0.0666515 rotorRPM=196 targetRPM=196 +11:27:00.732 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=41 writtenSequence=1171 applyCallbacks=1893 beforeWriteSequence=1171 writtenAgeMs=12.5234 beforeWriteAgeMs=12.5234 +11:27:00.732 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0562463,-0.00038257,-1.52215e-05> beforeWriteFRA=<0.0562463,-0.00038257,0.0666515> writtenThrottle=0 beforeWriteThrottle=0 +11:27:00.733 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0576131 cyclicAside=-0.000398805 tailCollective=0.533326 autohover=0 collectiveMode=3 +11:27:02.752 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1207 +11:27:02.752 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:02.753 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.1621 drift=2.26099 speed=1.78732 vertical=0.280383 up=0.997695 groundContact=0 fuel=1936 engine=1 +11:27:02.753 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44248,-3.89065,-0.0265966> +11:27:02.753 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0192071,0.0930083,0.682125> +11:27:02.753 SCRIPT : ERR POWERED MOTION: offset=<0.0332031,-14.1621,2.26074> velocity=<-0.044582,0.280383,-1.76462> angularLocal=<0.059296,-2.99598e-05,-2.69292e-05> forward=<0.0251154,-0.0678526,0.997379> right=<0.999684,0.000463129,-0.0251419> +11:27:02.753 SCRIPT : ERR POWERED INPUT: pilotHooks=1207 vehicleHooks=1207 readback=1 collective=0 cyclicF=-0.0221638 cyclicR=0.00019329 antiTorque=0.0666529 rotorRPM=196 targetRPM=196 +11:27:02.754 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=42 writtenSequence=1207 applyCallbacks=1953 beforeWriteSequence=1207 writtenAgeMs=49.3594 beforeWriteAgeMs=37.1484 +11:27:02.754 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0221638,0.00019329,-1.38329e-05> beforeWriteFRA=<-0.0221638,0.00019329,0.0666529> writtenThrottle=0 beforeWriteThrottle=0 +11:27:02.754 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0221638 cyclicAside=0.00019329 tailCollective=0.533326 autohover=0 collectiveMode=3 +11:27:04.782 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1245 +11:27:04.783 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:04.783 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.6955 drift=3.945 speed=0.421523 vertical=0.194241 up=0.992407 groundContact=0 fuel=1935.91 engine=1 +11:27:04.783 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44112,-7.06529,-0.0207559> +11:27:04.783 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0332213,-0.13704,1.19748> +11:27:04.783 SCRIPT : ERR POWERED MOTION: offset=<0.0722656,-14.6955,3.94434> velocity=<0.00932437,0.194241,0.373986> angularLocal=<-0.0107139,-1.39111e-05,-4.36094e-05> forward=<0.0249586,-0.123,0.992093> right=<0.999685,0.000359508,-0.025105> +11:27:04.783 SCRIPT : ERR POWERED INPUT: pilotHooks=1245 vehicleHooks=1245 readback=1 collective=0 cyclicF=-0.0781857 cyclicR=6.54377e-05 antiTorque=0.0666616 rotorRPM=196 targetRPM=196 +11:27:04.784 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=43 writtenSequence=1245 applyCallbacks=2014 beforeWriteSequence=1245 writtenAgeMs=29.2656 beforeWriteAgeMs=29.2656 +11:27:04.784 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0781857,6.54377e-05,-5.11496e-06> beforeWriteFRA=<-0.0781857,6.54377e-05,0.0666616> writtenThrottle=0 beforeWriteThrottle=0 +11:27:04.784 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0781857 cyclicAside=6.54377e-05 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:27:06.803 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1281 +11:27:06.803 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:06.803 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.9681 drift=0.893589 speed=2.07067 vertical=0.107028 up=0.999582 groundContact=0 fuel=1935.82 engine=1 +11:27:06.803 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43889,-1.65715,-0.0166892> +11:27:06.804 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0107004,0.0938567,0.276689> +11:27:06.804 SCRIPT : ERR POWERED MOTION: offset=<-0.0078125,-14.9681,0.893555> velocity=<0.0518637,0.107028,2.06725> angularLocal=<-0.0693544,5.35708e-06,-2.31072e-05> forward=<0.0251003,-0.0289187,0.999267> right=<0.999685,0.00029116,-0.0251023> +11:27:06.804 SCRIPT : ERR POWERED INPUT: pilotHooks=1281 vehicleHooks=1281 readback=1 collective=0 cyclicF=-0.0367019 cyclicR=9.56036e-06 antiTorque=0.066678 rotorRPM=196 targetRPM=196 +11:27:06.804 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=44 writtenSequence=1281 applyCallbacks=2075 beforeWriteSequence=1281 writtenAgeMs=38.625 beforeWriteAgeMs=11.7891 +11:27:06.805 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0367019,9.56036e-06,1.13196e-05> beforeWriteFRA=<-0.0367019,9.56036e-06,0.066678> writtenThrottle=0 beforeWriteThrottle=0 +11:27:06.805 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0388868 cyclicAside=1.19481e-05 tailCollective=0.533339 autohover=0 collectiveMode=3 +11:27:08.817 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1319 +11:27:08.817 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:08.817 SCRIPT : ERR POWERED FLIGHT: stage=4 height=15.5335 drift=3.17689 speed=1.29807 vertical=0.310332 up=0.995218 groundContact=0 fuel=1935.73 engine=1 +11:27:08.818 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43829,5.60562,-0.0160247> +11:27:08.818 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0204834,0.0109059,-0.970201> +11:27:08.818 SCRIPT : ERR POWERED MOTION: offset=<-0.115234,-15.5335,-3.1748> velocity=<0.0316297,0.310332,1.26003> angularLocal=<-0.0435127,1.66167e-05,4.26336e-06> forward=<0.0249802,0.0976804,0.994904> right=<0.999684,0.000278346,-0.0251275> +11:27:08.818 SCRIPT : ERR POWERED INPUT: pilotHooks=1319 vehicleHooks=1319 readback=1 collective=0 cyclicF=0.0474357 cyclicR=3.57318e-06 antiTorque=0.066681 rotorRPM=196 targetRPM=196 +11:27:08.818 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=45 writtenSequence=1319 applyCallbacks=2135 beforeWriteSequence=1319 writtenAgeMs=22.0938 beforeWriteAgeMs=22.0938 +11:27:08.819 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0474357,3.57318e-06,1.42661e-05> beforeWriteFRA=<0.0474357,3.57318e-06,0.066681> writtenThrottle=0 beforeWriteThrottle=0 +11:27:08.819 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0474357 cyclicAside=3.57318e-06 tailCollective=0.533341 autohover=0 collectiveMode=3 +11:27:10.835 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1356 +11:27:10.835 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:10.835 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.0203 drift=3.42792 speed=1.0471 vertical=0.1201 up=0.994078 groundContact=0 fuel=1935.64 engine=1 +11:27:10.835 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43976,6.23839,-0.0162263> +11:27:10.835 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0226352,-0.107261,-1.05508> +11:27:10.836 SCRIPT : ERR POWERED MOTION: offset=<-0.121094,-16.0203,-3.42578> velocity=<-0.0262714,0.1201,-1.03986> angularLocal=<0.0345482,6.50157e-06,2.88954e-06> forward=<0.0249771,0.108665,0.993765> right=<0.999683,0.000281526,-0.0251566> +11:27:10.836 SCRIPT : ERR POWERED INPUT: pilotHooks=1356 vehicleHooks=1356 readback=1 collective=0 cyclicF=0.0746276 cyclicR=1.01434e-05 antiTorque=0.0666696 rotorRPM=196 targetRPM=196 +11:27:10.836 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=46 writtenSequence=1356 applyCallbacks=2196 beforeWriteSequence=1356 writtenAgeMs=56.1172 beforeWriteAgeMs=12.2969 +11:27:10.836 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0746276,1.01434e-05,2.85979e-06> beforeWriteFRA=<0.0746276,1.01434e-05,0.0666696> writtenThrottle=0 beforeWriteThrottle=0 +11:27:10.837 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0746276 cyclicAside=1.01434e-05 tailCollective=0.533335 autohover=0 collectiveMode=3 +11:27:12.850 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1394 +11:27:12.850 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:12.851 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.1214 drift=0.435963 speed=2.10004 vertical=0.176019 up=0.999934 groundContact=0 fuel=1935.55 engine=1 +11:27:12.851 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.4412,-0.658209,-0.0162641> +11:27:12.851 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00696167,0.132152,0.124826> +11:27:12.851 SCRIPT : ERR POWERED MOTION: offset=<-0.019043,-16.1214,0.435547> velocity=<-0.0527285,0.176019,-2.09199> angularLocal=<0.0698272,-1.3021e-05,-6.22612e-06> forward=<0.0251494,-0.0114877,0.999618> right=<0.999684,0.000283844,-0.0251478> +11:27:12.851 SCRIPT : ERR POWERED INPUT: pilotHooks=1394 vehicleHooks=1394 readback=1 collective=0 cyclicF=0.0131469 cyclicR=2.6584e-05 antiTorque=0.0666607 rotorRPM=196 targetRPM=196 +11:27:12.852 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=47 writtenSequence=1394 applyCallbacks=2256 beforeWriteSequence=1394 writtenAgeMs=21.9844 beforeWriteAgeMs=21.9844 +11:27:12.852 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0131469,2.6584e-05,-6.00937e-06> beforeWriteFRA=<0.0131469,2.6584e-05,0.0666607> writtenThrottle=0 beforeWriteThrottle=0 +11:27:12.852 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0131469 cyclicAside=2.6584e-05 tailCollective=0.53333 autohover=0 collectiveMode=3 +11:27:14.862 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1430 +11:27:14.862 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:14.862 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.6005 drift=3.77117 speed=0.717035 vertical=0.291095 up=0.993232 groundContact=0 fuel=1935.46 engine=1 +11:27:14.863 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44115,-6.66984,-0.0145814> +11:27:14.863 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0195332,-0.0701183,1.13977> +11:27:14.863 SCRIPT : ERR POWERED MOTION: offset=<0.0708008,-16.6005,3.77051> velocity=<-0.0166265,0.291095,-0.655077> angularLocal=<0.0243317,-1.29213e-05,-1.4613e-05> forward=<0.0249799,-0.116148,0.992918> right=<0.999684,0.00025277,-0.0251205> +11:27:14.863 SCRIPT : ERR POWERED INPUT: pilotHooks=1430 vehicleHooks=1430 readback=1 collective=0 cyclicF=-0.0648029 cyclicR=2.87373e-05 antiTorque=0.0666611 rotorRPM=196 targetRPM=196 +11:27:14.864 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=48 writtenSequence=1430 applyCallbacks=2316 beforeWriteSequence=1430 writtenAgeMs=44.7812 beforeWriteAgeMs=34.6562 +11:27:14.864 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0648029,2.87373e-05,-5.64014e-06> beforeWriteFRA=<-0.0648029,2.87373e-05,0.0666611> writtenThrottle=0 beforeWriteThrottle=0 +11:27:14.864 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0648029 cyclicAside=2.87373e-05 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:27:16.873 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1468 +11:27:16.874 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:16.874 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.9745 drift=2.62435 speed=1.56389 vertical=0.0803206 up=0.99654 groundContact=0 fuel=1935.37 engine=1 +11:27:16.874 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43987,-4.76785,-0.0132604> +11:27:16.874 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0114671,-0.0346059,0.810814> +11:27:16.874 SCRIPT : ERR POWERED MOTION: offset=<0.0415039,-16.9745,2.62402> velocity=<0.0391109,0.0803206,1.56134> angularLocal=<-0.0527273,-1.67858e-06,-6.64045e-06> forward=<0.0250409,-0.0831187,0.996225> right=<0.999685,0.000230637,-0.0251086> +11:27:16.874 SCRIPT : ERR POWERED INPUT: pilotHooks=1468 vehicleHooks=1468 readback=1 collective=0 cyclicF=-0.0641359 cyclicR=1.12325e-05 antiTorque=0.0666701 rotorRPM=196 targetRPM=196 +11:27:16.875 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=49 writtenSequence=1468 applyCallbacks=2376 beforeWriteSequence=1467 writtenAgeMs=20.4062 beforeWriteAgeMs=41.6875 +11:27:16.875 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0628455,1.27633e-05,3.74205e-06> beforeWriteFRA=<-0.0641359,1.12325e-05,0.0666701> writtenThrottle=0 beforeWriteThrottle=0 +11:27:16.875 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0641359 cyclicAside=1.12325e-05 tailCollective=0.533335 autohover=0 collectiveMode=3 +11:27:18.902 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1505 +11:27:18.902 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:18.902 SCRIPT : ERR POWERED FLIGHT: stage=4 height=17.3558 drift=1.67177 speed=1.91362 vertical=0.25012 up=0.998739 groundContact=0 fuel=1935.28 engine=1 +11:27:18.902 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43871,2.87773,-0.0129279> +11:27:18.903 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.00838905,0.115446,-0.509012> +11:27:18.903 SCRIPT : ERR POWERED MOTION: offset=<-0.0786133,-17.3558,-1.66992> velocity=<0.0476524,0.25012,1.8966> angularLocal=<-0.0636593,1.04061e-05,8.7237e-06> forward=<0.025076,0.0502047,0.998424> right=<0.999684,0.00022535,-0.025119> +11:27:18.903 SCRIPT : ERR POWERED INPUT: pilotHooks=1505 vehicleHooks=1505 readback=1 collective=0 cyclicF=0.0105368 cyclicR=-4.18069e-05 antiTorque=0.0666785 rotorRPM=196 targetRPM=196 +11:27:18.903 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=50 writtenSequence=1505 applyCallbacks=2436 beforeWriteSequence=1505 writtenAgeMs=52.6953 beforeWriteAgeMs=29.2969 +11:27:18.904 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0105368,-4.18069e-05,1.17582e-05> beforeWriteFRA=<0.0105368,-4.18069e-05,0.0666785> writtenThrottle=0 beforeWriteThrottle=0 +11:27:18.904 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0105368 cyclicAside=-4.18069e-05 tailCollective=0.533339 autohover=0 collectiveMode=3 +11:27:20.922 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1543 +11:27:20.922 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:20.922 SCRIPT : ERR POWERED FLIGHT: stage=4 height=18.0018 drift=3.91825 speed=0.234934 vertical=0.229675 up=0.992441 groundContact=0 fuel=1935.2 engine=1 +11:27:20.923 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43919,7.04933,-0.0142789> +11:27:20.923 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0391303,-0.125379,-1.19654> +11:27:20.923 SCRIPT : ERR POWERED MOTION: offset=<-0.132324,-18.0018,-3.91602> velocity=<-0.00141837,0.229675,-0.0494127> angularLocal=<-0.000628558,1.22458e-05,9.05577e-06> forward=<0.0249261,0.122724,0.992128> right=<0.999684,0.00024733,-0.0251465> +11:27:20.923 SCRIPT : ERR POWERED INPUT: pilotHooks=1543 vehicleHooks=1543 readback=1 collective=0 cyclicF=0.0758206 cyclicR=-1.05964e-05 antiTorque=0.0666733 rotorRPM=196 targetRPM=196 +11:27:20.923 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=51 writtenSequence=1543 applyCallbacks=2497 beforeWriteSequence=1543 writtenAgeMs=12.1797 beforeWriteAgeMs=12.1797 +11:27:20.924 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0758206,-1.05964e-05,6.58474e-06> beforeWriteFRA=<0.0758206,-1.05964e-05,0.0666733> writtenThrottle=0 beforeWriteThrottle=0 +11:27:20.924 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.075285 cyclicAside=-1.07496e-05 tailCollective=0.533337 autohover=0 collectiveMode=3 +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/error.log.txt b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/error.log.txt new file mode 100644 index 0000000..2859cd1 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02\error.log started at 2026-09-19 11:25:04 (2026-09-19 09:25:04 UTC) + +11:25:04.359 INIT : Workbench startup +11:25:04.359 INIT : Workbench Init Engine +11:25:04.359 RESOURCES : ResourceDB: full scan +11:25:04.359 RESOURCES : processing files... +11:25:04.359 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:25:04.359 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:25:04.359 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:25:07.725 INIT : Workbench Create Game +11:25:07.725 SCRIPT : Compiling Game scripts +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:25:07.887 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:07.998 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:25:08.029 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:25:08.159 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:25:08.222 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:25:08.289 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.322 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:25:16.966 WORLD : CreateEntities +11:25:16.967 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:25:16.967 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:25:16.967 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:25:32.197 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:25:36.963 WORLD : Game::LoadEntities +11:25:36.963 WORLD : CreateEntities +11:25:36.963 WORLD : CreateEntities +11:25:36.963 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:25:36.963 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:25:36.963 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:25:38.422 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:25:38.422 ENTITY : CreateComponent 'Hierarchy' +11:25:38.422 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:25:38.422 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:25:38.422 ENTITY : CreateComponent 'Hierarchy' +11:25:38.422 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:25:38.423 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:25:38.423 ENTITY : CreateComponent 'Hierarchy' +11:25:38.423 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:25:38.428 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:25:38.428 ENTITY : CreateComponent 'Hierarchy' +11:25:38.428 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:25:38.432 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:25:38.432 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:25:38.433 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:25:38.433 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:25:38.433 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:25:38.433 ENTITY : CreateComponent 'Hierarchy' +11:25:38.433 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:25:45.393 WORLD : InitEntities 'world' +11:25:45.393 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:25:45.393 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:25:45.932 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.932 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:25:45.933 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.933 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! +11:25:45.933 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! +11:25:45.935 SCRIPT (W): Can't open config file "" +11:25:45.942 WORLD : InitEntities 'world' +11:25:45.942 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:25:45.942 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:25:45.942 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:25:45.943 SCRIPT (W): Slot_Chat Has no Content! +11:25:45.943 SCRIPT (W): Slot_VON Has no Content! +11:25:45.943 SCRIPT (W): Slot_AvailableActions Has no Content! +11:25:45.943 SCRIPT (W): Slot_Vehicle Has no Content! +11:25:45.943 SCRIPT (W): Slot_GameVersion Has no Content! +11:25:45.943 SCRIPT (W): Slot_Notifications Has no Content! +11:25:45.943 SCRIPT (W): Slot_Hints Has no Content! +11:25:45.955 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:25:45.955 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:25:45.955 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:25:45.956 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. +11:25:45.956 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. +11:25:45.960 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:25:46.222 WORLD : UpdateEntities +11:25:46.222 WORLD : PostFrame +11:25:46.222 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:25:46.222 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:25:46.266 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:25:46.266 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:25:46.266 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:25:46.266 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:25:48.677 WORLD : UpdateEntities +11:25:48.677 WORLD : AfterPostSimulate +11:25:48.677 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:26:15.446 WORLD : UpdateEntities +11:26:15.446 WORLD : AfterPostSimulate +11:26:15.446 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/headless-launch.log.txt new file mode 100644 index 0000000..859f52a --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 148 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555563c79070 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555563c79070 +[Gamescope WSI] Destroyed swapchain: 0x555563c79070 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555563c9ea70 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x555563c9ea70 +[Gamescope WSI] Destroyed swapchain: 0x555563c9ea70 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555563c9ea70 - imageCount: 4 +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source-sha256.json new file mode 100644 index 0000000..615ef24 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "2911606c5541a593198eeb487c094741e8ae547677416dbbc4bb4d6f11c91c21", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source.json b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source.json new file mode 100644 index 0000000..08bc70a --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "64a1abc2-1593-460a-be54-e3e12c9ea297", + "captured_unix": 1789809900.9778936, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37" +} diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/report.json b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/report.json new file mode 100644 index 0000000..c8536fc --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-112502-flight-height-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 71, + "script_or_runtime_failures": [ + "11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope", + "11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/runner.json.txt new file mode 100644 index 0000000..723b550 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789810042.3889472, + "console_sha256": "3d91447625f4fc5f72348fb2640870a8619817eb3a712090e2289895118c7bd5", + "end_source_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "64a1abc2-1593-460a-be54-e3e12c9ea297", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "05c4c98effd6c9e7bd85454c9a0a2365cd8de637a4cbefd1ba1e290a6f6edc37", + "started_unix": 1789809900.977961, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-25-02", + "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/native-2026-09-19-112502-flight-height-refusal/script.log.txt b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/script.log.txt new file mode 100644 index 0000000..9221c37 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/script.log.txt @@ -0,0 +1,830 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-25-02\script.log started at 2026-09-19 11:25:05 (2026-09-19 09:25:05 UTC) + +11:25:05.550 SCRIPT : SCRIPT : Initializing scripts +11:25:05.550 SCRIPT : SCRIPT : ScriptProjectManager init +11:25:06.496 SCRIPT : SCRIPT : Compiling GameLib scripts +11:25:06.556 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:25:06.557 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:25:06.557 SCRIPT : SCRIPT : Compiling Game scripts +11:25:07.725 SCRIPT : Compiling Game scripts +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:25:07.725 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:25:07.887 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:07.998 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:25:08.029 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:25:08.128 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:25:08.159 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:25:08.221 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:25:08.222 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.262 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:25:08.264 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:25:08.289 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:25:08.322 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:25:08.584 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:25:08.591 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33012K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: c9afb333 +11:25:09.531 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:25:09.531 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:25:28.890 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:25:32.193 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:25:32.193 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:25:45.393 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:25:45.422 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:25:45.933 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! +11:25:45.933 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! +11:25:45.935 SCRIPT (W): Can't open config file "" +11:25:45.942 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:25:45.943 SCRIPT (W): Slot_Chat Has no Content! +11:25:45.943 SCRIPT (W): Slot_VON Has no Content! +11:25:45.943 SCRIPT (W): Slot_AvailableActions Has no Content! +11:25:45.943 SCRIPT (W): Slot_Vehicle Has no Content! +11:25:45.943 SCRIPT (W): Slot_GameVersion Has no Content! +11:25:45.943 SCRIPT (W): Slot_Notifications Has no Content! +11:25:45.943 SCRIPT (W): Slot_Hints Has no Content! +11:25:45.956 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. +11:25:45.956 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. +11:25:45.960 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:25:46.018 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:25:46.032 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:25:46.222 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:25:47.745 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:25:47.765 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:25:47.766 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:25:47.794 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:25:47.797 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:25:47.847 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:25:47.847 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:25:47.853 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:25:47.902 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:25:47.903 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:25:47.905 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:25:47.905 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:25:47.909 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:25:47.910 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:25:47.910 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:25:47.912 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:25:47.912 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:25:47.912 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:25:47.912 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:25:47.912 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:25:47.913 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.913 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:25:47.913 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.913 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:25:47.913 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:25:47.914 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.914 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:47.915 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.748 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:48.749 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.003 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.532,7499.7> up=0.99568 +11:25:49.003 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315906 angularSpeed=0.0413675 +11:25:49.003 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:49.003 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6173,7501.97> +11:25:49.003 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3173,7501.97> terrainY=63.3165 tireTerrainGap=0.000881195 +11:25:49.003 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6173,7501.97> radius=0.3 bottom=<7012.07,63.3173,7501.97> fraction=0.458824 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00094223 +11:25:49.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6043,7497.71> +11:25:49.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1543,7497.71> terrainY=64.1555 tireTerrainGap=-0.00117493 +11:25:49.004 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6043,7497.71> radius=0.45 bottom=<7009.88,64.1543,7497.71> fraction=0.449243 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.0011673 +11:25:49.004 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2651,7497.74> +11:25:49.004 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8151,7497.74> terrainY=63.8179 tireTerrainGap=-0.00284195 +11:25:49.004 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2651,7497.74> radius=0.45 bottom=<7014.42,63.8151,7497.74> fraction=0.441667 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00283432 +11:25:49.005 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:49.259 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.259 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.260 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.260 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:25:49.769 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:49.769 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:49.770 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.100 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5344,7499.71> up=0.994329 +11:25:50.100 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0954449 angularSpeed=0.027426 +11:25:50.101 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:50.101 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6207,7501.98> +11:25:50.101 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3207,7501.98> terrainY=63.3146 tireTerrainGap=0.00602341 +11:25:50.101 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6207,7501.98> radius=0.3 bottom=<7012.07,63.3207,7501.98> fraction=0.482353 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00611877 +11:25:50.101 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6029,7497.71> +11:25:50.102 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1529,7497.71> terrainY=64.1491 tireTerrainGap=0.00379181 +11:25:50.102 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6029,7497.71> radius=0.45 bottom=<7009.93,64.1529,7497.71> fraction=0.471677 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00376892 +11:25:50.102 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2658,7497.78> +11:25:50.102 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8158,7497.78> terrainY=63.8155 tireTerrainGap=0.000324249 +11:25:50.102 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2658,7497.78> radius=0.45 bottom=<7014.47,63.8158,7497.78> fraction=0.455833 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000282288 +11:25:50.103 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:25:50.103 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.603 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:25:50.603 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:50.604 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:25:51.106 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5316,7499.74> up=0.99427 +11:25:51.106 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0452181 angularSpeed=0.0643033 +11:25:51.106 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:51.107 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6163,7502.01> +11:25:51.107 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3163,7502.01> terrainY=63.3116 tireTerrainGap=0.00466537 +11:25:51.107 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6163,7502.01> radius=0.3 bottom=<7012.07,63.3163,7502.01> fraction=0.475647 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00464249 +11:25:51.107 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5915,7497.71> +11:25:51.107 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1415,7497.71> terrainY=64.1428 tireTerrainGap=-0.00121307 +11:25:51.108 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5915,7497.71> radius=0.45 bottom=<7009.97,64.1415,7497.71> fraction=0.448934 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00123596 +11:25:51.108 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2575,7497.83> +11:25:51.108 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8075,7497.83> terrainY=63.8126 tireTerrainGap=-0.00510025 +11:25:51.108 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2575,7497.83> radius=0.45 bottom=<7014.51,63.8075,7497.83> fraction=0.431111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00515366 +11:25:51.108 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.109 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.609 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:51.610 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:25:52.112 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994381 +11:25:52.112 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:25:52.112 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:52.112 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6127,7502.02> +11:25:52.112 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3127,7502.02> terrainY=63.3108 tireTerrainGap=0.00188065 +11:25:52.113 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6127,7502.02> radius=0.3 bottom=<7012.07,63.3127,7502.02> fraction=0.462994 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00185776 +11:25:52.113 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:25:52.113 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00250244 +11:25:52.113 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:25:52.113 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:25:52.113 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00183487 +11:25:52.114 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:25:52.114 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:52.114 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.114 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.115 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.115 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:25:52.615 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:52.616 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:53.121 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994381 +11:25:53.121 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:25:53.121 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:25:53.121 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6127,7502.02> +11:25:53.121 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3127,7502.02> terrainY=63.3108 tireTerrainGap=0.00188065 +11:25:53.122 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6127,7502.02> radius=0.3 bottom=<7012.07,63.3127,7502.02> fraction=0.462994 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00185776 +11:25:53.122 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.594,7497.72> +11:25:53.122 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.144,7497.72> terrainY=64.1415 tireTerrainGap=0.00250244 +11:25:53.122 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.594,7497.72> radius=0.45 bottom=<7009.98,64.144,7497.72> fraction=0.466368 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00260162 +11:25:53.122 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2601,7497.84> +11:25:53.123 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8101,7497.84> terrainY=63.8119 tireTerrainGap=-0.00183487 +11:25:53.123 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2601,7497.84> radius=0.45 bottom=<7014.52,63.8101,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:25:53.123 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:25:53.123 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:25:53.124 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:25:53.124 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:25:53.125 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:25:53.125 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:25:53.125 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:25:53.125 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:25:53.125 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:25:53.126 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:25:53.265 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:25:53.305 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +11:25:53.519 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:25:53.520 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.521 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:25:53.521 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.522 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:25:53.522 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.522 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:25:53.523 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:25:53.523 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:25:53.524 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.524 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:25:53.524 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:25:53.524 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:25:53.525 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:25:53.525 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.525 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:25:53.526 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:25:53.526 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:25:53.527 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:25:53.527 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:25:53.527 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:25:53.544 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:25:53.545 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:25:53.546 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:25:53.547 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:25:53.549 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:25:54.022 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:25:54.022 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:25:54.030 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:25:54.031 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:25:54.527 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:25:54.527 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:25:54.528 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:25:54.528 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:25:54.528 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:25:54.547 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:25:54.547 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:25:55.036 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28984.4 +11:25:55.037 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:25:55.037 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082173CA8> activeSeat=PilotCompartmentSlot<0x0000000082173CA8> group=<0x00000001B9EAA6D0> SCR_AIGroup actualGroup=<0x00000001B9EAA6D0> SCR_AIGroup +11:25:55.037 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:25:55.037 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:25:55.038 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:25:55.038 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:25:57.049 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=9988.22 remainingMs=26971.4 +11:25:57.049 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:25:57.050 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491699 29.396637 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001BA76D770> @"ENTITY:4611686018427390725" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.491699 29.396637 11490.615234> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082173CA8> activeSeat=PilotCompartmentSlot<0x0000000082173CA8> group=<0x00000001B9EAA6D0> SCR_AIGroup actualGroup=<0x00000001B9EAA6D0> SCR_AIGroup +11:25:57.050 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:25:57.050 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:25:57.051 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996286 entityOrigin=<4801.01,27.5717,11487.4> +11:25:57.051 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:25:57.556 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:25:57.556 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover mode enabled on exact owned controller with readback; manual mode unchanged +11:25:57.557 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0546077 input=1 simulation=1 +11:25:57.614 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0574055 input=1 simulation=1 +11:25:57.662 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.04728 input=1 simulation=1 +11:25:57.711 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0494716 input=1 simulation=1 +11:25:58.056 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=10 +11:25:58.056 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:25:58.056 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0129948 drift=0.0271205 speed=0.0363643 vertical=-0.0109936 up=0.996183 groundContact=1 fuel=1938.75 engine=0 +11:25:58.056 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.57888,4.49747,2.20398> +11:25:58.057 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.121492,-0.645408,0.0310444> +11:25:58.057 SCRIPT : ERR POWERED MOTION: offset=<-0.0249023,-0.0129948,0.0107422> velocity=<0.0338432,-0.0109936,0.00749283> angularLocal=<0.0151757,0.0579201,0.00572153> forward=<0.0274683,0.0784151,0.996542> right=<0.998964,-0.0383388,-0.0245183> +11:25:58.057 SCRIPT : ERR POWERED INPUT: pilotHooks=10 vehicleHooks=10 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:25:58.057 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=10 applyCallbacks=15 beforeWriteSequence=10 writtenAgeMs=33.4629 beforeWriteAgeMs=22.8926 +11:25:58.057 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:25:58.058 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:25:58.058 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:25:58.058 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4877,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7786 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7456,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6824 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:25:58.059 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:25:58.060 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.667 damageSphere=27.6824 simulationSphere=16.458 completeSphere=27.6824 initialDrift=0.0992413 initialHeight=-0.223524 +11:25:58.060 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:25:58.060 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:26:00.068 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=48 +11:26:00.068 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:00.068 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00610924 drift=0.0392573 speed=0 vertical=0 up=0.996058 groundContact=1 fuel=1938.75 engine=0 +11:26:00.068 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.90422,4.59732,2.18415> +11:26:00.068 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:26:00.068 SCRIPT : ERR POWERED MOTION: offset=<-0.0390625,0.00610924,-0.00390625> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.033122,0.0801522,0.996232> right=<0.998823,-0.0379887,-0.0301517> +11:26:00.069 SCRIPT : ERR POWERED INPUT: pilotHooks=48 vehicleHooks=48 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:26:00.069 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=48 applyCallbacks=75 beforeWriteSequence=48 writtenAgeMs=33.5605 beforeWriteAgeMs=33.5605 +11:26:00.069 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:26:00.069 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:26:02.092 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=88 +11:26:02.092 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:02.092 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0106468 drift=0.130462 speed=0.0435583 vertical=-0.00194561 up=0.996056 groundContact=1 fuel=1938.71 engine=1 +11:26:02.092 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.50705,4.60745,2.16652> +11:26:02.092 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0558449,0.00109306,-0.0708192> +11:26:02.093 SCRIPT : ERR POWERED MOTION: offset=<-0.130371,0.0106468,-0.00488281> velocity=<0.0434666,-0.00194561,0.00204823> angularLocal=<0.000204043,-0.0427907,-0.000639237> forward=<0.043601,0.0803285,0.995814> right=<0.998462,-0.0376818,-0.0406772> +11:26:02.093 SCRIPT : ERR POWERED INPUT: pilotHooks=88 vehicleHooks=88 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.00031911 targetRPM=196 +11:26:02.093 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=88 applyCallbacks=136 beforeWriteSequence=88 writtenAgeMs=13.8213 beforeWriteAgeMs=13.8213 +11:26:02.093 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:02.093 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:04.103 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=125 +11:26:04.103 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:04.103 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0137691 drift=0.221733 speed=0.0438123 vertical=-0.0022677 up=0.99608 groundContact=1 fuel=1938.62 engine=1 +11:26:04.103 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<3.15213,4.59788,2.15062> +11:26:04.103 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0494633,0.00328741,0.0203778> +11:26:04.103 SCRIPT : ERR POWERED MOTION: offset=<-0.22168,0.0137691,-0.00488281> velocity=<0.0436936,-0.0022677,0.00229078> angularLocal=<-1.09725e-05,-0.042809,-0.000768775> forward=<0.0548103,0.080162,0.995274> right=<0.997949,-0.0374058,-0.0519449> +11:26:04.104 SCRIPT : ERR POWERED INPUT: pilotHooks=125 vehicleHooks=125 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.0235028 targetRPM=196 +11:26:04.104 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=125 applyCallbacks=196 beforeWriteSequence=125 writtenAgeMs=35.4824 beforeWriteAgeMs=23.9805 +11:26:04.104 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:04.104 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:06.124 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=162 +11:26:06.124 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:06.124 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0168514 drift=0.31205 speed=0.0440739 vertical=-0.00217407 up=0.996105 groundContact=1 fuel=1938.48 engine=1 +11:26:06.124 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<3.75323,4.5873,2.13481> +11:26:06.124 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0511515,0.00178536,0.02478> +11:26:06.125 SCRIPT : ERR POWERED MOTION: offset=<-0.312012,0.0168514,-0.00488281> velocity=<0.043949,-0.00217407,0.00250376> angularLocal=<0.00039381,-0.0428481,-0.000907389> forward=<0.0652496,0.0799781,0.994659> right=<0.997358,-0.0371315,-0.062441> +11:26:06.125 SCRIPT : ERR POWERED INPUT: pilotHooks=162 vehicleHooks=162 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.38924 targetRPM=196 +11:26:06.125 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=162 applyCallbacks=257 beforeWriteSequence=162 writtenAgeMs=61.8242 beforeWriteAgeMs=14.1562 +11:26:06.125 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:06.126 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:08.137 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=200 +11:26:08.137 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:08.137 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0200081 drift=0.404815 speed=0.0449941 vertical=-0.00191385 up=0.996135 groundContact=1 fuel=1938.39 engine=1 +11:26:08.137 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<4.39536,4.57344,2.11788> +11:26:08.137 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.054061,-0.00408153,0.0212722> +11:26:08.137 SCRIPT : ERR POWERED MOTION: offset=<-0.404785,0.0200081,-0.00488281> velocity=<0.0448836,-0.00191385,0.00250297> angularLocal=<0.000702434,0.0559877,0.00211> forward=<0.0763942,0.0797369,0.993884> right=<0.996604,-0.036838,-0.0736478> +11:26:08.138 SCRIPT : ERR POWERED INPUT: pilotHooks=200 vehicleHooks=200 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.09667 targetRPM=196 +11:26:08.138 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=200 applyCallbacks=317 beforeWriteSequence=199 writtenAgeMs=11.3574 beforeWriteAgeMs=24.7578 +11:26:08.138 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:08.138 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:10.149 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=239 +11:26:10.149 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:10.149 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.021244 drift=0.497086 speed=0.0446741 vertical=0.00083656 up=0.996168 groundContact=1 fuel=1938.31 engine=1 +11:26:10.149 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<4.87254,4.55939,2.09745> +11:26:10.149 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0801326,-0.00137086,0.00806762> +11:26:10.150 SCRIPT : ERR POWERED MOTION: offset=<-0.49707,0.021244,-0.00390625> velocity=<0.0446326,0.00083656,0.00173457> angularLocal=<0.000765431,0.0545855,0.0021156> forward=<0.0846706,0.0794924,0.993233> right=<0.995966,-0.0364833,-0.0819836> +11:26:10.150 SCRIPT : ERR POWERED INPUT: pilotHooks=239 vehicleHooks=239 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=26.1086 targetRPM=196 +11:26:10.150 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=239 applyCallbacks=377 beforeWriteSequence=239 writtenAgeMs=33.25 beforeWriteAgeMs=33.25 +11:26:10.151 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:10.151 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:12.168 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=277 +11:26:12.168 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:12.168 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0137863 drift=0.573738 speed=0.0398935 vertical=0.00606825 up=0.996217 groundContact=1 fuel=1938.22 engine=1 +11:26:12.168 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<5.22283,4.53124,2.08143> +11:26:12.169 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0118346,0.00238862,-0.0515224> +11:26:12.169 SCRIPT : ERR POWERED MOTION: offset=<-0.57373,0.0137863,-0.00292969> velocity=<0.0383985,0.00606825,-0.00895656> angularLocal=<0.000590173,-0.0462928,-0.000862172> forward=<0.0907448,0.0790026,0.992736> right=<0.995452,-0.0362063,-0.0881118> +11:26:12.169 SCRIPT : ERR POWERED INPUT: pilotHooks=277 vehicleHooks=277 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=61.6686 targetRPM=196 +11:26:12.170 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=277 applyCallbacks=438 beforeWriteSequence=277 writtenAgeMs=13.1445 beforeWriteAgeMs=13.1445 +11:26:12.170 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:26:12.170 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:26:14.188 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=315 +11:26:14.188 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:14.188 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00362968 drift=0.637696 speed=0.0311385 vertical=0.00476153 up=0.996287 groundContact=1 fuel=1938.13 engine=1 +11:26:14.188 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<5.73072,4.48504,2.07037> +11:26:14.188 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.195607,0.00235515,0.0235705> +11:26:14.188 SCRIPT : ERR POWERED MOTION: offset=<-0.637695,0.00362968,-0.000976562> velocity=<0.0278708,0.00476153,-0.0130441> angularLocal=<-2.13866e-05,0.0556554,0.00119655> forward=<0.0995475,0.0781988,0.991955> right=<0.994635,-0.0360164,-0.0969771> +11:26:14.189 SCRIPT : ERR POWERED INPUT: pilotHooks=315 vehicleHooks=315 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.740966 rotorRPM=86.8824 targetRPM=196 +11:26:14.189 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=315 applyCallbacks=498 beforeWriteSequence=314 writtenAgeMs=21.1094 beforeWriteAgeMs=33.3027 +11:26:14.189 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.740966> writtenThrottle=0 beforeWriteThrottle=0 +11:26:14.189 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.870483 autohover=0 collectiveMode=3 +11:26:16.231 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=353 +11:26:16.231 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:16.231 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00536919 drift=0.702637 speed=0.0268844 vertical=0.00510419 up=0.996353 groundContact=1 fuel=1938.04 engine=1 +11:26:16.231 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.1894,4.44331,2.05547> +11:26:16.231 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.302386,0.00766603,0.0354484> +11:26:16.232 SCRIPT : ERR POWERED MOTION: offset=<-0.702637,-0.00536919,0.000976562> velocity=<0.0176311,0.00510419,-0.0196433> angularLocal=<0.00014614,0.0547153,0.000829295> forward=<0.107491,0.0774727,0.991183> right=<0.993831,-0.0357593,-0.104984> +11:26:16.232 SCRIPT : ERR POWERED INPUT: pilotHooks=353 vehicleHooks=353 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.531198 rotorRPM=104.757 targetRPM=196 +11:26:16.232 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=353 applyCallbacks=560 beforeWriteSequence=353 writtenAgeMs=12.5918 beforeWriteAgeMs=12.5918 +11:26:16.232 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.531198> writtenThrottle=0 beforeWriteThrottle=0 +11:26:16.232 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.76693 autohover=0 collectiveMode=3 +11:26:18.252 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=390 +11:26:18.252 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:18.253 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0160751 drift=0.746726 speed=0.032918 vertical=0.00647738 up=0.996418 groundContact=1 fuel=1937.95 engine=1 +11:26:18.253 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.542,4.39972,2.04528> +11:26:18.253 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.230458,0.00424672,0.0262913> +11:26:18.253 SCRIPT : ERR POWERED MOTION: offset=<-0.746582,-0.0160751,0.0146484> velocity=<0.0119686,0.00647738,-0.0299731> angularLocal=<0.000235264,0.049473,0.000842434> forward=<0.113596,0.0767142,0.990561> right=<0.993168,-0.0355841,-0.111139> +11:26:18.253 SCRIPT : ERR POWERED INPUT: pilotHooks=390 vehicleHooks=390 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.396197 rotorRPM=121.416 targetRPM=196 +11:26:18.254 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=390 applyCallbacks=620 beforeWriteSequence=390 writtenAgeMs=47.4746 beforeWriteAgeMs=25.0156 +11:26:18.254 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.396197> writtenThrottle=0 beforeWriteThrottle=0 +11:26:18.254 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.698099 autohover=0 collectiveMode=3 +11:26:20.273 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=428 +11:26:20.273 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:20.273 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0293903 drift=0.759497 speed=0.0361158 vertical=0.00822391 up=0.996473 groundContact=1 fuel=1937.86 engine=1 +11:26:20.274 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.62586,4.36142,2.03861> +11:26:20.274 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.136141,0.00282682,1.11349> +11:26:20.274 SCRIPT : ERR POWERED MOTION: offset=<-0.754395,-0.0293903,0.0878906> velocity=<0.0134586,0.00822391,-0.0324898> angularLocal=<-0.00215759,-0.02037,-0.000774264> forward=<0.115051,0.0760476,0.990444> right=<0.993004,-0.0354699,-0.112625> +11:26:20.274 SCRIPT : ERR POWERED INPUT: pilotHooks=428 vehicleHooks=428 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.293888 rotorRPM=137.576 targetRPM=196 +11:26:20.274 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=428 applyCallbacks=681 beforeWriteSequence=428 writtenAgeMs=33.3594 beforeWriteAgeMs=12.625 +11:26:20.275 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.293888> writtenThrottle=0 beforeWriteThrottle=0 +11:26:20.275 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.64768 autohover=0 collectiveMode=3 +11:26:22.305 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=464 +11:26:22.306 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:22.306 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0445709 drift=0.774512 speed=0.0672471 vertical=0.00847187 up=0.996535 groundContact=1 fuel=1937.77 engine=1 +11:26:22.306 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.39317,4.31699,2.03367> +11:26:22.307 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00481322,0.00110367,-0.0120342> +11:26:22.308 SCRIPT : ERR POWERED MOTION: offset=<-0.750488,-0.0445709,0.191406> velocity=<0.0136086,0.00847187,-0.0653086> angularLocal=<0.00039551,-0.00175281,-5.18839e-05> forward=<0.111035,0.0752744,0.990962> right=<0.993453,-0.0353861,-0.108626> +11:26:22.308 SCRIPT : ERR POWERED INPUT: pilotHooks=464 vehicleHooks=464 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.215154 rotorRPM=153.447 targetRPM=196 +11:26:22.308 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=464 applyCallbacks=741 beforeWriteSequence=464 writtenAgeMs=73.8945 beforeWriteAgeMs=33.9844 +11:26:22.308 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.215154> writtenThrottle=0 beforeWriteThrottle=0 +11:26:22.309 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.608164 autohover=0 collectiveMode=3 +11:26:24.325 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=500 +11:26:24.325 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:24.326 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0601501 drift=0.81976 speed=0.0333264 vertical=0.00805853 up=0.996598 groundContact=1 fuel=1937.68 engine=1 +11:26:24.326 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.31333,4.27403,2.02208> +11:26:24.326 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00638265,0.000574998,0.000632666> +11:26:24.326 SCRIPT : ERR POWERED MOTION: offset=<-0.793945,-0.0601501,0.204102> velocity=<0.0221578,0.00805853,-0.0235529> angularLocal=<0.000142228,-0.000359035,0.000164375> forward=<0.10966,0.0745267,0.991171> right=<0.993606,-0.0351866,-0.107283> +11:26:24.326 SCRIPT : ERR POWERED INPUT: pilotHooks=500 vehicleHooks=500 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.15004 rotorRPM=169.634 targetRPM=196 +11:26:24.327 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=500 applyCallbacks=802 beforeWriteSequence=500 writtenAgeMs=23.582 beforeWriteAgeMs=23.582 +11:26:24.327 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.15004> writtenThrottle=0 beforeWriteThrottle=0 +11:26:24.327 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.57502 autohover=0 collectiveMode=3 +11:26:25.336 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:26:25.844 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:26:25.844 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +11:26:26.361 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=539 +11:26:26.361 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:26.361 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0957127 drift=1.06433 speed=0.577674 vertical=0.0186559 up=0.996192 groundContact=1 fuel=1937.59 engine=1 +11:26:26.361 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<6.39548,4.61168,1.9389> +11:26:26.361 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.179993,0.0924369,-0.565985> +11:26:26.362 SCRIPT : ERR POWERED MOTION: offset=<-0.954102,-0.0957127,0.47168> velocity=<0.224697,0.0186559,-0.531856> angularLocal=<-0.0109073,0.00115697,0.000583231> forward=<0.11103,0.0804022,0.990559> right=<0.993511,-0.0337242,-0.108623> +11:26:26.362 SCRIPT : ERR POWERED INPUT: pilotHooks=539 vehicleHooks=539 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.140134 rotorRPM=181.014 targetRPM=196 +11:26:26.362 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=539 applyCallbacks=863 beforeWriteSequence=539 writtenAgeMs=25.2148 beforeWriteAgeMs=25.2148 +11:26:26.362 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.140134> writtenThrottle=0 beforeWriteThrottle=0 +11:26:26.362 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.570067 autohover=0 collectiveMode=3 +11:26:26.363 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:26:26.363 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=20 matched=1 +11:26:26.363 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:26:28.371 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=576 +11:26:28.371 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:28.371 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.09955 drift=3.75801 speed=2.41194 vertical=1.42297 up=0.999785 groundContact=0 fuel=1937.51 engine=1 +11:26:28.371 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.96899,1.14328,0.319149> +11:26:28.371 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0117928,0.246899,-0.19088> +11:26:28.371 SCRIPT : ERR POWERED MOTION: offset=<-1.73975,-2.09955,3.33105> velocity=<0.457559,1.42297,-1.89295> angularLocal=<0.064208,-0.0183448,0.0143774> forward=<0.0517852,0.0199527,0.998459> right=<0.998648,-0.00556906,-0.0516837> +11:26:28.372 SCRIPT : ERR POWERED INPUT: pilotHooks=576 vehicleHooks=576 readback=1 collective=0.164178 cyclicF=0.054353 cyclicR=-0.0273122 antiTorque=0.167709 rotorRPM=188.934 targetRPM=196 +11:26:28.372 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=576 applyCallbacks=923 beforeWriteSequence=575 writtenAgeMs=16.1133 beforeWriteAgeMs=29.6875 +11:26:28.372 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.163687 beforeWriteCollective=0.164178 writtenFRA=<0.0520435,-0.026917,-0.00987073> beforeWriteFRA=<0.054353,-0.0273122,0.167709> writtenThrottle=0 beforeWriteThrottle=0 +11:26:28.372 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.164178 cyclicForward=0.054353 cyclicAside=-0.0273122 tailCollective=0.583854 autohover=0 collectiveMode=3 +11:26:28.880 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=585 +11:26:28.880 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:28.881 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.83562 drift=4.82501 speed=2.48332 vertical=1.53629 up=0.999891 groundContact=0 fuel=1937.51 engine=1 +11:26:28.881 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.51394,-0.841244,-0.0919916> +11:26:28.881 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0634664,0.2,0.149531> +11:26:28.881 SCRIPT : ERR POWERED MOTION: offset=<-1.97705,-2.83562,4.40137> velocity=<0.438025,1.53629,-1.90126> angularLocal=<0.0690995,-0.0129175,0.013378> forward=<0.0438578,-0.014682,0.99893> right=<0.999037,0.00160538,-0.0438389> +11:26:28.881 SCRIPT : ERR POWERED INPUT: pilotHooks=585 vehicleHooks=585 readback=1 collective=0.157839 cyclicF=0.0283609 cyclicR=-0.0228026 antiTorque=0.160202 rotorRPM=190.897 targetRPM=196 +11:26:28.881 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=585 applyCallbacks=939 beforeWriteSequence=585 writtenAgeMs=58.0625 beforeWriteAgeMs=11.6289 +11:26:28.882 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.157839 beforeWriteCollective=0.157839 writtenFRA=<0.0283609,-0.0228026,-0.00715348> beforeWriteFRA=<0.0283609,-0.0228026,0.160202> writtenThrottle=0 beforeWriteThrottle=0 +11:26:28.882 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.157839 cyclicForward=0.0283609 cyclicAside=-0.0228026 tailCollective=0.580509 autohover=0 collectiveMode=3 +11:26:29.380 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=595 +11:26:29.380 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:29.380 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.60324 drift=5.82302 speed=2.4113 vertical=1.62492 up=0.998772 groundContact=0 fuel=1937.46 engine=1 +11:26:29.380 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.21564,-2.80472,-0.443406> +11:26:29.381 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107653,0.154431,0.492511> +11:26:29.381 SCRIPT : ERR POWERED MOTION: offset=<-2.19238,-3.60324,5.39453> velocity=<0.394551,1.62492,-1.73733> angularLocal=<0.0671976,-0.009168,0.0119073> forward=<0.0386142,-0.048932,0.998055> right=<0.999237,0.00772955,-0.038281> +11:26:29.381 SCRIPT : ERR POWERED INPUT: pilotHooks=595 vehicleHooks=595 readback=1 collective=0.149487 cyclicF=0.000241332 cyclicR=-0.0179497 antiTorque=0.152026 rotorRPM=192.86 targetRPM=196 +11:26:29.381 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=595 applyCallbacks=954 beforeWriteSequence=595 writtenAgeMs=27.9023 beforeWriteAgeMs=12.3086 +11:26:29.382 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.149487 beforeWriteCollective=0.149487 writtenFRA=<0.000241332,-0.0179497,-0.0051172> beforeWriteFRA=<0.000241332,-0.0179497,0.152026> writtenThrottle=0 beforeWriteThrottle=0 +11:26:29.382 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.150512 cyclicForward=0.00325378 cyclicAside=-0.018475 tailCollective=0.576043 autohover=0 collectiveMode=3 +11:26:29.889 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=605 +11:26:29.890 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:29.890 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.42638 drift=6.70616 speed=2.21013 vertical=1.68217 up=0.996629 groundContact=0 fuel=1937.46 engine=1 +11:26:29.890 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<2.01094,-4.64622,-0.748491> +11:26:29.890 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.144439,0.0843501,0.813775> +11:26:29.891 SCRIPT : ERR POWERED MOTION: offset=<-2.38281,-4.42638,6.26855> velocity=<0.328753,1.68217,-1.39532> angularLocal=<0.0586358,-0.00659467,0.010025> forward=<0.0349749,-0.081003,0.9961> right=<0.999336,0.0130203,-0.0340297> +11:26:29.891 SCRIPT : ERR POWERED INPUT: pilotHooks=605 vehicleHooks=605 readback=1 collective=0.141368 cyclicF=-0.0257667 cyclicR=-0.0132132 antiTorque=0.14232 rotorRPM=194.888 targetRPM=196 +11:26:29.891 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=605 applyCallbacks=969 beforeWriteSequence=605 writtenAgeMs=35.9805 beforeWriteAgeMs=13.2617 +11:26:29.891 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.141368 beforeWriteCollective=0.141368 writtenFRA=<-0.0257667,-0.0132132,-0.00381891> beforeWriteFRA=<-0.0257667,-0.0132132,0.14232> writtenThrottle=0 beforeWriteThrottle=0 +11:26:29.892 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.142107 cyclicForward=-0.0234308 cyclicAside=-0.0136637 tailCollective=0.571323 autohover=0 collectiveMode=3 +11:26:30.395 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=615 +11:26:30.395 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:30.396 SCRIPT : ERR POWERED FLIGHT: stage=4 height=5.27228 drift=7.36711 speed=1.94448 vertical=1.6937 up=0.994091 groundContact=0 fuel=1937.42 engine=1 +11:26:30.396 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.86759,-6.15207,-0.995021> +11:26:30.396 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.17004,-0.0573492,1.05633> +11:26:30.396 SCRIPT : ERR POWERED MOTION: offset=<-2.53564,-5.27228,6.91699> velocity=<0.249454,1.6937,-0.922043> angularLocal=<0.0449076,-0.00510508,0.00796158> forward=<0.0324021,-0.107168,0.993713> right=<0.999379,0.0172655,-0.0307248> +11:26:30.396 SCRIPT : ERR POWERED INPUT: pilotHooks=615 vehicleHooks=615 readback=1 collective=0.134444 cyclicF=-0.0499954 cyclicR=-0.00832157 antiTorque=0.135833 rotorRPM=196 targetRPM=196 +11:26:30.397 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=615 applyCallbacks=984 beforeWriteSequence=615 writtenAgeMs=23.3516 beforeWriteAgeMs=23.3516 +11:26:30.397 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.134444 beforeWriteCollective=0.134444 writtenFRA=<-0.0499954,-0.00832157,-0.00278721> beforeWriteFRA=<-0.0499954,-0.00832157,0.135833> writtenThrottle=0 beforeWriteThrottle=0 +11:26:30.398 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.134444 cyclicForward=-0.0499954 cyclicAside=-0.00832157 tailCollective=0.567916 autohover=0 collectiveMode=3 +11:26:30.901 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=624 +11:26:30.901 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:30.901 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.09685 drift=7.73586 speed=1.61682 vertical=1.5738 up=0.991955 groundContact=0 fuel=1937.42 engine=1 +11:26:30.902 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.76301,-7.17693,-1.17803> +11:26:30.902 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.181645,-0.497539,1.18032> +11:26:30.902 SCRIPT : ERR POWERED MOTION: offset=<-2.64258,-6.09685,7.27051> velocity=<0.157591,1.5738,-0.335316> angularLocal=<0.0263561,-0.00328961,0.00566434> forward=<0.0305244,-0.124934,0.991695> right=<0.999394,0.020398,-0.0281916> +11:26:30.903 SCRIPT : ERR POWERED INPUT: pilotHooks=624 vehicleHooks=624 readback=1 collective=0.111974 cyclicF=-0.0682217 cyclicR=-0.00387327 antiTorque=0.125549 rotorRPM=196 targetRPM=196 +11:26:30.903 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=624 applyCallbacks=999 beforeWriteSequence=624 writtenAgeMs=24.5508 beforeWriteAgeMs=24.5508 +11:26:30.903 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.111974 beforeWriteCollective=0.111974 writtenFRA=<-0.0682217,-0.00387327,-0.00223052> beforeWriteFRA=<-0.0682217,-0.00387327,0.125549> writtenThrottle=0 beforeWriteThrottle=0 +11:26:30.904 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.111974 cyclicForward=-0.0682217 cyclicAside=-0.00387327 tailCollective=0.562775 autohover=0 collectiveMode=3 +11:26:31.401 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=633 +11:26:31.402 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:31.402 SCRIPT : ERR POWERED FLIGHT: stage=4 height=6.81092 drift=7.78337 speed=1.32521 vertical=1.29508 up=0.990896 groundContact=0 fuel=1937.37 engine=1 +11:26:31.402 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.69319,-7.62809,-1.29797> +11:26:31.402 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.188716,-0.590601,1.23863> +11:26:31.402 SCRIPT : ERR POWERED MOTION: offset=<-2.70068,-6.81092,7.2998> velocity=<0.0647099,1.29508,0.273404> angularLocal=<0.00557183,-0.00233978,0.00343733> forward=<0.029286,-0.132742,0.990718> right=<0.999396,0.0224515,-0.0265343> +11:26:31.402 SCRIPT : ERR POWERED INPUT: pilotHooks=633 vehicleHooks=633 readback=1 collective=0.0887082 cyclicF=-0.0786296 cyclicR=-0.000104288 antiTorque=0.112102 rotorRPM=196 targetRPM=196 +11:26:31.403 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=633 applyCallbacks=1014 beforeWriteSequence=633 writtenAgeMs=63.7148 beforeWriteAgeMs=24.0508 +11:26:31.403 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0887082 beforeWriteCollective=0.0887082 writtenFRA=<-0.0786296,-0.000104288,-0.0018758> beforeWriteFRA=<-0.0786296,-0.000104288,0.112102> writtenThrottle=0 beforeWriteThrottle=0 +11:26:31.403 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0887082 cyclicForward=-0.0786296 cyclicAside=-0.000104288 tailCollective=0.556051 autohover=0 collectiveMode=3 +11:26:31.912 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=643 +11:26:31.912 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:31.912 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.39211 drift=7.4926 speed=1.33471 vertical=0.995656 up=0.991286 groundContact=0 fuel=1937.37 engine=1 +11:26:31.912 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.62945,-7.44772,-1.35662> +11:26:31.913 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.176412,-0.603865,1.20538> +11:26:31.913 SCRIPT : ERR POWERED MOTION: offset=<-2.70996,-7.39211,6.98535> velocity=<-0.0286096,0.995656,0.888424> angularLocal=<-0.0165667,-0.00174708,0.00130824> forward=<0.0281955,-0.129622,0.991163> right=<0.999403,0.0234756,-0.0253598> +11:26:31.913 SCRIPT : ERR POWERED INPUT: pilotHooks=643 vehicleHooks=643 readback=1 collective=0.0664181 cyclicF=-0.0823489 cyclicR=0.00379958 antiTorque=0.101633 rotorRPM=196 targetRPM=196 +11:26:31.913 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=643 applyCallbacks=1029 beforeWriteSequence=643 writtenAgeMs=46.3906 beforeWriteAgeMs=35.3633 +11:26:31.914 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0664181 beforeWriteCollective=0.0664181 writtenFRA=<-0.0823489,0.00379958,-0.00140586> beforeWriteFRA=<-0.0823489,0.00379958,0.101633> writtenThrottle=0 beforeWriteThrottle=0 +11:26:31.914 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0664181 cyclicForward=-0.0823489 cyclicAside=0.00379958 tailCollective=0.550816 autohover=0 collectiveMode=3 +11:26:32.423 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=653 +11:26:32.423 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:32.423 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.82837 drift=6.86978 speed=1.64963 vertical=0.71401 up=0.99306 groundContact=0 fuel=1937.33 engine=1 +11:26:32.424 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.56418,-6.61724,-1.35476> +11:26:32.424 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.173226,-0.490494,1.07952> +11:26:32.424 SCRIPT : ERR POWERED MOTION: offset=<-2.67139,-7.82837,6.3291> velocity=<-0.119207,0.71401,1.48232> angularLocal=<-0.0382406,-0.00130693,-0.000699656> forward=<0.0271148,-0.115236,0.992968> right=<0.999422,0.0234854,-0.0245655> +11:26:32.424 SCRIPT : ERR POWERED INPUT: pilotHooks=653 vehicleHooks=653 readback=1 collective=0.0464978 cyclicF=-0.0777482 cyclicR=0.00703334 antiTorque=0.0917073 rotorRPM=196 targetRPM=196 +11:26:32.424 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=653 applyCallbacks=1045 beforeWriteSequence=653 writtenAgeMs=11.875 beforeWriteAgeMs=11.875 +11:26:32.425 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0464978 beforeWriteCollective=0.0464978 writtenFRA=<-0.0777482,0.00703334,-0.000851666> beforeWriteFRA=<-0.0777482,0.00703334,0.0917073> writtenThrottle=0 beforeWriteThrottle=0 +11:26:32.425 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0485481 cyclicForward=-0.0786448 cyclicAside=0.00674385 tailCollective=0.546247 autohover=0 collectiveMode=3 +11:26:32.930 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=662 +11:26:32.931 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:32.931 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.14252 drift=5.9647 speed=2.04116 vertical=0.496385 up=0.995596 groundContact=0 fuel=1937.33 engine=1 +11:26:32.931 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.49988,-5.22038,-1.29983> +11:26:32.931 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.164166,-0.368378,0.863292> +11:26:32.931 SCRIPT : ERR POWERED MOTION: offset=<-2.58594,-8.14252,5.375> velocity=<-0.203639,0.496385,1.96938> angularLocal=<-0.0554902,-0.000862731,-0.00243219> forward=<0.0260664,-0.0909868,0.995511> right=<0.999454,0.0225903,-0.0241049> +11:26:32.932 SCRIPT : ERR POWERED INPUT: pilotHooks=662 vehicleHooks=662 readback=1 collective=0.0310579 cyclicF=-0.0682385 cyclicR=0.00956938 antiTorque=0.0836533 rotorRPM=196 targetRPM=196 +11:26:32.932 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=662 applyCallbacks=1060 beforeWriteSequence=662 writtenAgeMs=34.3047 beforeWriteAgeMs=22.7461 +11:26:32.932 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0310579 beforeWriteCollective=0.0310579 writtenFRA=<-0.0682385,0.00956938,-0.000387908> beforeWriteFRA=<-0.0682385,0.00956938,0.0836533> writtenThrottle=0 beforeWriteThrottle=0 +11:26:32.932 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0310579 cyclicForward=-0.0682385 cyclicAside=0.00956938 tailCollective=0.541827 autohover=0 collectiveMode=3 +11:26:33.431 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=671 +11:26:33.431 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:33.431 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.36369 drift=4.87682 speed=2.36931 vertical=0.338068 up=0.99799 groundContact=0 fuel=1937.28 engine=1 +11:26:33.431 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44353,-3.42906,-1.20168> +11:26:33.431 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.149796,-0.239986,0.572777> +11:26:33.432 SCRIPT : ERR POWERED MOTION: offset=<-2.45996,-8.36369,4.21094> velocity=<-0.282077,0.338068,2.32804> angularLocal=<-0.067571,-0.000424739,-0.00393821> forward=<0.0251466,-0.0598126,0.997893> right=<0.999494,0.0209342,-0.0239321> +11:26:33.432 SCRIPT : ERR POWERED INPUT: pilotHooks=671 vehicleHooks=671 readback=1 collective=0.0162614 cyclicF=-0.054675 cyclicR=0.0117305 antiTorque=0.0762458 rotorRPM=196 targetRPM=196 +11:26:33.432 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=671 applyCallbacks=1075 beforeWriteSequence=671 writtenAgeMs=45.6953 beforeWriteAgeMs=23.1992 +11:26:33.432 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0162614 beforeWriteCollective=0.0162614 writtenFRA=<-0.054675,0.0117305,3.63299e-05> beforeWriteFRA=<-0.054675,0.0117305,0.0762458> writtenThrottle=0 beforeWriteThrottle=0 +11:26:33.433 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0162614 cyclicForward=-0.054675 cyclicAside=0.0117305 tailCollective=0.538123 autohover=0 collectiveMode=3 +11:26:33.933 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=680 +11:26:33.933 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:33.933 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.52603 drift=3.69101 speed=2.56508 vertical=0.224421 up=0.999542 groundContact=0 fuel=1937.28 engine=1 +11:26:33.934 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.39939,-1.36845,-1.06558> +11:26:33.934 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.12858,-0.182818,0.218325> +11:26:33.934 SCRIPT : ERR POWERED MOTION: offset=<-2.29395,-8.52603,2.8916> velocity=<-0.353909,0.224421,2.53062> angularLocal=<-0.0739559,5.56103e-05,-0.00523365> forward=<0.0244145,-0.0238818,0.999417> right=<0.99954,0.0185915,-0.0239733> +11:26:33.934 SCRIPT : ERR POWERED INPUT: pilotHooks=680 vehicleHooks=680 readback=1 collective=0.000843883 cyclicF=-0.0374995 cyclicR=0.0132805 antiTorque=0.0674882 rotorRPM=196 targetRPM=196 +11:26:33.935 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=680 applyCallbacks=1090 beforeWriteSequence=680 writtenAgeMs=58.3867 beforeWriteAgeMs=22.6055 +11:26:33.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.000843883 beforeWriteCollective=0.000843883 writtenFRA=<-0.0374995,0.0132805,0.000371591> beforeWriteFRA=<-0.0374995,0.0132805,0.0674882> writtenThrottle=0 beforeWriteThrottle=0 +11:26:33.935 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.000843883 cyclicForward=-0.0374995 cyclicAside=0.0132805 tailCollective=0.533744 autohover=0 collectiveMode=3 +11:26:34.433 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=690 +11:26:34.434 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:34.434 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.65619 drift=2.59555 speed=2.58828 vertical=0.205284 up=0.999789 groundContact=0 fuel=1937.24 engine=1 +11:26:34.434 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.36316,0.756507,-0.90095> +11:26:34.434 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.107406,0.0658214,-0.144467> +11:26:34.434 SCRIPT : ERR POWERED MOTION: offset=<-2.09717,-8.65619,1.5293> velocity=<-0.413036,0.205284,2.54685> angularLocal=<-0.0742285,2.23272e-05,-0.00621185> forward=<0.0237873,0.0132032,0.99963> right=<0.999588,0.0157225,-0.023994> +11:26:34.434 SCRIPT : ERR POWERED INPUT: pilotHooks=690 vehicleHooks=690 readback=1 collective=0 cyclicF=-0.0162177 cyclicR=0.0143534 antiTorque=0.0674124 rotorRPM=196 targetRPM=196 +11:26:34.435 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=690 applyCallbacks=1105 beforeWriteSequence=690 writtenAgeMs=33.3867 beforeWriteAgeMs=12.6719 +11:26:34.435 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0162177,0.0143534,0.000745643> beforeWriteFRA=<-0.0162177,0.0143534,0.0674124> writtenThrottle=0 beforeWriteThrottle=0 +11:26:34.435 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0183075 cyclicAside=0.0142809 tailCollective=0.533692 autohover=0 collectiveMode=3 +11:26:36.450 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=727 +11:26:36.451 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:36.451 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.36788 drift=2.85761 speed=1.14007 vertical=0.329753 up=0.992105 groundContact=0 fuel=1937.15 engine=1 +11:26:36.451 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.35752,7.20372,-0.083653> +11:26:36.451 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0139618,-0.0707155,-1.2384> +11:26:36.451 SCRIPT : ERR POWERED MOTION: offset=<-1.104,-9.36788,-2.63574> velocity=<-0.509037,0.329753,0.965354> angularLocal=<-0.0262283,0.000749158,-0.0070359> forward=<0.023504,0.125398,0.991828> right=<0.999714,0.0014485,-0.023874> +11:26:36.451 SCRIPT : ERR POWERED INPUT: pilotHooks=727 vehicleHooks=727 readback=1 collective=0 cyclicF=0.0665449 cyclicR=0.0121527 antiTorque=0.0672914 rotorRPM=196 targetRPM=196 +11:26:36.452 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=727 applyCallbacks=1165 beforeWriteSequence=727 writtenAgeMs=55.2539 beforeWriteAgeMs=33.7344 +11:26:36.452 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0665449,0.0121527,0.000624656> beforeWriteFRA=<0.0665449,0.0121527,0.0672914> writtenThrottle=0 beforeWriteThrottle=0 +11:26:36.452 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0665449 cyclicAside=0.0121527 tailCollective=0.533646 autohover=0 collectiveMode=3 +11:26:38.482 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=765 +11:26:38.482 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:38.482 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.74134 drift=1.90442 speed=1.52038 vertical=0.082464 up=0.995731 groundContact=0 fuel=1937.06 engine=1 +11:26:38.482 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.40318,5.2653,0.570364> +11:26:38.483 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.114251,-0.0522722,-0.895278> +11:26:38.483 SCRIPT : ERR POWERED MOTION: offset=<-0.150879,-9.74134,-1.89844> velocity=<-0.37006,0.082464,-1.47235> angularLocal=<0.0555945,0.000369597,-0.00366242> forward=<0.0243843,0.0917675,0.995482> right=<0.999673,-0.00991256,-0.0235732> +11:26:38.483 SCRIPT : ERR POWERED INPUT: pilotHooks=765 vehicleHooks=765 readback=1 collective=0 cyclicF=0.0677126 cyclicR=0.00368753 antiTorque=0.0669215 rotorRPM=196 targetRPM=196 +11:26:38.483 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=765 applyCallbacks=1226 beforeWriteSequence=765 writtenAgeMs=50.3789 beforeWriteAgeMs=24.9141 +11:26:38.483 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0677126,0.00368753,0.000254825> beforeWriteFRA=<0.0677126,0.00368753,0.0669215> writtenThrottle=0 beforeWriteThrottle=0 +11:26:38.484 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0677126 cyclicAside=0.00368753 tailCollective=0.533461 autohover=0 collectiveMode=3 +11:26:40.509 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=801 +11:26:40.510 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:40.510 SCRIPT : ERR POWERED FLIGHT: stage=4 height=9.89239 drift=2.37854 speed=1.93496 vertical=0.244674 up=0.998721 groundContact=0 fuel=1936.97 engine=1 +11:26:40.510 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.37402,-2.80632,0.722031> +11:26:40.510 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.148452,0.123412,0.487089> +11:26:40.510 SCRIPT : ERR POWERED MOTION: offset=<0.337402,-9.89239,2.35449> velocity=<-0.0900028,0.244674,-1.91732> angularLocal=<0.0677267,0.00081862,0.000923631> forward=<0.0239501,-0.0489599,0.998514> right=<0.999618,-0.0125864,-0.0245937> +11:26:40.510 SCRIPT : ERR POWERED INPUT: pilotHooks=801 vehicleHooks=801 readback=1 collective=0 cyclicF=-0.00877868 cyclicR=-0.00488643 antiTorque=0.0670836 rotorRPM=196 targetRPM=196 +11:26:40.511 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=31 writtenSequence=801 applyCallbacks=1287 beforeWriteSequence=801 writtenAgeMs=57.207 beforeWriteAgeMs=23.7383 +11:26:40.511 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.00877868,-0.00488643,0.000416842> beforeWriteFRA=<-0.00877868,-0.00488643,0.0670836> writtenThrottle=0 beforeWriteThrottle=0 +11:26:40.511 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.00877868 cyclicAside=-0.00488643 tailCollective=0.533542 autohover=0 collectiveMode=3 +11:26:42.517 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=839 +11:26:42.518 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:42.518 SCRIPT : ERR POWERED FLIGHT: stage=4 height=10.4165 drift=4.6433 speed=0.277593 vertical=0.227713 up=0.991775 groundContact=0 fuel=1936.88 engine=1 +11:26:42.518 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.40704,-7.34138,0.422769> +11:26:42.518 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0831976,-0.134417,1.24387> +11:26:42.519 SCRIPT : ERR POWERED MOTION: offset=<0.24707,-10.4165,4.63672> velocity=<0.146141,0.227713,0.0620296> angularLocal=<0.00295509,0.000471619,0.00362921> forward=<0.0243537,-0.127781,0.991503> right=<0.999648,-0.00731816,-0.0254969> +11:26:42.519 SCRIPT : ERR POWERED INPUT: pilotHooks=839 vehicleHooks=839 readback=1 collective=0 cyclicF=-0.0785644 cyclicR=-0.00771583 antiTorque=0.0668595 rotorRPM=196 targetRPM=196 +11:26:42.519 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=32 writtenSequence=839 applyCallbacks=1347 beforeWriteSequence=839 writtenAgeMs=23.4648 beforeWriteAgeMs=23.4648 +11:26:42.519 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0785644,-0.00771583,0.000192732> beforeWriteFRA=<-0.0785644,-0.00771583,0.0668595> writtenThrottle=0 beforeWriteThrottle=0 +11:26:42.519 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0785644 cyclicAside=-0.00771583 tailCollective=0.53343 autohover=0 collectiveMode=3 +11:26:44.542 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=875 +11:26:44.542 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:44.542 SCRIPT : ERR POWERED FLIGHT: stage=4 height=10.6857 drift=2.03078 speed=2.07321 vertical=0.0694621 up=0.998626 groundContact=0 fuel=1936.79 engine=1 +11:26:44.543 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44458,-3.0033,-0.0141877> +11:26:44.543 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0113046,0.0577654,0.511894> +11:26:44.543 SCRIPT : ERR POWERED MOTION: offset=<-0.183594,-10.6857,2.02246> velocity=<0.220586,0.0694621,2.06027> angularLocal=<-0.0672608,5.59552e-05,0.00343253> forward=<0.0251754,-0.0523934,0.998309> right=<0.999682,0.000247283,-0.0251971> +11:26:44.543 SCRIPT : ERR POWERED INPUT: pilotHooks=875 vehicleHooks=875 readback=1 collective=0 cyclicF=-0.0509112 cyclicR=-0.00556213 antiTorque=0.0666058 rotorRPM=196 targetRPM=196 +11:26:44.544 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=33 writtenSequence=875 applyCallbacks=1408 beforeWriteSequence=875 writtenAgeMs=58.6797 beforeWriteAgeMs=12.3828 +11:26:44.544 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0509112,-0.00556213,-6.08951e-05> beforeWriteFRA=<-0.0509112,-0.00556213,0.0666058> writtenThrottle=0 beforeWriteThrottle=0 +11:26:44.544 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0509112 cyclicAside=-0.00556213 tailCollective=0.533303 autohover=0 collectiveMode=3 +11:26:46.578 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=911 +11:26:46.578 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:46.579 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.1874 drift=2.59628 speed=1.68354 vertical=0.309507 up=0.996321 groundContact=0 fuel=1936.71 engine=1 +11:26:46.579 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.42355,4.90715,-0.304366> +11:26:46.579 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0868624,0.0643158,-0.853193> +11:26:46.579 SCRIPT : ERR POWERED MOTION: offset=<-0.560059,-11.1874,-2.53516> velocity=<0.110169,0.309507,1.65117> angularLocal=<-0.054291,8.0483e-05,0.00138442> forward=<0.0247521,0.0855413,0.996027> right=<0.999666,0.0052927,-0.0252971> +11:26:46.579 SCRIPT : ERR POWERED INPUT: pilotHooks=911 vehicleHooks=911 readback=1 collective=0 cyclicF=0.0352596 cyclicR=-0.000755338 antiTorque=0.0668071 rotorRPM=196 targetRPM=196 +11:26:46.580 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=34 writtenSequence=911 applyCallbacks=1469 beforeWriteSequence=911 writtenAgeMs=30.6328 beforeWriteAgeMs=18.7383 +11:26:46.580 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0352596,-0.000755338,0.000140421> beforeWriteFRA=<0.0352596,-0.000755338,0.0668071> writtenThrottle=0 beforeWriteThrottle=0 +11:26:46.580 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0329321 cyclicAside=-0.000878006 tailCollective=0.533401 autohover=0 collectiveMode=3 +11:26:48.595 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=948 +11:26:48.595 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:48.596 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.7736 drift=3.73377 speed=0.687417 vertical=0.159901 up=0.992497 groundContact=0 fuel=1936.62 engine=1 +11:26:48.596 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.42974,7.01536,-0.326081> +11:26:48.596 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0743084,-0.140746,-1.18779> +11:26:48.596 SCRIPT : ERR POWERED MOTION: offset=<-0.598145,-11.7736,-3.68555> velocity=<-0.0657659,0.159901,-0.665318> angularLocal=<0.0222739,0.000139192,-0.000787151> forward=<0.0247643,0.122135,0.992204> right=<0.999655,0.00564855,-0.0256456> +11:26:48.596 SCRIPT : ERR POWERED INPUT: pilotHooks=948 vehicleHooks=948 readback=1 collective=0 cyclicF=0.0798464 cyclicR=0.00262895 antiTorque=0.0667366 rotorRPM=196 targetRPM=196 +11:26:48.597 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=35 writtenSequence=948 applyCallbacks=1529 beforeWriteSequence=947 writtenAgeMs=11.3906 beforeWriteAgeMs=28.6875 +11:26:48.597 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0795117,0.00265223,6.46531e-05> beforeWriteFRA=<0.0798464,0.00262895,0.0667366> writtenThrottle=0 beforeWriteThrottle=0 +11:26:48.597 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0798464 cyclicAside=0.00262895 tailCollective=0.533368 autohover=0 collectiveMode=3 +11:26:50.617 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=984 +11:26:50.617 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:50.617 SCRIPT : ERR POWERED FLIGHT: stage=4 height=11.8612 drift=0.382491 speed=2.15524 vertical=0.130661 up=0.999928 groundContact=0 fuel=1936.53 engine=1 +11:26:50.617 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.45066,0.667896,-0.167584> +11:26:50.617 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0152054,0.122856,-0.103712> +11:26:50.618 SCRIPT : ERR POWERED MOTION: offset=<-0.334473,-11.8612,-0.185547> velocity=<-0.162922,0.130661,-2.1451> angularLocal=<0.072395,-0.000184049,-0.00170046> forward=<0.0253144,0.0116567,0.999612> right=<0.999674,0.00292469,-0.0253501> +11:26:50.618 SCRIPT : ERR POWERED INPUT: pilotHooks=984 vehicleHooks=984 readback=1 collective=0 cyclicF=0.0286431 cyclicR=0.00345451 antiTorque=0.0666175 rotorRPM=196 targetRPM=196 +11:26:50.618 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=36 writtenSequence=984 applyCallbacks=1590 beforeWriteSequence=984 writtenAgeMs=56.9766 beforeWriteAgeMs=11.5273 +11:26:50.618 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0286431,0.00345451,-4.92099e-05> beforeWriteFRA=<0.0286431,0.00345451,0.0666175> writtenThrottle=0 beforeWriteThrottle=0 +11:26:50.618 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0286431 cyclicAside=0.00345451 tailCollective=0.533309 autohover=0 collectiveMode=3 +11:26:52.639 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1022 +11:26:52.639 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:52.639 SCRIPT : ERR POWERED FLIGHT: stage=4 height=12.286 drift=3.69629 speed=1.0637 vertical=0.3111 up=0.993932 groundContact=0 fuel=1936.44 engine=1 +11:26:52.639 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44274,-6.31481,0.0260814> +11:26:52.639 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0474407,-0.0290734,1.08496> +11:26:52.640 SCRIPT : ERR POWERED MOTION: offset=<-0.000488281,-12.286,3.69629> velocity=<-0.124504,0.3111,-1.00954> angularLocal=<0.0360687,-7.1496e-05,-0.00144928> forward=<0.0250251,-0.109991,0.993617> right=<0.999682,-0.000452444,-0.0252279> +11:26:52.640 SCRIPT : ERR POWERED INPUT: pilotHooks=1022 vehicleHooks=1022 readback=1 collective=0 cyclicF=-0.0569586 cyclicR=0.00216583 antiTorque=0.0666621 rotorRPM=196 targetRPM=196 +11:26:52.640 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=37 writtenSequence=1022 applyCallbacks=1650 beforeWriteSequence=1022 writtenAgeMs=33.5938 beforeWriteAgeMs=33.5938 +11:26:52.640 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0569586,0.00216583,-4.62043e-06> beforeWriteFRA=<-0.0569586,0.00216583,0.0666621> writtenThrottle=0 beforeWriteThrottle=0 +11:26:52.641 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0569586 cyclicAside=0.00216583 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:26:54.650 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1059 +11:26:54.651 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:54.651 SCRIPT : ERR POWERED FLIGHT: stage=4 height=12.7106 drift=3.28511 speed=1.32146 vertical=0.0916998 up=0.99487 groundContact=0 fuel=1936.35 engine=1 +11:26:54.651 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44313,-5.80462,0.137242> +11:26:54.652 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0587391,-0.0843175,0.98681> +11:26:54.652 SCRIPT : ERR POWERED MOTION: offset=<0.137695,-12.7106,3.28223> velocity=<-0.00808967,0.0916998,1.31825> angularLocal=<-0.0438092,-4.57002e-06,-0.000445364> forward=<0.0250555,-0.101137,0.994557> right=<0.999674,-0.00238303,-0.0254268> +11:26:54.652 SCRIPT : ERR POWERED INPUT: pilotHooks=1059 vehicleHooks=1059 readback=1 collective=0 cyclicF=-0.0714712 cyclicR=-5.01706e-05 antiTorque=0.0666396 rotorRPM=196 targetRPM=196 +11:26:54.652 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=38 writtenSequence=1059 applyCallbacks=1711 beforeWriteSequence=1059 writtenAgeMs=13.9688 beforeWriteAgeMs=13.9688 +11:26:54.653 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0714712,-5.01706e-05,-2.71522e-05> beforeWriteFRA=<-0.0714712,-5.01706e-05,0.0666396> writtenThrottle=0 beforeWriteThrottle=0 +11:26:54.653 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.072435 cyclicAside=2.28249e-05 tailCollective=0.533321 autohover=0 collectiveMode=3 +11:26:56.671 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1095 +11:26:56.671 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:56.671 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.0247 drift=0.953528 speed=2.10722 vertical=0.209173 up=0.999563 groundContact=0 fuel=1936.26 engine=1 +11:26:56.672 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.456,1.68868,0.125925> +11:26:56.672 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00648513,0.138883,-0.303297> +11:26:56.672 SCRIPT : ERR POWERED MOTION: offset=<0.0512695,-13.0247,-0.952148> velocity=<0.0662714,0.209173,2.09577> angularLocal=<-0.0695015,-0.000101466,0.000504093> forward=<0.0253982,0.0294688,0.999243> right=<0.999676,-0.00219685,-0.0253444> +11:26:56.672 SCRIPT : ERR POWERED INPUT: pilotHooks=1095 vehicleHooks=1095 readback=1 collective=0 cyclicF=-0.00526942 cyclicR=-0.00130074 antiTorque=0.0665404 rotorRPM=196 targetRPM=196 +11:26:56.672 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=39 writtenSequence=1095 applyCallbacks=1771 beforeWriteSequence=1094 writtenAgeMs=12.6719 beforeWriteAgeMs=28.4922 +11:26:56.673 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.00247639,-0.00130234,-0.000127276> beforeWriteFRA=<-0.00526942,-0.00130074,0.0665404> writtenThrottle=0 beforeWriteThrottle=0 +11:26:56.673 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.00526942 cyclicAside=-0.00130074 tailCollective=0.53327 autohover=0 collectiveMode=3 +11:26:58.696 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1133 +11:26:58.696 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:26:58.696 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.694 drift=3.94199 speed=0.457436 vertical=0.271912 up=0.99235 groundContact=0 fuel=1936.17 engine=1 +11:26:58.696 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.45071,7.09137,0.0538016> +11:26:58.696 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0304288,-0.104712,-1.20832> +11:26:58.697 SCRIPT : ERR POWERED MOTION: offset=<-0.0678711,-13.694,-3.94141> velocity=<0.0367551,0.271912,0.366006> angularLocal=<-0.0144154,-0.00011921,0.000641472> forward=<0.0251233,0.123452,0.992032> right=<0.999682,-0.000931831,-0.025201> +11:26:58.697 SCRIPT : ERR POWERED INPUT: pilotHooks=1133 vehicleHooks=1133 readback=1 collective=0 cyclicF=0.0724658 cyclicR=-0.00112211 antiTorque=0.066597 rotorRPM=196 targetRPM=196 +11:26:58.697 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=40 writtenSequence=1133 applyCallbacks=1832 beforeWriteSequence=1133 writtenAgeMs=15.6016 beforeWriteAgeMs=15.6016 +11:26:58.697 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0724658,-0.00112211,-6.97512e-05> beforeWriteFRA=<0.0724658,-0.00112211,0.066597> writtenThrottle=0 beforeWriteThrottle=0 +11:26:58.697 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0713309 cyclicAside=-0.00114273 tailCollective=0.533297 autohover=0 collectiveMode=3 +11:27:00.731 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1171 +11:27:00.731 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:00.731 SCRIPT : ERR POWERED FLIGHT: stage=4 height=13.9411 drift=2.12916 speed=1.79424 vertical=0.07216 up=0.997649 groundContact=0 fuel=1936.08 engine=1 +11:27:00.731 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.4425,3.92976,-0.00832296> +11:27:00.731 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0264369,0.0080122,-0.672154> +11:27:00.732 SCRIPT : ERR POWERED MOTION: offset=<-0.0722656,-13.9411,-2.12793> velocity=<-0.0286226,0.07216,-1.79256> angularLocal=<0.0606457,-2.58879e-05,0.000365214> forward=<0.0251144,0.0685336,0.997333> right=<0.999683,0.000144921,-0.0251836> +11:27:00.732 SCRIPT : ERR POWERED INPUT: pilotHooks=1171 vehicleHooks=1171 readback=1 collective=0 cyclicF=0.0562463 cyclicR=-0.00038257 antiTorque=0.0666515 rotorRPM=196 targetRPM=196 +11:27:00.732 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=41 writtenSequence=1171 applyCallbacks=1893 beforeWriteSequence=1171 writtenAgeMs=12.5234 beforeWriteAgeMs=12.5234 +11:27:00.732 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0562463,-0.00038257,-1.52215e-05> beforeWriteFRA=<0.0562463,-0.00038257,0.0666515> writtenThrottle=0 beforeWriteThrottle=0 +11:27:00.733 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0576131 cyclicAside=-0.000398805 tailCollective=0.533326 autohover=0 collectiveMode=3 +11:27:02.752 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1207 +11:27:02.752 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:02.753 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.1621 drift=2.26099 speed=1.78732 vertical=0.280383 up=0.997695 groundContact=0 fuel=1936 engine=1 +11:27:02.753 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44248,-3.89065,-0.0265966> +11:27:02.753 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0192071,0.0930083,0.682125> +11:27:02.753 SCRIPT : ERR POWERED MOTION: offset=<0.0332031,-14.1621,2.26074> velocity=<-0.044582,0.280383,-1.76462> angularLocal=<0.059296,-2.99598e-05,-2.69292e-05> forward=<0.0251154,-0.0678526,0.997379> right=<0.999684,0.000463129,-0.0251419> +11:27:02.753 SCRIPT : ERR POWERED INPUT: pilotHooks=1207 vehicleHooks=1207 readback=1 collective=0 cyclicF=-0.0221638 cyclicR=0.00019329 antiTorque=0.0666529 rotorRPM=196 targetRPM=196 +11:27:02.754 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=42 writtenSequence=1207 applyCallbacks=1953 beforeWriteSequence=1207 writtenAgeMs=49.3594 beforeWriteAgeMs=37.1484 +11:27:02.754 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0221638,0.00019329,-1.38329e-05> beforeWriteFRA=<-0.0221638,0.00019329,0.0666529> writtenThrottle=0 beforeWriteThrottle=0 +11:27:02.754 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0221638 cyclicAside=0.00019329 tailCollective=0.533326 autohover=0 collectiveMode=3 +11:27:04.782 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1245 +11:27:04.783 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:04.783 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.6955 drift=3.945 speed=0.421523 vertical=0.194241 up=0.992407 groundContact=0 fuel=1935.91 engine=1 +11:27:04.783 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44112,-7.06529,-0.0207559> +11:27:04.783 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0332213,-0.13704,1.19748> +11:27:04.783 SCRIPT : ERR POWERED MOTION: offset=<0.0722656,-14.6955,3.94434> velocity=<0.00932437,0.194241,0.373986> angularLocal=<-0.0107139,-1.39111e-05,-4.36094e-05> forward=<0.0249586,-0.123,0.992093> right=<0.999685,0.000359508,-0.025105> +11:27:04.783 SCRIPT : ERR POWERED INPUT: pilotHooks=1245 vehicleHooks=1245 readback=1 collective=0 cyclicF=-0.0781857 cyclicR=6.54377e-05 antiTorque=0.0666616 rotorRPM=196 targetRPM=196 +11:27:04.784 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=43 writtenSequence=1245 applyCallbacks=2014 beforeWriteSequence=1245 writtenAgeMs=29.2656 beforeWriteAgeMs=29.2656 +11:27:04.784 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0781857,6.54377e-05,-5.11496e-06> beforeWriteFRA=<-0.0781857,6.54377e-05,0.0666616> writtenThrottle=0 beforeWriteThrottle=0 +11:27:04.784 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0781857 cyclicAside=6.54377e-05 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:27:06.803 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1281 +11:27:06.803 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:06.803 SCRIPT : ERR POWERED FLIGHT: stage=4 height=14.9681 drift=0.893589 speed=2.07067 vertical=0.107028 up=0.999582 groundContact=0 fuel=1935.82 engine=1 +11:27:06.803 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43889,-1.65715,-0.0166892> +11:27:06.804 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0107004,0.0938567,0.276689> +11:27:06.804 SCRIPT : ERR POWERED MOTION: offset=<-0.0078125,-14.9681,0.893555> velocity=<0.0518637,0.107028,2.06725> angularLocal=<-0.0693544,5.35708e-06,-2.31072e-05> forward=<0.0251003,-0.0289187,0.999267> right=<0.999685,0.00029116,-0.0251023> +11:27:06.804 SCRIPT : ERR POWERED INPUT: pilotHooks=1281 vehicleHooks=1281 readback=1 collective=0 cyclicF=-0.0367019 cyclicR=9.56036e-06 antiTorque=0.066678 rotorRPM=196 targetRPM=196 +11:27:06.804 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=44 writtenSequence=1281 applyCallbacks=2075 beforeWriteSequence=1281 writtenAgeMs=38.625 beforeWriteAgeMs=11.7891 +11:27:06.805 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0367019,9.56036e-06,1.13196e-05> beforeWriteFRA=<-0.0367019,9.56036e-06,0.066678> writtenThrottle=0 beforeWriteThrottle=0 +11:27:06.805 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0388868 cyclicAside=1.19481e-05 tailCollective=0.533339 autohover=0 collectiveMode=3 +11:27:08.817 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1319 +11:27:08.817 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:08.818 SCRIPT : ERR POWERED FLIGHT: stage=4 height=15.5335 drift=3.17689 speed=1.29807 vertical=0.310332 up=0.995218 groundContact=0 fuel=1935.73 engine=1 +11:27:08.818 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43829,5.60562,-0.0160247> +11:27:08.818 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0204834,0.0109059,-0.970201> +11:27:08.818 SCRIPT : ERR POWERED MOTION: offset=<-0.115234,-15.5335,-3.1748> velocity=<0.0316297,0.310332,1.26003> angularLocal=<-0.0435127,1.66167e-05,4.26336e-06> forward=<0.0249802,0.0976804,0.994904> right=<0.999684,0.000278346,-0.0251275> +11:27:08.818 SCRIPT : ERR POWERED INPUT: pilotHooks=1319 vehicleHooks=1319 readback=1 collective=0 cyclicF=0.0474357 cyclicR=3.57318e-06 antiTorque=0.066681 rotorRPM=196 targetRPM=196 +11:27:08.818 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=45 writtenSequence=1319 applyCallbacks=2135 beforeWriteSequence=1319 writtenAgeMs=22.0938 beforeWriteAgeMs=22.0938 +11:27:08.819 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0474357,3.57318e-06,1.42661e-05> beforeWriteFRA=<0.0474357,3.57318e-06,0.066681> writtenThrottle=0 beforeWriteThrottle=0 +11:27:08.819 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0474357 cyclicAside=3.57318e-06 tailCollective=0.533341 autohover=0 collectiveMode=3 +11:27:10.835 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1356 +11:27:10.835 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:10.835 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.0203 drift=3.42792 speed=1.0471 vertical=0.1201 up=0.994078 groundContact=0 fuel=1935.64 engine=1 +11:27:10.835 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43976,6.23839,-0.0162263> +11:27:10.835 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0226352,-0.107261,-1.05508> +11:27:10.836 SCRIPT : ERR POWERED MOTION: offset=<-0.121094,-16.0203,-3.42578> velocity=<-0.0262714,0.1201,-1.03986> angularLocal=<0.0345482,6.50157e-06,2.88954e-06> forward=<0.0249771,0.108665,0.993765> right=<0.999683,0.000281526,-0.0251566> +11:27:10.836 SCRIPT : ERR POWERED INPUT: pilotHooks=1356 vehicleHooks=1356 readback=1 collective=0 cyclicF=0.0746276 cyclicR=1.01434e-05 antiTorque=0.0666696 rotorRPM=196 targetRPM=196 +11:27:10.836 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=46 writtenSequence=1356 applyCallbacks=2196 beforeWriteSequence=1356 writtenAgeMs=56.1172 beforeWriteAgeMs=12.2969 +11:27:10.836 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0746276,1.01434e-05,2.85979e-06> beforeWriteFRA=<0.0746276,1.01434e-05,0.0666696> writtenThrottle=0 beforeWriteThrottle=0 +11:27:10.837 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0746276 cyclicAside=1.01434e-05 tailCollective=0.533335 autohover=0 collectiveMode=3 +11:27:12.850 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1394 +11:27:12.850 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:12.851 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.1214 drift=0.435963 speed=2.10004 vertical=0.176019 up=0.999934 groundContact=0 fuel=1935.55 engine=1 +11:27:12.851 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.4412,-0.658209,-0.0162641> +11:27:12.851 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00696167,0.132152,0.124826> +11:27:12.851 SCRIPT : ERR POWERED MOTION: offset=<-0.019043,-16.1214,0.435547> velocity=<-0.0527285,0.176019,-2.09199> angularLocal=<0.0698272,-1.3021e-05,-6.22612e-06> forward=<0.0251494,-0.0114877,0.999618> right=<0.999684,0.000283844,-0.0251478> +11:27:12.851 SCRIPT : ERR POWERED INPUT: pilotHooks=1394 vehicleHooks=1394 readback=1 collective=0 cyclicF=0.0131469 cyclicR=2.6584e-05 antiTorque=0.0666607 rotorRPM=196 targetRPM=196 +11:27:12.852 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=47 writtenSequence=1394 applyCallbacks=2256 beforeWriteSequence=1394 writtenAgeMs=21.9844 beforeWriteAgeMs=21.9844 +11:27:12.852 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0131469,2.6584e-05,-6.00937e-06> beforeWriteFRA=<0.0131469,2.6584e-05,0.0666607> writtenThrottle=0 beforeWriteThrottle=0 +11:27:12.852 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0131469 cyclicAside=2.6584e-05 tailCollective=0.53333 autohover=0 collectiveMode=3 +11:27:14.862 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1430 +11:27:14.862 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:14.863 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.6005 drift=3.77117 speed=0.717035 vertical=0.291095 up=0.993232 groundContact=0 fuel=1935.46 engine=1 +11:27:14.863 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.44115,-6.66984,-0.0145814> +11:27:14.863 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0195332,-0.0701183,1.13977> +11:27:14.863 SCRIPT : ERR POWERED MOTION: offset=<0.0708008,-16.6005,3.77051> velocity=<-0.0166265,0.291095,-0.655077> angularLocal=<0.0243317,-1.29213e-05,-1.4613e-05> forward=<0.0249799,-0.116148,0.992918> right=<0.999684,0.00025277,-0.0251205> +11:27:14.863 SCRIPT : ERR POWERED INPUT: pilotHooks=1430 vehicleHooks=1430 readback=1 collective=0 cyclicF=-0.0648029 cyclicR=2.87373e-05 antiTorque=0.0666611 rotorRPM=196 targetRPM=196 +11:27:14.864 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=48 writtenSequence=1430 applyCallbacks=2316 beforeWriteSequence=1430 writtenAgeMs=44.7812 beforeWriteAgeMs=34.6562 +11:27:14.864 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0648029,2.87373e-05,-5.64014e-06> beforeWriteFRA=<-0.0648029,2.87373e-05,0.0666611> writtenThrottle=0 beforeWriteThrottle=0 +11:27:14.864 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0648029 cyclicAside=2.87373e-05 tailCollective=0.533331 autohover=0 collectiveMode=3 +11:27:16.873 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1468 +11:27:16.874 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:16.874 SCRIPT : ERR POWERED FLIGHT: stage=4 height=16.9745 drift=2.62435 speed=1.56389 vertical=0.0803206 up=0.99654 groundContact=0 fuel=1935.37 engine=1 +11:27:16.874 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43987,-4.76785,-0.0132604> +11:27:16.874 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0114671,-0.0346059,0.810814> +11:27:16.874 SCRIPT : ERR POWERED MOTION: offset=<0.0415039,-16.9745,2.62402> velocity=<0.0391109,0.0803206,1.56134> angularLocal=<-0.0527273,-1.67858e-06,-6.64045e-06> forward=<0.0250409,-0.0831187,0.996225> right=<0.999685,0.000230637,-0.0251086> +11:27:16.874 SCRIPT : ERR POWERED INPUT: pilotHooks=1468 vehicleHooks=1468 readback=1 collective=0 cyclicF=-0.0641359 cyclicR=1.12325e-05 antiTorque=0.0666701 rotorRPM=196 targetRPM=196 +11:27:16.875 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=49 writtenSequence=1468 applyCallbacks=2376 beforeWriteSequence=1467 writtenAgeMs=20.4062 beforeWriteAgeMs=41.6875 +11:27:16.875 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<-0.0628455,1.27633e-05,3.74205e-06> beforeWriteFRA=<-0.0641359,1.12325e-05,0.0666701> writtenThrottle=0 beforeWriteThrottle=0 +11:27:16.875 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=-0.0641359 cyclicAside=1.12325e-05 tailCollective=0.533335 autohover=0 collectiveMode=3 +11:27:18.902 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1505 +11:27:18.902 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:18.902 SCRIPT : ERR POWERED FLIGHT: stage=4 height=17.3558 drift=1.67177 speed=1.91362 vertical=0.25012 up=0.998739 groundContact=0 fuel=1935.28 engine=1 +11:27:18.902 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43871,2.87773,-0.0129279> +11:27:18.903 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.00838905,0.115446,-0.509012> +11:27:18.903 SCRIPT : ERR POWERED MOTION: offset=<-0.0786133,-17.3558,-1.66992> velocity=<0.0476524,0.25012,1.8966> angularLocal=<-0.0636593,1.04061e-05,8.7237e-06> forward=<0.025076,0.0502047,0.998424> right=<0.999684,0.00022535,-0.025119> +11:27:18.903 SCRIPT : ERR POWERED INPUT: pilotHooks=1505 vehicleHooks=1505 readback=1 collective=0 cyclicF=0.0105368 cyclicR=-4.18069e-05 antiTorque=0.0666785 rotorRPM=196 targetRPM=196 +11:27:18.903 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=50 writtenSequence=1505 applyCallbacks=2436 beforeWriteSequence=1505 writtenAgeMs=52.6953 beforeWriteAgeMs=29.2969 +11:27:18.904 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0105368,-4.18069e-05,1.17582e-05> beforeWriteFRA=<0.0105368,-4.18069e-05,0.0666785> writtenThrottle=0 beforeWriteThrottle=0 +11:27:18.904 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.0105368 cyclicAside=-4.18069e-05 tailCollective=0.533339 autohover=0 collectiveMode=3 +11:27:20.922 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1543 +11:27:20.922 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:27:20.922 SCRIPT : ERR POWERED FLIGHT: stage=4 height=18.0018 drift=3.91825 speed=0.234934 vertical=0.229675 up=0.992441 groundContact=0 fuel=1935.2 engine=1 +11:27:20.923 SCRIPT : ERR POWERED HEADING: desiredYaw=1.44021 actualYawPitchRoll=<1.43919,7.04933,-0.0142789> +11:27:20.923 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0391303,-0.125379,-1.19654> +11:27:20.923 SCRIPT : ERR POWERED MOTION: offset=<-0.132324,-18.0018,-3.91602> velocity=<-0.00141837,0.229675,-0.0494127> angularLocal=<-0.000628558,1.22458e-05,9.05577e-06> forward=<0.0249261,0.122724,0.992128> right=<0.999684,0.00024733,-0.0251465> +11:27:20.923 SCRIPT : ERR POWERED INPUT: pilotHooks=1543 vehicleHooks=1543 readback=1 collective=0 cyclicF=0.0758206 cyclicR=-1.05964e-05 antiTorque=0.0666733 rotorRPM=196 targetRPM=196 +11:27:20.923 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=51 writtenSequence=1543 applyCallbacks=2497 beforeWriteSequence=1543 writtenAgeMs=12.1797 beforeWriteAgeMs=12.1797 +11:27:20.924 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0.0758206,-1.05964e-05,6.58474e-06> beforeWriteFRA=<0.0758206,-1.05964e-05,0.0666733> writtenThrottle=0 beforeWriteThrottle=0 +11:27:20.924 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0.075285 cyclicAside=-1.07496e-05 tailCollective=0.533337 autohover=0 collectiveMode=3 +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: powered-flight physical test stays inside height, drift and tilt safety envelope +11:27:20.924 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-sha256.json new file mode 100644 index 0000000..615ef24 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112502-flight-height-refusal/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "2911606c5541a593198eeb487c094741e8ae547677416dbbc4bb4d6f11c91c21", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt new file mode 100644 index 0000000..1a5fcce --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt @@ -0,0 +1,717 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00\console.log started at 2026-09-19 11:29:00 (2026-09-19 09:29:00 UTC) + +11:29:00.756 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00' to filesystem under name logs +11:29:00.756 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:29:00.756 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:29:00.758 PROFILING : Workbench Create Engine took: 11.835300 ms +11:29:01.802 INIT : INIT : Workbench Init Engine +11:29:01.802 ENGINE : Initializing engine, version 192142 +11:29:01.802 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome mortar-refresh -noThrow -disableCrashReporter +11:29:01.812 ENGINE : Addon dirs: +11:29:01.812 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/' +11:29:01.812 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:29:01.812 ENGINE : dir: './addons' +11:29:01.812 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:29:01.812 ENGINE : Available addons: +11:29:01.812 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:29:01.812 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:29:01.812 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:29:01.812 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:29:01.812 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:29:01.812 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:29:01.812 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:29:01.813 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat +11:29:01.813 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map +11:29:01.813 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel +11:29:01.813 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai +11:29:01.814 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:29:01.937 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:29:01.940 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:29:01.941 ENGINE : CPU vendor : AuthenticAMD +11:29:01.941 ENGINE : CPU type : 2 +11:29:01.941 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:29:01.941 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:29:01.941 ENGINE : CPU count logical : 16 +11:29:01.941 ENGINE : CPU count physical : 8 +11:29:01.941 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:29:01.941 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:29:01.941 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:29:01.941 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:29:01.942 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:29:01.942 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:29:01.942 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:29:02.078 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +11:29:02.081 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:29:02.081 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00/resourceDatabase.rdb) +11:29:02.227 RESOURCES : RESOURCES : ResourceDB: full scan +11:29:02.231 RESOURCES : RESOURCES : scanning... +11:29:02.231 RESOURCES : RESOURCES : scanning @"ERR_Chat" +11:29:02.233 RESOURCES : RESOURCES : scanning @"ERR_Map" +11:29:02.235 RESOURCES : RESOURCES : scanning @"ERR_Intel" +11:29:02.235 RESOURCES : RESOURCES : scanning @"ERR_Ai" +11:29:02.237 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:29:02.240 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:29:02.383 RESOURCES : RESOURCES : scanning @"core" +11:29:02.386 RESOURCES : RESOURCES : scanning @"profile" +11:29:02.387 RESOURCES : RESOURCES : scanning @"logs" +11:29:02.387 RESOURCES : RESOURCES : processing meta-files... +11:29:02.454 RESOURCES : RESOURCES : processing files... +11:29:02.465 INIT : Workbench startup +11:29:02.465 INIT : Workbench Init Engine +11:29:02.465 RESOURCES : ResourceDB: full scan +11:29:02.465 RESOURCES : processing files... +11:29:02.465 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:29:02.465 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:29:02.465 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:29:02.465 RESOURCES : RESOURCES : processing folders... +11:29:02.472 RESOURCES : RESOURCES : creating GUID-item mapping... +11:29:02.490 RESOURCES : RESOURCES : building tree... +11:29:02.550 PROFILING : ResourceDB: full scan took: 323.076600 ms +11:29:02.551 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb) +11:29:02.552 RESOURCES : ResourceDB: written 804/804 bytes +11:29:02.552 RESOURCES : ResourceDB: cache successfully saved +11:29:02.553 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb) +11:29:02.554 RESOURCES : ResourceDB: written 750/750 bytes +11:29:02.554 RESOURCES : ResourceDB: cache successfully saved +11:29:02.554 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb) +11:29:02.556 RESOURCES : ResourceDB: written 227/227 bytes +11:29:02.556 RESOURCES : ResourceDB: cache successfully saved +11:29:02.556 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb) +11:29:02.558 RESOURCES : ResourceDB: written 1721/1721 bytes +11:29:02.558 RESOURCES : ResourceDB: cache successfully saved +11:29:02.558 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:29:02.561 RESOURCES : ResourceDB: written 6865/6865 bytes +11:29:02.561 RESOURCES : ResourceDB: cache successfully saved +11:29:02.561 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:29:02.563 RESOURCES : ResourceDB: written 206/206 bytes +11:29:02.563 RESOURCES : ResourceDB: cache successfully saved +11:29:02.563 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00/resourceDatabase.rdb) +11:29:02.565 RESOURCES : ResourceDB: written 162/162 bytes +11:29:02.565 RESOURCES : ResourceDB: cache successfully saved +11:29:02.565 ENGINE : GameProject load +11:29:02.565 ENGINE : Loaded addons: +11:29:02.565 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:29:02.565 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:29:02.565 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:29:02.565 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:29:02.565 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:29:02.565 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:29:02.565 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:29:02.568 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:29:02.568 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:29:02.568 ENGINE : Engine user settings config loaded +11:29:02.568 PROFILING : Settings changed took: 0.001800 ms +11:29:02.673 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:29:02.675 RENDER : Basic screen setup: +11:29:02.675 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:29:02.675 RENDER : MSAA : none +11:29:02.688 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:29:02.688 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:29:02.688 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:29:02.688 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:29:02.688 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:29:02.688 RENDER : AMD AGS correctly initialized +11:29:02.689 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 +11:29:02.689 RENDER : Detected output devices: +11:29:02.689 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:29:02.689 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:29:02.689 RENDER : Concurrent frames limit 2 +11:29:02.765 RENDER : DX12 device successfully created by AMD AGS library +11:29:02.765 RENDER : * user markers not supported in this version AMD SW +11:29:02.765 RENDER : Graphics device features +11:29:02.765 RENDER : Needed: +11:29:02.765 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:29:02.765 RENDER : Optional: +11:29:02.765 RENDER : * Allow tearing (VSYNC) : 1 +11:29:02.765 RENDER : * 16 bits : 1 +11:29:02.765 RENDER : * Resource heap tier : 3 +11:29:02.765 RENDER : * Persistent heaps (DRED) : 1 +11:29:02.765 RENDER : * DRED 1.2 is supported by compiler +11:29:02.786 RENDER : Main RT format setup. +11:29:02.786 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:29:02.786 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:29:02.788 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:29:02.815 PROFILING : Settings changed took: 0.016300 ms +11:29:03.349 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:29:03.349 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:29:03.349 AUDIO : Audio client: +11:29:03.349 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:29:03.352 RENDER : RENDER : Reload shaders +11:29:03.352 RENDER : Enfusion shader version 13 +11:29:03.352 INIT : INIT : ShaderListReload +11:29:03.352 PROFILING : ShaderListReload took: 0.000500 ms +11:29:03.496 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:29:03.496 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:29:03.496 AUDIO : Audio client: +11:29:03.496 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:29:03.743 RENDER : Loaded 3752 newer shader binaries +11:29:03.744 PROFILING : Reload shaders took: 391.612400 ms +11:29:03.744 ENGINE : Initializing inputs. +11:29:03.757 NETWORK : Initializing networking. +11:29:03.757 NETWORK : Using new GameRplScheduler. +11:29:03.757 SCRIPT : SCRIPT : Initializing scripts +11:29:03.758 SCRIPT : SCRIPT : ScriptProjectManager init +11:29:05.886 PROFILING : ScriptProjectManager init took: 2128.013600 ms +11:29:05.987 PROFILING : Initializing scripts took: 2229.585100 ms +11:29:06.007 ENGINE : Enfusion engine successfully created. +11:29:06.007 PROFILING : Workbench Init Engine took: 4204.741400 ms +11:29:06.007 INIT : INIT : Workbench Create Game +11:29:06.021 GUI : Using default language (en_us) +11:29:06.021 GUI : Loading 'en_us' localization file. +11:29:06.021 INIT : INIT : Loading StringTable +11:29:06.047 PROFILING : Loading StringTable took: 26.575500 ms +11:29:06.047 SCRIPT : SCRIPT : Compiling GameLib scripts +11:29:06.125 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:29:06.126 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:29:06.126 PROFILING : Compiling GameLib scripts took: 79.004200 ms +11:29:06.126 SCRIPT : SCRIPT : Compiling Game scripts +11:29:07.470 INIT : Workbench Create Game +11:29:07.470 SCRIPT : Compiling Game scripts +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:29:07.628 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:07.757 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:29:07.792 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:29:07.891 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:29:07.927 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:29:07.990 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:29:08.059 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.096 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:29:08.378 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:29:08.385 SCRIPT : Module: Game; loaded 5776x files; 11367x classes; used 33494K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 2a945cbe +11:29:08.424 PROFILING : Compiling Game scripts took: 2297.439000 ms +11:29:08.430 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:29:08.469 ENGINE : Game successfully created. +11:29:08.470 PROFILING : Workbench Create Game took: 2463.120200 ms +11:29:08.479 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails +11:29:09.341 INIT : INIT : Workbench Reload Game +11:29:09.343 ENGINE : Game destroyed. +11:29:09.350 GUI : Using default language (en_us) +11:29:09.350 GUI : Loading 'en_us' localization file. +11:29:09.350 INIT : INIT : Loading StringTable +11:29:09.360 PROFILING : Loading StringTable took: 9.916000 ms +11:29:09.360 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:29:09.367 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:29:09.367 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:29:09.367 ENGINE : Game successfully created. +11:29:09.367 ENGINE : Game successfully initialized. +11:29:09.367 PROFILING : Workbench Reload Game took: 26.040000 ms +11:29:10.075 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:29:11.103 PROFILING : Entities load took: 1027.639900 ms +11:29:11.114 WORLD : WORLD : CreateEntities +11:29:11.118 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:29:11.119 PROFILING : NotifyBeforeEntitiesCreated took: 0.002500 ms +11:29:11.119 WORLD : WORLD : Wait for preloading data +11:29:11.119 PROFILING : Wait for preloading data took: 0.002100 ms +11:29:11.233 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:29:11.233 PROFILING : PROFILING : Terrain load +11:29:13.228 PROFILING : Terrain load took: 1994.798200 ms +11:29:17.173 WORLD : CreateEntities +11:29:17.174 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:29:17.174 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:29:17.174 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:29:27.901 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:29:27.902 PROFILING : NotifyBeforeEntitiesInitialized took: 0.004700 ms +11:29:28.448 WORLD : WORLD : NotifyEntitiesInitialized +11:29:28.448 TERRAIN : TERRAIN : Initializing road networks... +11:29:28.450 PROFILING : Initializing road networks... took: 2.112700 ms +11:29:28.450 PROFILING : NotifyEntitiesInitialized took: 2.359400 ms +11:29:28.450 PROFILING : CreateEntities took: 17335.489900 ms +11:29:28.625 PROFILING : * WorldEditor: LoadWorld: 18554.412800 ms +11:29:30.125 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:29:30.125 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:29:30.127 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:29:30.127 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:29:30.212 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:29:30.215 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:29:30.215 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:29:30.235 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:29:30.256 BACKEND : Attempting online Game Config instead. +11:29:33.595 INIT : INIT : Workbench Reload Game +11:29:33.597 ENGINE : Game destroyed. +11:29:33.604 GUI : Using default language (en_us) +11:29:33.604 GUI : Loading 'en_us' localization file. +11:29:33.604 INIT : INIT : Loading StringTable +11:29:33.625 PROFILING : Loading StringTable took: 20.361500 ms +11:29:33.625 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:29:33.633 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:29:33.633 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:29:33.633 ENGINE : Game successfully created. +11:29:33.633 ENGINE : Game successfully initialized. +11:29:33.633 PROFILING : Workbench Reload Game took: 38.376900 ms +11:29:33.635 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:29:33.691 PLATFORM : Save data from container 'settings' have been loaded +11:29:33.780 PLATFORM : Save data from container 'sessions' have been loaded +11:29:33.781 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:29:33.781 ENGINE : Game user settings config loaded +11:29:33.879 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:29:33.886 WORLD : WORLD : Game::LoadEntities +11:29:33.886 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:29:33.888 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:29:33.888 WORLD : WORLD : CreateEntities +11:29:33.888 WORLD : WORLD : CreateEntities +11:29:33.888 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:29:33.901 RESOURCES : Loaded mission headers from 7 addon(s)! +11:29:33.901 PROFILING : NotifyBeforeEntitiesCreated took: 13.249700 ms +11:29:33.901 WORLD : WORLD : Wait for preloading data +11:29:33.901 PROFILING : Wait for preloading data took: 0.000500 ms +11:29:38.651 WORLD : Game::LoadEntities +11:29:38.651 WORLD : CreateEntities +11:29:38.651 WORLD : CreateEntities +11:29:38.651 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:29:38.651 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:29:38.651 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:29:40.117 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:29:40.117 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:29:40.117 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:29:45.771 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:29:45.772 PROFILING : NotifyBeforeEntitiesInitialized took: 0.059000 ms +11:29:47.855 WORLD : InitEntities 'world' +11:29:47.855 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:29:47.855 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:29:47.886 WORLD : InitEntities 'world' +11:29:47.886 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:29:47.886 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:29:47.886 WORLD : WORLD : NotifyEntitiesInitialized +11:29:47.886 TERRAIN : TERRAIN : Initializing road networks... +11:29:47.890 PROFILING : Initializing road networks... took: 3.307000 ms +11:29:47.890 DEFAULT : DEFAULT : WorldVolumesCollection +11:29:47.951 PROFILING : WorldVolumesCollection took: 60.586400 ms +11:29:47.951 INIT : INIT : SoundWorldInit +11:29:47.967 PROFILING : SoundWorldInit took: 16.517000 ms +11:29:47.967 PROFILING : NotifyEntitiesInitialized took: 80.736300 ms +11:29:47.967 PROFILING : CreateEntities took: 14079.045400 ms +11:29:47.967 PROFILING : CreateEntities took: 14079.222400 ms +11:29:47.968 WORLD : WORLD : Wait for preloading data around camera +11:29:47.968 PROFILING : Wait for preloading data around camera took: 0.001400 ms +11:29:47.968 WORLD : WORLD : EOnActivate +11:29:48.003 PROFILING : EOnActivate took: 34.620200 ms +11:29:48.004 PROFILING : Game::LoadEntities took: 14117.122300 ms +11:29:48.367 DEFAULT : Entered offline game state. +11:29:48.471 NETWORK : Player connected: connectionID=2147483646 +11:29:48.472 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:29:48.472 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:29:48.478 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.478 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:29:48.478 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.478 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! +11:29:48.479 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! +11:29:48.480 SCRIPT (W): Can't open config file "" +11:29:48.487 WORLD : InitEntities 'world' +11:29:48.487 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.487 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:29:48.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:29:48.488 SCRIPT (W): Slot_Chat Has no Content! +11:29:48.488 SCRIPT (W): Slot_VON Has no Content! +11:29:48.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:29:48.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:29:48.489 SCRIPT (W): Slot_GameVersion Has no Content! +11:29:48.489 SCRIPT (W): Slot_Notifications Has no Content! +11:29:48.489 SCRIPT (W): Slot_Hints Has no Content! +11:29:48.504 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:29:48.504 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:29:48.504 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:29:48.505 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. +11:29:48.505 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. +11:29:48.509 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:29:48.510 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:29:48.510 NETWORK : Players connecting: 0 +11:29:48.510 NETWORK : Players connected: 1 / 1 +11:29:48.540 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves +11:29:48.542 PROFILING : Workbench startup took: 47888.125500 ms +11:29:48.570 WORLD : Frame start +11:29:48.571 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:29:48.585 WORLD : UpdateEntities +11:29:48.586 WORLD : Frame +11:29:48.586 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:29:48.784 WORLD : UpdateEntities +11:29:48.784 WORLD : PostFrame +11:29:48.784 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:29:48.784 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:29:48.831 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:29:48.831 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:29:48.832 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:29:48.832 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:29:48.970 RENDER : RENDER : ObjectsHeightMap::Build +11:29:48.970 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:29:49.151 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 180.984800 ms +11:29:49.159 PROFILING : ObjectsHeightMap::Build took: 189.278400 ms +11:29:50.320 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:29:50.343 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:29:50.345 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:29:50.378 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:29:50.382 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:29:50.438 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:29:50.438 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:29:50.444 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:29:50.503 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:29:50.504 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:29:50.506 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:29:50.507 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:29:50.511 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:29:50.513 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:29:50.513 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:29:50.514 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:29:50.514 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:29:50.515 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:29:50.515 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:29:50.515 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:29:50.515 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:29:50.515 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.516 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:29:50.516 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:29:50.516 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.516 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:29:50.516 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:29:50.517 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.518 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.518 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:51.309 WORLD : UpdateEntities +11:29:51.309 WORLD : AfterPostSimulate +11:29:51.310 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.379 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.634 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5266,7499.7> up=0.995672 +11:29:51.634 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +11:29:51.634 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:51.634 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6167,7501.97> +11:29:51.635 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3167,7501.97> terrainY=63.3166 tireTerrainGap=0.000167847 +11:29:51.635 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6167,7501.97> radius=0.3 bottom=<7012.06,63.3167,7501.97> fraction=0.455462 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.000202179 +11:29:51.635 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6046,7497.71> +11:29:51.635 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1546,7497.71> terrainY=64.1556 tireTerrainGap=-0.00102234 +11:29:51.635 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6046,7497.71> radius=0.45 bottom=<7009.88,64.1546,7497.71> fraction=0.450056 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000984192 +11:29:51.635 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2646,7497.75> +11:29:51.636 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8146,7497.75> terrainY=63.8178 tireTerrainGap=-0.00320053 +11:29:51.636 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2646,7497.75> radius=0.45 bottom=<7014.42,63.8146,7497.75> fraction=0.44 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00320053 +11:29:51.636 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:51.886 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:51.886 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:51.887 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.887 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.645 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5356,7499.71> up=0.994346 +11:29:52.645 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975727 angularSpeed=0.068569 +11:29:52.646 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:52.646 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6198,7501.99> +11:29:52.646 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3198,7501.99> terrainY=63.3144 tireTerrainGap=0.00548553 +11:29:52.646 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6198,7501.99> radius=0.3 bottom=<7012.07,63.3198,7501.99> fraction=0.479821 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00556183 +11:29:52.646 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6026,7497.71> +11:29:52.647 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1526,7497.71> terrainY=64.149 tireTerrainGap=0.0036087 +11:29:52.647 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6026,7497.71> radius=0.45 bottom=<7009.93,64.1526,7497.71> fraction=0.471116 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00364685 +11:29:52.647 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2656,7497.78> +11:29:52.647 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8156,7497.78> terrainY=63.8154 tireTerrainGap=0.00018692 +11:29:52.647 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2656,7497.78> radius=0.45 bottom=<7014.47,63.8156,7497.78> fraction=0.455278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000160217 +11:29:52.647 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.902 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.152 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.411 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.742 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5329,7499.74> up=0.994151 +11:29:53.742 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0576569 angularSpeed=0.0589654 +11:29:53.742 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:53.743 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6149,7502.01> +11:29:53.743 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3149,7502.01> terrainY=63.3119 tireTerrainGap=0.00300217 +11:29:53.743 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6149,7502.01> radius=0.3 bottom=<7012.07,63.3149,7502.01> fraction=0.46828 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00302124 +11:29:53.743 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5943,7497.71> +11:29:53.743 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1443,7497.71> terrainY=64.1431 tireTerrainGap=0.00128174 +11:29:53.744 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5943,7497.71> radius=0.45 bottom=<7009.97,64.1443,7497.71> fraction=0.46046 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00130463 +11:29:53.744 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.82> +11:29:53.744 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.82> terrainY=63.8128 tireTerrainGap=-0.0026207 +11:29:53.744 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.82> radius=0.45 bottom=<7014.51,63.8102,7497.82> fraction=0.442655 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00261688 +11:29:53.745 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:53.745 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.745 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.746 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.746 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:54.735 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +11:29:54.735 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:29:54.735 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:54.736 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +11:29:54.736 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00170517 +11:29:54.736 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +11:29:54.737 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +11:29:54.737 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +11:29:54.737 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +11:29:54.737 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +11:29:54.737 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +11:29:54.737 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:29:54.738 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.739 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:55.246 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.750 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +11:29:55.750 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:29:55.750 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:55.750 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +11:29:55.750 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00170517 +11:29:55.750 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +11:29:55.751 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +11:29:55.751 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +11:29:55.751 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +11:29:55.751 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +11:29:55.751 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +11:29:55.751 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:29:55.751 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:55.752 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.753 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:29:55.766 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:29:55.767 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:29:55.767 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:29:55.767 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:29:55.767 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:29:55.768 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:29:55.768 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:29:55.860 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:29:55.900 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:29:55.950 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:29:55.950 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:29:55.950 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:29:55.950 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:29:55.950 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:29:55.957 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:29:55.957 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:29:56.457 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=0 failure= +11:30:01.530 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:30:06.586 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:30:07.087 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +11:30:07.087 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +11:30:07.089 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +11:30:07.104 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:30:07.104 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +11:30:07.104 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +11:30:07.105 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +11:30:07.105 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M1 actualObservedAt=17920.6 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378983 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:07.105 SCRIPT : ERR SMOKE PASS: mortar salvo first actual-clock observation recorded without replacement +11:30:11.636 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:16.170 SCRIPT : ERR SMOKE PASS: mortar salvo initial order traverses actual nonempty HQ downlink +11:30:16.673 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:21.737 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:26.791 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:27.299 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M7 actualObservedAt=38130.5 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.380020 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:27.299 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:30:31.851 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:34.105 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M7 observedAt=38130.5 downlink=M8 sameOrder=1 originalActivity=1 +11:30:36.908 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:41.960 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:47.015 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:47.423 WORLD : UpdateEntities +11:30:47.423 WORLD : FixedFrame +11:30:47.423 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 acceptedSource=M7 observedAge=20121.4 commandAge=25153.1 validationAge=883.43; recorded before native inventory transfer +11:30:47.524 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M9 actualObservedAt=58354.9 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.375168 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:47.525 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:30:48.456 WORLD : UpdateEntities +11:30:48.457 WORLD : Frame +11:30:48.457 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x00000001A01AA1B0> @"ENTITY:4611686018427390993" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 acceptedSource=M7 aimAge=26186.9 flight=24.2333; impact is not measured +11:30:52.060 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:30:54.213 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M9 observedAt=58354.9 downlink=M10 sameOrder=1 originalActivity=1 +11:30:57.116 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:30:57.406 WORLD : UpdateEntities +11:30:57.407 WORLD : FixedFrame +11:30:57.407 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 acceptedSource=M9 observedAge=9879.39 commandAge=5498.86 validationAge=3193.97; recorded before native inventory transfer +11:30:58.441 WORLD : UpdateEntities +11:30:58.441 WORLD : Frame +11:30:58.441 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x00000001A01AA2C0> @"ENTITY:4611686018427390998" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 acceptedSource=M9 aimAge=6535.07 flight=24.1666; impact is not measured +11:31:02.164 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:31:07.214 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:31:07.349 WORLD : UpdateEntities +11:31:07.349 WORLD : FixedFrame +11:31:07.349 SCRIPT : ERR MORTAR SALVO COMMIT: count=3 order=1 shot=2 acceptedSource=M9 observedAge=19819.4 commandAge=4999.82 validationAge=4999.82; recorded before native inventory transfer +11:31:07.729 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M11 actualObservedAt=78558.6 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378342 6998.000977> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:31:07.729 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:31:08.386 WORLD : UpdateEntities +11:31:08.386 WORLD : Frame +11:31:08.387 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=3 entity=Projectile<0x00000001A01AA3D0> @"ENTITY:4611686018427391003" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 acceptedSource=M9 aimAge=6041.12 flight=24.3333; impact is not measured +11:31:12.266 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:31:14.370 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M11 observedAt=78558.6 downlink=M12 sameOrder=1 originalActivity=1 +11:31:16.030 WORLD : UpdateEntities +11:31:16.030 WORLD : FixedFrame +11:31:16.030 SCRIPT : ERR MORTAR SALVO COMMIT: count=4 order=1 shot=3 acceptedSource=M11 observedAge=8296.92 commandAge=4052.25 validationAge=1658.84; recorded before native inventory transfer +11:31:17.062 WORLD : UpdateEntities +11:31:17.062 WORLD : Frame +11:31:17.062 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=4 entity=Projectile<0x00000001A01AA4E0> @"ENTITY:4611686018427391008" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994766 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order=1 acceptedSource=M11 aimAge=5088.79 flight=24.1333; impact is not measured +11:31:17.297 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:22.345 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:27.045 WORLD : UpdateEntities +11:31:27.046 WORLD : FixedFrame +11:31:27.046 SCRIPT : ERR MORTAR SALVO COMMIT: count=5 order=1 shot=4 acceptedSource=M11 observedAge=19314.9 commandAge=6279 validationAge=6279; recorded before native inventory transfer +11:31:27.390 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:28.080 WORLD : UpdateEntities +11:31:28.081 WORLD : Frame +11:31:28.081 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=5 entity=Projectile<0x00000001A01AA5F0> @"ENTITY:4611686018427391013" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order=1 acceptedSource=M11 aimAge=7315.63 flight=24.2; impact is not measured +11:31:32.462 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:31:37.508 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:31:38.025 WORLD : UpdateEntities +11:31:38.025 WORLD : FixedFrame +11:31:38.025 SCRIPT : ERR MORTAR SALVO COMMIT: count=6 order=1 shot=5 acceptedSource=M11 observedAge=30293.9 commandAge=6601.13 validationAge=6601.13; recorded before native inventory transfer +11:31:39.064 WORLD : UpdateEntities +11:31:39.064 WORLD : Frame +11:31:39.065 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=6 entity=Projectile<0x00000001A01AA700> @"ENTITY:4611686018427391018" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order=1 acceptedSource=M11 aimAge=7641.37 flight=24.3; impact is not measured +11:31:42.570 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:31:47.630 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:31:48.344 WORLD : UpdateEntities +11:31:48.344 WORLD : FixedFrame +11:31:48.344 SCRIPT : ERR MORTAR SALVO COMMIT: count=7 order=1 shot=6 acceptedSource=M11 observedAge=40612.7 commandAge=5969.58 validationAge=5969.58; recorded before native inventory transfer +11:31:49.370 WORLD : UpdateEntities +11:31:49.370 WORLD : Frame +11:31:49.370 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=7 entity=Projectile<0x00000001A01AA810> @"ENTITY:4611686018427391023" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.678711> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order=1 acceptedSource=M11 aimAge=6996.57 flight=24.0666; impact is not measured +11:31:52.701 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:31:57.552 WORLD : UpdateEntities +11:31:57.552 WORLD : FixedFrame +11:31:57.552 SCRIPT : ERR MORTAR SALVO COMMIT: count=8 order=1 shot=7 acceptedSource=M11 observedAge=49819.9 commandAge=4128.69 validationAge=4128.69; recorded before native inventory transfer +11:31:57.752 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:31:58.584 WORLD : UpdateEntities +11:31:58.584 WORLD : Frame +11:31:58.585 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=8 entity=Projectile<0x00000001A01AA920> @"ENTITY:4611686018427391028" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008911 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order=1 acceptedSource=M11 aimAge=5163.09 flight=24.3333; impact is not measured +11:31:58.647 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=native artillery activity COMPLETED (shot count is separate) lastFailure= events=8 commits=8 complete=1 +11:31:58.766 SCRIPT : ERR SMOKE PASS: mortar salvo one real uplink/downlink and native activity naturally complete the entire configured salvo +11:31:58.766 SCRIPT : ERR SMOKE PASS: mortar salvo every queued update was accepted under the same order before closure and at least one updated report authorized a commit +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo exact configured native projectiles equal fresh commits and missing original inventory shells +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo all delivered messages are ineligible for a second request after completion +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo natural completion clears command, routes, loading and projectile reservation +11:32:02.798 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:07.861 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:12.919 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:17.971 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:23.006 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo all claimed contacts produce no second request, projectile or replenishment over 25 seconds +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo original group and gun retain four crew +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : Rereintroduced [mission]: phase 1 -> 6 +11:32:24.019 SCRIPT : ERR SMOKE PASS: native configured salvo and unchanged-report replay observation complete before reset +11:32:24.019 SCRIPT : ERR SMOKE COMPLETE: native full configured mortar salvo, exact original ammunition and unchanged-report replay refusal; fixture reset requested +11:32:24.132 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME +11:32:24.135 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout" +11:32:24.135 SCRIPT (W): Slot_Chat Has no Content! +11:32:24.135 SCRIPT (W): Slot_VON Has no Content! +11:32:24.135 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:24.135 SCRIPT (W): Slot_Notifications Has no Content! +11:32:26.187 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back +11:32:26.187 SCRIPT : -- Stack trace -- +11:32:26.187 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43 +11:32:26.188 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214 +11:32:26.188 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15 +11:32:26.188 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447 +11:32:26.188 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177 +11:32:26.188 SCRIPT : OnUpdate() Scripts/Game/game.c : 885 +11:32:26.188 SCRIPT : ----------------- +11:32:26.189 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton +11:32:26.189 SCRIPT : -- Stack trace -- +11:32:26.189 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43 +11:32:26.189 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214 +11:32:26.189 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21 +11:32:26.189 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447 +11:32:26.190 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177 +11:32:26.190 SCRIPT : OnUpdate() Scripts/Game/game.c : 885 +11:32:26.190 SCRIPT : ----------------- +11:32:26.192 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout" +11:32:26.192 SCRIPT (W): Slot_Chat Has no Content! +11:32:26.192 SCRIPT (W): Slot_VON Has no Content! +11:32:26.192 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:26.192 SCRIPT (W): Slot_Notifications Has no Content! diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/error.log.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/error.log.txt new file mode 100644 index 0000000..dd35c18 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/error.log.txt @@ -0,0 +1,118 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00\error.log started at 2026-09-19 11:29:02 (2026-09-19 09:29:02 UTC) + +11:29:02.465 INIT : Workbench startup +11:29:02.465 INIT : Workbench Init Engine +11:29:02.465 RESOURCES : ResourceDB: full scan +11:29:02.465 RESOURCES : processing files... +11:29:02.465 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:29:02.465 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:29:02.465 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:29:07.470 INIT : Workbench Create Game +11:29:07.470 SCRIPT : Compiling Game scripts +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:29:07.628 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:07.757 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:29:07.792 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:29:07.891 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:29:07.927 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:29:07.990 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:29:08.059 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.096 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:29:17.173 WORLD : CreateEntities +11:29:17.174 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:29:17.174 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:29:17.174 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:29:33.635 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:29:38.650 WORLD : Game::LoadEntities +11:29:38.651 WORLD : CreateEntities +11:29:38.651 WORLD : CreateEntities +11:29:38.651 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:29:38.651 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:29:38.651 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:29:40.117 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:29:40.117 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:29:40.117 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:29:40.117 ENTITY : CreateComponent 'Hierarchy' +11:29:40.117 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:29:40.122 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:29:40.122 ENTITY : CreateComponent 'Hierarchy' +11:29:40.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:29:40.127 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:29:40.127 ENTITY : CreateComponent 'Hierarchy' +11:29:40.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:29:47.855 WORLD : InitEntities 'world' +11:29:47.855 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:29:47.855 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:29:48.478 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.478 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:29:48.478 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.478 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! +11:29:48.479 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! +11:29:48.480 SCRIPT (W): Can't open config file "" +11:29:48.487 WORLD : InitEntities 'world' +11:29:48.487 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:29:48.487 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:29:48.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:29:48.488 SCRIPT (W): Slot_Chat Has no Content! +11:29:48.488 SCRIPT (W): Slot_VON Has no Content! +11:29:48.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:29:48.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:29:48.489 SCRIPT (W): Slot_GameVersion Has no Content! +11:29:48.489 SCRIPT (W): Slot_Notifications Has no Content! +11:29:48.489 SCRIPT (W): Slot_Hints Has no Content! +11:29:48.504 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:29:48.504 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:29:48.504 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:29:48.504 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. +11:29:48.505 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. +11:29:48.510 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:29:48.784 WORLD : UpdateEntities +11:29:48.784 WORLD : PostFrame +11:29:48.784 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:29:48.784 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:29:48.831 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:29:48.831 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:29:48.832 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:29:48.832 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:29:51.309 WORLD : UpdateEntities +11:29:51.309 WORLD : AfterPostSimulate +11:29:51.310 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:32:24.135 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout" +11:32:24.135 SCRIPT (W): Slot_Chat Has no Content! +11:32:24.135 SCRIPT (W): Slot_VON Has no Content! +11:32:24.135 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:24.135 SCRIPT (W): Slot_Notifications Has no Content! +11:32:26.187 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back +11:32:26.189 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton +11:32:26.192 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout" +11:32:26.192 SCRIPT (W): Slot_Chat Has no Content! +11:32:26.192 SCRIPT (W): Slot_VON Has no Content! +11:32:26.192 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:26.192 SCRIPT (W): Slot_Notifications Has no Content! diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/headless-launch.log.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/headless-launch.log.txt new file mode 100644 index 0000000..b5aec43 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 167 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1c001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1c001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1c001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1c0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1c0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1c0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55559290f3e0 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55559290f3e0 +[Gamescope WSI] Destroyed swapchain: 0x55559290f3e0 +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55559289cd60 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x55559289cd60 +[Gamescope WSI] Destroyed swapchain: 0x55559289cd60 +[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55559288ee00 - imageCount: 4 +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source-sha256.json b/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source-sha256.json new file mode 100644 index 0000000..affb96c --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "66ff36dd3f754fd38e561fa406f515b1b54263939696b171fced589569c5bbf9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source.json b/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source.json new file mode 100644 index 0000000..6c9420d --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "00385679-8cd0-4cac-a494-b483768ef416", + "captured_unix": 1789810139.039024, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/chat/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "1", + "-errSmokeOutcome", + "mortar-refresh", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "19e5ae563e1d53b82b8ffad968a9338a3e27099f88484bfe580f4d08fa2376fa" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/report.json b/docs/evidence/native-2026-09-19-112900-mortar-refresh/report.json new file mode 100644 index 0000000..053bacb --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/report.json @@ -0,0 +1,9 @@ +{ + "log": "docs/evidence/native-2026-09-19-112900-mortar-refresh/console.log.txt", + "smoke_completions": 1, + "assertions_passed": 55, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/rereintroduced-hq.log.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/rereintroduced-hq.log.txt new file mode 100644 index 0000000..3a4e136 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/rereintroduced-hq.log.txt @@ -0,0 +1,163 @@ +#1 t=6.6s M0 REGISTER group 1 [session=1789810187-1] +#2 t=6.6s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789810187-1] +#3 t=6.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789810187-1] +#4 t=7.3s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=0 crew agents=0 fighting=0 inventory HE=0 radio connected=0 cooldown remaining=0s [session=1789810187-1] +#5 t=7.3s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=7.29118s last failure= [session=1789810187-1] +#6 t=7.3s M0 MORTAR SITE BLOCK site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; reason=crew group empty; spawn failure=; previous= repeated polls omitted=0 [session=1789810187-1] +#7 t=8.6s M0 REGISTER group 2 [session=1789810187-1] +#8 t=8.6s M0 REGISTER group 3 [session=1789810187-1] +#9 t=8.6s M0 REGISTER group 4 [session=1789810187-1] +#10 t=8.6s M0 REGISTER group 5 [session=1789810187-1] +#11 t=8.6s M0 REGISTER group 6 [session=1789810187-1] +#12 t=8.6s M0 REGISTER group 7 [session=1789810187-1] +#13 t=12.4s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=0 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#14 t=12.4s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=12.3638s last failure= [session=1789810187-1] +#15 t=17.4s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=0 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#16 t=17.4s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=17.4193s last failure= [session=1789810187-1] +#17 t=17.8s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789810187-1] +#18 t=17.9s M1 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789810187-1] +#19 t=18.8s M1 TRANSMIT unit 1 -> HQ (long-range) [session=1789810187-1] +#20 t=20.8s M1 RECEIVE HQ received from unit 1 [session=1789810187-1] +#21 t=22.5s M0 MORTAR SITE STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#22 t=22.5s M0 MORTAR ORDER STATUS site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=0 total shots=0 age=22.4698s last failure= [session=1789810187-1] +#23 t=22.8s M5 TRANSMIT HQ -> unit 6 (long-range) [session=1789810187-1] +#24 t=22.8s M4 TRANSMIT HQ -> unit 4 (long-range) [session=1789810187-1] +#25 t=22.8s M3 TRANSMIT HQ -> unit 3 (long-range) [session=1789810187-1] +#26 t=22.8s M2 TRANSMIT HQ -> unit 2 (long-range) [session=1789810187-1] +#27 t=24.8s M5 RECEIVE unit 6 received from HQ [session=1789810187-1] +#28 t=24.8s M5 ORDER DELIVERED group 6 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789810187-1] +#29 t=24.8s M4 RECEIVE unit 4 received from HQ [session=1789810187-1] +#30 t=24.8s M4 ORDER DELIVERED group 4 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789810187-1] +#31 t=24.8s M3 RECEIVE unit 3 received from HQ [session=1789810187-1] +#32 t=24.8s M3 ORDER DELIVERED group 3 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789810187-1] +#33 t=24.8s M2 RECEIVE unit 2 received from HQ [session=1789810187-1] +#34 t=24.8s M2 ORDER DELIVERED group 2 from report M1: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (7s ago) [session=1789810187-1] +#35 t=26.8s M6 ORDER QUEUED MORTAR ORDER from report M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789810187-1] +#36 t=26.8s M0 MORTAR COMMAND site=1 order=1 radio=M0 source=M1 position=<6000,202.788,7000>; requested rounds=8 HE radius=40m; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (9s ago) [session=1789810187-1] +#37 t=27.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#38 t=27.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=1 native action=-1 shell committed=0 order shots=0 total shots=0 age=0.681697s last failure= [session=1789810187-1] +#39 t=27.8s M6 TRANSMIT HQ -> unit 1 (long-range) [session=1789810187-1] +#40 t=29.8s M6 RECEIVE unit 1 received from HQ [session=1789810187-1] +#41 t=29.8s M6 MORTAR AIM site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; native activity created; latest source=M1 observed=X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (12s ago) [session=1789810187-1] +#42 t=30.8s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=1.00829s aim age=30.8497s committed=0 shots=0; previous= repeated polls omitted=0 [session=1789810187-1] +#43 t=32.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=27.27s [session=1789810187-1] +#44 t=32.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=2.72996s last failure= [session=1789810187-1] +#45 t=33.1s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M1; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (15s ago); previous= repeated polls omitted=0 [session=1789810187-1] +#46 t=33.1s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s charge index=2 aim target=<5207.07,2689.01,6387.75> latest source=M1; previous= repeated polls omitted=0 [session=1789810187-1] +#47 t=37.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=22.2161s [session=1789810187-1] +#48 t=37.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=7.78392s last failure= [session=1789810187-1] +#49 t=38.1s M7 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789810187-1] +#50 t=38.9s M7 TRANSMIT unit 1 -> HQ (long-range) [session=1789810187-1] +#51 t=40.9s M7 RECEIVE HQ received from unit 1 [session=1789810187-1] +#52 t=41.9s M8 ORDER QUEUED MORTAR UPDATE from report M7; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (4s ago) [session=1789810187-1] +#53 t=41.9s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M8 newer observation=M7 observed=38130.5 [session=1789810187-1] +#54 t=42.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=17.1562s [session=1789810187-1] +#55 t=42.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=12.8438s last failure= [session=1789810187-1] +#56 t=42.9s M8 TRANSMIT HQ -> unit 1 (long-range) [session=1789810187-1] +#57 t=44.9s M8 RECEIVE unit 1 received from HQ [session=1789810187-1] +#58 t=44.9s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M8 accepted observation=M7 observed=38130.5; shots=0 original aim time=33098.7 [session=1789810187-1] +#59 t=47.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=12.0994s [session=1789810187-1] +#60 t=47.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=17.9006s last failure= [session=1789810187-1] +#61 t=52.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=7.04774s [session=1789810187-1] +#62 t=52.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=22.9523s last failure= [session=1789810187-1] +#63 t=57.4s M6 MORTAR AIM REVALIDATED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=same native command; fresh ballistic solve matched original; source=M7 observed age=19.2379s; previous= repeated polls omitted=0 [session=1789810187-1] +#64 t=57.4s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous= repeated polls omitted=0 [session=1789810187-1] +#65 t=57.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=27 radio connected=1 cooldown remaining=1.99263s [session=1789810187-1] +#66 t=57.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=0 total shots=0 age=28.0074s last failure= [session=1789810187-1] +#67 t=58.3s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.121582 202.730408 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5207.07,78.6842,6387.75> flight=24.2333s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#68 t=58.4s M9 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789810187-1] +#69 t=59s M9 TRANSMIT unit 1 -> HQ (long-range) [session=1789810187-1] +#70 t=59.3s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA1B0> @"ENTITY:4611686018427390993" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order shots=1 total shots=1 predicted impact=<5207.07,78.6842,6387.75> predicted flight=24.2333s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.121582 202.734039 7000.142578> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#71 t=61s M9 RECEIVE HQ received from unit 1 [session=1789810187-1] +#72 t=61s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=31.1701s aim age=61.0114s committed=0 shots=1; previous=native state=1 repeated polls omitted=29 [session=1789810187-1] +#73 t=62s M10 ORDER QUEUED MORTAR UPDATE from report M9; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (4s ago) [session=1789810187-1] +#74 t=62s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M10 newer observation=M9 observed=58354.9 [session=1789810187-1] +#75 t=62.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#76 t=62.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=33.0524s last failure= [session=1789810187-1] +#77 t=63s M10 TRANSMIT HQ -> unit 1 (long-range) [session=1789810187-1] +#78 t=65s M10 RECEIVE unit 1 received from HQ [session=1789810187-1] +#79 t=65s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M10 accepted observation=M9 observed=58354.9; shots=1 original aim time=62735.4 [session=1789810187-1] +#80 t=67.9s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=26 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#81 t=67.9s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=1 total shots=1 age=38.1076s last failure= [session=1789810187-1] +#82 t=68.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.119629 202.735718 7000.159668> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5180.93,82.8334,6406.01> flight=24.1666s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#83 t=69.3s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA2C0> @"ENTITY:4611686018427390998" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order shots=2 total shots=2 predicted impact=<5180.93,82.8334,6406.01> predicted flight=24.1666s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.119629 202.738220 7000.159668> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#84 t=73s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#85 t=73s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=43.1557s last failure= [session=1789810187-1] +#86 t=73.2s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M9; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (15s ago); previous=solving moving intercept repeated polls omitted=1 [session=1789810187-1] +#87 t=73.2s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5222.2,80.6071,6410.35> flight=24.3333s charge index=2 aim target=<5222.2,2710.04,6410.35> latest source=M9; previous=ready repeated polls omitted=1 [session=1789810187-1] +#88 t=78s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=25 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#89 t=78s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=2 total shots=2 age=48.2062s last failure= [session=1789810187-1] +#90 t=78.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.136230 202.734940 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5222.2,80.6071,6410.35> flight=24.3333s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#91 t=78.6s M11 FIXTURE REPORT NEW EXPLICIT SYNTHETIC OBSERVATION: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (0s ago) [session=1789810187-1] +#92 t=79.1s M11 TRANSMIT unit 1 -> HQ (long-range) [session=1789810187-1] +#93 t=79.2s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA3D0> @"ENTITY:4611686018427391003" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order shots=3 total shots=3 predicted impact=<5222.2,80.6071,6410.35> predicted flight=24.3333s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.136230 202.737427 7000.161133> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#94 t=81.2s M11 RECEIVE HQ received from unit 1 [session=1789810187-1] +#95 t=82.2s M12 ORDER QUEUED MORTAR UPDATE from report M11; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (4s ago) [session=1789810187-1] +#96 t=82.2s M6 MORTAR UPDATE QUEUED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M12 newer observation=M11 observed=78558.6 [session=1789810187-1] +#97 t=83.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=24 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#98 t=83.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=3 total shots=3 age=53.2578s last failure= [session=1789810187-1] +#99 t=83.2s M12 TRANSMIT HQ -> unit 1 (long-range) [session=1789810187-1] +#100 t=85.2s M12 RECEIVE unit 1 received from HQ [session=1789810187-1] +#101 t=85.2s M6 MORTAR UPDATE RECEIVED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; same order; update radio=M12 accepted observation=M11 observed=78558.6; shots=3 original aim time=82803.2 [session=1789810187-1] +#102 t=86.9s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.109375 202.730637 7000.132324> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5189.18,78.0938,6373.87> flight=24.1333s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#103 t=87.9s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA4E0> @"ENTITY:4611686018427391008" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994766 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order shots=4 total shots=4 predicted impact=<5189.18,78.0938,6373.87> predicted flight=24.1333s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.109375 202.733383 7000.132324> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#104 t=88.1s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=23 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#105 t=88.1s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=4 total shots=4 age=58.289s last failure= [session=1789810187-1] +#106 t=91.2s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=61.3806s aim age=91.222s committed=0 shots=4; previous=native state=1 repeated polls omitted=29 [session=1789810187-1] +#107 t=93.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=23 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#108 t=93.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=4 total shots=4 age=63.3367s last failure= [session=1789810187-1] +#109 t=97s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous=native result=2 repeated polls omitted=3 [session=1789810187-1] +#110 t=97.9s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.132324 202.740204 7000.181152> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5189.18,85.9269,6429.72> flight=24.2s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#111 t=98.2s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=22 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#112 t=98.2s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=1 order shots=4 total shots=4 age=68.381s last failure= [session=1789810187-1] +#113 t=98.9s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA5F0> @"ENTITY:4611686018427391013" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order shots=5 total shots=5 predicted impact=<5189.18,85.9269,6429.72> predicted flight=24.2s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.132324 202.748276 7000.181152> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#114 t=103.3s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=22 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#115 t=103.3s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=5 total shots=5 age=73.4531s last failure= [session=1789810187-1] +#116 t=108.3s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=22 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#117 t=108.3s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=5 total shots=5 age=78.499s last failure= [session=1789810187-1] +#118 t=108.9s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.127930 202.730698 7000.133789> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5230.73,79.0856,6384> flight=24.3s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#119 t=109.9s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA700> @"ENTITY:4611686018427391018" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order shots=6 total shots=6 predicted impact=<5230.73,79.0856,6384> predicted flight=24.3s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.127930 202.733170 7000.133789> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#120 t=113.2s M6 MORTAR AIM START site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=solving moving intercept; latest source=M11; X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (35s ago); previous=solving moving intercept repeated polls omitted=3 [session=1789810187-1] +#121 t=113.2s M6 MORTAR AIM SOLUTION site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=ready; predicted impact=<5163.86,80.932,6390.32> flight=24.0666s charge index=2 aim target=<5163.86,2652.63,6390.32> latest source=M11; previous=ready repeated polls omitted=3 [session=1789810187-1] +#122 t=113.4s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=21 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#123 t=113.4s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=6 total shots=6 age=83.5606s last failure= [session=1789810187-1] +#124 t=118.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=21 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#125 t=118.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=6 total shots=6 age=88.6203s last failure= [session=1789810187-1] +#126 t=119.2s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.105469 202.733109 7000.148438> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5163.86,80.932,6390.32> flight=24.0666s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#127 t=120.2s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA810> @"ENTITY:4611686018427391023" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.678711> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order shots=7 total shots=7 predicted impact=<5163.86,80.932,6390.32> predicted flight=24.0666s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.105469 202.735825 7000.148438> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#128 t=121.4s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=1; age=91.5939s aim age=121.435s committed=0 shots=7; previous=native state=1 repeated polls omitted=29 [session=1789810187-1] +#129 t=123.5s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=20 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#130 t=123.5s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=0 order shots=7 total shots=7 age=93.6917s last failure= [session=1789810187-1] +#131 t=127.5s M6 MORTAR SHOOT NODE site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native result=2; authorization passed; node result does not confirm a physical shot; previous=native result=2 repeated polls omitted=2 [session=1789810187-1] +#132 t=128.4s M6 MORTAR SHELL COMMIT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; final safety passed; gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.146484 202.739563 7000.179688> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" predicted impact=<5221.49,84.082,6433.74> flight=24.3333s; invoking native transfer, awaiting projectile event [session=1789810187-1] +#133 t=128.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#134 t=128.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=1 route pending=0 native action=1 shell committed=1 order shots=7 total shots=7 age=98.7427s last failure= [session=1789810187-1] +#135 t=129.4s M6 MORTAR FIRED site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; physical projectile=Projectile<0x00000001A01AA920> @"ENTITY:4611686018427391028" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008911 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order shots=8 total shots=8 predicted impact=<5221.49,84.082,6433.74> predicted flight=24.3333s gunner=SCR_ChimeraCharacter<0x00000001BBE5A670> @"ENTITY:4611686018427390784" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <5999.146484 202.747711 7000.179688> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" (impact not observed) [session=1789810187-1] +#136 t=129.5s M6 MORTAR ACTIVITY EVENT site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; native terminal event=3 current state=3 captured order=1 physical order shots=8 total shots=8 committed=0 [session=1789810187-1] +#137 t=129.5s M6 MORTAR ACTIVITY site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native state=3; age=99.6374s aim age=129.479s committed=0 shots=8; previous=native state=1 repeated polls omitted=7 [session=1789810187-1] +#138 t=129.5s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM SOLUTION reason=ready repeated polls omitted=1 [session=1789810187-1] +#139 t=129.5s M6 MORTAR REPEATS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; phase=AIM START reason=solving moving intercept repeated polls omitted=1 [session=1789810187-1] +#140 t=129.5s M6 MORTAR ORDER END site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; reason=native artillery activity COMPLETED (shot count is separate) observed shots=8 shell committed=0 elapsed=99.6374s last failure= [session=1789810187-1] +#141 t=133.6s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#142 t=133.6s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=8 total shots=8 age=103.789s last failure= [session=1789810187-1] +#143 t=138.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#144 t=138.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=8 total shots=8 age=108.851s last failure= [session=1789810187-1] +#145 t=143.6s M16 TRANSMIT HQ -> unit 6 (long-range) [session=1789810187-1] +#146 t=143.6s M15 TRANSMIT HQ -> unit 4 (long-range) [session=1789810187-1] +#147 t=143.6s M14 TRANSMIT HQ -> unit 3 (long-range) [session=1789810187-1] +#148 t=143.6s M13 TRANSMIT HQ -> unit 2 (long-range) [session=1789810187-1] +#149 t=143.7s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#150 t=143.7s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=8 total shots=8 age=113.909s last failure= [session=1789810187-1] +#151 t=145.6s M16 RECEIVE unit 6 received from HQ [session=1789810187-1] +#152 t=145.6s M16 ORDER DELIVERED group 6 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789810187-1] +#153 t=145.6s M15 RECEIVE unit 4 received from HQ [session=1789810187-1] +#154 t=145.6s M15 ORDER DELIVERED group 4 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789810187-1] +#155 t=145.6s M14 RECEIVE unit 3 received from HQ [session=1789810187-1] +#156 t=145.6s M14 ORDER DELIVERED group 3 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789810187-1] +#157 t=145.6s M13 RECEIVE unit 2 received from HQ [session=1789810187-1] +#158 t=145.6s M13 ORDER DELIVERED group 2 from report M11: X=5200 Z=6400: at least 1 spotted nearby; on foot; 0 km/h, azimuth 0 degrees (stationary); seen weapons: fixture observation; vector X/Z=[0,0] m/s (67s ago) [session=1789810187-1] +#159 t=148.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#160 t=148.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=8 total shots=8 age=118.961s last failure= [session=1789810187-1] +#161 t=153.8s M6 MORTAR SITE STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; claimed=1 startup=1 operational=1 crew agents=4 fighting=4 inventory HE=19 radio connected=1 cooldown remaining=0s [session=1789810187-1] +#162 t=153.8s M6 MORTAR ORDER STATUS site=1 order=1 radio=M6 source=M1 position=<6000,202.788,7000>; open=0 route pending=0 native action=-1 shell committed=0 order shots=8 total shots=8 age=123.996s last failure= [session=1789810187-1] +#163 t=154.8s M0 STOP HQ stopped; tactical orders released [session=1789810187-1] diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/runner.json.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/runner.json.txt new file mode 100644 index 0000000..6861100 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789810351.2482612, + "console_sha256": "10c9363f7ff1be6afad6258c50aa6e19c4040d4f49a69000beeb13388aa503c9", + "end_source_sha256": "19e5ae563e1d53b82b8ffad968a9338a3e27099f88484bfe580f4d08fa2376fa", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "00385679-8cd0-4cac-a494-b483768ef416", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "19e5ae563e1d53b82b8ffad968a9338a3e27099f88484bfe580f4d08fa2376fa", + "started_unix": 1789810139.0391035, + "result": "smoke-completed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-29-00", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1280x720/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/script.log.txt b/docs/evidence/native-2026-09-19-112900-mortar-refresh/script.log.txt new file mode 100644 index 0000000..8b5ce34 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/script.log.txt @@ -0,0 +1,366 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-29-00\script.log started at 2026-09-19 11:29:03 (2026-09-19 09:29:03 UTC) + +11:29:03.758 SCRIPT : SCRIPT : Initializing scripts +11:29:03.758 SCRIPT : SCRIPT : ScriptProjectManager init +11:29:06.047 SCRIPT : SCRIPT : Compiling GameLib scripts +11:29:06.125 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:29:06.126 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:29:06.126 SCRIPT : SCRIPT : Compiling Game scripts +11:29:07.470 SCRIPT : Compiling Game scripts +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:29:07.470 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:29:07.628 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:07.757 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:29:07.792 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:29:07.891 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:29:07.892 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:29:07.927 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:29:07.989 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:29:07.990 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:29:08.033 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:29:08.059 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:29:08.096 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:29:08.378 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e +11:29:08.385 SCRIPT : Module: Game; loaded 5776x files; 11367x classes; used 33494K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 2a945cbe +11:29:09.367 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:29:09.367 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:29:30.212 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +11:29:30.212 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +11:29:30.213 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +11:29:30.214 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +11:29:30.215 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +11:29:30.215 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +11:29:30.215 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +11:29:30.235 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +11:29:33.633 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:29:33.633 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:29:47.855 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:29:47.886 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate +11:29:48.478 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! +11:29:48.479 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! +11:29:48.480 SCRIPT (W): Can't open config file "" +11:29:48.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:29:48.488 SCRIPT (W): Slot_Chat Has no Content! +11:29:48.488 SCRIPT (W): Slot_VON Has no Content! +11:29:48.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:29:48.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:29:48.489 SCRIPT (W): Slot_GameVersion Has no Content! +11:29:48.489 SCRIPT (W): Slot_Notifications Has no Content! +11:29:48.489 SCRIPT (W): Slot_Hints Has no Content! +11:29:48.505 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. +11:29:48.505 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. +11:29:48.510 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:29:48.571 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:29:48.586 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:29:48.784 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:29:50.321 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:29:50.344 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:29:50.345 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:29:50.378 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:29:50.382 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:29:50.438 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:29:50.438 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:29:50.444 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:29:50.503 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:29:50.504 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:29:50.506 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:29:50.507 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:29:50.511 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:29:50.513 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:29:50.513 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:29:50.514 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:29:50.514 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:29:50.515 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:29:50.515 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:29:50.515 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:29:50.515 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:29:50.515 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.516 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:29:50.516 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:29:50.516 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.516 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:29:50.516 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:29:50.517 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.517 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.518 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:50.518 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.378 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.379 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.634 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5266,7499.7> up=0.995672 +11:29:51.634 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.287087 angularSpeed=0.0801536 +11:29:51.634 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:51.634 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6167,7501.97> +11:29:51.635 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3167,7501.97> terrainY=63.3166 tireTerrainGap=0.000167847 +11:29:51.635 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6167,7501.97> radius=0.3 bottom=<7012.06,63.3167,7501.97> fraction=0.455462 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.000202179 +11:29:51.635 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6046,7497.71> +11:29:51.635 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1546,7497.71> terrainY=64.1556 tireTerrainGap=-0.00102234 +11:29:51.635 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6046,7497.71> radius=0.45 bottom=<7009.88,64.1546,7497.71> fraction=0.450056 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.000984192 +11:29:51.635 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2646,7497.75> +11:29:51.636 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8146,7497.75> terrainY=63.8178 tireTerrainGap=-0.00320053 +11:29:51.636 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2646,7497.75> radius=0.45 bottom=<7014.42,63.8146,7497.75> fraction=0.44 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00320053 +11:29:51.636 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:51.886 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:51.886 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:51.887 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:51.887 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.394 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.645 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5356,7499.71> up=0.994346 +11:29:52.645 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975727 angularSpeed=0.068569 +11:29:52.646 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:52.646 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6198,7501.99> +11:29:52.646 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3198,7501.99> terrainY=63.3144 tireTerrainGap=0.00548553 +11:29:52.646 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6198,7501.99> radius=0.3 bottom=<7012.07,63.3198,7501.99> fraction=0.479821 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00556183 +11:29:52.646 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6026,7497.71> +11:29:52.647 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1526,7497.71> terrainY=64.149 tireTerrainGap=0.0036087 +11:29:52.647 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6026,7497.71> radius=0.45 bottom=<7009.93,64.1526,7497.71> fraction=0.471116 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00364685 +11:29:52.647 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2656,7497.78> +11:29:52.647 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8156,7497.78> terrainY=63.8154 tireTerrainGap=0.00018692 +11:29:52.647 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2656,7497.78> radius=0.45 bottom=<7014.47,63.8156,7497.78> fraction=0.455278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.000160217 +11:29:52.647 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.901 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:29:52.902 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.152 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.410 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.411 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:29:53.742 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5329,7499.74> up=0.994151 +11:29:53.742 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0576569 angularSpeed=0.0589654 +11:29:53.742 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:53.743 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6149,7502.01> +11:29:53.743 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3149,7502.01> terrainY=63.3119 tireTerrainGap=0.00300217 +11:29:53.743 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6149,7502.01> radius=0.3 bottom=<7012.07,63.3149,7502.01> fraction=0.46828 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00302124 +11:29:53.743 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5943,7497.71> +11:29:53.744 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1443,7497.71> terrainY=64.1431 tireTerrainGap=0.00128174 +11:29:53.744 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5943,7497.71> radius=0.45 bottom=<7009.97,64.1443,7497.71> fraction=0.46046 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00130463 +11:29:53.744 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.82> +11:29:53.744 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.82> terrainY=63.8128 tireTerrainGap=-0.0026207 +11:29:53.744 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.82> radius=0.45 bottom=<7014.51,63.8102,7497.82> fraction=0.442655 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00261688 +11:29:53.745 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:53.745 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.745 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.746 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:53.746 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.230 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:29:54.735 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +11:29:54.735 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:29:54.735 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:54.736 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +11:29:54.736 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00170517 +11:29:54.736 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +11:29:54.737 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +11:29:54.737 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +11:29:54.737 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +11:29:54.737 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +11:29:54.737 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +11:29:54.737 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:29:54.738 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.738 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:54.739 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:29:55.246 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.247 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.750 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5297,7499.75> up=0.994376 +11:29:55.750 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:29:55.750 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:29:55.750 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6125,7502.02> +11:29:55.750 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3125,7502.02> terrainY=63.3108 tireTerrainGap=0.00170517 +11:29:55.750 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6125,7502.02> radius=0.3 bottom=<7012.07,63.3125,7502.02> fraction=0.462288 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00170517 +11:29:55.751 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.98,64.5941,7497.72> +11:29:55.751 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.98,64.1441,7497.72> terrainY=64.1415 tireTerrainGap=0.00259399 +11:29:55.751 SCRIPT : ERR GEAR SUPPORT: center=<7009.98,64.5941,7497.72> radius=0.45 bottom=<7009.98,64.1441,7497.72> fraction=0.466629 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00266266 +11:29:55.751 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.26,7497.84> +11:29:55.751 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.81,7497.84> terrainY=63.8119 tireTerrainGap=-0.00187302 +11:29:55.751 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.26,7497.84> radius=0.45 bottom=<7014.52,63.81,7497.84> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:29:55.751 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:29:55.752 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:29:55.753 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:29:55.766 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:29:55.767 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:29:55.767 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:29:55.767 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:29:55.767 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:29:55.768 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:29:55.768 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:29:55.860 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:29:55.900 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5> +11:29:55.950 SCRIPT : ERR SMOKE PASS: new identity may enter prison +11:29:55.950 SCRIPT : ERR SMOKE PASS: spawn consumes identity life +11:29:55.950 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection +11:29:55.950 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life +11:29:55.950 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected +11:29:55.951 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation +11:29:55.952 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available +11:29:55.955 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions +11:29:55.957 SCRIPT : ERR SMOKE PASS: base contracts test setting restored +11:29:55.957 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization +11:29:55.958 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service +11:29:56.457 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=0 failure= +11:30:01.530 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:30:06.586 SCRIPT : ERR MORTAR SALVO: step=0 startup=0 source=M0 observedEvents=0 ready=1 failure= +11:30:07.087 SCRIPT : ERR SMOKE PASS: mortar salvo untasked original gun and complete four-person crew start without shots +11:30:07.087 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo initial physical crew member is conscious and unique +11:30:07.088 SCRIPT : ERR SMOKE PASS: mortar salvo dedicated actual manpack supplies the radio route +11:30:07.089 SCRIPT : ERR SMOKE PASS: mortar salvo exactly 27 distinct physical initial HE shells +11:30:07.104 SCRIPT : ERR MORTAR SALVO IMPACT: position=<5200,80.1937,6400> batteryDistance=1000; no characters/vehicles in 400m square; production settlement/friendly exclusions passed +11:30:07.104 SCRIPT : ERR SMOKE PASS: mortar salvo bounded candidate survey finds an unoccupied production-safe impact area +11:30:07.104 SCRIPT : ERR SMOKE PASS: mortar salvo fixture-owned inert report identity exists; no enemy perception is claimed +11:30:07.105 SCRIPT : ERR SMOKE PASS: mortar salvo synthetic observation enters actual existing radio uplink once +11:30:07.105 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M1 actualObservedAt=17920.6 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378983 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:07.105 SCRIPT : ERR SMOKE PASS: mortar salvo first actual-clock observation recorded without replacement +11:30:11.637 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:16.170 SCRIPT : ERR SMOKE PASS: mortar salvo initial order traverses actual nonempty HQ downlink +11:30:16.673 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:21.737 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:26.791 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:27.299 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M7 actualObservedAt=38130.5 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.380020 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:27.299 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:30:31.851 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:34.105 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M7 observedAt=38130.5 downlink=M8 sameOrder=1 originalActivity=1 +11:30:36.908 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:41.960 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:47.015 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=0 ready=1 failure= +11:30:47.423 SCRIPT : ERR MORTAR SALVO COMMIT: count=1 order=1 shot=0 acceptedSource=M7 observedAge=20121.4 commandAge=25153.1 validationAge=883.43; recorded before native inventory transfer +11:30:47.524 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M9 actualObservedAt=58354.9 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.375168 6998.000000> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:30:47.525 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:30:48.457 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=1 entity=Projectile<0x00000001A01AA1B0> @"ENTITY:4611686018427390993" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.590820 204.000366 6999.681641> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.59,204,6999.68> order=1 acceptedSource=M7 aimAge=26186.9 flight=24.2333; impact is not measured +11:30:52.060 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:30:54.213 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M9 observedAt=58354.9 downlink=M10 sameOrder=1 originalActivity=1 +11:30:57.116 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=1 ready=1 failure= +11:30:57.407 SCRIPT : ERR MORTAR SALVO COMMIT: count=2 order=1 shot=1 acceptedSource=M9 observedAge=9879.39 commandAge=5498.86 validationAge=3193.97; recorded before native inventory transfer +11:30:58.441 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=2 entity=Projectile<0x00000001A01AA2C0> @"ENTITY:4611686018427390998" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.577148 203.997421 6999.687988> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.997,6999.69> order=1 acceptedSource=M9 aimAge=6535.07 flight=24.1666; impact is not measured +11:31:02.164 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:31:07.214 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=2 ready=1 failure= +11:31:07.349 SCRIPT : ERR MORTAR SALVO COMMIT: count=3 order=1 shot=2 acceptedSource=M9 observedAge=19819.4 commandAge=4999.82 validationAge=4999.82; recorded before native inventory transfer +11:31:07.729 SCRIPT : ERR MORTAR REFRESH OBSERVATION: source=M11 actualObservedAt=78558.6 originalRTO=SCR_ChimeraCharacter<0x00000001BBE686F0> @"ENTITY:4611686018427390898" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <6006.000000 202.378342 6998.000977> @"{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" synthetic stationary inert target; awaiting actual uplink and HQ downlink +11:31:07.729 SCRIPT : ERR SMOKE PASS: mortar salvo next distinct actual-clock synthetic observation queued only after previous acceptance +11:31:08.387 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=3 entity=Projectile<0x00000001A01AA3D0> @"ENTITY:4611686018427391003" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600098 204.006302 6999.694336> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.006,6999.69> order=1 acceptedSource=M9 aimAge=6041.12 flight=24.3333; impact is not measured +11:31:12.266 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=3 ready=1 failure= +11:31:14.370 SCRIPT : ERR MORTAR REFRESH ACCEPTED: source=M11 observedAt=78558.6 downlink=M12 sameOrder=1 originalActivity=1 +11:31:16.030 SCRIPT : ERR MORTAR SALVO COMMIT: count=4 order=1 shot=3 acceptedSource=M11 observedAge=8296.92 commandAge=4052.25 validationAge=1658.84; recorded before native inventory transfer +11:31:17.062 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=4 entity=Projectile<0x00000001A01AA4E0> @"ENTITY:4611686018427391008" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.580078 203.994766 6999.673340> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,203.995,6999.67> order=1 acceptedSource=M11 aimAge=5088.79 flight=24.1333; impact is not measured +11:31:17.297 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:22.345 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:27.046 SCRIPT : ERR MORTAR SALVO COMMIT: count=5 order=1 shot=4 acceptedSource=M11 observedAge=19314.9 commandAge=6279 validationAge=6279; recorded before native inventory transfer +11:31:27.390 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=4 ready=1 failure= +11:31:28.081 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=5 entity=Projectile<0x00000001A01AA5F0> @"ENTITY:4611686018427391013" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.582031 204.002167 6999.701172> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.58,204.002,6999.7> order=1 acceptedSource=M11 aimAge=7315.63 flight=24.2; impact is not measured +11:31:32.462 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:31:37.508 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=5 ready=1 failure= +11:31:38.025 SCRIPT : ERR MORTAR SALVO COMMIT: count=6 order=1 shot=5 acceptedSource=M11 observedAge=30293.9 commandAge=6601.13 validationAge=6601.13; recorded before native inventory transfer +11:31:39.065 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=6 entity=Projectile<0x00000001A01AA700> @"ENTITY:4611686018427391018" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.604004 204.004105 6999.680664> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.004,6999.68> order=1 acceptedSource=M11 aimAge=7641.37 flight=24.3; impact is not measured +11:31:42.570 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:31:47.630 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=6 ready=1 failure= +11:31:48.344 SCRIPT : ERR MORTAR SALVO COMMIT: count=7 order=1 shot=6 acceptedSource=M11 observedAge=40612.7 commandAge=5969.58 validationAge=5969.58; recorded before native inventory transfer +11:31:49.371 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=7 entity=Projectile<0x00000001A01AA810> @"ENTITY:4611686018427391023" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.566895 203.991669 6999.678711> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.57,203.992,6999.68> order=1 acceptedSource=M11 aimAge=6996.57 flight=24.0666; impact is not measured +11:31:52.701 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:31:57.552 SCRIPT : ERR MORTAR SALVO COMMIT: count=8 order=1 shot=7 acceptedSource=M11 observedAge=49819.9 commandAge=4128.69 validationAge=4128.69; recorded before native inventory transfer +11:31:57.752 SCRIPT : ERR MORTAR SALVO: step=1 startup=1 source=M1 observedEvents=7 ready=1 failure= +11:31:58.585 SCRIPT : ERR MORTAR SALVO PROJECTILE: event=8 entity=Projectile<0x00000001A01AA920> @"ENTITY:4611686018427391028" ('Projectile','Assets/Weapons/Ammo/Shells/82mm_Mortar_2B14/Shell_82mm_HE_O832DU.xob') at <5999.600586 204.008911 6999.705078> @"{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et" origin=<5999.6,204.009,6999.71> order=1 acceptedSource=M11 aimAge=5163.09 flight=24.3333; impact is not measured +11:31:58.647 SCRIPT : ERR MORTAR SALVO CLOSURE: order=1 reason=native artillery activity COMPLETED (shot count is separate) lastFailure= events=8 commits=8 complete=1 +11:31:58.766 SCRIPT : ERR SMOKE PASS: mortar salvo one real uplink/downlink and native activity naturally complete the entire configured salvo +11:31:58.766 SCRIPT : ERR SMOKE PASS: mortar salvo every queued update was accepted under the same order before closure and at least one updated report authorized a commit +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo exact configured native projectiles equal fresh commits and missing original inventory shells +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo all delivered messages are ineligible for a second request after completion +11:31:58.767 SCRIPT : ERR SMOKE PASS: mortar salvo natural completion clears command, routes, loading and projectile reservation +11:32:02.798 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:07.861 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:12.919 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:17.971 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:23.006 SCRIPT : ERR MORTAR SALVO: step=2 startup=1 source=M1 observedEvents=8 ready=1 failure= +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo all claimed contacts produce no second request, projectile or replenishment over 25 seconds +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo original group and gun retain four crew +11:32:24.017 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : ERR SMOKE PASS: mortar salvo final conscious crew entity belongs to original physical roster +11:32:24.018 SCRIPT : Rereintroduced [mission]: phase 1 -> 6 +11:32:24.019 SCRIPT : ERR SMOKE PASS: native configured salvo and unchanged-report replay observation complete before reset +11:32:24.019 SCRIPT : ERR SMOKE COMPLETE: native full configured mortar salvo, exact original ammunition and unchanged-report replay refusal; fixture reset requested +11:32:24.132 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME +11:32:24.135 SCRIPT (W): Slot_Chat Has no Content! +11:32:24.135 SCRIPT (W): Slot_VON Has no Content! +11:32:24.135 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:24.135 SCRIPT (W): Slot_Notifications Has no Content! +11:32:26.187 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back +11:32:26.187 SCRIPT : -- Stack trace -- +11:32:26.187 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43 +11:32:26.188 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214 +11:32:26.188 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15 +11:32:26.188 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447 +11:32:26.188 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177 +11:32:26.188 SCRIPT : OnUpdate() Scripts/Game/game.c : 885 +11:32:26.188 SCRIPT : ----------------- +11:32:26.189 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton +11:32:26.189 SCRIPT : -- Stack trace -- +11:32:26.189 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43 +11:32:26.189 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214 +11:32:26.189 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21 +11:32:26.189 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447 +11:32:26.190 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177 +11:32:26.190 SCRIPT : OnUpdate() Scripts/Game/game.c : 885 +11:32:26.190 SCRIPT : ----------------- +11:32:26.192 SCRIPT (W): Slot_Chat Has no Content! +11:32:26.192 SCRIPT (W): Slot_VON Has no Content! +11:32:26.192 SCRIPT (W): Slot_GameVersion Has no Content! +11:32:26.192 SCRIPT (W): Slot_Notifications Has no Content! diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-provenance.json b/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-sha256.json b/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-sha256.json new file mode 100644 index 0000000..affb96c --- /dev/null +++ b/docs/evidence/native-2026-09-19-112900-mortar-refresh/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "66ff36dd3f754fd38e561fa406f515b1b54263939696b171fced589569c5bbf9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/console.log.txt b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/console.log.txt new file mode 100644 index 0000000..fbe05a9 --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/console.log.txt @@ -0,0 +1,1069 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57\console.log started at 2026-09-19 11:35:57 (2026-09-19 09:35:57 UTC) + +11:35:57.731 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57' to filesystem under name logs +11:35:57.731 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile +11:35:57.731 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +11:35:57.733 PROFILING : Workbench Create Engine took: 9.865000 ms +11:35:58.771 INIT : INIT : Workbench Init Engine +11:35:58.771 ENGINE : Initializing engine, version 192142 +11:35:58.771 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome powered-flight -noThrow -disableCrashReporter -errFlightInputDiag 1 -errFlightActionInputs 1 +11:35:58.781 ENGINE : Addon dirs: +11:35:58.781 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/' +11:35:58.781 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons' +11:35:58.781 ENGINE : dir: './addons' +11:35:58.781 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons' +11:35:58.781 ENGINE : Available addons: +11:35:58.781 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:35:58.781 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:35:58.781 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:35:58.781 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:35:58.781 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:35:58.781 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:35:58.781 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:35:58.781 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core +11:35:58.914 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger +11:35:58.918 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:35:58.918 ENGINE : CPU vendor : AuthenticAMD +11:35:58.918 ENGINE : CPU type : 2 +11:35:58.918 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:35:58.918 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:35:58.918 ENGINE : CPU count logical : 16 +11:35:58.918 ENGINE : CPU count physical : 8 +11:35:58.918 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:35:58.918 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:35:58.918 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb) +11:35:59.070 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:35:59.071 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:35:59.072 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57/resourceDatabase.rdb) +11:35:59.243 RESOURCES : RESOURCES : ResourceDB: full scan +11:35:59.249 RESOURCES : RESOURCES : scanning... +11:35:59.249 RESOURCES : RESOURCES : scanning @"ERR_Core" +11:35:59.253 RESOURCES : RESOURCES : scanning @"ArmaReforger" +11:35:59.405 RESOURCES : RESOURCES : scanning @"core" +11:35:59.410 RESOURCES : RESOURCES : scanning @"profile" +11:35:59.410 RESOURCES : RESOURCES : scanning @"logs" +11:35:59.411 RESOURCES : RESOURCES : processing meta-files... +11:35:59.481 RESOURCES : RESOURCES : processing files... +11:35:59.494 INIT : Workbench startup +11:35:59.494 INIT : Workbench Init Engine +11:35:59.494 RESOURCES : ResourceDB: full scan +11:35:59.494 RESOURCES : processing files... +11:35:59.494 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:35:59.494 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:35:59.494 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:35:59.494 RESOURCES : RESOURCES : processing folders... +11:35:59.502 RESOURCES : RESOURCES : creating GUID-item mapping... +11:35:59.521 RESOURCES : RESOURCES : building tree... +11:35:59.587 PROFILING : ResourceDB: full scan took: 344.122000 ms +11:35:59.589 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb) +11:35:59.590 RESOURCES : ResourceDB: written 6865/6865 bytes +11:35:59.590 RESOURCES : ResourceDB: cache successfully saved +11:35:59.591 RESOURCES : ResourceDB: saving cache (id=3 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb) +11:35:59.593 RESOURCES : ResourceDB: written 206/206 bytes +11:35:59.593 RESOURCES : ResourceDB: cache successfully saved +11:35:59.593 RESOURCES : ResourceDB: saving cache (id=4 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57/resourceDatabase.rdb) +11:35:59.594 RESOURCES : ResourceDB: written 162/162 bytes +11:35:59.594 RESOURCES : ResourceDB: cache successfully saved +11:35:59.594 ENGINE : GameProject load +11:35:59.594 ENGINE : Loaded addons: +11:35:59.594 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:35:59.594 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:35:59.594 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:35:59.596 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:35:59.596 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf" +11:35:59.596 ENGINE : Engine user settings config loaded +11:35:59.596 PROFILING : Settings changed took: 0.002200 ms +11:35:59.718 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:35:59.719 RENDER : Basic screen setup: +11:35:59.719 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:35:59.719 RENDER : MSAA : none +11:35:59.734 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:35:59.734 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:35:59.734 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:35:59.734 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:35:59.734 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:35:59.734 RENDER : AMD AGS correctly initialized +11:35:59.734 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 +11:35:59.734 RENDER : Detected output devices: +11:35:59.734 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:35:59.734 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:35:59.734 RENDER : Concurrent frames limit 2 +11:35:59.821 RENDER : DX12 device successfully created by AMD AGS library +11:35:59.821 RENDER : * user markers not supported in this version AMD SW +11:35:59.821 RENDER : Graphics device features +11:35:59.821 RENDER : Needed: +11:35:59.821 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:35:59.821 RENDER : Optional: +11:35:59.821 RENDER : * Allow tearing (VSYNC) : 1 +11:35:59.821 RENDER : * 16 bits : 1 +11:35:59.821 RENDER : * Resource heap tier : 3 +11:35:59.821 RENDER : * Persistent heaps (DRED) : 1 +11:35:59.821 RENDER : * DRED 1.2 is supported by compiler +11:35:59.844 RENDER : Main RT format setup. +11:35:59.845 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:35:59.845 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:35:59.846 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +11:35:59.882 PROFILING : Settings changed took: 0.020100 ms +11:36:00.522 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:36:00.522 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:36:00.522 AUDIO : Audio client: +11:36:00.522 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:36:00.530 RENDER : RENDER : Reload shaders +11:36:00.531 RENDER : Enfusion shader version 13 +11:36:00.531 INIT : INIT : ShaderListReload +11:36:00.531 PROFILING : ShaderListReload took: 0.000500 ms +11:36:00.674 AUDIO : Endpoint: Speakers (PulseAudio Output) +11:36:00.674 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B +11:36:00.674 AUDIO : Audio client: +11:36:00.674 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512 +11:36:00.903 RENDER : Loaded 3752 newer shader binaries +11:36:00.903 PROFILING : Reload shaders took: 372.258700 ms +11:36:00.903 ENGINE : Initializing inputs. +11:36:00.917 NETWORK : Initializing networking. +11:36:00.917 NETWORK : Using new GameRplScheduler. +11:36:00.917 SCRIPT : SCRIPT : Initializing scripts +11:36:00.917 SCRIPT : SCRIPT : ScriptProjectManager init +11:36:01.761 PROFILING : ScriptProjectManager init took: 843.558000 ms +11:36:01.795 PROFILING : Initializing scripts took: 877.672200 ms +11:36:01.812 ENGINE : Enfusion engine successfully created. +11:36:01.812 PROFILING : Workbench Init Engine took: 3041.240600 ms +11:36:01.812 INIT : INIT : Workbench Create Game +11:36:01.822 GUI : Using default language (en_us) +11:36:01.822 GUI : Loading 'en_us' localization file. +11:36:01.822 INIT : INIT : Loading StringTable +11:36:01.845 PROFILING : Loading StringTable took: 22.924800 ms +11:36:01.845 SCRIPT : SCRIPT : Compiling GameLib scripts +11:36:01.900 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:36:01.900 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:36:01.901 PROFILING : Compiling GameLib scripts took: 55.762100 ms +11:36:01.901 SCRIPT : SCRIPT : Compiling Game scripts +11:36:03.014 INIT : Workbench Create Game +11:36:03.014 SCRIPT : Compiling Game scripts +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:36:03.171 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.285 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:36:03.319 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:36:03.450 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:36:03.516 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:36:03.584 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.616 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:36:03.909 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:36:03.916 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33016K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 0203a4ad +11:36:03.957 PROFILING : Compiling Game scripts took: 2056.596800 ms +11:36:03.963 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:36:04.003 ENGINE : Game successfully created. +11:36:04.004 PROFILING : Workbench Create Game took: 2191.810100 ms +11:36:04.013 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails +11:36:04.888 INIT : INIT : Workbench Reload Game +11:36:04.890 ENGINE : Game destroyed. +11:36:04.897 GUI : Using default language (en_us) +11:36:04.897 GUI : Loading 'en_us' localization file. +11:36:04.897 INIT : INIT : Loading StringTable +11:36:04.908 PROFILING : Loading StringTable took: 10.978800 ms +11:36:04.908 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:36:04.915 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:36:04.915 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:36:04.915 ENGINE : Game successfully created. +11:36:04.915 ENGINE : Game successfully initialized. +11:36:04.915 PROFILING : Workbench Reload Game took: 26.978800 ms +11:36:05.602 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:36:06.621 PROFILING : Entities load took: 1018.347500 ms +11:36:06.632 WORLD : WORLD : CreateEntities +11:36:06.637 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:36:06.638 PROFILING : NotifyBeforeEntitiesCreated took: 0.002600 ms +11:36:06.638 WORLD : WORLD : Wait for preloading data +11:36:06.638 PROFILING : Wait for preloading data took: 0.003600 ms +11:36:06.753 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:36:06.753 PROFILING : PROFILING : Terrain load +11:36:08.317 PROFILING : Terrain load took: 1563.814900 ms +11:36:12.343 WORLD : CreateEntities +11:36:12.343 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:36:12.343 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:36:12.343 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:36:22.099 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:36:22.099 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005100 ms +11:36:22.535 WORLD : WORLD : NotifyEntitiesInitialized +11:36:22.535 TERRAIN : TERRAIN : Initializing road networks... +11:36:22.538 PROFILING : Initializing road networks... took: 2.407300 ms +11:36:22.538 PROFILING : NotifyEntitiesInitialized took: 2.912900 ms +11:36:22.538 PROFILING : CreateEntities took: 15905.798200 ms +11:36:22.725 PROFILING : * WorldEditor: LoadWorld: 17126.974500 ms +11:36:24.148 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf) +11:36:24.148 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf) +11:36:24.149 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'... +11:36:24.149 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping... +11:36:24.248 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:36:24.272 BACKEND : Attempting online Game Config instead. +11:36:27.509 INIT : INIT : Workbench Reload Game +11:36:27.512 ENGINE : Game destroyed. +11:36:27.518 GUI : Using default language (en_us) +11:36:27.518 GUI : Loading 'en_us' localization file. +11:36:27.518 INIT : INIT : Loading StringTable +11:36:27.537 PROFILING : Loading StringTable took: 18.838000 ms +11:36:27.538 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:36:27.546 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:36:27.546 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:36:27.546 ENGINE : Game successfully created. +11:36:27.546 ENGINE : Game successfully initialized. +11:36:27.547 PROFILING : Workbench Reload Game took: 37.034600 ms +11:36:27.549 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:36:27.604 PLATFORM : Save data from container 'settings' have been loaded +11:36:27.694 PLATFORM : Save data from container 'sessions' have been loaded +11:36:27.695 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:36:27.695 ENGINE : Game user settings config loaded +11:36:27.792 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'. +11:36:27.800 WORLD : WORLD : Game::LoadEntities +11:36:27.800 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf" +11:36:27.801 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:36:27.801 WORLD : WORLD : CreateEntities +11:36:27.801 WORLD : WORLD : CreateEntities +11:36:27.801 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:36:27.805 RESOURCES : Loaded mission headers from 7 addon(s)! +11:36:27.805 PROFILING : NotifyBeforeEntitiesCreated took: 4.345600 ms +11:36:27.805 WORLD : WORLD : Wait for preloading data +11:36:27.805 PROFILING : Wait for preloading data took: 0.001100 ms +11:36:32.317 WORLD : Game::LoadEntities +11:36:32.317 WORLD : CreateEntities +11:36:32.317 WORLD : CreateEntities +11:36:32.317 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:36:32.317 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:36:32.317 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:36:33.802 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:36:33.803 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:36:33.803 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:36:33.803 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:36:33.803 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:36:33.803 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:36:38.844 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:36:38.844 PROFILING : NotifyBeforeEntitiesInitialized took: 0.047900 ms +11:36:40.853 WORLD : InitEntities 'world' +11:36:40.853 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:36:40.853 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:36:40.883 WORLD : InitEntities 'world' +11:36:40.883 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:36:40.883 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:36:40.884 WORLD : WORLD : NotifyEntitiesInitialized +11:36:40.884 TERRAIN : TERRAIN : Initializing road networks... +11:36:40.886 PROFILING : Initializing road networks... took: 2.871200 ms +11:36:40.887 DEFAULT : DEFAULT : WorldVolumesCollection +11:36:40.946 PROFILING : WorldVolumesCollection took: 59.691000 ms +11:36:40.946 INIT : INIT : SoundWorldInit +11:36:40.960 PROFILING : SoundWorldInit took: 13.350700 ms +11:36:40.960 PROFILING : NotifyEntitiesInitialized took: 76.221400 ms +11:36:40.960 PROFILING : CreateEntities took: 13158.492100 ms +11:36:40.960 PROFILING : CreateEntities took: 13158.684500 ms +11:36:40.961 WORLD : WORLD : Wait for preloading data around camera +11:36:40.961 PROFILING : Wait for preloading data around camera took: 0.001000 ms +11:36:40.961 WORLD : WORLD : EOnActivate +11:36:40.994 PROFILING : EOnActivate took: 33.306900 ms +11:36:40.994 PROFILING : Game::LoadEntities took: 13193.879300 ms +11:36:41.235 DEFAULT : Entered offline game state. +11:36:41.338 NETWORK : Player connected: connectionID=2147483646 +11:36:41.338 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:36:41.338 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:36:41.343 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.343 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:36:41.344 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.344 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! +11:36:41.344 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! +11:36:41.346 SCRIPT (W): Can't open config file "" +11:36:41.352 WORLD : InitEntities 'world' +11:36:41.352 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.353 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:36:41.353 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:36:41.353 SCRIPT (W): Slot_Chat Has no Content! +11:36:41.353 SCRIPT (W): Slot_VON Has no Content! +11:36:41.353 SCRIPT (W): Slot_AvailableActions Has no Content! +11:36:41.353 SCRIPT (W): Slot_Vehicle Has no Content! +11:36:41.353 SCRIPT (W): Slot_GameVersion Has no Content! +11:36:41.354 SCRIPT (W): Slot_Notifications Has no Content! +11:36:41.354 SCRIPT (W): Slot_Hints Has no Content! +11:36:41.365 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:36:41.365 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:36:41.365 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:36:41.365 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. +11:36:41.366 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. +11:36:41.368 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:36:41.369 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:36:41.369 NETWORK : Players connecting: 0 +11:36:41.369 NETWORK : Players connected: 1 / 1 +11:36:41.397 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves +11:36:41.398 PROFILING : Workbench startup took: 43737.969100 ms +11:36:41.422 WORLD : Frame start +11:36:41.423 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:36:41.435 WORLD : UpdateEntities +11:36:41.435 WORLD : Frame +11:36:41.435 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:36:41.611 WORLD : UpdateEntities +11:36:41.611 WORLD : PostFrame +11:36:41.612 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:36:41.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:36:41.660 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:36:41.660 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:36:41.660 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:36:41.660 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:36:41.806 RENDER : RENDER : ObjectsHeightMap::Build +11:36:41.806 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:36:41.971 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 165.042800 ms +11:36:41.979 PROFILING : ObjectsHeightMap::Build took: 173.229100 ms +11:36:43.147 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:36:43.165 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:36:43.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:36:43.201 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:36:43.205 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:36:43.268 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:36:43.269 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:36:43.274 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:36:43.318 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:36:43.318 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:36:43.320 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:36:43.320 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:36:43.323 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:36:43.325 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:36:43.325 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:36:43.326 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:36:43.326 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:36:43.326 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:36:43.327 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:36:43.327 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:36:43.327 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:36:43.327 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.327 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:36:43.327 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:36:43.328 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.328 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:36:43.328 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:36:43.328 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.328 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.328 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:44.100 WORLD : UpdateEntities +11:36:44.100 WORLD : AfterPostSimulate +11:36:44.100 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:36:44.166 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.166 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.167 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.167 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.422 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5296,7499.7> up=0.995681 +11:36:44.422 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:36:44.422 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:44.422 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6145,7501.97> +11:36:44.423 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3145,7501.97> terrainY=63.3165 tireTerrainGap=-0.00201416 +11:36:44.423 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6145,7501.97> radius=0.3 bottom=<7012.07,63.3145,7501.97> fraction=0.445938 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00189209 +11:36:44.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6017,7497.71> +11:36:44.423 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1517,7497.71> terrainY=64.1555 tireTerrainGap=-0.00378418 +11:36:44.423 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6017,7497.71> radius=0.45 bottom=<7009.88,64.1517,7497.71> fraction=0.43771 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00370026 +11:36:44.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2636,7497.74> +11:36:44.424 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8136,7497.74> terrainY=63.8179 tireTerrainGap=-0.00434494 +11:36:44.424 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2636,7497.74> radius=0.45 bottom=<7014.42,63.8136,7497.74> fraction=0.434722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0043602 +11:36:44.424 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:44.681 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:44.681 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:44.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.682 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.444 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5358,7499.71> up=0.994348 +11:36:45.445 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686 +11:36:45.445 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:45.445 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6201,7501.99> +11:36:45.445 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3201,7501.99> terrainY=63.3144 tireTerrainGap=0.00572205 +11:36:45.446 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6201,7501.99> radius=0.3 bottom=<7012.07,63.3201,7501.99> fraction=0.480942 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00580597 +11:36:45.446 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6027,7497.71> +11:36:45.446 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1527,7497.71> terrainY=64.149 tireTerrainGap=0.00373077 +11:36:45.446 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6027,7497.71> radius=0.45 bottom=<7009.93,64.1527,7497.71> fraction=0.47138 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00370789 +11:36:45.446 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2658,7497.78> +11:36:45.446 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8158,7497.78> terrainY=63.8154 tireTerrainGap=0.000324249 +11:36:45.446 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2658,7497.78> radius=0.45 bottom=<7014.47,63.8158,7497.78> fraction=0.455984 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.00031662 +11:36:45.447 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:45.698 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:45.956 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:36:46.209 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.209 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.210 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.534 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5327,7499.74> up=0.994202 +11:36:46.534 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0452317 angularSpeed=0.0244006 +11:36:46.534 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6139,7502.01> +11:36:46.535 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00232697 +11:36:46.535 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6139,7502.01> radius=0.3 bottom=<7012.08,63.3139,7502.01> fraction=0.465071 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00231552 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.72> +11:36:46.535 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.72> terrainY=64.143 tireTerrainGap=0.000968933 +11:36:46.535 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.72> radius=0.45 bottom=<7009.97,64.1439,7497.72> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.82> +11:36:46.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.82> terrainY=63.813 tireTerrainGap=-0.00328445 +11:36:46.536 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.82> radius=0.45 bottom=<7014.51,63.8097,7497.82> fraction=0.439444 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0033226 +11:36:46.536 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:46.536 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:46.536 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.537 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:46.537 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.538 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:36:47.538 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:36:47.538 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:47.538 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:36:47.538 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00162506 +11:36:47.539 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +11:36:47.539 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:36:47.539 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247955 +11:36:47.539 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:36:47.539 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:36:47.539 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00207138 +11:36:47.540 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +11:36:47.540 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:47.540 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:47.540 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.541 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.541 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:48.049 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.557 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:36:48.557 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:36:48.557 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:48.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:36:48.557 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00162506 +11:36:48.558 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +11:36:48.558 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:36:48.558 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247955 +11:36:48.558 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:36:48.558 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:36:48.559 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00207138 +11:36:48.559 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +11:36:48.559 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:48.559 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.559 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.560 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:36:48.560 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:36:48.561 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:36:48.561 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:36:48.561 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:36:48.562 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:36:48.562 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:36:48.562 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:36:48.680 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:36:48.729 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.935 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.936 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:36:48.936 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:36:48.937 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:36:48.937 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:36:48.938 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:36:48.938 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.939 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.939 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:36:48.940 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:36:48.940 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:36:48.941 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:36:48.941 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:36:48.942 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:36:48.943 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:36:48.943 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:36:48.943 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:36:48.943 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:36:48.969 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:36:49.443 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:36:49.443 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:36:49.452 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:36:49.452 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:36:49.946 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:36:49.947 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:36:49.947 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:36:49.947 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:36:49.947 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:36:49.966 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:36:49.966 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:36:50.452 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28989.3 +11:36:50.453 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:36:50.453 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082FF3CA8> activeSeat=PilotCompartmentSlot<0x0000000082FF3CA8> group=<0x00000001BA269540> SCR_AIGroup actualGroup=<0x00000001BA269540> SCR_AIGroup +11:36:50.453 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:36:50.454 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:36:50.454 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:36:50.454 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:36:52.472 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10002.2 remainingMs=26969.3 +11:36:52.472 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:36:52.473 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397621 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397621 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082FF3CA8> activeSeat=PilotCompartmentSlot<0x0000000082FF3CA8> group=<0x00000001BA269540> SCR_AIGroup actualGroup=<0x00000001BA269540> SCR_AIGroup +11:36:52.473 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:36:52.473 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:36:52.473 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996325 entityOrigin=<4801.01,27.574,11487.4> +11:36:52.474 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:36:52.976 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:36:52.990 WORLD : UpdateEntities +11:36:52.991 WORLD : Frame +11:36:52.991 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0494671 input=1 simulation=1 +11:36:53.044 WORLD : UpdateEntities +11:36:53.044 WORLD : Frame +11:36:53.044 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0541819 input=1 simulation=1 +11:36:53.096 WORLD : UpdateEntities +11:36:53.096 WORLD : Frame +11:36:53.096 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0510821 input=1 simulation=1 +11:36:53.155 WORLD : UpdateEntities +11:36:53.156 WORLD : Frame +11:36:53.156 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0602056 input=1 simulation=1 +11:36:53.483 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=9 +11:36:53.484 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:53.484 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0130672 drift=0.0279645 speed=0.041193 vertical=-0.0209191 up=0.996202 groundContact=1 fuel=1938.75 engine=0 +11:36:53.484 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.58938,4.48577,2.19986> +11:36:53.484 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +11:36:53.484 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0130672,0.0117188> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0276514,0.0782114,0.996553> right=<0.998962,-0.0382677,-0.0247149> +11:36:53.485 SCRIPT : ERR POWERED INPUT: pilotHooks=9 vehicleHooks=9 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:36:53.485 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=9 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=52.9316 beforeWriteAgeMs=32.8184 +11:36:53.485 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:36:53.485 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:36:53.486 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:36:53.486 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:36:53.486 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4899,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7785 +11:36:53.486 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7452,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6823 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6662 damageSphere=27.6823 simulationSphere=16.458 completeSphere=27.6823 initialDrift=0.100174 initialHeight=-0.224167 +11:36:53.487 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:36:53.488 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:36:55.506 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +11:36:55.506 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:55.506 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00558281 drift=0.0383977 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +11:36:55.507 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.88993,4.59397,2.18348> +11:36:55.507 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:36:55.507 SCRIPT : ERR POWERED MOTION: offset=<-0.0380859,0.00558281,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328735,0.080094,0.996245> right=<0.998831,-0.0379772,-0.0299056> +11:36:55.507 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:36:55.507 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=47 writtenAgeMs=11.4092 beforeWriteAgeMs=11.4092 +11:36:55.508 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:36:55.508 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:36:57.536 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=84 +11:36:57.537 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:57.537 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0100765 drift=0.13099 speed=0.0433534 vertical=-0.00198094 up=0.996057 groundContact=1 fuel=1938.66 engine=1 +11:36:57.537 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.52242,4.60733,2.1658> +11:36:57.537 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0492679,0.00226416,0.01577> +11:36:57.537 SCRIPT : ERR POWERED MOTION: offset=<-0.130859,0.0100765,-0.00585938> velocity=<0.0432348,-0.00198094,0.00251969> angularLocal=<-0.000236912,-0.042829,-0.000480477> forward=<0.0438681,0.0803265,0.995803> right=<0.998451,-0.0376692,-0.0409462> +11:36:57.537 SCRIPT : ERR POWERED INPUT: pilotHooks=84 vehicleHooks=84 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000353733 targetRPM=196 +11:36:57.538 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=84 applyCallbacks=137 beforeWriteSequence=84 writtenAgeMs=36.0811 beforeWriteAgeMs=13.3623 +11:36:57.538 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:36:57.538 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:36:59.563 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=123 +11:36:59.564 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:59.564 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0132542 drift=0.223221 speed=0.0440778 vertical=-0.00221505 up=0.996081 groundContact=1 fuel=1938.57 engine=1 +11:36:59.564 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.18765,4.59667,2.15053> +11:36:59.564 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0371973,-0.000285893,0.0162258> +11:36:59.564 SCRIPT : ERR POWERED MOTION: offset=<-0.223145,0.0132542,-0.00585938> velocity=<0.0439888,-0.00221505,0.00171232> angularLocal=<-6.16884e-05,0.0565249,0.00238804> forward=<0.0554275,0.080141,0.995241> right=<0.997917,-0.0374043,-0.0525646> +11:36:59.565 SCRIPT : ERR POWERED INPUT: pilotHooks=123 vehicleHooks=123 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.025348 targetRPM=196 +11:36:59.565 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=123 applyCallbacks=197 beforeWriteSequence=122 writtenAgeMs=22.5742 beforeWriteAgeMs=35.2129 +11:36:59.565 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:36:59.565 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:01.606 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=161 +11:37:01.606 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:01.606 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0164089 drift=0.315484 speed=0.0435257 vertical=-0.00212312 up=0.996109 groundContact=1 fuel=1938.48 engine=1 +11:37:01.606 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.79456,4.58476,2.1344> +11:37:01.606 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0509016,0.00523408,0.0249409> +11:37:01.607 SCRIPT : ERR POWERED MOTION: offset=<-0.31543,0.0164089,-0.00585938> velocity=<0.0434019,-0.00212312,0.00250068> angularLocal=<0.000126175,-0.0428682,-0.000577115> forward=<0.0659673,0.0799339,0.994615> right=<0.997312,-0.0371245,-0.0631627> +11:37:01.607 SCRIPT : ERR POWERED INPUT: pilotHooks=161 vehicleHooks=161 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.430302 targetRPM=196 +11:37:01.607 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=161 applyCallbacks=259 beforeWriteSequence=161 writtenAgeMs=59.748 beforeWriteAgeMs=13.127 +11:37:01.607 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:01.607 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:03.624 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=199 +11:37:03.624 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:03.624 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0195446 drift=0.407269 speed=0.0445385 vertical=-0.00175562 up=0.99614 groundContact=1 fuel=1938.39 engine=1 +11:37:03.624 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<4.39219,4.57124,2.11477> +11:37:03.625 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0553396,-0.000900321,0.0210269> +11:37:03.625 SCRIPT : ERR POWERED MOTION: offset=<-0.407227,0.0195446,-0.00585938> velocity=<0.04441,-0.00175562,0.00288898> angularLocal=<0.000209853,0.0559671,0.00245351> forward=<0.0763395,0.0796985,0.993892> right=<0.996609,-0.036784,-0.0735986> +11:37:03.625 SCRIPT : ERR POWERED INPUT: pilotHooks=199 vehicleHooks=199 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.45452 targetRPM=196 +11:37:03.625 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=199 applyCallbacks=319 beforeWriteSequence=199 writtenAgeMs=44.8457 beforeWriteAgeMs=22.8418 +11:37:03.625 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:03.626 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:05.649 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=236 +11:37:05.649 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:05.649 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0205402 drift=0.499047 speed=0.0425462 vertical=0.00131691 up=0.996172 groundContact=1 fuel=1938.31 engine=1 +11:37:05.649 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<4.85665,4.55767,2.0938> +11:37:05.649 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0909443,0.0110038,0.0204567> +11:37:05.650 SCRIPT : ERR POWERED MOTION: offset=<-0.499023,0.0205402,-0.00488281> velocity=<0.0424953,0.00131691,0.00161018> angularLocal=<0.000284715,-0.0464744,-0.000768211> forward=<0.0843953,0.0794626,0.993259> right=<0.99599,-0.03642,-0.0817137> +11:37:05.650 SCRIPT : ERR POWERED INPUT: pilotHooks=236 vehicleHooks=236 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=27.4452 targetRPM=196 +11:37:05.650 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=236 applyCallbacks=380 beforeWriteSequence=236 writtenAgeMs=27.209 beforeWriteAgeMs=14.7227 +11:37:05.650 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:05.651 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:07.673 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=273 +11:37:07.673 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:07.673 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0126133 drift=0.576185 speed=0.0383851 vertical=0.00610796 up=0.996222 groundContact=1 fuel=1938.22 engine=1 +11:37:07.673 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.25168,4.52815,2.08016> +11:37:07.674 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0422846,-0.00103475,0.0254958> +11:37:07.674 SCRIPT : ERR POWERED MOTION: offset=<-0.576172,0.0126133,-0.00390625> velocity=<0.0371371,0.00610796,-0.00754627> angularLocal=<0.000162797,0.0550249,0.00194588> forward=<0.0912451,0.0789489,0.992694> right=<0.995408,-0.0361845,-0.0886168> +11:37:07.674 SCRIPT : ERR POWERED INPUT: pilotHooks=273 vehicleHooks=273 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=63.0165 targetRPM=196 +11:37:07.674 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=273 applyCallbacks=440 beforeWriteSequence=272 writtenAgeMs=11.3848 beforeWriteAgeMs=36.7812 +11:37:07.674 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:07.675 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:09.691 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=309 +11:37:09.692 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:09.692 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00261497 drift=0.64014 speed=0.0334856 vertical=0.00455244 up=0.99629 groundContact=1 fuel=1938.13 engine=1 +11:37:09.692 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.75541,4.48362,2.06926> +11:37:09.692 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.181776,-0.00576362,-0.0248589> +11:37:09.692 SCRIPT : ERR POWERED MOTION: offset=<-0.640137,0.00261497,-0.00195312> velocity=<0.0303181,0.00455244,-0.0134674> angularLocal=<0.000181413,-0.0454566,-2.87928e-05> forward=<0.0999751,0.078174,0.991914> right=<0.994593,-0.035997,-0.0974081> +11:37:09.693 SCRIPT : ERR POWERED INPUT: pilotHooks=309 vehicleHooks=309 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.727712 rotorRPM=87.6798 targetRPM=196 +11:37:09.693 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=309 applyCallbacks=501 beforeWriteSequence=309 writtenAgeMs=40.5195 beforeWriteAgeMs=16.7871 +11:37:09.693 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.727712> writtenThrottle=0 beforeWriteThrottle=0 +11:37:09.694 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.866037 autohover=0 collectiveMode=3 +11:37:10.854 WORLD : UpdateEntities +11:37:10.854 WORLD : AfterPostSimulate +11:37:10.854 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:37:11.712 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=347 +11:37:11.713 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:11.713 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00634193 drift=0.704102 speed=0.0301793 vertical=0.00490549 up=0.996356 groundContact=1 fuel=1938.04 engine=1 +11:37:11.713 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.20461,4.44174,2.05423> +11:37:11.713 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.287732,-0.00911501,-0.0378041> +11:37:11.714 SCRIPT : ERR POWERED MOTION: offset=<-0.704102,-0.00634193,0> velocity=<0.0217636,0.00490549,-0.0203242> angularLocal=<0.000330827,-0.0456087,0.000282963> forward=<0.107755,0.0774454,0.991156> right=<0.993803,-0.0357377,-0.10525> +11:37:11.714 SCRIPT : ERR POWERED INPUT: pilotHooks=347 vehicleHooks=347 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.528553 rotorRPM=105.453 targetRPM=196 +11:37:11.714 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=347 applyCallbacks=561 beforeWriteSequence=346 writtenAgeMs=26.0781 beforeWriteAgeMs=40.5391 +11:37:11.715 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.528553> writtenThrottle=0 beforeWriteThrottle=0 +11:37:11.715 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.764276 autohover=0 collectiveMode=3 +11:37:13.740 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=382 +11:37:13.740 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:13.741 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0171814 drift=0.746301 speed=0.0329886 vertical=0.00644265 up=0.996421 groundContact=1 fuel=1937.95 engine=1 +11:37:13.741 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.52575,4.3987,2.04258> +11:37:13.741 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.225431,0.00333262,0.0263929> +11:37:13.741 SCRIPT : ERR POWERED MOTION: offset=<-0.746094,-0.0171814,0.0175781> velocity=<0.0116686,0.00644265,-0.0301759> angularLocal=<0.000394886,0.0492433,0.000934241> forward=<0.113315,0.0766964,0.990594> right=<0.9932,-0.0355371,-0.110862> +11:37:13.741 SCRIPT : ERR POWERED INPUT: pilotHooks=382 vehicleHooks=382 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.39333 rotorRPM=121.954 targetRPM=196 +11:37:13.742 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=382 applyCallbacks=622 beforeWriteSequence=382 writtenAgeMs=62.6406 beforeWriteAgeMs=31.3027 +11:37:13.742 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.39333> writtenThrottle=0 beforeWriteThrottle=0 +11:37:13.742 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696665 autohover=0 collectiveMode=3 +11:37:15.766 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=420 +11:37:15.766 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:15.766 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0305538 drift=0.759357 speed=0.0359502 vertical=0.00834371 up=0.99648 groundContact=1 fuel=1937.86 engine=1 +11:37:15.766 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.63914,4.35565,2.03984> +11:37:15.767 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.132544,-0.00145711,1.12232> +11:37:15.767 SCRIPT : ERR POWERED MOTION: offset=<-0.753906,-0.0305538,0.0908203> velocity=<0.0135219,0.00834371,-0.0322484> angularLocal=<-0.00190994,-0.0200409,-0.000620262> forward=<0.115282,0.0759473,0.990425> right=<0.992977,-0.0354916,-0.112857> +11:37:15.767 SCRIPT : ERR POWERED INPUT: pilotHooks=420 vehicleHooks=420 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.290233 rotorRPM=138.107 targetRPM=196 +11:37:15.768 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=420 applyCallbacks=683 beforeWriteSequence=420 writtenAgeMs=40.4531 beforeWriteAgeMs=18.1953 +11:37:15.768 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.290233> writtenThrottle=0 beforeWriteThrottle=0 +11:37:15.768 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.645845 autohover=0 collectiveMode=3 +11:37:17.796 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=457 +11:37:17.796 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:17.796 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.046011 drift=0.775261 speed=0.0686347 vertical=0.00852959 up=0.996539 groundContact=1 fuel=1937.77 engine=1 +11:37:17.797 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.38597,4.31407,2.03299> +11:37:17.797 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00521321,-0.000109691,-0.0103408> +11:37:17.797 SCRIPT : ERR POWERED MOTION: offset=<-0.75,-0.046011,0.196289> velocity=<0.0141952,0.00852959,-0.0666068> angularLocal=<0.000632944,-0.00164985,-2.5282e-05> forward=<0.11091,0.0752237,0.990979> right=<0.993466,-0.0353745,-0.108503> +11:37:17.797 SCRIPT : ERR POWERED INPUT: pilotHooks=457 vehicleHooks=457 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.212235 rotorRPM=154.37 targetRPM=196 +11:37:17.797 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=457 applyCallbacks=743 beforeWriteSequence=456 writtenAgeMs=31.793 beforeWriteAgeMs=46.5391 +11:37:17.798 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.212235> writtenThrottle=0 beforeWriteThrottle=0 +11:37:17.798 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606117 autohover=0 collectiveMode=3 +11:37:19.816 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=494 +11:37:19.817 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:19.817 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0613766 drift=0.82141 speed=0.0337956 vertical=0.00808577 up=0.996602 groundContact=1 fuel=1937.68 engine=1 +11:37:19.817 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.31427,4.2715,2.02088> +11:37:19.817 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00642031,0.00131244,-0.00229083> +11:37:19.817 SCRIPT : ERR POWERED MOTION: offset=<-0.795898,-0.0613766,0.203125> velocity=<0.0226813,0.00808577,-0.0237134> angularLocal=<0.000733663,-0.000370914,0.000208374> forward=<0.109676,0.0744827,0.991173> right=<0.993604,-0.0351657,-0.107303> +11:37:19.817 SCRIPT : ERR POWERED INPUT: pilotHooks=494 vehicleHooks=494 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.148134 rotorRPM=170.291 targetRPM=196 +11:37:19.818 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=494 applyCallbacks=804 beforeWriteSequence=494 writtenAgeMs=35.0352 beforeWriteAgeMs=24.5352 +11:37:19.818 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.148134> writtenThrottle=0 beforeWriteThrottle=0 +11:37:19.818 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574067 autohover=0 collectiveMode=3 +11:37:20.824 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:37:21.328 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:37:21.328 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +11:37:21.832 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=531 +11:37:21.833 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:21.833 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0959911 drift=1.07525 speed=0.603629 vertical=0.013828 up=0.996211 groundContact=1 fuel=1937.59 engine=1 +11:37:21.833 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.40605,4.59871,1.93777> +11:37:21.833 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.187579,0.11211,-0.587075> +11:37:21.833 SCRIPT : ERR POWERED MOTION: offset=<-0.959473,-0.0959911,0.485352> velocity=<0.227903,0.013828,-0.558782> angularLocal=<-0.00989745,0.00626102,-0.000769897> forward=<0.111215,0.0801764,0.990557> right=<0.99349,-0.0337052,-0.108816> +11:37:21.834 SCRIPT : ERR POWERED INPUT: pilotHooks=531 vehicleHooks=531 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.276 targetRPM=196 +11:37:21.834 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=531 applyCallbacks=864 beforeWriteSequence=531 writtenAgeMs=42.4844 beforeWriteAgeMs=42.4844 +11:37:21.834 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +11:37:21.834 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +11:37:21.834 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:37:21.834 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=19 matched=1 +11:37:21.835 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:37:22.331 SCRIPT : ERR SMOKE PASS: powered-flight negative consumption proof uses owned actor actions in Direct mode with autohover off +11:37:22.331 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for negative proof +11:37:22.331 SCRIPT : ERR POWERED NEGATIVE COLLECTIVE GATE: command=-0.05 rotorSignal=-0.05 actionUpdates=9 matched=1 +11:37:22.842 SCRIPT : ERR SMOKE PASS: powered-flight negative consumption proof uses owned actor actions in Direct mode with autohover off +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for negative proof +11:37:22.843 SCRIPT : ERR POWERED NEGATIVE COLLECTIVE GATE: command=-0.05 rotorSignal=-0.05 actionUpdates=19 matched=1 +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight negative actor collective persists in existing native rotor signal across actual ticks before signed flight demand +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover enabled only after both direct collective consumption proofs +11:37:23.862 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=568 +11:37:23.863 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:23.863 SCRIPT : ERR POWERED FLIGHT: stage=4 height=-0.0288696 drift=1.54089 speed=0.0374335 vertical=-0.0266785 up=0.996705 groundContact=1 fuel=1937.51 engine=1 +11:37:23.863 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.22329,4.2416,1.91383> +11:37:23.863 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0454107,0.942677,-0.249415> +11:37:23.863 SCRIPT : ERR POWERED MOTION: offset=<-1.22363,0.0288696,0.936523> velocity=<0.0258307,-0.0266785,-0.00472205> angularLocal=<-0.00343971,0.0515367,0.00231368> forward=<0.159843,0.0739624,0.984368> right=<0.986916,-0.0333049,-0.157755> +11:37:23.864 SCRIPT : ERR POWERED INPUT: pilotHooks=568 vehicleHooks=568 readback=1 collective=-0.424121 cyclicF=0.0588049 cyclicR=-0.0379156 antiTorque=-0.212956 rotorRPM=189.261 targetRPM=196 +11:37:23.864 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=568 applyCallbacks=925 beforeWriteSequence=568 writtenAgeMs=47.5586 beforeWriteAgeMs=35.668 +11:37:23.864 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.424121 beforeWriteCollective=-0.424121 writtenFRA=<0.0588049,-0.0379156,-0.0611443> beforeWriteFRA=<0.0588049,-0.0379156,-0.212956> writtenThrottle=0 beforeWriteThrottle=0 +11:37:23.864 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.424121 cyclicForward=0.0588049 cyclicAside=-0.0379156 tailCollective=0.393522 autohover=0 collectiveMode=3 +11:37:24.368 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=577 +11:37:24.368 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:24.368 SCRIPT : ERR POWERED FLIGHT: stage=4 height=-0.00531578 drift=1.55552 speed=0.0247642 vertical=0.00623799 up=0.996507 groundContact=1 fuel=1937.51 engine=1 +11:37:24.368 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.18679,4.38265,1.93572> +11:37:24.369 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.227894,-0.0249202,0.0768813> +11:37:24.369 SCRIPT : ERR POWERED MOTION: offset=<-1.23682,0.00531578,0.943359> velocity=<0.0135044,0.00623799,-0.0197986> angularLocal=<0.00679715,0.0455726,-8.51741e-06> forward=<0.159187,0.076417,0.984287> right=<0.987022,-0.0336796,-0.157014> +11:37:24.369 SCRIPT : ERR POWERED INPUT: pilotHooks=577 vehicleHooks=577 readback=1 collective=-0.348774 cyclicF=0.0618726 cyclicR=-0.0378077 antiTorque=-0.208201 rotorRPM=191.224 targetRPM=196 +11:37:24.369 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=577 applyCallbacks=940 beforeWriteSequence=577 writtenAgeMs=63.1758 beforeWriteAgeMs=40.5039 +11:37:24.370 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.348774 beforeWriteCollective=-0.348774 writtenFRA=<0.0618726,-0.0378077,-0.0913397> beforeWriteFRA=<0.0618726,-0.0378077,-0.208201> writtenThrottle=0 beforeWriteThrottle=0 +11:37:24.370 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.348774 cyclicForward=0.0618726 cyclicAside=-0.0378077 tailCollective=0.395899 autohover=0 collectiveMode=3 +11:37:24.878 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=587 +11:37:24.879 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:24.879 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.00907707 drift=1.5589 speed=0.040669 vertical=0.0339635 up=0.996646 groundContact=1 fuel=1937.46 engine=1 +11:37:24.879 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.0176,4.28878,1.90962> +11:37:24.879 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.225537,-0.0597972,0.99187> +11:37:24.879 SCRIPT : ERR POWERED MOTION: offset=<-1.23584,-0.00907707,0.950195> velocity=<0.00962185,0.0339635,-0.0201956> angularLocal=<-0.00235297,-0.0299456,-0.00124486> forward=<0.156299,0.0747835,0.984875> right=<0.987482,-0.0332298,-0.15419> +11:37:24.880 SCRIPT : ERR POWERED INPUT: pilotHooks=587 vehicleHooks=587 readback=1 collective=-0.25406 cyclicF=0.0685211 cyclicR=-0.0375473 antiTorque=-0.135445 rotorRPM=193.252 targetRPM=196 +11:37:24.880 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=587 applyCallbacks=956 beforeWriteSequence=587 writtenAgeMs=23.9062 beforeWriteAgeMs=12.9961 +11:37:24.880 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.25406 beforeWriteCollective=-0.25406 writtenFRA=<0.0685211,-0.0375473,-0.0676067> beforeWriteFRA=<0.0685211,-0.0375473,-0.135445> writtenThrottle=0 beforeWriteThrottle=0 +11:37:24.880 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.26293 cyclicForward=0.0633119 cyclicAside=-0.0359875 tailCollective=0.421563 autohover=0 collectiveMode=3 +11:37:25.382 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=596 +11:37:25.382 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:25.383 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0280972 drift=1.57045 speed=0.0674153 vertical=0.0467872 up=0.996729 groundContact=1 fuel=1937.46 engine=1 +11:37:25.383 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.77162,4.22702,1.90476> +11:37:25.383 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00662176,0.0224192,-0.0601112> +11:37:25.383 SCRIPT : ERR POWERED MOTION: offset=<-1.23145,-0.0280972,0.974609> velocity=<0.00940862,0.0467872,-0.0476157> angularLocal=<0.00392206,-0.00902312,-0.000164155> forward=<0.152081,0.0737086,0.985616> right=<0.988132,-0.0331477,-0.149991> +11:37:25.383 SCRIPT : ERR POWERED INPUT: pilotHooks=596 vehicleHooks=596 readback=1 collective=-0.171742 cyclicF=0.0608906 cyclicR=-0.0363992 antiTorque=-0.0941664 rotorRPM=195.215 targetRPM=196 +11:37:25.384 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=596 applyCallbacks=971 beforeWriteSequence=596 writtenAgeMs=51.3555 beforeWriteAgeMs=12.5312 +11:37:25.384 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.171742 beforeWriteCollective=-0.171742 writtenFRA=<0.0608906,-0.0363992,-0.0711626> beforeWriteFRA=<0.0608906,-0.0363992,-0.0941664> writtenThrottle=0 beforeWriteThrottle=0 +11:37:25.384 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.171742 cyclicForward=0.0608906 cyclicAside=-0.0363992 tailCollective=0.450767 autohover=0 collectiveMode=3 +11:37:25.887 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=606 +11:37:25.887 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:25.887 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0515289 drift=1.57601 speed=0.0631145 vertical=0.0538525 up=0.996783 groundContact=1 fuel=1937.42 engine=1 +11:37:25.888 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.64767,4.19144,1.89004> +11:37:25.888 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0326281,-0.110681,-0.0443438> +11:37:25.888 SCRIPT : ERR POWERED MOTION: offset=<-1.23389,-0.0515289,0.980469> velocity=<0.0194979,0.0538525,-0.0265177> angularLocal=<0.0025895,-0.00424794,-0.000916256> forward=<0.149956,0.0730892,0.985987> right=<0.988456,-0.0328931,-0.147893> +11:37:25.888 SCRIPT : ERR POWERED INPUT: pilotHooks=606 vehicleHooks=606 readback=1 collective=-0.086912 cyclicF=0.0632528 cyclicR=-0.0372474 antiTorque=-0.0509485 rotorRPM=196 targetRPM=196 +11:37:25.888 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=606 applyCallbacks=986 beforeWriteSequence=605 writtenAgeMs=12.457 beforeWriteAgeMs=24.625 +11:37:25.889 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0782072 beforeWriteCollective=-0.086912 writtenFRA=<0.062189,-0.037414,-0.071015> beforeWriteFRA=<0.0632528,-0.0372474,-0.0509485> writtenThrottle=0 beforeWriteThrottle=0 +11:37:25.889 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.086912 cyclicForward=0.0632528 cyclicAside=-0.0372474 tailCollective=0.474526 autohover=0 collectiveMode=3 +11:37:26.387 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=614 +11:37:26.387 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:26.387 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0746861 drift=1.61371 speed=0.175238 vertical=0.0757782 up=0.996982 groundContact=0 fuel=1937.42 engine=1 +11:37:26.387 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.32686,4.07034,1.80552> +11:37:26.388 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.196962,0.220137,-0.74711> +11:37:26.388 SCRIPT : ERR POWERED MOTION: offset=<-1.25244,-0.0746861,1.01758> velocity=<0.0778507,0.0757782,-0.137497> angularLocal=<0.00566174,-0.0370852,0.00562568> forward=<0.144455,0.070981,0.986962> right=<0.989291,-0.0314276,-0.142535> +11:37:26.388 SCRIPT : ERR POWERED INPUT: pilotHooks=614 vehicleHooks=614 readback=1 collective=-0.00169538 cyclicF=0.0606953 cyclicR=-0.0326402 antiTorque=0.0036717 rotorRPM=196 targetRPM=196 +11:37:26.388 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=614 applyCallbacks=1001 beforeWriteSequence=614 writtenAgeMs=64.9844 beforeWriteAgeMs=18.6484 +11:37:26.388 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.00169538 beforeWriteCollective=-0.00169538 writtenFRA=<0.0606953,-0.0326402,-0.0620908> beforeWriteFRA=<0.0606953,-0.0326402,0.0036717> writtenThrottle=0 beforeWriteThrottle=0 +11:37:26.389 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.00169538 cyclicForward=0.0606953 cyclicAside=-0.0326402 tailCollective=0.499366 autohover=0 collectiveMode=3 +11:37:26.889 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=624 +11:37:26.889 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:26.889 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.181364 drift=1.77602 speed=0.65425 vertical=0.374606 up=0.997602 groundContact=0 fuel=1937.37 engine=1 +11:37:26.889 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.70359,3.69698,1.44409> +11:37:26.889 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.159468,0.625015,-0.699352> +11:37:26.890 SCRIPT : ERR POWERED MOTION: offset=<-1.30371,-0.181364,1.20605> velocity=<0.168826,0.374606,-0.509128> angularLocal=<0.0216114,-0.060275,0.0104631> forward=<0.11649,0.0644798,0.991097> right=<0.993038,-0.025149,-0.115082> +11:37:26.890 SCRIPT : ERR POWERED INPUT: pilotHooks=624 vehicleHooks=624 readback=1 collective=0.0471659 cyclicF=0.0566658 cyclicR=-0.0282438 antiTorque=0.0540418 rotorRPM=196 targetRPM=196 +11:37:26.890 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=624 applyCallbacks=1016 beforeWriteSequence=624 writtenAgeMs=33.1562 beforeWriteAgeMs=22.4297 +11:37:26.891 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0471659 beforeWriteCollective=0.0471659 writtenFRA=<0.0566658,-0.0282438,-0.0358545> beforeWriteFRA=<0.0566658,-0.0282438,0.0540418> writtenThrottle=0 beforeWriteThrottle=0 +11:37:26.891 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0471659 cyclicForward=0.0566658 cyclicAside=-0.0282438 tailCollective=0.527021 autohover=0 collectiveMode=3 +11:37:27.398 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=634 +11:37:27.398 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:27.399 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.443951 drift=2.11493 speed=1.09772 vertical=0.679515 up=0.99858 groundContact=0 fuel=1937.37 engine=1 +11:37:27.399 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.07516,2.88139,1.01322> +11:37:27.399 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.104113,0.508969,-0.529883> +11:37:27.399 SCRIPT : ERR POWERED MOTION: offset=<-1.39697,-0.443951,1.58789> velocity=<0.236695,0.679515,-0.828996> angularLocal=<0.0352896,-0.0489048,0.012132> forward=<0.0883506,0.0502685,0.99482> right=<0.996002,-0.0176608,-0.0875632> +11:37:27.400 SCRIPT : ERR POWERED INPUT: pilotHooks=634 vehicleHooks=634 readback=1 collective=0.0684039 cyclicF=0.0480775 cyclicR=-0.0250024 antiTorque=0.0801449 rotorRPM=196 targetRPM=196 +11:37:27.400 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=634 applyCallbacks=1031 beforeWriteSequence=633 writtenAgeMs=11.7383 beforeWriteAgeMs=34.9258 +11:37:27.400 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0704178 beforeWriteCollective=0.0684039 writtenFRA=<0.0469595,-0.0246771,-0.0219835> beforeWriteFRA=<0.0480775,-0.0250024,0.0801449> writtenThrottle=0 beforeWriteThrottle=0 +11:37:27.400 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0684039 cyclicForward=0.0480775 cyclicAside=-0.0250024 tailCollective=0.540072 autohover=0 collectiveMode=3 +11:37:27.907 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=643 +11:37:27.907 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:27.907 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.836094 drift=2.61172 speed=1.40452 vertical=0.903648 up=0.999498 groundContact=0 fuel=1937.33 engine=1 +11:37:27.907 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.85558,1.71121,0.605211> +11:37:27.907 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0522834,0.412248,-0.312989> +11:37:27.908 SCRIPT : ERR POWERED MOTION: offset=<-1.52246,-0.836094,2.12207> velocity=<0.275172,0.903648,-1.03942> angularLocal=<0.0445404,-0.0346685,0.0121791> forward=<0.0672117,0.0298619,0.997292> right=<0.997702,-0.010558,-0.0669233> +11:37:27.908 SCRIPT : ERR POWERED INPUT: pilotHooks=643 vehicleHooks=643 readback=1 collective=0.084848 cyclicF=0.034445 cyclicR=-0.0217418 antiTorque=0.0970033 rotorRPM=196 targetRPM=196 +11:37:27.908 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=643 applyCallbacks=1046 beforeWriteSequence=643 writtenAgeMs=36.3477 beforeWriteAgeMs=36.3477 +11:37:27.908 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.084848 beforeWriteCollective=0.084848 writtenFRA=<0.034445,-0.0217418,-0.0143906> beforeWriteFRA=<0.034445,-0.0217418,0.0970033> writtenThrottle=0 beforeWriteThrottle=0 +11:37:27.909 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.084848 cyclicForward=0.034445 cyclicAside=-0.0217418 tailCollective=0.548502 autohover=0 collectiveMode=3 +11:37:28.417 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=653 +11:37:28.418 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:28.418 SCRIPT : ERR POWERED FLIGHT: stage=4 height=1.32494 drift=3.20564 speed=1.59025 vertical=1.07706 up=0.999974 groundContact=0 fuel=1937.33 engine=1 +11:37:28.418 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.02775,0.334277,0.24525> +11:37:28.418 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00304699,0.275166,-0.0581861> +11:37:28.418 SCRIPT : ERR POWERED MOTION: offset=<-1.66992,-1.32494,2.73633> velocity=<0.288782,1.07706,-1.13377> angularLocal=<0.0492574,-0.023049,0.0114371> forward=<0.0528188,0.00583421,0.998587> right=<0.998596,-0.00428033,-0.0527942> +11:37:28.418 SCRIPT : ERR POWERED INPUT: pilotHooks=653 vehicleHooks=653 readback=1 collective=0.0946454 cyclicF=0.0182131 cyclicR=-0.0187164 antiTorque=0.107328 rotorRPM=196 targetRPM=196 +11:37:28.419 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=653 applyCallbacks=1062 beforeWriteSequence=653 writtenAgeMs=24.3125 beforeWriteAgeMs=12.2852 +11:37:28.419 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0946454 beforeWriteCollective=0.0946454 writtenFRA=<0.0182131,-0.0187164,-0.00932579> beforeWriteFRA=<0.0182131,-0.0187164,0.107328> writtenThrottle=0 beforeWriteThrottle=0 +11:37:28.419 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0937254 cyclicForward=0.0203471 cyclicAside=-0.0190955 tailCollective=0.553411 autohover=0 collectiveMode=3 +11:37:28.920 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=662 +11:37:28.921 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:28.921 SCRIPT : ERR POWERED FLIGHT: stage=4 height=1.883 drift=3.81719 speed=1.65258 vertical=1.20319 up=0.999818 groundContact=0 fuel=1937.28 engine=1 +11:37:28.921 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.48629,-1.09201,-0.0647537> +11:37:28.921 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0385433,0.212009,0.192375> +11:37:28.921 SCRIPT : ERR POWERED MOTION: offset=<-1.81982,-1.883,3.35547> velocity=<0.279328,1.20319,-1.09788> angularLocal=<0.0490003,-0.0153446,0.010311> forward=<0.0433725,-0.019058,0.998877> right=<0.999059,0.00112996,-0.0433588> +11:37:28.922 SCRIPT : ERR POWERED INPUT: pilotHooks=662 vehicleHooks=662 readback=1 collective=0.100819 cyclicF=0.00208399 cyclicR=-0.0158233 antiTorque=0.114173 rotorRPM=196 targetRPM=196 +11:37:28.922 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=662 applyCallbacks=1077 beforeWriteSequence=662 writtenAgeMs=51.1484 beforeWriteAgeMs=12.0234 +11:37:28.922 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.100819 beforeWriteCollective=0.100819 writtenFRA=<0.00208399,-0.0158233,-0.00626413> beforeWriteFRA=<0.00208399,-0.0158233,0.114173> writtenThrottle=0 beforeWriteThrottle=0 +11:37:28.922 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.100819 cyclicForward=0.00208399 cyclicAside=-0.0158233 tailCollective=0.556958 autohover=0 collectiveMode=3 +11:37:29.427 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=672 +11:37:29.427 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:29.428 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.50404 drift=4.39156 speed=1.614 vertical=1.29314 up=0.999063 groundContact=0 fuel=1937.28 engine=1 +11:37:29.428 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.12969,-2.45788,-0.333431> +11:37:29.428 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.074949,0.146348,0.433295> +11:37:29.428 SCRIPT : ERR POWERED MOTION: offset=<-1.9585,-2.50404,3.93066> velocity=<0.249409,1.29314,-0.933034> angularLocal=<0.0441096,-0.0101182,0.00889949> forward=<0.0371274,-0.042885,0.99839> right=<0.999302,0.00581409,-0.0369115> +11:37:29.429 SCRIPT : ERR POWERED INPUT: pilotHooks=672 vehicleHooks=672 readback=1 collective=0.105477 cyclicF=-0.016175 cyclicR=-0.0124196 antiTorque=0.118597 rotorRPM=196 targetRPM=196 +11:37:29.429 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=672 applyCallbacks=1092 beforeWriteSequence=672 writtenAgeMs=22.3242 beforeWriteAgeMs=22.3242 +11:37:29.429 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.105477 beforeWriteCollective=0.105477 writtenFRA=<-0.016175,-0.0124196,-0.00406355> beforeWriteFRA=<-0.016175,-0.0124196,0.118597> writtenThrottle=0 beforeWriteThrottle=0 +11:37:29.429 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.105477 cyclicForward=-0.016175 cyclicAside=-0.0124196 tailCollective=0.559298 autohover=0 collectiveMode=3 +11:37:29.934 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=681 +11:37:29.934 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:29.934 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.16053 drift=4.85146 speed=1.51673 vertical=1.34821 up=0.997965 groundContact=0 fuel=1937.24 engine=1 +11:37:29.934 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.89827,-3.61384,-0.556084> +11:37:29.935 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.103267,0.0872254,0.628735> +11:37:29.935 SCRIPT : ERR POWERED MOTION: offset=<-2.07617,-3.16053,4.38477> velocity=<0.204344,1.34821,-0.664114> angularLocal=<0.035439,-0.00685571,0.00737012> forward=<0.0330591,-0.0630316,0.997464> right=<0.999424,0.00968604,-0.032512> +11:37:29.935 SCRIPT : ERR POWERED INPUT: pilotHooks=681 vehicleHooks=681 readback=1 collective=0.109159 cyclicF=-0.0314523 cyclicR=-0.00923597 antiTorque=0.121858 rotorRPM=196 targetRPM=196 +11:37:29.935 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=681 applyCallbacks=1107 beforeWriteSequence=681 writtenAgeMs=44.8477 beforeWriteAgeMs=34.6445 +11:37:29.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.109159 beforeWriteCollective=0.109159 writtenFRA=<-0.0314523,-0.00923597,-0.00276127> beforeWriteFRA=<-0.0314523,-0.00923597,0.121858> writtenThrottle=0 beforeWriteThrottle=0 +11:37:29.936 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.109159 cyclicForward=-0.0314523 cyclicAside=-0.00923597 tailCollective=0.560929 autohover=0 collectiveMode=3 +11:37:30.444 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=691 +11:37:30.444 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:30.445 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.84709 drift=5.14324 speed=1.41933 vertical=1.38023 up=0.996877 groundContact=0 fuel=1937.24 engine=1 +11:37:30.445 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.7429,-4.46956,-0.734622> +11:37:30.445 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.125235,0.0373292,0.774797> +11:37:30.445 SCRIPT : ERR POWERED MOTION: offset=<-2.16992,-3.84709,4.66309> velocity=<0.144805,1.38023,-0.297502> angularLocal=<0.0232168,-0.00467548,0.00569101> forward=<0.0303222,-0.0779295,0.996498> right=<0.999486,0.0127822,-0.0294135> +11:37:30.445 SCRIPT : ERR POWERED INPUT: pilotHooks=691 vehicleHooks=691 readback=1 collective=0.113583 cyclicF=-0.0454676 cyclicR=-0.00568064 antiTorque=0.125167 rotorRPM=196 targetRPM=196 +11:37:30.446 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=691 applyCallbacks=1123 beforeWriteSequence=691 writtenAgeMs=23.0859 beforeWriteAgeMs=12.0703 +11:37:30.446 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.113583 beforeWriteCollective=0.113583 writtenFRA=<-0.0454676,-0.00568064,-0.00179194> beforeWriteFRA=<-0.0454676,-0.00568064,0.125167> writtenThrottle=0 beforeWriteThrottle=0 +11:37:30.446 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.113049 cyclicForward=-0.0441175 cyclicAside=-0.00605444 tailCollective=0.562528 autohover=0 collectiveMode=3 +11:37:30.959 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=701 +11:37:30.959 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:30.959 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.54912 drift=5.2273 speed=1.40249 vertical=1.39577 up=0.996181 groundContact=0 fuel=1937.19 engine=1 +11:37:30.960 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.63567,-4.93385,-0.865786> +11:37:30.960 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.139703,0.017066,0.850941> +11:37:30.960 SCRIPT : ERR POWERED MOTION: offset=<-2.23047,-4.54912,4.72754> velocity=<0.0781397,1.39577,0.112709> angularLocal=<0.00899466,-0.00324194,0.00400322> forward=<0.0284382,-0.0860056,0.995889> right=<0.999516,0.0150543,-0.0272417> +11:37:30.960 SCRIPT : ERR POWERED INPUT: pilotHooks=701 vehicleHooks=701 readback=1 collective=0.118366 cyclicF=-0.0546376 cyclicR=-0.00233118 antiTorque=0.128374 rotorRPM=196 targetRPM=196 +11:37:30.960 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=701 applyCallbacks=1138 beforeWriteSequence=701 writtenAgeMs=24.2188 beforeWriteAgeMs=12.8516 +11:37:30.961 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.118366 beforeWriteCollective=0.118366 writtenFRA=<-0.0546376,-0.00233118,-0.00116436> beforeWriteFRA=<-0.0546376,-0.00233118,0.128374> writtenThrottle=0 beforeWriteThrottle=0 +11:37:30.961 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.117885 cyclicForward=-0.0539701 cyclicAside=-0.0026474 tailCollective=0.564047 autohover=0 collectiveMode=3 +11:37:32.980 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=738 +11:37:32.980 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:32.981 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.08753 drift=3.4619 speed=1.77295 vertical=0.844863 up=0.998963 groundContact=0 fuel=1937.11 engine=1 +11:37:32.981 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.46943,-2.43561,-0.93632> +11:37:32.981 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.117086,-0.415846,0.39432> +11:37:32.981 SCRIPT : ERR POWERED MOTION: offset=<-2.10547,-7.08753,2.74805> velocity=<-0.190612,0.844863,1.54701> angularLocal=<-0.0458772,-9.17963e-05,-0.00207447> forward=<0.0256204,-0.0424966,0.998768> right=<0.999555,0.0163264,-0.0249459> +11:37:32.981 SCRIPT : ERR POWERED INPUT: pilotHooks=738 vehicleHooks=738 readback=1 collective=0.0522362 cyclicF=-0.0388905 cyclicR=0.00732862 antiTorque=0.0940604 rotorRPM=196 targetRPM=196 +11:37:32.982 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=31 writtenSequence=738 applyCallbacks=1198 beforeWriteSequence=737 writtenAgeMs=27.5312 beforeWriteAgeMs=40.9648 +11:37:32.982 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0492766 beforeWriteCollective=0.0522362 writtenFRA=<-0.037489,0.00748981,-0.000453459> beforeWriteFRA=<-0.0388905,0.00732862,0.0940604> writtenThrottle=0 beforeWriteThrottle=0 +11:37:32.982 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0522362 cyclicForward=-0.0388905 cyclicAside=0.00732862 tailCollective=0.54703 autohover=0 collectiveMode=3 +11:37:34.996 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=776 +11:37:34.996 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:34.996 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.11651 drift=1.68144 speed=1.42585 vertical=0.182019 up=0.998333 groundContact=0 fuel=1937.02 engine=1 +11:37:34.996 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.41583,3.27316,-0.486842> +11:37:34.996 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0509638,-0.219969,-0.555904> +11:37:34.997 SCRIPT : ERR POWERED MOTION: offset=<-1.50732,-8.11651,-0.745117> velocity=<-0.366562,0.182019,1.36585> angularLocal=<-0.0419604,0.000233846,-0.00509609> forward=<0.0246681,0.0570963,0.998064> right=<0.999647,0.00848303,-0.0251925> +11:37:34.997 SCRIPT : ERR POWERED INPUT: pilotHooks=776 vehicleHooks=776 readback=1 collective=-0.0194357 cyclicF=0.0242996 cyclicR=0.010572 antiTorque=0.0569726 rotorRPM=196 targetRPM=196 +11:37:34.997 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=32 writtenSequence=776 applyCallbacks=1259 beforeWriteSequence=776 writtenAgeMs=13.0977 beforeWriteAgeMs=13.0977 +11:37:34.997 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0194357 beforeWriteCollective=-0.0194357 writtenFRA=<0.0242996,0.010572,2.63096e-05> beforeWriteFRA=<0.0242996,0.010572,0.0569726> writtenThrottle=0 beforeWriteThrottle=0 +11:37:34.997 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0182259 cyclicForward=0.0222903 cyclicAside=0.01059 tailCollective=0.528841 autohover=0 collectiveMode=3 +11:37:37.002 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=813 +11:37:37.002 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:37.002 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.18166 drift=2.14627 speed=0.470524 vertical=-0.082626 up=0.995836 groundContact=0 fuel=1936.93 engine=1 +11:37:37.003 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.41686,5.22974,0.100446> +11:37:37.003 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0368196,-0.0349849,-0.895522> +11:37:37.003 SCRIPT : ERR POWERED MOTION: offset=<-0.712891,-8.18166,-2.02441> velocity=<-0.38,-0.082626,-0.264888> angularLocal=<0.0120811,-4.00122e-05,-0.00458642> forward=<0.0246234,0.0911494,0.995533> right=<0.999697,-0.00174582,-0.0245666> +11:37:37.003 SCRIPT : ERR POWERED INPUT: pilotHooks=813 vehicleHooks=813 readback=1 collective=-0.025417 cyclicF=0.0585257 cyclicR=0.00708489 antiTorque=0.052984 rotorRPM=196 targetRPM=196 +11:37:37.003 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=33 writtenSequence=813 applyCallbacks=1319 beforeWriteSequence=813 writtenAgeMs=12.9219 beforeWriteAgeMs=12.9219 +11:37:37.004 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.025417 beforeWriteCollective=-0.025417 writtenFRA=<0.0585257,0.00708489,9.07008e-05> beforeWriteFRA=<0.0585257,0.00708489,0.052984> writtenThrottle=0 beforeWriteThrottle=0 +11:37:37.004 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0258251 cyclicForward=0.0586157 cyclicAside=0.00722927 tailCollective=0.526393 autohover=0 collectiveMode=3 +11:37:39.026 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=848 +11:37:39.026 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:39.026 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.98742 drift=0.186749 speed=1.47132 vertical=-0.00739424 up=0.999861 groundContact=0 fuel=1936.84 engine=1 +11:37:39.026 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.39484,0.828773,0.473677> +11:37:39.026 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.102934,0.0647762,-0.145948> +11:37:39.027 SCRIPT : ERR POWERED MOTION: offset=<-0.0541992,-7.98742,0.178711> velocity=<-0.230682,-0.00739424,-1.45311> angularLocal=<0.0535202,0.000291063,-0.00169464> forward=<0.0243397,0.0144643,0.999599> right=<0.999672,-0.00826626,-0.0242218> +11:37:39.027 SCRIPT : ERR POWERED INPUT: pilotHooks=848 vehicleHooks=848 readback=1 collective=-0.0162114 cyclicF=0.0202056 cyclicR=0.000531592 antiTorque=0.0582948 rotorRPM=196 targetRPM=196 +11:37:39.027 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=34 writtenSequence=848 applyCallbacks=1380 beforeWriteSequence=848 writtenAgeMs=11.7227 beforeWriteAgeMs=11.7227 +11:37:39.027 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0162114 beforeWriteCollective=-0.0162114 writtenFRA=<0.0202056,0.000531592,0.000212738> beforeWriteFRA=<0.0202056,0.000531592,0.0582948> writtenThrottle=0 beforeWriteThrottle=0 +11:37:39.027 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0160962 cyclicForward=0.0217514 cyclicAside=0.000692502 tailCollective=0.529182 autohover=0 collectiveMode=3 +11:37:40.036 SCRIPT : ERR SMOKE PASS: powered-flight actual 7–9 metre powered hover stable five seconds with native fuel consumption +11:37:41.050 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=885 +11:37:41.050 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:41.050 SCRIPT : ERR POWERED FLIGHT: stage=6 height=7.49806 drift=2.93311 speed=0.969852 vertical=-0.61627 up=0.996823 groundContact=0 fuel=1936.75 engine=1 +11:37:41.051 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.44703,-4.54376,0.47466> +11:37:41.051 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.092485,-0.152099,0.766843> +11:37:41.051 SCRIPT : ERR POWERED MOTION: offset=<0.192871,-7.49806,2.92676> velocity=<-0.0140158,-0.61627,-0.748751> angularLocal=<0.0293678,-9.73159e-05,0.00138925> forward=<0.0251734,-0.0792205,0.996539> right=<0.99963,-0.00825825,-0.025908> +11:37:41.051 SCRIPT : ERR POWERED INPUT: pilotHooks=885 vehicleHooks=885 readback=1 collective=-0.0882211 cyclicF=-0.0417715 cyclicR=-0.00437879 antiTorque=0.0194925 rotorRPM=196 targetRPM=196 +11:37:41.052 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=35 writtenSequence=885 applyCallbacks=1440 beforeWriteSequence=885 writtenAgeMs=47.0312 beforeWriteAgeMs=24.9609 +11:37:41.052 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0882211 beforeWriteCollective=-0.0882211 writtenFRA=<-0.0417715,-0.00437879,-0.000205372> beforeWriteFRA=<-0.0417715,-0.00437879,0.0194925> writtenThrottle=0 beforeWriteThrottle=0 +11:37:41.052 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0882211 cyclicForward=-0.0417715 cyclicAside=-0.00437879 tailCollective=0.509746 autohover=0 collectiveMode=3 +11:37:43.065 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=923 +11:37:43.065 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:43.065 SCRIPT : ERR POWERED FLIGHT: stage=6 height=6.0405 drift=2.6479 speed=1.2707 vertical=-0.789627 up=0.997033 groundContact=0 fuel=1936.66 engine=1 +11:37:43.065 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.43224,-4.40869,0.224061> +11:37:43.065 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0410691,-0.0247371,0.748587> +11:37:43.066 SCRIPT : ERR POWERED MOTION: offset=<0.0483398,-6.0405,2.64746> velocity=<0.12815,-0.789627,0.987298> angularLocal=<-0.0317664,-8.6791e-05,0.00261858> forward=<0.0249207,-0.0768703,0.99673> right=<0.999672,-0.00389902,-0.025295> +11:37:43.066 SCRIPT : ERR POWERED INPUT: pilotHooks=923 vehicleHooks=923 readback=1 collective=-0.0857694 cyclicF=-0.0554422 cyclicR=-0.00517536 antiTorque=0.0208793 rotorRPM=196 targetRPM=196 +11:37:43.066 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=36 writtenSequence=923 applyCallbacks=1500 beforeWriteSequence=922 writtenAgeMs=22.0312 beforeWriteAgeMs=33.9766 +11:37:43.066 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0857267 beforeWriteCollective=-0.0857694 writtenFRA=<-0.054755,-0.00514562,-4.51088e-05> beforeWriteFRA=<-0.0554422,-0.00517536,0.0208793> writtenThrottle=0 beforeWriteThrottle=0 +11:37:43.066 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0857694 cyclicForward=-0.0554422 cyclicAside=-0.00517536 tailCollective=0.51044 autohover=0 collectiveMode=3 +11:37:45.098 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=962 +11:37:45.098 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:45.098 SCRIPT : ERR POWERED FLIGHT: stage=6 height=4.51876 drift=0.617442 speed=1.76439 vertical=-0.764571 up=0.999749 groundContact=0 fuel=1936.57 engine=1 +11:37:45.098 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.43638,1.28332,-0.0634881> +11:37:45.098 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0316948,0.00988841,-0.225685> +11:37:45.099 SCRIPT : ERR POWERED MOTION: offset=<-0.265137,-4.51876,-0.557617> velocity=<0.135498,-0.764571,1.58435> angularLocal=<-0.0536728,6.03183e-06,0.00206788> forward=<0.0250607,0.0223963,0.999435> right=<0.999685,0.0011078,-0.0250918> +11:37:45.099 SCRIPT : ERR POWERED INPUT: pilotHooks=962 vehicleHooks=962 readback=1 collective=-0.092453 cyclicF=-0.000196062 cyclicR=-0.0030007 antiTorque=0.0174547 rotorRPM=196 targetRPM=196 +11:37:45.099 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=37 writtenSequence=962 applyCallbacks=1561 beforeWriteSequence=962 writtenAgeMs=34.1875 beforeWriteAgeMs=34.1875 +11:37:45.099 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.092453 beforeWriteCollective=-0.092453 writtenFRA=<-0.000196062,-0.0030007,-0.000114437> beforeWriteFRA=<-0.000196062,-0.0030007,0.0174547> writtenThrottle=0 beforeWriteThrottle=0 +11:37:45.099 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.092453 cyclicForward=-0.000196062 cyclicAside=-0.0030007 tailCollective=0.508727 autohover=0 collectiveMode=3 +11:37:47.105 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1000 +11:37:47.105 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:47.105 SCRIPT : ERR POWERED FLIGHT: stage=6 height=3.03286 drift=2.84873 speed=0.851508 vertical=-0.803685 up=0.995476 groundContact=0 fuel=1936.48 engine=1 +11:37:47.105 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.42238,5.44806,-0.217248> +11:37:47.106 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0683688,-0.0384021,-0.93027> +11:37:47.106 SCRIPT : ERR POWERED MOTION: offset=<-0.446777,-3.03286,-2.81348> velocity=<0.0259724,-0.803685,0.280145> angularLocal=<-0.0112772,-7.05488e-05,0.000542392> forward=<0.0247105,0.0949434,0.995176> right=<0.999676,0.00377456,-0.0251824> +11:37:47.106 SCRIPT : ERR POWERED INPUT: pilotHooks=1000 vehicleHooks=1000 readback=1 collective=-0.0943738 cyclicF=0.0566559 cyclicR=0.000215439 antiTorque=0.0161976 rotorRPM=196 targetRPM=196 +11:37:47.107 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=38 writtenSequence=1000 applyCallbacks=1621 beforeWriteSequence=999 writtenAgeMs=11.5508 beforeWriteAgeMs=35.9414 +11:37:47.107 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0941814 beforeWriteCollective=-0.0943738 writtenFRA=<0.0572821,0.00027167,4.44128e-05> beforeWriteFRA=<0.0566559,0.000215439,0.0161976> writtenThrottle=0 beforeWriteThrottle=0 +11:37:47.107 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0943738 cyclicForward=0.0566559 cyclicAside=0.000215439 tailCollective=0.508099 autohover=0 collectiveMode=3 +11:37:49.129 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1037 +11:37:49.129 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:49.129 SCRIPT : ERR POWERED FLIGHT: stage=6 height=1.31646 drift=1.47099 speed=1.60901 vertical=-0.822553 up=0.998645 groundContact=0 fuel=1936.4 engine=1 +11:37:49.129 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.42372,2.97636,-0.197854> +11:37:49.130 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0356533,0.0309956,-0.504234> +11:37:49.130 SCRIPT : ERR POWERED MOTION: offset=<-0.376953,-1.31646,-1.42188> velocity=<-0.0793606,-0.822553,-1.38058> angularLocal=<0.0480186,-3.63861e-05,-0.000685654> forward=<0.0248125,0.0519239,0.998343> right=<0.999681,0.00344854,-0.0250251> +11:37:49.130 SCRIPT : ERR POWERED INPUT: pilotHooks=1037 vehicleHooks=1037 readback=1 collective=-0.0852077 cyclicF=0.0437317 cyclicR=0.00186506 antiTorque=0.0212522 rotorRPM=196 targetRPM=196 +11:37:49.130 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=39 writtenSequence=1037 applyCallbacks=1682 beforeWriteSequence=1036 writtenAgeMs=10.6172 beforeWriteAgeMs=32.0391 +11:37:49.130 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0845819 beforeWriteCollective=-0.0852077 writtenFRA=<0.0423459,0.00189112,2.39572e-05> beforeWriteFRA=<0.0437317,0.00186506,0.0212522> writtenThrottle=0 beforeWriteThrottle=0 +11:37:49.131 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0852077 cyclicForward=0.0437317 cyclicAside=0.00186506 tailCollective=0.510626 autohover=0 collectiveMode=3 +11:37:51.153 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1074 +11:37:51.153 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:51.153 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.266356 drift=1.72602 speed=1.23676 vertical=-0.244494 up=0.999914 groundContact=0 fuel=1936.31 engine=1 +11:37:51.153 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.74546,0.732895,-0.166513> +11:37:51.153 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0175323,-0.320079,-0.075717> +11:37:51.154 SCRIPT : ERR POWERED MOTION: offset=<-0.178223,-0.266356,1.7168> velocity=<-0.093559,-0.244494,-1.20873> angularLocal=<-0.134112,0.00950075,0.00160604> forward=<0.0304568,0.0127911,0.999454> right=<0.999531,0.00290596,-0.0304963> +11:37:51.154 SCRIPT : ERR POWERED INPUT: pilotHooks=1074 vehicleHooks=1074 readback=1 collective=-0.0504804 cyclicF=0.15 cyclicR=0.00571081 antiTorque=0.0317586 rotorRPM=196 targetRPM=196 +11:37:51.154 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=40 writtenSequence=1074 applyCallbacks=1743 beforeWriteSequence=1074 writtenAgeMs=36.5703 beforeWriteAgeMs=12.4922 +11:37:51.154 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0504804 beforeWriteCollective=-0.0504804 writtenFRA=<0.15,0.00571081,-0.00630134> beforeWriteFRA=<0.15,0.00571081,0.0317586> writtenThrottle=0 beforeWriteThrottle=0 +11:37:51.154 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0536375 cyclicForward=0.15 cyclicAside=0.00602887 tailCollective=0.515633 autohover=0 collectiveMode=3 +11:37:53.179 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1112 +11:37:53.179 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:53.179 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.264519 drift=3.82138 speed=0.867992 vertical=0.058109 up=0.985239 groundContact=1 fuel=1936.22 engine=1 +11:37:53.179 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<7.12377,9.6078,2.21182> +11:37:53.180 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0190169,0.0251484,0.128174> +11:37:53.180 SCRIPT : ERR POWERED MOTION: offset=<-0.287598,-0.264519,3.81055> velocity=<0.152921,0.058109,-0.852436> angularLocal=<-0.0822499,0.0468411,0.00713556> forward=<0.122274,0.166903,0.978362> right=<0.99234,-0.0380527,-0.117529> +11:37:53.180 SCRIPT : ERR POWERED INPUT: pilotHooks=1112 vehicleHooks=1112 readback=1 collective=-0.0905847 cyclicF=0.15 cyclicR=-0.0510594 antiTorque=-0.0384298 rotorRPM=196 targetRPM=196 +11:37:53.180 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=41 writtenSequence=1112 applyCallbacks=1803 beforeWriteSequence=1111 writtenAgeMs=26.8516 beforeWriteAgeMs=40.2578 +11:37:53.180 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0930892 beforeWriteCollective=-0.0905847 writtenFRA=<0.15,-0.0414519,-0.0681827> beforeWriteFRA=<0.15,-0.0510594,-0.0384298> writtenThrottle=0 beforeWriteThrottle=0 +11:37:53.181 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0905847 cyclicForward=0.15 cyclicAside=-0.0510594 tailCollective=0.480785 autohover=0 collectiveMode=3 +11:37:55.206 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1149 +11:37:55.207 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:55.207 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.2251 drift=5.13374 speed=0.365149 vertical=-0.0409582 up=0.988008 groundContact=1 fuel=1936.13 engine=1 +11:37:55.207 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<20.2386,8.65713,1.99367> +11:37:55.207 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0156735,-0.035328,0.283627> +11:37:55.207 SCRIPT : ERR POWERED MOTION: offset=<-0.79834,-0.2251,5.07129> velocity=<0.065598,-0.0409582,-0.356866> angularLocal=<0.0474215,0.143847,0.0246953> forward=<0.341989,0.150521,0.927571> right=<0.939504,-0.0343928,-0.340807> +11:37:55.208 SCRIPT : ERR POWERED INPUT: pilotHooks=1149 vehicleHooks=1149 readback=1 collective=-0.117424 cyclicF=0.113335 cyclicR=-0.0211451 antiTorque=-0.224398 rotorRPM=196 targetRPM=196 +11:37:55.208 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=42 writtenSequence=1149 applyCallbacks=1864 beforeWriteSequence=1149 writtenAgeMs=50.0469 beforeWriteAgeMs=23.8281 +11:37:55.208 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.117424 beforeWriteCollective=-0.117424 writtenFRA=<0.113335,-0.0211451,-0.228442> beforeWriteFRA=<0.113335,-0.0211451,-0.224398> writtenThrottle=0 beforeWriteThrottle=0 +11:37:55.208 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.117424 cyclicForward=0.113335 cyclicAside=-0.0211451 tailCollective=0.387801 autohover=0 collectiveMode=3 +11:37:57.218 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1188 +11:37:57.218 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:57.218 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.00936508 drift=5.51863 speed=0.47862 vertical=-0.4736 up=0.997215 groundContact=1 fuel=1936.04 engine=1 +11:37:57.218 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<22.729,3.82881,1.90731> +11:37:57.219 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.81897,7.80115,1.84692> +11:37:57.219 SCRIPT : ERR POWERED MOTION: offset=<-0.854004,-0.00936508,5.45215> velocity=<0.0250533,-0.4736,0.0644398> angularLocal=<0.0576756,-0.0172138,-0.00185349> forward=<0.38551,0.0667756,0.920284> right=<0.922691,-0.0332085,-0.384108> +11:37:57.219 SCRIPT : ERR POWERED INPUT: pilotHooks=1188 vehicleHooks=1188 readback=1 collective=-0.0199684 cyclicF=0.0114667 cyclicR=-0.0427057 antiTorque=-0.155003 rotorRPM=196 targetRPM=196 +11:37:57.219 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=43 writtenSequence=1188 applyCallbacks=1924 beforeWriteSequence=1187 writtenAgeMs=12.7969 beforeWriteAgeMs=37.125 +11:37:57.219 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0294428 beforeWriteCollective=-0.0199684 writtenFRA=<-0.00338953,-0.0458372,-0.205945> beforeWriteFRA=<0.0114667,-0.0427057,-0.155003> writtenThrottle=0 beforeWriteThrottle=0 +11:37:57.220 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0199684 cyclicForward=0.0114667 cyclicAside=-0.0427057 tailCollective=0.422499 autohover=0 collectiveMode=3 +11:37:59.242 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1226 +11:37:59.242 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:59.242 SCRIPT : ERR POWERED FLIGHT: stage=6 height=-0.0345993 drift=5.49871 speed=0.0458233 vertical=0.0297209 up=0.996957 groundContact=1 fuel=1935.95 engine=1 +11:37:59.243 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<20.1407,4.0239,1.95105> +11:37:59.243 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.190771,-0.00797935,0.0086119> +11:37:59.243 SCRIPT : ERR POWERED MOTION: offset=<-0.84375,0.0345993,5.43359> velocity=<0.0284138,0.0297209,0.0202263> angularLocal=<0.00299421,-0.065497,-0.000916168> forward=<0.343478,0.0701726,0.936535> right=<0.939128,-0.0339618,-0.341884> +11:37:59.243 SCRIPT : ERR POWERED INPUT: pilotHooks=1226 vehicleHooks=1226 readback=1 collective=-1 cyclicF=0.084945 cyclicR=-0.0502716 antiTorque=-0.630879 rotorRPM=196 targetRPM=196 +11:37:59.243 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=44 writtenSequence=1226 applyCallbacks=1985 beforeWriteSequence=1225 writtenAgeMs=10.5078 beforeWriteAgeMs=21.9297 +11:37:59.244 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-1 beforeWriteCollective=-1 writtenFRA=<0.0824868,-0.0465087,-0.167298> beforeWriteFRA=<0.084945,-0.0502716,-0.630879> writtenThrottle=0 beforeWriteThrottle=0 +11:37:59.244 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-1 cyclicForward=0.084945 cyclicAside=-0.0502716 tailCollective=0.18456 autohover=0 collectiveMode=3 +11:37:59.244 SCRIPT : ERR SMOKE PASS: powered-flight same physical aircraft and living AI pilot land with stable ground contact after powered hover +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: powered-flight native engine off after contact landing; no transform/velocity/health/fuel correction +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/error.log.txt b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/error.log.txt new file mode 100644 index 0000000..7281eb4 --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/error.log.txt @@ -0,0 +1,111 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57\error.log started at 2026-09-19 11:35:59 (2026-09-19 09:35:59 UTC) + +11:35:59.494 INIT : Workbench startup +11:35:59.494 INIT : Workbench Init Engine +11:35:59.494 RESOURCES : ResourceDB: full scan +11:35:59.494 RESOURCES : processing files... +11:35:59.494 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID +11:35:59.494 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +11:35:59.494 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +11:36:03.014 INIT : Workbench Create Game +11:36:03.014 SCRIPT : Compiling Game scripts +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:36:03.171 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.285 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:36:03.319 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:36:03.450 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:36:03.516 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:36:03.584 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.616 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:36:12.343 WORLD : CreateEntities +11:36:12.343 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:36:12.343 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:36:12.343 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:36:27.549 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:36:32.317 WORLD : Game::LoadEntities +11:36:32.317 WORLD : CreateEntities +11:36:32.317 WORLD : CreateEntities +11:36:32.317 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:36:32.317 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:36:32.317 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:36:33.802 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168> +11:36:33.802 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>') +11:36:33.803 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055> +11:36:33.803 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>') +11:36:33.803 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961> +11:36:33.803 ENTITY : CreateComponent 'Hierarchy' +11:36:33.803 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>') +11:36:33.808 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516> +11:36:33.808 ENTITY : CreateComponent 'Hierarchy' +11:36:33.808 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>') +11:36:33.813 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869> +11:36:33.813 ENTITY : CreateComponent 'Hierarchy' +11:36:33.813 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>') +11:36:40.853 WORLD : InitEntities 'world' +11:36:40.853 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:36:40.853 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:36:41.343 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.343 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:36:41.344 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.344 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! +11:36:41.344 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! +11:36:41.346 SCRIPT (W): Can't open config file "" +11:36:41.352 WORLD : InitEntities 'world' +11:36:41.352 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:36:41.353 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:36:41.353 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:36:41.353 SCRIPT (W): Slot_Chat Has no Content! +11:36:41.353 SCRIPT (W): Slot_VON Has no Content! +11:36:41.353 SCRIPT (W): Slot_AvailableActions Has no Content! +11:36:41.353 SCRIPT (W): Slot_Vehicle Has no Content! +11:36:41.353 SCRIPT (W): Slot_GameVersion Has no Content! +11:36:41.354 SCRIPT (W): Slot_Notifications Has no Content! +11:36:41.354 SCRIPT (W): Slot_Hints Has no Content! +11:36:41.365 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:36:41.365 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000> +11:36:41.365 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et" +11:36:41.365 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. +11:36:41.366 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. +11:36:41.369 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:36:41.611 WORLD : UpdateEntities +11:36:41.611 WORLD : PostFrame +11:36:41.612 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:36:41.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:36:41.660 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:36:41.660 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:36:41.660 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:36:41.660 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:36:44.100 WORLD : UpdateEntities +11:36:44.100 WORLD : AfterPostSimulate +11:36:44.100 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:37:10.854 WORLD : UpdateEntities +11:37:10.854 WORLD : AfterPostSimulate +11:37:10.854 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: powered-flight native engine off after contact landing; no transform/velocity/health/fuel correction +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/headless-launch.log.txt b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/headless-launch.log.txt new file mode 100644 index 0000000..e41998c --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/headless-launch.log.txt @@ -0,0 +1,150 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 116 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a0039a + wayland surface res id: 10 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555857ece90 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555857ece90 +[Gamescope WSI] Destroyed swapchain: 0x5555857ece90 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555857ece90 - imageCount: 4 +[Gamescope WSI] Destroying swapchain: 0x5555857ece90 +[Gamescope WSI] Destroyed swapchain: 0x5555857ece90 +[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false +[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x5555857f33f0 - imageCount: 4 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source-sha256.json b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source-sha256.json new file mode 100644 index 0000000..78b2d05 --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "017f5207506d1083deb035544d31648e6ab75d9cc94cd64bc953d60d2c1a6003", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "d1740ddbe8a4bac04aeb0ffc68c2957bc807cbb0a197afd515f0fcb742aac04f", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source.json b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source.json new file mode 100644 index 0000000..8f4b0cd --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/launch-source.json @@ -0,0 +1,49 @@ +{ + "schema_version": 1, + "launch_id": "51d040da-ff07-4506-ba4d-9b549d82c441", + "captured_unix": 1789810556.0141363, + "source_root": "/home/jakub/devel/escapistsrereintroduced", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-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/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/addons", + "-profile", + "Z:/tmp/erri-workbench-profile", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateBaseWorldPlugin", + "-errPlay", + "1", + "-errBaseSmoke", + "1", + "-errSmokeOutcome", + "powered-flight", + "-noThrow", + "-disableCrashReporter", + "-errFlightInputDiag", + "1", + "-errFlightActionInputs", + "1" + ], + "manifest_sha256": "a2e4570239f260212539ade81e176133638be8784df492194815429a986afc87" +} diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/report.json b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/report.json new file mode 100644 index 0000000..436458b --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/report.json @@ -0,0 +1,15 @@ +{ + "log": "docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/console.log.txt", + "smoke_completions": 0, + "assertions_passed": 78, + "script_or_runtime_failures": [ + "11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: powered-flight native engine off after contact landing; no transform/velocity/health/fuel correction", + "11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "engine_errors": [ + "11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: powered-flight native engine off after contact landing; no transform/velocity/health/fuel correction", + "11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/runner.json.txt b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/runner.json.txt new file mode 100644 index 0000000..ea21dcc --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/runner.json.txt @@ -0,0 +1,19 @@ +{ + "stopped_unix": 1789810681.2424524, + "console_sha256": "8e5dc62e29bdb767f9f420e02b838b59d901139dcdb482394b1de7630fab9b90", + "end_source_sha256": "a2e4570239f260212539ade81e176133638be8784df492194815429a986afc87", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "51d040da-ff07-4506-ba4d-9b549d82c441", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "a2e4570239f260212539ade81e176133638be8784df492194815429a986afc87", + "started_unix": 1789810556.0142064, + "result": "test-failed", + "session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_11-35-57", + "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/native-2026-09-19-113557-flight-shutdown-refusal/script.log.txt b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/script.log.txt new file mode 100644 index 0000000..4ad39ce --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/script.log.txt @@ -0,0 +1,769 @@ +--------------------------------------------- +Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_11-35-57\script.log started at 2026-09-19 11:36:00 (2026-09-19 09:36:00 UTC) + +11:36:00.917 SCRIPT : SCRIPT : Initializing scripts +11:36:00.917 SCRIPT : SCRIPT : ScriptProjectManager init +11:36:01.845 SCRIPT : SCRIPT : Compiling GameLib scripts +11:36:01.900 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +11:36:01.900 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:36:01.901 SCRIPT : SCRIPT : Compiling Game scripts +11:36:03.014 SCRIPT : Compiling Game scripts +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:36:03.014 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:36:03.171 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.285 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:36:03.319 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:36:03.418 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:36:03.450 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:36:03.515 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:36:03.516 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.558 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:36:03.559 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:36:03.584 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:36:03.616 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:36:03.909 SCRIPT : Module: WorkbenchGame; loaded 171x files; 616x classes; used 2478K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: db6febb9 +11:36:03.916 SCRIPT : Module: Game; loaded 5742x files; 11258x classes; used 33016K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,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: 0203a4ad +11:36:04.915 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:36:04.915 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:36:24.248 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5 +11:36:27.546 SCRIPT : Unable to register a script command due keyword duplicity: ban +11:36:27.546 SCRIPT : Unable to register a script command due keyword duplicity: kick +11:36:40.853 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:36:40.883 SCRIPT : ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance +11:36:41.344 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! +11:36:41.344 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! +11:36:41.346 SCRIPT (W): Can't open config file "" +11:36:41.353 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:36:41.353 SCRIPT (W): Slot_Chat Has no Content! +11:36:41.353 SCRIPT (W): Slot_VON Has no Content! +11:36:41.353 SCRIPT (W): Slot_AvailableActions Has no Content! +11:36:41.353 SCRIPT (W): Slot_Vehicle Has no Content! +11:36:41.353 SCRIPT (W): Slot_GameVersion Has no Content! +11:36:41.354 SCRIPT (W): Slot_Notifications Has no Content! +11:36:41.354 SCRIPT (W): Slot_Hints Has no Content! +11:36:41.365 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. +11:36:41.366 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. +11:36:41.369 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:36:41.423 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:36:41.435 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:36:41.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:36:43.147 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:36:43.165 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:36:43.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:36:43.201 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:36:43.205 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:36:43.268 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:36:43.269 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:36:43.274 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:36:43.318 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:36:43.318 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:36:43.320 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:36:43.320 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:36:43.323 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:36:43.325 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:36:43.325 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:36:43.326 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:36:43.326 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:36:43.326 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:36:43.327 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:36:43.327 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:36:43.327 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:36:43.327 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.327 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:36:43.328 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:36:43.328 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.328 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:36:43.328 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:36:43.328 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:36:43.328 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.328 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:43.329 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:36:44.166 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.166 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.167 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.167 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.422 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5296,7499.7> up=0.995681 +11:36:44.422 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827 +11:36:44.422 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:44.422 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6145,7501.97> +11:36:44.423 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3145,7501.97> terrainY=63.3165 tireTerrainGap=-0.00201416 +11:36:44.423 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6145,7501.97> radius=0.3 bottom=<7012.07,63.3145,7501.97> fraction=0.445938 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00189209 +11:36:44.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6017,7497.71> +11:36:44.423 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1517,7497.71> terrainY=64.1555 tireTerrainGap=-0.00378418 +11:36:44.423 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6017,7497.71> radius=0.45 bottom=<7009.88,64.1517,7497.71> fraction=0.43771 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00370026 +11:36:44.423 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2636,7497.74> +11:36:44.424 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8136,7497.74> terrainY=63.8179 tireTerrainGap=-0.00434494 +11:36:44.424 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2636,7497.74> radius=0.45 bottom=<7014.42,63.8136,7497.74> fraction=0.434722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0043602 +11:36:44.424 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:44.681 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:44.681 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:44.682 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:44.682 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.189 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.444 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5358,7499.71> up=0.994348 +11:36:45.445 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686 +11:36:45.445 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:45.445 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6201,7501.99> +11:36:45.445 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3201,7501.99> terrainY=63.3144 tireTerrainGap=0.00572205 +11:36:45.446 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6201,7501.99> radius=0.3 bottom=<7012.07,63.3201,7501.99> fraction=0.480942 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00580597 +11:36:45.446 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6027,7497.71> +11:36:45.446 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1527,7497.71> terrainY=64.149 tireTerrainGap=0.00373077 +11:36:45.446 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6027,7497.71> radius=0.45 bottom=<7009.93,64.1527,7497.71> fraction=0.47138 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00370789 +11:36:45.446 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2658,7497.78> +11:36:45.446 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8158,7497.78> terrainY=63.8154 tireTerrainGap=0.000324249 +11:36:45.447 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2658,7497.78> radius=0.45 bottom=<7014.47,63.8158,7497.78> fraction=0.455984 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=0.00031662 +11:36:45.447 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:45.698 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:36:45.699 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:45.956 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:36:46.209 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.209 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.210 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.534 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5327,7499.74> up=0.994202 +11:36:46.534 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0452317 angularSpeed=0.0244006 +11:36:46.534 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6139,7502.01> +11:36:46.535 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3139,7502.01> terrainY=63.3116 tireTerrainGap=0.00232697 +11:36:46.535 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6139,7502.01> radius=0.3 bottom=<7012.08,63.3139,7502.01> fraction=0.465071 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00231552 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.72> +11:36:46.535 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.72> terrainY=64.143 tireTerrainGap=0.000968933 +11:36:46.535 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.72> radius=0.45 bottom=<7009.97,64.1439,7497.72> fraction=0.458777 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.000930786 +11:36:46.535 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2597,7497.82> +11:36:46.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8097,7497.82> terrainY=63.813 tireTerrainGap=-0.00328445 +11:36:46.536 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2597,7497.82> radius=0.45 bottom=<7014.51,63.8097,7497.82> fraction=0.439444 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0033226 +11:36:46.536 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:46.536 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:46.536 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:36:46.537 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:46.537 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.033 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:36:47.538 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:36:47.538 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:36:47.538 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:47.538 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:36:47.538 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00162506 +11:36:47.539 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +11:36:47.539 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:36:47.539 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247955 +11:36:47.539 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:36:47.539 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:36:47.539 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00207138 +11:36:47.540 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +11:36:47.540 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:47.540 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:47.541 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.541 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:47.541 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:48.049 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.050 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.557 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143 +11:36:48.557 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:36:48.557 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:36:48.557 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02> +11:36:48.558 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00162506 +11:36:48.558 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362 +11:36:48.558 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73> +11:36:48.558 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00247955 +11:36:48.558 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089 +11:36:48.558 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2601,7497.84> +11:36:48.559 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8101,7497.84> terrainY=63.8122 tireTerrainGap=-0.00207138 +11:36:48.559 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2601,7497.84> radius=0.45 bottom=<7014.51,63.8101,7497.84> fraction=0.445 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00209808 +11:36:48.559 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:36:48.559 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.559 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:36:48.560 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:36:48.560 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:36:48.561 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:36:48.561 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:36:48.561 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:36:48.562 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:36:48.562 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:36:48.562 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:36:48.680 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:36:48.729 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog active authority available +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog native faction manager exists +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog mission retains US and USSR faction identities +11:36:48.934 SCRIPT : ERR SMOKE PASS: faction-catalog mutual enemy and same-faction relations preserved +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog native radio encryption and frequencies preserved +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog native faction callsign configurations resolve +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog US retains all six catalog types +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog US has exactly two supported vehicle entries +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.935 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:36:48.935 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.936 SCRIPT : ERR FACTION VEHICLE: faction=US prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists CHARACTER +11:36:48.936 SCRIPT : ERR FACTION RETAINED: faction=US type=CHARACTER entries=78 +11:36:48.936 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists GROUP +11:36:48.937 SCRIPT : ERR FACTION RETAINED: faction=US type=GROUP entries=25 +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists WEAPONS_TRIPOD +11:36:48.937 SCRIPT : ERR FACTION RETAINED: faction=US type=WEAPONS_TRIPOD entries=3 +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.937 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists ITEM +11:36:48.938 SCRIPT : ERR FACTION RETAINED: faction=US type=ITEM entries=187 +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog US non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:36:48.938 SCRIPT : ERR FACTION RETAINED: faction=US type=SUPPLY_CONTAINER_ITEM entries=0 +11:36:48.938 SCRIPT : ERR SMOKE PASS: faction-catalog USSR retains all six catalog types +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog USSR has exactly two supported vehicle entries +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.939 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog vehicle entry exists +11:36:48.939 SCRIPT : ERR FACTION VEHICLE: faction=USSR prefab={DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et +11:36:48.939 SCRIPT : ERR SMOKE PASS: faction-catalog catalog lookup resolves both unique mission vehicles +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists CHARACTER +11:36:48.940 SCRIPT : ERR FACTION RETAINED: faction=USSR type=CHARACTER entries=120 +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists GROUP +11:36:48.940 SCRIPT : ERR FACTION RETAINED: faction=USSR type=GROUP entries=55 +11:36:48.940 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists WEAPONS_TRIPOD +11:36:48.941 SCRIPT : ERR FACTION RETAINED: faction=USSR type=WEAPONS_TRIPOD entries=4 +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists ITEM +11:36:48.941 SCRIPT : ERR FACTION RETAINED: faction=USSR type=ITEM entries=166 +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog retained native content catalog is initialized and nonempty +11:36:48.941 SCRIPT : ERR SMOKE PASS: faction-catalog USSR non-vehicle catalog exists SUPPLY_CONTAINER_ITEM +11:36:48.942 SCRIPT : ERR FACTION RETAINED: faction=USSR type=SUPPLY_CONTAINER_ITEM entries=0 +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog US native dressing saline and backpack radio remain catalogued +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog USSR native dressing saline and backpack radio remain catalogued +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog global catalog manager retains faction vehicle and inventory access +11:36:48.942 SCRIPT : ERR SMOKE PASS: faction-catalog physical finite depot vehicle is supported UAZ +11:36:48.943 SCRIPT : ERR SMOKE PASS: faction-catalog physical extraction aircraft is supported Mi8 +11:36:48.943 SCRIPT : ERR SMOKE PASS: faction-catalog physical aircraft still has required capacity +11:36:48.943 SCRIPT : ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim +11:36:48.943 SCRIPT : ERR SMOKE PASS: discovery map native local controller and marker manager available +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map native baseline label rendered in actual hidden marker layout +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map native data-only setter reproduces stale already-open label +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map plain local marker exposes native delete/edit/drag eligibility +11:36:48.965 SCRIPT : ERR SMOKE PASS: discovery map local insertion retains objective identity and disables native edit/drag/delete eligibility +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map objective first label rendered through actual native layout +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map first clue stores only stable 500m search-square center +11:36:48.967 SCRIPT : ERR SMOKE PASS: discovery map identification moves same native marker to exact rounded coordinates +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map identification refreshes existing native widget without recreating marker +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map label change creates no additional marker +11:36:48.968 SCRIPT : ERR SMOKE PASS: discovery map closed widget accepts data-only update safely +11:36:48.969 SCRIPT : ERR SMOKE PASS: discovery map new native widget renders latest saved label +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map native culling retains objective only in disabled list +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map deleting culled objective removes both memberships and its widget +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map duplicate owned cleanup cannot reactivate objective +11:36:48.970 SCRIPT : ERR SMOKE PASS: discovery map owned probe widgets and markers removed; mission markers preserved +11:36:49.443 SCRIPT : ERR POWERED PAD: found=<4800.95,27.8202,11487.4> tested=213 distance=4559.69m maximumHeightDelta=0.4625m lowGround=4 slopeRejected=185 cylinderRejected=23 sweepRejected=0 +11:36:49.443 SCRIPT : ERR SMOKE PASS: powered-flight separate clear flat test pad found; extraction vehicle untouched +11:36:49.452 SCRIPT : ERR SMOKE PASS: powered-flight one stock unarmed airframe and own empty group created once +11:36:49.452 SCRIPT : ERR SMOKE PASS: powered-flight memberless native group receives explicit USSR faction +11:36:49.946 SCRIPT : ERR POWERED INITIAL SEAT: name=PilotCompartment unique= type=0 occupied=0 accessible=1 piloting=1 +11:36:49.947 SCRIPT : ERR POWERED INITIAL SEAT: name=Passenger_m01Cargo unique= type=0 occupied=0 accessible=1 piloting=0 +11:36:49.947 SCRIPT : ERR POWERED INITIALIZATION: controller=1 simulation=1 valid=1 manager=1 slots=17 primaryEmptySeat=1 activeSeat=1 fuelManager=1 +11:36:49.947 SCRIPT : ERR POWERED INITIALIZATION STOCK: fueled=1 totalFuel=1938.75 agents=0 pilotSpawnRequested=0 +11:36:49.947 SCRIPT : ERR SMOKE PASS: powered-flight native components initialized before the only pilot allocation +11:36:49.966 SCRIPT : ERR SMOKE PASS: powered-flight one existing vanilla character spawned through native pilot-seat mechanism +11:36:49.966 SCRIPT : ERR SMOKE PASS: powered-flight single native pilot owns its actual control agent and fixture group +11:36:50.452 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=0 wakes=0 stableSince=-1 remainingMs=28989.3 +11:36:50.453 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:36:50.453 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.305664 29.370214 11490.737305> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082FF3CA8> activeSeat=PilotCompartmentSlot<0x0000000082FF3CA8> group=<0x00000001BA269540> SCR_AIGroup actualGroup=<0x00000001BA269540> SCR_AIGroup +11:36:50.453 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:36:50.454 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:36:50.454 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 entityUp=1 entityOrigin=<4800.95,27.8202,11487.4> +11:36:50.454 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=0 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:36:52.472 SCRIPT : ERR POWERED SEATING: ownPilot=1 seatOccupantMatches=1 activeSlotMatches=1 vehicleMatches=1 aircraftReady=1 wakes=1 stableSince=10002.2 remainingMs=26969.3 +11:36:52.472 SCRIPT : ERR POWERED SEATING ACTORS: pilotExists=1 alive=1 conscious=1 sameGroup=1 player=0 groupAgents=1 aircraftAlive=1 +11:36:52.473 SCRIPT : ERR POWERED SEATING IDENTITIES: pilot=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397621 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" occupant=SCR_ChimeraCharacter<0x00000001B971A670> @"ENTITY:4611686018427390730" ('SCR_ChimeraCharacter','Assets/Characters/Basebody/Basebody_Male_01.xob') at <4800.489258 29.397621 11490.617188> @"{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" selectedSeat=PilotCompartmentSlot<0x0000000082FF3CA8> activeSeat=PilotCompartmentSlot<0x0000000082FF3CA8> group=<0x00000001BA269540> SCR_AIGroup actualGroup=<0x00000001BA269540> SCR_AIGroup +11:36:52.473 SCRIPT : ERR POWERED SEATING AGENT: actualLOD=0 forcedLOD=0 activated=1 +11:36:52.473 SCRIPT : ERR POWERED SEATING ACCESS: gettingIn=0 gettingOut=0 +11:36:52.474 SCRIPT : ERR POWERED SEATING PHYSICS: dynamic=1 awake=1 speed=0.21186 angularSpeed=0.0593772 entityUp=0.996325 entityOrigin=<4801.01,27.574,11487.4> +11:36:52.474 SCRIPT : ERR POWERED SEATING SIMULATION: valid=1 nativeContact=1 parkedSupport=0 engineOn=0 nativeUp=1 nativeOrigin=<0,0,0> +11:36:52.976 SCRIPT : ERR SMOKE PASS: powered-flight one living native AI pilot physically occupies its own fueled helicopter +11:36:52.991 SCRIPT : ERR POWERED ACTION CONTEXT: sample=1 activated=0 active=1 dt=0.0494671 input=1 simulation=1 +11:36:53.044 SCRIPT : ERR POWERED ACTION CONTEXT: sample=2 activated=0 active=1 dt=0.0541819 input=1 simulation=1 +11:36:53.096 SCRIPT : ERR POWERED ACTION CONTEXT: sample=3 activated=0 active=1 dt=0.0510821 input=1 simulation=1 +11:36:53.156 SCRIPT : ERR POWERED ACTION CONTEXT: sample=4 activated=0 active=1 dt=0.0602056 input=1 simulation=1 +11:36:53.484 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=9 +11:36:53.484 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:53.484 SCRIPT : ERR POWERED FLIGHT: stage=2 height=0.0130672 drift=0.0279645 speed=0.041193 vertical=-0.0209191 up=0.996202 groundContact=1 fuel=1938.75 engine=0 +11:36:53.484 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.58938,4.48577,2.19986> +11:36:53.484 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0446912,-0.595532,0.0263677> +11:36:53.484 SCRIPT : ERR POWERED MOTION: offset=<-0.0253906,-0.0130672,0.0117188> velocity=<0.0345881,-0.0209191,0.0079323> angularLocal=<0.0129633,-0.0435175,0.00374513> forward=<0.0276514,0.0782114,0.996553> right=<0.998962,-0.0382677,-0.0247149> +11:36:53.485 SCRIPT : ERR POWERED INPUT: pilotHooks=9 vehicleHooks=9 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:36:53.485 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=1 writtenSequence=9 applyCallbacks=15 beforeWriteSequence=9 writtenAgeMs=52.9316 beforeWriteAgeMs=32.8184 +11:36:53.485 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:36:53.485 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:36:53.486 SCRIPT : ERR SMOKE PASS: powered-flight owned native input hooks apply minimum collective in Direct mode +11:36:53.486 SCRIPT : ERR SMOKE PASS: powered-flight native engine remains off until the complete footprint is qualified +11:36:53.486 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=1 pivot=<4800.58,31.4899,11473.5> damageRadius=2.3 thickness=0.75 scale=1.73205 sphereBound=19.7785 +11:36:53.486 SCRIPT : ERR POWERED FOOTPRINT ROTOR: index=0 pivot=<4801.19,31.7452,11486.3> damageRadius=12 thickness=1.5 scale=1.73205 sphereBound=27.6823 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=0 localPivot=<0.0081524,4.18279,-0.790322> radius=10.645 sphereBound=14.9018 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT PHYSICS ROTOR: index=1 localPivot=<-0.524318,4.96713,-13.6158> radius=1.955 sphereBound=16.458 +11:36:53.487 SCRIPT : ERR POWERED FOOTPRINT: entities=110 meshes=93 zones=74 modelSphere=20.6662 damageSphere=27.6823 simulationSphere=16.458 completeSphere=27.6823 initialDrift=0.100174 initialHeight=-0.224167 +11:36:53.487 SCRIPT : ERR SMOKE PASS: powered-flight actual complete model and rotor footprint fits the cleared flight column before engine start +11:36:53.488 SCRIPT : ERR POWERED ENGINE REQUEST: StartEngine returned=1; normal procedure, no force-start or simulation EngineStart +11:36:55.506 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=47 +11:36:55.506 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:55.506 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00558281 drift=0.0383977 speed=0 vertical=0 up=0.996064 groundContact=1 fuel=1938.75 engine=0 +11:36:55.507 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.88993,4.59397,2.18348> +11:36:55.507 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0,0,0> +11:36:55.507 SCRIPT : ERR POWERED MOTION: offset=<-0.0380859,0.00558281,-0.00488281> velocity=<0,0,0> angularLocal=<0,0,0> forward=<0.0328735,0.080094,0.996245> right=<0.998831,-0.0379772,-0.0299056> +11:36:55.507 SCRIPT : ERR POWERED INPUT: pilotHooks=47 vehicleHooks=47 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0 rotorRPM=0 targetRPM=196 +11:36:55.507 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=2 writtenSequence=47 applyCallbacks=76 beforeWriteSequence=47 writtenAgeMs=11.4092 beforeWriteAgeMs=11.4092 +11:36:55.508 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0> writtenThrottle=0 beforeWriteThrottle=0 +11:36:55.508 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.5 autohover=0 collectiveMode=3 +11:36:57.536 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=84 +11:36:57.537 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:57.537 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0100765 drift=0.13099 speed=0.0433534 vertical=-0.00198094 up=0.996057 groundContact=1 fuel=1938.66 engine=1 +11:36:57.537 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.52242,4.60733,2.1658> +11:36:57.537 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0492679,0.00226416,0.01577> +11:36:57.537 SCRIPT : ERR POWERED MOTION: offset=<-0.130859,0.0100765,-0.00585938> velocity=<0.0432348,-0.00198094,0.00251969> angularLocal=<-0.000236912,-0.042829,-0.000480477> forward=<0.0438681,0.0803265,0.995803> right=<0.998451,-0.0376692,-0.0409462> +11:36:57.537 SCRIPT : ERR POWERED INPUT: pilotHooks=84 vehicleHooks=84 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.000353733 targetRPM=196 +11:36:57.538 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=3 writtenSequence=84 applyCallbacks=137 beforeWriteSequence=84 writtenAgeMs=36.0811 beforeWriteAgeMs=13.3623 +11:36:57.538 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:36:57.538 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:36:59.564 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=123 +11:36:59.564 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:36:59.564 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0132542 drift=0.223221 speed=0.0440778 vertical=-0.00221505 up=0.996081 groundContact=1 fuel=1938.57 engine=1 +11:36:59.564 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.18765,4.59667,2.15053> +11:36:59.564 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0371973,-0.000285893,0.0162258> +11:36:59.564 SCRIPT : ERR POWERED MOTION: offset=<-0.223145,0.0132542,-0.00585938> velocity=<0.0439888,-0.00221505,0.00171232> angularLocal=<-6.16884e-05,0.0565249,0.00238804> forward=<0.0554275,0.080141,0.995241> right=<0.997917,-0.0374043,-0.0525646> +11:36:59.565 SCRIPT : ERR POWERED INPUT: pilotHooks=123 vehicleHooks=123 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.025348 targetRPM=196 +11:36:59.565 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=4 writtenSequence=123 applyCallbacks=197 beforeWriteSequence=122 writtenAgeMs=22.5742 beforeWriteAgeMs=35.2129 +11:36:59.565 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:36:59.565 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:01.606 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=161 +11:37:01.606 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:01.606 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0164089 drift=0.315484 speed=0.0435257 vertical=-0.00212312 up=0.996109 groundContact=1 fuel=1938.48 engine=1 +11:37:01.606 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.79456,4.58476,2.1344> +11:37:01.606 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0509016,0.00523408,0.0249409> +11:37:01.607 SCRIPT : ERR POWERED MOTION: offset=<-0.31543,0.0164089,-0.00585938> velocity=<0.0434019,-0.00212312,0.00250068> angularLocal=<0.000126175,-0.0428682,-0.000577115> forward=<0.0659673,0.0799339,0.994615> right=<0.997312,-0.0371245,-0.0631627> +11:37:01.607 SCRIPT : ERR POWERED INPUT: pilotHooks=161 vehicleHooks=161 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=0.430302 targetRPM=196 +11:37:01.607 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=5 writtenSequence=161 applyCallbacks=259 beforeWriteSequence=161 writtenAgeMs=59.748 beforeWriteAgeMs=13.127 +11:37:01.607 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:01.607 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:03.624 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=199 +11:37:03.624 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:03.624 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0195446 drift=0.407269 speed=0.0445385 vertical=-0.00175562 up=0.99614 groundContact=1 fuel=1938.39 engine=1 +11:37:03.624 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<4.39219,4.57124,2.11477> +11:37:03.625 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0553396,-0.000900321,0.0210269> +11:37:03.625 SCRIPT : ERR POWERED MOTION: offset=<-0.407227,0.0195446,-0.00585938> velocity=<0.04441,-0.00175562,0.00288898> angularLocal=<0.000209853,0.0559671,0.00245351> forward=<0.0763395,0.0796985,0.993892> right=<0.996609,-0.036784,-0.0735986> +11:37:03.625 SCRIPT : ERR POWERED INPUT: pilotHooks=199 vehicleHooks=199 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=5.45452 targetRPM=196 +11:37:03.625 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=6 writtenSequence=199 applyCallbacks=319 beforeWriteSequence=199 writtenAgeMs=44.8457 beforeWriteAgeMs=22.8418 +11:37:03.625 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:03.626 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:05.649 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=236 +11:37:05.649 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:05.649 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0205402 drift=0.499047 speed=0.0425462 vertical=0.00131691 up=0.996172 groundContact=1 fuel=1938.31 engine=1 +11:37:05.649 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<4.85665,4.55767,2.0938> +11:37:05.649 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0909443,0.0110038,0.0204567> +11:37:05.650 SCRIPT : ERR POWERED MOTION: offset=<-0.499023,0.0205402,-0.00488281> velocity=<0.0424953,0.00131691,0.00161018> angularLocal=<0.000284715,-0.0464744,-0.000768211> forward=<0.0843953,0.0794626,0.993259> right=<0.99599,-0.03642,-0.0817137> +11:37:05.650 SCRIPT : ERR POWERED INPUT: pilotHooks=236 vehicleHooks=236 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=27.4452 targetRPM=196 +11:37:05.650 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=7 writtenSequence=236 applyCallbacks=380 beforeWriteSequence=236 writtenAgeMs=27.209 beforeWriteAgeMs=14.7227 +11:37:05.650 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:05.651 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:07.673 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=273 +11:37:07.673 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:07.673 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.0126133 drift=0.576185 speed=0.0383851 vertical=0.00610796 up=0.996222 groundContact=1 fuel=1938.22 engine=1 +11:37:07.673 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.25168,4.52815,2.08016> +11:37:07.674 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0422846,-0.00103475,0.0254958> +11:37:07.674 SCRIPT : ERR POWERED MOTION: offset=<-0.576172,0.0126133,-0.00390625> velocity=<0.0371371,0.00610796,-0.00754627> angularLocal=<0.000162797,0.0550249,0.00194588> forward=<0.0912451,0.0789489,0.992694> right=<0.995408,-0.0361845,-0.0886168> +11:37:07.674 SCRIPT : ERR POWERED INPUT: pilotHooks=273 vehicleHooks=273 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=1 rotorRPM=63.0165 targetRPM=196 +11:37:07.674 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=8 writtenSequence=273 applyCallbacks=440 beforeWriteSequence=272 writtenAgeMs=11.3848 beforeWriteAgeMs=36.7812 +11:37:07.674 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,1> writtenThrottle=0 beforeWriteThrottle=0 +11:37:07.675 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=1 autohover=0 collectiveMode=3 +11:37:09.691 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=309 +11:37:09.692 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:09.692 SCRIPT : ERR POWERED FLIGHT: stage=3 height=-0.00261497 drift=0.64014 speed=0.0334856 vertical=0.00455244 up=0.99629 groundContact=1 fuel=1938.13 engine=1 +11:37:09.692 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.75541,4.48362,2.06926> +11:37:09.692 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.181776,-0.00576362,-0.0248589> +11:37:09.693 SCRIPT : ERR POWERED MOTION: offset=<-0.640137,0.00261497,-0.00195312> velocity=<0.0303181,0.00455244,-0.0134674> angularLocal=<0.000181413,-0.0454566,-2.87928e-05> forward=<0.0999751,0.078174,0.991914> right=<0.994593,-0.035997,-0.0974081> +11:37:09.693 SCRIPT : ERR POWERED INPUT: pilotHooks=309 vehicleHooks=309 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.727712 rotorRPM=87.6798 targetRPM=196 +11:37:09.693 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=9 writtenSequence=309 applyCallbacks=501 beforeWriteSequence=309 writtenAgeMs=40.5195 beforeWriteAgeMs=16.7871 +11:37:09.693 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.727712> writtenThrottle=0 beforeWriteThrottle=0 +11:37:09.694 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.866037 autohover=0 collectiveMode=3 +11:37:11.712 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=347 +11:37:11.713 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:11.713 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.00634193 drift=0.704102 speed=0.0301793 vertical=0.00490549 up=0.996356 groundContact=1 fuel=1938.04 engine=1 +11:37:11.713 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.20461,4.44174,2.05423> +11:37:11.713 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.287732,-0.00911501,-0.0378041> +11:37:11.714 SCRIPT : ERR POWERED MOTION: offset=<-0.704102,-0.00634193,0> velocity=<0.0217636,0.00490549,-0.0203242> angularLocal=<0.000330827,-0.0456087,0.000282963> forward=<0.107755,0.0774454,0.991156> right=<0.993803,-0.0357377,-0.10525> +11:37:11.714 SCRIPT : ERR POWERED INPUT: pilotHooks=347 vehicleHooks=347 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.528553 rotorRPM=105.453 targetRPM=196 +11:37:11.714 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=10 writtenSequence=347 applyCallbacks=561 beforeWriteSequence=346 writtenAgeMs=26.0781 beforeWriteAgeMs=40.5391 +11:37:11.715 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.528553> writtenThrottle=0 beforeWriteThrottle=0 +11:37:11.715 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.764276 autohover=0 collectiveMode=3 +11:37:13.740 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=382 +11:37:13.740 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:13.741 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0171814 drift=0.746301 speed=0.0329886 vertical=0.00644265 up=0.996421 groundContact=1 fuel=1937.95 engine=1 +11:37:13.741 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.52575,4.3987,2.04258> +11:37:13.741 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.225431,0.00333262,0.0263929> +11:37:13.741 SCRIPT : ERR POWERED MOTION: offset=<-0.746094,-0.0171814,0.0175781> velocity=<0.0116686,0.00644265,-0.0301759> angularLocal=<0.000394886,0.0492433,0.000934241> forward=<0.113315,0.0766964,0.990594> right=<0.9932,-0.0355371,-0.110862> +11:37:13.741 SCRIPT : ERR POWERED INPUT: pilotHooks=382 vehicleHooks=382 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.39333 rotorRPM=121.954 targetRPM=196 +11:37:13.742 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=11 writtenSequence=382 applyCallbacks=622 beforeWriteSequence=382 writtenAgeMs=62.6406 beforeWriteAgeMs=31.3027 +11:37:13.742 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.39333> writtenThrottle=0 beforeWriteThrottle=0 +11:37:13.742 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.696665 autohover=0 collectiveMode=3 +11:37:15.766 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=420 +11:37:15.766 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:15.766 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0305538 drift=0.759357 speed=0.0359502 vertical=0.00834371 up=0.99648 groundContact=1 fuel=1937.86 engine=1 +11:37:15.766 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.63914,4.35565,2.03984> +11:37:15.767 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.132544,-0.00145711,1.12232> +11:37:15.767 SCRIPT : ERR POWERED MOTION: offset=<-0.753906,-0.0305538,0.0908203> velocity=<0.0135219,0.00834371,-0.0322484> angularLocal=<-0.00190994,-0.0200409,-0.000620262> forward=<0.115282,0.0759473,0.990425> right=<0.992977,-0.0354916,-0.112857> +11:37:15.767 SCRIPT : ERR POWERED INPUT: pilotHooks=420 vehicleHooks=420 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.290233 rotorRPM=138.107 targetRPM=196 +11:37:15.768 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=12 writtenSequence=420 applyCallbacks=683 beforeWriteSequence=420 writtenAgeMs=40.4531 beforeWriteAgeMs=18.1953 +11:37:15.768 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.290233> writtenThrottle=0 beforeWriteThrottle=0 +11:37:15.768 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.645845 autohover=0 collectiveMode=3 +11:37:17.796 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=457 +11:37:17.796 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:17.797 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.046011 drift=0.775261 speed=0.0686347 vertical=0.00852959 up=0.996539 groundContact=1 fuel=1937.77 engine=1 +11:37:17.797 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.38597,4.31407,2.03299> +11:37:17.797 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00521321,-0.000109691,-0.0103408> +11:37:17.797 SCRIPT : ERR POWERED MOTION: offset=<-0.75,-0.046011,0.196289> velocity=<0.0141952,0.00852959,-0.0666068> angularLocal=<0.000632944,-0.00164985,-2.5282e-05> forward=<0.11091,0.0752237,0.990979> right=<0.993466,-0.0353745,-0.108503> +11:37:17.797 SCRIPT : ERR POWERED INPUT: pilotHooks=457 vehicleHooks=457 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.212235 rotorRPM=154.37 targetRPM=196 +11:37:17.797 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=13 writtenSequence=457 applyCallbacks=743 beforeWriteSequence=456 writtenAgeMs=31.793 beforeWriteAgeMs=46.5391 +11:37:17.798 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.212235> writtenThrottle=0 beforeWriteThrottle=0 +11:37:17.798 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.606117 autohover=0 collectiveMode=3 +11:37:19.816 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=494 +11:37:19.817 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:19.817 SCRIPT : ERR POWERED FLIGHT: stage=3 height=0.0613766 drift=0.82141 speed=0.0337956 vertical=0.00808577 up=0.996602 groundContact=1 fuel=1937.68 engine=1 +11:37:19.817 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.31427,4.2715,2.02088> +11:37:19.817 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00642031,0.00131244,-0.00229083> +11:37:19.817 SCRIPT : ERR POWERED MOTION: offset=<-0.795898,-0.0613766,0.203125> velocity=<0.0226813,0.00808577,-0.0237134> angularLocal=<0.000733663,-0.000370914,0.000208374> forward=<0.109676,0.0744827,0.991173> right=<0.993604,-0.0351657,-0.107303> +11:37:19.817 SCRIPT : ERR POWERED INPUT: pilotHooks=494 vehicleHooks=494 readback=1 collective=0 cyclicF=0 cyclicR=0 antiTorque=0.148134 rotorRPM=170.291 targetRPM=196 +11:37:19.818 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=14 writtenSequence=494 applyCallbacks=804 beforeWriteSequence=494 writtenAgeMs=35.0352 beforeWriteAgeMs=24.5352 +11:37:19.818 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0 beforeWriteCollective=0 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.148134> writtenThrottle=0 beforeWriteThrottle=0 +11:37:19.818 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0 cyclicForward=0 cyclicAside=0 tailCollective=0.574067 autohover=0 collectiveMode=3 +11:37:20.824 SCRIPT : ERR SMOKE PASS: powered-flight single normal engine start spins physical rotor and consumes native fuel +11:37:21.328 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:37:21.328 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=10 matched=1 +11:37:21.832 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=531 +11:37:21.833 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:21.833 SCRIPT : ERR POWERED FLIGHT: stage=9 height=0.0959911 drift=1.07525 speed=0.603629 vertical=0.013828 up=0.996211 groundContact=1 fuel=1937.59 engine=1 +11:37:21.833 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.40605,4.59871,1.93777> +11:37:21.833 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.187579,0.11211,-0.587075> +11:37:21.833 SCRIPT : ERR POWERED MOTION: offset=<-0.959473,-0.0959911,0.485352> velocity=<0.227903,0.013828,-0.558782> angularLocal=<-0.00989745,0.00626102,-0.000769897> forward=<0.111215,0.0801764,0.990557> right=<0.99349,-0.0337052,-0.108816> +11:37:21.834 SCRIPT : ERR POWERED INPUT: pilotHooks=531 vehicleHooks=531 readback=1 collective=0.05 cyclicF=0 cyclicR=0 antiTorque=0.139475 rotorRPM=181.276 targetRPM=196 +11:37:21.834 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=15 writtenSequence=531 applyCallbacks=864 beforeWriteSequence=531 writtenAgeMs=42.4844 beforeWriteAgeMs=42.4844 +11:37:21.834 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.05 beforeWriteCollective=0.05 writtenFRA=<0,0,0> beforeWriteFRA=<0,0,0.139475> writtenThrottle=0 beforeWriteThrottle=0 +11:37:21.834 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.05 cyclicForward=0 cyclicAside=0 tailCollective=0.569738 autohover=0 collectiveMode=3 +11:37:21.834 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for consumption proof +11:37:21.834 SCRIPT : ERR POWERED COLLECTIVE GATE: command=0.05 rotorSignal=0.05 applyUpdates=19 matched=1 +11:37:21.835 SCRIPT : ERR SMOKE PASS: powered-flight positive collective persists in existing native rotor signal across actual ticks before climb +11:37:22.331 SCRIPT : ERR SMOKE PASS: powered-flight negative consumption proof uses owned actor actions in Direct mode with autohover off +11:37:22.331 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for negative proof +11:37:22.331 SCRIPT : ERR POWERED NEGATIVE COLLECTIVE GATE: command=-0.05 rotorSignal=-0.05 actionUpdates=9 matched=1 +11:37:22.842 SCRIPT : ERR SMOKE PASS: powered-flight negative consumption proof uses owned actor actions in Direct mode with autohover off +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight existing native main rotor collective signal available for negative proof +11:37:22.843 SCRIPT : ERR POWERED NEGATIVE COLLECTIVE GATE: command=-0.05 rotorSignal=-0.05 actionUpdates=19 matched=1 +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight negative actor collective persists in existing native rotor signal across actual ticks before signed flight demand +11:37:22.843 SCRIPT : ERR SMOKE PASS: powered-flight selected native autohover enabled only after both direct collective consumption proofs +11:37:23.862 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=568 +11:37:23.863 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:23.863 SCRIPT : ERR POWERED FLIGHT: stage=4 height=-0.0288696 drift=1.54089 speed=0.0374335 vertical=-0.0266785 up=0.996705 groundContact=1 fuel=1937.51 engine=1 +11:37:23.863 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.22329,4.2416,1.91383> +11:37:23.863 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0454107,0.942677,-0.249415> +11:37:23.863 SCRIPT : ERR POWERED MOTION: offset=<-1.22363,0.0288696,0.936523> velocity=<0.0258307,-0.0266785,-0.00472205> angularLocal=<-0.00343971,0.0515367,0.00231368> forward=<0.159843,0.0739624,0.984368> right=<0.986916,-0.0333049,-0.157755> +11:37:23.864 SCRIPT : ERR POWERED INPUT: pilotHooks=568 vehicleHooks=568 readback=1 collective=-0.424121 cyclicF=0.0588049 cyclicR=-0.0379156 antiTorque=-0.212956 rotorRPM=189.261 targetRPM=196 +11:37:23.864 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=16 writtenSequence=568 applyCallbacks=925 beforeWriteSequence=568 writtenAgeMs=47.5586 beforeWriteAgeMs=35.668 +11:37:23.864 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.424121 beforeWriteCollective=-0.424121 writtenFRA=<0.0588049,-0.0379156,-0.0611443> beforeWriteFRA=<0.0588049,-0.0379156,-0.212956> writtenThrottle=0 beforeWriteThrottle=0 +11:37:23.864 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.424121 cyclicForward=0.0588049 cyclicAside=-0.0379156 tailCollective=0.393522 autohover=0 collectiveMode=3 +11:37:24.368 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=577 +11:37:24.368 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:24.368 SCRIPT : ERR POWERED FLIGHT: stage=4 height=-0.00531578 drift=1.55552 speed=0.0247642 vertical=0.00623799 up=0.996507 groundContact=1 fuel=1937.51 engine=1 +11:37:24.368 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.18679,4.38265,1.93572> +11:37:24.369 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.227894,-0.0249202,0.0768813> +11:37:24.369 SCRIPT : ERR POWERED MOTION: offset=<-1.23682,0.00531578,0.943359> velocity=<0.0135044,0.00623799,-0.0197986> angularLocal=<0.00679715,0.0455726,-8.51741e-06> forward=<0.159187,0.076417,0.984287> right=<0.987022,-0.0336796,-0.157014> +11:37:24.369 SCRIPT : ERR POWERED INPUT: pilotHooks=577 vehicleHooks=577 readback=1 collective=-0.348774 cyclicF=0.0618726 cyclicR=-0.0378077 antiTorque=-0.208201 rotorRPM=191.224 targetRPM=196 +11:37:24.369 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=17 writtenSequence=577 applyCallbacks=940 beforeWriteSequence=577 writtenAgeMs=63.1758 beforeWriteAgeMs=40.5039 +11:37:24.370 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.348774 beforeWriteCollective=-0.348774 writtenFRA=<0.0618726,-0.0378077,-0.0913397> beforeWriteFRA=<0.0618726,-0.0378077,-0.208201> writtenThrottle=0 beforeWriteThrottle=0 +11:37:24.370 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.348774 cyclicForward=0.0618726 cyclicAside=-0.0378077 tailCollective=0.395899 autohover=0 collectiveMode=3 +11:37:24.878 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=587 +11:37:24.879 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:24.879 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.00907707 drift=1.5589 speed=0.040669 vertical=0.0339635 up=0.996646 groundContact=1 fuel=1937.46 engine=1 +11:37:24.879 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<9.0176,4.28878,1.90962> +11:37:24.879 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.225537,-0.0597972,0.99187> +11:37:24.879 SCRIPT : ERR POWERED MOTION: offset=<-1.23584,-0.00907707,0.950195> velocity=<0.00962185,0.0339635,-0.0201956> angularLocal=<-0.00235297,-0.0299456,-0.00124486> forward=<0.156299,0.0747835,0.984875> right=<0.987482,-0.0332298,-0.15419> +11:37:24.880 SCRIPT : ERR POWERED INPUT: pilotHooks=587 vehicleHooks=587 readback=1 collective=-0.25406 cyclicF=0.0685211 cyclicR=-0.0375473 antiTorque=-0.135445 rotorRPM=193.252 targetRPM=196 +11:37:24.880 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=18 writtenSequence=587 applyCallbacks=956 beforeWriteSequence=587 writtenAgeMs=23.9062 beforeWriteAgeMs=12.9961 +11:37:24.880 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.25406 beforeWriteCollective=-0.25406 writtenFRA=<0.0685211,-0.0375473,-0.0676067> beforeWriteFRA=<0.0685211,-0.0375473,-0.135445> writtenThrottle=0 beforeWriteThrottle=0 +11:37:24.880 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.26293 cyclicForward=0.0633119 cyclicAside=-0.0359875 tailCollective=0.421563 autohover=0 collectiveMode=3 +11:37:25.382 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=596 +11:37:25.382 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:25.383 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0280972 drift=1.57045 speed=0.0674153 vertical=0.0467872 up=0.996729 groundContact=1 fuel=1937.46 engine=1 +11:37:25.383 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.77162,4.22702,1.90476> +11:37:25.383 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00662176,0.0224192,-0.0601112> +11:37:25.383 SCRIPT : ERR POWERED MOTION: offset=<-1.23145,-0.0280972,0.974609> velocity=<0.00940862,0.0467872,-0.0476157> angularLocal=<0.00392206,-0.00902312,-0.000164155> forward=<0.152081,0.0737086,0.985616> right=<0.988132,-0.0331477,-0.149991> +11:37:25.383 SCRIPT : ERR POWERED INPUT: pilotHooks=596 vehicleHooks=596 readback=1 collective=-0.171742 cyclicF=0.0608906 cyclicR=-0.0363992 antiTorque=-0.0941664 rotorRPM=195.215 targetRPM=196 +11:37:25.384 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=19 writtenSequence=596 applyCallbacks=971 beforeWriteSequence=596 writtenAgeMs=51.3555 beforeWriteAgeMs=12.5312 +11:37:25.384 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.171742 beforeWriteCollective=-0.171742 writtenFRA=<0.0608906,-0.0363992,-0.0711626> beforeWriteFRA=<0.0608906,-0.0363992,-0.0941664> writtenThrottle=0 beforeWriteThrottle=0 +11:37:25.384 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.171742 cyclicForward=0.0608906 cyclicAside=-0.0363992 tailCollective=0.450767 autohover=0 collectiveMode=3 +11:37:25.887 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=606 +11:37:25.887 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:25.888 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0515289 drift=1.57601 speed=0.0631145 vertical=0.0538525 up=0.996783 groundContact=1 fuel=1937.42 engine=1 +11:37:25.888 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.64767,4.19144,1.89004> +11:37:25.888 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0326281,-0.110681,-0.0443438> +11:37:25.888 SCRIPT : ERR POWERED MOTION: offset=<-1.23389,-0.0515289,0.980469> velocity=<0.0194979,0.0538525,-0.0265177> angularLocal=<0.0025895,-0.00424794,-0.000916256> forward=<0.149956,0.0730892,0.985987> right=<0.988456,-0.0328931,-0.147893> +11:37:25.888 SCRIPT : ERR POWERED INPUT: pilotHooks=606 vehicleHooks=606 readback=1 collective=-0.086912 cyclicF=0.0632528 cyclicR=-0.0372474 antiTorque=-0.0509485 rotorRPM=196 targetRPM=196 +11:37:25.888 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=20 writtenSequence=606 applyCallbacks=986 beforeWriteSequence=605 writtenAgeMs=12.457 beforeWriteAgeMs=24.625 +11:37:25.889 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0782072 beforeWriteCollective=-0.086912 writtenFRA=<0.062189,-0.037414,-0.071015> beforeWriteFRA=<0.0632528,-0.0372474,-0.0509485> writtenThrottle=0 beforeWriteThrottle=0 +11:37:25.889 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.086912 cyclicForward=0.0632528 cyclicAside=-0.0372474 tailCollective=0.474526 autohover=0 collectiveMode=3 +11:37:26.387 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=614 +11:37:26.387 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:26.387 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.0746861 drift=1.61371 speed=0.175238 vertical=0.0757782 up=0.996982 groundContact=0 fuel=1937.42 engine=1 +11:37:26.387 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<8.32686,4.07034,1.80552> +11:37:26.388 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.196962,0.220137,-0.74711> +11:37:26.388 SCRIPT : ERR POWERED MOTION: offset=<-1.25244,-0.0746861,1.01758> velocity=<0.0778507,0.0757782,-0.137497> angularLocal=<0.00566174,-0.0370852,0.00562568> forward=<0.144455,0.070981,0.986962> right=<0.989291,-0.0314276,-0.142535> +11:37:26.388 SCRIPT : ERR POWERED INPUT: pilotHooks=614 vehicleHooks=614 readback=1 collective=-0.00169538 cyclicF=0.0606953 cyclicR=-0.0326402 antiTorque=0.0036717 rotorRPM=196 targetRPM=196 +11:37:26.388 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=21 writtenSequence=614 applyCallbacks=1001 beforeWriteSequence=614 writtenAgeMs=64.9844 beforeWriteAgeMs=18.6484 +11:37:26.389 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.00169538 beforeWriteCollective=-0.00169538 writtenFRA=<0.0606953,-0.0326402,-0.0620908> beforeWriteFRA=<0.0606953,-0.0326402,0.0036717> writtenThrottle=0 beforeWriteThrottle=0 +11:37:26.389 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.00169538 cyclicForward=0.0606953 cyclicAside=-0.0326402 tailCollective=0.499366 autohover=0 collectiveMode=3 +11:37:26.889 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=624 +11:37:26.889 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:26.889 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.181364 drift=1.77602 speed=0.65425 vertical=0.374606 up=0.997602 groundContact=0 fuel=1937.37 engine=1 +11:37:26.889 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<6.70359,3.69698,1.44409> +11:37:26.889 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.159468,0.625015,-0.699352> +11:37:26.890 SCRIPT : ERR POWERED MOTION: offset=<-1.30371,-0.181364,1.20605> velocity=<0.168826,0.374606,-0.509128> angularLocal=<0.0216114,-0.060275,0.0104631> forward=<0.11649,0.0644798,0.991097> right=<0.993038,-0.025149,-0.115082> +11:37:26.890 SCRIPT : ERR POWERED INPUT: pilotHooks=624 vehicleHooks=624 readback=1 collective=0.0471659 cyclicF=0.0566658 cyclicR=-0.0282438 antiTorque=0.0540418 rotorRPM=196 targetRPM=196 +11:37:26.890 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=22 writtenSequence=624 applyCallbacks=1016 beforeWriteSequence=624 writtenAgeMs=33.1562 beforeWriteAgeMs=22.4297 +11:37:26.891 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0471659 beforeWriteCollective=0.0471659 writtenFRA=<0.0566658,-0.0282438,-0.0358545> beforeWriteFRA=<0.0566658,-0.0282438,0.0540418> writtenThrottle=0 beforeWriteThrottle=0 +11:37:26.891 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0471659 cyclicForward=0.0566658 cyclicAside=-0.0282438 tailCollective=0.527021 autohover=0 collectiveMode=3 +11:37:27.398 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=634 +11:37:27.398 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:27.399 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.443951 drift=2.11493 speed=1.09772 vertical=0.679515 up=0.99858 groundContact=0 fuel=1937.37 engine=1 +11:37:27.399 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<5.07516,2.88139,1.01322> +11:37:27.399 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.104113,0.508969,-0.529883> +11:37:27.399 SCRIPT : ERR POWERED MOTION: offset=<-1.39697,-0.443951,1.58789> velocity=<0.236695,0.679515,-0.828996> angularLocal=<0.0352896,-0.0489048,0.012132> forward=<0.0883506,0.0502685,0.99482> right=<0.996002,-0.0176608,-0.0875632> +11:37:27.400 SCRIPT : ERR POWERED INPUT: pilotHooks=634 vehicleHooks=634 readback=1 collective=0.0684039 cyclicF=0.0480775 cyclicR=-0.0250024 antiTorque=0.0801449 rotorRPM=196 targetRPM=196 +11:37:27.400 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=23 writtenSequence=634 applyCallbacks=1031 beforeWriteSequence=633 writtenAgeMs=11.7383 beforeWriteAgeMs=34.9258 +11:37:27.400 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0704178 beforeWriteCollective=0.0684039 writtenFRA=<0.0469595,-0.0246771,-0.0219835> beforeWriteFRA=<0.0480775,-0.0250024,0.0801449> writtenThrottle=0 beforeWriteThrottle=0 +11:37:27.400 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0684039 cyclicForward=0.0480775 cyclicAside=-0.0250024 tailCollective=0.540072 autohover=0 collectiveMode=3 +11:37:27.907 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=643 +11:37:27.907 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:27.907 SCRIPT : ERR POWERED FLIGHT: stage=4 height=0.836094 drift=2.61172 speed=1.40452 vertical=0.903648 up=0.999498 groundContact=0 fuel=1937.33 engine=1 +11:37:27.907 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.85558,1.71121,0.605211> +11:37:27.907 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0522834,0.412248,-0.312989> +11:37:27.908 SCRIPT : ERR POWERED MOTION: offset=<-1.52246,-0.836094,2.12207> velocity=<0.275172,0.903648,-1.03942> angularLocal=<0.0445404,-0.0346685,0.0121791> forward=<0.0672117,0.0298619,0.997292> right=<0.997702,-0.010558,-0.0669233> +11:37:27.908 SCRIPT : ERR POWERED INPUT: pilotHooks=643 vehicleHooks=643 readback=1 collective=0.084848 cyclicF=0.034445 cyclicR=-0.0217418 antiTorque=0.0970033 rotorRPM=196 targetRPM=196 +11:37:27.908 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=24 writtenSequence=643 applyCallbacks=1046 beforeWriteSequence=643 writtenAgeMs=36.3477 beforeWriteAgeMs=36.3477 +11:37:27.908 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.084848 beforeWriteCollective=0.084848 writtenFRA=<0.034445,-0.0217418,-0.0143906> beforeWriteFRA=<0.034445,-0.0217418,0.0970033> writtenThrottle=0 beforeWriteThrottle=0 +11:37:27.909 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.084848 cyclicForward=0.034445 cyclicAside=-0.0217418 tailCollective=0.548502 autohover=0 collectiveMode=3 +11:37:28.417 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=653 +11:37:28.418 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:28.418 SCRIPT : ERR POWERED FLIGHT: stage=4 height=1.32494 drift=3.20564 speed=1.59025 vertical=1.07706 up=0.999974 groundContact=0 fuel=1937.33 engine=1 +11:37:28.418 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<3.02775,0.334277,0.24525> +11:37:28.418 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.00304699,0.275166,-0.0581861> +11:37:28.418 SCRIPT : ERR POWERED MOTION: offset=<-1.66992,-1.32494,2.73633> velocity=<0.288782,1.07706,-1.13377> angularLocal=<0.0492574,-0.023049,0.0114371> forward=<0.0528188,0.00583421,0.998587> right=<0.998596,-0.00428033,-0.0527942> +11:37:28.419 SCRIPT : ERR POWERED INPUT: pilotHooks=653 vehicleHooks=653 readback=1 collective=0.0946454 cyclicF=0.0182131 cyclicR=-0.0187164 antiTorque=0.107328 rotorRPM=196 targetRPM=196 +11:37:28.419 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=25 writtenSequence=653 applyCallbacks=1062 beforeWriteSequence=653 writtenAgeMs=24.3125 beforeWriteAgeMs=12.2852 +11:37:28.419 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0946454 beforeWriteCollective=0.0946454 writtenFRA=<0.0182131,-0.0187164,-0.00932579> beforeWriteFRA=<0.0182131,-0.0187164,0.107328> writtenThrottle=0 beforeWriteThrottle=0 +11:37:28.419 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0937254 cyclicForward=0.0203471 cyclicAside=-0.0190955 tailCollective=0.553411 autohover=0 collectiveMode=3 +11:37:28.920 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=662 +11:37:28.921 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:28.921 SCRIPT : ERR POWERED FLIGHT: stage=4 height=1.883 drift=3.81719 speed=1.65258 vertical=1.20319 up=0.999818 groundContact=0 fuel=1937.28 engine=1 +11:37:28.921 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.48629,-1.09201,-0.0647537> +11:37:28.921 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0385433,0.212009,0.192375> +11:37:28.921 SCRIPT : ERR POWERED MOTION: offset=<-1.81982,-1.883,3.35547> velocity=<0.279328,1.20319,-1.09788> angularLocal=<0.0490003,-0.0153446,0.010311> forward=<0.0433725,-0.019058,0.998877> right=<0.999059,0.00112996,-0.0433588> +11:37:28.922 SCRIPT : ERR POWERED INPUT: pilotHooks=662 vehicleHooks=662 readback=1 collective=0.100819 cyclicF=0.00208399 cyclicR=-0.0158233 antiTorque=0.114173 rotorRPM=196 targetRPM=196 +11:37:28.922 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=26 writtenSequence=662 applyCallbacks=1077 beforeWriteSequence=662 writtenAgeMs=51.1484 beforeWriteAgeMs=12.0234 +11:37:28.922 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.100819 beforeWriteCollective=0.100819 writtenFRA=<0.00208399,-0.0158233,-0.00626413> beforeWriteFRA=<0.00208399,-0.0158233,0.114173> writtenThrottle=0 beforeWriteThrottle=0 +11:37:28.922 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.100819 cyclicForward=0.00208399 cyclicAside=-0.0158233 tailCollective=0.556958 autohover=0 collectiveMode=3 +11:37:29.427 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=672 +11:37:29.427 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:29.428 SCRIPT : ERR POWERED FLIGHT: stage=4 height=2.50404 drift=4.39156 speed=1.614 vertical=1.29314 up=0.999063 groundContact=0 fuel=1937.28 engine=1 +11:37:29.428 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<2.12969,-2.45788,-0.333431> +11:37:29.428 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.074949,0.146348,0.433295> +11:37:29.428 SCRIPT : ERR POWERED MOTION: offset=<-1.9585,-2.50404,3.93066> velocity=<0.249409,1.29314,-0.933034> angularLocal=<0.0441096,-0.0101182,0.00889949> forward=<0.0371274,-0.042885,0.99839> right=<0.999302,0.00581409,-0.0369115> +11:37:29.429 SCRIPT : ERR POWERED INPUT: pilotHooks=672 vehicleHooks=672 readback=1 collective=0.105477 cyclicF=-0.016175 cyclicR=-0.0124196 antiTorque=0.118597 rotorRPM=196 targetRPM=196 +11:37:29.429 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=27 writtenSequence=672 applyCallbacks=1092 beforeWriteSequence=672 writtenAgeMs=22.3242 beforeWriteAgeMs=22.3242 +11:37:29.429 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.105477 beforeWriteCollective=0.105477 writtenFRA=<-0.016175,-0.0124196,-0.00406355> beforeWriteFRA=<-0.016175,-0.0124196,0.118597> writtenThrottle=0 beforeWriteThrottle=0 +11:37:29.429 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.105477 cyclicForward=-0.016175 cyclicAside=-0.0124196 tailCollective=0.559298 autohover=0 collectiveMode=3 +11:37:29.934 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=681 +11:37:29.934 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:29.934 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.16053 drift=4.85146 speed=1.51673 vertical=1.34821 up=0.997965 groundContact=0 fuel=1937.24 engine=1 +11:37:29.934 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.89827,-3.61384,-0.556084> +11:37:29.935 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.103267,0.0872254,0.628735> +11:37:29.935 SCRIPT : ERR POWERED MOTION: offset=<-2.07617,-3.16053,4.38477> velocity=<0.204344,1.34821,-0.664114> angularLocal=<0.035439,-0.00685571,0.00737012> forward=<0.0330591,-0.0630316,0.997464> right=<0.999424,0.00968604,-0.032512> +11:37:29.935 SCRIPT : ERR POWERED INPUT: pilotHooks=681 vehicleHooks=681 readback=1 collective=0.109159 cyclicF=-0.0314523 cyclicR=-0.00923597 antiTorque=0.121858 rotorRPM=196 targetRPM=196 +11:37:29.935 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=28 writtenSequence=681 applyCallbacks=1107 beforeWriteSequence=681 writtenAgeMs=44.8477 beforeWriteAgeMs=34.6445 +11:37:29.935 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.109159 beforeWriteCollective=0.109159 writtenFRA=<-0.0314523,-0.00923597,-0.00276127> beforeWriteFRA=<-0.0314523,-0.00923597,0.121858> writtenThrottle=0 beforeWriteThrottle=0 +11:37:29.936 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.109159 cyclicForward=-0.0314523 cyclicAside=-0.00923597 tailCollective=0.560929 autohover=0 collectiveMode=3 +11:37:30.444 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=691 +11:37:30.444 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:30.445 SCRIPT : ERR POWERED FLIGHT: stage=4 height=3.84709 drift=5.14324 speed=1.41933 vertical=1.38023 up=0.996877 groundContact=0 fuel=1937.24 engine=1 +11:37:30.445 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.7429,-4.46956,-0.734622> +11:37:30.445 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.125235,0.0373292,0.774797> +11:37:30.445 SCRIPT : ERR POWERED MOTION: offset=<-2.16992,-3.84709,4.66309> velocity=<0.144805,1.38023,-0.297502> angularLocal=<0.0232168,-0.00467548,0.00569101> forward=<0.0303222,-0.0779295,0.996498> right=<0.999486,0.0127822,-0.0294135> +11:37:30.445 SCRIPT : ERR POWERED INPUT: pilotHooks=691 vehicleHooks=691 readback=1 collective=0.113583 cyclicF=-0.0454676 cyclicR=-0.00568064 antiTorque=0.125167 rotorRPM=196 targetRPM=196 +11:37:30.446 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=29 writtenSequence=691 applyCallbacks=1123 beforeWriteSequence=691 writtenAgeMs=23.0859 beforeWriteAgeMs=12.0703 +11:37:30.446 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.113583 beforeWriteCollective=0.113583 writtenFRA=<-0.0454676,-0.00568064,-0.00179194> beforeWriteFRA=<-0.0454676,-0.00568064,0.125167> writtenThrottle=0 beforeWriteThrottle=0 +11:37:30.446 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.113049 cyclicForward=-0.0441175 cyclicAside=-0.00605444 tailCollective=0.562528 autohover=0 collectiveMode=3 +11:37:30.959 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=701 +11:37:30.959 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:30.959 SCRIPT : ERR POWERED FLIGHT: stage=4 height=4.54912 drift=5.2273 speed=1.40249 vertical=1.39577 up=0.996181 groundContact=0 fuel=1937.19 engine=1 +11:37:30.960 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.63567,-4.93385,-0.865786> +11:37:30.960 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.139703,0.017066,0.850941> +11:37:30.960 SCRIPT : ERR POWERED MOTION: offset=<-2.23047,-4.54912,4.72754> velocity=<0.0781397,1.39577,0.112709> angularLocal=<0.00899466,-0.00324194,0.00400322> forward=<0.0284382,-0.0860056,0.995889> right=<0.999516,0.0150543,-0.0272417> +11:37:30.960 SCRIPT : ERR POWERED INPUT: pilotHooks=701 vehicleHooks=701 readback=1 collective=0.118366 cyclicF=-0.0546376 cyclicR=-0.00233118 antiTorque=0.128374 rotorRPM=196 targetRPM=196 +11:37:30.960 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=30 writtenSequence=701 applyCallbacks=1138 beforeWriteSequence=701 writtenAgeMs=24.2188 beforeWriteAgeMs=12.8516 +11:37:30.961 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.118366 beforeWriteCollective=0.118366 writtenFRA=<-0.0546376,-0.00233118,-0.00116436> beforeWriteFRA=<-0.0546376,-0.00233118,0.128374> writtenThrottle=0 beforeWriteThrottle=0 +11:37:30.961 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.117885 cyclicForward=-0.0539701 cyclicAside=-0.0026474 tailCollective=0.564047 autohover=0 collectiveMode=3 +11:37:32.980 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=738 +11:37:32.980 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:32.981 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.08753 drift=3.4619 speed=1.77295 vertical=0.844863 up=0.998963 groundContact=0 fuel=1937.11 engine=1 +11:37:32.981 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.46943,-2.43561,-0.93632> +11:37:32.981 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.117086,-0.415846,0.39432> +11:37:32.981 SCRIPT : ERR POWERED MOTION: offset=<-2.10547,-7.08753,2.74805> velocity=<-0.190612,0.844863,1.54701> angularLocal=<-0.0458772,-9.17963e-05,-0.00207447> forward=<0.0256204,-0.0424966,0.998768> right=<0.999555,0.0163264,-0.0249459> +11:37:32.981 SCRIPT : ERR POWERED INPUT: pilotHooks=738 vehicleHooks=738 readback=1 collective=0.0522362 cyclicF=-0.0388905 cyclicR=0.00732862 antiTorque=0.0940604 rotorRPM=196 targetRPM=196 +11:37:32.982 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=31 writtenSequence=738 applyCallbacks=1198 beforeWriteSequence=737 writtenAgeMs=27.5312 beforeWriteAgeMs=40.9648 +11:37:32.982 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=0.0492766 beforeWriteCollective=0.0522362 writtenFRA=<-0.037489,0.00748981,-0.000453459> beforeWriteFRA=<-0.0388905,0.00732862,0.0940604> writtenThrottle=0 beforeWriteThrottle=0 +11:37:32.982 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=0.0522362 cyclicForward=-0.0388905 cyclicAside=0.00732862 tailCollective=0.54703 autohover=0 collectiveMode=3 +11:37:34.996 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=776 +11:37:34.996 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:34.996 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.11651 drift=1.68144 speed=1.42585 vertical=0.182019 up=0.998333 groundContact=0 fuel=1937.02 engine=1 +11:37:34.996 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.41583,3.27316,-0.486842> +11:37:34.996 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0509638,-0.219969,-0.555904> +11:37:34.997 SCRIPT : ERR POWERED MOTION: offset=<-1.50732,-8.11651,-0.745117> velocity=<-0.366562,0.182019,1.36585> angularLocal=<-0.0419604,0.000233846,-0.00509609> forward=<0.0246681,0.0570963,0.998064> right=<0.999647,0.00848303,-0.0251925> +11:37:34.997 SCRIPT : ERR POWERED INPUT: pilotHooks=776 vehicleHooks=776 readback=1 collective=-0.0194357 cyclicF=0.0242996 cyclicR=0.010572 antiTorque=0.0569726 rotorRPM=196 targetRPM=196 +11:37:34.997 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=32 writtenSequence=776 applyCallbacks=1259 beforeWriteSequence=776 writtenAgeMs=13.0977 beforeWriteAgeMs=13.0977 +11:37:34.997 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0194357 beforeWriteCollective=-0.0194357 writtenFRA=<0.0242996,0.010572,2.63096e-05> beforeWriteFRA=<0.0242996,0.010572,0.0569726> writtenThrottle=0 beforeWriteThrottle=0 +11:37:34.997 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0182259 cyclicForward=0.0222903 cyclicAside=0.01059 tailCollective=0.528841 autohover=0 collectiveMode=3 +11:37:37.002 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=813 +11:37:37.002 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:37.002 SCRIPT : ERR POWERED FLIGHT: stage=4 height=8.18166 drift=2.14627 speed=0.470524 vertical=-0.082626 up=0.995836 groundContact=0 fuel=1936.93 engine=1 +11:37:37.003 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.41686,5.22974,0.100446> +11:37:37.003 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0368196,-0.0349849,-0.895522> +11:37:37.003 SCRIPT : ERR POWERED MOTION: offset=<-0.712891,-8.18166,-2.02441> velocity=<-0.38,-0.082626,-0.264888> angularLocal=<0.0120811,-4.00122e-05,-0.00458642> forward=<0.0246234,0.0911494,0.995533> right=<0.999697,-0.00174582,-0.0245666> +11:37:37.003 SCRIPT : ERR POWERED INPUT: pilotHooks=813 vehicleHooks=813 readback=1 collective=-0.025417 cyclicF=0.0585257 cyclicR=0.00708489 antiTorque=0.052984 rotorRPM=196 targetRPM=196 +11:37:37.003 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=33 writtenSequence=813 applyCallbacks=1319 beforeWriteSequence=813 writtenAgeMs=12.9219 beforeWriteAgeMs=12.9219 +11:37:37.004 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.025417 beforeWriteCollective=-0.025417 writtenFRA=<0.0585257,0.00708489,9.07008e-05> beforeWriteFRA=<0.0585257,0.00708489,0.052984> writtenThrottle=0 beforeWriteThrottle=0 +11:37:37.004 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0258251 cyclicForward=0.0586157 cyclicAside=0.00722927 tailCollective=0.526393 autohover=0 collectiveMode=3 +11:37:39.026 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=848 +11:37:39.026 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:39.026 SCRIPT : ERR POWERED FLIGHT: stage=4 height=7.98742 drift=0.186749 speed=1.47132 vertical=-0.00739424 up=0.999861 groundContact=0 fuel=1936.84 engine=1 +11:37:39.026 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.39484,0.828773,0.473677> +11:37:39.026 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.102934,0.0647762,-0.145948> +11:37:39.027 SCRIPT : ERR POWERED MOTION: offset=<-0.0541992,-7.98742,0.178711> velocity=<-0.230682,-0.00739424,-1.45311> angularLocal=<0.0535202,0.000291063,-0.00169464> forward=<0.0243397,0.0144643,0.999599> right=<0.999672,-0.00826626,-0.0242218> +11:37:39.027 SCRIPT : ERR POWERED INPUT: pilotHooks=848 vehicleHooks=848 readback=1 collective=-0.0162114 cyclicF=0.0202056 cyclicR=0.000531592 antiTorque=0.0582948 rotorRPM=196 targetRPM=196 +11:37:39.027 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=34 writtenSequence=848 applyCallbacks=1380 beforeWriteSequence=848 writtenAgeMs=11.7227 beforeWriteAgeMs=11.7227 +11:37:39.027 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0162114 beforeWriteCollective=-0.0162114 writtenFRA=<0.0202056,0.000531592,0.000212738> beforeWriteFRA=<0.0202056,0.000531592,0.0582948> writtenThrottle=0 beforeWriteThrottle=0 +11:37:39.027 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0160962 cyclicForward=0.0217514 cyclicAside=0.000692502 tailCollective=0.529182 autohover=0 collectiveMode=3 +11:37:40.036 SCRIPT : ERR SMOKE PASS: powered-flight actual 7–9 metre powered hover stable five seconds with native fuel consumption +11:37:41.050 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=885 +11:37:41.050 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:41.050 SCRIPT : ERR POWERED FLIGHT: stage=6 height=7.49806 drift=2.93311 speed=0.969852 vertical=-0.61627 up=0.996823 groundContact=0 fuel=1936.75 engine=1 +11:37:41.051 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.44703,-4.54376,0.47466> +11:37:41.051 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.092485,-0.152099,0.766843> +11:37:41.051 SCRIPT : ERR POWERED MOTION: offset=<0.192871,-7.49806,2.92676> velocity=<-0.0140158,-0.61627,-0.748751> angularLocal=<0.0293678,-9.73159e-05,0.00138925> forward=<0.0251734,-0.0792205,0.996539> right=<0.99963,-0.00825825,-0.025908> +11:37:41.051 SCRIPT : ERR POWERED INPUT: pilotHooks=885 vehicleHooks=885 readback=1 collective=-0.0882211 cyclicF=-0.0417715 cyclicR=-0.00437879 antiTorque=0.0194925 rotorRPM=196 targetRPM=196 +11:37:41.052 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=35 writtenSequence=885 applyCallbacks=1440 beforeWriteSequence=885 writtenAgeMs=47.0312 beforeWriteAgeMs=24.9609 +11:37:41.052 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0882211 beforeWriteCollective=-0.0882211 writtenFRA=<-0.0417715,-0.00437879,-0.000205372> beforeWriteFRA=<-0.0417715,-0.00437879,0.0194925> writtenThrottle=0 beforeWriteThrottle=0 +11:37:41.052 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0882211 cyclicForward=-0.0417715 cyclicAside=-0.00437879 tailCollective=0.509746 autohover=0 collectiveMode=3 +11:37:43.065 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=923 +11:37:43.065 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:43.065 SCRIPT : ERR POWERED FLIGHT: stage=6 height=6.0405 drift=2.6479 speed=1.2707 vertical=-0.789627 up=0.997033 groundContact=0 fuel=1936.66 engine=1 +11:37:43.065 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.43224,-4.40869,0.224061> +11:37:43.065 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0410691,-0.0247371,0.748587> +11:37:43.066 SCRIPT : ERR POWERED MOTION: offset=<0.0483398,-6.0405,2.64746> velocity=<0.12815,-0.789627,0.987298> angularLocal=<-0.0317664,-8.6791e-05,0.00261858> forward=<0.0249207,-0.0768703,0.99673> right=<0.999672,-0.00389902,-0.025295> +11:37:43.066 SCRIPT : ERR POWERED INPUT: pilotHooks=923 vehicleHooks=923 readback=1 collective=-0.0857694 cyclicF=-0.0554422 cyclicR=-0.00517536 antiTorque=0.0208793 rotorRPM=196 targetRPM=196 +11:37:43.066 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=36 writtenSequence=923 applyCallbacks=1500 beforeWriteSequence=922 writtenAgeMs=22.0312 beforeWriteAgeMs=33.9766 +11:37:43.066 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0857267 beforeWriteCollective=-0.0857694 writtenFRA=<-0.054755,-0.00514562,-4.51088e-05> beforeWriteFRA=<-0.0554422,-0.00517536,0.0208793> writtenThrottle=0 beforeWriteThrottle=0 +11:37:43.066 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0857694 cyclicForward=-0.0554422 cyclicAside=-0.00517536 tailCollective=0.51044 autohover=0 collectiveMode=3 +11:37:45.098 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=962 +11:37:45.098 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:45.098 SCRIPT : ERR POWERED FLIGHT: stage=6 height=4.51876 drift=0.617442 speed=1.76439 vertical=-0.764571 up=0.999749 groundContact=0 fuel=1936.57 engine=1 +11:37:45.098 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.43638,1.28332,-0.0634881> +11:37:45.098 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0316948,0.00988841,-0.225685> +11:37:45.099 SCRIPT : ERR POWERED MOTION: offset=<-0.265137,-4.51876,-0.557617> velocity=<0.135498,-0.764571,1.58435> angularLocal=<-0.0536728,6.03183e-06,0.00206788> forward=<0.0250607,0.0223963,0.999435> right=<0.999685,0.0011078,-0.0250918> +11:37:45.099 SCRIPT : ERR POWERED INPUT: pilotHooks=962 vehicleHooks=962 readback=1 collective=-0.092453 cyclicF=-0.000196062 cyclicR=-0.0030007 antiTorque=0.0174547 rotorRPM=196 targetRPM=196 +11:37:45.099 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=37 writtenSequence=962 applyCallbacks=1561 beforeWriteSequence=962 writtenAgeMs=34.1875 beforeWriteAgeMs=34.1875 +11:37:45.099 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.092453 beforeWriteCollective=-0.092453 writtenFRA=<-0.000196062,-0.0030007,-0.000114437> beforeWriteFRA=<-0.000196062,-0.0030007,0.0174547> writtenThrottle=0 beforeWriteThrottle=0 +11:37:45.099 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.092453 cyclicForward=-0.000196062 cyclicAside=-0.0030007 tailCollective=0.508727 autohover=0 collectiveMode=3 +11:37:47.105 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1000 +11:37:47.105 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:47.105 SCRIPT : ERR POWERED FLIGHT: stage=6 height=3.03286 drift=2.84873 speed=0.851508 vertical=-0.803685 up=0.995476 groundContact=0 fuel=1936.48 engine=1 +11:37:47.105 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.42238,5.44806,-0.217248> +11:37:47.106 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0683688,-0.0384021,-0.93027> +11:37:47.106 SCRIPT : ERR POWERED MOTION: offset=<-0.446777,-3.03286,-2.81348> velocity=<0.0259724,-0.803685,0.280145> angularLocal=<-0.0112772,-7.05488e-05,0.000542392> forward=<0.0247105,0.0949434,0.995176> right=<0.999676,0.00377456,-0.0251824> +11:37:47.106 SCRIPT : ERR POWERED INPUT: pilotHooks=1000 vehicleHooks=1000 readback=1 collective=-0.0943738 cyclicF=0.0566559 cyclicR=0.000215439 antiTorque=0.0161976 rotorRPM=196 targetRPM=196 +11:37:47.107 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=38 writtenSequence=1000 applyCallbacks=1621 beforeWriteSequence=999 writtenAgeMs=11.5508 beforeWriteAgeMs=35.9414 +11:37:47.107 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0941814 beforeWriteCollective=-0.0943738 writtenFRA=<0.0572821,0.00027167,4.44128e-05> beforeWriteFRA=<0.0566559,0.000215439,0.0161976> writtenThrottle=0 beforeWriteThrottle=0 +11:37:47.107 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0943738 cyclicForward=0.0566559 cyclicAside=0.000215439 tailCollective=0.508099 autohover=0 collectiveMode=3 +11:37:49.129 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1037 +11:37:49.129 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:49.129 SCRIPT : ERR POWERED FLIGHT: stage=6 height=1.31646 drift=1.47099 speed=1.60901 vertical=-0.822553 up=0.998645 groundContact=0 fuel=1936.4 engine=1 +11:37:49.129 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.42372,2.97636,-0.197854> +11:37:49.130 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0356533,0.0309956,-0.504234> +11:37:49.130 SCRIPT : ERR POWERED MOTION: offset=<-0.376953,-1.31646,-1.42188> velocity=<-0.0793606,-0.822553,-1.38058> angularLocal=<0.0480186,-3.63861e-05,-0.000685654> forward=<0.0248125,0.0519239,0.998343> right=<0.999681,0.00344854,-0.0250251> +11:37:49.130 SCRIPT : ERR POWERED INPUT: pilotHooks=1037 vehicleHooks=1037 readback=1 collective=-0.0852077 cyclicF=0.0437317 cyclicR=0.00186506 antiTorque=0.0212522 rotorRPM=196 targetRPM=196 +11:37:49.130 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=39 writtenSequence=1037 applyCallbacks=1682 beforeWriteSequence=1036 writtenAgeMs=10.6172 beforeWriteAgeMs=32.0391 +11:37:49.130 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0845819 beforeWriteCollective=-0.0852077 writtenFRA=<0.0423459,0.00189112,2.39572e-05> beforeWriteFRA=<0.0437317,0.00186506,0.0212522> writtenThrottle=0 beforeWriteThrottle=0 +11:37:49.131 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0852077 cyclicForward=0.0437317 cyclicAside=0.00186506 tailCollective=0.510626 autohover=0 collectiveMode=3 +11:37:51.153 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1074 +11:37:51.153 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:51.153 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.266356 drift=1.72602 speed=1.23676 vertical=-0.244494 up=0.999914 groundContact=0 fuel=1936.31 engine=1 +11:37:51.153 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<1.74546,0.732895,-0.166513> +11:37:51.153 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0175323,-0.320079,-0.075717> +11:37:51.154 SCRIPT : ERR POWERED MOTION: offset=<-0.178223,-0.266356,1.7168> velocity=<-0.093559,-0.244494,-1.20873> angularLocal=<-0.134112,0.00950075,0.00160604> forward=<0.0304568,0.0127911,0.999454> right=<0.999531,0.00290596,-0.0304963> +11:37:51.154 SCRIPT : ERR POWERED INPUT: pilotHooks=1074 vehicleHooks=1074 readback=1 collective=-0.0504804 cyclicF=0.15 cyclicR=0.00571081 antiTorque=0.0317586 rotorRPM=196 targetRPM=196 +11:37:51.154 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=40 writtenSequence=1074 applyCallbacks=1743 beforeWriteSequence=1074 writtenAgeMs=36.5703 beforeWriteAgeMs=12.4922 +11:37:51.154 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0504804 beforeWriteCollective=-0.0504804 writtenFRA=<0.15,0.00571081,-0.00630134> beforeWriteFRA=<0.15,0.00571081,0.0317586> writtenThrottle=0 beforeWriteThrottle=0 +11:37:51.154 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0536375 cyclicForward=0.15 cyclicAside=0.00602887 tailCollective=0.515633 autohover=0 collectiveMode=3 +11:37:53.179 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1112 +11:37:53.179 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:53.179 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.264519 drift=3.82138 speed=0.867992 vertical=0.058109 up=0.985239 groundContact=1 fuel=1936.22 engine=1 +11:37:53.179 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<7.12377,9.6078,2.21182> +11:37:53.180 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.0190169,0.0251484,0.128174> +11:37:53.180 SCRIPT : ERR POWERED MOTION: offset=<-0.287598,-0.264519,3.81055> velocity=<0.152921,0.058109,-0.852436> angularLocal=<-0.0822499,0.0468411,0.00713556> forward=<0.122274,0.166903,0.978362> right=<0.99234,-0.0380527,-0.117529> +11:37:53.180 SCRIPT : ERR POWERED INPUT: pilotHooks=1112 vehicleHooks=1112 readback=1 collective=-0.0905847 cyclicF=0.15 cyclicR=-0.0510594 antiTorque=-0.0384298 rotorRPM=196 targetRPM=196 +11:37:53.180 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=41 writtenSequence=1112 applyCallbacks=1803 beforeWriteSequence=1111 writtenAgeMs=26.8516 beforeWriteAgeMs=40.2578 +11:37:53.180 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0930892 beforeWriteCollective=-0.0905847 writtenFRA=<0.15,-0.0414519,-0.0681827> beforeWriteFRA=<0.15,-0.0510594,-0.0384298> writtenThrottle=0 beforeWriteThrottle=0 +11:37:53.181 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0905847 cyclicForward=0.15 cyclicAside=-0.0510594 tailCollective=0.480785 autohover=0 collectiveMode=3 +11:37:55.206 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1149 +11:37:55.207 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:55.207 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.2251 drift=5.13374 speed=0.365149 vertical=-0.0409582 up=0.988008 groundContact=1 fuel=1936.13 engine=1 +11:37:55.207 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<20.2386,8.65713,1.99367> +11:37:55.207 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<-0.0156735,-0.035328,0.283627> +11:37:55.207 SCRIPT : ERR POWERED MOTION: offset=<-0.79834,-0.2251,5.07129> velocity=<0.065598,-0.0409582,-0.356866> angularLocal=<0.0474215,0.143847,0.0246953> forward=<0.341989,0.150521,0.927571> right=<0.939504,-0.0343928,-0.340807> +11:37:55.208 SCRIPT : ERR POWERED INPUT: pilotHooks=1149 vehicleHooks=1149 readback=1 collective=-0.117424 cyclicF=0.113335 cyclicR=-0.0211451 antiTorque=-0.224398 rotorRPM=196 targetRPM=196 +11:37:55.208 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=42 writtenSequence=1149 applyCallbacks=1864 beforeWriteSequence=1149 writtenAgeMs=50.0469 beforeWriteAgeMs=23.8281 +11:37:55.208 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.117424 beforeWriteCollective=-0.117424 writtenFRA=<0.113335,-0.0211451,-0.228442> beforeWriteFRA=<0.113335,-0.0211451,-0.224398> writtenThrottle=0 beforeWriteThrottle=0 +11:37:55.208 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.117424 cyclicForward=0.113335 cyclicAside=-0.0211451 tailCollective=0.387801 autohover=0 collectiveMode=3 +11:37:57.218 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1188 +11:37:57.218 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:57.218 SCRIPT : ERR POWERED FLIGHT: stage=6 height=0.00936508 drift=5.51863 speed=0.47862 vertical=-0.4736 up=0.997215 groundContact=1 fuel=1936.04 engine=1 +11:37:57.218 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<22.729,3.82881,1.90731> +11:37:57.219 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.81897,7.80115,1.84692> +11:37:57.219 SCRIPT : ERR POWERED MOTION: offset=<-0.854004,-0.00936508,5.45215> velocity=<0.0250533,-0.4736,0.0644398> angularLocal=<0.0576756,-0.0172138,-0.00185349> forward=<0.38551,0.0667756,0.920284> right=<0.922691,-0.0332085,-0.384108> +11:37:57.219 SCRIPT : ERR POWERED INPUT: pilotHooks=1188 vehicleHooks=1188 readback=1 collective=-0.0199684 cyclicF=0.0114667 cyclicR=-0.0427057 antiTorque=-0.155003 rotorRPM=196 targetRPM=196 +11:37:57.219 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=43 writtenSequence=1188 applyCallbacks=1924 beforeWriteSequence=1187 writtenAgeMs=12.7969 beforeWriteAgeMs=37.125 +11:37:57.219 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-0.0294428 beforeWriteCollective=-0.0199684 writtenFRA=<-0.00338953,-0.0458372,-0.205945> beforeWriteFRA=<0.0114667,-0.0427057,-0.155003> writtenThrottle=0 beforeWriteThrottle=0 +11:37:57.220 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-0.0199684 cyclicForward=0.0114667 cyclicAside=-0.0427057 tailCollective=0.422499 autohover=0 collectiveMode=3 +11:37:59.242 SCRIPT : ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=1 contextActive=1 virtualWrites=1226 +11:37:59.242 SCRIPT : ERR POWERED AUTOHOVER: selected=0 saved=0 enabled=0 exactController=0 +11:37:59.242 SCRIPT : ERR POWERED FLIGHT: stage=6 height=-0.0345993 drift=5.49871 speed=0.0458233 vertical=0.0297209 up=0.996957 groundContact=1 fuel=1935.95 engine=1 +11:37:59.243 SCRIPT : ERR POWERED HEADING: desiredYaw=1.42494 actualYawPitchRoll=<20.1407,4.0239,1.95105> +11:37:59.243 SCRIPT : ERR POWERED ROTOR AXIS: local=<0.0749734,0.994143,0.07784> acceleration=<0.190771,-0.00797935,0.0086119> +11:37:59.243 SCRIPT : ERR POWERED MOTION: offset=<-0.84375,0.0345993,5.43359> velocity=<0.0284138,0.0297209,0.0202263> angularLocal=<0.00299421,-0.065497,-0.000916168> forward=<0.343478,0.0701726,0.936535> right=<0.939128,-0.0339618,-0.341884> +11:37:59.243 SCRIPT : ERR POWERED INPUT: pilotHooks=1226 vehicleHooks=1226 readback=1 collective=-1 cyclicF=0.084945 cyclicR=-0.0502716 antiTorque=-0.630879 rotorRPM=196 targetRPM=196 +11:37:59.243 SCRIPT : ERR POWERED INPUT OBSERVATION: sample=44 writtenSequence=1226 applyCallbacks=1985 beforeWriteSequence=1225 writtenAgeMs=10.5078 beforeWriteAgeMs=21.9297 +11:37:59.244 SCRIPT : ERR POWERED INPUT STAGES: writtenCollective=-1 beforeWriteCollective=-1 writtenFRA=<0.0824868,-0.0465087,-0.167298> beforeWriteFRA=<0.084945,-0.0502716,-0.630879> writtenThrottle=0 beforeWriteThrottle=0 +11:37:59.244 SCRIPT : ERR POWERED ROTOR SIGNALS: collective=-1 cyclicForward=0.084945 cyclicAside=-0.0502716 tailCollective=0.18456 autohover=0 collectiveMode=3 +11:37:59.244 SCRIPT : ERR SMOKE PASS: powered-flight same physical aircraft and living AI pilot land with stable ground contact after powered hover +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: powered-flight native engine off after contact landing; no transform/velocity/health/fuel correction +11:37:59.744 SCRIPT (E): ERR SMOKE FAIL: base native powered-flight feasibility fixture diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-provenance.json b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-provenance.json new file mode 100644 index 0000000..5fa4cc7 --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-provenance.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "kind": "launch_snapshot" +} diff --git a/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-sha256.json b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-sha256.json new file mode 100644 index 0000000..78b2d05 --- /dev/null +++ b/docs/evidence/native-2026-09-19-113557-flight-shutdown-refusal/source-sha256.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "692641c55c5b1cb4d6bbbb1a9c77c3df435a95ef2990fbe161decd5efbf4406f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "9618f18e38e8ea5aaccaa5d2db704535f7ded5ed096dc89f92e91c9434b25147", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "e94b0eb2df417b14168eba128d043a279aaa7de9397a25d1cdbafc29b7ad349a", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "017f5207506d1083deb035544d31648e6ab75d9cc94cd64bc953d60d2c1a6003", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "d1740ddbe8a4bac04aeb0ffc68c2957bc807cbb0a197afd515f0fcb742aac04f", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-104634/archive-sha256.json b/docs/evidence/package-2026-09-19-104634/archive-sha256.json new file mode 100644 index 0000000..41039f1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/archive-sha256.json @@ -0,0 +1,14 @@ +{ + "package-report.json": "093cef531bbb68c69905856d71465262a2b670cd1b877415f44af540fcc39784", + "authored-before.json": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49", + "repository-after.json": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49", + "evidence/core/authored-after.json": "8cf36d0ccfd8d39c6de100a81328f8790b7d5a3bc7dfab671907a059068a3d49", + "evidence/core/launch.json": "e9b93013353732ef8fc6e65c8861224821303967be81a0b2b8ab58855f024ee6", + "evidence/core/launch.log.txt": "b78d4cfe21f1bc4e53aec32b80f5aa35ff049845267bb7d77d0b228d0da42e0c", + "evidence/core/native-child.py": "25add84d0aac4277376c251642de89a572cf38241cda87dfede1169bb0fb3e92", + "evidence/core/native-exit.json": "5fbe7003ca1b1805492d7707113e82890dbf552681457da6b5a99b5479bcd032", + "evidence/core/report.json": "09157ff5ceae5fc7d07fc646a4428807197fffaa7721025fa2c587f894a399b6", + "profiles/core/logs/logs_2026-09-19_10-46-34/console.log.txt": "544206ae74f74a508639a35990004082c075d369add867c0859f2c8397aecfdb", + "profiles/core/logs/logs_2026-09-19_10-46-34/error.log.txt": "04ac7fe60d79abbbd6c5804155f80748f43d6d7fc57a8b1c8658c6829d0785b7", + "profiles/core/logs/logs_2026-09-19_10-46-34/script.log.txt": "6f6e4cf66970cc26bf6a38b542aa6c72bc579251e6864e39df6ae5a2c3f20f71" +} diff --git a/docs/evidence/package-2026-09-19-104634/authored-before.json b/docs/evidence/package-2026-09-19-104634/authored-before.json new file mode 100644 index 0000000..88e63d8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/authored-before.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/authored-after.json b/docs/evidence/package-2026-09-19-104634/evidence/core/authored-after.json new file mode 100644 index 0000000..88e63d8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/authored-after.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/launch.json b/docs/evidence/package-2026-09-19-104634/evidence/core/launch.json new file mode 100644 index 0000000..ea61e6e --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/launch.json @@ -0,0 +1,244 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "25add84d0aac4277376c251642de89a572cf38241cda87dfede1169bb0fb3e92", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-core-20260919-1046/evidence/core/native-child.py", + "/tmp/erri-native-package-core-20260919-1046/evidence/core/native-exit.json", + "/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:/tmp/erri-native-package-core-20260919-1046/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-core-20260919-1046/source/addons", + "-profile", + "Z:/tmp/erri-native-package-core-20260919-1046/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-core-20260919-1046/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-core-20260919-1046/cache/core" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-core-20260919-1046/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-core-20260919-1046/source/addons", + "-profile", + "Z:/tmp/erri-native-package-core-20260919-1046/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-core-20260919-1046/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-core-20260919-1046/cache/core" + ], + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "started_unix": 1789807592.5874286 +} diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/launch.log.txt b/docs/evidence/package-2026-09-19-104634/evidence/core/launch.log.txt new file mode 100644 index 0000000..6b1cf34 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/launch.log.txt @@ -0,0 +1,129 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 116 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/native-child.py b/docs/evidence/package-2026-09-19-104634/evidence/core/native-child.py new file mode 100644 index 0000000..62e620e --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/native-child.py @@ -0,0 +1,7 @@ +import json, subprocess, sys +from pathlib import Path +command = sys.argv[2:] +code = subprocess.call(command) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/native-exit.json b/docs/evidence/package-2026-09-19-104634/evidence/core/native-exit.json new file mode 100644 index 0000000..19d359e --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-core-20260919-1046/source/addons/core/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-core-20260919-1046/source/addons", "-profile", "Z:/tmp/erri-native-package-core-20260919-1046/profiles/core", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-core-20260919-1046/packages/core", "-packAddonCacheDir", "Z:/tmp/erri-native-package-core-20260919-1046/cache/core"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-104634/evidence/core/report.json b/docs/evidence/package-2026-09-19-104634/evidence/core/report.json new file mode 100644 index 0000000..fba3231 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/evidence/core/report.json @@ -0,0 +1,158 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "copied_authored_unchanged": true, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-core-20260919-1046/evidence/core/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "b78d4cfe21f1bc4e53aec32b80f5aa35ff049845267bb7d77d0b228d0da42e0c" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/console.log": { + "bytes": 21412, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "544206ae74f74a508639a35990004082c075d369add867c0859f2c8397aecfdb" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/error.log": { + "bytes": 4891, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "04ac7fe60d79abbbd6c5804155f80748f43d6d7fc57a8b1c8658c6829d0785b7" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/script.log": { + "bytes": 4303, + "errors": [], + "sha256": "6f6e4cf66970cc26bf6a38b542aa6c72bc579251e6864e39df6ae5a2c3f20f71" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "5fbe7003ca1b1805492d7707113e82890dbf552681457da6b5a99b5479bcd032", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 193353, + "sha256": "a071b5a7298543734bb72c72bb87c0dbfc447b3a176870299abd0a3def4fe623" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "c489ce8f3380929a7121b2119c2098a132acfc58a261ef273c3891fa689e114e" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "timeout", + "runner_error": null, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-104634/package-report.json b/docs/evidence/package-2026-09-19-104634/package-report.json new file mode 100644 index 0000000..4911ae6 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/package-report.json @@ -0,0 +1,172 @@ +{ + "all_candidates_created": false, + "kind": "UNQUALIFIED NATIVE PACKAGE ATTEMPT", + "project_order": [ + "core" + ], + "projects": [ + { + "candidate_created": false, + "cleanup_confirmed": true, + "copied_authored_unchanged": true, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-core-20260919-1046/evidence/core/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "b78d4cfe21f1bc4e53aec32b80f5aa35ff049845267bb7d77d0b228d0da42e0c" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/console.log": { + "bytes": 21412, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "544206ae74f74a508639a35990004082c075d369add867c0859f2c8397aecfdb" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/error.log": { + "bytes": 4891, + "errors": [ + "10:46:40.848 RESOURCES (E): ==== Resource leaks ====", + "10:46:40.848 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:46:40.848 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:46:40.848 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:46:40.848 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "04ac7fe60d79abbbd6c5804155f80748f43d6d7fc57a8b1c8658c6829d0785b7" + }, + "/tmp/erri-native-package-core-20260919-1046/profiles/core/logs/logs_2026-09-19_10-46-34/script.log": { + "bytes": 4303, + "errors": [], + "sha256": "6f6e4cf66970cc26bf6a38b542aa6c72bc579251e6864e39df6ae5a2c3f20f71" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "5fbe7003ca1b1805492d7707113e82890dbf552681457da6b5a99b5479bcd032", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 193353, + "sha256": "a071b5a7298543734bb72c72bb87c0dbfc447b3a176870299abd0a3def4fe623" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "c489ce8f3380929a7121b2119c2098a132acfc58a261ef273c3891fa689e114e" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "timeout", + "runner_error": null, + "tool_completion_semantics_verified": false + } + ], + "published": false, + "qualification": "PENDING native contents inspection and packed-only consumption", + "release_qualified": false, + "session": "/tmp/erri-native-package-core-20260919-1046", + "source_repository_unchanged": true +} diff --git a/docs/evidence/package-2026-09-19-104634/repository-after.json b/docs/evidence/package-2026-09-19-104634/repository-after.json new file mode 100644 index 0000000..88e63d8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-104634/repository-after.json @@ -0,0 +1,179 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "01679517db82c5202b8ba19b7828c0ea4ce505e0a6d1aa494cf820fb04719493", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "8699595d8b6e9598eea7faa5b9542729c2886b80f9d64fe050f74512ddf877b9", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "b719e723369ab4f403950c85226e1336eb48e3c127e84530ac1c695eb86bd0f9", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/archive-sha256.json b/docs/evidence/package-2026-09-19-105949-silent/archive-sha256.json new file mode 100644 index 0000000..3a3819d --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/archive-sha256.json @@ -0,0 +1,15 @@ +{ + "package-report.json": "9bc64166fa1a76ba9c861c43a12b9ce522070f9717329f337aa82d68c99e0e25", + "authored-before.json": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692", + "repository-after.json": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692", + "evidence/core/authored-after.json": "f915e612b836a54a24741337b33d763d93a48ae5d0eb80c03c99fcc7f817d692", + "evidence/core/launch.json": "fa133b748f25fb7989d975ea9995b2d15dabe1133a3d144d3f92f98c1b370b51", + "evidence/core/launch.log.txt": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c", + "evidence/core/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/core/native-exit.json": "8d101803de0f004d397595788127fff1b3b21ad474d03790b4190531c1610e4f", + "evidence/core/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/core/report.json": "ad3bcaa12667008112d9c65acb24a6bdb9e7604fc6e004ec7ba5d121eb65c667", + "profiles/core/logs/logs_2026-09-19_10-59-49/console.log.txt": "bc930e6874b0a6c055535c432c9ea1d22c70737813d31aa5fe31c167f9947036", + "profiles/core/logs/logs_2026-09-19_10-59-49/error.log.txt": "01cbcca7de309edd74ae60c71c8601f3aa7af68ede6096c1357da64a68d1d659", + "profiles/core/logs/logs_2026-09-19_10-59-49/script.log.txt": "69272d24a70e812e84a6125b55f0e863401526f8011ea26239dd831161b3f71d" +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/authored-before.json b/docs/evidence/package-2026-09-19-105949-silent/authored-before.json new file mode 100644 index 0000000..2cf3fd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/authored-before.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/authored-after.json b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/authored-after.json new file mode 100644 index 0000000..2cf3fd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/authored-after.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.json b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.json new file mode 100644 index 0000000..60cddf5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.json @@ -0,0 +1,250 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-core-20260919-1100-silent/evidence/core/native-child.py", + "/tmp/erri-native-package-core-20260919-1100-silent/evidence/core/native-exit.json", + "/tmp/erri-native-package-core-20260919-1100-silent/evidence/core/native-prefix-environment.json", + "/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:/tmp/erri-native-package-core-20260919-1100-silent/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/source/addons", + "-profile", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/cache/core", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-core-20260919-1100-silent/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/source/addons", + "-profile", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-core-20260919-1100-silent/cache/core", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789808387.8071334 +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.log.txt b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.log.txt new file mode 100644 index 0000000..697cfd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/launch.log.txt @@ -0,0 +1,130 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-child.py b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-exit.json b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-exit.json new file mode 100644 index 0000000..b8f4c33 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-core-20260919-1100-silent/source/addons/core/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-core-20260919-1100-silent/source/addons", "-profile", "Z:/tmp/erri-native-package-core-20260919-1100-silent/profiles/core", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-core-20260919-1100-silent/packages/core", "-packAddonCacheDir", "Z:/tmp/erri-native-package-core-20260919-1100-silent/cache/core", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-prefix-environment.json b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/evidence/core/report.json b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/report.json new file mode 100644 index 0000000..851aa22 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/evidence/core/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-core-20260919-1100-silent/evidence/core/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/console.log": { + "bytes": 21667, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "bc930e6874b0a6c055535c432c9ea1d22c70737813d31aa5fe31c167f9947036" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/error.log": { + "bytes": 4898, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "01cbcca7de309edd74ae60c71c8601f3aa7af68ede6096c1357da64a68d1d659" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/script.log": { + "bytes": 4310, + "errors": [], + "sha256": "69272d24a70e812e84a6125b55f0e863401526f8011ea26239dd831161b3f71d" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "8d101803de0f004d397595788127fff1b3b21ad474d03790b4190531c1610e4f", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194044, + "sha256": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/package-report.json b/docs/evidence/package-2026-09-19-105949-silent/package-report.json new file mode 100644 index 0000000..c66f6f8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/package-report.json @@ -0,0 +1,175 @@ +{ + "all_candidates_created": false, + "kind": "UNQUALIFIED NATIVE PACKAGE ATTEMPT", + "project_order": [ + "core" + ], + "projects": [ + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-core-20260919-1100-silent/evidence/core/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/console.log": { + "bytes": 21667, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "bc930e6874b0a6c055535c432c9ea1d22c70737813d31aa5fe31c167f9947036" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/error.log": { + "bytes": 4898, + "errors": [ + "10:59:56.169 RESOURCES (E): ==== Resource leaks ====", + "10:59:56.169 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "10:59:56.169 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "10:59:56.169 RESOURCES (E): UI/Imagesets/default.edds 1", + "10:59:56.169 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "01cbcca7de309edd74ae60c71c8601f3aa7af68ede6096c1357da64a68d1d659" + }, + "/tmp/erri-native-package-core-20260919-1100-silent/profiles/core/logs/logs_2026-09-19_10-59-49/script.log": { + "bytes": 4310, + "errors": [], + "sha256": "69272d24a70e812e84a6125b55f0e863401526f8011ea26239dd831161b3f71d" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "8d101803de0f004d397595788127fff1b3b21ad474d03790b4190531c1610e4f", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194044, + "sha256": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + } + ], + "published": false, + "qualification": "PENDING native contents inspection and packed-only consumption", + "release_qualified": false, + "session": "/tmp/erri-native-package-core-20260919-1100-silent", + "source_repository_unchanged": true +} diff --git a/docs/evidence/package-2026-09-19-105949-silent/repository-after.json b/docs/evidence/package-2026-09-19-105949-silent/repository-after.json new file mode 100644 index 0000000..2cf3fd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-105949-silent/repository-after.json @@ -0,0 +1,180 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59f8052c2038072deb90623aad4bd750088499aae1d2754c72a770bf836a800a", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "86425bf8c609fc2030d5b972da30b921da506650f98fc309f8c7491f94e4e7d2", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "672ce8527494bd9d3155b93702ac9812f194f2d5f93c8a8c46c5f690bdd3eb93", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "486e729deba5b66cb990c9a446cc5d98bd92e5a53ab68e29f37a6f0377893a2d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "0fdc087f57afbbe785cdea12810d9c63060d88a778dc90c470733c13e86da94f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "bf41965bed46dd262c8e201940a58fff7cde43bd72c950dedd286acccf4e747d", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7bc71111dd44979c466a544a45aabe9b169f91fa36f1d5bbe0cad3fbab3b25ea", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/archive-sha256.json b/docs/evidence/package-2026-09-19-111731-all/archive-sha256.json new file mode 100644 index 0000000..2f4008d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/archive-sha256.json @@ -0,0 +1,261 @@ +{ + "authored-before.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/ai/authored-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/ai/launch.json": "345b3936e0e5ddda4f9fa2c511cd90387df76380175956f5f3189e32503a553b", + "evidence/ai/launch.log": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9", + "evidence/ai/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/ai/native-exit.json": "0ed258f90c4837d60661dff63082df1e676ca9b26fbfde85bfff3e01d6992869", + "evidence/ai/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/ai/report.json": "457bea5eafe8b745db974b21965addf99cce02b26ec0116e7cfc2bff0be5a2bb", + "evidence/chat/authored-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/chat/launch.json": "e510b8fdfde4ff5fd82aac2f5a7b01952301916ca61bd2dadd3968c28220e1c8", + "evidence/chat/launch.log": "b855978a556ee724dd3bf9f7e7a1af84954f90ee1723763cd9b3715c2d9f3038", + "evidence/chat/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/chat/native-exit.json": "26e9273158c657ad4f7ea561bd11838ad19710012289c96e6fb77893acb2ee85", + "evidence/chat/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/chat/report.json": "0b5c261dbb953db518a28973510b5fc29bce1a8dc2a46e28a0abe007be499464", + "evidence/core/authored-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/core/launch.json": "201abb34e835daf48af847e280652f33835071892ae5f331098a8ddddfe98c7f", + "evidence/core/launch.log": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c", + "evidence/core/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/core/native-exit.json": "236c48ef7df8e7d1d5b8f7dd4887ffebd385dec5cbbcbd69069e45123a633250", + "evidence/core/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/core/report.json": "91a422e0e61c4a2719ea3d1437c4c91df7b6a4c1ed63ee2a984e801aab92530e", + "evidence/intel/authored-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/intel/launch.json": "ca3c310ee8ee5fdd3b304bdca6ceb19fd509f43a9e2f71106e322d74fd18afe7", + "evidence/intel/launch.log": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9", + "evidence/intel/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/intel/native-exit.json": "df18992d781e3f67e1129c5cd2d40112d3bdd265949408caf961febfb5f1376a", + "evidence/intel/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/intel/report.json": "2fb89c325d46399cbf1b05280b4b14a363c59b61b971f5251d164d9a969f688d", + "evidence/map/authored-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "evidence/map/launch.json": "25f669732e5d95fbb2d4a3c64a8fd662ec716fd4eb2a23e8b19a53ed27f10335", + "evidence/map/launch.log": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9", + "evidence/map/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/map/native-exit.json": "47e98e36c76d32d49eb1fc1dc4fea05d14873f0e31921d917df0e98f03112f91", + "evidence/map/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/map/report.json": "df287878e422a3eee8429546e2928571e70d11b172fb2d2f0373101ce29b0e0d", + "package-report.json": "62e4d3cc6900f345924f11a479f48336ce9e2080d2826026720801327d93883a", + "packages/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "packages/ai/data.pak": "c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98", + "packages/ai/resourceDatabase.rdb": "84c7b44e7f3ed6837feb4ac685c934dc974f0658ec8f8d419afb91bb3b1f815c", + "packages/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "packages/chat/data.pak": "19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506", + "packages/chat/resourceDatabase.rdb": "ee33c417a1372f33c2ca25d82456e524964dcc3beddf9d55211ba83059ed8983", + "packages/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "packages/core/data.pak": "68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065", + "packages/core/resourceDatabase.rdb": "1561eb190f1aa221e5c53ddfad6fd18e5ce6fa14e7d32c3ed7c9dec194df8ba4", + "packages/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "packages/intel/data.pak": "362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404", + "packages/intel/resourceDatabase.rdb": "062996b9102e99d19eb680bed04880b0e087d9f8789681c0f3ff8ab6772339ba", + "packages/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a", + "packages/map/data.pak": "be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67", + "packages/map/resourceDatabase.rdb": "0a7ba691475355fd5475410c0a2edb9bedddd1a02a221c324c5a34890a01a993", + "profiles/ai/logs/logs_2026-09-19_11-17-41/console.log.txt": "d02d54848c755351d7d523fe87c8f4bd4e112af877c227bad0f23d4bc2fe52ac", + "profiles/ai/logs/logs_2026-09-19_11-17-41/error.log.txt": "1945f252daad3377ce2247a338dac71837ecb85cb205d11be57347f0e80a19f6", + "profiles/ai/logs/logs_2026-09-19_11-17-41/resourceDatabase.rdb": "b252eb3ace77f2a6bd11719e1c752e2359eb2f6f3a4146bfc622688d6c88077e", + "profiles/ai/logs/logs_2026-09-19_11-17-41/script.log.txt": "28676ea696e8f86ffd8cf3d3b8bc03ce8cb1cfa674fe2b3ce678712a4f73b3ad", + "profiles/chat/logs/logs_2026-09-19_11-18-40/console.log.txt": "749fbabf191eaf6b68461e285404336fb6747453ba73c4cdfdf8b606284d4f83", + "profiles/chat/logs/logs_2026-09-19_11-18-40/error.log.txt": "77946c51ccf1c0999cb91cc358a367a23cf2a2c07a8ef41bb6efd7b34982e304", + "profiles/chat/logs/logs_2026-09-19_11-18-40/resourceDatabase.rdb": "b252eb3ace77f2a6bd11719e1c752e2359eb2f6f3a4146bfc622688d6c88077e", + "profiles/chat/logs/logs_2026-09-19_11-18-40/script.log.txt": "82d7feed49cbfe7edab07472aa03c17f1cc4a48f9d41ef6f9027f7ce4c75c8d0", + "profiles/core/logs/logs_2026-09-19_11-17-31/console.log.txt": "79b335fc3a808462fefdd1542e06816a6b0918320c2eb489b41c6ef2cb016059", + "profiles/core/logs/logs_2026-09-19_11-17-31/error.log.txt": "c073a9adac23da7cb5637cb2370ae8f4fd20f7af832bbc0ed13bb5ebb06f8e52", + "profiles/core/logs/logs_2026-09-19_11-17-31/resourceDatabase.rdb": "b252eb3ace77f2a6bd11719e1c752e2359eb2f6f3a4146bfc622688d6c88077e", + "profiles/core/logs/logs_2026-09-19_11-17-31/script.log.txt": "67df2c55ecc09db3099e211316f803d7773a29aa1f666e2e5020ad5ad56e18e1", + "profiles/intel/logs/logs_2026-09-19_11-18-00/console.log.txt": "a7e3c1b57d78f0b3e1e1c6f3b60aac407ebed5ef484b17b28e084752b68abdab", + "profiles/intel/logs/logs_2026-09-19_11-18-00/error.log.txt": "7f0d620a698e340ec931a1c34535242d1f0ea10b42427e52b0708ce5bd959a6b", + "profiles/intel/logs/logs_2026-09-19_11-18-00/resourceDatabase.rdb": "b252eb3ace77f2a6bd11719e1c752e2359eb2f6f3a4146bfc622688d6c88077e", + "profiles/intel/logs/logs_2026-09-19_11-18-00/script.log.txt": "837157a76442b449a20f5a77ddeecf326d76c9e0147d6588df18a2f6ed32888c", + "profiles/map/logs/logs_2026-09-19_11-18-20/console.log.txt": "8e55f316e6a17e3b0678b7bcc97fea9f457c5c4f38ba76fad35f22245af99b31", + "profiles/map/logs/logs_2026-09-19_11-18-20/error.log.txt": "4ff430cc1f4664a803aaa111bfac29ec39a000bc8291b4f3c55a82e16174156e", + "profiles/map/logs/logs_2026-09-19_11-18-20/resourceDatabase.rdb": "b252eb3ace77f2a6bd11719e1c752e2359eb2f6f3a4146bfc622688d6c88077e", + "profiles/map/logs/logs_2026-09-19_11-18-20/script.log.txt": "98b14947f93b305ec1b8eeebbc01e62eb82006ff794c68cce556d17b68da15bc", + "repository-after.json": "c27df4686ec9c5ba7d6ffe21bef1f71d24bdc11a272c6a275b046cd5d2d8f908", + "review.json": "a004c59dcf0441d9c7959490b53c7381a1da456898ee323c51d16793e4113d61", + "review/ai-pak-inventory.json": "9c36ef0297cfa788f1682391b6e83bb215b410708c6428cff5006747a3c53e58", + "review/chat-pak-inventory.json": "fa55eb3c45035d64bbec00dad99becbfb309a47b7f778cb17a715fb1a4bb34e7", + "review/core-pak-inventory.json": "9dc5e51506e5a837b5143dc0699dc6aae0e8a1a132ca401d5e4e1bb166d47d8b", + "review/intel-pak-inventory.json": "d42c4336ce278ada9b8e6bb983d4ca118c97ae3ce87c269228c0d1fd839f90c5", + "review/map-pak-inventory.json": "58244c812a7e108f9572e1daa4631e3765c5689ed14b0e6295ae6fcd29d3ea62", + "review/pak_inventory.py": "95b0b64ab1f89a2142385ca596016fa131b49d933e31aef42d9bf18e2ec01383", + "source/addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "source/addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "source/addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "source/addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "source/addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "source/addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "source/addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "source/addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "source/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "source/addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "source/addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "source/addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "source/addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "source/addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "source/addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "source/addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "source/addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "source/addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "source/addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "source/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "source/addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "source/addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "source/addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "source/addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "source/addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "source/addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "source/addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "source/addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "source/addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "source/addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "source/addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "source/addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "source/addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "source/addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "source/addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "source/addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "source/addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "source/addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "source/addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "source/addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "source/addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "source/addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "source/addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "source/addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "source/addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "source/addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "source/addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "source/addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "source/addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "source/addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "source/addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "source/addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "source/addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "source/addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "source/addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "source/addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "source/addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "source/addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "source/addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "source/addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "source/addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "source/addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "source/addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "source/addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "source/addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "source/addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "source/addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "source/addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "source/addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "source/addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "source/addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "source/addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "source/addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "source/addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "source/addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "source/addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "source/addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "source/addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "source/addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "source/addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "source/addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "source/addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "source/addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "source/addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "source/addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "source/addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "source/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "source/addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "source/addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "source/addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "source/addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "source/addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "source/addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "source/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "source/addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "source/addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "source/addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "source/addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "source/addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "source/addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "source/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "source/addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "source/addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "source/addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "source/addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "source/addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "source/addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "source/addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "source/addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "source/addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "source/addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "source/addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "source/addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "source/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "source/addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "source/addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "source/addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "source/addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "source/addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "source/addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "source/addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "source/addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "source/addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "source/addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "source/addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "source/addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "source/addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "source/addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "source/addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "source/addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "source/addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "source/addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "source/addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "source/addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "source/addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "source/addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "source/addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "source/addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "source/addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "source/addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "source/addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "source/addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "source/addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "source/addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "source/addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "source/addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "source/addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "source/addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "source/addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/authored-before.json b/docs/evidence/package-2026-09-19-111731-all/authored-before.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/authored-before.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/authored-after.json b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/authored-after.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/authored-after.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.json b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.json new file mode 100644 index 0000000..97e4f03 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.json @@ -0,0 +1,251 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-all-20260919-1115/evidence/ai/native-child.py", + "/tmp/erri-native-package-all-20260919-1115/evidence/ai/native-exit.json", + "/tmp/erri-native-package-all-20260919-1115/evidence/ai/native-prefix-environment.json", + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/ai/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/ai", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/ai", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/ai", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/ai/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/ai", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/ai", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/ai", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789809459.299821 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.log b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.log new file mode 100644 index 0000000..6210b08 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/launch.log @@ -0,0 +1,129 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-child.py b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-exit.json b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-exit.json new file mode 100644 index 0000000..bc47930 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-all-20260919-1115/source/addons/ai/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", "-profile", "Z:/tmp/erri-native-package-all-20260919-1115/profiles/ai", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-all-20260919-1115/packages/ai", "-packAddonCacheDir", "Z:/tmp/erri-native-package-all-20260919-1115/cache/ai", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-prefix-environment.json b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/ai/report.json b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/report.json new file mode 100644 index 0000000..ce40dbc --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/ai/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/ai/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/console.log": { + "bytes": 22763, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "d02d54848c755351d7d523fe87c8f4bd4e112af877c227bad0f23d4bc2fe52ac" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/error.log": { + "bytes": 4888, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "1945f252daad3377ce2247a338dac71837ecb85cb205d11be57347f0e80a19f6" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/script.log": { + "bytes": 4300, + "errors": [], + "sha256": "28676ea696e8f86ffd8cf3d3b8bc03ce8cb1cfa674fe2b3ce678712a4f73b3ad" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "0ed258f90c4837d60661dff63082df1e676ca9b26fbfde85bfff3e01d6992869", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 154, + "sha256": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1" + }, + "data.pak": { + "bytes": 65724, + "sha256": "c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98" + }, + "resourceDatabase.rdb": { + "bytes": 1721, + "sha256": "84c7b44e7f3ed6837feb4ac685c934dc974f0658ec8f8d419afb91bb3b1f815c" + } + }, + "project": "ai", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/authored-after.json b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/authored-after.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/authored-after.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.json b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.json new file mode 100644 index 0000000..07dea83 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.json @@ -0,0 +1,251 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-all-20260919-1115/evidence/chat/native-child.py", + "/tmp/erri-native-package-all-20260919-1115/evidence/chat/native-exit.json", + "/tmp/erri-native-package-all-20260919-1115/evidence/chat/native-prefix-environment.json", + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/chat/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/chat", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/chat", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/chat", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/chat/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/chat", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/chat", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/chat", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789809518.1937006 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.log b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.log new file mode 100644 index 0000000..1e5f1d8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/launch.log @@ -0,0 +1,130 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1c001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1c001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1c001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-child.py b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-exit.json b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-exit.json new file mode 100644 index 0000000..5ebca5f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-all-20260919-1115/source/addons/chat/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", "-profile", "Z:/tmp/erri-native-package-all-20260919-1115/profiles/chat", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-all-20260919-1115/packages/chat", "-packAddonCacheDir", "Z:/tmp/erri-native-package-all-20260919-1115/cache/chat", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-prefix-environment.json b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/chat/report.json b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/report.json new file mode 100644 index 0000000..7602a7a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/chat/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/chat/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "b855978a556ee724dd3bf9f7e7a1af84954f90ee1723763cd9b3715c2d9f3038" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/console.log": { + "bytes": 27132, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "749fbabf191eaf6b68461e285404336fb6747453ba73c4cdfdf8b606284d4f83" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/error.log": { + "bytes": 4890, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "77946c51ccf1c0999cb91cc358a367a23cf2a2c07a8ef41bb6efd7b34982e304" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/script.log": { + "bytes": 4302, + "errors": [], + "sha256": "82d7feed49cbfe7edab07472aa03c17f1cc4a48f9d41ef6f9027f7ce4c75c8d0" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "26e9273158c657ad4f7ea561bd11838ad19710012289c96e6fb77893acb2ee85", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 221, + "sha256": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e" + }, + "data.pak": { + "bytes": 14469, + "sha256": "19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506" + }, + "resourceDatabase.rdb": { + "bytes": 804, + "sha256": "ee33c417a1372f33c2ca25d82456e524964dcc3beddf9d55211ba83059ed8983" + } + }, + "project": "chat", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/authored-after.json b/docs/evidence/package-2026-09-19-111731-all/evidence/core/authored-after.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/authored-after.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.json b/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.json new file mode 100644 index 0000000..b3fc52d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.json @@ -0,0 +1,251 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-all-20260919-1115/evidence/core/native-child.py", + "/tmp/erri-native-package-all-20260919-1115/evidence/core/native-exit.json", + "/tmp/erri-native-package-all-20260919-1115/evidence/core/native-prefix-environment.json", + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/core", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/core", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789809449.7557323 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.log b/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.log new file mode 100644 index 0000000..697cfd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/launch.log @@ -0,0 +1,130 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-child.py b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-exit.json b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-exit.json new file mode 100644 index 0000000..117f801 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-all-20260919-1115/source/addons/core/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", "-profile", "Z:/tmp/erri-native-package-all-20260919-1115/profiles/core", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-all-20260919-1115/packages/core", "-packAddonCacheDir", "Z:/tmp/erri-native-package-all-20260919-1115/cache/core", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-prefix-environment.json b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/core/report.json b/docs/evidence/package-2026-09-19-111731-all/evidence/core/report.json new file mode 100644 index 0000000..9bf75b0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/core/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/core/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/console.log": { + "bytes": 21388, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "79b335fc3a808462fefdd1542e06816a6b0918320c2eb489b41c6ef2cb016059" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/error.log": { + "bytes": 4890, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "c073a9adac23da7cb5637cb2370ae8f4fd20f7af832bbc0ed13bb5ebb06f8e52" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/script.log": { + "bytes": 4302, + "errors": [], + "sha256": "67df2c55ecc09db3099e211316f803d7773a29aa1f666e2e5020ad5ad56e18e1" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "236c48ef7df8e7d1d5b8f7dd4887ffebd385dec5cbbcbd69069e45123a633250", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194081, + "sha256": "68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "1561eb190f1aa221e5c53ddfad6fd18e5ce6fa14e7d32c3ed7c9dec194df8ba4" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/authored-after.json b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/authored-after.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/authored-after.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.json b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.json new file mode 100644 index 0000000..e65ecd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.json @@ -0,0 +1,251 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-all-20260919-1115/evidence/intel/native-child.py", + "/tmp/erri-native-package-all-20260919-1115/evidence/intel/native-exit.json", + "/tmp/erri-native-package-all-20260919-1115/evidence/intel/native-prefix-environment.json", + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/intel/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/intel", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/intel", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/intel", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/intel/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/intel", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/intel", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/intel", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789809478.929066 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.log b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.log new file mode 100644 index 0000000..6210b08 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/launch.log @@ -0,0 +1,129 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-child.py b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-exit.json b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-exit.json new file mode 100644 index 0000000..77fd18d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-all-20260919-1115/source/addons/intel/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", "-profile", "Z:/tmp/erri-native-package-all-20260919-1115/profiles/intel", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-all-20260919-1115/packages/intel", "-packAddonCacheDir", "Z:/tmp/erri-native-package-all-20260919-1115/cache/intel", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-prefix-environment.json b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/intel/report.json b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/report.json new file mode 100644 index 0000000..0aba72e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/intel/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/intel/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/console.log": { + "bytes": 22862, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "a7e3c1b57d78f0b3e1e1c6f3b60aac407ebed5ef484b17b28e084752b68abdab" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/error.log": { + "bytes": 4891, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "7f0d620a698e340ec931a1c34535242d1f0ea10b42427e52b0708ce5bd959a6b" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/script.log": { + "bytes": 4303, + "errors": [], + "sha256": "837157a76442b449a20f5a77ddeecf326d76c9e0147d6588df18a2f6ed32888c" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "df18992d781e3f67e1129c5cd2d40112d3bdd265949408caf961febfb5f1376a", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 160, + "sha256": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe" + }, + "data.pak": { + "bytes": 1141, + "sha256": "362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404" + }, + "resourceDatabase.rdb": { + "bytes": 227, + "sha256": "062996b9102e99d19eb680bed04880b0e087d9f8789681c0f3ff8ab6772339ba" + } + }, + "project": "intel", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/authored-after.json b/docs/evidence/package-2026-09-19-111731-all/evidence/map/authored-after.json new file mode 100644 index 0000000..1be9d8e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/authored-after.json @@ -0,0 +1,181 @@ +{ + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.json b/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.json new file mode 100644 index 0000000..302ee89 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.json @@ -0,0 +1,251 @@ +{ + "authored": { + "addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce", + "addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9", + "addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1", + "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c", + "addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68", + "addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08", + "addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "be55cd9e7dc2b6246fbd4282aa454d06a2ab219e86130b7d76c8a62b15d98e70", + "addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "9fc08476df104d32ff7a39979181d6c21554cf2c222b4463bb321f2bebafb979", + "addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730", + "addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d", + "addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "1a7282d9bd53dcd115d53c9b460ca62d3218931a74635cc516eac1a13b7d9347", + "addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b", + "addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77", + "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "757fc2d7427b397764aa5668402341ef2f6fcf55d256934371305b5a285ad70e", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "12a92181200a68db4c2908b9c4c09f9947b73192efa95861a8b564d404b01cfb", + "addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758", + "addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b", + "addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c", + "addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1", + "addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "e5a5ab42fc79ab37ceea8f161d8c1879661cc188662c1a67032667d55244bfda", + "addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e", + "addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f", + "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": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd", + "addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317", + "addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "1503db1441d8cd7a4f0b45c27ba9623b9fa39f0f81016e180bd2aa1379e1f42a", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Scripts/Game/ERR/ERR_Actions.c": "544429dcccc92097e07a4426289adf6effc37072f80de12d568879bcf98fbcdb", + "addons/core/Scripts/Game/ERR/ERR_Actors.c": "b3c5aabb05f7cf35167bc09b5db51a4ffd89a46658805d6eedbfb80eee30273d", + "addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb", + "addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7", + "addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b", + "addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0", + "addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2", + "addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5", + "addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "b1e1afb7795cb77c0bad94c85abf705b26b9dc2a9400905d80eafd56bdd009d3", + "addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe", + "addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", + "addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/ERR_GameMode.c": "41f2247a45252eaacb580aa5ebb5a85ecfa41e0f940eb0d2c8ea5a3f6c35058e", + "addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794", + "addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be", + "addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24", + "addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", + "addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae", + "addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "1e827bb2fd7f33758b59850e718f5cebf55fcdd4515776456f6046df61a28900", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0", + "addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360", + "addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418", + "addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d", + "addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "d826a9de7b7f565aa21b791a387db26a3aea1514e437b910eaf77d9263f6f82c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c", + "addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c", + "addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2", + "addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "b9a117eef2d5f65fbd792041a2b3e59e38e201bda8e0df8c503e1a1242cfc415", + "addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193", + "addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "815fa44350798229784efffe0d4ec16d3382dd62df149215e49d527cc2961553", + "addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f", + "addons/core/Scripts/Game/ERR/ERR_Observer.c": "8646b486bdbed7984bfe643a5c86d53359a444cd4b5c73ddedaf4fae863313e7", + "addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "e2803ff9198e6213bfcbaefad64a35ae3ffe06846c410cf6da6de7653adbf28d", + "addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721", + "addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "2c9c365b88651f8b12618443638bf52c04e497221592bd483c33447e30468f36", + "addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", + "addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d", + "addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8", + "addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f", + "addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89", + "addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31", + "addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac", + "addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2", + "addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb", + "addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9", + "addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "bbbf35110259cacdac63779604ce22149d1a2198ec4c4cf43f7f3bf57e3241e8", + "addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d", + "addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453", + "addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "482839434b94e7f8c345d5fd96490aeebb765f3dd0c1bb25fceea2f435c0e722", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581", + "addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "fc1a0c7df4fc96da446d7542a45a10fbec1eda1e543ba2f0581cb772277a47c5", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2", + "addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-native-package-all-20260919-1115/evidence/map/native-child.py", + "/tmp/erri-native-package-all-20260919-1115/evidence/map/native-exit.json", + "/tmp/erri-native-package-all-20260919-1115/evidence/map/native-prefix-environment.json", + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/map/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/map", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/map", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/map", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-native-package-all-20260919-1115/source/addons/map/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", + "-profile", + "Z:/tmp/erri-native-package-all-20260919-1115/profiles/map", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-native-package-all-20260919-1115/packages/map", + "-packAddonCacheDir", + "Z:/tmp/erri-native-package-all-20260919-1115/cache/map", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789809498.5563726 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.log b/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.log new file mode 100644 index 0000000..6210b08 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/launch.log @@ -0,0 +1,129 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-child.py b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-exit.json b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-exit.json new file mode 100644 index 0000000..182dc60 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-native-package-all-20260919-1115/source/addons/map/addon.gproj", "-addonsDir", "Z:/tmp/erri-native-package-all-20260919-1115/source/addons", "-profile", "Z:/tmp/erri-native-package-all-20260919-1115/profiles/map", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-native-package-all-20260919-1115/packages/map", "-packAddonCacheDir", "Z:/tmp/erri-native-package-all-20260919-1115/cache/map", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-prefix-environment.json b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/evidence/map/report.json b/docs/evidence/package-2026-09-19-111731-all/evidence/map/report.json new file mode 100644 index 0000000..770260d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/evidence/map/report.json @@ -0,0 +1,161 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/map/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/console.log": { + "bytes": 22791, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "8e55f316e6a17e3b0678b7bcc97fea9f457c5c4f38ba76fad35f22245af99b31" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/error.log": { + "bytes": 4889, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "4ff430cc1f4664a803aaa111bfac29ec39a000bc8291b4f3c55a82e16174156e" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/script.log": { + "bytes": 4301, + "errors": [], + "sha256": "98b14947f93b305ec1b8eeebbc01e62eb82006ff794c68cce556d17b68da15bc" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "47e98e36c76d32d49eb1fc1dc4fea05d14873f0e31921d917df0e98f03112f91", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 156, + "sha256": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "data.pak": { + "bytes": 5751, + "sha256": "be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67" + }, + "resourceDatabase.rdb": { + "bytes": 750, + "sha256": "0a7ba691475355fd5475410c0a2edb9bedddd1a02a221c324c5a34890a01a993" + } + }, + "project": "map", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-2026-09-19-111731-all/package-report.json b/docs/evidence/package-2026-09-19-111731-all/package-report.json new file mode 100644 index 0000000..bc3dd95 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/package-report.json @@ -0,0 +1,826 @@ +{ + "all_candidates_created": false, + "continue_on_failure": true, + "kind": "UNQUALIFIED NATIVE PACKAGE ATTEMPT", + "project_order": [ + "core", + "ai", + "intel", + "map", + "chat" + ], + "projects": [ + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/core/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "9f4eb2a67b14e658076ab588cc75461eb0788d2cb7a76d9b1d4de90d0cc46e9c" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/console.log": { + "bytes": 21388, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "79b335fc3a808462fefdd1542e06816a6b0918320c2eb489b41c6ef2cb016059" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/error.log": { + "bytes": 4890, + "errors": [ + "11:17:38.212 RESOURCES (E): ==== Resource leaks ====", + "11:17:38.212 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:38.212 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:38.212 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:38.212 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "c073a9adac23da7cb5637cb2370ae8f4fd20f7af832bbc0ed13bb5ebb06f8e52" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/core/logs/logs_2026-09-19_11-17-31/script.log": { + "bytes": 4302, + "errors": [], + "sha256": "67df2c55ecc09db3099e211316f803d7773a29aa1f666e2e5020ad5ad56e18e1" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "236c48ef7df8e7d1d5b8f7dd4887ffebd385dec5cbbcbd69069e45123a633250", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194081, + "sha256": "68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "1561eb190f1aa221e5c53ddfad6fd18e5ce6fa14e7d32c3ed7c9dec194df8ba4" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + }, + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/ai/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/console.log": { + "bytes": 22763, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "d02d54848c755351d7d523fe87c8f4bd4e112af877c227bad0f23d4bc2fe52ac" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/error.log": { + "bytes": 4888, + "errors": [ + "11:17:47.874 RESOURCES (E): ==== Resource leaks ====", + "11:17:47.874 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:17:47.874 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:17:47.874 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:17:47.874 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "1945f252daad3377ce2247a338dac71837ecb85cb205d11be57347f0e80a19f6" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/ai/logs/logs_2026-09-19_11-17-41/script.log": { + "bytes": 4300, + "errors": [], + "sha256": "28676ea696e8f86ffd8cf3d3b8bc03ce8cb1cfa674fe2b3ce678712a4f73b3ad" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "0ed258f90c4837d60661dff63082df1e676ca9b26fbfde85bfff3e01d6992869", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 154, + "sha256": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1" + }, + "data.pak": { + "bytes": 65724, + "sha256": "c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98" + }, + "resourceDatabase.rdb": { + "bytes": 1721, + "sha256": "84c7b44e7f3ed6837feb4ac685c934dc974f0658ec8f8d419afb91bb3b1f815c" + } + }, + "project": "ai", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + }, + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/intel/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/console.log": { + "bytes": 22862, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "a7e3c1b57d78f0b3e1e1c6f3b60aac407ebed5ef484b17b28e084752b68abdab" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/error.log": { + "bytes": 4891, + "errors": [ + "11:18:07.477 RESOURCES (E): ==== Resource leaks ====", + "11:18:07.477 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:07.477 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:07.477 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:07.477 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "7f0d620a698e340ec931a1c34535242d1f0ea10b42427e52b0708ce5bd959a6b" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/intel/logs/logs_2026-09-19_11-18-00/script.log": { + "bytes": 4303, + "errors": [], + "sha256": "837157a76442b449a20f5a77ddeecf326d76c9e0147d6588df18a2f6ed32888c" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "df18992d781e3f67e1129c5cd2d40112d3bdd265949408caf961febfb5f1376a", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 160, + "sha256": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe" + }, + "data.pak": { + "bytes": 1141, + "sha256": "362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404" + }, + "resourceDatabase.rdb": { + "bytes": 227, + "sha256": "062996b9102e99d19eb680bed04880b0e087d9f8789681c0f3ff8ab6772339ba" + } + }, + "project": "intel", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + }, + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/map/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/console.log": { + "bytes": 22791, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "8e55f316e6a17e3b0678b7bcc97fea9f457c5c4f38ba76fad35f22245af99b31" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/error.log": { + "bytes": 4889, + "errors": [ + "11:18:27.510 RESOURCES (E): ==== Resource leaks ====", + "11:18:27.510 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:27.510 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:27.510 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:27.510 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "4ff430cc1f4664a803aaa111bfac29ec39a000bc8291b4f3c55a82e16174156e" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/map/logs/logs_2026-09-19_11-18-20/script.log": { + "bytes": 4301, + "errors": [], + "sha256": "98b14947f93b305ec1b8eeebbc01e62eb82006ff794c68cce556d17b68da15bc" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "47e98e36c76d32d49eb1fc1dc4fea05d14873f0e31921d917df0e98f03112f91", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 156, + "sha256": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "data.pak": { + "bytes": 5751, + "sha256": "be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67" + }, + "resourceDatabase.rdb": { + "bytes": 750, + "sha256": "0a7ba691475355fd5475410c0a2edb9bedddd1a02a221c324c5a34890a01a993" + } + }, + "project": "map", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + }, + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-native-package-all-20260919-1115/evidence/chat/launch.log": { + "bytes": 9204, + "errors": [], + "sha256": "b855978a556ee724dd3bf9f7e7a1af84954f90ee1723763cd9b3715c2d9f3038" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/console.log": { + "bytes": 27132, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "749fbabf191eaf6b68461e285404336fb6747453ba73c4cdfdf8b606284d4f83" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/error.log": { + "bytes": 4890, + "errors": [ + "11:18:48.091 RESOURCES (E): ==== Resource leaks ====", + "11:18:48.091 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:18:48.091 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:18:48.091 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:18:48.091 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "77946c51ccf1c0999cb91cc358a367a23cf2a2c07a8ef41bb6efd7b34982e304" + }, + "/tmp/erri-native-package-all-20260919-1115/profiles/chat/logs/logs_2026-09-19_11-18-40/script.log": { + "bytes": 4302, + "errors": [], + "sha256": "82d7feed49cbfe7edab07472aa03c17f1cc4a48f9d41ef6f9027f7ce4c75c8d0" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "26e9273158c657ad4f7ea561bd11838ad19710012289c96e6fb77893acb2ee85", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 221, + "sha256": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e" + }, + "data.pak": { + "bytes": 14469, + "sha256": "19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506" + }, + "resourceDatabase.rdb": { + "bytes": 804, + "sha256": "ee33c417a1372f33c2ca25d82456e524964dcc3beddf9d55211ba83059ed8983" + } + }, + "project": "chat", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + } + ], + "published": false, + "qualification": "PENDING native contents inspection and packed-only consumption", + "release_qualified": false, + "session": "/tmp/erri-native-package-all-20260919-1115", + "skipped_projects": [], + "source_repository_unchanged": true, + "stopped_reason": null +} diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/ai/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/packages/ai/addon.gproj new file mode 100644 index 0000000..ec3100b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/packages/ai/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Ai" + GUID "5192138CB9D5B911" + TITLE "Escapists Rereintroduced - Ai" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/ai/data.pak b/docs/evidence/package-2026-09-19-111731-all/packages/ai/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..46fcb90aacf52b05af6d5b855d3fb20f17e5a9c0 GIT binary patch literal 65724 zcmd?PWl&ww^DPJjcMrkc-Q696yW2%CT-+_VySux)ySuwP1P>O1On&-*Gw;op`8uag z)v3MD+N--)ch`~Hl8P$d!N9?qltjc>q$Nbe!N9=qzx-PRaI3CMU9;Ri~wg+VlQ}NTSH@YJ1ggZEl~x6oSptL`wv!5 z2@XyUHf}BvPBwNHX14#bidh;v8k;%;9G#fNjBV|Wtt{-AB(3a>f&Vu2PZJ`JwjN9> z01FqOvEzSX|FW(GH1+^E8h!^kIvYERIRf1N;mZGyOmecYO0u(wu#0nuNN{m-NdBLM zmHaEP70B*Cx%(eU|118#v{X@3{Fiz@@ILTNOvEB~#8zfN0I?&;8RSU(_w)off{2~$ z0RS^%V<5;5Ky2kiYzK0*H3kx!xj0(cSr9uL+W`2dO#HnNI|6_pV>8Bo zP>O-<%&i=4iR~Rhe+ex95?TDMynjOJiA`Lb|6)x+7Is#i0OG$+yZj{vf}EU)LFUBf zKr0JNXJS)hdt(zTpp~-+BfKfl`0qUl6%|8i0MN=5WdFB}L|l!nfd59od%?r~HRKHV zTVG~>2|&iqe=F4dABAjZ1~5~#vNHt`3lKA~@WI2wIXV9`05MB|sSWkNuy!Cf`hPET zvNv|K1DJ_8|Me0C`Wr6bFCOFpF#FHg%E{OS_}?MW%JpyXN>+b6;NJlIf7a>W@c%9Y z{twUz;OJ^)`WO2jLzaMlg!!M*KeeWThx;1{oRv8-^?%LM{1wXC#nFzK^uJT2eE$ah zb(@&sZ<_w?F)=?eEA!vuFU>!B;Qn7EfP;hk59dFreEwte-=Y1FNr0V&l^uZof9k^6 z%F*1>*cL!+_HXQeeffWe{r}YolK(}~|8c|)MEtLLV*7tc{a>s9Rh8J=oA_Uf5(^S@ z{A2X5>J=nr{r~F8|E3;4F*D8osjU8{;s2hI|81q905Ru3GxOhM{;L`OQLKNvjgy(! z>2EjKnK}J4u>UnV|7cM6tZqCT(5B>l;~U)yG=7|gME&N^eN+i(JzWK7X=|y5#ZI~i zf9zFkvWsty@%(9kmhf0*Qj&6N3Pn4&9 z4|-Qs4UPavVidjVKNWtdPp`YgQ?7q?6YXn|%Ndq&T@Ck05i(QUGe}}#+B{LLplzQ_ z=@XdBk@t;Rk%;-Tio)!fcuJFbACdaZFE~57UJ)0?4C$S_OQD`UMF)qrER)lpWN`LH zSQ3IlfA*rxKs|$kmvc*bGHUUNv0cW)zYSDK@fkOo#jvl~wisA=PSHwlc|Y*+Qkab9 zI)&_DrEA;3i`m5$JwAC9Hm+{$@2a886b_M{Cm>N*B8 zG|*ur)rJi}0P#XSy?&FrntQDNYcin8*NK&<{fh%pBdi}Sr->nv!wM?)qB?P@SQdIg zxyG@NW9}i%lijZbsb5eCm@G1p-5Ts78lqaFI-QQl&oQC`>8l>vND76Q{O!6+j^Fg2 z*k>@a<-vQ}l9!e7EBaFfr>1W(lg^bqI12a#qu_cBjI zDm_hv`+gjfEg!HMj=5AU)MgWf@W{g#!7JJpe?+VDd0S`=E$o^yOis{8_$rFWZ>YRSjIdatwnmY)AMdsJm~^t>x3;TAuNB{hw+s#9bu| zR=40_fOJ&B8!?E53AS5pxYylN*1{A_W+nq^s%k5q$Z^xQP%*fQ4oD1uVFLX%+hYS{ zF7!+#6Nhk*youIRTpc93?i;je3^jIdFf%XnEBi~kyfvZpMMxD%d7E`wIqw4)hbU-5 zi_rwuN8fweIUxF0JBGsKMkEd{!@m<$ktw<-mdZwNt=AXNX}U-9eh=)Gw_rTf{Z z^3`ZFM%D{~%v8x;k~3Jj14aE@rQ>?n==UV#DicA{{taAY$yOeeKSv*X54MJRO}2_6 z7ruwMN|Nuq(C$dHuZStouLM$}{{+Xl&{t=RDhE2&y?KvM@-T@nz@;>A@*ptHtE=tY zbwG&3qy|g->9DtR(RSUouy04Uj+~oD)BUsn!5SpXy4;9LHeD&_I zO0mR@1eRizkyhHxx$awQ2W(S>fTevs6A>&DQGzH&#|;Kp5R3zD3RFyeY_Jz+C&P%3 zHF0*c1px4jiaoK!I4?Wb4p|S5m+)U&fym;u=2Q~6YLGdjVYNP zG&2@rin!Dq)BpDXyi6T8ldi3GaU>thKuD^UP9Y&pkDa^Kuk z4J&W!#MBhPfI?PcoZXz@D@9x3l)gj`-VYarMbz%Lc##Y7OJYA}3?k_c;{`VSpNpmmCQb+Ui2{SX3UfMI|i+%;ZkA)E_A^jk508r(V1U zSxaaBjZfd&8@tw<$%@@As_;1m0`SJr{K7c0cDNtb#UzOp-RqCX$A3QS&R_0LJcH@y z-=BPFf@hrzQX^fUkjbGOM56J)Sk(K<3}#slUovlH+X>!zxuI@!Ckj1F%CB{FAFHfY znM5L+8w>kj$@B>zOV*4GP>fa4ZW_j%G3W zS$$1c-psU8dR8d!vafNvyEOaJ1}%SzworVvl~A7&DJYlcr)56k**G#($90eYnJKDb z=pH)LS5&-s5X|-Gr-D?M-;mv;cRASx%tQ0QDD7_=HY`3QLKNWswb!zsOpZPC6gVQ@QYrb4?5lkE-C4mpilr zh(_Jjqs88YK%1$46R3@iwM<&;f?-m6>KZQpu7F_35e5J$o;NA5nJKEcF>NpUJl}By zVqjatv#x(4$FKwsVQ5hmY<%WOlvtMUy(Jw?K9Iov5l3~EU*W;eq`CCJLRu$$(;_Nb zFLdIRYUW8eYdGmsNgvWnMTH%ioXOa6Hs%6sjBs{u*BzqqyTlw@IZ-GLkKVY2n| zV+RsEvY>A`8#k(?f|Ip?%RW^=Zuj$O<)y=N5(gLX(3`e(JG9yK@}myhj6Q-V+-(!v zsvnebH|E@G4cy@4$8iE;N5IE_eCy`?W0+n^=kTshpJy;+Ea8;zR9dQ7U57OFTU2)6tDBb7f&bZocv(b#Mca3}!Q7B)?q^YY0m zK8TCTJnb1-3Zxs10pz4T5{BR0&={ltG@>oHJzL16CuN9h8R!7r{a#sTp*BY#vJbbs zy;hydxo&QUWVUZBu$grA_GC!n==fuEcN!Od<{TIiV$Daduw$7h5A7X21dWG1-b2D{ zdJ7UgWhowLkv@mlMf*IBA6zZP2KzIQ@merRBM;+uX}hC&93yQN7J`Io&>zIEGAd}5 z48gN6hoIR;Ir%n7TC^d?E|Gq9kv|@Nhl!wu(E+#Ug6`i@UkHWvV*Qe3#?dmo@C~Ma zblE_fzdYC3N47#esbXqREBQ?0J4GDkkEl6Np(prV`n9T=oKLh3M7n3GzMPOaPi13- z6EK0g%MjVG*?-m&raaI-!A>-+lCo>{ZJtf#x%H|TM|wS9;=~x`iB*xIn1lcx!t@RJ1zqPK>`B!Em{H_Ryh}eQrA-6o zS5^Fi7i_L3n?`P9e4|G7L%U7x43h*HWfffmJ(po=6}0pV|^&7D$X1rXb_3 zhrL3SCon>`SzYIJn=vGbJxy@qokL^7MO82v;6#Ado)6x03R?-YL`JXxP9Ha)I<9!r z!UCuePbi_Gm;AyBtsmLw&N z9FV6-H%yfMb-oGFA^~Y(31@{q2vwHja|<9tX>SA`X%|Oy2v!^@ZKUEG1PB)Jm#3C3 zsH2x=U$*oNV+4$)A!>}JwpX1w2Qn|UDl1^m$t9>(t%H5kVut2i3pa}f4B%vo zucY~e_!3r)3Gv(B2C&>q>;=A$jmJ!Eq7hbv%#rbi>Gx` zUY8&KGxb_uy#S?&%D+FwpJdU-k;M{4B)1++UiKSVaEvK;mp;ohvif5^mY`hQm8k|xFh`w?l0DO@MP(^i*qzN}ehi|d z?KevG9$1Z=88(p72gU$+9_|5c#RPog&XGJ^s)yoy-V?E2wsRwh<^7hUdie_rk(hN$ zd~0g4nc@nfB6Yn|a!BHSLuJUy1_7|cL2daet7lWsmk&0fbM0a2_dKIa@f~?C<4j}s zO$Qy4cG#Dg5B0&5`t!4YE__T$GODX&s$C}jSc^fVjp)hcyakngpLx?W?re^u_jjf% zT*Yv7tl!z&(d~E$0c}{c5IxESThZV&x$3+(E6B@=KNISo5N^`1K@;l97F$9Tg3p-@ zt7Qk7&fBa{3WKyd`+qq@t!(%vvsV5ZaD6_XCW+}hx?1CGMW0q>F0s2oF5@aFWLQO< z1_jnIGSp2e55`HE1k#6EL|K?XHU9pcM(N%5Z;2B7YMy19jHldi*g9gyEmP{Z(8q9CW^o z^~rkbF=4pgu{Tn8_lv;vo8&R#)V9CXpTliBenzz(b78x7n?dvLr!w)UEdMg~S`wIM z^ule)BpnZU(>vku@C8-#LP@8}#Vxxb`)1}8#YB{?kHpB@Rg;NAjjsFRVCKmRA+qu` zmmr;P?uObp`fca>_Ujiv1;u!ZWJiXJQJ z-ZJ*>BK2=WHH-eP#N6!~n%CE5!8Xwl#^HkTp&~^CrT&|Cn#XiNgzD9(T#Eh%rK3db z6e*HRn5pG9wb?JDIV7Kl^j{Q3M5adKR2hr}%lLWNdJqdWg2@Z|e}T9)h*Pvtl-f|D z#L3`ed7jVm{=7S8u#F?syb(Rrzm}P^ z7A?fU6Zwic`$;WCYt9e<2&mgD^2a+|tdO#_HusE|JS%AZ7ungjst#X9+I`1OuNLj@gQ`_FigCe`rwCIccVe3(}mN|=A zh2tg8=ICdtFC*|YUm_@J5RsV~M=+ch56+Sf;=QJlj^nJd^4O_Q&B1ehh(={Xue7Kj z50+>>>>m#byU<$4d1gn4$nghOyy)#B+{wZ$V@laNVY3TeV`Bs_d*|99u!qX@mc1Tp zBFufe=;=5dNKa3+b8C|{_EEh*kv~f(k6&b86bWji?Rf3$a20Iws9qd-03MWsWF;_7 zj;`r?Gwuqx@v}2))rMtJR8oQcce{QmFL=&1Q_1&);su$TOC{d9)kt*#KxN@kN&uV4 zxVb0Z$^5T2Sbr8$<0mi5c%hy&Pza^IN~E>PxW;V$tWNSIDbai8SR`_bE-;kl zeP>4t22-3eB1vWew+>up#x;)oHeC!H+UMBc9PU;@zpd`4cVqa%G)k|9C5p0Rdjq_= z<^|t!C1OHcS5AkhRKPpvXVDWs+t+vgU_itDZ1`a6kMe3v}^ z8*<2cfYsmIO7|vP%%YPnJ4TApp;bPR za$>c$yNN+%LK0ale-j^>O?S6ATVQa~(Uu!wZGhWpW5%LtV!&wJsodw7e}}IdaYKbs zPn_dwmn7;cshwAg-BBUjU`@Z1YEp~@XR5}Sdz;4RVdE^jAULHiGKxJRm=sdf#&O(D zJMzw+s!lP($OQ6zO;7SQG_Uyd>UDF_(6Y@PDp$4HxY5rx*vZoCVgYnxJ|H-C)Ey87 zw|xEPmo-t`wajxF1Xq`!zF1 z{vvV0D`$E3-2;;LBpLU~i`W*0!=3Ew1wj}J0?lg`M25TXo8-C~Z0OTNwzNUL`9ZAE z5M3!&l%;$@fTe(0oAaws!3 z(~ZnJ%%)g#;d}!WJ-y5UD`|*8hp5-;6=-@F@~3WeAmR?j3X1*qdKWd35d^t79l2Q2 zleraUDzVn@-cE7zRjHgI$Fl00O$O&hkP z-OD5#G>( zi6XfzVu}0PIjm5j4fE=}2_OF> z@@Xq6vd$AwT<@?%Jm^+YaU`#NRNq5%j4@~N5$9Cy#4ghdBV+1DG#9i>c1v>-=X zu`YcXDK7%AYSdlNop_GFh>D|j@;lN02*#QPoScpKH@WUOsk#i z5FVk(v3PiXHy-nrC5%17UbxHCoQO3@<6zlI!^Ipe?>L(?8LK_RI3|!D0S*&`C=~7x zcAfiyGZa7ahB8W@iDV+Hj+TstISkU6M1vK4uzzlp;x>&2GckDGY9MhNKk1%|s9-P~ z+Ix+hdh8OJplF2g3sQKRd)tvjWG=zg<65y42>0%)RiuoJxtz~3Q-@Z)8iMj3UEUIP zgDl=^X(h}#1`0j|1uChn-GKKoo4JZBXdg1xm71`3C0Qcv?U!LV%!72(@Cn$c_(T6$ zdI)~F)sxrLV5$VP%-3UhvkrAdie#x^zONA9_l6I@9~vSpEt=VTxO%$YO|IwB!BWB7 zZwoWKm1z^RP{2PFu*$PpL(FFX2)m#eTQn532eW)L)aDz!zMO+G9bfJCPd!q;8~ z`(iYrz==xe0!u>u6v|+Rp5~=1d_6dR*H$)zEhoJ-$P}auZoB+e9q1a8V`hHw&1x=g;Fv zN+hTh!&%~Z8E!A5lUtd<_a}vo-#8b3@lY#+Wx9Q4^3LYck{n%QX}+=d^o>K7N@Kp@B6p1E%fPHFW4I_=}_&x9Fhu00-n0?6BwzgThcx68QSdo54V{{6B2T>bV7H5M<^u~@!3`Zpc z&YAlD(2OgUg}T5y4)K1qxKuuMKXQY=GMchQptvhOx&MM`1bYkvWYR328M3M=x+6Bh zi1u)lRRu;r6{&U!j7~ID$qcwp$f2qaMdOS{!wuZV1IcnWzd}fH2r^BJZkXLpf5h(M zgSGj;tQV#~@QpVN8Ai103DZlt9en%fAhYh!X>-73q*eBp;7tim?kGb)`IcIBBD+!p zj0;4e^!sf?{WYG#dq^DL;KdW)7^gwJWNkB>!a`T?`5gOf;TCpJBWplP;h6a+qZ+gR zpReGvR2@Hy@4kRP&f==fkySZ2Wl1u3P}2f{0b9JN`^kH#CM*4Tig=Yr1D z1T0e7GQD94*@V@laFD}d;cZ5ta?m(qw#|846mF02f+c{8ptu+E8P_lb$}RdLe#$^y z&qn7lRqL`nAsr)AGE`w*(lRSLIE2BiW}ReUw#`?-_QBXH?gY2+fp0aq2=%aIuTKvq zqxFmJ<_5Pi^e@|S&L*gdQ-&lMh6$sv%lMl)X6~V93LNg?br_`M#!~O6q*?j#A{KY} zVvAp!3u*-Ns$2Y`(=*Jo2cH(Z6Fga=(OaXJB_@%7c!^ z!#o56QbDy~N)}YxsiN=B#x5yMKZ{zD~l!x|TT*ypT`1cYMKY?EI>-YQejbB)U$*_2S)YPTVHr`Z8%GL+o6%r>u zo9v)eFllf?TZ6DNv><`sgv+W^I4SbQ+)TRk>SFSMFJBV+Zv&&zVyX+`YZT6n{ z+UEpVZRT~eX)wuM84$0-dUXbS@^&L@iL71Bk%K^PXUB~x>ZpW3J$$&(_r;L9Xg=$> zC@kwv$)0%S5x!le0sI?V*>p~FVgQ?uT$gn2+F`wvFYMF2Wy&4G8;RH(>1Trmp!l~v z$iD=MohvzI2+E?=9#QB`NvL=5^nszfIS6$cuG*8v9(wc)m)~!)2`;fQ>!8)W{@QWm z_zXbF*0YJDh(!;NV7W5BdDsHpTx^S{6Q996NR;d=Q}XnF4VdoVi&fPTL`Y;Hagcl5 zAT~{FK?-^Jwf(;Qa`JY+IL)*-#h;g@3{@;CH0bSm=ZibutcCgJaXrqcgoFO1B;;v;L?xPJr#3_Qu)mCG_FU)}AqgS5k2qjz_IU(MYjci_n&( z2pTzEw1taJJE1?_B{?t=>~S_}S#xv$`8o(%WN2|L&bb{!Isvg%*BJzVm+g0QuNfw2 z!YD0mHDaud&!*}vz;crpDln9PpQU1X0!x)O0Uz(#4)XhOFgvH^QG@9rnFVBn~hUPXgzAX^9BnBI0v|r&yehh{GfSY)sZ+(1qOc;Hut7qLs(^u zVq}~_utP5x(8qVMN-?x-CUvt`$K-e0cjRn8-wPVekGR&O1^`_WJ(A?)@o*gv=??+l z5+c>!`%_8jUgSO7ks=F~NQ_P4s<%8Z8nyj?*wD<~OyFL$&^PnHr2M+Q|>7@kO{*<#Z zpdO`Qx=-JyV<%TxsHep4o!gN&U`bC6Pvp(}IHR=VPH<|WAnrD(Tjs^#_hMciw2eLI z;f1-%e?DytM>EbC(#LxX4583yY%QE#07p(qiXpO4I%uBvFZVl({mNY~-66NG5gZb5 zNp44H6V78kPel{83|-32GQ!py_Zs@AelFb{VNn-j%GOniB)*wyS27%*@!LwcLfLAR zMXHYaPen;gORp$Pz*pSH8&uTnFN+!7U5noHs}{3wNPS|Ae^ORVYvwnzZzY{d8R&Rp zb{qYp6!(8}71(>1tA8gbT(KLU9ExA{gf(Uh@X|fR_q}rz%X5{-jD_dNBt}JrXj2sD zBvum?)$o4E=z3KMQthFHU3s*w=?*cMw0Iq$D0byQY*4kFYSxJNigt&eJghhXcM)<) z*qGKEov%b2ETa_#zeV=_7{^N5&5*$lr7VAEffp4^ca}QQwwH3kVwuOL$f=EO>iO0N zFr10b#J%E@^XaW$y<8NLG<|E`>nr=dlJQEQ%2$-njaR%u0_Rg^Y;C{OdetBim27p_ zr@u1wTgNIeE$xHA*8*S{sGXI|1)HhXHJMUZAxqk?hY98S1;0wvWE9oCoax?OS%CE^ zj)zMg6QILI*g#3KcPJtmPW5(YhRIdUR--<{$8|&bY{6Cfhi0aFM1#KyS(ZyNXo4dk zN+I{Wk_Z1%u2?tv&`XZZsJ43G;qUVeMs?vpTxyjb#_iL`mZ)|R6dQ}@VKaS&=~`tY zRB}8ZmfG+4ZvYp5`8r*-ikqMjP-mDF?>v7_J;j1bbnjMUh<9t{SOP> zqt>t8&+l2E-eSB_Z@%Gs&*5^hPx$xdf3CM!cp>69vfU#yYgU}$8VlsljB;w{hed7N z)c)w25s<*p-9ZfkcgdjPK%5*~5D(To$mYcH>q3E-@WOxUl>#Rm0X( zQ|Z$=HQIPb7T!YE)uYit;l)%A*xMK6pM2#L9;*Ejs1}bgvgCWqEN`GxPM(w3gW(GL zyq?(PG~YB#(g0#CkSk-{hvy!1+~3j|{j9ZPpW zuf*^&<11!(=)JkK9ZAF_xw=Om#dxZk80AXwUeeE|ZfuVj9c_`Mfc5$1Rl36~YU-xmR$V6&c<%O&SI?T6 z9eq@TgiGG@7F}v6z7fL2X^PNbc%U+5o(_ZH7L)TG%`1U~}7h&7q z+i-z5f_(mcPjdoCSz>-cb>x?9+S^3OCP64^MIPU8bei#Px!oU{eeC*lQZN^24ohFA`Z2h=lq+)+){w3oH{YYlf@k z^K^UiO*Q@DBCU|G4jK8rnnWjA!vKJI%9B zI_6&ZeMtbsR2TMXb^H{&JwUEYAG64=#xV>?qoW1IwFXoY+Ixx>s~hS3hy#whTjTp0 zMNA{W^DGBp!G{%bzfed@y42L^xU_}tkLq6o5o)K;27-rE;J*#4wT&etKE|!H*ftm2gKbitL z(nW=i7YPF$cK+LjhLd7yNYWho5zjgVl`+_)1nY4eMkfsM>ds6Vw(0?tyRo$Q3DnB& z71^=~!FPW(@&BY9rx?a5cHm=6hhgj7oe7H|ZA%_aP4gloj7?t%tHteHFi*P200P5D zY1>4R0*}39>?|Ef93uj{k$O)K@OCSYN1n(i#sr&-_s|7g_pa5}?1sOGq>r-EABLdL zb9II;f{@J6Ctb+o>FkvlpeJMq|WFT`AgJ%lpts4?KBC3dJ z+oiyRIS3Wd!9qBha!gi(-7`7dVeg64z_4 z^H!p}eXH0(%DyOyb#O3)f%CV-*Wy+821u5*f=5}34|F^)NHZ$e*@LJ|KJf)%nq@J}#y zITc_A$JOWV{nu7@R9?FVY+q>ep^I`=pMx{OyOI!Vf4%VN*uEPAUufH}dIsd)SUm;p z;WT#jKT?)n{XV8yA9CqFA-?U=jkss|sD4-6V#e$`)$GF1A(uYOr-Dbf&6l7R z)o&vM-E%rPTrRnaYGQqMA99b|i4N1;z4**THAWHAQJzL02gq`Acy*GUkA0c>u8*J} zH|9f^wDEUelNY4t;;zj;V3gd9!6n`7o5!TLXa-*kIdyH&l39zHht0aWH0F2HX(Da1 zdCSy==BI@l*2(C4!Nn3I6&0aQC3&rquh_GvNeJ1EDn97JKQgRO%@{HBH<)I+)#S|& z*IZdBHRWkT>5kcQ^yN&XY-S788Z%00Sb-WasPS$8TynhOKDGfmX>J5Z z!foIbt8+OgV-^B^@Jr^4Kzc1|GOq$`)&8Dt<)}0-FMMEZZe-*gDZyO+&<6^M>j1PM z@-Io))*rcCn&8fB*Bl<-KdA0H)Gq^iwCi}fJamlQu87Ih?j`GyW*qluH5s}>7qD}t z_s$k0zG(Lkb(m>k-3&P}0}SmFgivCJ8|`leB!O!y3&F_!*c??0y-DbZ!X)l8I$;uF zqqHjx0a96^jrV1vk7kwXsP^tZ^u#F?J=Hf$P<>I5E)?_Uc`yXUndWGCU#-7&3zu5P zbs%2lpViXPk>0*!Aws_V z-NVdp<%BDfl6zMxjkd47HZqm~Xf0jlEqYz_-w6XUNT4ztYYfCvBe)IBHo9a9_i~}% zJ5d(0hZQ=-pF{@BFLHaJ35m~j>fbCF?T4Bq5B=u6666!a7W1pewu&1+yxLGK_9r48 zQvqiahmdeYq;Tz??E(05y&NI0mA1%3B}B({mBrtX z1pRDH$DeG8`ffY-0T*Q_DcI9EXI5@_w;`KIFj$) zI&ji7pZ+CAHzkP7#AFrS+e`5Dx#Q>aI@0NWliedwUA1q^$@1QoT@Aq5=@Hll+6f_p zs6d9<$aaMKq6pnSY~JrDkCm;vULb?)>@IHrHUtEe33ydsVek5DKP_($EU6HG zj-H`>$tYLj`ooGGXXjzL-f@0znsMur3&AU2I`!KV#_!v+oRS?Q_V#Q&l+qn<*5d7M z9-eM)uj6ba1FylG-L9Up&26YRWK@b{pLCY4{B!Su7G_+CKW2O^kEtU3>#}h$4hKzs zWAT^fKK^X4{+A4AR89RC0h<=ih)m-F%#agzMku-VHNHxL@k4?i?8&;qfqRC-Ioz{F z8`2F)GTTiyao_ta*~|WJM#WU|YpX;&v`L%r+KXyd>Yc@6t6VLAD}{7sn1u?+X zsh+em2}yZAI)N`F^R^v(v9QxGjl$WyF3MFe4v+b8Y-5a_?drrgd2odty#C`m*$3mX zql7MXR{&}Piq}ZX2G|3Ja1@3EK_D%xbU=9u+U+Q5C-uv`rT` z%fJgMqQ*}ka&}3$q-U|i+)E=7wA_+ii(-8J6n!;xrU)1ihrvu}$NxmmXNzhkcX+=P z0_`5Hoytw}_`=Ndm^`>}9Iq{6PJoCj)9I@enaHWT97sCNiOK=|x;HP99b`WV{8@-x z!s1-q7bTMd3V*(RNU0N3BE9Y`uz%b^@ewCSd%IDwQ*D4DJRsMLU=Q*N`x@zu2j=ne zOe|IQ9HSl#t5Tno2XUCKN6P`1;nSq%Cd0=G8tOc;m1M2u#;g@kNBYJ6OKiIj4=Uvg z0=SvFv%%cvS6|eV@TTY>yv+(bh|ni+FtpH)o#@{8cq*4Z$cdfs^oPXZ4x&>_H|FHj zQBFxXexYRx3^sBLJ5j0R z$&o+ZQDg6ywl8&NIxssF6VkEhKBXd+%zDnrjerD|aQS}7)=>tGvN2btxp>VQ=0=`^ zG6-B+34E#vd>$RlI7yp z5B66u+}`EufkmbKYwQlK255l>w`3YWxu zc-hN$8#_cPt*X@@V}ESmmW14oyatYS zE<;gYmX}})a}6s*0<|!RWXZxzqr@|U7J-FO+72d{;?pxhh=>Y^Z`n9|+0!Shk3B3N zQpkHSCg}p7v3mXbt2)G z5_hteYJ~Y1F&wWa>Yp7llB6&H#+~2Oy9tA9-G3FY)BsyeG%X(dN6qN-iK`iG>r9wV z_p7Niyd(k_0jPFeEotmxF}CDB79Y9=p3_ORx1y#J!qH3`)6FCuJ1Y(#+`8B;JlI~m zPYj8#(}dHxLq*L0$(UqqQFWbPMGCwuWyam4h-S_!KL?(l0j zj8PFF!tv=aP9ADb5#G1L%3I^uI+?9`TrgSh}L zQ@`#UAA8k)qO6&*LD2ptA0|H_K9TS@eroQ8#OKZA9bJ{c?>Fz``btya`y&M2@}&ji zfdjhiE=4u5Bt3nEI}n9W!65w(S5rCYVp zGaZ0>s8x+6+DQ2jBGzwf5uBdez#~Ql(pwV;PUuK%rT9>}^ z!a`O<2D#%~R|tbmzd=Q4K$P&|Wk91^DXG3in?f&Q$ZBfh?ocpSN0liYh8;MToC)$e z*cnlH?$(Hjy9AUrUz*0bJ!Ns;zO9MEJjp0YY0?6)9PC6ChDolT)ulkx8zZL4-Xt4S zg#t>{AQ+Uw^`(Zi*|ctWsnP7IJf#vq4Ch%jjxDeC;)F0Y;e050k6oVROk1)k>f1nf$9_p- zo9-lnjDz4v>#ws^Wq<-Iw-NOGA&s%U4Z}g6Jy-RI5QpX_nwK>s8x=RFjToPpAL2li zY5^pMhV zSER((MV^OJ{WE?MvOo(fIY6U@Jew+U5ryXQti#poinE!5kLo)X4?{;WX1s9P^4^zb zQCx%tByP~m<6kHegU?Wyv})Iw20u*3Oe=|Qh0-4Dv9s6Q5G zB$fU)<$WGTx=>T|-9e*ib%GL_5H2o})oZ7545o{Ha^#1Mu<023_wg7x>zc>9Swtu0 zfR2mc@5fe2&Ra>zNKaSM+q6geUW>oSIx(wKMg}W+D9y5XuvKU-`pU5>r=L?X?nSLl z7WOiVU}uP77p0D&qFfoOl*7KR__vHI6DvhvolPiXN=8`uGtpgCCjEk*Ze;PeZrEbG zkMf!fi0y=P^E%GNJvk-}oWQz#Qeo>~!AstYZ)l8yAW>OP}^ zX(q`;Q0ecJ>80*ihh{UzXGG19w4L95i-nBLG)!jTk{W_`t-gXJum- zgxuwr9b2J88^bXygn79P+Rmhor;!u^bN&`1rJkwvpalw4Jm!St%5mf@bPn-l#L1!_ zj+nn`h*pXQtU`|`b8w7A8R5?ZwZA^OlKy=gVxm4a6i~jV(J_~@#;+PyBp>&W)=ByX zmHmB4zcUBUvNWt*m~q)=cBQbK1OEN$;^h^+(VD(Dfrw7j(e(CGxE~6C3Xv`Lr&oh_ z?JotRrHiC`k#sVQ4ZCygR83V#-5NgA$qkPh1pl%*+F(v+EzxxAk)q;PeGEi}hi7YdbCd@ZMl_%Dy8iz3{@ zMT7dQc{I8gCKF&H^>+J&M+x%0DG0PKn)kl+mj=Zpu^KlDp*wr6EtAIzmnw@1(5C$P z_aS=PMq@p`BFLtwMH>>$i7smKlHaC=f@5AIY#V;mMW*{KQ(1hfXL!ov)aW6xp3MAj^ zd(g(Qz^}2q)mz&$EtH8gy~?WfIRmwRPyZ~+B?djL?VQDQ8%A&GV2S<4GF=H_)(c!A z*&ySCfUNQ;ZzYLuKnNc6`o1p(M&s0GDO+*Ks1AuXqZ>`*ORXc5J?eUiY<_)$i_kq1 zi`&^nG9ouH^TLK$FX)7ph?s@D#RZPF9kibi6*+YRCf zZlEKU_?rP^EQQYHl=hZQZT!?Apio4yF1#u!?vUn_J$|q1+{f+Q{U;1*6!|1%yrZ|JY_yVqKJ~6<7sF{ycsj!LD=hGWh#WJsI!MjO!q~OWf1mO$Od`DZ{Onx#4}L(}T-VkJ z?`mKRD;yeW?!lDyHrfR@pnymVvShG@l8WDnh?PltZZ6$lEaaB$ zJMcoTCUZd_Z*>b%6D|~RgD-OrY%#YqtS?a2nR?@w ztIW`8HI?*A$k5-WlvOGxj9xnlWH$k1(?U<7mM7+fkY9^+ySCcV=Bca$U;RF^+Udru zoZf2bUA0WlEM5w-xWN<9gsNoeTK&D*IqvIF))*AFt2XGDwu@AzLfehtbA09((atMjVeWA?}-MJDkPK*#7D$3#Rtk6h>`Ooa2_I zoJA4Mhd+$6PF5ja{-sbu)(j#bWh^TIDaxhsI@^YS3?p&ee+`!H?|OZ&DnKawY{T-^ z__H2&^hhY#IY}jb(<}UGhyxP5uzXD|fySv)=QXMRy4vKjlqL|WD#7c|M?a6|zg5+? zvgzoXJ5b&*U~i#MyE2(7K2B0BK<4U?)3m7NbuBM|ZS5`8P(4a*+4j0R5XV*DyHBzc znT=GNvd!AsK+>o7^=IlVgi+!ubBmY33SRMN*XmEk*O$Zj)0Q)XfdozQIa<-F-1_*p zW7_4dl+XxTrTl5nd^8?TZsxb+nccz3>C4nvKgEF}1B}PH3KMD)s^joRMKhYLn*IWS zk~QD>8PK;SLfwyrj-L3zoXfz*Zc-nG%p$Nz*Ky{2Emo`ru*FxEzYSAYabJhC4vC10 zu>>yt!N2s;dhDCgj;fWJT zl07AOoTXM>Z`(E$efO`pekmkORh_qCstcrEGXz-HAkLlxMxtFJ6lsvOvmniX-{qG? z*-~9>FSbbDZ=Q3cniH+z%iZ0>jZ}uHmE0>v)rxTbNa`o}4c4_{J42gmaiGFT_40K` z6){YTXf%7BokqA+BXXZXH>#p6iWa_aYZ$d_K|J(aRkB>T5W2e|R)0_P%w@e#W zYiJ+VR2^7N2cx|HA`CMx_VgR&eB$g%$#&xCUJei9J+JYHZ0QXV_^a#2Kfsdk_AAq)fh>rs&=EB|MRgG*XSZFctz+%HC@g0zc zGchdXQA+OoYiemSc81*%&Kfdtd`Gq92Y2S6I|-3&3>DgAqHuj!92VW(Y72;dxj_u{ zDs)D@);mXdmzFxrmwaW-uhs#c; zjk}l{et};Xi$&$rI{@OrIoOpeqD^KqmRC$P-F|k?G0%Ob1hhY$&dC3g47E%fOjLVV z+$t0tk-6tOsAJ)ewCg@Bn!doW<7CUK9tzQ3iOw6|y@R>;wU3FTT{^ELMRnm;QW(O7 zKHCKXFc<`wSk;|(oACWR%mXU&SesK_J87a6dHEQy`3abzt;T`BzEzG6UGDPQo@8Cr z!keOShlp-jc16d8e!z}isp|WA?vcA%Csm)w0nC@Mh*ej?D*BzO2UdPzttfUkdiwst z7v%DPrua(9j!EY0=rqkv?~d*`tKF5A*V=LrH6f3K^+YVASX^>0pYi?Yd09k47J-O` zV_@MDx(MmW97x=DvYSvLKfS=DROBmto|fk`?V|(fd5qlkod_+^P?e0rsAoghxchi3h z72;}DRYTbxBPFy2MzV{Y9fR*y*hBL zSXEGSiI^q$`2zTz*AmBU+|y-0#=zm%v3ZRTAe4--cLVKp%3e-KZhN(foZzbJh!Aqx z%~Xg7E?$0v?UV)&Jn{}5E-;SY{+EAHb4wJSuemfCqTNq!IeKc>5so=5mxE6h-|EhZ zIr;}xACUx9i~>$MSWGdn2s$6@4=Iqcr@=p3?K-`yZno)-VF3HK{j^Nq!2ererm1m+ zjJ}mlVlJvlRmR3bZ9TL5fIV{;j<9dDe*x6Wi6eNN?K^94+sL(_?O!o5;Fd&W+DSHD zU~L6ZY&j8XTdt%e-CGpKm>gMClN^;p+VO7l-+RtHNs5xSz1!`V1rk`A=b7_<>F|)u z7K|h;;V~^)LNb~!X?#z_k`=TR1zAu@azQdtl(aaI3znwj7FOV@h+G#;vf_b}a=~^F z4@pi-4&UO15HLvv)q5sO_3c~~Zhw%AGOyq{v?%D)iCO=SQ2Zl%#7>Wfc?s9RGP6;C?-5az@QxDy zj_^6*?hb&mGn`CrE)}|_PqJhgk@`=cv}d9ZtPH~A#-8`IED<5M`Y%rMISKR`p&f?9 z^hkuy`%vXU3%by5d|`Hkq+n%L61TiE6M78knkbviL zS|vQcBg>RNvEo3>J_;XQ!g=rko*_dc+?}Eci1u>HvokJBn#b%^WJ{Jy*e7xnQzx9m zE0M4XlT})h;W(dBc|YY@mBO`-WyB+(4iJ?JT9TwR(q*L)K*ATp#h+=xDX5N79$b$n zvzx(WHoCYNPJX-@Ud=|cAA7jAC1t<9WFk+k6;2C4Lm+WSLnhmZFbGIATUz!9^s;17 zIxeY=f2JuRg3Xs?BP|=i(8@039D_#)1$L^FkpBRsz|$=;q^Y;Xb$jHcU4pt6sBlhs3TneH44=EtzHwI2m<4--(IuJAK#KR^ z3JE-mkI97k1A3ViFWc27|7A(&GmTNbM zgX@uu$biTcY?0oe4!Z>>l%?RM@^XB0JsF-4-uKj@8#J83gz{=T9eTqLpdJu&drgl- z-+Zm5UP&dyyNjT%=Y3qY4vgoF<64qbOQq8O1Dj)ZI@snkm8|1saNDFxnT&@2tT?be z$X(#6X0?qu&3*SPfLLRNW51|2zpkzp?Lt2mZpRlndjx(< zQ;1S{>}`9&01H51tCR|M0F1M01(0Ktg3nR?XT}oPf!CR0HuLRGW^4lJ|HJ*a&Q|>C zaQ}M=2R|?jTO%7T1>0dZ+_bS9)f=~L!hKjr{__m+9C?rjL395Z)iuPSWIP#t7+no6 z>=B0=n}-@v5y1eGBJv?bieoTsnl5t`Lzd{nEd3;T6jhpFkPCK#T9;89U{VTA6ha>< zSO#E^45MKPehZeVaQYW`6g975GW!<4uj z*>TO6CE`})*%FNX(bwp7Y|)J+2XAXZ03DclSKmG+AxW_!@`F#Y|{6K?F@4%M>-v+aQc$y>Y9TOQVAy_6k=K1i7 z6i}yV?~R3%z(=570KuGsvYY^lJa}C2cwxv65j2E4K^9J>hr<&sa1-_qo%cfHz9xcx(c05B29Z|^@&Q&A1Y*S} z*iMBTsn$9MTG48)iuLRt4TCOlzUHJ1YJU0{_-oiw&AYy$)2-$QG< zdM0U?Fq(kbW2&enF{KiVN|~eLL8Zlac07J2HutIdqV79vm|Ev{tXgbe@9O4R&#AwK zog)n$hY)LL6X!H?VFi4~jIsW%)5Tlc#!hpmYDdrL(v9iMDwov~ABS#LmQ^`dxLbmM zNpJV;O;&hST3qETE!Z$)KJtd`s z9q5yQis30sHUMwPHr0C^{N49QGf`h2)U%p6@QdIxm1HA>dT;}vy27Zq?p-}G}A@akLu5?Eb_BBo`tjg`V z?3celzp)!Iol1GxuQTt2}Bq@{W9m!S_adwkr#&xkSuC z7{H%d%^)~t#tMYJNM)aFVd9O>gRrCz;6xEZfT=9EvFEmVUhbla(g3QN11)k5IiTrc zRi{q$pp!x)eSnCDDm_JS2`mWVS^%{KYG!zke&&F?cuqElYOT=uS~^b`UVDXfwE#=g2B`!XFr*LZI&}BQD0u zwAV){auY0iv$KVX zFv?8AN#OGpCV^Bl3uJt2Wlw z>$lhAApN+}qXZ4}n(Xx^ zGoL_IO=evUn+qYzR@dh5ZD5Tw9QH3-c^ja?M&|LwLF=ft3J=qd4M1wtZB7O@01Bnwn>*eq7=#txDTaKws%#irX_LvVkE1(g51 zvLy(;qw05K+qM0o+oe?s^CSFE6~Q&|8`mJ8aJd)(rU4&~hq%mUm2eR9!TYgp>zk{5 zt4}tNaf*3{$}N)9@#W=c z)=}NnZ__T1)m6F?9R1zZ9&UdZm*Jw18eQs*MasGu-;IVTKFAJ<;1~(f(wB7FSfi5kDN;37m=YC(| zUuAy6(6scR)#2?hx1g?o_&;?gI@EGUbGb|7>F)jy ziV^Ml7Ouj^B78xYA!%=_moQAzfsfgPHqLr&0`(e~hR6O#3p1ZZ#9mOa?*%q(JekfM zsrwW34~XVE*N83KfvV8l^QATraGfmiIK3;3$Pj;;qMNg|3d$Kvq%NR7f@izL_D`}D zTq)YblnxtC$TmMvdT$z8(RElQIF0}X8-xEJpP^>&!bTvq+b+df{>g3z&0nQN+0AE~ zR?N|0`#0VwUmwVNA?|qmD>?ZarDP*Gu8G*I31nieRg6n*m-aWmEII`PZW)-+;4kT$bfg4YHtv}S}xNkT`)djIR&G}AN;DY`&VKX{S5Tfn47#by-LLHT*DRfUy1E)&eK?l7K2#$>-G|yc< z7mrq5Ts13OKJwUml^wqlIa&835$|Spq7h#PpKBR}+T`~Bi8dMLs8wFk6uTZ?odIf} zMf+BVAxVd44LA8eQCd3-bPnk2f&l2?+G^~3SspYEQXSB>L@<8D7JmZoQ> zr>Eb$m9$8jMjXy&Up`iKo7D5wa#^hBZPKoqM_(U_`Tp$7Wct3YR!c$uA3YM&!?MlW zwRpcO;ps-EZB>hts>$2D!Z#O1m9*mcypi>d%qA_o%F9-KlueUd%4x>W^D9{t&FIm$ zM`?h>hw3tK+B|J$t3nbQ4Iq@K;=HN~@vfH5RZneFnN0?~ZCTy+#aB_wc2$?oxOg)b z&&6N=iU9cA8R3^t-FL6YV()Ly;lGji=5PN=%B+X@H-x{lnR;P1;zwBN=g1}eG9YkLrqWqhzcL3f zFOV27I;&06HouXlb-wJ;GtsVQtedu4F7XU_q84EIY^%DKW$PY|e^z=?~sIA4pS&%@1pi!8gWs}@89W+K4RXR(0)jl%cu zlZE_PWfDg5pU(IkP@Jtm-WCXgPacRC#l@F>MBf{8MR)N<3$MSt!uxH~0ts*x{N;7!=B3}*oj=OOIb4_+i?83dPtsdGY}UN3((8M| z?kDwSbx+s{oM5qp;S=B(AjJb`os}S&*b2G$IRb){p zrP~ZG4rG!Qc`2hXpX8ryr_;%YFY}|r4_`OcbT&P)Fh8SLQRP`ov-Vh-Ui~o$^e6letp;jYSmWxC5vx>qz%epkvdj&Tfz@Dac=*S0D~X!ijdk1Esh1{|fThO4V;0Qi`c@c$aQvMSMq zG5|fzNRs~1lmg=H@Ed)P<*F#~)cm+@i{U;f*q&Nr_zvh`Mta+(_B-bx-U40RCVANy zl*#uS7*Qa9oDZ;-0J#Q$8@0rs6>)b(0Sol6e}Q*O>l-&cDH^l~QQlQXngq!#K14&_ z^vs$AX7iC=Q8PQAQf(Jfg7{rURv{fCg2W+=qKSGK?iUy(z_$M$jRFd3y8IA|z#117 zFnM|<%pq||{K60bK>O26hyw86;d|MhfZvjwA0%x88fe3N`}_%P3&25S(NU5^GFE*} zvuO!YN=w`EjSxq|GRvffH5{n{?NQ`uf}!$o+RQ1qflYvcjQ!OQq!qgiW#Pu)5v=GP zg$k)GlRB^L1vUIejN<@G29=o%WH1Wfx2$iLCeG)FA;u?Q>7qDetTh%PC~e!@l|Y56 zeAlT(4Tu1NNp`@0iearS_t?PC;9R`s%K;QG&I zC&%-{F9(P4&-65MuYtmmf1)o5)?Zx-YfDCTV1~60)6XEThY+Z(WBjdlm`o>^aGp0J z!GG+P6BSXf&~VdJ!@eHlxoRpXGKK+=uUeb!s4*lQ5@&*Ww+1QqF2B5L)vCA)axDl% zAv1MiK)8!>H+t4u?5=fi<~P2}?g9>=UI{$q zd6Hf~yTuJe3l@x~_K=*=_Bt=mvH7;PZLX zvcI=U!|NeXvpR<>X;-+=?NwgTgrr%QDcnU_K^&128zNz0rT~H>9fyi#$x?wj*WQoL z=4jqEPLYTwN(5X`t!`}$mv$S6>e0gdLN9G*I<&L;>$F}gIGRsrY}Hf)i%lP+8S^xp z$$yeN*R$TAx)>6^Z`R9Z``>kjjpA29qT_&AgX-B+l38O~L;I(Om335>*R{gty`$<* zie!!U0W|_**{5u+5AzPV3XZEa23_u9DHm%q@S`-XA_@dZz)Jsy+PzCPl2*w}<&PO@ zO{h3B7I)0F>=e_e?CsM!HqGVFI@TH<6GCc=7Y<-B1bg)YhTCyma&M!}yyh|I z7J-lLb}zwK*~s7IRSu!o8D^SnJh0+?*&Q%C{B(8?qR=}gJF%$R3Moy$knc{h6xbp# zT+;%;=S9`Vj$m>mX}Ve_B_{f}Ekb@2gZC^JdWDX-hdI=ajM31+yvPAP||YbOJIuESTC%>kp1;E!TP0(^BKfoE@7 zL-6v-1Y?DKt9gx)kB7$Agl@PcyGG=SoI!`7CTS|0#tH<`o0)xDI#cdvus7X{#`oy+ zEXnc;5MCzdd4by4n)(;c?IBjnwoz&Q-iB;{O<8ca>%t@Yj!9rC%2S#eQQX64HCc@~ z7p`8jZXS2?5H1MjGlGPMK4+|lWJp~bJbBKI8+XH-28}w%_Yb;tzrp5(RJRJRaqP6K zAjw!}C}}&BsmyQWL+MSr$GZijWK&&!lubUK)F0YQm`#@I}l+UEvO$x&24 zSqMN^(NP7u*m6|y3$@x7Rg%=bkl?tcOVj}@=@Gdfq6Cz9g-0Q5cHGT%5MEza(X+>l zRa9XVYh}2BHmshGS(0%PJuKu67ziwrY zifg)c#f@Za+Y8mT>5bAVCaW=%i|R(2$RJu#C_1h99>kK>6jLxD>nJ>@?H*DwM>Kb;D-X@^qkBSD z>kcQEScPmwvcp*1t|UMB`FERQSrCc;7eg1fVl;#`6jhagB` z*CAp6w8hLLCe96dAVgHu0;P&@)e7`tHjG{914*w?`yS$l+#B*lB$4V*8qQU)hqS6n zRCwS^{f(JPG5;hp(36n&2jY2uv=MRx6sHd+QwPCVPM4Gi#Kt*z5wX@4_Tmmdp##Sw zRgVUGKoyHxL5}b`df)9LZLP>=5^G<& z*kNn3VDFI9Z{d2wHJsJ~^+J_Eot64}1eSDOQ{ILbc~{jBD1taG1qv=!AtZen7Hop9 z(;im*tfS7mD>@?mczNY;dwCfW3%ZdWk99BXq$&!!uZV zH>xAUvLhdZVrV75`f@y9!gZs+8mafIbXsejO!t31JHg0P)fqF8GXA^*iz*j+y`Uym zYktnjo3}j&yX;O#Ks!X>m5YG#UMzdk0ZixIlPCDt>HLM;GPoWbetNG}yYRgF7i(k4KFe(+$QXC)|X!41z(%Am~ zN49W0+#ff1_)dAO^xbEMFqX;89f@-w-nF`xkibqNMR!2NqDm{FA-9qkf;gth5*Bjh zZDdz8dL~TXD6ZB)p6auB?KVzt<^aW)zvx;y-T7B@@lF73A~@3vW24B<=M7<~85BUj z-#%Gtjx3TcFrxZnY)_vroc8ISu-jCiuU%Vj-pA0(;I6Z8fx1?`{6)V0 zlP~H=Y!l}R*Wy-(1FJI8*{pCg*00BBr*DtX$c^0%gQ44`xJGSyo3~d27S1nn{9r?$ z5wD^6{q-R8uy4i~!VNK&urvzxejy_Yn4v=3YR(WC_TVaTH6!BH&igL~eE_TsDL^3Z_%_@F5W{`o+SA&RzbT!Sp2QFB)uHs^4I_ z<-k;}RTynPd(`97`g|UEUQ8oz)YLHCjsO=TN*2R*RPWe$zW79armx!S&QB+^)3X!t zZZiF#LL1N>PwAs$>nEhwUejx7%@^s|i(GjSCgZ74wHDA~?Z;N8xtG7-R*ueY(4%Y%&z^155&PF}T<(ky&x}oR7$IPE+-KqSB%!$&Hy=S|yU1)wBI|d7-fx9(B*K@w-MR#Y>wX@OQ~})7_89GteGl zes*&5fy6mQp9e%a`u7!%4oBq2$2@iVt}(=-Kl1g*3%^}9!^qr;JSwfQ_zyXlFR45J zA8Vn{XNPBp(QubTCWcS{zUv3|0QWrEyD@~9i;a!h}p zAlGCOr}LA^>HZP2U6U+gbw6qba(itm!W++r^3$LIxdHx0yGIFF&LJxMcE?S=^aH?$ z<=_m%g*muRt{_lQ`U+kd-(WJE>24$=b@@E$ zsA(@A>96zI+`E4a$p2JcOFn-pzo#XF|Ds0t@x1=4MB~RVMep&e{;u}{z2{5^U(|b@ zU^A|-(jOE0e+~n>Jb0XiSX*xsITU_QeubL{c0$7>L0Wd%Hb~t<0cp!6MZ0KGRk<@x zW0y?}4b%8tGcr@MCMB!* zEmN!{FWwS)t(m%|hD)IbL@*o>N){DeGxdw^4u_;zD#e5$Mp2<>Qq?(`N?MYIk{?-N z8HqM>p$RpF3bGWRgj@;oaVgy4P}$2&lzF$PsMh4!bb56z6-;~s8@RjF{o3t7)s*2X zuWOKDbG0UPW}H1U$}8Bb*P@s!DdbW^ePli&LK5~F_K}rT6|NOju^;lHD9bN^b(ikvB?=b1(K#oH-c0AYx>{|tg8gr(o@0O<~_T`Ccd$-R5w zSN_hY4G0H;@{|KUhNyuCe)41z@4j~4vGT;kvj=;QjwgE@NE9l1%c^r(GIB5>J<3&~ z5c3}5bGPN*l-X>{LNt{NV{m69v}6(vk6K4(w9;%-<}HLtMNTWJnKrM*1-q${aM!K+aPVP#iL=pB%OPho%`Ah{ld|}egu}vL7@-IW_bAw4(JQAdx?n zCi6xOqUt^wHU9mOVI0zme_>gw!nm&H zVD^b@&pdIbu=RpDK>TqiYA-F2wsd$l5N%I)f|glWTounX`tu?>fbA z`*4o%&M}g0!!4B52(!cWC{ce67gttDQYVHjVAeQ(3(V%WZ&{q9S*@55ZI@Aj-xpbD zllv%Sibp}Q8dKMrHwi%AkIf=2MX9+P!jsLaT+OjmkjyE-TpPJLW8XT1~E9@7FO%B*yOS^~T5=wQQ@c)82kC3D@0W z3RWV%4aMQa1vmy`D{b1X%ueBAj*N*5VcY|UaWm}g8yaCJ{K*~@f6kCVb93>t`LMkp z^m;J^!=BS8TYiKEI&4Ta*BVguntIyWj&|6~xHbg=Xm_?r(WRMVJ^X@2oGaFfv)j}0 z?)J1Jc6*})aP`7=z_5DGmbktpci&d_WOph1p)OgKaWFm_g^9Q^nt|!}l-XrrjCB=t zzY(oyW0ZgnU}tyyd_o@op#OWbuzlmDg13MdY{RcPR>@JGKaOT5(Mp!hNxE$AxE@d9 zGioXHa$!ZV@@GP8{uy1!ci&yX>1oV~YZjj}jr3UcLB*R;l3O{Ozo7c>Fkmclff`B8 zC~-ah*A&ax2@*GUx$Y;S82>)n8;r*A=o9-~pbKlqPh%|(;Blh$FFdb_1g}8;5lK3|7EY) z74{XwN~k`aQ-Q2gekSZ+DTTj@tf9B)JM_8=71{ZdYUZBKZiu!6#eP0bcc&j}w)C(G zy4`v!O9oEdU_&T2_fLHBir(7Stp39#K;p8!x|6GTQwMjb3NcBxt~e%ot(a6Ha^~S^ zN92x_86F<<*jeoA=Kelm1qHeL-VKQA*E@G=FIqI-IC|!fJ!83n4+Zb5Q8>pS~-+2^mG}Goi>hJ76 zIQ?XBLp{v*!$u;^Po8~SBNeYZG-4}hIK*(42J+mj!7_#!*7h#4fQ*6L#igj$WQD*o zEaDo&gCoXnPhaIbPtat0iV*C)bK*e@iub4Aw|`(5+rNbX=)3O!Rb@PMc$~FbZExE~ z68`RAu{O{ig($RrP0_@P0rXZu~^!AgGHI=ibs`B-$rZpqq$aOOQIJzQ3^76b-CZo?+@zNT&1pWaSwSwyES0>fSvD^3SXm3X2BjrfOq7>2 z&*wD#9~x2H>zbEbtyng&@3SUN8OwA-B}L6rkVEbS&+JfRW`)BPZ0nmbjuV3o?imiZ zmJJ&Onb2Y<4#)#+q_u*$V^Z>rnWb*ZOHouggHsI>Bb3$~JU;K5@|Z6P5VN>>BJ$v^UIMCBm5XHy>x*$H_ltiiztWW5oW|Gt^Mn<2%jHe?aBwzB9 z=GsT#^hqk&Jz;-wRjZg7T~MBo5GSIlKxYN+Q=t=4UMfd5ir$wP7vM?pmfuYog;8*z=up8%VZg7n2KCpZxV29mzmjZ0sFZa5 zc04L;Ua#N5z)!50GpWE?zCG+2jZZtBALn~#-yuRfZ*iL#`)+u-?ZiE;cXiB+HFwWJ z^L4urOR(q9hN&9koaMP1SclkQ!f4xSbMuW(;|&O#vd!APEEMj>*@>u{T-zc-ZQQ{d zoLe?!33fIwLK{ustHV(p4fd7&RpI_xc<7zz9eG9m{@Y1|*Prm!%Y%khU z8=}^E`ytLsXb9ivu-*?gvcVC2Y~agr@Z!!}{9XzGC~TXuD(A*b@mS561h|cQ-9??m zuqeP?qQE-jQbRqy$I z6!q{DG`eGCiF*D^fheBmFKJV+1S+yO|ktzF33-&JRxzj#=&+7Nk)Lr#*#R~}3Wc-Jac}DK_=WwGrzND&-{QMZ6Y!3)? z^7Yi7kq}QBxnz1H*45Rukj7xkVAS2os11#nCnHr$^ashP5~Ve7I3&G_&Fyvws$?SL zAP#uAc-YDpF8xG)NuQ8BX#y9Vvjuvybv^5-5Yi=sBgSk9K8RT!)PR7ZWC5yz8-hTb zN7EIFY+5BW1;7Mm=(8)Vte4gXHobtRVeeB&O5(;MZ4X&=%}Wz&#M4T!grrOMiI(sw zkw8HVK}>Ns0Csa|u<-z`K@7ww^BvKlnZ`jhBx>@5C)wUYm~U{>Yh~x5=Wb%M6XZRa z=n(M}@Tfohri}xNS9H#EFt1U+hZfYRee9Qtzrgb7Mkb`b2)mc)x`T6SAudjc3 zog}Z{ygqv{L)0nq7g*-86XYf+k)2v0=%3X*MsX#1$P73d7*hCdK}{Hi7^;B z712qHgPEP72JrS4lM{dOLaU^mYR}C?IA&&1W#=dpTBJkd;4BrBb>s#3F&p{r#S7D+ z5BKmXY%#8Q_F?q#W1m!wtb}40WMqdcZ_!@udlXQL&_GM4S*dR2= zf&Lryww()6!hAdgV6oW^TK3VqJdYN+pfw!l{jOyFNQT(X$1UVDvjd<%iMiRV|5WC+ zmEStitJ`rHO2O>#Nx+?}z>i_44Rb~-7wHkWwU8lOLYq=^Rh{f$-Zca+lH(pZ9%|X~ zsAR=DG`9y&a=J$NX#kt_#Sp0Nncu9=Cnt`1xT~3-d>r_RJIb#TA5+6zk5Z@7WYsvEWJ};95b2SqigJ=H!?y zwyzHu_TnD!Vk5`0EU8f!?0mVi6Zr6(Gx&!R4Hrqq$rASTj!^uvSG{mpx>H4_vlpiM zduF(1m^)(kO62bt*yEC@YfKRB2kkU#l`*3c{XndwuM+gOZa5XWtHdWxsQ5PVT2YYb$tR_dCt&RS5%RE zDZr0yc%Dj2aqULij2BoOu7=03YyI&4S##NNAa>etyDSo4PDg+AoZH#t#ULjfoT&5s z?agE~O}^Yr@ml9y7Q}R2)oDC1Nk+?mg01i_q-nyO5P#v(bOQVXZcR&Ls)r-8 zCreen2my+;DiSS6MM&-ScZ6TxM)X*X@NSibB3<9tBz)nZwa)O-gtf<27I4%rVPzot z-V`mNymWPjQ(zWI7s)-ZS8(Zkb4C<{z|GXjv$V0L0n(t#LN2Q7EB*$@sLZ)8$N(VUnE=WdP_I6jH{ccUU)kb}t((SH&He1*EjdT>@O14q z54D@gJ;~4<^=qxo5j?IJ=;tGY;^Ovqw&H2dJ}u=l{LQdtJN2uAgAO6nC_@_`8FQFB zJ~Fu-D`u@{?-Z|MNtW4$NK4s-AzSch(@n{i;2-w#xX>jTo1s180lZafpHzB-eZ>qi z+$M6JVgTFX5*G0`;ZYZ7TQ~@l%r$QS4r;10R>>!vy=8P9&9WsbW|k~wX0n(pmc`5r zE#?+l3>GspGo!_9F*7qWSYUyr*Z$7AbI-doKW2^oRH-U*=Z+m2(Q9>AWn|aX@SV+} z$g66Azi~CEygHM``+9_KL#>OYUPeyox1W#i#^C$*dl5fE!@s+CAE$x7_=s_xcjKQ& zz^1-`aMP4HCmCV1@4Bv4S`~f&e6H%7JAhnjm#pKMm5hSc=}CsXNMzxwdFXWKj|rJL z=bKp@FfR>%gSbF|x>aG<#ZxzYmEn++s}lH$;O zO4pwO8Y`O-_hp-ARE4Nz(%*nGvZ(ASUz`QIZVnFL{j1RuwiSam9Omk(C2O`vp3xb&4jbkl!!#RL~(U*NNJ0d8N%=Tx%2m zWzSXadoI%b)dnty?_s%tNHUA0D5|KzV1231J(13b0aJ$%J?tQAcZWHqAV4uVW4m0f zor9&O@JPvBlHIZ~QzmA;vjXe9r;yhxVPWTIrX0%27ZC>*nC^iVikw8Y0ZRcS{Xw@L zvs9|@#JKtwS~Z4O?`o$X9IJLGmFSyd!}K4JsRXfEEG(po_5f0ID|;&!0I4$o=;&Y% z1duucoJq|9wpMNcXMh>0g9#Ae>}Kp@0>_X~dX$2%TF?MkQID0aaiW%FR0&H#n zxr+dTGjjj{N$nj#X0FcmAX@+_(AW+HZER-cKxzj70*x&Iq*nGW4y5(~cT!_JJ6F)u z{~)`%SUNaceftNA8Nt-n7ziYlP*E|IcW`zwc2)s6f{t>y00LzsHMeyzb`c`AGZX>wvvYI-k_!Ga(f=@@rQ=6HAT@Dtuq737Gq$od zHn9cJf&l)Dp|sh*q5kbWz)a-7z(LNr(;<+8D3Ds2lhXd%C22EK0YOq$Qg8477(puV zuPdMtpwoZJ_!sG~)!%DO|9MU5Kb%zp$!=x(R~BY@5iLU%2_;1pHA4|82}5~RI*`Nv zXlrh43k2|kXqY=Vlm0{A3gqm6d(JH8;A-zeO9z^Uji1ztR0zZmbYx-zvHutMe{uMa z5mEpb30r_205r^sj`aVY(SJaw0PGyx0JQ&c1q3P!@B{&ZG$;Kp@?`&EAm(82Vr*p( z{BJGkNU5p+Po4;nva$1kP<;L!J26{hE4%-e;4~dcuRv) z#o6V*S^wwo|Mb`|sTPs!ZzOZ1y+ZoI%+JBsC^A1*u_W@9N+R zN+VD%xB*B(OWMrJ-h##4${BPZHT5*L1^n*`qH1jG<^akJc%TbtnCV{}pv&J(BUMpU zR}fbPtqqWL|Np!HWDBW^h`6-6s-e7unu^3yo92<8fXoIjM&&&L4Tku z`Y%K`P&R@VqN2Gu5CB>}pm~9yn!@-GgMVE7*D27_!G#V19>fzKB!;TX-^>G*31Qj-2nWgKvz>!Q0e$92G9~zZGa%}K(*XNkK%N|6O`M+P}V#GLW({v(k~W{99&F;QtE(GzG{vK~mbkLXgsv za()IG|0~+`q`cgqfBpfWCuRH0&CE#$viJvETtbQ+6q3I<|IT!cf25`T*UVP-wEqDA zwf`4MMp9PBe+?CL0RGRLfBF1fc^+BWTC%`(F0}4*P2p4|UI1=ssR9;2vffs6p3kkC z^0T0)5k>-QJ{$_znlk3c)774cKL((q>*t<{dwr|}$ya6N;*r(K$;;xnj4{AE$Kq9z z#v&0@cf7lq_SY>-4dyd14I46dP2@y1pt4s9=n49O!0Ch~>p{xfFVqxsU-PxWE5ceW zRPGYuz4~OG)pH~4RM{pIlHN$YB`{c$-R_>NerrUAMkL#$Sgtm>h!W?{c`ER-_NeVg zXpB{O6Gm@!l38q9xg|-O@Pt9m_7L^!HQPf!=~B z@v=^%Y3Mj|WyO1XY(K_(zKxr-&2LR|IdNnfT1p-5x(|9z3z=VQc`Y3cVDbvbg0+43@*=F1Q91`_Vla4;Z^JBLzk?o7A>xC)wj7lG zcJModPI;4rzmTeb5NnBTgDO<1qtUOCd69~o(z^zkw!cM`&}{lZR9o~20^(Li3W}A) zU%ur1C|tsT^dQV0bwBOG=u#O;YG_FsRzFV*NJCsF%m$+fArQ9!K6uRAKIF|ZCY>b7 z1C2Ana?p~Ph{*tmM~0o=<^57DLo+nM>U$1v%_kdtu`wT&!cEo2{adTLW@I6v#t#9{3bCJPyBXeMK*7x zIGi7_jA1TgSIwZu`6_*gq)x3_TCkL~Jcd4ww%COkq6*N4-{kf%Y^(38#g~Ts7QaE) zOni}Cd+g06VSLZC?`Rz}An@{>7)5li>d=~=0Y^nowb|wV{ViZ;L(RX8Bo=d?wY}pP zbPi?q(nJG34_|gjoV)oe18nwd#H#!we*l|66C{U#QFY<*55LJbOJ>Z4xCdRpQ6&%J zpTSh8Z@4g>yf?<@c#8U{5DW#F^L`iU&sIS;Ua@~J*J99tf>tsn4T>Qjb{!$ASc}d4 zKcq>xJfnCsKJ`Kbls@npI=JlB$VUen!`MXahT%p@iF95cg5@q_;G$Lwv_#^dAuLxB z+W7W0@yn@Pqh2w_oG9h6P;{?w)S}6GY0$HCV02iVC^khrlD-6E~0eVSR2iN!jql6y)9lhMyG|Nz59-#ZNb4GMmFgM-L z$@&Ggq0SY6_QJ@{E6iIqsJSx(WMS++A?c)_ES!U_ZBh2B`hIG(mD1%jOXno}IlUdq zrT4drtb2aEQ0qw4yCsp7$cCH3{$eqUbqkK!hTVR6-%*}Tb;>URk^6nt~ zEz?MQMe-)aLR{xCzk2eT@~9Vp1>lk!W~-9syV`w10^!!vX<>~Zkyrmy{8oxRE8n9;PmUZN-o>+gMb0IMe8|RH-xyQ@z3q#8o>;rE$-f% z5lik_mHrjFB23zrv$WfLo2LRG+cX}nEUH)Y!p)`(ZVp5QtIAN zJPEguLYLlDKN#b8_2d!C33k@S#Q*xfc)Jp5=@Pqq67axw3Hd)j~BJv`fk$&GgCku|BS4O|~V_g${Vtsg_tTIx@Tog8As__4!({lyG!%YSZ3xB|`j#8m9$%@~euOc-=k4 z+qY)&(rXiTx-=tc1&pck9m;Y#Y5aOx8!Z)Vx=k8Scvb6?JnklH&gwhLV(rf4qq=B9 z`O*&|2AlYW#!omdZ4ZD*HCH-IdVjd7oNfx)-xk{>wWoxjhJt5Q??;xM3c+~~XP+*V zdf0iq#k)6L-S%_vK9QHo>V#>tmzqF#Y@l5+oY-CWTjI`i(2o;7c0;cU&r~_sQ;$_x z%TNAdM`v|c_!23W!9F!+av4aMy`03->8iI-)k+;vNGI>XYR${_S@)pCOj~L@UgLIe zKF&Kn0;UZo_i>bHPNsJ&o9Q4p!m?GOSLNqbi2m7=))WLy@T7DT@@Ky{ksqZ-ZYdCL z4Pi9ik~TNrEqS0+!%CRH&K~gE&-yV74W0=z)A4E)aZOvP^h_pxQfdX4Naie;nTl&N zm+>4rC_|I;XHj#met;Z3#(lcgirUq0axLbkZ_Cg%215vAo&v>zi)!@+CzlS?M@vnMo~6%; zvNQ8BiCEvkSXMO71f^5%t0v0Y!*7*EQW-iQvH6R$^kc<5zbr2e2*7uaolq%#hF*E{f8XxBr}Rf>S$MIT!o2Ct*xfdX(b~)`~<} zI!JlGploFlA+>ohXTkRP(4GtY^6fI?`K*?@e$?fm;;0k(HL*Dh?|l^G;}nP|4fhe) z>98q+B6rFO#jn#s1ojI?&N)izl9ytsbu=vuCREB{TklP1g$xq$(@hCkYg(%OA5~~{ zY{s0Wd$-&PJW?dEPvZd9vdS^61EUZ180A?AfnPe`3t6k$tH7hc50i3&k|@Iv;_mKC z`cjvB1o&5c-dilZV5d=hSH1p>69tcYIuDWr1rk^4!}hAl4GNn}r7KkbC~QE_BpXfE zuGnw;!!I;KRw!Y7r+qEP;!S}n$gb}NnX1p{A+3->ez(_fbdrh69gc?l`zF8n9$xY# zp3-)qvQ&WKG^r;?!YW_k;KNvhiY`|>Sy3|MZJFKs1x1A|OLj}xduFvXHI@i@KjKc~ z*E=qlYkX~(mQq3r02w8U1MX)W^{6p<&0OlzOw+6SKI?@u(&S2k~v?>GZFb-}si-v&E5oY{8ZOJb3K2oJ0Rl*R!Mkl+7RQ!G$ zCDosTSoa#?K%KI##xBJ3>aTYKv6@wgT%Lg5R;M}7sTv$fq@D&a1(>_wKHqf+9JG1> ztAexmz2VyHx21C4Fb^`?x)pP;u8eOeC$s=$^(d-TP*Y$A1uFx(tQuHf?tAcotH&%h zrTK%1BPvQqM_->BNQ!FJ!l1I!-%mt-xD=-IGg9-^igxEB%F~Eay>;E ztPu$4S0^>X_;kLOIo&(MHzI{r=10rnyT;t|5hRG=!D;8q5bU2Cm9l@g;x!l7N#Vu~ zkc7%NRzbWka6%Z{K{0@s?wNyze9FCdtfoaGqH6AER@(n6Zk4%D#n!n4eLYo)xfn4* zv`7%ff@4G}g6LbNj+stS{Tt3k8F&@bcFN8o1L^iQnNc`r5Qq}5BFFrdU=D_w)rSSt zC!C$b#i`q6q(jJqdVc|SL?RO7<|0I^_?I}7XQQ9Fn(&aY1}u1y&Y(jc>C7rr$s!ly z-Qy^jZ<&t}M^{y1l4KBS;`sc0A$KU4!lbfwbrZ<8mnw>-XyYWA+p^D7pZV~s$QMMp z{uT1|*-d8NQG_T!FuVfkv}nSF*_j*O#g~fB&+WBjtW#vaC$JA;nv8ei0|0p`#ro79Nn64r7{=xDU`|7fw~( z#-en%Z!3X4L(;%Hj>*S>QzW_64QeGT|IFf*^--XwZ7dubO^Q+{m_>uW5w8TfC4+)N z^c%KL!gkW_{obGFU0X~W!etRcT@5XTLh?_#RtC<7$qLpZQ{IiOlH{$!Up+^m+V#~_ z%jn{|WL=T2;`6aqbWhMHF}0Y95GQhZqPm|N1lz)StvC|usCEHcBYGmHv*|&&0V@SqLj%jvd+G z$`4z~Xj-R1gvn9Gk)ni7(P%%Hnek8?FSRJqV4Cj7_I8D9ok>{S1E*?VNuHmir%E0x z*)73*1XTEL{A0a&se=%R8U5WbKG&TauT-V8m7cy77(g9}PJ-L|x&V36Bl^PC?|yHV zJTHxji5$>Aw&f84>;Lj9ePt!dW8*$IfXc<~I@)90*i#Yu zC0me-ljs7)RWZnsa3`FUAFuVO_EDuJH0ZKw;&nDp@+jKcR*i<;&{&ZW*myZzCj8Sm z9EmDthHNxpa9E&{B`iBuE$qI&QDV|ga4Mr>Oj9FX1M|J3_c27U`;a>zt@iZ!KJJ4! zNUPSNvMc%hZEE6^e0}0N7S~ncI`qk!F_&&b>s0-Zf#tM5x>M$pBL?l{Lg(iWcg4=p z5m++w-LhPzx5tw=M`zzTu1TNunBhcjsZg6{i%*W5SkUHQmqnfyVaBjrRc?5f=({_7 zb29`yQp_st(QdN`YkOWc*MEkCxl1NA4SKrko)*FNyn&;L zz;PEF@O0h@iXE(d(mS}^npsocZ5pM6p)zEe7nC*!Jf6G9U3lzan-sKi|D)otMZPnY0_$XD7vn7-v0Cv}_Rf=5#~x-6DFv`uJYYx?nOaDL;}cXPp|8p*^<6L9h{UZzNg{ho{vM${J%m&Ax}tGcWxT&sjceGu2v@9MWPP|Ga%Wb3u$WcC&IHv)UNE3{+Wo(Dv9ni9iZWM z6w0{5TOMJw`PSfPw+~@Dm zg!TSNIj@rScf?Us#20;+idNs>&o>FvJPJNaR!{ooeP+bzexLMxF7?3zi`<$GI)=2c zr{o{iIf|VoougcC;&;lQ#`P)=v&m^?nifIfuHg^EC35vJ^u!Tsg)XCBYTrh)W%n`ilWeJZ->_nhb%MW9hx&cL zVLuFnnsp?uFQpb4*!%mVlw(0UqB)2lNxbTgO$%RcH3oZ) zu_ayuvKn0#R^U(XP1fT&8^KWR2ibdq?@U)-b{4~RH0r)^+q!lI1P!Weq9BRJirUSk z7JV^qKMvs=4ESyPwvOtR;Yvu0WHYOV5lgeS-(CHAZhqlb^0k7)K_~iL;w-A}^+IoY z-Bk%fD~k+cw@ymrkQDn3UgVEzkRnuOU^_eNPJPsAVC_0pv-ON&bcRA45pFxwE^Qa3 zV(xfK3c)vtoZZl--IWnu*o^8@#WkU7rl4C<&FTs#eLkr2;V1ENaevxkY$jDk-s z%|Cc!XqKgAk*B+}SnNp!tBLvd;%WJvP>c3vt3fV5l&Ce;`hA7$>nk}6#12O)rgE0` z0f8lYxN=Wiyv<;Z2w3G|JNS%{ZQpOw1aJTOlqG?3 zHqd1!#+_mu+eQsm1Gc#Od_y3{+i~qT_I0&Y+}2Wp~{VNU@~Ua*wQP9XsGU56b(NVV_5-`_iIvLbrZP z4Syn!bml6D^rcHjBR@ahT7jv&nKacQWw-tNEBH=i84iDT_9Uznxkwz8@D6xc?w&TK z`NjG3Nor7G+DCTUCn#)DEMV$TG*-}fP1fc^5QU!vkPr`2C0 zGFDns!`E!u?jzg*Io?!>VQ2?CAg zI4*(4Q!qCEK=VF+4x zZ(8?9Yd^Py83*zD04lrg5v_cq$vl```KxG=a+blX7vjCkZmK}|Ji(;Im#3xJK2BL> zMu4>$EOJ?GyEfNT^ch3674_61YOnW8|#BkF9Z=zBGa63Ogk1TK6!A;Zz;s^l- z-?&GfMAdxXxZk85+j3sL$&SRPNMGJ`c6O&#EJaaPe#8u#r$S+{#wG`tyA}=W)-`ix zo9<|-ZVfdjV2M1?wRJ8P`@RW`r9kV%{dkrNLuu@AVM^yB|Hz7~y2%%<)kj;I5)a^w zupYfSI6bg{zm$gbkD>W5|A`F?^<fJ0wE1x5DcY%3%A$7Y zSguj+6J`7D;j`t(!0e*q$HmQovm3lxt-qy3sQwf*8k4gS(@N$m z_XU0+W(PXC=EY#3ytosM_*jWif@pu@z zY!^IZ_{5Bp)jR)1G!B?AmG9HS4%iraWx5q+nkttJRWB^ z$9IB>nP*=YM^^7&XUDrYH^-@=UwVYRTfwM)g|7uT##Lq)N*Jsp*0^;?4Hs7a86=0S zb)%|dz>+9c+Z-C%6J<3*Z%k)j@rb0d`6BZi>>r8UMNi2?UxK|FeZuC5n&-DG4WR7J zl^eYcrUA9GiDN~F+PjtcWPdG>mlgKB@W-dkDkI13&POuscl412D2Sg?1XpM>fYttio-K4tZ964UTii%?GKF; zJce4-qkI=?DI-C>OS!55T0Ceyg_qtijK|^VLZH2y{@jhLERY3;3_CXIOFh-c2Z&Yc z+V>xs*vwGCoO2qa*-pu0^V5->!pCz znC(h$4YFf&UzJFOLf^`_5Xg0L(gqY*L0}NvR&yw!VC(g6S!w%7eP{aFXxIl?!+Xyv z3Xd>mKktaqtdoNr7`&Wy?93}Mh(K3Z2gzD4tWv$pS@P95AWG_ip>51uuEYg$vNXU< zcz(sr#rvhc=B9Vz@j}~Gr~_32{a1CsY6b(bko9%F2KCoM0;OE9NqwOt=Ijlr%q%it zD<&&K`-`~A9=!17slExZb73rl2~7l12@}b4d-vXZh7l9#_=u{j*107;7cq`>dDX4< z*??P~AF$DzlYj$ze%%tw5vb~2c9>Fw>AHv82G%*JweuEYL6#WYe!JK?2z6DK8v;kk zn`IV*>;7D#0K02J_9zm*`x(h^RiDA}Ov1^E!A|u2%wSw(Xo_qwqIfSekUsV;kVbJ4 zzUJk*@|$Rq_$InQ@Y1dW3hn(V%3>R1ER^ox0p$&BFRc| zJbscALCV1!$VNb0XWr_DxzPSek+1n@hnEnj0<9=ZUMmdKoQN zLZ6NeEFplxr^gG>tXE<1*^!4iwu6e{gCVWCxj^2qC40=@i=*)O96@hz(M4BT_1%Kk z3tO8rDc!{--SyKxV~`M)=Nl)*V6lM#&`mUC_4HuI$@~8-MWclp4{uO?YQMzexyl>r z-p&Dv(T-~B$F3ZmNaAt1ZugYTVGR3mu`l(0!l#TE5ia!;`2>wiodNrkS1g!gTR+-G z_Gxc7zx1&Yd&VkizIceY3V{{Ic3`Gkgv2Nt3?3m`5Mtmcclhe(yMytQA6PbKD$GK! z0$NYW>?Z_U@Wd$j$BJLiVg`|*Z}}f{&QUsY#;d?WIi_bqV70(bdzIYxO0?dR!?;P8 zO3-6s&=8BzHsrKo%1$b+GD7RgY{*IYf7j^e_2g=_B^7>sgNv8NVHbDzpY1IS^zlG6 zMFV=a-8p+5d{z1}nM}dMII}Bk7MgYwfcv1u6%geYF1&UXdy0>pVxqg-D)IW|{ffcw zg5jJeTxAlPH=XZN7OAF>soQrC-Y(z1hSepxuCrH3$Tz%J@C@JAe)BM-pT&IT%%-?IHooIKf{HWRC4^`3BDd_#+SR z1ue`_x1YGp+!G~iWY5UsfM2shM5-0S-2tN=Xv{Fe0Vg^Oja2CRZ44WMB@%JWz91Wp z7Vv|8$ze>E?KA};_xsnf>fuL4TJQo}DKME_>#PeBY{&^Do~3XXMDwjmHK(!67JN#2 zeo^2b`zs7ucj5*6FukpS1p6aMNnSK2(q$<>XnJ(VHPexL%FNltFRUSyNHdPX52r+; zu+k+FDU7`Xa&V#oMZrNZHs55cd}TumiHOugeoM8{p+y}wIb|#fp^5LNIYcKSRpVS6 z>a5*vwxa0v+}cw)C5898e3~;Yc4@8>++z>nFR+%J>?F`A@lo1lyT`xRGYIM_Xh^QX zmtXLvWjg(-$ICgJV4=HJMYTy{ev@m{TUg`AE$dNYe|5RG4(ZCJS5HCfyYU)j2Zry)WSyYsP?3H7@lJVdU>g_%Tv7C?IsJ@6x{|nCaGZtrnRuz3Mw(yIGOkq`mFJo@K%xfl{ z{NitsP=X%GnN^*^j#c_S0#&gp827Fw*|vVRlP}Dlz3QqnzNr&E2&)J>X!q%mjFzg# ztBxGH3zX2Oww5;FsFxl)#i$?KE)@hvK$cl>Jn;Kl_lpjv2zRr8;$u9c#Cow_YmxX& z0I|AB*x5Gp`N))lCEz=u$j0dLK;fvG2{AH6ym5QCGXr$CAqKPtIkWC|-@? zO{Pt?9pJd9Pv5-njqy%|bi#@Cy`H4jA!6sWD1EU`ZkeI;Law0NGv5A1hM4_V7&|PV zk8uR@*#+MS6}o&pm{4-?%6SzZSUmA!ahu3rv&B)sMM>kx)?`_XhSs|dL@w9m?&t(8 zby=4ds;43o*#0E_*UrOX>cPWPfqQ7|YYuw0rn?t#HU(3QacWZOM7s zS(0+2Fgc(sC;onl4?6op8Q1J>#H~Y}_uX`5wevjj>8w%!+RyP?FbO$ zea7=HFwfA=_!XTsnQkW*QYUBCY!aCi^ z7JD;W^ow+>$ESl7vT3Ij!xMK(2B$s4q0I zxQDuz76PKwvjK1Eo2ifC;kc@@bl3qhJ~*xJ5UR<1+zF&U(s~@=vgn;@F6YTA>dN|g zruZcwqARe4@H8^&j-UAtndZYhvkb;Vb>(}}ZKNDh>?gaOB<=0Lyk=*gdl7wY;LUb8&`SFn ztD%iG`gJ0)j`rv8y}h%`*jQh`V4{=rVHu4(#_@61FX3NO)tOli@P&d_Pxh>NJQFPz zb+ELPrvZv`LsodHPZ0RqBMmh6#&?W3=T%`&xq|gy8|tvE+?IVPjWEzz#Os3QI}87u zdOEK>dgkblzw;p1V&XyT-}Zcj6A`ES*3?LLMi+dc8>)2mBys5=Pp#`$yCCUXiDXRO z^`?W^T6o18G2A6#`FV!WgP;Xf9hefJ?z1&DC43oXUJ!v8UP@J%$e62cL+P)IBk2^9 zd;dVJ!1u>eXc~auXP;)NU*MCafq_$2<`b`8jK%wh*T1+c@lZd-??Tnn$l`?fwD`)= zG%e8gej5otWaD4 zpOdPP>75l{yI3xRxxdULPRaUxM!7)ICv*3by=KM%9y9a*~b_5>5ZvWPY;H~&v_J0r@edF+8S;bZbfp#g93U%Ke1-^dMlqv2V7H3JT3aj z_YmAekMo0^M|Dc?=W zy8OhH%`?dvw#i}@zAcc>M6x^*yi0TK1*+0`ZIGae1x}3~9FITYm^!fu0iRn}!U!8OI?$xmI}|L6dIG`s)fYy42>f`}8k)uxxfA{SO!tT*k5WN7oU;CO zs%MIMGM;C)#RoK6I3`_+F}U55C(;|tH?DEz_z?BBiM!w281L8*V-r4vDO6?O7Mgk` zJ&7Uj;;?8XJ`dQTEHVeRuQAfk-2YiB(fQp%tG?0C39-pF$e(4(OM>5k`f%#JEaZ-l zeh9%K^i6c~wYWQ1Ic*AnfklOatcHLX_&$|2mcOG)6{#Xg)ZE--vI&2ZeJ{zBmAZgg zYOI{&p8!6RKP6|{>}~&(0P3o_^px4u8?htg2uGb9QDC(IX?Ct-szDrSe-YmCRwbLt znP|neY^+J$g@D=#O79wL6;spW)P>@=C~vUj@Ac|H6^o`6oyB3hA{qCt{?xql$K5YN z+U{Sxe_y4r7iT@}9UgOzgh!P$J7e>d-L#Z+Q1~x&?Cr^QZMERR%CeUhSFbc5vcSgN zXCH&HLJ9t9+@02}TCE9j7}B(8Jkl73qZ$rF1^21NWA-wmD4aQd0~#FiHf60Pn4~8g zY(^niyRbt28i62nX%mmkWkUFgKSM#@AuHW4D%|%q1l_;uA~L_xN^*o&jCDfB33G@J z71j}kGA)E;EYLf|lj$?%BI?{uf8b;9R&6T{b^kkhvH8^jc>^p?iF$Oq89Fzht z23TaVAYbDh_SpWMSug}5$4ajSuxyY8nhlX^;Bo?x7Rnc{`QvC*^A7eAWr5O%9d@q? zjt`yRfi=!qC8?On6Ol-zaMC^pCyjJcn7?@M*?0C7zcrw7z8z6e;%>heu6)OP!85;| z{uP1xK<=-s{h$0xa4&&ER`8(k? z69n=XKfN!OJt5&*7WsN!-al8>Y^jxN?uQ`fVSjARBwk9_stjUkXeNHb<@eQR#_4VI z^!QLgzD1aPAl%pp`2A;mK%T~^a>!V8N$ob-hY_>sUU)y+#ZPZjVznwlh{ ztQZYh{%_rY2O2hy3??tt&DAlbcj@zc3S^V!XHSosO>yfQ&|c5=4L<5su`^HGD%DBL zDcBUns_Pk@ijj`9IzU3nl zoSZd59%Ej+C<(G&*W#jojdb^*xcpur}oT?Lcz9%`{PBB;5OFrdiO{N_)g~oUqr--KT_3)&=dqQ_(!u+hNO>t9g#L zP}$s|FN?>`p%VxN+V26L7VHmD2ze1H;EJX#>Nxyjgshij+DZf zTRmVs#Cpte03?L~poSVl#9O39PPMRHA0BKY!Y@B#2$eu$endD`+^ns^K+zgfvTS`} z{hM(2-1#N`-`u|ML0?X}L;P^uw2In3=Z z=Sw$n$;iYJDKOAZdZa7P3u%d%207RJt*4=g3u+g&+M4~aCvT;kC3AtuOXkvdjJ zboWJU7fD}t9y; zXxV;!&=~z$xZk_tjvAMC(|Pd-MZdmWHPBCi ztNYh-WigwBefy=j9kExivAL(cYdg2U6cnFln0GA%i1A{`B=nk1w?5Z2(_q-lgnFnL z2Z|6`) z2d}Vdzpt;fNY`0It%Kj<{@Mo;CM_Uu46WcmTrI+4iq^mB}5PPKgN7?@YFGkz@J z@I>-jTVO;#Ew}=F>ur!tha*_hx^|4cgk>w6sm80 zX<;igM4Il0(Vq@I=F;ds$7?2+%k@7GLnIcdhZAGa`eoowob7_G!omJV^8>$?7Zj$bQAs}PsaCB;{}qAE^Y*k zZawfM>hCHQLH#$?6Tc$Z4VRy=WJPW&=k%z~2cxjNrJkgACSr;mGSEM1X_{rsSgFg(-Qw!^jh zrYf^Kd2HTw$yOhYAZs4(2U;T(3@^IL{7e7aGkS`2UXt{ zvK+od9MTj^ZNG;tAWrx+rC6qJ{k&7vOcvfgEEVErs=BEV76*3a{lw^8tm!{@QA8^= zX~|oNV`e(9;%(#GQ9~q$R6ECQKnO%yw&a3z#sSw@1H<%9UoSRtB4jlamBj^hDPH|} z7-8#$`6iC!CRXYH0A7po!EN8&Jyp8-stHNcI7d0ujDUBRDboAfD!{#bL_H+1V5RW9 z!z+L6?lPb?Yy=7_0{Nf&*Om9mY^TJM3)2Kz;PkEc{iSu2u{M88!>7HX%oL~*Di!))i`loeM9k$o+4e2 zIQo^%js!g! z3zeqnQj@&XnA`uLRV3NJ(&m|DG5s|H#~O)-`kZPq=ET2DUbA=>X5)K9C0M3s3K-Bi zw->qQE}sv5Q#mas&j3zsOg??M&eJB{=~Eo*5dlMtxg>e@!5O}-jxk~ZVciP2jU z%}zS?s)>2{U^ooZODyY^He$0N7A<51Z9cf5TJCW4e-5UYV5RybMnO=!ReX@v;2^rQ zbF}fooSZ92>WK7v5js=R(kqpnH$O7W_UeXSccff$1Fvi&&G)4tbF=H zhR(8yg9UorLoeW!64+T7X6$aZLMbj*ZU=cJg6@C5WML)q)60C`4d*D~n;nDog{BF~ zkJ)!&#R5fbOJ+_7*tE|KzE1H0ecM0oj|!=eBVtVB`JbqGs6Q0jQSvvj9?nLrkt_S( z%3_BnhWNLuL^ag|Xqq7$(LIw(TI-$R#XHH;pg$VMtmZk|UmL6%%XgqXZ;9o*9D!La zvvc_*p_sOo)opZM$SqS|VF8lMtrofv(*fq%)tu;ZmJfZ%-A~8evY%G+tf_q=cA}$NWqeo0DY_18WHP(Y*a|Bn+ z2Nx*iVPRoXa#xWZYc_cIYW5G2b;ms$7wuJ=;a9Mq@0RvAZ-Ac{-(A)&yaq?_@&K9q z$h!4R0&~tfX>=S8snK5L#2bNVO1^5If;>*lcQ7u!MD zugkTzh?q_sqyFvh9K$t;Z>CviQkbw2jCS#j(73Uy`eY;10QE+kawjhx+h%Sl;r?5E zrDEM`Gz#||ru#QC-IF#Q`eA}>*Mes4>XVbA5o}9Zys*a6WV<6}`FP&PAD}(z7O{#; z^?P2RVM{yGrMzRF`{~!)lI0T95XW3tLbrqA)rfG7`tqFZf8#R33SfT|ikCe}38nke z%X0G|*0z9)C?ix*$-7px`u3=v$!^L_Q70LIiI&=i}9kiKzbA9DRFoag?sWI*06G34c% zOW4N?dmp^lW+!`)&nBz&QHuGPeQ2iDGxx#O|H)eQWn8x~$Uc*gBQ@%D^rzQgi~+o) zLSI~5@LHZ6c#~6-JmO-D@_Sk^aY2~<0Fc{#1lydc`DZGTbvo6hvRAxSpg{5|z_tAA z1vQ4DU>?t#!sW|=-F!^Xw(7>pj~5_RYyJIxiY;swv9#Oy(L4<+2 z40E5)n)ej^x)xqhqNW?mGXGy)=Kvj9)Ajp~ZDV5F_QbYr+cqaQCU!E(#GFiQOl(YS zo3|gl-}8RYy?3uwYc>9RSJke4&gwqhr+$U=1FMMbf|3bpOpuKc!Lvjem8sbQbEdHh z13l2LeApsK=q8JvMin26!BZ*^mB4>;XbZ?5q;*^JUn*O0r<*rbd&ro{C@So%P=r^b z9Z$i7RB~oib8Huu9}ZOhC@I`rXt(Omq4Uce97wYD^HqnAC`@Ru(wr*{f+LIaLtj8e zW}|O!`pks!Hc_Ao`$!w`%jIeqPc%);B3_Rd)*)$jQPY(aS;_@Tjcumpdw7&QtvDN_ zt)TA^TYUvPjVt90$$Ug>KBwVvLpOsdX4QZxI>|!0*UifBrjTTkf@F^PS-M)Fh zOCa#P$Dk)4g5^;0;0TVSD-mj7L482zZN@u8+&Ac+!VKo^e0DLy%c?Qm0craO>+N%h7#t z77QhM=WOW;B4a9J1W-1}glbd2ytij&1wcwpM|+iwnys-p)9mc*+sR^gfK+;vZgieS zx?qm%M*Qa4=|#-Qfm|BHjC6TKr}hYqUgWm;$TdUF3<;K4ET_qJG%XYj z62|ivUeGk;BW2N!)?uHOuPviuT5H3<$>JSYGDZEaE&^ioa?|{4YKJ5w{TsC3N6A_)IoB`xgZS`BA&;=ie&?xyZIsQ$YQJWmc3)>{=Ul&;X;9lb;fveMH zanwFfwJldeK^K&w68-8?5=Lv@n^L-W2;?MltX3kR9U5J+5*1DUoyJD5U&*u9Th8(uo?3 zwJ>c+X_-+&%S(<2Kmm$@`TdtRU^6WqDjz9^fgiY z3-Z;!W4uljRufhhMzg+01#3-egdLH53f^Q}4No;73=}uZ#c*4WqC;Wp%<=R5Fpqn# z)#wxU=3<+vG)e|y$Si2SpAC2bMruqnl6Rff${C)AcY8oBY&0crGB-ZK-Uj!-_IdJU zPC>;@Bf=rqW3)|f$+5n11u_G79B-RH6=eLSpD#^Yr^R3H3PQ_sr-861?vTOlrvLHo z6AlY14^q9Rew}%bE#JecP;HewMm|1{1m*;)xs)MUeYDKI9EWZH_;aQZuEYLTUA^H& zH%%$v7sb$#a_f#`nYo5uZ8CtbkVuq;1zW#n%ZyJ>Jyjwjzs4(G;@yVp-L5lj7qq7K zs#ZN9aGgo=19mX8LCfIhx10PSr1X5OkBw`J?3sL(A*GX(BV0#;Q(EGgFJmnJkNOH% zxcsT8uP=#@J7cq-%M43rxw37-UMoFvpj|tIh#I~!N8g4D<5WguE_uZMub)Fy4RB znMMu(ViOl;)h$C2wq=wETb^B%%%dJ|Xa)$N{g6KV0UtP@_gKUZMX^a<(sX5E16PM$ z?1u+D$*~AYpWCQ}P`EWp;<*dfLaz z8#vATvkAgYpod4PzBtAvMvvhCm9EnSHlDOHf1bOUj2W8S>dqT}os_fkbP zo*nW=1;|Crvaynb@%NTV`a3@HMj7;vQZ+MT6d~?&=q9M0 zr#Y0h{_2tK9p%N~lpR7!q)oO?0}RHu`FL{v)j<)BL#ma@5j#7{$;0CiSCSV4Jwcu@ zmn2(IhLvaD8^_l5_CjsxK^fpOIp$a2a0&9h-tn{6on(&O+aIumQ2x+kL?tC9LVqi1 zK@gsRDP>~94?3ifW5R@h^P?ox7xqMChCO6~Y($0 z9HN4Dd2FIelaZbd48OexxC{g>y`(j7^!>cLx_FiRiG=h>d|GJkSsF1&_WJlOJEZgx zl_*}oz7%3k7R{_c;-O=`VHDq_s<6{PS9HO`L+kLsn<8DWMdj7|G5b*;U%7BIosTy# z2Gtk2j~l;8$8ZbyjpIW99?x^Q6cTB`G9(;*QkUj(5qyvGXz@X3+wt80J?B?=tKm{U zM|X2^GF05>DV^ELNDPAP{XkrmOGjNe?yOnxiHpFr#Xm08hGEIZnfDXA?`YpR&>KdR`y47b9n30F2 z^-Z}N+E!@QbOtU|Sc7Q1_vb6?HP0&O3ewDxxGLZGHT!cn*I9WYl7QbZyOlVQPhPj? zgz36lTL#|xi!~*!zu}*tE~VFos7rK|dO=KFv(SU$49>M425zF7zaG$Dj_*Pup=fHV zv%mTlz{wTeSOm-tU}ZY)a(Uk)m_H{)OgE%=(@EdN=K8JT9VX0LJm(ycMxacFfCtpb zWK*Cbq!@vvAuCW%GJ$Q&HAY>y2$o@2qF1ZT(>Qyn@YE7DtjKe%VcQ+^$m1;&ksT#! z4&BBLeXXW;cZ9sSTVTt}j-Jn*_3R+U;z51o_{?Lo^&>KRrYpy$tP^)%#7;d{NZyD8 zn;!izJ|#+I!l1N;U3!FNLWRu|zYRRen1ivxR>p8WvI3@fLf|{p90DQ((u&l1= zT$~>mE`((#j>eW-FrDFf+g}`MGL~-h%#Y40d$(kLkxEY#q{36d=}ELYAIra^s%l`* z1(ksoA8BvD7c$6LU9Y@QEauigQK?8x1aWpZPm-Q+;~CGUph#q-+cAqB5{-byB7iu8 z?c27jO7Dc1A56vPf^sqEe$7+pF-)u^`ZcW&vv1gpVwe-w;Xt?cX%n>O2cL5jl^*}9 zHX123es-ns_YvXmyPQTd=o{Zs8}VdM2K?(BNNdMb zjPY8sx|PV_O@yCz&}0d8{8D_L!Em0$#6Bgy;+A-;4P3hC-qOPkN5fuW%~u3HG^HYI zMu*CBbK+>r>O?`&`otlw4^g}MqB7hRs;F>a`8_8yO*gbgMkCibRmAaABH3Y59w&9B zFtwHct^vewR3;99*%V?XrATXc#pptE=qxwO%MBat+vb9ohM#4&$Qh(HI3sHj@ae4H z(jCQ%_qnIW0xBj$WmZVux{}ff+o^s*&mJeA_B%K;4dm=xT@8ey(t2481r9L`Px>~B zqv_t)pmiP#gY-eZV|Syq9`M|#12OxcM#^zMCGSF$-vC1%_--kc`D~8g#Snh>Uk=D$ zxiz|D4H*F^KNgDXNPoFvF;xm_!t;a8U2JgJI3$0LH#r#CJ0(oMn!knLO5Vl#o$R6w zohO#LQOZqHHn`xBW8@zt0JFU7AWZd(6PN$x96ARV*09OF)@bwa_r33uE8S&4(bl-- z52m?G`7&z!N$otgA3Te@uN-#6%pgvw3$z^+N?)7(I+DN~2 zbY-Qkvj64;Ht2*uXDN-9A>@4BHIfL5iz19p8bv8!)d zJLpO_GfttN_uLM#q34Htt+>agcEGiA8~iqMY5z@XZ6}pnwsk$oNVLoK*K%aO979!N z9;7bEk=0iN?u~pGIHqqTr>i2;MBgruKbK!o%)fWc6c6O>ax|H<8MoBQ6+iPjuhZ|U# z(TOniwu81l1Vu*5!Hp1iTEb9x*($Kq*7&YB>R0Yj-)}GPCxo00k0@D=ZYcJ95%kQC zUw-6Q0I~x^bMXWEz{W*1Jg0`ASD=i_u5jeyTbu+1pnYT~TBl{PYMX>lLD=h_q1Q~8 zpzI{#r3@&HIbC6fJD}FYOq#oCv0az81-_{tt`tJsqg~_B-Jn2yP=ran(IVQs;PqUQX6JuYUvxF-d0)ij zXB*1MCx!YNeBO1;i@OBxv((RN74EZs4Jq{-ZV5yPV-E|}1qJ~emhM@i^9cN2+Bzak z0ETGEI=Oc2du%r6Tk|&fn?Uu?M+S7SFYxs3NlfJp?L4Ubdc)hv$otlM8D*m_e(wmf%8o0e)MPeMq7iiq}xPRnnrQL z-3?5MVHU~EH-Wq$fCrwC=1p5d5H8Vo@GoUI#l{|H8pMDti9Q^N3i0PBBr5r=XYSSS z%WOl0Lgtg2&-U=KtwvqGvyRB54+?g<9Gsb08Q!GsP&5Mn_ai=0`1(IZ~JZV%xY~xGQJ>Z z*s-nQegoA-tC~Ez70Sl@wQq0^1Uu_)@UqujK5uPHhjAatswGdv3dBxjg(C!dKW$Co z)g=zIGpTZZ<(>wY!d4AI?l|N+hb zX(OJ|+XFqPb>=qZ!w>s$Q%`>fb0dy#Lpg9?&-xayFo<aqPD=d)DhtyhIAvpWV?N z++rySQ0N(M{js=$weeZ#yS{bq5T2`lQF!*kSr$~89kgXXVHP-}!X|sS=D2x##?o)w zEU!ijLtK&E;~VVX^H4JY*r(;JbIN_a3mv^|_XTPrMJPO){Om}{5uDiYE&lCjyANek z%bf~(>c?hKyRmI8Nml)`Y^j4^&kCOTpIEM&qH&Ibhw)Ad*!E z4Xnw%!+5V^%#BT8nq++9B@00I(Fgm==1$=?K@*Zon9&R`S#V9}zeJkSA5*YjMS-x) z@bp3D_Z7&%!EDMpWzSLoxhffg+>#hu{(Jy^KC@HkZ=)tJh(wjG;D&H9OW9srbeO-D za9dVDBzSL=#dpPe_DXE9HW3H>t3wF5q1b?9>40Cgy^R7})jJnKEBelF_yLT4Z1$9s zBgayFm5xkLr|)G`7Aob|NZSQ+xBMG@p9qc31SCZo0G{;d(mbKV(ijd~ijb^ht~Be)R6p?&P@H>*a6 zeHjx<&YnZ1X4nIe0BkL6N*Id*$TfLF^5+^0_=3-q8l=hEi-**=&w5yR+_G1}_lMo3GRX`Lv4Vf#`BC#yX~dzW=Qrp|47>sYuR)89uHRb_Kz0@wq2 zEi}a;zeWJ@SC4)71IQ)5h=$9!^+>RK=Ns(>2wc}84YKT`U(QbaBpRmoc!%Q_=Qsmi z{pGWAz#B>3e4~|yM@_JaPU5>7U&2Qal1Y&hO=~RXYls=>wXBmduFYOwtFa%6F8avz zm|KRjiVqop3=&&-I&a_#khVARqV@lo^KmwDyS=;K5CV3k&!C}{R(|K7TN1y`@uaIB z=1U(g7rFl*&1PFz$+M$R?3q( z81ig7g(g?m5GO#`kPNLwsSe+J7mPD}K zU=^g%V9*9@e&+699?7+EY%{wNPUI?j>Ah74V^U>RVwODdz7y+0H?*CQNzZ0mK3OS= zn;|rhT%-LW0DqRR5srZAUuL6CW+C$}5Qg!XRXoUT)1}B3MV083bEu-5?f*{0oBp9A zr6!*y6Q#Lmw5v3@QE&$L>XRT9QtC;MIY!b$&uWs%5NpH|1Mj!5tY*c1|4o5vBYjz_ zYol0M1yL;SA%74bG4zQf4!Y#rWU`QKzTAzlKA;gnrtpE>nmX9Qa#GiElQCwOVT44V zE4+_K9`1|iEZ}GC!gnTdpO}EbJFiXOBD!A@acbh}vDf^NC-7V99Iqpsh9?PNTjh!( zSXTPmb}X=&>VceJqDj18#q#cHt9ht*!I1C9X3t9;uBVjkbYdJeoj@B5L_NSYa(jN& zp29|-No>F#T-=_VpW4vxx8e-9E{t~ah5ZIQ!kmmf{0 z(iv^$_1vzHw2?f#k!iCc*QK2vCp%wh-+G{e=^;;Ue}9xOby{tW(^x6}k{QCSrfdt1 zu4YPnQ>i%$_Z`aE$&WiP*!8|kcC(ZF>1nSjIeAtifZy+K=V%tgk*8e=%21x;*bsJ? zqrMnXfDZE}KKYIZiv1-r#}j{~9>~^^FchJ6Kd+=?!c67kLHAN)xM{l8ebP1dm1g12 zs(=_(0=d6q3_!8{BJN=3F$V-w$l^|VeI$aw?@*88-p;SC(yP+c7*GZQ$|cG^3j;EkV=2;G&i7A*&5 zYG8UQ;!+T@cZOQy28 zAee9*?CDKF4DU2yvbVqwAHx}zE`4^j2sy?j`hqxo(+ty3&vj$jhDywVtnIAIOtekf zj4QKZy(|<$;K|@&9gGrcqa%D2_o+KN6*`z4jU`i;a?a z;-tD{iv)T!6tr$!7PclUqVF7`O%DFt%r<7~!zWnV!L49?QNne{8Yi{S*Q4DfG@vme zF+Dwa%7-Wr989U{`q$O94MRjy2Ct!)*Geg(t5W#x5vc0t{q8p70A4~(6?7Lks0dy& z^t3JF4{0}>4XLaLZAM}aT-LE(NXrZ6H3akH-#8?C+Ir+aFNerSh~x&9rZ{65S1pZA zkxrjQi>?A2fGu!9& zs~YJ7^ZQVbB78)AvgsVbgW)o{wscVRTyd08#_e!*rCN!O_Zfw)Ye_q4^e+H;pp;f@MMhNw;wuoNRt)6xszRq|d@^u>XGdM6wR!{3Q_IlK z)FR`k2W*2~Bq=XTcP^2QDa?znVLoZ6I7Yw1Pm>?#C0c}Zh5K(6pg`gxrhZi_2LZxX zB_^IsTnhB()DN1~ptyvcM!qYl23BxUG0#1QLRdb1ZvqF>@iZg5<(|NH5d~e|(S&%~ z83>%1k9*u|oGxsR;C5|3EH%@!D6(RM{WL+k*LC-7zNKEcN$w>E@#GL51^;H;Mi#?O ze7$Q8@8mZL7$VjTCKJ2j-s{Q>Kc2;R^Ryt%#U@mS>rmLqI`qYq<<7weuLe*0f zgeJxFNx0ccNA(bua7Dm32Z zgPjpZDC=XY>5<-!FLt@<{65`273j#Wn0=?TbYP!Apb_~@FSgrr^lOapLu9M9ff~Gc;5>xO z^{-Z8V{waW)DxQfxicO|@E-Co7Nt}USxN$LUm5tYKkDyBN1Q@o3@#Js`MR-0OYHn@ z?85&zx@J?;&CV+Q)8n_9p&%&1^lvXezI0a7wjCXSmG^k6I&8`R2CbODAMYMU-zLh9 zaxsLWsi<6-@v(P=bHzZaA`8nFYIpT)k0bIftb)bCv*{N*4dU&pdeW;wHFKfd*pt`; zOoVkpeKC&OvqMqJZ#K;fGn>rrq`HR6$6Tg^K&32%w`s5ZBH6p%5RQ@;@r|!|0`l_n zkA5PAv)ahyLk2L`d_)%Xd)2_G;cY)zg6~GOMb#@`cyzmnEl7989SyQEF>q|Oha$Rn z0~4fJ%o~?bxba8>I{iNJ8gTvCcWtpZ-t1t9x_TWqlquDFkkDPsrnaWNC2kcm$}sFI z?-nO9z{-ZM_(F7pqCkhze$cg-8f@j;2%*P*c5PhoV~ZSG%uwHs0B%=ThmspVI`@b* zp_}Wj_kop@ij2wa_U3n2p#bJEP2Q}Fo1Hzv&7S8vWBVIgIOzn_l-VQpXdk$B1Xdhw z-=vP!JC^H_8#sKwz5rN^@O_4Nou}j|1{s;5*V`oyIv)9oF`NCNPLKctDVoaAd`J}D zo#-7O=zNFV?>>)nssqguMMI?*lQ8!F&$$)8D^n0$maqF(x>IzLi4nB-|eON zAZ2uPp=rC!%VFM@fW*+WtL*xw`9m5@$!kI$>vn?u;*%PacCV^Q{XC5^@vx45;Ni8c zPe~vBXH*EkPYlgXcPq_EYT35p@(vJp$0mz6 z&S|TaCHv$*C&4~nYjCjL)t5Ig->>n@Cr*C|K|(%5L7GHOdH-_K##3kx>a8YWx|xP# z=e4&!-v;0Hy3f`nM^5!q6b@CTj*D-uW-fsd9D~~_rq70&Oqx{#d&`BXDZVJjT-4O3 zwYkXU!^-zSF1bY8%NR3jib{yfCBTcCxFhq)97M!&o%bren>sysK-~XsKizF+C*GGE zLOgu{-WSSS;DQuJwcLQV_vjPjkjGg7Y)`$Od_|%1Mfbjcmv@uWLl)T zO+mwrk*|pNXJi9?xo|G{fZ{HY0Co9F3YK{Xxgk$~LHv90Hp&?u_)8oUC_W1;v+0JJ z{qEpC#kc-#=dyyd5s|NK*#N@4>u`sQUh!c0&eJU!{2NlcWaiUM5oOkFYkGAAlmj>A zLJ^_LXvE2p*V5q+sA6~-N++?4hECaW$OcWdBS~DncV~20ztvX|9rthFj8rYN5d?y= zpci7JrfoYx{TiCZD25@SSFV3D1y!u(Fr9=96T?HJn<76XsVG;IffBmtN$x?`c9+-C zS1&qW7V^LO82P{S7#L_sx>q|{3R#`(# z3lB++!4eOT^~Z$h!%B0WDLya4#gbQHpG9fqh7xT)m`4xO0LB1*we<^~14TPiA@p;L zDVY6^^J-2hiD206E=;>|To$hP@y<_VN(wvjkQeqC7lh(VLDzvVJzzHu?fH9Go)7OU zjBbO!8=R*_0`Q<4({Ex|=&UrC?V;26lkT(!VRRuD65))}v?g0D1@2eCG$qi##=ICd&nuAW(n-v^*TLTl~{FC%U@wa zs7A*pI?=}lVEG(#tI?GPMRVwZ1;abZoF+jLL6w(%!Z}Err{Ff)&7S(4a}{w0_({UG zi*$K0q_X2QqoNK~bI?^N4lJ|n<9QZdbq4z{40g$3+T_{95IQJ%eDKy+&9_}eNiS!> z&46EcuOLl?m(!TBWWb@es#6+a>KkG?K256^HwFB%`^uj9`(gssnTp0e$%AyaduH@m9+V{#37@sp)&uLXxn~jkqg0&IZ7CP6Q@_zca z=9v>Akb}_({OxU)8RB|O@%d%5XX`zF(_7pzLDK}ied>x$!imhr07q;G{7MuKlJ3Z( zw8%8#n+7V>%sV+}jXjLJIVPC*h0tSO`iz6Ollx%{lPbJ^^Z0=YiXZ#wY6z3K?%{4* z>-Qz}xJ8rO8t*w$*#Hx?<#nO}Tk{IA3Zh@eb1Kh;Zdf}qA2Z&nP69rH9scV~T{Y{K z1PyzY061OhS0pya^!cBbbjr6D?lzg#6-%%^;jeTtW`$YdyJdReyOcJPh=~2Vg8RYQ z$sOZl4lRc%;UuZk{AxHizH(vQ)&<}YKm2H_qZFjLuV)Y33OTGAQ=FC>p7%Y@db{X6 zM2-b-_VYg2vnl+~z+C5o!EUdb;|CA`_am&tKJI%&ws>zrgy$Is%b`;3i{|`AE=Hv}IdPmB1h+LG_8{b)qZJnp$hU#SEp3?hbG_0(2nPsDD6{ZVv8Mf%*5F zX(pOr&^e5(bX_o?rt8t~enLuTld_Ia1E`Qny%3}|jix;@2YIpgotG4S80)XKNyy$a z2Y;lEycofLz&{=>=UraypEU%4viykC1+swE?Hourk>4k4vAK>Kt7KXo?bN98Q@OHa zoYV2amG?fYi6Po_AJ@p)GE$G0{QSY%?6C}yRGvyh)_CG|1tbBFpW-pgJi^_KsPTe&400hk?s-Qd!cIMqT%2SMdlO0;dHoHJ^hC=9ST? zI>F_-M zcxe(iQW9c8YD3ka3D|jx^g1nsfU$a&Yj0*QL*a;_@2a5SJdHtb&O4IO9_I4_ zr|l0_PiE{gY)-&ix2%!#EQILBg99qq_|XM+y^c3)`5~L|I1!1`DzC$R=LdEvtV<&I z#X{rrU}W1klfvWs`jc&Zt1NPHL0>Hw-A->vDKEFwfbLoe->5yKTJH`vaZ_6wlS#!@ z%cJFxZ$%@7K|F!vyCRxs-K^X8y(IB{BvI24}7OnbM z#SYVuO$u6rMH#2|De}pqJ55AV1GlJN{rj(c!egiRF}+(_+BuLDdZOMND^dY>wl1I% z2R-tt8?m(%D+}GOg@M|?JYO)IPiCst9_Iq>GV<=PZO2t6;Ws53KjKY0Y=xy-izWrj z)cUbCoGk6j;v?BSsuXk8>(*i>Rf_74#vI0td-y~xG)TXlbFm*Q(~gzREf$NSlSqeH zxO?abprpmSj8l+ecvn@ZUW!$Wbx|yGEo3a%zBv^=!BzT;&?ysh*Y93cn4{=wbya_w zQXY_W>;o_PsZ8R zEg=G1sWRaL<#?$)?4ftp`SA{1{B2|xJB@*ct0Nfm-oeql7l}0 z%i6z3gU_z$*|F0}!wMz%QrnP)fUSanCTIuG7hWjMCQU9L zc{K5eMS(dZZS}KdzdAO4AI$Q~_+X#B(b0+2gr912DrIuExM~K+51bssyfE29O!M+o zzJC5X)j)=_lmkgFXPb`_NE!mBQH%|oKR4FuI&Z8jVTEr z7h4B;aqUglf@kPeDwsAcVHYmB>FY13n(|HtccY(vxzf0`u1#M^1Sn#wt)KZowk>dR z#hm0?90wo=a=_(A_Sg3x&@EQYFM_kW$W^8h79k-^Di4yWeL&4zC)T`LpK~$m$vNGLA zF9t1n0!x<_8jMAPNo6`A7$4Of-xe5j&lu?T0_qzVsS`$lk(-4-Qwx5_e0JQs+u8?d?w zseWMu)0v>s4dU4xqCN}>!&~kZD%^I@16K=5oZ`X-vEtm7I~)Q z`ZsY=zi1Jyirn&H@)a3nqXvxGS&0&{_B*aU1`#?Efe3T{sR#bU-YN}(xZIQE(Z>_8 z-yV)LXWl77oC1sx4-bM9-JO2r0*p*MIoQ5SBq>E;;#1kvi%Vqi!if_o?8JBH4(gI@~u``S>}=o1Lx#N&W5JP_Z&9)bk*00UmNXTu>_DY=%Mm?0SFe z;iA|JM(tsdq66L3YL&L{6DF4FFvWTN&^L#pqZVABr`*mwJjPDrJXx1rtLk328fjK4 zr@kz_o=bFtgse%`G}@zP{km6txk4}bvn9HgW4Mc^k}i8D;s*w*FT4hR5HpM3vA8OE zXn9H!SsxMigEKU)7Q}Jt{T1bUdy;#V<;nAbI62Bh*oB(}*WOHP6+21WRX0a(ZXed3 z0UTNW*YD_I4XF0N;w6MxKpvIKk0ypr48YwuapPaoKR-TW_yhN($dMoFtNML+Yxs6h zUt)I1kAHb%7jIiTAb$4aDvxtQ9d6@JTFdslcu?RQL#NNevW4fw5SFyXI7fW2)p@&_ zR;!0EXj|dbr}}}7tL)gR+qg~hc@LF~$M{priKaN07mLYd{k&_}ld~o-T0V^;ErL|Y zv$iY3qy=v$I|ox!AV>2b;--p;nZ1#-mBVKTJ0K4fNQ3;}z|B9 zjTn4?^glnm>Sd;!?6=000CG000UA8Wga1b0cFHkUyS) z0b~C000iMLxaenRGYVW9bOx6I0!{xX3=U8T zg8%0jfxuJ~2S*@E@NcxFm93Sl7lVl+Fj@iFU+ur6f4%#6leh87xuq|Xn#di z_y_6AV6sIF0MG%&LVwKVPy4%j#J|LUp;sA9;AsE=Vn_f$7WrQ~tUq*rWm4G6PQ}62 z?N4;62|W`45DA?9ByfIz+24Wx9K~M_B1V6KWKEh_0Duropo7%E#CZQi2NF%4t<0QN zosH~W%z+hU!UYu50uyo$|1T%hf1Jes#AY&>n8*PD0Vn{#2=BkN82@Nx9W4F?Pr5Le zZ0iF6w!nM~%lu1@`H%d+IISk~F2Ev#0s!7o|E2%0@XA0urIkI9WXWKn<_!SkzybiL zz~ujB|95Vb&CG#FUP}g(t55)76IgP&z^VQ(G4?-W`D>N_0^~B7{0avE9DzmmNBfWc zSyCwfc>GBWWiSzn1^~Q)tMo_vkNqjd{Vyr-;Ij4lC-3cF0041dDNq9w^q2iT`v1zi ziWd;UX~$p!NCp6)kpO^B)_-XU{)jIR|??2~k29x<`0AK;A`=kBG{#eid11)A{egFUf literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/ai/resourceDatabase.rdb b/docs/evidence/package-2026-09-19-111731-all/packages/ai/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..2a1c3e9bbc84f49b95c787b49953a896a1cf8310 GIT binary patch literal 1721 zcmbVMK}*~~6i!8L5qoG$FQuTO#kSU6dsIYNx7tNkU6bC5$ZYbmj?QMn%k0Wt1b;$7 zr1a{^Lk~R^^wvwEy|lN2SLweHN+%|w?#yJ>95PAX``-8Edv9ib*+2UQx zvW|M?Exm^1dMAGFNk1e@zg&pt@gP?Vk#AVtSEBdiTLr-<)hNaNdUX2m&$q7cF)oed z=WIKTmI^Z;KlSZ>eR4ILU*sqV77?~`Agn~y;ZFJKZcq7eb=TiGkohr}<01{kIoH6{ zXxGB{$@}{kk^Eayhm`E|-~H{!A4ZNIw1qF}`EmO1=k)RK$($x7PFpJhqb?5xV4+DU zBUQ?%Xyx2CAL9Q>wVf%5u?c=f$&HORkelPEtyec0-Ys7`mUNip3PX4CQ`t6NP@@*R0NM?!{;f| zpr)Wkvr%PUqmiI)qyV311LYp^sH?T71EmebqX9%JWd~nv@DZYQMd{0IrAhzG;MFvy z4rgN>!kSzmeANNe2t(GoZ6BRhB%rQvPMA2CZIq8-_4dAK+(1O%x% GDgOc7H=yMJ literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/chat/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/packages/chat/addon.gproj new file mode 100644 index 0000000..d2e277c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/packages/chat/addon.gproj @@ -0,0 +1,12 @@ +GameProject { + ID "ERR_Chat" + GUID "FA804F411BDDF2C6" + TITLE "Escapists Rereintroduced - Chat" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + "5192138CB9D5B911" + "D31039C7C53E348A" + "9AAEE9041D79809E" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/chat/data.pak b/docs/evidence/package-2026-09-19-111731-all/packages/chat/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..0f395f0b85b882398e1acf395a8c9fd942d9c543 GIT binary patch literal 14469 zcmbWe1yGz#*EWb-aF+ms`{3>lL4&&w4ufm3KyY{0;2tzM!5xCT1q<#DOY%JLzTda? zZ*A4yRXsI*`a05mPxW-2)0dQziUI@#kB_pbIIE1Ls00KA#CvE6NQmTcg%$v<1-b&P zvbL%gj6Tvw1emum2nkU&Q3wbwGgWaFLj@~mXDhJ149M6FFffsa~22Nn_F4DDT;Hl zaB}mCvPp__@JRAVO8NXV;>`RnkojMi|8{|?E)KQ#bv23?%2Ok7>SPR{=TB|y%mPF4;s zZxaQO%i5cP96)a$_AY=oxv>KX;NS#y0lRoQfPesr|9Sy9n}Y0(ovgt804G;_7pu46 z+>C9l%#8oqv9kZ8X5j>Kb_V|AMfxp#1+dxM6eRze{VTOnwl($yIf;YcEC5*9{>&4k zYU~D5d-LWDVENNGQMClS%i62{>rDYbWX|R zpg%94gnQPPM;~T#76?1nf|P`n$;;SHP-I&WHDb{Klxx|H*M4_+e6y*m{Z2i1@m+M? zJOPIk|1Y5rr&IVJ$+awkyn>;!3f4JDm}+H)+d^EoV-}HV5kqNYC?J#NWXkl#Wc;D# z;-D!L3x3N}6X3g4evHMxGC8GC2F%YGe@jJZY)!^+L2ak4uWfcpIjoFI{iF+r}f#vd^7-=0A%swmRu7@^}S!gCPzA%H)Wgy$Nh%m+pA3) zEFM}Eux2towg88vJcRjLaN2VibJ)D^?-_O0Rn_M&R_Z}DYx_dswse5TscP$s z=Dk3ws@}vbaWi6g1{214nTgCVYlCQPzn08z2%a;oJVOrGMy}t7YvX;sP;WZ1!Ywg4 zQg0a9XqbpypGJ?8!y2BXZ?q8mCLJc*xZl7ty=8)bsD10SGIfrSBEv!Ety{dbBk7+{ zo`@ULu8itoQ^92n8}=Zc07X5`xK7S6jpD4{Va$9`d{3pbQ6;I9#1Tkzmx=N+YT9AD za3C73KOe;(8%{^_;+7^lxgJ!!BYR{1_?hAKSZgJhKT&~j{+CG&F$8HqWZ?d09BwZE z_37h6`>g5h4PU$@d}k=G0rnNMMG%$fjMWY4fNYtdM`k;bjWbcxd8;36ZzTJ##3D+5 zEB^da0;zl^F0Zu2?M8wa_$|>b^#T5e6I$Kv=Faxkg}!YEX%*LWb80R$Ek@i3AJb?3 zPgtcy=O-o?mr4bf1qn2*ttR&=N*w|ix7zOyCc@~GwRK9G ztn_e?ZPk&|_AWN50=D+aas$7QV?iG7yPwj2WCOcDu%NGp-k^%*jIecR(twfsM+8Rf zy$aL}Xy~oo`N%bQ=#?DD6p|TuGa?$7B`I*>P0mGCe{M$g`_nQn-vzY#_qbl&!9{wl&Mqt1O=5^0!mKtM`_NeL}HzsY?n)ta`cj`ld-PV zDQmNc#ggiswUCc0mLlJr==KU-a|kYo{!+j7cuF*=#ooeRGvjV4E^a;p+;g15!LjD9 zvFFJs1ua&wP|y3#ewTjQz=7M3F&ac=xrmu+~^N=a+$45uaQidmX_ zTa?lMsw9*)VcBqQsg1t-G5VfOfPI>AZ#vv2ccUuCcC~BKG^s1^B0@mr-j6PgpbD{9 zW&40%Mp=`}>6r$a#3JV>rQ&JkzJ|=5@F4RPif|~9qO~VK6g>UqgWRtc*q_d)zk1jr zrhkUACcGc4?cWQ#oTpyCX+oxyptjs9<30z*$jt(W-!IUfY+;|o3FEq4>qBCvq9vl# zYGQbbi7*^vzIz!sn`Q}8f(;gCN~6g@C_Oj#;<#sd-wB5bTu*kyOhJ=ggyMpC87w`g zWiqbVLh}uaNRnU3{S{M(qQPL*>FAZP=;PnYou(nLO)&p(-?zUX9W0hLK-%6HB9~OK z6p(TlN?_@dS%v*g26>=ISAyX>2l{fAKVEWiF2b<;xm z;h_A^&7kp`5h$@8XMxBAG(p)wxS?UbPhgx$8U^Ec45_?EW&awP?^*7`q5r+yCTpgGRo{Hgnvw3_(K>&4c#Tt_gYIPbIk0sK&T0IiUZeszJ#4N?lz!7UL*_KVNP(Nhj~qN zZL|m7jpK3q5AOqFXnI7)7;T?499GOVPPs7%;L71K5j+`}UV#uPzU{McU~xI6aiwEX zQ2k6yw6dxIR7>UTjKFN(Q2v>(NEmWU3$iR1b&r zDORls<5__VrLvU&PHJu&Frv0EQYtg)KadYci+ih ztS&86J+dl%b?iS=&=^2Q4vgA#IA;rfygluXOlzO~d09)^AL`7*B_xwdy7o|aMDqSi z2OB=sfs1YH;Px_4L(rn**NXAUt`iDz{WFLQgZ?@c->-KfzWJxsVrTPCdE;yjZV_mA znszV0P)0M`N+UD21Cl=c3hW@{4s%lI(Fk*jF553?gcZ%{=azwanH34@$nS$^Ahv(e z0*Z8un<4q_j@vK_O-jIO$OWZ&(!3jIO*aCLiA?{(W?Ww?wf%0J?M1ciz>X!m&&yJp zB#ZeDfQQM4ey}^_eEnS@ddDsu2LOqKZXp;MK4UkXHNl6Ph_GYE)xj0+P#E$LRQqaUamcmZ|^t9+ho?8B3g z7>O@%JOf9WzMN~1)7X9NZ=40B)?j?Y6-wj8XkIJ2k1AhQAA$6H`_t62wlnvQ{}{k8 zmfFFI&mv;vW2a{u8?YC`aA8JLWQ5#g?e1`+pG*^Xdr99JVN>*xeSVR%c`!`@g$7RsSsiuw#SMN{r-MqTvD+G39_k!!Bem4I|R(P5dwpx z>}%7?&>zg`5`H0uS9t_?*j8BhKcJki^i$N*ZSNOGRS8EolJ+qcpsVG4VIs>47N3?? z))4s(*-pmVbX|zTkx((jA=j-!)!%pyRUX(yyUsM-bo1i@kKR5;E^@SX56)?HNLJe5GO5uQCtN)_JZa+UARFMWvN$2<@s+~!#w^lMs6Rfb9u#&N< z)t<{s0dyz}ZY{uVu||R$7q6a_&htji4GWkyQ3EzUhz}u6j&)-xeCLnC^7`DZ?EA zj!zv-pbl8A(yOAsYCSaIbepk-==^CbX8MkK&hmoXrae=X9Wg)pVSgn&Tq2i$dN$qw zni2alLA^5^Qt>^$)%iEs$@Iw2A7@b^?-XlU1&fxpalxfMCdXFrG1ucalD!eI>53xv zEE{&?g<%4L4Y%~vdGpT4yHvzYO`@H?rYWI^1yg{1yk{Or;z0S0x!@}wcyUwp=EnZ& zJX=)oXSW3xcRX@qOe7h|MCDjIeHusBflR)aNLK|r{w|@d4Co*$0+HW)YB2DtvR#?| z=qJz&2&AP|T1(-TS{30c5{|4r#W1Wfcs`St_;Y)W3mIZp@y^tY#uH+t2s!#+=&+c+ zOAQTSFd)-=5;jDo@-avW85E0E3f9tOpEg_(vovCkc;-Gt82WjfUa+J{r5!ZF!l1TD zGOw8q_hXYSQSc-V?@YZ{QQvSdNQzTD{Xm6H;(d3OWL{%~q>{|Skll%oFz?&??~e-uvXHlUBqy{G{o*dYmrk}VW6O^ZIRw@WRF zgApdkFU_;CaqzCWL>_sd)rGV5dt)BE?8H7cC2njevz_GPS}(q#dgh=jA#tr@IYSIv z(mc&M^TYCPP>cuo0<)iZz`(Af8Mm;qX}oR|{!}CnF%`I$_LSk>>lIe5wbpvD6ptju z(DgH*d~lz#CQPvP@>ET%T%OPb6>WOB z4i{6Q+WgO%BfaCeN0O-{HO5tav7hJd&}+d}P4ZGHcnReiAx1nFml7>dpI|Ws1c@l_ z@C=N?4;xc+zl-YLUg6-LcInmYI#^7gN|u|tIk|ea)(12fOx>l#t=U7bWrp7yU0>LK zT>L!pyJmh?d`}52FmuW&vyR1J99XDLsz$mH`(`o*A+jY`)m6gS?-sdJnqA zZ5Ny{;NX(vt(|p1Znq{TUM{r)1ruw$5_F;n`WY{-r-D2&0x_E${J!;sVy*FmitUd- zpr%!XSL+AoNCziqAY$X{-rqIbZmD<&VuuWBXKuA9R|@xPa}rCiU{O#|hh?tfWJlC# z8aFG9Tc$kgi0yoxyo%G_`4JD+FchfPRbN{qoNa(}_2C@3qT$fh2^N!+dq$X3A;c|q z(jKk*DXJ!ZY3+>}-nuD;(?K@B>4`fU!2H2S)0^Ebr-iyPm}2_;FrobX{tz0KndKi(--U>+_7z)b&Bk>H?;Q8KYCo48`)k!| z(P37T&GE-3U?%ZI{L;zSbgI>#U(YRVT6pads4TKtuG-Ckqy?G`mCIXF$Jdh8dy(Gy zU&OV*NE#z+gk7+;Ev6{;#Xsw_hAQKKK@Jq0$*b20V}arq$Nd zwP7O!6Rni>2g~8bVf5jAgtOf4Gx-u0=j2uv6e`StJR8h?cwXKkuI3R-p@g7cFh}iY zV59Mv1@xt{quqIr&dM99VfIr5mBP|e#2 z`aMpauAgaa3%v_EuGv9lUhU6_b>jJ7M-5!vTwZfvJGaUbA+t)Ql!{FJnYahe%1Yxj z1u8T>jz(~`Y=}9vf%oPKMj(6iPhaeu)F|{c^{x8OdMLS#KI3i_R|a#<0eh~{OX!B- z23PJ>Hq_;_Z`E6i`mICv+U^#I zP(RKR80DTUIOm^k0TMCSP9o9G3ZX_uaeYr2;q>K&=A9fJtMUen>Q&y+wnZm)CONIk zaG89>0=~-Hkt)7E>Nkk!RU_$-RKli{J*JxSRlu&p;*YAEu2OMX)=KBD=NBb;5Kyv-VJU3Of&0Htfdu^6V$DNZI5LRM%77bHz42>d z{hxxT4-1v%o->3jC7dhTn=6(%KpH%}YE(ViF!l>^PiXI>I+Dr|6Xa!@;~X5aPs z-SzfxvteVUyq3~)=yC)2;}fCPNireX?_1)aEx%U_L8G$*e|zUM|I=^Gge8wsN7o*H zHOZ6y@eQ;tUD_0}Opfi5*Uz_O7zOs`7nP7JO9M$xUdoovOmt_u^!(EzH@Y18E-!xaw8uTz!J-ti`1%$e)R3utbZHOfzKhZ8=n**F9rA-%9k2gMVP$RxG6!fXsmO^*DvHY>*@4Z>KxP0_TVrQu zz@H4J0@%sL*y*1XB+^^f^S?4NV;2{YljmQFvJ=<@^sj)H4(U&N6kufzptUpnM`#6d z2L8?L(b56P1Ocpc04I=(tCKyz-qqHY{|)?a_kZAZS@hoqeBRP~6mL05EAzK3UzVmF zc$o|R<;2j@F-}bCeV=TIPst&KRdSJbO3LCfk}W=RKi_}^r3x8cu~f!u2L;{lKE>ol zL&h+HwGrou)hTaphqMfRAVePu9)j~rA2yPqc!!pikSQH)vO{S=7>pBDf{A%EcC68G zN{L3UnXz&p_5uA#+r}l#-r2p=)8_F|-}$2=bpi}lYN5Oh4?#@v>Fd#_<1S1KDf%Xd z!e5-xANN!&+tf1KLcNFqWT|prY#aRtNuMa21Ae@;1>0J8av(yT@k;2r2~u;GB&W6| zSgZW{t_Ek&;Uc}Idcl4gAQrC3k-VkK(M^9O;tm1LgYOdZwK?&+qu;L}zW!k{z=m#m z>3UrNJv9j5_lNi1c--8Rlo_pcv2dL_@Viz7RHIal8+rDi*jP>YL(Jx$<-*}K$U z0z5wJ@`K6&geZ24L{!k6qE=c6VMfsxF?^G5vXA}{x6wvo3}7kjsqgYE*|}uJU<4Yu z%#w1!F=}^Mxt9$B?$zu8Z6Zl0&Yzkx_d|9EFrjt^D5~6+E~JAqKj=BvN#=t39_B)bfDL1bU$u-iTgR~*UUf)6^z;>@6gS8G8Y1??P^(xR6Y%lLaEQx zPr*a&CxZ6#9vIcrIShoITBp&5^);-qjV!R;#B_oyS>z}jxheyWVR?=ZXbSfOeXg7o zW>KW>X8L9%*re#z)<}~bq8rgZhfUouq%zFB)8ec7+*ELE*y59lZ;oWwa|!<#L)r2x zY{1Dj!?J*QX=48<$jMBDrQpdyEvS?BXZ@)hPuwl}&Q`Jp@g;OALas_jS){F3z^*~r z^1>n0?PF5(+HHbef@REdiR9d9;ssay0AV}>rJz)DMY`*czD&dd4Pkv8qCn&J*F-oj z`hIu4-x8pFTbXm#k;R4rjd$;UkHE)V6->&-*iUk)n3G0XTThVFe5GJkOIY*MWC~|| zZm}xu-b6=>l=%tyJb5sqdiQzQEo|HlzBOxzV+AFOFMZCH=B#bB=!DmH7{*=BgQIA-Gy1Epzb0+2e!@}4{tCmH}Vx;#2xVB+k08?^{I^9^x zANy>R*I{&yd1_qx=djAf_6(sIVZ-xxpUn}YXnf*#iVkXGTHtV`jwxP|U!rW<7|^zy zXVPh%l06K4iwBpi(OAE|~dXXuH6*~*7@SHHC7c%R+ z>}ihF8H{)GdUo^JHfU77vLwjyOW};iwl>8g#Y-24uPkKH`5cd{E^7zuQ>lL@lPpZ* zTU(0ZCbF;3T0a%s(dbLxkdJHC&|3@R#FzDT@y_5w%bt<-)nsZf4dDcCp$4HZy~b5< zDXp)#95&B*pFPa#@NEP?$hWFt^J$ z;`1GlR5_NMAU@%I_yBSd6cBb82A~BHjS^lK@tF^drL9I}2F>d!%=^c!7EJw?d`r`w zXdJ}b=Gc(6ftHk#gQr<|NtD`u+@`AFMIC^#2(RR%T|RYBOXN9(&oi3^I{CMY#GQHW z35(IrEqG)e3)na>b2a8<83tH_`F~1inDK%KvK-B*=6b`3N9^3e#nSgtwK4&3dEv)puiPt-bS}U1@Y-g2n=D z7`28LbHYSE5r{bLFE=D*VbR$hpnXcNwDP#UHpdo?$*Pe1N*)f?c!vU)`7SN{?Am2-C$9CN)q8ye&eQ!sYcD+gh%X2U4bH}5t~atrVa+T!%If0O5&IwH zF>4uJCO(HQL!-jpLJ4C>1^Vv#VsxC-%0HQbPV=*OQhEj21qKd?st+9l6c{0Zn z#dZW6OOuWV!RVP`S)S(eY$^asA*-J~p6Rhj^rTT#%%Z-*l-gI>gcv9G`-Xk461-|2 z23Fly`HY*A3@^eFr3EBqaT!3;9)_eO-Q#@LrP*q~OPmba-v4IogNbFc`E(jA`+c%& z(9(R|E3cL}}iE6qq)Z0Ah_hQct4B~*qAhSrfNrbTJ@en$;IlBH?E_X7;gp#sz zBma@%tI6#Ij5U~VXOfppu%eZkAuUw$G)g9TU|W^sQnD2m;^(Hl>lihM#;f`5t+q|^ zEF=`A)q5RuNh>I8(y%u50!V)n1)}T{SR=!BwGf}z_WQ9L<8_GSCSyjIjl0+G-uKQf(<}dDfs-EL-RAGSQ;vG4HpxCS^%Z0f zOmnNNc3LSg8&!Cc2OX`PQAaDmU!m)^WO-!ssUisi0ll(Bvx1HIL{$ZFS>xRXgyWtb zbZtM4*lKDrf`4dOCYC9L2p|X*k@pFo-?D0HItm@GZRa{v};+C4ZEesN&$!qqQwbwh|ae1sdyLD{bn)*{ex^I}PBGhza;DlAWHLTok- z2=x$xpqjEQ>*nFNw?E|p10SF8SAuil#TCc-3NHyT2CNdONixG=^{OP{CRGTB3D5?~ zpKMiSSAXD?IEObM`A1Ll?bB&9$T(d$YcpMAh5!CKsUckYl`%Z(db+|igS$C6Wwj_0 zsc*Na^cQ>5?nhmrp)q1Ty;ZbhoBeQ;#>lUjYJK#pWhZ&G22U6J^ZD4Ni{HPoKrb(1 zL-86K-D;xqtvo_#Cbx4tCI%buFXKt0?d3X~pq5eWLO39MiBKP36lJY_N9e^2)m=Gq zUc`B1g*kmdQjCZcTfk9=e@NmRUzix0gj;Nj!R=DcZ+hJf>i_$zKI( z)M^e`RfK2CJX+S=wDhSwIC>%XUi(-bTiK>G3X%1_`KX?be~a?i<|_(&k+blbk(Gjo z+J^nuH%9g~kQRO$xoET^9H51!;!G>IabenDc~F5ev9JPAW`6eA3=y!*IA}!sXj6zE zzv=&Y?^84{^2icc?#|=&cJ7ld&chGs{>VS!-co@RUl)S6Ioc_2+Lg^{&@UcSxT&@X zVRXA~1-rk$76oK+DXcP&w1FkZI1FruK}6xP=1K(t~nN^)2&tK@2h-T@~`kGfgt^rNewWnYlAjowo4B0~HbH}{_X`eN( z(zR26w_*!iCjjSYw`JY?BYxB3mHsLU;YR}X(>ePCTeJt%Z!b_Yt&7K{uDJzdIWQlG zB@LL;9bO3G<8eJ1VK4SHHFjU7$K=)%$WVV1+Z28|a{u80e<*1~0e%!Z<$)04TZ$5~ zfVz*R8U0PaS&?~LXQ&Y3cXwTk!HOjQgaDdkWLiob`+n}EppI^E1{6Jl;L6EK-7_fw z2T94NzHUK0*h%vd*&()|ki{||9s@>z|M;2`@+3cS45%Roq~fD6^gJ6{Xk(8SZse)5 zV!1R8i;Te(Lt)W=p}Dx;4=ievdIvmQ-~1*e2Q~F=re$m_gkJ3mM{l_8gnxVL1bBup zIhBr3fmo|$o}W@m=Fc&E?8leFWirrz1{V1xFzIUHLcJXfWwx7~5cwV#_l}*4<2QL? z?x6)s^f>{X*$!rJc)_6yA~2FRo`4K*gQE`Wt}pf^%lNFK{6{N9XsNRB6>oZQwO zzaPNrgVI4!jWH*&JpZ_UT$9^Hc?Rx%affakrBdQNZfxmKJ)J8&u0Yjw>I9H*A+--- zqbi1aeIFsYetZsp)kW6KlC%V;@*q3LG-@0J7F9r4Vvaq-?H`6-?zZog*Wn&3W=|uE zmE0em?IMwrUnF0TuH1DNIp|nW8>iYt{U+H?BB;EOy4DyRww7vKG)2V@kXJc>k@3Vr zFuCqsczSVVXSSVg^uaaXXHOm&DB25uAmNSto(OWRWNN=K8`>n9f7CF+Ks7oABggj^ zp5H)%;HAj}QC;PsB|D{C&?tZPuMF0y-zumNLrL8Z0i%wumGy33W#z@u-)2Je2B)23*} z#To^pk60CjX#x$$;X==Uv>zDW^qYPDq!~SAiZ|V6GRN;op(|Jc6lPab`qfRU$dnBa zf`q16mK}TB>t)8rb@nip(V)zv>ATf*e?=P5!DFDiV$@sb6}l~%S>io7<6S13d9?bw zxu528`L`I9*K+2;U#GxjCDf7j=_;jPYHZDWk^>u?2hpM_nV_;SrxARh7^LYuNH@L~ zOhv($T88L`u#B*j{mNfF29*kp6G#F3d>_B(V8+WKUO}xe(D9OE+Qu^w3Eog0wz3YB z5AzKg4QNMEpoTM3Dn-ch_^2AID-3HO%6Y585W6#(26Z0^N|A9OE$wc49h2MlY z(s{IG^HAS=*jyxj{+14G>Umxy-g+?;JkdtFo*T4@%QaecW2L=!P4sXIN%UyT#!Mu5 z(V-tLIYFb)!2{r~6cfVJoovVpbckCY-PE<@sSM->$S3LDQTNirA}r!b!KEX*GRsBI zk*8zS#l|&d+DOxJtUlJbCn2`-6Jp}TJDyv)yHg1HK-Rf&ZG@Gv-;EHcP&Z;E5qeb@ z+-$rH;uGE|Y*EL-{pNI8&~_yH1;tD^rZzmy5^ptA+wyiwEHI(q+u)UZpOPEA)2tLk zpaEtie@Hi2Oh7wW8^Z?w%P+DI`I@JUC=DQ;Fh4V_!}ncK9u3`&J|(F4pAC`RB_#`Q zzG~@iW-mcbrz3T$-C}e}cz*g>*uu5hc#)t499A~G*0S`g+AtU%eBIf{d#4?dnlf^n zG3D36`=GJ(Ktv{D0C_|n@JyJShA_cJ^Es>eS*pZnmb!IN*`s_?K7=M?y8A0zCkEmE zk`vy`oLq$Y5h*zOnLEG}@~)e@YmX`e7plr+9Encu*>zry*o8ks#6q(!WwVZ?AyIUs z)y4N-*I3pM>#N+NGLeOM?VdH=r``A@U0>LAq6%o9&g;NjLDX)V@4bUMV0`FQa&Sqq zmxg5kB+@S}m%yZhXTJC+oc9c0R@4xgsBKF6pH5$OSMiV5vFLHTWirBjvwnMNaby~N z8^ERshN}?F_l-;Wo$Pd{?YK91|8|Xs=?FHHZMu?PP=V~L*VGlRDn4<-4ktyeI*9%V z55`5!pV<6c1nSPzx*s?NlGG?q%{!5b(pTl)P^7awhaia^ms*@r2ofa6fj>JRfNNz| zrrw1+Q(5{Bu&bx#wb&)!b#NRF{cx83uA9#pj-VTcSDzyny z-HT^~M(I=^sy{}_69AJ*bkxoX|hG20H^#euZr(ua-6|Ws@JS{XP`+&Q{F%xR%qU~B7BlVhYBYI2MSRf! z)iG`bUFJ_)8=)3f%Gx9BW$O7&V%E?WmMS?duUK!`t@9S9R&j`yrKxXNGUo|jR-)2G=N{^3DV)pNDG-a6)Xks6DO>*stqj4MVpv@*@w&7xstH-cUp)3CU+ zmSC)lu-e?IucFS<2ee=tVjL%R?k5$@NxR0&@=KvwZpb*btAnfohD1_5qRX24dGibx zyBhw+04+6ft>1y9qAcsdLx!W=#GCMFAEID8tWAwM zm{>(uuOGm*Y*`0OiVp88?K&nJjJvuQR(19HKkiwT+>~bq+Ao5Jvfin0QKd=S>*N>g zj9KSK8l2Q^YLj+ppB~m3Ol9!#=!xHEy_ma9u%n%j&*6oKTZYkpN}SS1bDuT;#+jjuzURKtPIVTxriS({2T&$ZDfkK6E}Zo{n^41~mj@zYhflWluGhSW%m5 zXukHFbn(ch$VA&*y-x=kv+wl^#B2wsuoXe)JTo7}Jy1O;C+}SkHafE9$Z38zLUw?o zp5>}ws14%ixAw&$xPJZK&xZdo>8pycc*ie1Ux;WsI0jc*{{kL%<*WW&9Q+W~(~n=8 zQSi}HHY~r%DA~ewA4%RR?h}_Ze#zeTK43WSFV>U>Xl~>nXYcBgL|tL2SR8E{$x}WD zIOf}uxR;Rm=tePkK6~LbAoya4pbV?e<9!Ea@WR)_!`9Ut0g#}GgZ0((#fVyBdK`}m9xccW=~>;Ecn$o5Vsm^yb1X%m5k zTA{t8Vs{lSDS`&XBL;6NYMk}NEiPNti;{xNg4|v@6DQ#Yiol17m$aMRW+Zu&;&|;V z1tW{)LOWmB8{?7J-@nzujn5fb0CNNUe$A&f)|uSSZY@7+>NaHrLO7`>#*HQiGrNmM z37)J*^Bkfizih3C+T;~Fu%~i|CnwX4RdozVRG+W`r?|0-%6LLZ6xEN<(i!*QhGcg? z)Z0U>LG1k(wsn4JcAcJ{bCxt-`=Zt--g+)#QPN3(JzBNv}rx&eRwrvu^5cfdg(qP?}eL-|2_F5 zguvo@ZnYwRjf04%c&3bG7V4*p@HIC~QFTleze~oiwCp)a55gbs{UcCeB74g4(cSeh z0yTCcw6p!jijf*ggv`E+7Z{XGj(rK^zW#Iq^$wNCl1hnEt!T0kX5%MXeo%I0{@wLp zXt`KmsSt4*<0=DiaOFi!|E$OH>f&dTf*M zL8`1we~9iU4zmQho$%l>3*0pbH@04(^~VeZK|i>SSlE z0x}0XS%92W|1u9iW`C-T;5XiclhqqT;1A&dWa{!(l2idXgI%3WL4Uaqf2xoYR>l_g zU}qOA(|yS7ypaD@t1k=KgyKOt_~n4;Quj*|9JmfyZk>+3@a!KT51o>c-$D8T4o5PLpt#B&PQ;r2sox8jN9e z8Ch}2!m={eh6SvJ^7H)bbQtoN$FZZOjjysZXk8w+$8ERfZ9OsI53lK_n7{$Y##q^P ze5SoLQDzJVfsm!BP!J{Z4;aqjUP~MhnN)0WDgu)_lYi?y4pV<>c8_?}Mc))lywt(c z+G`VGKe>W2PudeBn|6?Cpfl~}s?K$uj48 zTZfX&tH9Xg>mt+=X{S!!Cmhdr*}DEs;LFN>3l8r2%U9Z@y~h}tTzG6UM|F;Ld787` zuwb8te6Es)NOZ0bQY=H56Cv=ldS1SG+0ZC6)>QGd$%sNB!d`Xo(XHdsr8@p6#qc4x z-zeshs$s5LJt5bcu}1mkWW5vd3Y;4LyIEa!}G!R7sxh0;DknbFiwpQN`Z9lhxA zC}`ZxE97dN#a@#UBHh2}K9FB|UZ;vjGKrc!5;m(3?4_qmPI0RJb&QIL|U@ zO80G+t+nmF;@tM<&BFo2*I=#~5%05J+=J~}XGI_2%aBMLj$^pz@JdMgL-zVzdfwVn zEdy)&!p$Qd-dfbLfHr>~2~2Vc>X=l7{!f(<`vFLmCUk~UR6ETO-1VG+f_9c(jp40N z2sm*x+GN#F)Fe^KToLYZH}5c*J8o9+a)eLXDyjVh`TdFt7SZ9JnR7glP^{o~BtD(9 z^ha%kgvsE_G{pjqwB?n5Lp#R_5(d;n_cf;GOxsyI^wGno6tJp;c4lQxQUQsPaYEcF z(EHc9b7l8^wApL2SU`*4?9Y|celSaUZPh2`uh20ACYMsO@{$k`ked(?P=Bar2>;oK zAm2KWXn%H#f5~KjHY1)lVb0sgpZ1?eKhfM80{)*})cLOsm_J0Tzu%zW^kLtCkXU~V ziJIA2*^7hi?2PTroPnnEZ$<>(V9$R!Z-2}|!u>G@N%RM-_{QRL1Ic`R+kYLv_Rb(> zCotF?Xo~d)enE$Ta25EE|9_S6{;TxQ-H|s16A;i80|x@4;tl(!{pb1X1^2%SD#m73 z;D7P$Z+NA*nCnshgZ|e6#((juc3_(~)5t^+5azfL5DA9=8wvsc1{HtX@c*vi--{|r zPG(kbR5j24aLDA1UF}UR|6qWoPOK0RRd3Kg?LW`oMMZgI^x2qz-hh7=^zZ1O1^sK4 n;7>Ff|FGRaf0=*EwyqXd_CQkrI|Rfh=(pF2@E>FUOyK_l5Z(cj literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/chat/resourceDatabase.rdb b/docs/evidence/package-2026-09-19-111731-all/packages/chat/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..ef8d862d94bcdd87d89869dce2fb7a7a74fdb1ac GIT binary patch literal 804 zcmZ?s5AtPTV3rATadKv7U|>*T1`<#p2&5T7Y*wfMgyI2Gi76@hd3xyuMfq6_EGV*^ zK%Q@AadBpTUNKbT+I{z~OmRA6B8eoW?-~>o?^>2x1T-c&KQE1e4Q$F=mB)9|*&ZE? zosyO{9Vo&9#KFl$nFS>m{RkP#2drzr>QvvQ&@2pw!|5pyyKq zit_W*Ftlsp*Y2BNRFYT()S8rvp;ZIF)}X|c%zW%RmGSEg&dtxpv`!R@Cg+UA5@;~S zKAgn9@xtjnW;m3AgVMh!B{MIvs4_S?6-Z^~`y`g;C1-$4!SJ0Jk~!h|McGNIK$S=_ zn|-wWdNxb&MJZhBkfQjPPu`Z5=R^*h;8P2BU|3>KW=dj7D$vH9lz^Pl^h{uSM2m3% DUro&z literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/core/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/packages/core/addon.gproj new file mode 100644 index 0000000..54287e7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/packages/core/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { + "58D0FB3206B6F859" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/core/data.pak b/docs/evidence/package-2026-09-19-111731-all/packages/core/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..494bbc8b2efd210f54e0cf57d0250b8cc9e227d4 GIT binary patch literal 194081 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 E0JN7(#{d8T literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/core/resourceDatabase.rdb b/docs/evidence/package-2026-09-19-111731-all/packages/core/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..241b7cb08c68f6c988174cd73a33109f457045b3 GIT binary patch literal 6865 zcmb7JYitx%6s}M~2_(D~eDD+yqzeQPhyrEXLS;+qPAM8dyq&q-UOGE>ot3%%z%=iKx7 z?mc&_YLhi3C4-MAE9S(zmz0!zJ{W$vKP%z$7V+;}-9I=VJ>i3B8aK*P8IvzBDebU& z8~iWMjV6}Ly11>CoBq|hzHm<9+?7~mGU={fyxQ&Zk;`vhxu@f5tg@Aw+)$WBvt=si zE9qvN8F6*=$pgJ6eztU7)ACL5mjMA-6;Un54bS$e_7!V;Ul?|1EFu=GVc9ImH_&FL z>K#oTil4bMW9f=Z!qis42R-ym#TF`l54+7Pz4+ah)Di)E6<|X!(+d?P=?C_jH+Afe z)7viy;06E<3jpVmG_8fGD5^=R(IG13>y~XDK3%;gpqnMo24XN>C!WWCt3OX2x9XXF zb^AT&?ErU!;stTn{_oGNn{#6Fy}l)p!DUX4mdznq>Q_1YNWbLxNsYUN$~OQbN}|rB zO{CG&c&gv^zUL2gX%{8ouJ}q~Uir+8ulHF0u_#5~YOHdFWjg6Cqn29_I~N@8(WmQ_ zuEN${kQYAsG47UYh(S`+EaK|te>-4sY5#hG+XI-Ottv)!EzTj_Ma-5dcW1sjxO~3A ztOd-S0b3$LHC&@b#IdQrDNmHH+Td9cDfN3-+qj%Uy|&T{uIAFzu!_)`vwB)P9xq=g zpdzIM1JF8RnOrZ*kD57n_t`Vsz7+D?W%4G=LdzBcw`1Ds$qg^H*m?gDr4$q2c zaevT~L}R?TktdJ+zVrM~zx*l0KLAnDZ+>wl10g0BH{*~VlN5pVFMs;Od%gSqDuDX{ zbXO3V%VhL?oT$ydjPCy9qcgpmH_jHI*8mUg99I4DKHxWBl-cF zm}M-lABM~r-Q|(-KQ8W7T#1QlayfF>rMI6Qux8}GK7nOl&m6mc*BeAc|HoW>mDC*ViBFELjDfLaA+Z-PF5StVnm;tBc_(j*;kQ34~fG=nwn~( z6|%z3e8@jEp4ApjE5M3y^{J;|k+&HkFj@+t*}T4WXeES21DfC}(aV7<>}yvDhXz#O zgts9C+FR}=MjlJFR2P7iRw^6>F0(A)lx&^J8^eq?8q0>GLEMRyG;aw5Cw30>0_zZ> z+%`&wj%`nc$dg>bP5O|eX<#S0ib*%O4Y%XuI#5=2_rVSO!iQu4JyRTX1#M!Yr???E z9udR>$pSUY6`-erW8X)Za{QFeBk02?Y1Sg9C07#>h9ddN;Sr_KkpSf?B0Q+lS*qEp z;@rxZOmgH*?mP|-yxPd*tO`a_2G3ed4c|*5vSIUToER$A<(rt=xfc?`l%({ zY92;SIXWU69obW^0;O%IENiI7fP&@N2wE(RD+!)OnlfVh1r2ih=;`SA?#w)LXoTx^ zyp5VvbBal>A%YN`;bx9WVIYtzKu=rOdwZgyrW_nme*j9E)IKz;H8|~=m6z*@*o8ej z0X0(S1i6BUT_mYjv&QMG^_!B_huB zdX`3F7E$%}CNZ*Nu#pEXf5A}NF%*Yo zVP^b4LszW{qaHEyib~;w@dU{kYI7)=XdS}@k*B78#e+F0O$;r(OO!+%aHT!aIMp07 zJObOQgPogW@I(|GUeIf-14_cFCy5chN1JOLH?g4y1^YPy1EXbNgR3aj8j0Ex+9ujz z9<5;Z(BTJ?z;mW5o^Av463Rth;ows+TCLtp5Hf}iJc751SJ4m-Ei@bFJrBr-7_`uA zu0&p9@Tg=+n^6UwrL(8yqZUdRihw3~im9Rf;c*cdC~jn!$1@-v*q9{UXfyA4gOkJ#dSA$#3>t{k){UDIXyb1~tzvmkW3Uk8-I?ZkbY&mZlg{xz`u6Y=o*7RU~g m$uCO?I`&lGpf%lBpKCoKh$5ug6^&`|T>{)A%4{MJbp3y3=mReR literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/intel/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/packages/intel/addon.gproj new file mode 100644 index 0000000..5b29a17 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/packages/intel/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Intel" + GUID "D31039C7C53E348A" + TITLE "Escapists Rereintroduced - Intel" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/intel/data.pak b/docs/evidence/package-2026-09-19-111731-all/packages/intel/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..00080e84c46d12b76e5151f578c7dceb1565c639 GIT binary patch literal 1141 zcmV-*1d97cPf|?)00eDNK|?V}ML|RW000~V0098hk0Wz+dSORR0u5UR3IYlWR#gT7 z0000)K~zBi00ZNAoQ+m(Z`(Ey{w)6rCLan4ja7HUiXm-Z?8oRk2B$K2DW|B87iysBG`07fmP1O1ovF z%xW|2MN(NdvKH2*t?+Z9b%DAJN(=e0x9jyjd|>ybm0F2{fr9mxNwoom)?1d#${M+- zNu986X|hkv%aUtb;MTY`kDh zE+`+B7sf2pSQu4PH=>qCf@nlJI}jZ>MwoF$^$_mP^scCGj(AlvD&z*ZGj|ytsAh%O zV&Z#U)1`!b3#qE0>%`Q;rm6yC1E@XyR@kQ`MMmm1Hj@u7*vG*jX4hAtbIBYmI$Kpd zrabt$kgn*I$17)WLSiitY5jo_$?)s9XRgqflxQ zZmvtXIX9#nu+9((h}So;@IhvO^JSrhWlBH4PP#*?(TG^o`3fk|-vfgfC$Xf~pJv}@ zABU*JA`IBOca8Bi8=$n`Z|UXb{r+pk*`M%T{`em@9aZW-Sapo?_qL5cg*8qpF5}_8 zadeTRi0ryMaNBhBe#ol6&j74RSBTBwVmA3%?7B8`-M3^6!Y=OkfQGn}3uGE^Eu@n+#!TAOIs#jlO z14Z)ZD7~BB-S||ZS0X0N?xb$S=Cggn{F-!OMqMdZzBNl8u*Ri$Rx{i{V)39uE8QYV zq0%)D7rMlljqd@EFIZWdQde-vCILS4f@JnBo!!qTkE6T4PH#G5OWtY8xB!7JhX<3i zk?d&4TfC(ZUU!L6`3HXwMRc;2^ zlB5CPtKS8XlmJxhe*u<>E@?(dOho_y08#(|0RR9100&cJa%pgMa{&MV000C>VQpmr z0000014U9&0RR910TM-0QeR1KbY*N)WpZ|DV`VO5H~;_u;{yNyn+X5_0000000037 HU6f{Oal8}l literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/intel/resourceDatabase.rdb b/docs/evidence/package-2026-09-19-111731-all/packages/intel/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..8747de652de335a4e8310cc113c3af10f7239c3d GIT binary patch literal 227 zcmZ?s5AtPTV7MLR;^fQ@WIP697+?c37(pCXmk1aRG}9qK?4@ZH26p#Fa@VK`KZ{0@aGrA(@cTBok*Q3P#HE)T*d; zZL3vLY^x7_E>)yO)Z$WCRGt-zb*ucUbyrGj)vE8#Oaj=?e!uqyW-|BQbI<(mS?)RK z>QW6U0zr3Dk7&eWwFoK@2%-Z7eu8na#`}Zcwk9TKPVQvN3O&%m67BNh@tLqhXI6EO#_bu!@V&~U&?qmpaI zVht=(ibXn^RFbc!a4VKg$0q>@bi9V7aPBn=$OHgjgsfPSP)G>t)G~!!CQ_kV8JH&m zt1^=g7wN>E49yZjNzNJIouu+uRvO561T1hZNA(6rejH<;- zH7ZxgG`>$l5Jx98+As>YKso}qTOgnoup0J4aoS7~F8;F!WaWk(K%+BlB#lEe2%5;Y z;}Gqpte6>x%$O6(#vuyFEKqhH=}9DUARPPO-MkUIt+Agfj=RSO|ugfg4B$V`YKTsB}nN-3<6qaw8kQH#|QjWi#j!J2$dqMhz0T+p(C19k|^%-|FlB)~>My&?yN5|K)@IuWczr5d$N(oPNtYBaiV z+>%T<2M6bG8TqC{7WW-Df+#HgFgs$EmSnG!4MPutKAS<#I#@ zd`c@9`M`lqjC50G+&2pnio{u2D2PaII~zCIi|2$}+Gso?DGH-ng+ifGYGojr<@?6y zc&)*Zk_FK7R$<}-a2)QyyxceqaE~OX4FG2{*e#u~v*D4IKRaX~atMo>wB!NcYKaO} zszoXwR1ikQavyN569a+3!mBr#V0V5LbGU#<^63HV`8jU;-}M^pIL;EAY#?^fHXu@- z6K9BtIO)I{stpjgCO%?;m9>woYPkYdi6w{vfmKo!tn}pwZX#>w}l{iKG?A=|CU7P5$j~IL@AX5 zLzil_s#di?5Lh_}MNg4l#}G?(N>qeuVFj#Eip9!&Zrrz*XYuQ1k;m(SQ>MH4Oel+Q zu%;A;nZ5ZztMz~v@NXtb%0hcXVScECv;fb5%$&^won;x#xD!Z=Y!ykUCp5%Gkqq!y zKuFHODT=V*Y?S4^fKwKil7O$q4hanbgt;5PSe@yKMM!#e>7_Cq~{kZ zYx~uH*Rb7Cd?rF$UH?(jiWM*F9_?FE@_1cSD!K3ZC;Mu!ISnJzn)O?29%0*U_OLbC ze%bls0?%CTG}_p-Wz3-EgN0B`)JXr!!ii^kewo(0V&1P${N@yPwN~$4-ya`PG(Tf# zShW2}@mmoIf9eO_?_Rv{}bnsG~(#{hnB}8dxH8Lq~|Od@vw5`_&X~9hCb(SgdYpFui1S4W$=lMTNa-91pRsA z?!BI8wZQ{6^q>DuAe}$8x-jsqUK7SGSNu>uwWy1-OP4wZ8F*yIf*~vPDaD0Xf2%mB zTOLyZ&7Zz2u>7-sBz{#do;ppXFCDk7Bz^C)vBD1Btkp%-KhTfn9I0B=@23-$a5%cYsPm(;;EX{j`iAMzX~M+=L$^dAdSU+qyDL1KuqynTVj=YP=;Ny^&%gtXJJF77TQ<+!^z7Fc?#HK|*9Hdma}OVJ+;h3E z#d#@Sy7sQ6=i|*y@pyC7iY0Lei?6``E8i)gq&G4fZ!SFkh?%OHvT;~N?%d&>$kHL@ z^&i6p+q!l>IbhWBH%%SF4@bt7sTEDpRm~p+n*wG81?{~zZ0E`7*?X2s`V+0E@14InI+Yu%r$3AZ9A?N56-{c;J0YZ(&zZL z`YWUVSclAebpD?~=hlsD@f1c5m8Z^{G`B~F>dIka|NgGd3@By4=neingecBLkP^WOV+p zZdiutP;x`Zkn!sYbk~HOX;&8x7S#tWi0NeAIjW~q`tV*~O7U>FVap#uKfsGZcAv9G zZ`+X5C9!TyNK(tD7X_V`4yvxQS5EuV*8At$DWxAfdT#W5=URPYL*-ob(|bvYXZt1y z`=l0*SwIKxC_N~?FuLk~XXlS!T>kvt_-4axY5$i8ugvZG=Ck~eP?P- z=dsk+zaYB6@z0tgd)=-%KEU77r7`lOgjxHn3x;mK87aY*=)Z~8mrdShTQ#Tt+L3va z<EWq=st(TGw<#la4hBF4!UW0*jTq;<+2Ce z^PoB9Ur#?f_dxH{$D?mw{I*+WPS`|0>$#W%tEiNR#@|QpZ|qvqN%j3){~f120q%`8 z>4oX1yVjjrvuefV!j{-6*Au6`TRmZ1)aUv|O+Br>4bh{pdmjW1QgknS*8x`~lw7Hv z?zc5;zw?mi;*iC?pXJo{$;C|fgBMM{mfo=Owa;HM#f_?MS7%L(&>q}!aSiI&6nDYecYD5R(a&jf8WL((M~wV; z>6Glp-+m*l3Okzd3$>=}Hy=iIi;i*Fs*1{%?zZo1thmsnQB~)d;CZn9a{cZunp>Ow z!xl%@M9MM)ZrtAS#rv1uJAAWPv=8<7*Ga?H#YWh6io&B@yH;6-hpS`V=b!#^>8la* z-~Lt|He#rKt7H1idt>m5~j==6BA03Z6CnddJ2YIXne37PwQ z?W@fEu}hEQ_#Lr z_(T`vE_}j8ktD;7g3O6c=b?6_T${~u*xY{ts7@p@(BKOkka~g&f0(zAC7AdsftqAM z#pa^`IS9+hU^4MXM}NWMJM3s3XAf<_cmEC$o3xs3>;V|~6MIV+9;FY`t3dfGi--AF z3NKQQgv*=w#13RO{|BWHXX}_Z^Z$Q z2x#~Y9~DaW)KLZ=Fn96@Sa1SlAK+$_I9*b*Rv_>z6bJ&@)69_8`o|Bn{CfRu5u^me z*S$CR;jYOmty2YWc#i?u`GO#}0H?Xvkk+)4oEpO4JX3*yXKUn+(|BHi z>`|mYJ01YoaQwo-OKY0UrrPE?p#s5|fP}q$7so1?{WRv{rtu4Gtyo&~>p1h!jsn5B vHw1z`-F=h&g1PDb=}GKV!5iMPhikOw8Qse6H3g76LLit0ptHB{V%h!&TfFMl literal 0 HcmV?d00001 diff --git a/docs/evidence/package-2026-09-19-111731-all/packages/map/resourceDatabase.rdb b/docs/evidence/package-2026-09-19-111731-all/packages/map/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..1e5427fa8cfd7ebc949e2e431e53f7d826fb6cc3 GIT binary patch literal 750 zcmZ?s5AtPTV0sqh;^fTEz`*d12}nSJ5RhgBv00%45Q+y#C8nh0=jo*v6y;|zu%O6t z0eQZOC8WQym7RiU z(jaT0N>2R#chctOc}rz1NTacdz3_T26n1T93J)wqPV_&>_mf-3`++acdoW#ofQh0E 128: + raise PakError('Maximum supported tree depth is 128') + + +def exact(stream, count): + data = stream.read(count) + if len(data) != count: + raise PakError('Truncated archive') + return data + + +def component(raw): + try: + name = raw.decode('utf-8') + except UnicodeDecodeError as error: + raise PakError('Non-UTF-8 entry name') from error + if (not name or name in {'.', '..'} or any(char in name for char in '/\\:') + or any(ord(char) < 32 or ord(char) == 127 for char in name) + or name.endswith((' ', '.')) or unicodedata.normalize('NFC', name) != name + or re.fullmatch(r'(?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\..*)?', name, re.I)): + raise PakError('Unsafe or noncanonical entry name') + return name + + +def parse_tree(tree, data_start, data_end, limits): + if len(tree) < 6 or tree[:2] != b'\0\0': + raise PakError('Unsupported FILE root header') + offset = 6 + seen = set() + entries = [] + count_seen = 0 + total = 0 + + def take(size): + nonlocal offset + if offset + size > len(tree): + raise PakError('Truncated FILE entry') + result = tree[offset:offset+size] + offset += size + return result + + def walk(parent, count, depth): + nonlocal count_seen, total + if depth > limits.depth or count > limits.entries - count_seen: + raise PakError('Directory depth/count limit exceeded') + for _ in range(count): + count_seen += 1 + if count_seen > limits.entries: + raise PakError('Entry count limit exceeded') + kind, length = take(2) + name = component(take(length)) + path = parent + name + key = path.casefold() + if key in seen: + raise PakError('Duplicate or case-colliding file/directory path: '+path) + seen.add(key) + if kind == 0: + children = struct.unpack(' data_end or stored > data_end-start: + raise PakError('Payload outside DATA bounds: '+path) + if flags == (0, 0) and stored != size: + raise PakError('Raw payload stored/expanded size mismatch: '+path) + if flags == (1, 6) and stored == 0: + raise PakError('Empty compressed stream: '+path) + if size > limits.entry_bytes or size > max(1, stored)*limits.expansion_ratio: + raise PakError('Entry expansion/size limit exceeded: '+path) + total += size + if total > limits.total_bytes: + raise PakError('Aggregate expanded-data limit exceeded') + entries.append({'path': path, 'offset': start, 'stored_bytes': stored, + 'content_bytes': size, 'compression': 'zlib' if flags[0] else 'raw', + 'opaque_tail_hex': raw[20:24].hex()}) + else: + raise PakError('Unsupported FILE node kind') + + walk('', struct.unpack_from(' expected: + raise PakError('Expanded data exceeds declared size: '+entry['path']) + hasher.update(data) + + try: + while remaining: + data = exact(stream, min(BLOCK, remaining)) + remaining -= len(data) + if decoder is None: + accept(data) + continue + while data: + previous = data + output = decoder.decompress(data, min(BLOCK, expected-produced+1)) + accept(output) + if decoder.unused_data or (decoder.eof and remaining): + raise PakError('Trailing/concatenated compressed payload: '+entry['path']) + data = decoder.unconsumed_tail + if data == previous and not output: + raise PakError('Compressed decoder made no progress') + if decoder is not None: + while not decoder.eof: + output = decoder.decompress(b'', min(BLOCK, expected-produced+1)) + if not output: + break + accept(output) + if not decoder.eof or decoder.unused_data or decoder.unconsumed_tail: + raise PakError('Incomplete/extra compressed payload: '+entry['path']) + except zlib.error as error: + raise PakError('Invalid zlib stream: '+entry['path']) from error + if produced != expected: + raise PakError('Expanded size mismatch: '+entry['path']) + return hasher.hexdigest() + + +def inventory(path, limits=Limits()): + limits.validate() + path = Path(path) + descriptor = os.open(path, os.O_RDONLY | os.O_NONBLOCK | os.O_NOFOLLOW) + with os.fdopen(descriptor, 'rb') as stream: + before = os.fstat(stream.fileno()) + if not stat.S_ISREG(before.st_mode) or before.st_size > limits.archive_bytes: + raise PakError('Input must be a regular archive within its size limit') + header = exact(stream, 12) + if header[:4] != b'FORM' or header[8:] != b'PAC1' or struct.unpack_from('>I', header, 4)[0] != before.st_size-8: + raise PakError('Unsupported or inconsistent FORM/PAC1 header') + offset = 12 + chunks = {} + for expected in (b'HEAD', b'DATA', b'FILE'): + stream.seek(offset) + tag, size = struct.unpack('>4sI', exact(stream, 8)) + if tag != expected or size > before.st_size-offset-8: + raise PakError('Unsupported chunk order or out-of-bounds chunk') + chunks[tag] = (offset+8, size) + offset += 8+size + if offset != before.st_size: + raise PakError('Unknown trailing archive chunks/bytes') + start, size = chunks[b'HEAD'] + if size != 28: + raise PakError('Unsupported HEAD size') + stream.seek(start) + head = exact(stream, size) + if head[:4] != b'\x03\x00\x01\x00' or head[24:] != b'\0'*4: + raise PakError('Unsupported HEAD version/flags') + start, size = chunks[b'FILE'] + if size > limits.tree_bytes: + raise PakError('FILE metadata exceeds size limit') + stream.seek(start) + tree = exact(stream, size) + data_start, data_size = chunks[b'DATA'] + entries, expanded, nodes = parse_tree(tree, data_start, data_start+data_size, limits) + for entry in entries: + entry['sha256'] = content_hash(stream, entry) + stream.seek(0) + archive_hash = hashlib.sha256() + for block in iter(lambda: stream.read(BLOCK), b''): + archive_hash.update(block) + after = os.fstat(stream.fileno()) + if (before.st_size, before.st_mtime_ns, before.st_ctime_ns) != (after.st_size, after.st_mtime_ns, after.st_ctime_ns): + raise PakError('Archive changed during inspection') + return {'format': 'FORM/PAC1 observed HEAD 03000100', 'archive': str(path), + 'archive_bytes': before.st_size, 'archive_sha256': archive_hash.hexdigest(), + 'head_hex': head.hex(), 'entry_count': len(entries), 'tree_node_count': nodes, + 'expanded_bytes': expanded, 'entries': sorted(entries, key=lambda row: row['path']), + 'limits': vars(limits), 'structural_inventory_verified': True, + 'platform_or_resource_semantics_verified': False, 'release_qualified': False, + 'scope': 'Bounded structural/content-hash inspection only; no extraction, native load or gameplay proof'} + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('archive', type=Path) + parser.add_argument('--output', type=Path, help='New JSON report only; never overwritten') + args = parser.parse_args(argv) + try: + if args.output and (args.output.exists() or args.output.is_symlink()): + raise PakError('Output already exists; refusing overwrite') + report = inventory(args.archive) + text = json.dumps(report, indent=2, sort_keys=True)+'\n' + if args.output: + with args.output.open('x') as output: + output.write(text) + else: + print(text, end='') + return 0 + except (OSError, ValueError, struct.error) as error: + print(json.dumps({'structural_inventory_verified': False, 'error': str(error), 'release_qualified': False})) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et new file mode 100644 index 0000000..1159fe9 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et @@ -0,0 +1,8 @@ +SCR_AIGroup : "{8DE0C0830FE0C33D}Prefabs/Groups/OPFOR/Group_USSR_Base.et" { + m_aUnitPrefabSlots { + "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" + "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" + "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et" + "{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et.meta new file mode 100644 index 0000000..adaeb61 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Prefabs/ERR/MortarCrew.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{B84C05941C4C81B8}Prefabs/ERR/MortarCrew.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQ.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQ.c new file mode 100644 index 0000000..2a0acd3 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQ.c @@ -0,0 +1,391 @@ +class ERR_HQUnit +{ + int Id; + SCR_AIGroup Group; + SCR_AIGroupUtilityComponent Utility; + IEntity Radio; + float NextReport; + ref ERR_HQRoute Uplink; + ref ERR_HQReport PendingReport; + ref ERR_HQRoute Downlink; + ref ERR_HQReport PendingOrder; + ref ERR_HQReport Assignment; + AIWaypoint Waypoint; + bool ReservedForSupport; + int LogisticsReservation; + ref ERR_MortarSupplyStatus PendingSupplyStatus; + + bool Eligible(ERR_GameMode mode) + { + if (ReservedForSupport || LogisticsReservation > 0 || !Group || !Utility || Group.GetPlayerCount(true) > 0 || Group.IsSlave() || Group.GetFaction() != mode.EnemyFaction()) return false; + array agents = {}; + Group.GetAgents(agents); + bool survivor; + foreach (AIAgent agent : agents) + { + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) continue; + survivor = true; + if (CompartmentAccessComponent.GetVehicleIn(agent.GetControlledEntity())) return false; + } + return survivor; + } + + void Release() + { + if (Waypoint) + { + if (Group) Group.RemoveWaypoint(Waypoint); + SCR_EntityHelper.DeleteEntityAndChildren(Waypoint); + } + Waypoint = null; + Assignment = null; + PendingOrder = null; + Downlink = null; + } +} + +class ERR_HQ : ERR_CommandService +{ + protected ERR_GameMode m_Mode; + protected ref ERR_MortarSystem m_Mortars; + protected ref ERR_MortarLogistics m_Logistics; + protected ref array m_Units = {}; + protected ref array m_Contacts = {}; + protected ref ERR_HQNetwork m_Network = new ERR_HQNetwork(); + protected ref ERR_HQJournal m_Journal = new ERR_HQJournal(); + protected int m_NextId; + protected float m_NextNetwork; + protected float m_NextAssignment; + + void ERR_HQ(ERR_GameMode mode) { m_Mode = mode; m_Mortars = new ERR_MortarSystem(this); m_Logistics = new ERR_MortarLogistics(this, mode); } + static ERR_HQ Get() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode) return null; + return ERR_HQ.Cast(mode.Command()); + } + static bool MissionActive() + { + ERR_GameMode mode = ERR_GameMode.Get(); + return mode && mode.Active(); + } + static void Event(string kind, string message, int messageId = 0) + { + ERR_HQ hq = Get(); + if (hq) hq.Journal().Write(kind, message, messageId); + } + ERR_MortarSystem Mortars() { return m_Mortars; } + bool PrepareSupport() { return m_Mortars.Prepare() && m_Logistics.Prepare(); } + ERR_MortarLogistics Logistics() { return m_Logistics; } + void ReserveGroup(SCR_AIGroup group) + { + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group) continue; + unit.Release(); + unit.ReservedForSupport = true; + } + } + // Temporary reservations never alter the permanent support reservation. + int LogisticsToken(SCR_AIGroup group) + { + foreach (ERR_HQUnit unit : m_Units) if (unit.Group == group) return unit.LogisticsReservation; + return 0; + } + bool ReserveLogistics(SCR_AIGroup group, int token) + { + if (!Replication.IsServer() || token <= 0 || !MissionActive()) return false; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group || !unit.Eligible(m_Mode) || !unit.Radio || unit.Assignment || unit.PendingOrder || unit.Downlink || unit.Waypoint) continue; + if (unit.Utility.m_Perception && !unit.Utility.m_Perception.m_aTargets.IsEmpty()) continue; + unit.LogisticsReservation = token; + return true; + } + return false; + } + void ReleaseLogistics(SCR_AIGroup group, int token) + { + foreach (ERR_HQUnit unit : m_Units) + if (unit.Group == group && unit.LogisticsReservation == token) unit.LogisticsReservation = 0; + } + bool QueueSupplyStatus(ERR_MortarBattery battery, float now) + { + if (!Replication.IsServer() || !MissionActive() || !battery || !battery.StartupActivated || !battery.Operational() || !m_Logistics.CanSample(battery) || !ERR_MortarLogisticsRules.Need(battery.CountShells())) return false; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != battery.Group || unit.Uplink || !unit.Radio || unit.Radio != battery.RadioOperator) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio); + if (!route) return false; + ERR_MortarSupplyStatus report = new ERR_MortarSupplyStatus(); + report.Group = battery.Group; report.Gun = battery.Gun; report.Position = battery.Gun.GetOrigin(); + report.Shells = battery.CountShells(); report.ObservedAt = now; report.MessageId = m_Journal.Message(); + route.MessageId = report.MessageId; + route.Payload = string.Format("mortar supply status; usable HE=%1; position=%2; sampled=%3", report.Shells, report.Position, report.ObservedAt); + unit.PendingSupplyStatus = report; unit.Uplink = route; + m_Journal.Write("SUPPLY REPORT", route.Payload, route.MessageId); + return true; + } + return false; + } + void PhysicalForces(out array entities) + { + entities.Clear(); + foreach (ERR_HQUnit unit : m_Units) + { + if (!unit.Group) continue; + array agents = {}; + unit.Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || !agent.GetControlledEntity()) continue; + IEntity actor = agent.GetControlledEntity(); + if (!entities.Contains(actor)) entities.Insert(actor); + IEntity vehicle = CompartmentAccessComponent.GetVehicleIn(actor); + if (vehicle && !entities.Contains(vehicle)) entities.Insert(vehicle); + } + } + m_Mortars.AppendGuns(entities); + } + bool MortarConnected(SCR_AIGroup group) + { + foreach (ERR_HQUnit unit : m_Units) + if (unit.Group == group && unit.Radio) return m_Network.Route(unit.Radio) != null; + return false; + } + ERR_HQRoute Downlink(SCR_AIGroup group, string kind, string detail, int sourceId) + { + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group || !unit.Radio) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio, true); + if (!route) return null; + route.MessageId = m_Journal.Message(); + route.Payload = string.Format("%1 from report M%2; %3", kind, sourceId, detail); + m_Journal.Write("ORDER QUEUED", route.Payload, route.MessageId); + return route; + } + return null; + } + void SupportContacts(out array contacts, float now) + { + contacts.Clear(); + foreach (ERR_HQReport contact : m_Contacts) + if (ERR_MortarPrediction.Fresh(contact, now)) contacts.Insert(contact.Snapshot()); + } + + ERR_HQJournal Journal() { return m_Journal; } + string Status() + { + return string.Format("HQ: %1 groups, %2 delivered contacts, %3 assignments", m_Units.Count(), m_Contacts.Count(), Assigned()) + "; " + m_Mortars.Status() + "; " + m_Logistics.Status(); + } + + override void RegisterGroup(SCR_AIGroup group) + { + if (!Replication.IsServer() || !group || m_Units.Count() >= 128) return; + foreach (ERR_HQUnit known : m_Units) if (known.Group == group) return; + SCR_AIGroupUtilityComponent utility = SCR_AIGroupUtilityComponent.Cast(group.FindComponent(SCR_AIGroupUtilityComponent)); + if (!utility || group.GetFaction() != m_Mode.EnemyFaction()) return; + ERR_HQUnit unit = new ERR_HQUnit(); + unit.Id = ++m_NextId; + unit.Group = group; + unit.Utility = utility; + int phase = unit.Id % 5; + unit.NextReport = GetGame().GetWorld().GetWorldTime() + phase * 1000; + m_Units.Insert(unit); + m_Journal.Write("REGISTER", string.Format("group %1", unit.Id)); + } + + override void UnregisterGroup(SCR_AIGroup group) + { + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group) continue; + unit.Release(); + unit.Group = null; + unit.Utility = null; + } + } + + protected int Assigned() + { + int total; + foreach (ERR_HQUnit unit : m_Units) if (unit.Assignment || unit.PendingOrder) total++; + return total; + } + + protected void IndexRadios() + { + m_Network.Clear(); + foreach (ERR_HQUnit unit : m_Units) + { + unit.Radio = null; + if (!unit.Group || unit.Group.GetPlayerCount(true) > 0 || unit.Group.GetFaction() != m_Mode.EnemyFaction()) continue; + array agents = {}; + unit.Group.GetAgents(agents); + int best; + foreach (AIAgent agent : agents) + { + if (!agent) continue; + IEntity actor = agent.GetControlledEntity(); + int capability = ERR_HQRadio.Capability(actor); + if (capability <= 0) continue; + m_Network.Add(actor, unit.Group, unit.Id, capability); + if (capability > best) { unit.Radio = actor; best = capability; } + } + } + m_Network.Build(); + } + + protected void Observe(ERR_HQUnit unit, float now) + { + if (!unit.Utility || !unit.Radio || unit.Uplink || now < unit.NextReport) return; + unit.NextReport = now + m_Mode.Settings().Get("reportIntervalSeconds") * 1000; + array samples = {}; + ERR_HQObservation.Gather(unit.Utility, now, samples); + if (samples.IsEmpty()) return; + ERR_HQVisualContact seen = samples[0]; + ERR_HQRoute route = m_Network.Route(unit.Radio); + if (!route) return; + ERR_HQReport report = new ERR_HQReport(); + report.MessageId = m_Journal.Message(); + report.Target = seen.Entity; + report.Source = unit.Group; + report.Position = seen.Position; + report.ObservedAt = seen.ObservedAt; + ERR_HQObservation.Describe(report, samples, now); + route.MessageId = report.MessageId; + route.Payload = report.Description(now); + unit.PendingReport = report; + unit.Uplink = route; + m_Journal.Write("REPORT", route.Payload, report.MessageId); + } + + protected void Accept(ERR_HQReport report, float now) + { + if (!report || !ERR_MissionRules.ContactFresh(report.ObservedAt, now)) return; + for (int i = 0; i < m_Contacts.Count(); i++) + { + ERR_HQReport previous = m_Contacts[i]; + if (previous.Target != report.Target) continue; + if (previous.ObservedAt >= report.ObservedAt) return; + float seconds = (report.ObservedAt - previous.ObservedAt) / 1000; + if (seconds > 0 && seconds < 30 && vector.DistanceXZ(previous.Position, report.Position) < 500) + { + report.Velocity = (report.Position - previous.Position) / seconds; + report.HasVelocity = report.Velocity.Length() <= 100; + } + m_Contacts[i] = report.Snapshot(); + return; + } + if (m_Contacts.Count() >= 64) m_Contacts.Remove(0); + m_Contacts.Insert(report.Snapshot()); + } + + protected void DeliverOrder(ERR_HQUnit unit, float now) + { + ERR_HQReport order = unit.PendingOrder; + if (!order || !ERR_MissionRules.ContactFresh(order.ObservedAt, now) || !unit.Eligible(m_Mode)) { unit.Release(); return; } + SCR_AIGroupPerception perception = unit.Utility.m_Perception; + if (perception && !perception.m_aTargets.IsEmpty()) { unit.Release(); return; } + int deliveryId; + if (unit.Downlink) deliveryId = unit.Downlink.MessageId; + unit.Release(); + vector position = order.Position; + if (order.HasVelocity) position = ERR_HQReport.Predict(position, order.Velocity, (now - order.ObservedAt) / 1000); + AIWaypoint waypoint = AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.SearchWaypoint(), ERR_Actors.Ground(position))); + if (!waypoint) { m_Journal.Write("ORDER FAILED", "waypoint spawn failed", order.MessageId); return; } + unit.Waypoint = waypoint; + unit.Assignment = order; + unit.Group.AddWaypointAt(waypoint, 0); + m_Journal.Write("ORDER DELIVERED", string.Format("group %1 from report M%2: %3", unit.Id, order.MessageId, order.Description(now)), deliveryId); + } + + protected void Assign(float now) + { + int limit = m_Mode.Settings().Get("supportSquadLimit"); + int radius = m_Mode.Settings().Get("responseRadiusMetres"); + int assigned = Assigned(); + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Assignment && (!ERR_MissionRules.ContactFresh(unit.Assignment.ObservedAt, now) || !unit.Eligible(m_Mode) || assigned > limit)) + { + unit.Release(); assigned--; + } + if (unit.PendingOrder && (!ERR_MissionRules.ContactFresh(unit.PendingOrder.ObservedAt, now) || !unit.Eligible(m_Mode) || assigned > limit)) + { + unit.Release(); assigned--; + } + } + foreach (ERR_HQReport report : m_Contacts) + { + if (!ERR_MissionRules.ContactFresh(report.ObservedAt, now)) continue; + foreach (ERR_HQUnit unit : m_Units) + { + if (assigned >= limit) return; + if (unit.Assignment || unit.PendingOrder || !unit.Eligible(m_Mode) || !unit.Radio) continue; + if (vector.DistanceXZ(unit.Group.GetOrigin(), report.Position) > radius) continue; + SCR_AIGroupPerception perception = unit.Utility.m_Perception; + if (perception && !perception.m_aTargets.IsEmpty()) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio, true); + if (!route) continue; + unit.PendingOrder = report.Snapshot(); + unit.Downlink = route; + route.MessageId = m_Journal.Message(); + route.Payload = "order from report M" + report.MessageId.ToString(); + assigned++; + } + } + } + + override void Tick(float now) + { + if (!Replication.IsServer()) return; + if (now >= m_NextNetwork) { IndexRadios(); m_NextNetwork = now + 5000; } + for (int i = m_Contacts.Count() - 1; i >= 0; i--) + if (!ERR_MissionRules.ContactFresh(m_Contacts[i].ObservedAt, now)) m_Contacts.Remove(i); + for (int i = m_Units.Count() - 1; i >= 0; i--) + { + ERR_HQUnit unit = m_Units[i]; + if (unit.Uplink) + { + int delivered = unit.Uplink.Advance(now, m_Journal); + if (delivered == 1) + { + if (unit.PendingSupplyStatus) m_Logistics.Receive(unit.PendingSupplyStatus, now); + else Accept(unit.PendingReport, now); + } + if (delivered != 0) { unit.Uplink = null; unit.PendingReport = null; unit.PendingSupplyStatus = null; } + } + if (unit.Downlink) + { + int delivered = unit.Downlink.Advance(now, m_Journal); + if (delivered == 1) DeliverOrder(unit, now); + else if (delivered < 0) unit.Release(); + } + if (!unit.Group && !unit.Uplink) { unit.Release(); m_Units.Remove(i); continue; } + Observe(unit, now); + } + if (now >= m_NextAssignment) { Assign(now); m_NextAssignment = now + 5000; } + m_Logistics.Tick(now); + m_Mortars.Tick(now); + m_Journal.Flush(); + } + + override void Stop() + { + m_Logistics.Stop(); + m_Mortars.Stop(); + foreach (ERR_HQUnit unit : m_Units) unit.Release(); + m_Units.Clear(); + m_Contacts.Clear(); + m_Network.Clear(); + m_Journal.Write("STOP", "HQ stopped; tactical orders released"); + m_Journal.Flush(); + } +} + +modded class ERR_GameMode +{ + protected override ERR_CommandService CreateCommandService() { return new ERR_HQ(this); } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQJournal.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQJournal.c new file mode 100644 index 0000000..84e46a8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQJournal.c @@ -0,0 +1,101 @@ +// Server-owned audit stream. The file contains every event; chat reads a bounded +// recent-history window with explicit gap notices for clients that fall behind. +class ERR_HQJournal +{ + protected ref array m_Recent = {}; + protected ref array m_Pending = {}; + protected int m_Sequence; + protected int m_Message; + protected static int s_Part; + protected static int s_Session; + protected string m_Session; + + void ERR_HQJournal() + { + s_Session++; + m_Session = string.Format("%1-%2", System.GetUnixTime(), s_Session); + } + protected float m_RetryAt; + protected int m_Lost; + + string Path() + { + if (s_Part == 0) + return "$logs:rereintroduced-hq.log"; + return "$logs:rereintroduced-hq-" + s_Part.ToString() + ".log"; + } + + int Message() + { + return ++m_Message; + } + + int Sequence() + { + return m_Sequence; + } + + void Write(string kind, string message, int messageId = 0) + { + if (!Replication.IsServer()) + return; + float seconds = GetGame().GetWorld().GetWorldTime() / 1000; + string line = string.Format("#%1 t=%2s M%3 %4 %5", ++m_Sequence, Math.Round(seconds * 10) / 10.0, messageId, kind, message) + " [session=" + m_Session + "]"; + if (m_Recent.Count() >= 300) + m_Recent.Remove(0); + m_Recent.Insert(line); + if (m_Pending.Count() < 4096) + m_Pending.Insert(line); + else + m_Lost++; + } + + void Read(int after, out array lines, out int cursor, int limit = 8) + { + lines.Clear(); + cursor = Math.Clamp(after, 0, m_Sequence); + int first = m_Sequence - m_Recent.Count(); + if (cursor < first) + { + lines.Insert(string.Format("HQ log: %1 older entries are outside chat history; see %2", first - cursor, Path())); + cursor = first; + } + int characters; + for (int i = cursor - first; i < m_Recent.Count() && lines.Count() < Math.Clamp(limit, 1, 40); i++) + { + // Bound each menu RPC without skipping unread records. Chat still + // requests eight; the live menu can drain a busy journal faster. + if (characters + m_Recent[i].Length() > 16000 && !lines.IsEmpty()) + break; + lines.Insert(m_Recent[i]); + characters += m_Recent[i].Length(); + cursor++; + } + } + + void Flush() + { + if (m_Pending.IsEmpty() || !Replication.IsServer()) + return; + float now = GetGame().GetWorld().GetWorldTime(); + if (now < m_RetryAt) + return; + FileHandle file = FileIO.OpenFile(Path(), FileMode.APPEND); + if (!file) + { + m_RetryAt = now + 30000; + PrintFormat("Escapists AI [HQ log]: cannot open %1; retry in 30s, chat history remains available", Path(), level: LogLevel.ERROR); + return; + } + foreach (string line : m_Pending) + file.WriteLine(line); + if (m_Lost > 0) + file.WriteLine(string.Format("HQ log: %1 entries lost while file was unavailable and buffer full", m_Lost)); + bool rotate = file.GetLength() >= 5242880; + file.Close(); + m_Pending.Clear(); + m_Lost = 0; + if (rotate) + s_Part++; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c new file mode 100644 index 0000000..b783100 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c @@ -0,0 +1,241 @@ +// Radio propagation is simulated using actual living carriers and inventory. +// A manpack is the HQ uplink; short-range hops are limited to 500 m and three +// retransmissions. No virtual relay is fabricated when the network is broken. +class ERR_HQRadioNode +{ + IEntity Carrier; + SCR_AIGroup Group; + int UnitId; + int Capability; + protected float m_CheckedAt = -1; + protected int m_LiveCapability; + + bool Valid(bool manpack = false) + { + ERR_GameMode factions = ERR_GameMode.Get(); + if (!Carrier || !Group || Group.GetPlayerCount(true) > 0 || !factions || Group.GetFaction() != factions.EnemyFaction() || ERR_Actors.Group(Carrier) != Group) + return false; + int required = 1; + if (manpack) + required = 2; + float now = GetGame().GetWorld().GetWorldTime(); + if (m_CheckedAt < 0 || now < m_CheckedAt || now - m_CheckedAt >= 1000) + { + m_CheckedAt = now; + m_LiveCapability = ERR_HQRadio.Capability(Carrier); + } + return m_LiveCapability >= required; + } + + string Label() + { + return "unit " + UnitId.ToString(); + } +} + +class ERR_HQRoute +{ + ref array Nodes = {}; + bool Downlink; + int Cursor; + bool Sending; + float Due; + vector SentFrom; + float StartedAt = -1; + int MessageId; + string Payload; + bool Failed; + + // -1 failed, 0 travelling, 1 delivered. Each hop really gates delivery. + int Advance(float now, ERR_HQJournal journal) + { + if (Failed) + return -1; + if (StartedAt < 0) + { + StartedAt = now; + if (Downlink) + Cursor = -1; // first leg is HQ to the manpack + } + if (now - StartedAt > 30000) + return Fail(journal, "route timed out"); + int target = Cursor + 1; + if (Sending) + { + if (now < Due) + return 0; + if (target < Nodes.Count()) + { + if (!Nodes[target].Valid(Downlink && target == 0)) + return Fail(journal, "receiving carrier lost radio, died or changed ownership"); + if (Cursor >= 0 && vector.DistanceXZ(SentFrom, Nodes[target].Carrier.GetOrigin()) > 500) + return Fail(journal, "receiver moved beyond the 500m link"); + journal.Write("RECEIVE", Nodes[target].Label() + " received from " + SenderLabel(), MessageId); + } + else + journal.Write("RECEIVE", "HQ received from " + SenderLabel(), MessageId); + Cursor++; + Sending = false; + if ((!Downlink && Cursor >= Nodes.Count()) || (Downlink && Cursor == Nodes.Count() - 1)) + return 1; + target = Cursor + 1; + } + if (Nodes.IsEmpty()) + return Fail(journal, "no physical radio route"); + if (Cursor >= 0 && !Nodes[Cursor].Valid(!Downlink && Cursor == Nodes.Count() - 1)) + return Fail(journal, "transmitting carrier lost radio, died or changed ownership"); + string recipient = "HQ"; + string link = "long-range"; + if (target < Nodes.Count()) + { + if (!Nodes[target].Valid(Downlink && target == 0)) + return Fail(journal, "next relay unavailable"); + recipient = Nodes[target].Label(); + if (Cursor >= 0) + { + SentFrom = Nodes[Cursor].Carrier.GetOrigin(); + float distance = vector.DistanceXZ(SentFrom, Nodes[target].Carrier.GetOrigin()); + if (distance > 500) + return Fail(journal, "next relay beyond 500m"); + link = Math.Round(distance).ToString() + "m short-range"; + } + } + journal.Write("TRANSMIT", SenderLabel() + " -> " + recipient + " (" + link + ")", MessageId); + Sending = true; + Due = now + 2000; + return 0; + } + + protected string SenderLabel() + { + if (Cursor < 0) + return "HQ"; + return Nodes[Cursor].Label(); + } + + protected int Fail(ERR_HQJournal journal, string reason) + { + Failed = true; + journal.Write("LOST", reason + "; " + Payload, MessageId); + return -1; + } +} + +class ERR_HQNetwork +{ + protected ref array m_Nodes = {}; + protected ref array m_Parents = {}; + protected ref array m_Depths = {}; + protected ref map m_Indices = new map(); + protected ref map> m_Cells = new map>(); + bool Overflow; + + void Clear() + { + m_Nodes.Clear(); + m_Parents.Clear(); + m_Depths.Clear(); + m_Indices.Clear(); + m_Cells.Clear(); + Overflow = false; + } + + protected string Cell(int x, int z) + { + return string.Format("%1:%2", x, z); + } + + void Add(IEntity carrier, SCR_AIGroup group, int unitId, int capability) + { + if (m_Indices.Contains(carrier)) + return; + if (m_Nodes.Count() >= 2048) + { + Overflow = true; + return; + } + ERR_HQRadioNode node = new ERR_HQRadioNode(); + node.Carrier = carrier; + node.Group = group; + node.UnitId = unitId; + node.Capability = capability; + int index = m_Nodes.Count(); + m_Nodes.Insert(node); + m_Indices.Insert(carrier, index); + m_Parents.Insert(-2); + m_Depths.Insert(99); + vector position = carrier.GetOrigin(); + string key = Cell(Math.Floor(position[0] / 500), Math.Floor(position[2] / 500)); + array cell = m_Cells.Get(key); + if (!cell) + { + cell = {}; + m_Cells.Insert(key, cell); + } + cell.Insert(index); + } + + void Build() + { + array queue = {}; + int checks; + for (int root = 0; root < m_Nodes.Count(); root++) + { + if (m_Nodes[root].Capability == 2) + { + m_Parents[root] = -1; + m_Depths[root] = 0; + queue.Insert(root); + } + } + for (int head = 0; head < queue.Count(); head++) + { + int from = queue[head]; + if (m_Depths[from] >= 3) + continue; + vector position = m_Nodes[from].Carrier.GetOrigin(); + int x = Math.Floor(position[0] / 500); + int z = Math.Floor(position[2] / 500); + for (int dx = -1; dx <= 1; dx++) + { + for (int dz = -1; dz <= 1; dz++) + { + array neighbors = m_Cells.Get(Cell(x + dx, z + dz)); + if (!neighbors) + continue; + foreach (int candidate : neighbors) + { + if (++checks > 100000) + { + Overflow = true; + return; + } + if (m_Parents[candidate] != -2 || vector.DistanceXZ(position, m_Nodes[candidate].Carrier.GetOrigin()) > 500) + continue; + m_Parents[candidate] = from; + m_Depths[candidate] = m_Depths[from] + 1; + queue.Insert(candidate); + } + } + } + } + } + + ERR_HQRoute Route(IEntity caller, bool downlink = false) + { + int index; + if (!m_Indices.Find(caller, index) || m_Parents[index] == -2) + return null; + ERR_HQRoute route = new ERR_HQRoute(); + route.Downlink = downlink; + while (index >= 0) + { + if (downlink) + route.Nodes.InsertAt(m_Nodes[index], 0); + else + route.Nodes.Insert(m_Nodes[index]); + index = m_Parents[index]; + } + return route; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQObservation.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQObservation.c new file mode 100644 index 0000000..814c515 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQObservation.c @@ -0,0 +1,199 @@ +// These samples exist only at intake. HQ never revisits their entity loadouts. +class ERR_HQVisualContact +{ + IEntity Entity; + vector Position; + float ObservedAt; + bool Escapist; + string Travel = "unknown"; + string Weapon = "unknown"; +} + +class ERR_HQObservation +{ + // Require current native line of sight before reading visible equipment. + static bool IsClearSighting(float age, float traceFraction, float exposure) + { + return age >= 0 && age <= 0.5 && traceFraction >= 1 && exposure > 0; + } + + static bool CanIdentifyWeapon(float distance, float exposure) + { + return distance >= 0 && distance <= 150 && exposure >= 0.5; + } + + static string WeaponCategory(EWeaponType type) + { + switch (type) + { + case EWeaponType.WT_HANDGUN: return "pistol"; + case EWeaponType.WT_RIFLE: return "rifle"; + case EWeaponType.WT_SNIPERRIFLE: return "sniper rifle"; + case EWeaponType.WT_MACHINEGUN: return "machine gun"; + case EWeaponType.WT_ROCKETLAUNCHER: return "rocket launcher"; + case EWeaponType.WT_GRENADELAUNCHER: return "grenade launcher"; + case EWeaponType.WT_FRAGGRENADE: return "grenade"; + case EWeaponType.WT_SMOKEGRENADE: return "smoke grenade"; + } + return "unidentified weapon"; + } + + static ERR_HQVisualContact Capture(BaseTarget target, float now) + { + if (!target || target.GetTargetCategory() != ETargetCategory.ENEMY || !IsClearSighting(target.GetTimeSinceSeen(), target.GetTraceFraction(), target.GetExposure())) + return null; + DamageManagerComponent damage = target.GetDamageManagerComponent(); + if (damage && damage.IsDestroyed()) + return null; + IEntity entity = target.GetTargetEntity(); + if (!entity) + return null; + ERR_HQVisualContact seen = new ERR_HQVisualContact(); + seen.Entity = entity; + seen.Position = target.GetLastSeenPosition(); + seen.ObservedAt = now - target.GetTimeSinceSeen() * 1000; + SCR_ChimeraCharacter character = SCR_ChimeraCharacter.Cast(entity); + if (character) + { + if (GetGame().GetPlayerManager()) + seen.Escapist = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(entity) > 0; + seen.Travel = "on foot"; + if (CompartmentAccessComponent.GetVehicleIn(entity)) + seen.Travel = "in vehicle"; + // Read only the drawn weapon; never enumerate weapons or inventory. + if (CanIdentifyWeapon(target.GetDistance(), target.GetExposure())) + { + CharacterControllerComponent controller = CharacterControllerComponent.Cast(entity.FindComponent(CharacterControllerComponent)); + if (controller) + { + IEntity heldItem = controller.GetCurrentItemInHands(); + BaseWeaponComponent weapon; + if (heldItem) + weapon = BaseWeaponComponent.Cast(heldItem.FindComponent(BaseWeaponComponent)); + seen.Weapon = "none drawn"; + if (weapon) + seen.Weapon = WeaponCategory(weapon.GetWeaponType()); + } + } + } + else if (Vehicle.Cast(entity)) + { + seen.Travel = "vehicle"; + if (target.GetUnitType() == EAIUnitType.UnitType_Aircraft) + seen.Travel = "aircraft"; + } + return seen; + } + + static void Gather(SCR_AIGroupUtilityComponent utility, float now, out array samples) + { + samples.Clear(); + if (!utility) + return; + array visible = {}; + utility.ERR_HQGetVisualTargets(visible); + foreach (BaseTarget target : visible) + { + ERR_HQVisualContact seen = Capture(target, now); + if (!seen) + continue; + ERR_HQVisualContact existing; + foreach (ERR_HQVisualContact sample : samples) + { + if (sample.Entity == seen.Entity) + { + existing = sample; + break; + } + } + if (!existing) + { + if (samples.Count() < 64) + samples.Insert(seen); + } + else if (seen.ObservedAt > existing.ObservedAt || (seen.ObservedAt == existing.ObservedAt && existing.Weapon == "unknown" && seen.Weapon != "unknown")) + { + existing.Position = seen.Position; + existing.ObservedAt = seen.ObservedAt; + existing.Travel = seen.Travel; + existing.Weapon = seen.Weapon; + } + } + } + + static void Describe(ERR_HQReport report, array samples, float now) + { + // New observations must not silently inherit old equipment/travel details. + report.SeenEscapists = -1; + report.TravelMode = "unknown"; + report.SeenWeapons = "unknown"; + report.DetailsObservedAt = -1; + if (report.Distress) + return; + ERR_HQVisualContact anchor; + foreach (ERR_HQVisualContact sample : samples) + { + if (sample.Entity == report.Target && now - sample.ObservedAt >= 0 && now - sample.ObservedAt <= 500) + { + anchor = sample; + break; + } + } + if (!anchor) + return; + report.DetailsObservedAt = anchor.ObservedAt; + report.TravelMode = anchor.Travel; + report.SeenWeapons = anchor.Weapon; + array counted = {}; + array weapons = {}; + string travel; + foreach (ERR_HQVisualContact sighting : samples) + { + if (!sighting.Escapist || !sighting.Entity || counted.Contains(sighting.Entity) || now - sighting.ObservedAt < 0 || now - sighting.ObservedAt > 500 || vector.DistanceXZ(anchor.Position, sighting.Position) > 100) + continue; + counted.Insert(sighting.Entity); + if (travel.IsEmpty()) + travel = sighting.Travel; + else if (travel != sighting.Travel) + travel = "mixed travel"; + if (sighting.Weapon != "unknown" && !weapons.Contains(sighting.Weapon) && weapons.Count() < 4) + weapons.Insert(sighting.Weapon); + } + if (counted.IsEmpty()) + return; // A visible vehicle does not reveal its hidden occupants. + report.SeenEscapists = counted.Count(); + // A vehicle anchor remains a vehicle report, even with people near it. + if (anchor.Escapist) + report.TravelMode = travel; + report.SeenWeapons = "unknown"; + if (!weapons.IsEmpty()) + { + report.SeenWeapons = weapons[0]; + for (int i = 1; i < weapons.Count(); i++) + report.SeenWeapons += ", " + weapons[i]; + } + } +} + +modded class SCR_AIGroupUtilityComponent +{ + void ERR_HQGetVisualTargets(out array targets) + { + targets.Clear(); + foreach (SCR_AIInfoComponent info : m_aInfoComponents) + { + if (!info || !info.m_Perception) + continue; + AIAgent observer = AIAgent.Cast(info.GetOwner()); + if (!observer || !ERR_Actors.CanFight(observer.GetControlledEntity())) + continue; + array own = {}; + info.m_Perception.GetTargetsList(own, ETargetCategory.ENEMY); + foreach (BaseTarget target : own) + { + if (target && ERR_HQObservation.IsClearSighting(target.GetTimeSinceSeen(), target.GetTraceFraction(), target.GetExposure())) + targets.Insert(target); + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQReport.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQReport.c new file mode 100644 index 0000000..314f4a3 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HQReport.c @@ -0,0 +1,144 @@ +// A radio's category is protected in the stock gadget component. +modded class SCR_RadioComponent +{ + bool ERR_IsHQManpack() + { + return m_iRadioCategory == ERadioCategory.MANPACK; + } +} + +class ERR_HQRadio +{ + // 0: no radio, 1: basic radio, 2: manpack. Inventory is checked live. + static int Capability(IEntity character) + { + if (!ERR_Actors.CanFight(character)) + return 0; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(character.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) + return 0; + array items = {}; + inventory.GetItems(items); + int result; + foreach (IEntity item : items) + { + if (!item || !item.FindComponent(BaseRadioComponent)) + continue; + result = 1; + SCR_RadioComponent gadget = SCR_RadioComponent.Cast(item.FindComponent(SCR_RadioComponent)); + if (gadget && gadget.ERR_IsHQManpack()) + return 2; + } + return result; + } +} + +// HQ uses entity identity only for matching observations, never for its origin. +// Visible details are captured at intake and copied as scalar snapshots. +// Reports and orders contain immutable observed coordinates and timestamps. +class ERR_HQReport +{ + int MessageId; + IEntity Target; + SCR_AIGroup Source; + vector Position; + vector Velocity; + float ObservedAt = -1; + float LastSent = -60000; + float PerceptionStamp = -1; + bool HasVelocity; + bool Engaged; + bool Distress; + int SeenEscapists = -1; + string TravelMode = "unknown"; + string SeenWeapons = "unknown"; + float DetailsObservedAt = -1; + + ERR_HQReport Snapshot() + { + ERR_HQReport copy = new ERR_HQReport(); + copy.MessageId = MessageId; + copy.Target = Target; + copy.Source = Source; + copy.Position = Position; + copy.Velocity = Velocity; + copy.ObservedAt = ObservedAt; + copy.Engaged = Engaged; + copy.Distress = Distress; + copy.HasVelocity = HasVelocity; + copy.SeenEscapists = SeenEscapists; + copy.TravelMode = TravelMode; + copy.SeenWeapons = SeenWeapons; + copy.DetailsObservedAt = DetailsObservedAt; + return copy; + } + + string TravelDirection() + { + if (!HasVelocity) + return "unknown"; + if (Velocity.Length() < 0.5) + return "stationary"; + float x = Math.AbsFloat(Velocity[0]); + float z = Math.AbsFloat(Velocity[2]); + string northSouth = "N"; + string eastWest = "E"; + if (Velocity[2] < 0) + northSouth = "S"; + if (Velocity[0] < 0) + eastWest = "W"; + if (x < z * 0.414214) + return northSouth; + if (z < x * 0.414214) + return eastWest; + return northSouth + eastWest; + } + + string Description(float now, bool brief = false) + { + if (Distress) + return string.Format("Distress at friendly X=%1 Z=%2; enemy details unknown (%3s ago)", Math.Round(Position[0]), Math.Round(Position[2]), Math.Round(Math.Max(0, now - ObservedAt) / 1000)); + string count = "count unknown"; + if (SeenEscapists >= 0) + count = "at least " + SeenEscapists.ToString() + " spotted nearby"; + string motion = "speed/direction unknown"; + if (HasVelocity) + { + float speed = Math.Round(Velocity.Length() * 10) / 10.0; + float azimuth = Math.Atan2(Velocity[0], Velocity[2]) * Math.RAD2DEG; + if (azimuth < 0) + azimuth += 360; + int heading = Math.Round(azimuth); + motion = string.Format("%1 km/h, azimuth %2 degrees (%3)", Math.Round(speed * 3.6), heading % 360, TravelDirection()); + } + string details = count + "; " + TravelMode + "; " + motion + "; seen weapons: " + SeenWeapons; + if (brief) + return details; + string velocity = "unknown"; + if (HasVelocity) + velocity = string.Format("[%1,%2] m/s", Math.Round(Velocity[0] * 10) / 10.0, Math.Round(Velocity[2] * 10) / 10.0); + return string.Format("X=%1 Z=%2: %3; vector X/Z=%4 (%5s ago)", Math.Round(Position[0]), Math.Round(Position[2]), details, velocity, Math.Round(Math.Max(0, now - ObservedAt) / 1000)); + } + + static vector Predict(vector position, vector velocity, float seconds) + { + vector offset = velocity * Math.Clamp(seconds, 0, 20); + offset[1] = 0; + if (offset.Length() > 300) + offset = offset.Normalized() * 300; + return position + offset; + } + + int Priority(float now) + { + if (Distress) + return 0; + if (now - ObservedAt <= 15000) + { + if (Engaged) + return 3; + return 2; + } + return 1; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c new file mode 100644 index 0000000..e808bd7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c @@ -0,0 +1,31 @@ +// An idle rotor or zero speed alone is normal during takeoff, landing and reload. +// Confirm prolonged grounding, but recognize actual loss of flight capability. +class ERR_HelicopterAvailability +{ + protected float m_fGroundedSince = -1; + + string Check(float now, float spawnedAt, bool destroyed, bool disabled, bool livingPilot, bool playerControlled, bool servicing, float height, float speed) + { + if (destroyed) return "destroyed"; + if (now - spawnedAt < 20000) + { + m_fGroundedSince = -1; + return ""; + } + if (disabled) return "engine, rotor or airframe disabled"; + if (playerControlled) + { + m_fGroundedSince = -1; + return ""; + } + if (!livingPilot) return "no living pilot"; + if (servicing || height > 5 || speed > 2) + { + m_fGroundedSince = -1; + return ""; + } + if (m_fGroundedSince < 0) m_fGroundedSince = now; + if (now - m_fGroundedSince >= 60000) return "grounded for 60 seconds"; + return ""; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c new file mode 100644 index 0000000..ed47286 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c @@ -0,0 +1,32 @@ +// The stored geometry is the command actually emitted to the native aiming +// tree, never a chain of refreshed approximations. Entity/report/node links +// are weak; cancellation and physical projectile observation clear ownership. +class ERR_MortarAimSolution +{ + IEntity Gun; + // Last delivered observation proved equivalent to this original geometry. + ERR_HQReport Report; + int OrderId; + int Shot; + vector GunOrigin; + vector Impact; + vector AimTarget; + vector SalvoOffset; + int Charge; + float FlightTime; + + bool Matches(ERR_MortarBattery battery, ERR_HQReport report) + { + return battery && Gun && Gun == battery.Gun && Report && Report == report && OrderId == battery.OrderId && Shot == battery.OrderShots; + } +} + +class ERR_MortarAimRules +{ + // Three-dimensional tolerances include terrain/aim-height changes. These are + // equivalence limits, not permission to move the gun or redirect its barrel. + static bool Equivalent(int commandedCharge, int updatedCharge, vector commandedOrigin, vector updatedOrigin, vector commandedImpact, vector updatedImpact, vector commandedAim, vector updatedAim, float commandedFlight, float updatedFlight) + { + return commandedCharge >= 0 && commandedCharge == updatedCharge && commandedFlight > 0 && updatedFlight > 0 && vector.Distance(commandedOrigin, updatedOrigin) <= 0.05 && vector.Distance(commandedImpact, updatedImpact) <= 0.1 && vector.Distance(commandedAim, updatedAim) <= 0.1 && Math.AbsFloat(commandedFlight - updatedFlight) <= 0.05; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c new file mode 100644 index 0000000..31b472c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c @@ -0,0 +1,503 @@ +// Migrated from the independently authored AI extension; successor-owned physical groups. +// Each site/phase has its own repeat limiter. Changed reasons and lifecycle +// events are immediate; only identical polling results are summarized. +class ERR_MortarTraceState +{ + string LastReason; + float NextLog; + int Suppressed; + + bool Due(string reason, float now) + { + if (reason != LastReason || now >= NextLog) + { + LastReason = reason; + NextLog = now + 30000; + return true; + } + Suppressed++; + return false; + } +} + +class ERR_MortarBattery +{ + static const ResourceName GUN = "{D1FFE458E8AC4BDB}Prefabs/Weapons/Mortars/2B14/Mortar_2B14.et"; + static const ResourceName SHELL = "{98EC9C526AFBA282}Prefabs/Weapons/Ammo/Ammo_Shell_82mm_HE_O832DU.et"; + static const ResourceName CREW = "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et"; + static const ResourceName RADIO_OPERATOR = "{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et"; + IEntity RadioOperator; + IEntity Gun; + SCR_AIGroup Group; + ref SCR_AIStaticArtilleryActivity Activity; + ref ERR_HQReport Report; + ref ERR_HQRoute RadioOrder; + ref ERR_HQReport PendingRadioReport; + ref ERR_HQReport PendingSupplyReport; + ref ERR_MortarRefresh Refresh; + bool RefreshRejected; // latched through an already committed projectile + protected ref ERR_MortarReadiness m_Readiness; + protected ref ERR_MortarSupplyTransfer m_Transfer; + protected ref array m_AttemptedShells = {}; + protected bool m_Stopped; + protected ref ERR_MortarReportLedger m_ReportLedger = new ERR_MortarReportLedger(); + vector Position; + vector Impact; + vector AimOffset; + int AimedShot = -1; + float FlightTime; + float AimedAt = -1; + float AimValidatedAt = -1; + SCR_AIGetArtilleryAimDistanceCompensation AimSolver; + ref ERR_MortarAimSolution AimSolution; + float AirspaceUntil; + vector AirspaceImpact; + float AirspaceRadius = 600; + float OrderedAt; + float NextOrder; + float SpawnedAt; + bool StartupActivated; + bool Released; + bool Rejected; + bool Claimed; // keeps the world slot occupied after the battery is destroyed + int SiteId; + int OrderId; + int RadioId; + int SourceId; + int OrderShots; + int TotalShots; + bool CommandOpen; + string LastFailure; + string SpawnFailure; + vector LastCandidate; + ref map SearchCounts = new map(); + ref map Traces = new map(); + + void Audit(string kind, string detail) + { + ERR_HQ.Event("MORTAR " + kind, string.Format("site=%1 order=%2 radio=M%3 source=M%4 position=%5; %6", SiteId, OrderId, RadioId, SourceId, Position, detail), RadioId); + } + + void Trace(string phase, string reason, string detail) + { + ERR_MortarTraceState state; + if (!Traces.Find(phase, state)) + { + state = new ERR_MortarTraceState(); + Traces.Insert(phase, state); + } + string previous = state.LastReason; + if (!state.Due(reason, GetGame().GetWorld().GetWorldTime())) + return; + Audit(phase, string.Format("reason=%1; %2; previous=%3 repeated polls omitted=%4", reason, detail, previous, state.Suppressed)); + state.Suppressed = 0; + } + + void FlushTraces() + { + foreach (string phase, ERR_MortarTraceState state : Traces) + { + if (state.Suppressed > 0) + Audit("REPEATS", string.Format("phase=%1 reason=%2 repeated polls omitted=%3", phase, state.LastReason, state.Suppressed)); + } + Traces.Clear(); + } + + string OperationalReason() + { + if (m_Stopped) return "battery stopped"; + if (!Gun) return "gun missing"; + if (!SpawnFailure.IsEmpty()) return SpawnFailure; + if (!Group || !Group.GetGroupUtilityComponent()) return "crew group missing"; + if (Group.GetFaction() != ERR_GameMode.Get().EnemyFaction()) return "crew changed faction"; + if (Group.GetPlayerCount(true) > 0) return "player in crew group"; + if (Group.GetAgentsCount() == 0) return "crew group empty"; + DamageManagerComponent damage = DamageManagerComponent.Cast(Gun.FindComponent(DamageManagerComponent)); + if (damage && damage.IsDestroyed()) return "gun destroyed"; + return ""; + } + + bool CanRequest(ERR_HQReport report, float now) + { + return !m_Stopped && ERR_MortarPrediction.Fresh(report, now) && m_ReportLedger.Available(report.MessageId, report.ObservedAt, now); + } + bool BeginRequest(ERR_HQReport report, float now) + { + if (!CanRequest(report, now) || !m_ReportLedger.Claim(report.MessageId, report.ObservedAt, now)) return false; + Cancel("superseded by new HQ order"); + FlushTraces(); + OrderId++; + RadioId = 0; + SourceId = report.MessageId; + OrderShots = 0; + Released = false; + CommandOpen = true; + OrderedAt = now; + LastFailure = ""; + Audit("COMMAND", string.Format("requested rounds=%1 HE radius=%2m; %3", ERR_MortarSalvo.ROUNDS, ERR_MortarSalvo.RADIUS_METRES, report.Description(now))); + return true; + } + + bool CanRefresh(ERR_HQReport report, float now) + { + if (m_Stopped || !CommandOpen || !Activity || Refresh || RefreshRejected || Rejected || !Operational()) return false; + return ERR_MortarRefreshRules.Newer(Report, report, now) && m_ReportLedger.Available(report.MessageId, report.ObservedAt, now); + } + bool BeginRefresh(ERR_HQReport report, ERR_HQRoute route, float now) + { + if (!route || !CanRefresh(report, now) || !m_ReportLedger.Claim(report.MessageId, report.ObservedAt, now)) return false; + Refresh = new ERR_MortarRefresh(this, report, route); + Audit("UPDATE QUEUED", string.Format("same order; update radio=M%1 newer observation=M%2 observed=%3", route.MessageId, report.MessageId, report.ObservedAt)); + return true; + } + void RejectRefresh(string reason) + { + // Never clear the commit latch or steal the physical projectile callback. + // AllowShot refuses further loads now; HQ cancels after it is observed. + RefreshRejected = true; + Refresh = null; + LastFailure = reason; + Audit("UPDATE REJECTED", reason); + } + + void ObserveProjectile(IEntity projectileEntity, IEntity firingCharacter, bool playerGunner) + { + if (!projectileEntity) + { + Audit("FIRE CALLBACK", "native OnWeaponFired had no projectile; no confirmed shot counted"); + return; + } + TotalShots++; + if (CommandOpen && Released && !playerGunner) + { + OrderShots++; + // Only a physical projectile unlocks the next load. It must be aimed again. + Released = false; + AimedAt = -1; + AimValidatedAt = -1; + AimSolver = null; + AimSolution = null; + Audit("FIRED", string.Format("physical projectile=%1 origin=%2 order shots=%3 total shots=%4 predicted impact=%5 predicted flight=%6s gunner=%7 (impact not observed)", projectileEntity, projectileEntity.GetOrigin(), OrderShots, TotalShots, Impact, FlightTime, firingCharacter)); + } + else + Audit("FIRED UNASSIGNED", string.Format("physical projectile=%1 origin=%2 player gunner=%3 order open=%4 committed=%5 total shots=%6; no active HQ order attribution", projectileEntity, projectileEntity.GetOrigin(), playerGunner, CommandOpen, Released, TotalShots)); + } + + void ReserveShellAirspace(float now) + { + // Enclose every still-airborne shell, including an earlier, longer flight. + // A later round must not move/shrink the existing exclusion or deadline. + if (now >= AirspaceUntil) + { + AirspaceImpact = Impact; + AirspaceRadius = 600; + } + AirspaceRadius = Math.Max(AirspaceRadius, vector.DistanceXZ(AirspaceImpact, Impact) + 600); + AirspaceUntil = Math.Max(AirspaceUntil, now + (FlightTime + 10) * 1000); + } + + bool SpawnFailed(string reason) + { + SpawnFailure = reason; + Audit("DEPLOY FAILED", string.Format("reason=%1 claimed=%2 gun=%3 group=%4", reason, Claimed, Gun, Group)); + return false; + } + + void SearchResult(vector candidate, string reason) + { + LastCandidate = candidate; + int count; + SearchCounts.Find(reason, count); + SearchCounts.Set(reason, count + 1); + } + + void SiteStatus(float now) + { + if (!SearchCounts.IsEmpty()) + { + string counts; + foreach (string reason, int count : SearchCounts) counts += string.Format("%1=%2; ", reason, count); + Audit("SITE SEARCH", string.Format("candidate counts since last summary: %1 last candidate=%2", counts, LastCandidate)); + SearchCounts.Clear(); + } + int agents, living; + int actionState = -1; + if (Group) + { + array crew = {}; + Group.GetAgents(crew); + agents = crew.Count(); + foreach (AIAgent agent : crew) + { + if (agent && ERR_Actors.CanFight(agent.GetControlledEntity())) living++; + } + } + if (Activity) actionState = Activity.GetActionState(); + bool connected; + ERR_HQ hq = ERR_HQ.Get(); + if (hq && Group) connected = hq.MortarConnected(Group); + Audit("SITE STATUS", string.Format("claimed=%1 startup=%2 operational=%3 crew agents=%4 fighting=%5 inventory HE=%6 radio connected=%7 cooldown remaining=%8s", Claimed, StartupActivated, Operational(), agents, living, CountShells(), connected, Math.Max(0, NextOrder - now) / 1000)); + Audit("ORDER STATUS", string.Format("open=%1 route pending=%2 native action=%3 shell committed=%4 order shots=%5 total shots=%6 age=%7s last failure=%8", CommandOpen, RadioOrder != null, actionState, Released, OrderShots, TotalShots, Math.Max(0, now - OrderedAt) / 1000, LastFailure)); + if (!SpawnFailure.IsEmpty()) Audit("PARTIAL DEPLOYMENT", SpawnFailure); + if (!Operational()) Trace("SITE BLOCK", OperationalReason(), "spawn failure=" + SpawnFailure); + } + + bool Operational() + { + return OperationalReason().IsEmpty(); + } + + int CountShells() + { + if (!Group) + return 0; + int count; + array items = {}; + array agents = {}; + Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) + continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(agent.GetControlledEntity().FindComponent(InventoryStorageManagerComponent)); + if (!inventory) + continue; + ERR_Inventory.AppendUnique(inventory, items); + } + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == SHELL) count++; + return count; + } + + void Bind(int siteId, SCR_AIGroup group, IEntity gun, float now) + { + SiteId = siteId; + Group = group; + Gun = gun; + Position = gun.GetOrigin(); + SpawnedAt = now; + Claimed = true; + m_Readiness = new ERR_MortarReadiness(this); + } + + + int InventoryShells(InventoryStorageManagerComponent inventory) + { + if (!inventory) + return 0; + int count; + array items = {}; + ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + { + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == SHELL) + count++; + } + return count; + } + + bool Stopped() { return m_Stopped; } + bool SupplyPending() { return m_Transfer && m_Transfer.Unresolved(); } + bool SupplyAuthorized(float now) + { + if (!Replication.IsServer() || m_Stopped || !StartupActivated || !Operational() || !CommandOpen || !ERR_HQ.MissionActive()) return false; + ERR_MortarSystem system = ERR_MortarSystem.Get(); + if (!system || system.FindGun(Gun) != this) return false; + ERR_HQReport suppliedReport = Report; + if (!suppliedReport) suppliedReport = PendingSupplyReport; + return ERR_MortarPrediction.Fresh(suppliedReport, now); + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + Cancel("HQ stopped"); + if (m_Readiness) m_Readiness.Stop(); + } + + ERR_MortarSupplyState SupplyState(float now) + { + // Observe an existing native operation even after its order was canceled. + // No second request may race an unresolved transfer on this battery. + if (m_Transfer) + { + ERR_MortarSupplyState observed = m_Transfer.Poll(now); + if (m_Transfer.CapturedOrder() == OrderId) + { + if (observed == ERR_MortarSupplyState.READY) m_Transfer = null; + return observed; + } + if (m_Transfer.Unresolved()) return ERR_MortarSupplyState.FAILED; + m_Transfer = null; + } + if (!SupplyAuthorized(now)) return SupplyStateFailed("current HQ order, crew or report is unavailable"); + SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(Gun.FindComponent(SCR_AIVehicleUsageComponent)); + IEntity gunner; + if (usage && usage.GetTurretCompartmentSlot()) + gunner = usage.GetTurretCompartmentSlot().GetOccupant(); + array agents = {}; + Group.GetAgents(agents); + float nearest = float.MAX; + if (!gunner) + { + foreach (AIAgent candidate : agents) + { + if (!candidate || candidate.GetControlledEntity() == RadioOperator || !ERR_Actors.CanFight(candidate.GetControlledEntity())) + continue; + float distance = vector.DistanceXZ(Gun.GetOrigin(), candidate.GetControlledEntity().GetOrigin()); + if (distance < nearest) + { + nearest = distance; + gunner = candidate.GetControlledEntity(); + } + } + } + if (!gunner) return SupplyStateFailed("no fighting gunner found"); + if (ERR_Actors.Group(gunner) != Group) return SupplyStateFailed("turret occupant belongs to another group"); + if (!ERR_Actors.CanFight(gunner)) return SupplyStateFailed("gunner cannot fight"); + InventoryStorageManagerComponent destination = InventoryStorageManagerComponent.Cast(gunner.FindComponent(InventoryStorageManagerComponent)); + if (!destination) + return SupplyStateFailed("gunner inventory missing"); + if (InventoryShells(destination) > 0) + return ERR_MortarSupplyState.READY; + int nearbyDonors, donorShells, storageRejected; + array consideredShells = {}; + foreach (AIAgent bearer : agents) + { + if (!bearer || !ERR_Actors.CanFight(bearer.GetControlledEntity())) + continue; + IEntity donor = bearer.GetControlledEntity(); + if (donor == gunner || vector.DistanceXZ(donor.GetOrigin(), gunner.GetOrigin()) > 12) + continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(donor.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) + continue; + nearbyDonors++; + array items = {}; + ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + { + if (!item || !item.GetPrefabData() || item.GetPrefabData().GetPrefabName() != SHELL) + continue; + if (consideredShells.Contains(item) || m_AttemptedShells.Contains(item)) continue; + consideredShells.Insert(item); + donorShells++; + BaseInventoryStorageComponent storage = destination.FindStorageForItem(item, EStoragePurpose.PURPOSE_DEPOSIT); + if (!storage) { storageRejected++; continue; } + m_AttemptedShells.Insert(item); // even rejected/ambiguous requests are never retried + m_Transfer = new ERR_MortarSupplyTransfer(this, donor, gunner, item, storage, now); + if (!m_Transfer.Begin(now)) return SupplyStateFailed("exact shell transfer request rejected; no retry"); + Audit("AMMO TRANSFER", string.Format("one exact-item move pending donor=%1 gunner=%2 shell=%3 order=%4; awaiting callback AND physical destination", donor, gunner, item, OrderId)); + return ERR_MortarSupplyState.PENDING; + } + } + return SupplyStateFailed(string.Format("gunner empty; fighting donors within 12m=%1 unattempted HE=%2 destination storage rejected=%3", nearbyDonors, donorShells, storageRejected)); + } + + // Compatibility for existing native callers; request acceptance is NOT ready. + bool SupplyGunner() { return SupplyState(GetGame().GetWorld().GetWorldTime()) == ERR_MortarSupplyState.READY; } + protected ERR_MortarSupplyState SupplyStateFailed(string reason) + { + SupplyFailed(reason); + return ERR_MortarSupplyState.FAILED; + } + + bool SupplyFailed(string reason) + { + LastFailure = reason; + Audit("AMMO FAILED", reason); + return false; + } + + void Cancel(string reason = "cancel requested") + { + if (CommandOpen) + { + FlushTraces(); + Audit("ORDER END", string.Format("reason=%1 observed shots=%2 shell committed=%3 elapsed=%4s last failure=%5", reason, OrderShots, Released, (GetGame().GetWorld().GetWorldTime() - OrderedAt) / 1000, LastFailure)); + } + CommandOpen = false; + RadioOrder = null; + PendingRadioReport = null; + PendingSupplyReport = null; + Refresh = null; + RefreshRejected = false; + if (m_Transfer) m_Transfer.Invalidate(); + Report = null; + AimedAt = -1; + AimValidatedAt = -1; + AimSolver = null; + AimSolution = null; + if (Activity) + Activity.Complete(); + Activity = null; + } + + // Idle distant batteries still report through HQ's scheduler. Their native + // AI needs full detail while firing or when players can interact with them. + protected void UpdateCrewDetail(float now, bool firing = false) + { + if (!Group || Group.GetPlayerCount(true) > 0) + return; + bool active = firing || Activity != null || ERR_MortarSystem.NearPlayer(Position); + int lod = -1; + if (active) + lod = 0; + if (Group.GetPermanentLOD() != lod) + Group.SetPermanentLOD(lod); + if (active && !Group.IsAIActivated()) + Group.ActivateAI(); + array agents = {}; + Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || EntityUtils.IsPlayer(agent.GetControlledEntity())) + continue; + if (agent.GetPermanentLOD() != lod) + agent.SetPermanentLOD(lod); + if (active && !agent.IsAIActivated() && ERR_Actors.CanFight(agent.GetControlledEntity())) + agent.ActivateAI(); + } + } + + void Update(float now) + { + if (m_Stopped) return; + if (!StartupActivated) + { + if (!SpawnFailure.IsEmpty()) return; + if (!m_Readiness) { SpawnFailed("initial support readiness owner missing"); return; } + ERR_MortarSupplyState startup = m_Readiness.Poll(now); + if (startup != ERR_MortarSupplyState.READY) return; + StartupActivated = true; + } + if (m_Transfer) m_Transfer.Poll(now); + if (!Operational()) + { + Cancel(OperationalReason()); + return; + } + if (Activity) + { + Trace("ACTIVITY", string.Format("native state=%1", Activity.GetActionState()), string.Format("age=%1s aim age=%2s committed=%3 shots=%4", (now - OrderedAt) / 1000, (now - AimedAt) / 1000, Released, OrderShots)); + if (Activity.GetActionState() == EAIActionState.FAILED) Cancel("native artillery activity FAILED"); + else if (Activity.GetActionState() == EAIActionState.COMPLETED) Cancel("native artillery activity COMPLETED (shot count is separate)"); + else if (now - OrderedAt > ERR_MortarSalvo.TIMEOUT_MS) Cancel("120s artillery salvo timeout"); + } + if (StartupActivated) + UpdateCrewDetail(now); + } + + void Order(ERR_HQReport report, float now) + { + if (m_Stopped || !StartupActivated || !Operational() || !CommandOpen || Activity || !ERR_MortarPrediction.Fresh(report, now)) return; + Report = report.Snapshot(); + OrderedAt = now; + NextOrder = now + 30000; + Released = false; + UpdateCrewDetail(now, true); + Activity = new SCR_AIStaticArtilleryActivity(Group.GetGroupUtilityComponent(), null, report.Position, SCR_EAIArtilleryAmmoType.HIGH_EXPLOSIVE, ERR_MortarSalvo.ROUNDS); + Group.GetGroupUtilityComponent().AddAction(Activity); + Audit("AIM", string.Format("native activity created; latest source=M%1 observed=%2", report.MessageId, report.Description(now))); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c new file mode 100644 index 0000000..a225a87 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c @@ -0,0 +1,68 @@ +class ERR_MortarCourierCallback : ScriptedInventoryOperationCallback +{ + ERR_MortarCourierTransfer Transfer; + protected override void OnComplete() { if (Transfer) Transfer.Acknowledge(true); } + protected override void OnFailed() { if (Transfer) Transfer.Acknowledge(false); } +} +// One exact native move belonging to one courier trip. Never retries ambiguous work. +class ERR_MortarCourierTransfer +{ + protected ERR_MortarLogistics m_Service; + protected IEntity m_Shell; + protected IEntity m_From; + protected IEntity m_To; + protected InventoryStorageManagerComponent m_Source; + protected InventoryStorageManagerComponent m_Destination; + protected BaseInventoryStorageComponent m_Storage; + protected ref ERR_MortarCourierCallback m_Callback; + protected int m_Trip; + protected int m_Acknowledgement; + protected float m_Deadline; + protected bool m_Accepted; + protected bool m_Invalidated; + protected bool m_Resolved; + void ERR_MortarCourierTransfer(ERR_MortarLogistics service, int trip, IEntity shell, IEntity from, IEntity to, BaseInventoryStorageComponent storage, float now) + { + m_Service = service; m_Trip = trip; m_Shell = shell; m_From = from; m_To = to; m_Storage = storage; m_Deadline = now + 8000; + m_Source = InventoryStorageManagerComponent.Cast(from.FindComponent(InventoryStorageManagerComponent)); + m_Destination = InventoryStorageManagerComponent.Cast(to.FindComponent(InventoryStorageManagerComponent)); + } + static bool Proven(bool complete, bool source, bool destination, bool exact) { return complete && !source && destination && exact; } + protected bool Contains(InventoryStorageManagerComponent inventory) + { + if (!inventory || !m_Shell) return false; + array items = {}; ERR_Inventory.Items(inventory, items); return items.Contains(m_Shell); + } + void Acknowledge(bool success) + { + if (m_Acknowledgement != 0) return; + if (success) m_Acknowledgement = 1; + else m_Acknowledgement = -1; + } + bool Begin(float now) + { + if (m_Callback || !Replication.IsServer() || !m_Service.TransferAllowed(m_Trip, m_Shell, m_From, m_To, now) || !Contains(m_Source) || Contains(m_Destination)) return false; + m_Callback = new ERR_MortarCourierCallback(); m_Callback.Transfer = this; + m_Accepted = m_Source.TryMoveItemToStorage(m_Shell, m_Storage, -1, m_Callback); + if (!m_Accepted) { Acknowledge(false); m_Resolved = true; } + return m_Accepted; + } + void Invalidate() { m_Invalidated = true; } + bool Unresolved() { return m_Accepted && !m_Resolved; } + IEntity Shell() { return m_Shell; } + int Poll(float now) + { + // A deleted exact entity cannot complete later; close as a permanent loss. + if (!m_Shell) { m_Resolved = true; m_Invalidated = true; return -1; } + bool exact; + InventoryItemComponent item; + if (m_Shell) item = InventoryItemComponent.Cast(m_Shell.FindComponent(InventoryItemComponent)); + if (item && item.GetParentSlot()) exact = item.GetParentSlot().GetStorage() == m_Storage; + bool proven = Proven(m_Acknowledgement == 1, Contains(m_Source), Contains(m_Destination), exact); + if (proven || m_Acknowledgement < 0) m_Resolved = true; + if (m_Invalidated || now >= m_Deadline || !m_Service.TransferAllowed(m_Trip, m_Shell, m_From, m_To, now)) { m_Invalidated = true; return -1; } + if (proven) return 1; + if (m_Acknowledgement < 0 || !m_Accepted) return -1; + return 0; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c new file mode 100644 index 0000000..789e3c6 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c @@ -0,0 +1,307 @@ +// The dedicated manpack operator has no mortar-shell backpack. Preserve the +// native chooser and its caller's original index for every eligible gunner. +modded class SCR_AIStaticArtilleryActivity +{ + protected override AIAgent FindBestAgentForArtillery(notnull array agents, notnull IEntity artilleryEntity, out int outIndex) + { + ERR_MortarSystem system = ERR_MortarSystem.Get(); + ERR_MortarBattery battery; + if (system) battery = system.FindGun(artilleryEntity); + if (!battery) return super.FindBestAgentForArtillery(agents, artilleryEntity, outIndex); + array gunners = {}; + foreach (AIAgent agent : agents) + { + if (agent && agent.GetControlledEntity() != battery.RadioOperator && ERR_Actors.CanFight(agent.GetControlledEntity())) + gunners.Insert(agent); + } + int filteredIndex; + AIAgent selected = super.FindBestAgentForArtillery(gunners, artilleryEntity, filteredIndex); + outIndex = -1; + if (selected) outIndex = agents.Find(selected); + return selected; + } +} + +// Leave all other artillery (including player-operated captured guns) native. +modded class SCR_AIGetArtilleryAimDistanceCompensation +{ + override ENodeResult EOnTaskSimulate(AIAgent owner, float dt) + { + IEntity gun; + GetVariableIn(PORT_ARTILLERY_ENTITY, gun); + ERR_MortarSystem system = ERR_MortarSystem.Get(); + ERR_MortarBattery battery; + if (system) + battery = system.FindGun(gun); + if (!battery) + return super.EOnTaskSimulate(owner, dt); + battery.AimedAt = -1; + battery.AimValidatedAt = -1; + battery.AimSolver = null; + battery.AimSolution = null; + float now = GetGame().GetWorld().GetWorldTime(); + ERR_HQReport report = system.Latest(battery, now); + if (!ERR_HQ.MissionActive()) { system.Withhold(battery, "aim: mission inactive"); return ENodeResult.FAIL; } + if (!battery.CommandOpen || battery.OrderShots >= ERR_MortarSalvo.ROUNDS) { system.Withhold(battery, "aim: salvo complete or order closed"); return ENodeResult.FAIL; } + if (battery.Released) { system.Withhold(battery, "aim: waiting for committed projectile"); return ENodeResult.FAIL; } + if (!report) { system.Withhold(battery, "aim: " + system.ContactFailure(battery)); return ENodeResult.FAIL; } + battery.Trace("AIM START", "solving moving intercept", string.Format("latest source=M%1; %2", report.MessageId, report.Description(now))); + ERR_MortarAimSolution solution = ERR_Solve(battery, system, report, now); + if (!solution) return ENodeResult.FAIL; + battery.Impact = solution.Impact; + battery.AimOffset = solution.SalvoOffset; + battery.AimedShot = battery.OrderShots; + battery.FlightTime = solution.FlightTime; + battery.AimSolution = solution; + battery.AimSolver = this; // weak: do not retain a destroyed native behavior tree + battery.AimedAt = now; + battery.AimValidatedAt = now; + battery.LastFailure = ""; + battery.Trace("AIM SOLUTION", "ready", string.Format("predicted impact=%1 flight=%2s charge index=%3 aim target=%4 latest source=M%5", solution.Impact, solution.FlightTime, solution.Charge, solution.AimTarget, report.MessageId)); + SetVariableOut(PORT_AIM_POS, solution.AimTarget); + SetVariableOut(PORT_INIT_SPEED_ID, solution.Charge); + return ENodeResult.SUCCESS; + } + + // Reuse this exact native node's coefficient/elevation APIs. A slow native + // barrel can keep its command only if a NEW solve still matches that command. + bool ERR_RevalidateAim(ERR_MortarBattery battery, ERR_MortarSystem system, ERR_HQReport report, float now) + { + IEntity gun; + ResourceName ammo; + GetVariableIn(PORT_ARTILLERY_ENTITY, gun); + GetVariableIn(PORT_AMMO_PREFAB, ammo); + ERR_MortarAimSolution commanded = battery.AimSolution; + if (battery.AimSolver != this || !commanded || !commanded.Matches(battery, report) || gun != battery.Gun || ammo != ERR_MortarBattery.SHELL) + return system.Withhold(battery, "original aim solver or command no longer available"); + if (!ERR_MortarPrediction.Fresh(report, now)) return system.Withhold(battery, system.ContactFailure(battery)); + ERR_MortarAimSolution updated = ERR_Solve(battery, system, report, now); + if (!updated) return false; + if (!ERR_MortarAimRules.Equivalent(commanded.Charge, updated.Charge, commanded.GunOrigin, updated.GunOrigin, commanded.Impact, updated.Impact, commanded.AimTarget, updated.AimTarget, commanded.FlightTime, updated.FlightTime)) + return system.Withhold(battery, "new ballistic solution requires native re-aim", string.Format("gun drift=%1m impact drift=%2m aim drift=%3m charge=%4/%5 flight=%6/%7s", vector.Distance(commanded.GunOrigin, updated.GunOrigin), vector.Distance(commanded.Impact, updated.Impact), vector.Distance(commanded.AimTarget, updated.AimTarget), commanded.Charge, updated.Charge, commanded.FlightTime, updated.FlightTime)); + // Keep the ORIGINAL command/impact/flight. Comparing successive refreshed + // solutions would allow a moving target to drift away in small increments. + battery.AimValidatedAt = now; + battery.Trace("AIM REVALIDATED", "same native command", string.Format("fresh ballistic solve matched original; source=M%1 observed age=%2s", report.MessageId, (now - report.ObservedAt) / 1000)); + return true; + } + + // The report may change only after a real HQ downlink. Re-solve against the + // ORIGINAL geometry; never replace the commanded solution with an + // approximately equivalent successor (which would permit tolerance creep). + bool ERR_AdoptReport(ERR_MortarBattery battery, ERR_MortarSystem system, ERR_HQReport report, float now) + { + IEntity gun; + ResourceName ammo; + GetVariableIn(PORT_ARTILLERY_ENTITY, gun); + GetVariableIn(PORT_AMMO_PREFAB, ammo); + ERR_MortarAimSolution commanded = battery.AimSolution; + if (battery.Released || battery.RefreshRejected || !battery.CommandOpen || !battery.Refresh || !battery.Refresh.DeliveredFor(battery, report)) + return system.Withhold(battery, "target update lacks completed delivery for this uncommitted order"); + if (battery.AimSolver != this || !commanded || !commanded.Matches(battery, battery.Report) || gun != battery.Gun || ammo != ERR_MortarBattery.SHELL) + return system.Withhold(battery, "target update lost its original native aim owner"); + if (battery.AimedAt < 0 || now < battery.AimedAt) return system.Withhold(battery, "original native aim timestamp invalid"); + if (!ERR_MortarRefreshRules.Newer(battery.Report, report, now)) return system.Withhold(battery, "target update is not a newer fresh same-target observation"); + ERR_MortarAimSolution updated = ERR_Solve(battery, system, report, now); + if (!updated) return false; + if (!ERR_MortarAimRules.Equivalent(commanded.Charge, updated.Charge, commanded.GunOrigin, updated.GunOrigin, commanded.Impact, updated.Impact, commanded.AimTarget, updated.AimTarget, commanded.FlightTime, updated.FlightTime)) + return system.Withhold(battery, "target update requires a different native aim command"); + // Synchronous adoption changes accepted observation identity together. + // Original command time/geometry, order deadline and shot count survive. + commanded.Report = report; + battery.Report = report; + battery.AimValidatedAt = now; + return true; + } + + protected ERR_MortarAimSolution ERR_Solve(ERR_MortarBattery battery, ERR_MortarSystem system, ERR_HQReport report, float now) + { + IEntity gun = battery.Gun; + vector gunOrigin = gun.GetOrigin(); + ResourceName ammo; + GetVariableIn(PORT_AMMO_PREFAB, ammo); + if (ammo != ERR_MortarBattery.SHELL) { system.Withhold(battery, "unsupported ammunition prefab", ammo); return null; } + Resource resource = Resource.Load(ammo); + if (!resource || !resource.IsValid() || !resource.GetResource()) { system.Withhold(battery, "shell resource load failed", ammo); return null; } + IEntitySource source = resource.GetResource().ToEntitySource(); + if (!source) { system.Withhold(battery, "shell resource has no entity source", ammo); return null; } + array coefficients = {}; + GetAmmoInitialSpeedCoefficients(ammo, coefficients); + if (coefficients.IsEmpty()) + coefficients.Insert(1.0); + float minimum, maximum; + GetVerticalAimLimits(gun, minimum, maximum); + float flight = 30; + float offset; + int charge; + vector impact; + vector salvoOffset = ERR_MortarSalvo.Offset(battery.SiteId, battery.OrderId, battery.OrderShots); + bool converged; + // Iterate the moving intercept using the native shell's flight time. + // Reject non-convergence rather than fire with an arbitrary lead time. + for (int iteration = 0; iteration < 4; iteration++) + { + if (!ERR_MortarPrediction.Predict(report, now, flight + 2, impact)) { system.Withhold(battery, "aim prediction: " + ERR_MortarPrediction.FailureReason, string.Format("flight lead=%1s; %2", flight + 2, report.Description(now))); return null; } + if (!system.OutsideSettlements(impact)) { system.Withhold(battery, "aim target inside settlement exclusion", system.SettlementReason); return null; } + impact += salvoOffset; + impact[1] = SCR_TerrainHelper.GetTerrainY(impact); + float distance = vector.DistanceXZ(gunOrigin, impact); + float altitude = impact[1] - gunOrigin[1]; + if (distance < 350 || distance > 4000) { system.Withhold(battery, "predicted impact out of range", string.Format("iteration=%1 distance=%2m impact=%3 allowed=350..4000m", iteration, distance, impact)); return null; } + bool reachable; + float calculated; + for (int i = 0; i < coefficients.Count(); i++) + { + if (!BallisticTable.GetAimHeightOfProjectileAltitudeFromSource(distance, offset, calculated, source, altitude, coefficients[i])) + continue; + float tangent = (offset + altitude) / distance; + if (calculated <= 0 || calculated > 75 || tangent < Math.Tan(minimum) || tangent > Math.Tan(maximum)) + continue; + charge = i; + reachable = true; + break; + } + if (!reachable) { system.Withhold(battery, "no native ballistic solution within elevation/flight-time limits", string.Format("iteration=%1 distance=%2 altitude=%3 charges=%4 elevation radians=%5..%6 flight limit=75s", iteration, distance, altitude, coefficients.Count(), minimum, maximum)); return null; } + converged = Math.AbsFloat(calculated - flight) < 1; + flight = calculated; + if (converged) + break; + } + if (!converged) { system.Withhold(battery, "moving intercept did not converge in four iterations"); return null; } + if (!system.Safe(battery, impact, flight + 2)) { system.Withhold(battery, "aim impact safety rejected", system.SafetyReason); return null; } + ERR_MortarAimSolution solution = new ERR_MortarAimSolution(); + solution.Gun = gun; + solution.Report = report; + solution.OrderId = battery.OrderId; + solution.Shot = battery.OrderShots; + solution.GunOrigin = gunOrigin; + solution.Impact = impact; + solution.AimTarget = impact + Vector(0, offset, 0); + solution.SalvoOffset = salvoOffset; + solution.Charge = charge; + solution.FlightTime = flight; + return solution; + } +} + +modded class SCR_AIShootStaticArtillery +{ + override ENodeResult EOnTaskSimulate(AIAgent owner, float dt) + { + IEntity gun; + GetVariableIn(PORT_ARTILLERY_ENTITY, gun); + ERR_MortarSystem system = ERR_MortarSystem.Get(); + ERR_MortarBattery battery; + if (system) + battery = system.FindGun(gun); + if (battery && !system.AllowShot(battery)) + { + battery.Trace("SHOOT NODE", "authorization rejected", battery.LastFailure); + return ENodeResult.FAIL; + } + ENodeResult result = super.EOnTaskSimulate(owner, dt); + if (battery) + battery.Trace("SHOOT NODE", string.Format("native result=%1", result), "authorization passed; node result does not confirm a physical shot"); + return result; + } +} + +modded class SCR_MortarMuzzleComponent +{ + protected override void TransferShellToMortar() + { + ERR_MortarSystem system = ERR_MortarSystem.Get(); + ERR_MortarBattery battery; + if (system && m_CharController && !EntityUtils.IsPlayer(m_CharController.GetOwner())) + battery = system.FindGun(GetOwner()); + if (battery) + { + // The loading animation takes time. Recheck at the actual transfer, + // before native inventory insertion triggers the physical projectile. + if (!system.AllowShot(battery)) + { + if (m_ShellComponent) + { + m_ShellComponent.GetOnShellUsed().Remove(TransferShellToMortar); + m_ShellComponent.SetLoadedState(false); + } + CharacterAnimationComponent animation = m_CharController.GetAnimationComponent(); + if (animation && animation.GetCommandHandler()) + animation.GetCommandHandler().FinishItemUse(false); + battery.Audit("ABORT", "final shell transfer rejected; " + battery.LastFailure); + return; + } + battery.Released = true; + battery.ReserveShellAirspace(GetGame().GetWorld().GetWorldTime()); + battery.Audit("SHELL COMMIT", string.Format("final safety passed; gunner=%1 predicted impact=%2 flight=%3s; invoking native transfer, awaiting projectile event", m_CharController.GetOwner(), battery.Impact, battery.FlightTime)); + } + super.TransferShellToMortar(); + } + + override void OnWeaponFired(IEntity effectEntity, BaseMuzzleComponent muzzle, IEntity projectileEntity) + { + IEntity firingCharacter; + if (m_CharController) firingCharacter = m_CharController.GetOwner(); + super.OnWeaponFired(effectEntity, muzzle, projectileEntity); + ERR_MortarSystem system = ERR_MortarSystem.Get(); + ERR_MortarBattery battery; + if (system) + battery = system.FindGun(GetOwner()); + if (!battery) + return; + bool playerGunner; + if (firingCharacter) playerGunner = EntityUtils.IsPlayer(firingCharacter); + battery.ObserveProjectile(projectileEntity, firingCharacter, playerGunner); + } +} + +// The native tree normally re-aims only every five shots (and skips the first +// re-aim). Each salvo shell needs its own spread point and fresh authorization. +modded class SCR_AIStaticArtilleryBehavior +{ + ERR_MortarBattery ERR_GetMortarBattery() + { + ERR_MortarSystem system = ERR_MortarSystem.Get(); + if (!system) return null; + return system.FindGun(m_ArtilleryEntity.m_Value); + } +} + +modded class SCR_AIStaticArtilleryBehavior_ShootingLogic +{ + override ENodeResult EOnTaskSimulate(AIAgent owner, float dt) + { + ERR_MortarBattery battery; + SCR_AIStaticArtilleryBehavior behavior; + if (m_Utility) + { + behavior = SCR_AIStaticArtilleryBehavior.Cast(m_Utility.GetExecutedAction()); + if (behavior) battery = behavior.ERR_GetMortarBattery(); + } + if (battery) + { + int gate = ERR_MortarSupplyRules.CycleGate(battery.CommandOpen, battery.OrderShots, behavior.GetShotCount(), ERR_MortarSalvo.ROUNDS, ERR_MortarSupplyState.READY); + if (gate < 0) return ENodeResult.FAIL; + if (gate == 0) return ENodeResult.RUNNING; + // Native super increments the behavior counter. Wait BEFORE calling it, + // so repeated pending ticks cannot count the same projectile twice. + if (battery.OrderShots < ERR_MortarSalvo.ROUNDS) + { + ERR_MortarSupplyState supply = battery.SupplyState(GetGame().GetWorld().GetWorldTime()); + if (supply == ERR_MortarSupplyState.PENDING) return ENodeResult.RUNNING; + if (supply == ERR_MortarSupplyState.FAILED) + { + ERR_MortarSystem system = ERR_MortarSystem.Get(); + if (system) system.Withhold(battery, "next native load lacks confirmed physical gunner ammunition"); + return ENodeResult.FAIL; + } + } + } + ENodeResult result = super.EOnTaskSimulate(owner, dt); + if (battery && result == ENodeResult.SUCCESS) + { + SetVariableOut(PORT_AIMING_NEEDED, true); + } + return result; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c new file mode 100644 index 0000000..8c3d42d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c @@ -0,0 +1,347 @@ +class ERR_MortarSupplyStatus +{ + SCR_AIGroup Group; + IEntity Gun; + vector Position; + float ObservedAt; + int MessageId; + int Shells; +} +class ERR_MortarLogisticsRules +{ + static bool Fresh(float observedAt, float now) { return observedAt >= 0 && now >= observedAt && now - observedAt <= 180000; } + static bool Need(int shells) { return shells >= 0 && shells <= 6; } + static bool NewRequest(int message, int consumed, bool fresh) { return fresh && message > 0 && message > consumed; } + static bool Near(float distance) { return distance >= 0 && distance <= 12; } + static bool ActiveTrip(bool server, bool stopped, int trip, int current, bool fresh, bool ownershipValid) { return server && !stopped && trip > 0 && trip == current && fresh && ownershipValid; } +} +// One finite western-cache courier, owned and ticked exclusively by HQ. +class ERR_MortarLogistics +{ + protected ERR_HQ m_HQ; + protected ERR_GameMode m_Mode; + protected ERR_SiteRuntime m_Site; + protected IEntity m_Cache; + protected SCR_AIGroup m_Group; + protected ERR_MortarBattery m_Battery; + protected IEntity m_OriginalGun; + protected SCR_AIGroup m_OriginalBatteryGroup; + protected ref array m_BatteryMembers = {}; + protected ref array m_OriginalMembers = {}; + protected ref array m_Stock = {}; + protected ref array m_Cargo = {}; + protected ref array m_AttemptedPickup = {}; + protected ref array m_AttemptedUnload = {}; + protected ref array m_Initial = {}; + protected ref ERR_MortarSupplyStatus m_Report; + protected ref ERR_HQRoute m_Order; + protected ref ERR_MortarCourierTransfer m_Move; + protected IEntity m_Courier; + protected AIWaypoint m_Waypoint; + protected AIWaypoint m_HoldWaypoint; + protected float m_InitialDeadline; + protected float m_NextReport; + protected float m_LastDeliveryAt = -1; + protected int m_ConsumedMessage; + protected int m_Trip; + protected int m_State; // 0 initial, 1 idle, 2 downlink, 3 pickup, 4 travel, 5 unload + protected int m_Delivered; + protected int m_CompletedTrips; + protected bool m_Started; + protected bool m_Stopped; + protected string m_Reason; + static const int INITIAL_SHELLS = 12; + static const int TRIP_SHELLS = 6; + void ERR_MortarLogistics(ERR_HQ hq, ERR_GameMode mode) { m_HQ = hq; m_Mode = mode; } + int State() { return m_State; } + int Trip() { return m_Trip; } + int Delivered() { return m_Delivered; } + int CompletedTrips() { return m_CompletedTrips; } + IEntity Cache() { return m_Cache; } + SCR_AIGroup Group() { return m_Group; } + IEntity Courier() { return m_Courier; } + ERR_MortarBattery Battery() { return m_Battery; } + ERR_MortarSupplyStatus Report() { return m_Report; } + bool Stopped() { return m_Stopped; } + void InitialStock(out array items) { items.Copy(m_Stock); } + protected void Audit(string kind, string reason) + { + int message; if (m_Report) message = m_Report.MessageId; + m_Reason = reason; + m_HQ.Journal().Write("COURIER " + kind, string.Format("trip=%1 state=%2 delivered=%3; %4", m_Trip, m_State, m_Delivered, reason), message); + } + protected InventoryStorageManagerComponent Inventory(IEntity entity) + { + if (!entity) return null; + return InventoryStorageManagerComponent.Cast(entity.FindComponent(InventoryStorageManagerComponent)); + } + protected bool Contains(IEntity owner, IEntity shell) + { + InventoryStorageManagerComponent inventory = Inventory(owner); + if (!inventory || !shell) return false; + array items = {}; ERR_Inventory.Items(inventory, items); return items.Contains(shell); + } + protected void Shells(IEntity owner, out array shells) + { + shells.Clear(); InventoryStorageManagerComponent inventory = Inventory(owner); if (!inventory) return; + array items = {}; ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL) shells.Insert(item); + } + bool Prepare() + { + if (!Replication.IsServer() || m_Started || m_Stopped) return false; + m_Started = true; + ERR_ScenarioComponent scenario = ERR_ScenarioComponent.Cast(m_Mode.FindComponent(ERR_ScenarioComponent)); + if (!scenario || !scenario.Sites()) return false; + m_Site = scenario.Sites().Find("everon-supply-2"); + if (!m_Site || !m_Site.Group || !m_Site.PatrolCycle || !scenario.Sites().Owns(m_Site.Container)) return false; + m_Cache = m_Site.Container; m_Group = m_Site.Group; + array batteries = {}; m_HQ.Mortars().Batteries(batteries); + if (batteries.Count() != 1) return false; + m_Battery = batteries[0]; m_OriginalGun = m_Battery.Gun; m_OriginalBatteryGroup = m_Battery.Group; + InventoryStorageManagerComponent inventory = Inventory(m_Cache); + if (!inventory || !inventory.CanInsertResource(ERR_MortarBattery.SHELL, EStoragePurpose.PURPOSE_DEPOSIT)) return false; + array existing = {}; Shells(m_Cache, existing); if (!existing.IsEmpty()) return false; + array agents = {}; m_Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) return false; + m_OriginalMembers.Insert(agent.GetControlledEntity()); + } + if (m_OriginalMembers.Count() != m_Site.InitialGuardCount) return false; + m_InitialDeadline = GetGame().GetWorld().GetWorldTime() + 15000; + // SiteService owns this existing cache and its contents through rollback/world teardown. + // This bounded startup allocation is never reopened, including partial failure/theft. + for (int i = 0; i < INITIAL_SHELLS; i++) + { + IEntity shell = ERR_Actors.Spawn(ERR_MortarBattery.SHELL, m_Cache.GetOrigin()); + if (!shell) return false; + // Keep the exact created identity; counts cannot prove an external item was + // not substituted while an asynchronous insertion was pending. + m_Mode.Own(shell); m_Stock.Insert(shell); + ERR_MortarInitialItem operation = new ERR_MortarInitialItem(); m_Initial.Insert(operation); + if (!inventory.TryInsertItem(shell, EStoragePurpose.PURPOSE_DEPOSIT, operation)) { operation.Rejected(); return false; } + } + return true; + } + protected bool OriginalGroup() + { + if (!m_Site || m_Site.Group != m_Group || m_Site.Container != m_Cache || !m_Group || !m_Cache || m_Group.GetPlayerCount(true) > 0 || m_Group.GetFaction() != m_Mode.EnemyFaction()) return false; + array agents = {}; m_Group.GetAgents(agents); bool living; + foreach (AIAgent agent : agents) + { + if (!agent || !agent.GetControlledEntity()) continue; + IEntity actor = agent.GetControlledEntity(); + if (!m_OriginalMembers.Contains(actor) || ERR_Actors.Player(actor) || ERR_Actors.Group(actor) != m_Group || SCR_FactionManager.SGetFaction(actor) != m_Mode.EnemyFaction()) return false; + if (ERR_Actors.CanFight(actor)) living = true; + } + return living; + } + protected bool BindBatteryMembers() + { + if (!m_Battery || !m_Battery.StartupActivated || m_Battery.Group != m_OriginalBatteryGroup || m_Battery.Gun != m_OriginalGun) return false; + if (!m_BatteryMembers.IsEmpty()) return true; + array agents = {}; m_Battery.Group.GetAgents(agents); + foreach (AIAgent agent : agents) + if (agent && agent.GetControlledEntity() && !m_BatteryMembers.Contains(agent.GetControlledEntity())) m_BatteryMembers.Insert(agent.GetControlledEntity()); + return !m_BatteryMembers.IsEmpty(); + } + bool TargetAvailable() + { + if (!m_Battery || m_Battery.Gun != m_OriginalGun || m_Battery.Group != m_OriginalBatteryGroup || !m_OriginalGun || !m_Battery.StartupActivated || m_Battery.Stopped() || !m_Battery.Operational() || m_HQ.Mortars().FindGun(m_OriginalGun) != m_Battery || m_BatteryMembers.IsEmpty()) return false; + if (SCR_FactionManager.SGetFaction(m_OriginalGun) != m_Mode.EnemyFaction()) return false; + SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(m_OriginalGun.FindComponent(SCR_AIVehicleUsageComponent)); + if (!usage || !usage.GetTurretCompartmentSlot()) return false; + IEntity occupant = usage.GetTurretCompartmentSlot().GetOccupant(); + if (!occupant) return true; + return m_BatteryMembers.Contains(occupant) && ERR_Actors.CanFight(occupant) && !ERR_Actors.Player(occupant) && ERR_Actors.Group(occupant) == m_OriginalBatteryGroup && SCR_FactionManager.SGetFaction(occupant) == m_Mode.EnemyFaction(); + } + bool CanSample(ERR_MortarBattery battery) { return battery == m_Battery && TargetAvailable(); } + protected bool Bearer(IEntity actor) + { + return actor && m_OriginalMembers.Contains(actor) && ERR_Actors.Group(actor) == m_Group && ERR_Actors.CanFight(actor) && !ERR_Actors.Player(actor) && !CompartmentAccessComponent.GetVehicleIn(actor) && SCR_FactionManager.SGetFaction(actor) == m_Mode.EnemyFaction() && ERR_HQRadio.Capability(actor) != 2; + } + bool AcceptsStatus(ERR_MortarSupplyStatus report, float now) + { + return !m_Stopped && m_State == 1 && report && m_Battery && report.Group == m_Battery.Group && report.Gun == m_Battery.Gun && ERR_MortarLogisticsRules.Need(report.Shells) && ERR_MortarLogisticsRules.NewRequest(report.MessageId, m_ConsumedMessage, ERR_MortarLogisticsRules.Fresh(report.ObservedAt, now)); + } + void Receive(ERR_MortarSupplyStatus report, float now) + { + if (!AcceptsStatus(report, now)) return; + m_Report = report; + Audit("RECEIVED", "immutable low-ammunition status delivered by native physical radio route"); + } + protected bool Authorized(float now) + { + if (!m_Mode || !m_Mode.Active() || !m_Report || !m_Battery) return false; + return ERR_MortarLogisticsRules.ActiveTrip(Replication.IsServer(), m_Stopped, m_Trip, m_HQ.LogisticsToken(m_Group), ERR_MortarLogisticsRules.Fresh(m_Report.ObservedAt, now), OriginalGroup()) && TargetAvailable() && m_Report.Gun == m_Battery.Gun && m_Report.Group == m_Battery.Group && vector.Distance(m_Report.Position, m_Battery.Gun.GetOrigin()) <= 5; + } + bool TransferAllowed(int trip, IEntity shell, IEntity from, IEntity to, float now) + { + if (trip != m_Trip || !Authorized(now) || !shell || !m_Stock.Contains(shell) || !Bearer(m_Courier)) return false; + if (m_State == 3) return from == m_Cache && to == m_Courier && ERR_MortarLogisticsRules.Near(vector.Distance(from.GetOrigin(), to.GetOrigin())); + if (m_State != 5 || from != m_Courier || !m_Cargo.Contains(shell) || !ERR_Actors.CanFight(to) || ERR_Actors.Player(to) || to == m_Battery.RadioOperator || !m_BatteryMembers.Contains(to) || ERR_Actors.Group(to) != m_Battery.Group || SCR_FactionManager.SGetFaction(to) != m_Mode.EnemyFaction()) return false; + return !CompartmentAccessComponent.GetVehicleIn(to) && ERR_MortarLogisticsRules.Near(vector.Distance(from.GetOrigin(), to.GetOrigin())); + } + protected void ClearWaypoint() + { + if (m_Waypoint) { if (m_Group) m_Group.RemoveWaypoint(m_Waypoint); ERR_Actors.DeleteSpawned(m_Waypoint); } + m_Waypoint = null; + if (m_HoldWaypoint) { if (m_Group) m_Group.RemoveWaypoint(m_HoldWaypoint); ERR_Actors.DeleteSpawned(m_HoldWaypoint); } + m_HoldWaypoint = null; + } + protected bool MoveTo(vector position) + { + ClearWaypoint(); + m_Waypoint = AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.MoveWaypoint(), ERR_Actors.Ground(position))); + if (!m_Waypoint) return false; + // A completed Move alone would let the original patrol resume during the + // asynchronous item operation. This owned, non-completing native Defend + // keeps that queue below us until release; its original entries are untouched. + m_HoldWaypoint = AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.DefendWaypoint(), ERR_Actors.Ground(position))); + if (!m_HoldWaypoint) { ClearWaypoint(); return false; } + m_HoldWaypoint.SetCompletionRadius(8); + m_Group.AddWaypointAt(m_HoldWaypoint, 0); m_Group.AddWaypointAt(m_Waypoint, 0); m_Group.ActivateAI(); return true; + } + protected void Finish(string reason) + { + Audit("END", reason); + if (m_Move) m_Move.Invalidate(); + ClearWaypoint(); m_HQ.ReleaseLogistics(m_Group, m_Trip); + m_Order = null; m_Report = null; m_Courier = null; m_Cargo.Clear(); m_State = 1; + // Native requests cannot be canceled. A pending move remains held until its + // physical outcome resolves; callbacks cannot authorize a later trip. + m_NextReport = GetGame().GetWorld().GetWorldTime() + 60000; + } + protected bool BeginMove(IEntity shell, IEntity from, IEntity to, float now) + { + InventoryStorageManagerComponent destination = Inventory(to); + BaseInventoryStorageComponent storage; if (destination) storage = destination.FindStorageForItem(shell, EStoragePurpose.PURPOSE_DEPOSIT); + if (!storage) return false; + m_Move = new ERR_MortarCourierTransfer(this, m_Trip, shell, from, to, storage, now); + return m_Move.Begin(now); + } + protected bool PollMove(float now) + { + if (!m_Move) return true; + int result = m_Move.Poll(now); + if (result == 0) return false; + if (result < 0) { Finish("native item operation rejected, expired or lost authority; physical items retained"); return false; } + IEntity shell = m_Move.Shell(); m_Move = null; + if (m_State == 3) { m_Cargo.Insert(shell); Audit("PICKUP", "exact depot shell confirmed in original bearer inventory"); } + else if (m_State == 5) { m_Cargo.RemoveItem(shell); m_Delivered++; m_LastDeliveryAt = now; Audit("DELIVERED", "exact original shell confirmed in living mortar crew inventory"); } + return true; + } + protected void Pickup(float now) + { + if (!m_Courier) + { + foreach (IEntity candidate : m_OriginalMembers) + if (Bearer(candidate) && Inventory(candidate) && Inventory(candidate).CanInsertResource(ERR_MortarBattery.SHELL, EStoragePurpose.PURPOSE_DEPOSIT) && ERR_MortarLogisticsRules.Near(vector.Distance(candidate.GetOrigin(), m_Cache.GetOrigin()))) { m_Courier = candidate; break; } + if (!m_Courier) return; + } + if (!Bearer(m_Courier)) { Finish("original bearer lost or captured"); return; } + if (!PollMove(now)) return; + if (m_Cargo.Count() < TRIP_SHELLS) + { + foreach (IEntity shell : m_Stock) + { + if (!shell || !Contains(m_Cache, shell) || m_AttemptedPickup.Contains(shell)) continue; + InventoryStorageManagerComponent destination = Inventory(m_Courier); + if (!destination || !destination.FindStorageForItem(shell, EStoragePurpose.PURPOSE_DEPOSIT)) break; + m_AttemptedPickup.Insert(shell); + if (!BeginMove(shell, m_Cache, m_Courier, now)) Finish("native pickup rejected; no second request for that shell"); + return; + } + } + if (m_Cargo.IsEmpty()) { Finish("finite cache empty or bearer native storage full"); return; } + m_State = 4; + if (!MoveTo(m_Report.Position)) { Finish("native delivery waypoint unavailable"); return; } + Audit("OUTBOUND", "original patrol walking with verified finite cargo to reported battery position"); + } + protected void Unload(float now) + { + if (!PollMove(now)) return; + if (m_Cargo.IsEmpty()) { m_CompletedTrips++; Finish("finite delivery complete; original patrol restored"); return; } + array agents = {}; m_Battery.Group.GetAgents(agents); + foreach (IEntity shell : m_Cargo) + { + if (!shell || !Contains(m_Courier, shell)) { Finish("carried shell lost or stolen; no replacement"); return; } + if (m_AttemptedUnload.Contains(shell)) { Finish("previous unload unresolved or failed; no retry"); return; } + foreach (AIAgent agent : agents) + { + if (!agent) continue; + IEntity recipient = agent.GetControlledEntity(); + if (!TransferAllowed(m_Trip, shell, m_Courier, recipient, now)) continue; + InventoryStorageManagerComponent destination = Inventory(recipient); + if (!destination || !destination.FindStorageForItem(shell, EStoragePurpose.PURPOSE_DEPOSIT)) continue; + m_AttemptedUnload.Insert(shell); + if (!BeginMove(shell, m_Courier, recipient, now)) Finish("native recipient move rejected; cargo remains physical"); + return; + } + } + } + void Tick(float now) + { + if (m_Stopped || !m_Started || !Replication.IsServer() || !m_Mode.Active()) return; + if (m_State == 0) + { + bool failed; foreach (ERR_MortarInitialItem operation : m_Initial) { if (!operation.Finished) { if (now < m_InitialDeadline) return; failed = true; } else if (!operation.Succeeded) failed = true; } + if (!OriginalGroup()) failed = true; + array shells = {}; Shells(m_Cache, shells); + if (shells.Count() != INITIAL_SHELLS) { if (now < m_InitialDeadline && !failed) return; failed = true; } + foreach (IEntity originalShell : m_Stock) if (!originalShell || !shells.Contains(originalShell)) failed = true; + if (m_Stock.Count() != INITIAL_SHELLS) failed = true; + if (failed) { Audit("STARTUP FAILED", "one-time native stock allocation incomplete; no refill"); Stop(); return; } + m_State = 1; Audit("READY", "12 distinct original HE shells physically confirmed in existing western cache"); + } + if (m_State == 1) + { + if (m_Move) { m_Move.Poll(now); if (m_Move.Unresolved()) return; m_Move = null; } + if (!OriginalGroup() || !BindBatteryMembers() || !TargetAvailable()) return; + bool available; foreach (IEntity stocked : m_Stock) if (Contains(m_Cache, stocked) && !m_AttemptedPickup.Contains(stocked)) available = true; + if (!available) return; + if (now >= m_NextReport && ERR_MortarLogisticsRules.Need(m_Battery.CountShells())) { if (m_HQ.QueueSupplyStatus(m_Battery, now)) m_NextReport = now + 60000; } + if (!m_Report || !ERR_MortarLogisticsRules.NewRequest(m_Report.MessageId, m_ConsumedMessage, ERR_MortarLogisticsRules.Fresh(m_Report.ObservedAt, now))) return; + int nextTrip = m_Trip + 1; + if (!m_HQ.ReserveLogistics(m_Group, nextTrip)) return; + m_Trip = nextTrip; m_ConsumedMessage = m_Report.MessageId; + m_Order = m_HQ.Downlink(m_Group, "MORTAR SUPPLY", "collect finite western-cache HE; walk to reported battery", m_Report.MessageId); + m_State = 2; + if (!m_Order) { Finish("no native courier downlink"); return; } + Audit("QUEUED", "original patrol reserved pending physical radio command delivery"); + } + if (!Authorized(now)) { Finish("supply report expired or original ownership/gun/group changed"); return; } + if (m_Courier && !Bearer(m_Courier)) { Finish("original bearer unavailable; surviving cargo retained"); return; } + if (m_State == 2) + { + int delivered = m_Order.Advance(now, m_HQ.Journal()); + if (delivered == 0) return; + if (delivered < 0) { Finish("courier command interrupted"); return; } + m_Order = null; m_State = 3; + if (!MoveTo(m_Cache.GetOrigin())) { Finish("native pickup waypoint unavailable"); return; } + Audit("DISPATCH", "same original patrol receives delivered order and walks to finite cache"); + } + if (m_State == 3) { Pickup(now); return; } + if (m_State == 4) + { + if (!ERR_MortarLogisticsRules.Near(vector.Distance(m_Courier.GetOrigin(), m_Report.Position))) return; + m_State = 5; Audit("ARRIVED", "physical bearer reached reported gun area; exact recipient checks still required"); + } + if (m_State == 5) Unload(now); + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Move) m_Move.Invalidate(); + ClearWaypoint(); m_HQ.ReleaseLogistics(m_Group, m_Trip); m_Order = null; m_Report = null; + } + #ifdef WORKBENCH + ERR_HQRoute ProbeOrder() { return m_Order; } + int ProbeSourceMessage() { return m_ConsumedMessage; } + float ProbeLastDelivery() { return m_LastDeliveryAt; } + #endif + string Status() { return string.Format("courier state=%1 finite initial=%2 delivered=%3 stopped=%4 (%5)", m_State, m_Stock.Count(), m_Delivered, m_Stopped, m_Reason); } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c new file mode 100644 index 0000000..7f513e2 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c @@ -0,0 +1,131 @@ +// All target coordinates come from delivered HQ observations, never a player's +// current transform. Road projection stops at an unknown junction/road end. +class ERR_MortarPrediction +{ + // Read immediately after a failed synchronous prediction; no extra world scan. + static string FailureReason; + // Includes observation uplink, HQ downlink and native aiming. All stages + // retain the original observation time; radio delivery never renews it. + static const float MAX_REPORT_AGE_MS = 60000; + + static bool Fresh(ERR_HQReport report, float now) + { + return report && report.Target && !report.Distress && now >= report.ObservedAt && now - report.ObservedAt <= MAX_REPORT_AGE_MS && report.TravelMode != "aircraft"; + } + + static bool Reject(string reason) + { + FailureReason = reason; + return false; + } + + static vector ClosestOnSegment(vector point, vector start, vector end) + { + vector segment = end - start; + segment[1] = 0; + vector offset = point - start; + offset[1] = 0; + float lengthSq = segment.LengthSq(); + if (lengthSq < 0.01) + return start; + return vector.Lerp(start, end, Math.Clamp(vector.Dot(offset, segment) / lengthSq, 0, 1)); + } + + static bool FollowRoad(array points, vector observed, vector velocity, float seconds, out vector impact) + { + if (!points || points.Count() < 2) + return Reject("road polyline has fewer than two points"); + int segment = -1; + float closest = 20; + vector projected; + for (int i = 0; i < points.Count() - 1; i++) + { + vector candidate = ClosestOnSegment(observed, points[i], points[i + 1]); + float distance = vector.DistanceXZ(candidate, observed); + if (distance < closest) + { + closest = distance; + segment = i; + projected = candidate; + } + } + if (segment < 0) + return Reject("observed vehicle is not within 20m of a road segment"); + vector forward = points[segment + 1] - points[segment]; + forward[1] = 0; + forward.Normalize(); + vector travel = velocity; + travel[1] = 0; + float speed = travel.Length(); + travel.Normalize(); + float alignment = vector.Dot(forward, travel); + if (Math.AbsFloat(alignment) < 0.7) + return Reject("vehicle heading crosses road; alignment below 0.7"); + int step = 1; + int next = segment + 1; + if (alignment < 0) + { + step = -1; + next = segment; + } + float remaining = speed * seconds; + vector position = projected; + while (next >= 0 && next < points.Count()) + { + float length = vector.DistanceXZ(position, points[next]); + if (length >= remaining && length > 0.01) + { + impact = vector.Lerp(position, points[next], remaining / length); + return true; + } + remaining -= length; + position = points[next]; + next += step; + } + return Reject("prediction reaches unknown road end/junction"); + } + + static bool Predict(ERR_HQReport report, float now, float flightSeconds, out vector impact) + { + FailureReason = ""; + if (!report) return Reject("target report missing"); + if (report.Distress) return Reject("distress report cannot authorize fire"); + if (now < report.ObservedAt) return Reject("observation timestamp is in the future"); + if (now - report.ObservedAt > MAX_REPORT_AGE_MS) return Reject("observation older than 60s"); + float seconds = (now - report.ObservedAt) / 1000 + flightSeconds; + if (seconds < 0 || seconds > 90) + return Reject("observation age plus flight outside 0..90s"); + if (report.TravelMode == "aircraft") return Reject("aircraft target unsupported"); + if (report.TravelMode == "mixed travel") return Reject("mixed travel cannot be predicted"); + impact = report.Position; + if (!report.HasVelocity || report.Velocity.Length() < 0.5) + return true; + if (report.Velocity.Length() * seconds > 1800) + return Reject("predicted travel exceeds 1800m"); + bool vehicle = report.TravelMode == "vehicle" || report.TravelMode == "in vehicle"; + if (vehicle) + { + SCR_AIWorld world = SCR_AIWorld.Cast(GetGame().GetAIWorld()); + if (!world || !world.GetRoadNetworkManager()) + return Reject("road network unavailable"); + BaseRoad road; + float roadDistance; + world.GetRoadNetworkManager().GetClosestRoad(report.Position, road, roadDistance, skipNavlinks: true); + if (!road) return Reject("no road near reported vehicle position"); + if (roadDistance > 20) return Reject("reported vehicle farther than 20m from road"); + array points = {}; + road.GetPoints(points); + return FollowRoad(points, report.Position, report.Velocity, seconds, impact); + } + impact += report.Velocity * seconds; + return true; + } + + static bool ThreatensFriendly(vector impact, vector position, vector velocity, float flightSeconds) + { + velocity[1] = 0; + vector future = position + velocity * Math.Clamp(flightSeconds, 0, 90); + // Protect the entire predicted path, not only where a soldier is now. + return vector.DistanceXZ(impact, ClosestOnSegment(impact, position, future)) <= 100; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c new file mode 100644 index 0000000..3e5ed42 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c @@ -0,0 +1,177 @@ +enum ERR_MortarSupplyState { FAILED = -1, PENDING, READY } + +class ERR_MortarSupplyRules +{ + static int CycleGate(bool commandOpen, int confirmedShots, int behaviorShots, int limit, int supplyState) + { + if (!commandOpen) return -1; + if (confirmedShots <= behaviorShots) return 0; + if (confirmedShots < limit) return supplyState; + return 1; + } +} + +class ERR_MortarInitialItem : ScriptedInventoryOperationCallback +{ + bool Finished; + bool Succeeded; + protected void Finish(bool success) { if (!Finished) { Finished = true; Succeeded = success; } } + protected override void OnComplete() { Finish(true); } + protected override void OnFailed() { Finish(false); } + protected override void OnAllComplete() { Finish(true); } + protected override void OnAllFailed() { Finish(false); } + void Rejected() { Finish(false); } +} + +// One finite allocation, after the ENTIRE original support crew exists. Failed +// or stopped setup retains physical assets and retires only its pending spawn intent. +class ERR_MortarReadiness +{ + protected ERR_MortarBattery m_Battery; + protected ref array m_Members = {}; + protected ref array m_Operations = {}; + protected bool m_Allocated; + protected bool m_Ready; + protected bool m_Stopped; + protected bool m_Retired; + protected int m_RequestedShells; + void ERR_MortarReadiness(ERR_MortarBattery battery) { m_Battery = battery; } + static ERR_MortarSupplyState Population(int physical, int gunners, int operators, bool complete, bool expired) + { + if (physical > 4 || gunners > 3 || operators > 1) return ERR_MortarSupplyState.FAILED; + if (physical == 4 && gunners == 3 && operators == 1 && complete && !expired) return ERR_MortarSupplyState.READY; + if (expired) return ERR_MortarSupplyState.FAILED; + return ERR_MortarSupplyState.PENDING; + } + static bool AllocationValid(int shells) { return shells >= 0 && shells <= 9; } + int RequestedShells() { return m_RequestedShells; } + bool Ready() { return m_Ready && !m_Stopped; } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Ready || m_Retired || !m_Battery || !m_Battery.Group || !Replication.IsServer()) return; + m_Retired = true; + // As in Core initial guard cleanup: stopping the current request alone does + // not retire the native group's still-authored future expansion intent. + RetireGroup(m_Battery.Group); + } + static void RetireGroup(SCR_AIGroup group) + { + if (!group || !Replication.IsServer()) return; + group.SetSpawnImmediately(false); + group.m_aUnitPrefabSlots = new array(); + if (!GetGame()) return; + ChimeraAIWorld world = ChimeraAIWorld.Cast(GetGame().GetAIWorld()); + if (world) world.PurgeSpawnRequestsForGroup(group); + } + + protected ERR_MortarSupplyState Fail(string reason) + { + m_Battery.SpawnFailed(reason); + Stop(); + return ERR_MortarSupplyState.FAILED; + } + protected bool Allocate() + { + m_Allocated = true; // before native requests; never refill or retry a failure + foreach (IEntity actor : m_Members) + { + if (actor == m_Battery.RadioOperator) continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + int existing = m_Battery.InventoryShells(inventory); + if (!AllocationValid(existing)) return false; + if (ERR_HQRadio.Capability(actor) == 0 && !inventory.TrySpawnPrefabToStorage("{E1A5D4B878AA8980}Prefabs/Items/Equipment/Radios/Radio_R148.et")) + m_Battery.Audit("RADIO EQUIP", "optional crew handset did not fit; dedicated manpack remains required"); + for (int i = existing; i < 9; i++) + { + ERR_MortarInitialItem operation = new ERR_MortarInitialItem(); + m_Operations.Insert(operation); + m_RequestedShells++; + if (!inventory.TrySpawnPrefabToStorage(ERR_MortarBattery.SHELL, purpose: EStoragePurpose.PURPOSE_DEPOSIT, cb: operation)) + { + operation.Rejected(); + return false; + } + } + } + return true; + } + ERR_MortarSupplyState Poll(float now) + { + if (m_Stopped || !Replication.IsServer() || !m_Battery || m_Battery.Stopped()) return ERR_MortarSupplyState.FAILED; + if (m_Ready) return ERR_MortarSupplyState.READY; + SCR_AIGroup group = m_Battery.Group; + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode || !group || !m_Battery.Gun || group.GetFaction() != mode.EnemyFaction() || group.GetPlayerCount(true) > 0) return Fail("initial support group/gun/faction changed"); + DamageManagerComponent damage = DamageManagerComponent.Cast(m_Battery.Gun.FindComponent(DamageManagerComponent)); + if (!damage || damage.IsDestroyed()) return Fail("initial support gun missing damage manager or destroyed"); + bool expired = now < m_Battery.SpawnedAt || now - m_Battery.SpawnedAt >= 90000; + array agents = {}; group.GetAgents(agents); + array physical = {}; + int gunners, operators; + IEntity operatorActor; + foreach (AIAgent agent : agents) + { + if (!agent || !agent.GetControlledEntity()) continue; + IEntity actor = agent.GetControlledEntity(); + if (physical.Contains(actor)) return Fail("initial support group reports duplicate physical actor"); + physical.Insert(actor); + if (!ERR_Actors.CanFight(actor) || SCR_FactionManager.SGetFaction(actor) != mode.EnemyFaction() || !actor.GetPrefabData()) return Fail("initial support actor unavailable or has wrong faction/resource"); + ResourceName prefab = actor.GetPrefabData().GetPrefabName(); + if (prefab == ERR_MortarBattery.CREW) gunners++; + else if (prefab == ERR_MortarBattery.RADIO_OPERATOR) { operators++; operatorActor = actor; } + else return Fail("initial support actor does not belong to authored crew catalog"); + } + ERR_MortarSupplyState population = Population(physical.Count(), gunners, operators, group.IsExpandComplete(), expired); + if (population == ERR_MortarSupplyState.FAILED) return Fail("initial four-person support population incomplete/invalid within 90 seconds"); + if (population == ERR_MortarSupplyState.PENDING) return population; + if (m_Allocated) + { + foreach (IEntity original : m_Members) + if (!physical.Contains(original)) return Fail("initial support member replaced after finite allocation"); + } + foreach (IEntity member : physical) + { + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(member.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) return ERR_MortarSupplyState.PENDING; + if (!m_Allocated && member != operatorActor && m_Battery.InventoryShells(inventory) < 9 && !inventory.CanInsertResource(ERR_MortarBattery.SHELL, EStoragePurpose.PURPOSE_DEPOSIT)) return ERR_MortarSupplyState.PENDING; + } + if (ERR_HQRadio.Capability(operatorActor) != 2) return ERR_MortarSupplyState.PENDING; + // Preserve the existing earliest activation delay, but it is not readiness. + if (now - m_Battery.SpawnedAt < 10000) return ERR_MortarSupplyState.PENDING; + if (!m_Allocated) + { + if (!group.GetGroupUtilityComponent() || !group.GetGroupUtilityComponent().m_VehicleMgr) return ERR_MortarSupplyState.PENDING; + SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(m_Battery.Gun.FindComponent(SCR_AIVehicleUsageComponent)); + if (!usage || !group.GetGroupUtilityComponent().m_VehicleMgr.TryAddVehicle(usage)) return Fail("native support gun registration failed"); + m_Members.Copy(physical); m_Battery.RadioOperator = operatorActor; + if (!Allocate()) return Fail("finite initial support shell allocation rejected; no retry"); + return ERR_MortarSupplyState.PENDING; // never accept mutation-frame readiness + } + foreach (ERR_MortarInitialItem operation : m_Operations) + { + if (!operation.Finished) return ERR_MortarSupplyState.PENDING; + if (!operation.Succeeded) return Fail("finite initial support shell operation failed; no retry"); + } + foreach (IEntity equipped : m_Members) + { + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(equipped.FindComponent(InventoryStorageManagerComponent)); + int shells = m_Battery.InventoryShells(inventory); + if (equipped == operatorActor) + { + if (shells != 0) return Fail("dedicated initial manpack operator unexpectedly carries mortar shells"); + } + else if (shells != 9) return ERR_MortarSupplyState.PENDING; + } + if (m_Battery.CountShells() != 27) return ERR_MortarSupplyState.PENDING; + m_Ready = true; + group.ActivateAI(); + foreach (AIAgent readyAgent : agents) + { + if (readyAgent) { readyAgent.SetPermanentLOD(0); readyAgent.ActivateAI(); } + } + m_Battery.Audit("CREW READY", string.Format("four original physical members, one manpack, 27 confirmed HE; new shell requests=%1; allocation permanently closed", m_RequestedShells)); + return ERR_MortarSupplyState.READY; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c new file mode 100644 index 0000000..f0e68c5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c @@ -0,0 +1,37 @@ +// One newer observation in transit for one existing physical firing order. +// The report's observed time survives both radio legs unchanged. +class ERR_MortarRefresh +{ + IEntity Gun; + SCR_AIGroup Group; + int OrderId; + int RadioId; + ref ERR_HQReport Report; + ref ERR_HQRoute Route; + + void ERR_MortarRefresh(ERR_MortarBattery battery, ERR_HQReport report, ERR_HQRoute route) + { + Gun = battery.Gun; + Group = battery.Group; + OrderId = battery.OrderId; + RadioId = route.MessageId; + Report = report.Snapshot(); + Route = route; + } + bool Owns(ERR_MortarBattery battery) + { + return battery && Gun && Group && Gun == battery.Gun && Group == battery.Group && OrderId == battery.OrderId; + } + bool DeliveredFor(ERR_MortarBattery battery, ERR_HQReport report) + { + return !Route && Report && Report == report && Owns(battery); + } +} + +class ERR_MortarRefreshRules +{ + static bool Newer(ERR_HQReport current, ERR_HQReport incoming, float now) + { + return current && incoming && current.Target && incoming.Target == current.Target && incoming.MessageId > 0 && incoming.MessageId != current.MessageId && incoming.ObservedAt > current.ObservedAt && ERR_MortarPrediction.Fresh(incoming, now); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c new file mode 100644 index 0000000..46aad47 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c @@ -0,0 +1,20 @@ +// One finite response per delivered observation at this battery. Cancellation +// does not turn the same radio message into new ammunition authorization. +class ERR_MortarReportLedger +{ + protected ref map m_Attempts = new map(); + + bool Available(int messageId, float observedAt, float now) + { + if (messageId <= 0 || observedAt < 0 || now < observedAt || now - observedAt > ERR_MortarPrediction.MAX_REPORT_AGE_MS) return false; + for (int i = m_Attempts.Count() - 1; i >= 0; i--) + if (now - m_Attempts.GetElement(i) > ERR_MortarPrediction.MAX_REPORT_AGE_MS) m_Attempts.Remove(m_Attempts.GetKey(i)); + return !m_Attempts.Contains(messageId) && m_Attempts.Count() < 128; + } + bool Claim(int messageId, float observedAt, float now) + { + if (!Available(messageId, observedAt, now)) return false; + m_Attempts.Insert(messageId, observedAt); + return true; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c new file mode 100644 index 0000000..1a4a07b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c @@ -0,0 +1,16 @@ +// One delivered HQ order drives a continuous native loading/firing cycle. +class ERR_MortarSalvo +{ + static const int ROUNDS = 8; + static const float RADIUS_METRES = 40; + static const float TIMEOUT_MS = 120000; + + static vector Offset(int site, int order, int shot) + { + // Stable throughout one ballistic solve; successive shells cover the disk + // instead of clustering on the same point or changing every iteration. + float radius = RADIUS_METRES * Math.Sqrt((shot + 1.0) / ROUNDS); + float angle = (site * 53 + order * 97 + shot * 137.5) * Math.DEG2RAD; + return Vector(Math.Sin(angle) * radius, 0, Math.Cos(angle) * radius); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c new file mode 100644 index 0000000..ece2586 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c @@ -0,0 +1,108 @@ +class ERR_MortarSupplyCallback : ScriptedInventoryOperationCallback +{ + ERR_MortarSupplyTransfer Transfer; + protected override void OnComplete() { if (Transfer) Transfer.Acknowledge(true); } + protected override void OnFailed() { if (Transfer) Transfer.Acknowledge(false); } +} + +// Exact-item native transaction. Callbacks only record outcomes; the HQ tick +// authorizes progress after checking actual inventory ownership and the order. +class ERR_MortarSupplyTransfer +{ + protected ERR_MortarBattery m_Battery; + protected IEntity m_Gun; + protected SCR_AIGroup m_Group; + protected IEntity m_Donor; + protected IEntity m_Gunner; + protected IEntity m_Shell; + protected InventoryStorageManagerComponent m_Source; + protected InventoryStorageManagerComponent m_Destination; + protected BaseInventoryStorageComponent m_Storage; + protected ref ERR_MortarSupplyCallback m_Callback; + protected int m_Order; + protected int m_Acknowledgement; + protected float m_Deadline; + protected bool m_Accepted; + protected bool m_Invalidated; + protected bool m_Resolved; + protected bool m_Ready; + void ERR_MortarSupplyTransfer(ERR_MortarBattery battery, IEntity donor, IEntity gunner, IEntity shell, BaseInventoryStorageComponent storage, float now) + { + m_Battery = battery; m_Gun = battery.Gun; m_Group = battery.Group; + m_Donor = donor; m_Gunner = gunner; m_Shell = shell; m_Storage = storage; + m_Order = battery.OrderId; m_Deadline = now + 8000; + m_Source = InventoryStorageManagerComponent.Cast(donor.FindComponent(InventoryStorageManagerComponent)); + m_Destination = InventoryStorageManagerComponent.Cast(gunner.FindComponent(InventoryStorageManagerComponent)); + } + static bool Authority(bool valid, bool invalidated, int capturedOrder, int currentOrder) + { + return valid && !invalidated && capturedOrder == currentOrder; + } + static bool Proven(bool callbackComplete, bool sourceContains, bool destinationContains, bool exactSlot) + { + return callbackComplete && !sourceContains && destinationContains && exactSlot; + } + protected bool Contains(InventoryStorageManagerComponent inventory) + { + if (!inventory || !m_Shell) return false; + array items = {}; ERR_Inventory.Items(inventory, items); + return items.Contains(m_Shell); + } + protected bool Valid(float now) + { + if (!m_Battery || !Authority(m_Battery.SupplyAuthorized(now), m_Invalidated, m_Order, m_Battery.OrderId)) return false; + if (m_Battery.Gun != m_Gun || m_Battery.Group != m_Group || !m_Donor || !m_Gunner || m_Donor == m_Gunner || !m_Shell || !m_Source || !m_Destination || !m_Storage) return false; + if (!ERR_Actors.CanFight(m_Donor) || !ERR_Actors.CanFight(m_Gunner) || ERR_Actors.Group(m_Donor) != m_Group || ERR_Actors.Group(m_Gunner) != m_Group) return false; + Faction faction = m_Group.GetFaction(); + if (SCR_FactionManager.SGetFaction(m_Donor) != faction || SCR_FactionManager.SGetFaction(m_Gunner) != faction || vector.Distance(m_Donor.GetOrigin(), m_Gunner.GetOrigin()) > 12) return false; + SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(m_Gun.FindComponent(SCR_AIVehicleUsageComponent)); + if (!usage || !usage.GetTurretCompartmentSlot()) return false; + IEntity occupant = usage.GetTurretCompartmentSlot().GetOccupant(); + return !occupant || occupant == m_Gunner; + } + void Acknowledge(bool success) + { + if (m_Acknowledgement != 0) return; + if (success) m_Acknowledgement = 1; + else m_Acknowledgement = -1; + } + bool Begin(float now) + { + if (m_Callback || !Replication.IsServer() || !Valid(now) || !Contains(m_Source) || Contains(m_Destination)) return false; + m_Callback = new ERR_MortarSupplyCallback(); m_Callback.Transfer = this; + // Do not use callback.GetItem(): the native contract excludes Move operations. + m_Accepted = m_Source.TryMoveItemToStorage(m_Shell, m_Storage, -1, m_Callback); + if (!m_Accepted) { Acknowledge(false); m_Resolved = true; } + return m_Accepted; + } + void Invalidate() { m_Invalidated = true; m_Ready = false; } + bool Unresolved() { return m_Accepted && !m_Resolved; } + int CapturedOrder() { return m_Order; } + ERR_MortarSupplyState Poll(float now) + { + if (!Replication.IsServer()) return ERR_MortarSupplyState.FAILED; + bool valid = Valid(now); + bool sourceContains = Contains(m_Source); + bool destinationContains = Contains(m_Destination); + bool exactSlot; + InventoryItemComponent item; + if (m_Shell) item = InventoryItemComponent.Cast(m_Shell.FindComponent(InventoryItemComponent)); + if (item && item.GetParentSlot()) exactSlot = item.GetParentSlot().GetStorage() == m_Storage; + bool proven = Proven(m_Acknowledgement == 1, sourceContains, destinationContains, exactSlot); + if (proven || m_Acknowledgement < 0) m_Resolved = true; + // A successful callback without physical destination proof is ambiguous. + // Keep it reserved through timeout/cancellation; never start a second move. + if (!valid || now >= m_Deadline) + { + m_Invalidated = true; m_Ready = false; + return ERR_MortarSupplyState.FAILED; + } + if (proven) + { + m_Ready = true; + return ERR_MortarSupplyState.READY; + } + if (m_Acknowledgement < 0 || !m_Accepted) return ERR_MortarSupplyState.FAILED; + return ERR_MortarSupplyState.PENDING; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c new file mode 100644 index 0000000..9348e31 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c @@ -0,0 +1,333 @@ +// Owned and ticked by HQ. Initial assets are authored once; losses are never replaced. +class ERR_MortarSystem +{ + protected ERR_HQ m_HQ; + protected ref array m_Batteries = {}; + protected ref ERR_SettlementSafety m_Settlements = new ERR_SettlementSafety(); + protected bool m_Prepared; + protected bool m_Stopped; + protected float m_NextDecision; + protected float m_NextRefreshDecision; + string SafetyReason; + string SettlementReason; + + void ERR_MortarSystem(ERR_HQ hq) { m_HQ = hq; } + static ERR_MortarSystem Get() + { + ERR_HQ hq = ERR_HQ.Get(); + if (!hq || !Replication.IsServer()) return null; + return hq.Mortars(); + } + static bool NearPlayer(vector position) + { + array players = {}; + ERR_Actors.Players(players); + foreach (IEntity player : players) + if (vector.DistanceXZ(player.GetOrigin(), position) <= 1200) return true; + return false; + } + bool Prepare() + { + if (!Replication.IsServer() || m_Prepared || m_Stopped) return false; + m_Prepared = true; + vector position = ERR_Actors.Ground("6000 0 7000"); + if (position[1] < 1) return false; + IEntity gun = ERR_Actors.Spawn(ERR_MortarBattery.GUN, position); + SCR_AIGroup group = SCR_AIGroup.Cast(ERR_Actors.Spawn(MortarGroup(), ERR_Actors.Ground(position + "0 0 4"))); + if (!gun || !group) + { + ERR_Actors.DeleteSpawned(gun); + ERR_MortarReadiness.RetireGroup(group); + ERR_Actors.DeleteSpawned(group); + return false; + } + if (group.GetFaction() != ERR_GameMode.Get().EnemyFaction()) + { + ERR_Actors.DeleteSpawned(gun); + ERR_MortarReadiness.RetireGroup(group); + ERR_Actors.DeleteSpawned(group); + return false; + } + FactionAffiliationComponent affiliation = FactionAffiliationComponent.Cast(gun.FindComponent(FactionAffiliationComponent)); + if (affiliation) affiliation.SetAffiliatedFaction(ERR_GameMode.Get().EnemyFaction()); + ERR_MortarBattery battery = new ERR_MortarBattery(); + battery.Bind(1, group, gun, GetGame().GetWorld().GetWorldTime()); + m_Batteries.Insert(battery); + ERR_GameMode mode = ERR_GameMode.Get(); + mode.Own(gun); + mode.RegisterGroup(group); + m_HQ.ReserveGroup(group); + battery.Audit("DEPLOY", "authored gun and four-person crew; finite ammunition initialization pending"); + return true; + } + static ResourceName MortarGroup() { return "{B84C05941C4C81B8}Prefabs/ERR/MortarCrew.et"; } + void Batteries(out array batteries) + { + batteries.Clear(); + foreach (ERR_MortarBattery battery : m_Batteries) batteries.Insert(battery); + } + ERR_MortarBattery FindGun(IEntity gun) + { + foreach (ERR_MortarBattery battery : m_Batteries) + if (gun && battery.Gun == gun) return battery; + return null; + } + ERR_MortarBattery FindGroup(SCR_AIGroup group) + { + foreach (ERR_MortarBattery battery : m_Batteries) + if (group && battery.Group == group) return battery; + return null; + } + ERR_HQReport Latest(ERR_MortarBattery battery, float now) + { + // Only the coordinates actually delivered to this battery are available. + // A newer HQ contact cannot update a gun's knowledge without another downlink. + if (!battery || !ERR_MortarPrediction.Fresh(battery.Report, now)) return null; + return battery.Report; + } + string ContactFailure(ERR_MortarBattery battery) + { + if (!battery.Report) return "no delivered target report"; + return "delivered target report expired or invalid"; + } + bool OutsideSettlements(vector impact) + { + bool clear = m_Settlements.OutsideSettlements(impact); + SettlementReason = m_Settlements.SettlementReason; + return clear; + } + bool Safe(ERR_MortarBattery battery, vector impact, float flight) + { + SafetyReason = "clear"; + if (!battery.Operational()) { SafetyReason = battery.OperationalReason(); return false; } + if (!OutsideSettlements(impact)) { SafetyReason = SettlementReason; return false; } + if (SCR_TerrainHelper.GetTerrainY(impact) < 0) { SafetyReason = "impact below Everon sea level"; return false; } + Faction faction = battery.Group.GetFaction(); + if (!faction) { SafetyReason = "battery faction missing"; return false; } + array friendlies = {}; + m_HQ.PhysicalForces(friendlies); + foreach (IEntity entity : friendlies) + { + Faction friendly = SCR_FactionManager.SGetFaction(entity); + if (!friendly || faction.IsFactionEnemy(friendly) || !ERR_Actors.Alive(entity)) continue; + vector velocity; + IEntity moving = CompartmentAccessComponent.GetVehicleIn(entity); + if (!moving) moving = entity; + if (moving.GetPhysics()) velocity = moving.GetPhysics().GetVelocity(); + if (ERR_MortarPrediction.ThreatensFriendly(impact, entity.GetOrigin(), velocity, flight)) + { + SafetyReason = "friendly physical force can enter the impact area"; + return false; + } + } + return true; + } + bool Withhold(ERR_MortarBattery battery, string reason, string detail = "") + { + battery.LastFailure = reason + "; " + detail; + battery.Trace("WITHHELD", reason, detail); + // Finish the activity from the next HQ tick, never from inside its own node. + battery.Rejected = true; + return false; + } + bool AllowShot(ERR_MortarBattery battery) + { + float now = GetGame().GetWorld().GetWorldTime(); + if (m_Stopped || !ERR_HQ.MissionActive()) return Withhold(battery, "mission inactive or HQ stopped"); + if (!battery.Operational()) return Withhold(battery, battery.OperationalReason()); + if (battery.RefreshRejected) return Withhold(battery, "target update failed; order awaiting cancellation"); + if (!battery.CommandOpen || battery.OrderShots >= ERR_MortarSalvo.ROUNDS) return Withhold(battery, "salvo complete or order closed"); + if (battery.Released) return Withhold(battery, "waiting for committed projectile"); + if (battery.AimedShot != battery.OrderShots || battery.AimedAt < 0 || now < battery.AimedAt) return Withhold(battery, "fresh aim solution required"); + ERR_HQReport report = Latest(battery, now); + if (!report) return Withhold(battery, ContactFailure(battery)); + if (!battery.AimSolution || !battery.AimSolution.Matches(battery, report)) return Withhold(battery, "aim command does not match delivered order"); + if (battery.AimValidatedAt < battery.AimedAt || now < battery.AimValidatedAt) return Withhold(battery, "aim validation timestamp invalid"); + if (now - battery.AimValidatedAt > 10000) + { + if (!battery.AimSolver) return Withhold(battery, "original native aim solver no longer available"); + if (!battery.AimSolver.ERR_RevalidateAim(battery, this, report, now)) return false; + } + vector updated; + if (!ERR_MortarPrediction.Predict(report, now, battery.FlightTime, updated)) return Withhold(battery, ERR_MortarPrediction.FailureReason); + updated += battery.AimOffset; + if (vector.DistanceXZ(updated, battery.Impact) > 60) return Withhold(battery, "predicted target left aimed impact area"); + if (!OutsideSettlements(updated)) return Withhold(battery, SettlementReason); + if (!Safe(battery, battery.Impact, battery.FlightTime)) return Withhold(battery, SafetyReason); + return true; + } + protected void AdvanceOrder(ERR_MortarBattery battery, float now) + { + if (battery.RadioOrder) + { + int deliveredState = battery.RadioOrder.Advance(now, m_HQ.Journal()); + if (deliveredState == 0) return; + ERR_HQReport delivered = battery.PendingRadioReport; + battery.RadioOrder = null; + battery.PendingRadioReport = null; + if (deliveredState < 0 || !ERR_MortarPrediction.Fresh(delivered, now) || !battery.Operational() || battery.Activity || !battery.CommandOpen) + { + battery.Cancel("radio delivery, report freshness or battery availability failed"); + battery.NextOrder = now + 10000; + return; + } + battery.PendingSupplyReport = delivered; + } + if (!battery.PendingSupplyReport) return; + if (!battery.CommandOpen || !ERR_MortarPrediction.Fresh(battery.PendingSupplyReport, now) || !battery.Operational() || battery.Activity) + { + battery.Cancel("delivered order expired or became unavailable while awaiting physical ammunition"); + battery.NextOrder = now + 10000; + return; + } + ERR_MortarSupplyState supply = battery.SupplyState(now); + if (supply == ERR_MortarSupplyState.PENDING) return; + if (supply == ERR_MortarSupplyState.FAILED) + { + battery.Cancel("physical gunner ammunition unavailable or transfer failed"); + battery.NextOrder = now + 10000; + return; + } + ERR_HQReport ready = battery.PendingSupplyReport; + battery.PendingSupplyReport = null; + battery.Order(ready, now); + } + + protected void AdvanceRefresh(ERR_MortarBattery battery, float now) + { + ERR_MortarRefresh update = battery.Refresh; + if (!update) return; + // A stale transaction must not cancel or modify a later order. + if (update.OrderId != battery.OrderId || !battery.CommandOpen) + { + battery.Refresh = null; + return; + } + if (!update.Owns(battery) || !battery.Operational() || !battery.Activity || !ERR_MortarRefreshRules.Newer(battery.Report, update.Report, now)) + { + battery.RejectRefresh("target update ownership, observation freshness or activity changed"); + return; + } + if (update.Route) + { + int state = update.Route.Advance(now, m_HQ.Journal()); + if (state == 0) return; + if (state < 0) + { + battery.RejectRefresh("new target observation failed physical HQ radio delivery"); + return; + } + update.Route = null; + } + // The original committed shell owns its report, geometry and airspace until + // native OnWeaponFired confirms it. A delivered update cannot relabel it. + if (battery.Released) return; + if (battery.AimSolution) + { + if (!battery.AimSolver || !battery.AimSolver.ERR_AdoptReport(battery, this, update.Report, now)) + { + battery.RejectRefresh("delivered update cannot preserve the original native aim command"); + return; + } + } + else + { + // No barrel command exists for the next shell yet. Its normal native aim + // node must solve this report; receiving it is not an aim authorization. + battery.Report = update.Report; + } + battery.Audit("UPDATE RECEIVED", string.Format("same order; update radio=M%1 accepted observation=M%2 observed=%3; shots=%4 original aim time=%5", update.RadioId, update.Report.MessageId, update.Report.ObservedAt, battery.OrderShots, battery.AimedAt)); + battery.Refresh = null; + } + + protected void QueueRefreshes(float now) + { + if (now < m_NextRefreshDecision) return; + m_NextRefreshDecision = now + 5000; + array reports = {}; + m_HQ.SupportContacts(reports, now); + foreach (ERR_MortarBattery battery : m_Batteries) + { + ERR_HQReport newest; + foreach (ERR_HQReport report : reports) + { + if (!battery.CanRefresh(report, now)) continue; + if (!newest || report.ObservedAt > newest.ObservedAt) newest = report; + } + if (!newest) continue; + ERR_HQRoute route = m_HQ.Downlink(battery.Group, "MORTAR UPDATE", newest.Description(now), newest.MessageId); + if (!route) + { + battery.RejectRefresh("HQ has a newer observation but no physical downlink to the active battery"); + continue; + } + battery.BeginRefresh(newest, route, now); + } + } + + void Tick(float now) + { + if (m_Stopped || !Replication.IsServer()) return; + foreach (ERR_MortarBattery battery : m_Batteries) + { + if ((battery.Rejected || battery.RefreshRejected) && !battery.Released) + { + battery.Cancel("native aim or firing authorization rejected"); + battery.NextOrder = now + 10000; + } + battery.Rejected = false; + battery.Update(now); + AdvanceOrder(battery, now); + AdvanceRefresh(battery, now); + } + QueueRefreshes(now); + if (now < m_NextDecision) return; + m_NextDecision = now + 10000; + array reports = {}; + m_HQ.SupportContacts(reports, now); + ERR_MortarBattery selected; + ERR_HQReport target; + float distance = float.MAX; + foreach (ERR_MortarBattery battery : m_Batteries) + { + if (!battery.StartupActivated || !battery.Operational() || battery.Activity || battery.RadioOrder || battery.PendingSupplyReport || battery.SupplyPending() || now < battery.NextOrder || battery.CountShells() == 0) continue; + foreach (ERR_HQReport report : reports) + { + if (!battery.CanRequest(report, now)) continue; + float candidate = vector.DistanceXZ(battery.Position, report.Position); + if (candidate < 350 || candidate > 4000 || candidate >= distance || !OutsideSettlements(report.Position)) continue; + selected = battery; + target = report; + distance = candidate; + } + } + if (!selected || !target) return; + ERR_HQRoute route = m_HQ.Downlink(selected.Group, "MORTAR ORDER", target.Description(now), target.MessageId); + if (!route) return; + if (!selected.BeginRequest(target, now)) return; + selected.RadioId = route.MessageId; + selected.RadioOrder = route; + selected.PendingRadioReport = target.Snapshot(); + m_NextDecision = now + 20000; + } + void AppendGuns(array entities) + { + foreach (ERR_MortarBattery battery : m_Batteries) + if (battery.Gun && !entities.Contains(battery.Gun)) entities.Insert(battery.Gun); + } + string Status() + { + int ready, shells; + foreach (ERR_MortarBattery battery : m_Batteries) + { + if (battery.StartupActivated && battery.Operational()) ready++; + shells += battery.CountShells(); + } + return string.Format("mortars %1/%2; HE shells %3", ready, m_Batteries.Count(), shells); + } + void Stop() + { + m_Stopped = true; + foreach (ERR_MortarBattery battery : m_Batteries) battery.Stop(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c new file mode 100644 index 0000000..b141896 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c @@ -0,0 +1,213 @@ +#ifdef WORKBENCH +class ERR_NativeCourierMoveCallback : ScriptedInventoryOperationCallback +{ + int Result; + protected override void OnComplete() { if (Result == 0) Result = 1; } + protected override void OnFailed() { if (Result == 0) Result = -1; } +} +modded class ERR_HQ +{ + override bool QueueSupplyStatus(ERR_MortarBattery battery, float now) + { + bool queued = super.QueueSupplyStatus(battery, now); + ERR_NativeMortarCourierProbe probe = ERR_NativeMortarCourierProbe.Current(); + if (queued && probe) + foreach (ERR_HQUnit unit : m_Units) + if (unit.Group == battery.Group && unit.PendingSupplyStatus) probe.Uplink(unit.Uplink, unit.PendingSupplyStatus); + return queued; + } +} +class ERR_NativeMortarCourierProbe +{ + protected static ERR_NativeMortarCourierProbe s_Current; + protected ERR_GameMode m_Mode; + protected ERR_MortarLogistics m_Service; + protected ERR_MortarBattery m_Battery; + protected ref array m_Original = {}; + protected ref array m_Crew = {}; + protected ref array m_Depot = {}; + protected ref array m_Forces = {}; + protected ref array m_Boxes = {}; + protected ref array m_Stores = {}; + protected ref ERR_NativeCourierMoveCallback m_Callback; + protected IEntity m_Moving; + protected IEntity m_Source; + protected BaseInventoryStorageComponent m_Destination; + protected ref ERR_HQRoute m_Uplink; + protected ref ERR_HQRoute m_Downlink; + protected ref ERR_MortarSupplyStatus m_Status; + protected float m_ObservedAt; + protected int m_Message; + protected int m_Index; + protected int m_Stage; + protected float m_Deadline; + protected float m_MoveDeadline; + protected bool m_Complete; + protected bool m_Stopped; + protected vector m_Departure; + protected IEntity m_Bearer; + protected AIWaypointCycle m_OriginalPatrolCycle; + protected ref array m_OriginalPatrolMoves = {}; + static const int STORAGE_CANDIDATES = 64; + static const int STORAGE_COUNT = 5; + // The compact 8x8 grid keeps 3m between centers; blocked points are skipped. + static vector StorageOffset(int index) + { + if (index < 0 || index >= STORAGE_CANDIDATES) return vector.Zero; + int column = Math.Mod(index, 8); + int row = index / 8; + return Vector(20 + column * 3, 0, 15 + row * 3); + } + static const ResourceName BOX = "{EBBC859CCD94D96D}Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et"; + static ERR_NativeMortarCourierProbe Current() { return s_Current; } + static bool Enabled() + { + string smoke, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", smoke) && smoke == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "mortar-courier"; + } + void ERR_NativeMortarCourierProbe(ERR_GameMode mode) { m_Mode = mode; if (Enabled()) s_Current = this; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mortar courier " + detail); return true; } + Print("ERR SMOKE FAIL: mortar courier " + detail, LogLevel.ERROR); Stop(); return false; + } + protected bool Has(IEntity owner, IEntity shell) + { + if (!owner || !shell) return false; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(owner.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) return false; + array items = {}; ERR_Inventory.Items(inventory, items); return items.Contains(shell); + } + void Uplink(ERR_HQRoute route, ERR_MortarSupplyStatus report) + { + if (m_Stopped || !report || !m_Battery || report.Group != m_Battery.Group || m_Status) return; + m_Uplink = route; m_Status = report; m_ObservedAt = report.ObservedAt; m_Message = report.MessageId; + } + protected bool OriginalStored() + { + foreach (IEntity shell : m_Original) + { + if (!shell) return false; + int owners; + foreach (BaseInventoryStorageComponent storage : m_Stores) if (storage && storage.Contains(shell)) owners++; + foreach (IEntity actor : m_Crew) if (Has(actor, shell)) owners++; + if (owners != 1) return false; + } + return true; + } + protected bool PreservedForces(ERR_HQ hq) + { + array forces = {}; hq.PhysicalForces(forces); + if (forces.Count() != m_Forces.Count()) return false; + foreach (IEntity original : m_Forces) if (!original || !forces.Contains(original)) return false; + return true; + } + int Tick(float now) + { + if (m_Complete) return 1; + if (m_Stopped || !Enabled()) return -1; + if (m_Deadline == 0) m_Deadline = now + 360000; + if (now > m_Deadline) { Check(false, "bounded native courier deadline"); return -1; } + ERR_HQ hq = ERR_HQ.Get(); if (!hq) return 0; + m_Service = hq.Logistics(); if (!m_Service) return 0; + m_Battery = m_Service.Battery(); + if (m_Service.Stopped()) { Check(false, "production finite stock setup remains available"); return -1; } + if (!m_Battery || !m_Battery.StartupActivated || m_Service.State() == 0) return 0; + // No fire-controller hold, synthetic contact or routing bypass: this fixture + // requires the actual local prisoner to remain inside the gun's minimum range. + PlayerController controller = GetGame().GetPlayerController(); + IEntity player; if (controller) player = controller.GetControlledEntity(); + if (!player || !m_Mode.Players().CurrentActor(player) || vector.DistanceXZ(player.GetOrigin(), m_Battery.Gun.GetOrigin()) >= 300) { Check(false, "actual local prisoner remains below artillery minimum engagement range"); return -1; } + if (m_Stage == 0) + { + m_Service.InitialStock(m_Depot); hq.PhysicalForces(m_Forces); + ERR_ScenarioComponent scenario = ERR_ScenarioComponent.Cast(m_Mode.FindComponent(ERR_ScenarioComponent)); + ERR_SiteRuntime site = scenario.Sites().Find("everon-supply-2"); + if (!Check(site && site.Group == m_Service.Group() && site.PatrolCycle, "same original western cache patrol")) return -1; + m_OriginalPatrolCycle = site.PatrolCycle; m_OriginalPatrolMoves.Copy(site.PatrolWaypoints); + array agents = {}; m_Battery.Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || !agent.GetControlledEntity()) continue; + IEntity actor = agent.GetControlledEntity(); m_Crew.Insert(actor); + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + array items = {}; ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL && !m_Original.Contains(item)) m_Original.Insert(item); + } + if (!Check(m_Original.Count() == 27 && m_Depot.Count() == 12 && m_Battery.TotalShots == 0, "27 original crew rounds and 12 distinct finite depot rounds")) return -1; + foreach (IEntity depotShell : m_Depot) if (!Check(!m_Original.Contains(depotShell) && Has(m_Service.Cache(), depotShell), "depot round is a distinct original cache item")) return -1; + int tested, lowGround, obstructed; + for (int i = 0; i < STORAGE_CANDIDATES && m_Stores.Count() < STORAGE_COUNT; i++) + { + tested++; + vector position = ERR_Actors.Ground(m_Battery.Gun.GetOrigin() + StorageOffset(i)); + if (position[1] <= 1) { lowGround++; continue; } + if (!SCR_WorldTools.TraceCilinderUtil(position + "0 1 0", 1.3, 2, TraceFlags.ENTS | TraceFlags.WORLD)) { obstructed++; continue; } + IEntity box = ERR_Actors.Spawn(BOX, position); + if (!Check(box != null, "fixture-only empty box created; no new ammunition")) return -1; + m_Mode.Own(box); m_Boxes.Insert(box); + BaseInventoryStorageComponent storage = BaseInventoryStorageComponent.Cast(box.FindComponent(BaseInventoryStorageComponent)); + if (!Check(storage != null, "fixture box has real native storage")) return -1; + m_Stores.Insert(storage); + } + Print(string.Format("ERR COURIER STORAGE: tested=%1/64 ready=%2/5 lowGround=%3 obstructed=%4", tested, m_Stores.Count(), lowGround, obstructed)); + if (!Check(m_Boxes.Count() == STORAGE_COUNT && m_Stores.Count() == STORAGE_COUNT, "five owned empty native stores ready before moving any original shell")) return -1; + Print("ERR COURIER FIXTURE: original 27 shells will be physically sequestered in five fixture boxes, not fired/destroyed; no report insertion, teleport, AI hold or replacement ammunition"); + m_Stage = 1; + } + if (m_Stage == 1) + { + if (m_Callback) + { + if (m_Callback.Result < 0 || now >= m_MoveDeadline || !m_Moving) { Check(false, "native depletion move neither failed nor timed out/item lost"); return -1; } + InventoryItemComponent item = InventoryItemComponent.Cast(m_Moving.FindComponent(InventoryItemComponent)); + if (m_Callback.Result == 0 || !item || !item.GetParentSlot() || item.GetParentSlot().GetStorage() != m_Destination || Has(m_Source, m_Moving) || !m_Destination.Contains(m_Moving)) return 0; + m_Callback = null; m_Moving = null; m_Source = null; m_Destination = null; m_Index++; + } + if (m_Index < m_Original.Count()) + { + m_Moving = m_Original[m_Index]; + foreach (IEntity owner : m_Crew) if (Has(owner, m_Moving)) m_Source = owner; + if (!Check(m_Source != null, "original shell still belongs to original crew before depletion")) return -1; + foreach (BaseInventoryStorageComponent candidate : m_Stores) if (candidate.PerformVolumeValidation(m_Moving)) { m_Destination = candidate; break; } + if (!Check(m_Destination != null, "five native boxes have capacity for original shells")) return -1; + InventoryStorageManagerComponent source = InventoryStorageManagerComponent.Cast(m_Source.FindComponent(InventoryStorageManagerComponent)); + m_Callback = new ERR_NativeCourierMoveCallback(); m_MoveDeadline = now + 8000; + if (!Check(source.TryMoveItemToStorage(m_Moving, m_Destination, -1, m_Callback), "native depletion move accepted, awaiting exact ownership proof")) return -1; + return 0; + } + if (!Check(OriginalStored() && m_Battery.CountShells() == 0, "all 27 original shells remain physical while real battery inventory is exhausted")) return -1; + m_Stage = 2; + } + if (!OriginalStored() || !PreservedForces(hq)) { Check(false, "all original shells and all original physical forces preserved"); return -1; } + if (!m_Downlink && m_Service.ProbeOrder()) m_Downlink = m_Service.ProbeOrder(); + if (!m_Bearer && m_Service.Courier()) { m_Bearer = m_Service.Courier(); m_Departure = m_Bearer.GetOrigin(); } + if (m_Service.Delivered() < 1 || m_Service.CompletedTrips() < 1 || m_Service.State() != 1) return 0; + AIWaypoint current = m_Service.Group().GetCurrentWaypoint(); + if (!current || (current != m_OriginalPatrolCycle && !m_OriginalPatrolMoves.Contains(current))) return 0; + if (!Check(m_Service.CompletedTrips() == 1 && hq.LogisticsToken(m_Service.Group()) == 0, "complete physical trip released HQ reservation and restored original native patrol")) return -1; + if (!Check(m_Status && m_Service.ProbeSourceMessage() == m_Message && m_Status.MessageId == m_Message && m_Status.ObservedAt == m_ObservedAt && ERR_MortarLogisticsRules.Fresh(m_ObservedAt, m_Service.ProbeLastDelivery()), "same immutable originally delivered supply status authorizes delivery")) return -1; + if (!Check(m_Uplink && !m_Uplink.Failed && !m_Uplink.Sending && m_Uplink.Cursor >= m_Uplink.Nodes.Count(), "actual low-ammo radio uplink reached HQ")) return -1; + if (!Check(m_Downlink && !m_Downlink.Failed && !m_Downlink.Sending && m_Downlink.Cursor == m_Downlink.Nodes.Count() - 1, "actual courier downlink completed before item delivery")) return -1; + if (!Check(m_Bearer && ERR_Actors.Group(m_Bearer) == m_Service.Group() && vector.DistanceXZ(m_Departure, m_Bearer.GetOrigin()) > 100, "same original bearer physically walked more than 100m")) return -1; + bool found; foreach (IEntity deliveredShell : m_Depot) foreach (IEntity recipient : m_Crew) if (Has(recipient, deliveredShell)) found = true; + if (!Check(found && m_Battery.CountShells() > 0 && m_Battery.TotalShots == 0, "previously empty battery now owns an exact original depot shell; no synthetic rounds or shots")) return -1; + foreach (IEntity retained : m_Depot) + { + int owners; + if (Has(m_Service.Cache(), retained)) owners++; + if (Has(m_Bearer, retained)) owners++; + foreach (IEntity crew : m_Crew) if (Has(crew, retained)) owners++; + if (!Check(retained && owners == 1, "each of 12 initial depot shells has exactly one physical owner")) return -1; + } + m_Complete = true; Stop(); return 1; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; if (s_Current == this) s_Current = null; + // Boxes with borrowed originals remain owned by normal mission cleanup. + // No manual restoration/deletion can race the production/native moves. + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c new file mode 100644 index 0000000..8f3c5dc --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c @@ -0,0 +1,334 @@ +#ifdef WORKBENCH +// Explicit synthetic observation only. Delivery, HQ scheduling and native fire +// are unchanged; this helper never writes directly into the HQ contact list. +modded class ERR_HQ +{ + int ERR_QueueMortarFixtureReport(SCR_AIGroup source, IEntity target, vector position, float now) + { + if (!ERR_NativeMortarFiringProbe.Enabled() || !target || !m_Contacts.IsEmpty()) return 0; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != source || !unit.ReservedForSupport || !unit.Radio || unit.Uplink || unit.PendingReport) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio); + if (!route || route.Nodes.IsEmpty()) return 0; + ERR_HQReport report = new ERR_HQReport(); + report.MessageId = m_Journal.Message(); report.Target = target; report.Source = source; + report.Position = position; report.ObservedAt = now; report.DetailsObservedAt = now; + report.HasVelocity = true; report.Velocity = vector.Zero; + report.TravelMode = "on foot"; report.SeenEscapists = 1; report.SeenWeapons = "fixture observation"; + route.MessageId = report.MessageId; route.Payload = "EXPLICIT SYNTHETIC OBSERVATION: " + report.Description(now); + unit.PendingReport = report; unit.Uplink = route; + m_Journal.Write("FIXTURE REPORT", route.Payload, report.MessageId); + return report.MessageId; + } + return 0; + } + void ERR_RemoveMortarFixtureReport(IEntity target) + { + if (!target) return; + for (int i = m_Contacts.Count() - 1; i >= 0; i--) + if (m_Contacts[i].Target == target) m_Contacts.Remove(i); + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.PendingReport && unit.PendingReport.Target == target) { unit.PendingReport = null; unit.Uplink = null; } + if ((unit.PendingOrder && unit.PendingOrder.Target == target) || (unit.Assignment && unit.Assignment.Target == target)) unit.Release(); + } + } +} + +// Production sets Released immediately before reserving shell airspace, then +// invokes native inventory transfer. Observe that existing commit boundary so +// even a synchronous native projectile has a prior recorded authorization. +modded class ERR_MortarBattery +{ + override void ReserveShellAirspace(float now) + { + super.ReserveShellAirspace(now); + ERR_NativeMortarFiringProbe probe = ERR_NativeMortarFiringProbe.Active(); + if (probe) probe.NativeCommit(this, now); + } + override void Cancel(string reason = "cancel requested") + { + ERR_NativeMortarFiringProbe probe = ERR_NativeMortarFiringProbe.Active(); + if (probe) probe.NativeClosing(this, reason, LastFailure); + super.Cancel(reason); + } +} + +class ERR_NativeMortarEvidenceRules +{ + static bool AimFresh(float commandedAt, float validatedAt, float now) + { + return commandedAt >= 0 && now >= commandedAt && validatedAt >= commandedAt && now >= validatedAt && now - validatedAt <= 10000; + } + static bool CommitFresh(float observed, float expectedObserved, float committed) + { + return observed == expectedObserved && observed >= 0 && committed >= observed && committed - observed <= ERR_MortarPrediction.MAX_REPORT_AGE_MS; + } + static bool EventBound(bool pending, int order, int currentOrder, int shot, int currentShot, float committed, float emitted) + { + // The fixture has its own overall deadline. A committed shell does not gain + // a second authorization expiry while native physical transfer completes. + return pending && order == currentOrder && shot == currentShot && emitted >= committed; + } + static bool ExpiredClosure(float observed, float closed, string failure) + { + return observed >= 0 && closed > observed + ERR_MortarPrediction.MAX_REPORT_AGE_MS && (failure.Contains("delivered target report expired") || failure.Contains("observation older than 60s")); + } +} + +// Observe only the actual native event. Node SUCCESS, accepted inventory moves +// and committed shell loading are never counted as physical projectiles. +modded class SCR_MortarMuzzleComponent +{ + override void OnWeaponFired(IEntity effectEntity, BaseMuzzleComponent muzzle, IEntity projectileEntity) + { + ERR_NativeMortarFiringProbe probe = ERR_NativeMortarFiringProbe.Active(); + if (probe) probe.NativeProjectile(GetOwner(), projectileEntity); + super.OnWeaponFired(effectEntity, muzzle, projectileEntity); + } +} + +class ERR_NativeMortarFiringProbe +{ + protected static ERR_NativeMortarFiringProbe s_Active; + protected ERR_GameMode m_Mode; + protected ERR_MortarBattery m_Battery; + protected IEntity m_Gun; + protected SCR_AIGroup m_Group; + protected IEntity m_Target; + protected vector m_Impact; + protected ref array m_Crew = {}; + protected ref array m_InitialShells = {}; + protected ref array m_Projectiles = {}; + protected int m_Source; + protected int m_Order; + protected int m_Step; + protected int m_Events; + protected int m_StoppedShells; + protected float m_Deadline; + protected float m_NextDiagnostic; + protected float m_StopUntil; + protected float m_ObservedAt; + protected bool m_WaitForExpiry; + protected int m_FinalEvents; + protected bool m_CommitPending; + protected float m_CommittedAt; + protected int m_CommitOrder; + protected int m_CommitShot; + protected int m_Commits; + protected bool m_ClosureSeen; + protected bool m_ClosureExpired; + protected bool m_ClosureComplete; + protected bool m_Unsafe; + protected bool m_BadProjectile; + protected bool m_SawUplink; + protected bool m_SawDownlink; + protected bool m_SawActivity; + protected bool m_Stopped; + protected string m_BadReason; + + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && (outcome == "mortar-fire" || outcome == "mortar-expiry"); + } + static ERR_NativeMortarFiringProbe Active() { return s_Active; } + void ERR_NativeMortarFiringProbe(ERR_GameMode mode) + { + m_Mode = mode; + string outcome; System.GetCLIParam("errSmokeOutcome", outcome); m_WaitForExpiry = outcome == "mortar-expiry"; + m_Deadline = GetGame().GetWorld().GetWorldTime() + 180000; + if (Enabled() && !s_Active) s_Active = this; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mortar firing " + detail); return true; } + Print("ERR SMOKE FAIL: mortar firing " + detail, LogLevel.ERROR); Stop(); return false; + } + protected void Shells(out array shells) + { + shells.Clear(); + foreach (IEntity actor : m_Crew) + { + if (!actor) continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + array items = {}; ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL && !shells.Contains(item)) shells.Insert(item); + } + } + protected bool CheckNoOccupants(IEntity entity) + { + if (ChimeraCharacter.Cast(entity) || Vehicle.Cast(entity)) { m_Unsafe = true; return false; } + return true; + } + protected bool EmptyImpact(vector position) + { + m_Unsafe = false; + GetGame().GetWorld().QueryEntitiesByAABB(position - "200 5000 200", position + "200 5000 200", CheckNoOccupants, null, EQueryEntitiesFlags.ALL); + return !m_Unsafe; + } + protected bool SelectImpact(ERR_MortarSystem system) + { + // Bounded candidate survey: no clearance assumption from coordinates alone. + array offsets = {"-800 0 -600", "-600 0 -800", "0 0 -1000", "600 0 -800", "-1000 0 0", "800 0 -600", "-800 0 600", "0 0 1000"}; + foreach (vector offset : offsets) + { + vector candidate = ERR_Actors.Ground(m_Battery.Position + offset); + if (candidate[1] < 1 || !EmptyImpact(candidate) || !system.Safe(m_Battery, candidate, 75)) continue; + bool clear = true; + for (int shot = 0; shot < ERR_MortarSalvo.ROUNDS; shot++) + { + vector spread = ERR_Actors.Ground(candidate + ERR_MortarSalvo.Offset(m_Battery.SiteId, m_Battery.OrderId + 1, shot)); + if (!system.Safe(m_Battery, spread, 75)) { clear = false; break; } + } + if (!clear) continue; + m_Impact = candidate; + PrintFormat("ERR MORTAR FIXTURE IMPACT: position=%1 batteryDistance=%2; no characters/vehicles in 400m square; production settlement/friendly exclusions passed", candidate, vector.DistanceXZ(candidate, m_Battery.Position)); + return true; + } + return false; + } + protected void Diagnose(float now) + { + if (now < m_NextDiagnostic) return; + m_NextDiagnostic = now + 5000; + if (!m_Battery) { Print("ERR MORTAR FIXTURE: waiting for one authored battery"); return; } + PrintFormat("ERR MORTAR FIXTURE: step=%1 startup=%2 source=M%3 observedEvents=%4 ready=%5 failure=%6", m_Step, m_Battery.StartupActivated, m_Source, m_Events, m_Battery.Operational(), m_Battery.SpawnFailure); + m_Battery.SiteStatus(now); + } + void NativeCommit(ERR_MortarBattery battery, float now) + { + if (m_Stopped || battery != m_Battery) return; + if ((m_Step != 1 && m_Step != 3) || m_CommitPending || !battery.CommandOpen || !battery.Released || battery.SourceId != m_Source || battery.OrderId != m_Order || !battery.Report || battery.Report.MessageId != m_Source || !ERR_NativeMortarEvidenceRules.CommitFresh(battery.Report.ObservedAt, m_ObservedAt, now) || !ERR_NativeMortarEvidenceRules.AimFresh(battery.AimedAt, battery.AimValidatedAt, now) || battery.FlightTime <= 0) + { m_BadProjectile = true; m_BadReason = "physical commit lacks immutable fresh report/current order/native aim, or duplicates pending commit"; return; } + m_CommitPending = true; m_CommittedAt = now; m_CommitOrder = battery.OrderId; m_CommitShot = battery.OrderShots; m_Commits++; + PrintFormat("ERR MORTAR FIXTURE COMMIT: count=%1 order=%2 shot=%3 source=M%4 observedAge=%5; recorded before native inventory transfer", m_Commits, m_CommitOrder, m_CommitShot, m_Source, now - m_ObservedAt); + } + void NativeClosing(ERR_MortarBattery battery, string reason, string failure) + { + if (m_Stopped || !m_WaitForExpiry || battery != m_Battery || !battery.CommandOpen || battery.SourceId != m_Source || m_Source <= 0) return; + float now = GetGame().GetWorld().GetWorldTime(); + m_ClosureSeen = true; + m_ClosureComplete = battery.OrderShots == ERR_MortarSalvo.ROUNDS && m_Events == ERR_MortarSalvo.ROUNDS; + m_ClosureExpired = ERR_NativeMortarEvidenceRules.ExpiredClosure(m_ObservedAt, now, failure); + PrintFormat("ERR MORTAR FIXTURE CLOSURE: order=%1 observedAge=%2 reason=%3 lastFailure=%4 complete=%5 expiredWithheld=%6", battery.OrderId, now - m_ObservedAt, reason, failure, m_ClosureComplete, m_ClosureExpired); + if (battery.Stopped() || battery.OrderId != m_Order || (!m_ClosureExpired && !m_ClosureComplete)) + { m_BadProjectile = true; m_BadReason = "expiry evidence interrupted by Stop or unrelated/incomplete order closure"; } + } + void NativeProjectile(IEntity gun, IEntity projectile) + { + if (m_Stopped || !m_Battery || gun != m_Gun) return; + if (!projectile) { m_BadProjectile = true; m_BadReason = "native fired event has no physical projectile"; return; } + if (m_Projectiles.Contains(projectile)) { m_BadProjectile = true; m_BadReason = "same physical projectile observed twice"; return; } + m_Projectiles.Insert(projectile); m_Events++; + float now = GetGame().GetWorld().GetWorldTime(); + if ((m_Step != 1 && m_Step != 3) || !m_Battery.Released || m_Battery.SourceId != m_Source || !ERR_NativeMortarEvidenceRules.EventBound(m_CommitPending, m_CommitOrder, m_Battery.OrderId, m_CommitShot, m_Battery.OrderShots, m_CommittedAt, now)) + { m_BadProjectile = true; m_BadReason = "projectile lacks the recorded fresh physical commit for its current order/shot"; } + m_CommitPending = false; + PrintFormat("ERR MORTAR FIXTURE PROJECTILE: event=%1 entity=%2 origin=%3 order=%4 source=M%5 aimAge=%6 flight=%7; impact is not measured", m_Events, projectile, projectile.GetOrigin(), m_Battery.OrderId, m_Battery.SourceId, now - m_Battery.AimedAt, m_Battery.FlightTime); + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (!Enabled() || s_Active != this || !m_Mode || !m_Mode.Active()) { Check(false, "explicit active fixture context retained"); return -1; } + ERR_HQ hq = ERR_HQ.Get(); + ERR_MortarSystem system; + if (hq) system = hq.Mortars(); + if (!system) { Check(false, "real HQ mortar service available"); return -1; } + if (!m_Battery) + { + array guns = {}; system.AppendGuns(guns); + if (guns.Count() == 1) { m_Gun = guns[0]; m_Battery = system.FindGun(m_Gun); } + } + Diagnose(now); + if (now >= m_Deadline) { Check(false, "bounded deadline; inspect readiness/route/activity/aim diagnostics"); return -1; } + if (m_BadProjectile) { Check(false, m_BadReason); return -1; } + if (!m_Battery) return 0; + if (!m_Battery.SpawnFailure.IsEmpty()) { Check(false, "battery startup failed: " + m_Battery.SpawnFailure); return -1; } + if (m_Step == 0) + { + if (!m_Battery.StartupActivated || !m_Battery.Operational() || !hq.MortarConnected(m_Battery.Group)) return 0; + m_Group = m_Battery.Group; + if (!Check(m_Group && m_Group.IsExpandComplete() && m_Group.GetAgentsCount() == 4 && m_Battery.TotalShots == 0 && m_Battery.OrderId == 0 && !m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder, "untasked original gun and complete four-person crew start without shots")) return -1; + array agents = {}; m_Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + IEntity actor; if (agent) actor = agent.GetControlledEntity(); + if (!Check(ERR_Actors.CanFight(actor) && !m_Crew.Contains(actor), "initial physical crew member is conscious and unique")) return -1; + m_Crew.Insert(actor); + } + if (!Check(m_Battery.RadioOperator && ERR_HQRadio.Capability(m_Battery.RadioOperator) == 2, "dedicated actual manpack supplies the radio route")) return -1; + Shells(m_InitialShells); + if (!Check(m_InitialShells.Count() == 27 && m_Battery.CountShells() == 27, "exactly 27 distinct physical initial HE shells")) return -1; + if (!Check(SelectImpact(system), "bounded candidate survey finds an unoccupied production-safe impact area")) return -1; + m_Target = ERR_Actors.Spawn(ERR_Resources.IntelFolder(), m_Impact); + if (!Check(m_Target != null, "fixture-owned inert report identity exists; no enemy perception is claimed")) return -1; + m_Source = hq.ERR_QueueMortarFixtureReport(m_Group, m_Target, m_Impact, now); + if (!Check(m_Source > 0, "synthetic observation enters actual existing radio uplink once")) return -1; + m_ObservedAt = now; m_SawUplink = true; m_Deadline = now + 90000; m_Step = 1; return 0; + } + if (m_WaitForExpiry && m_Battery.Stopped()) { Check(false, "battery must remain running throughout natural expiry observation"); return -1; } + if (m_Battery.Report && (m_Battery.Report.MessageId != m_Source || m_Battery.Report.ObservedAt != m_ObservedAt)) { Check(false, "delivered report identity and original observation timestamp remain immutable"); return -1; } + if (m_Battery.Gun != m_Gun || m_Battery.Group != m_Group) { Check(false, "original gun and crew identity retained"); return -1; } + if (!EmptyImpact(m_Impact)) { Check(false, "impact exclusion stays unoccupied before native firing/cancellation"); return -1; } + array remaining = {}; Shells(remaining); + foreach (IEntity item : remaining) + if (!m_InitialShells.Contains(item)) { Check(false, "no replacement HE shell appears after initialization"); return -1; } + if (m_Step == 1) + { + if (m_Battery.RadioOrder && m_Battery.SourceId == m_Source) { m_SawDownlink = true; m_Order = m_Battery.OrderId; } + if (m_Battery.Activity && m_Battery.Report && m_Battery.Report.MessageId == m_Source) m_SawActivity = true; + if (m_Battery.OrderId > 1 || (m_Battery.SourceId != 0 && m_Battery.SourceId != m_Source)) { Check(false, "one unchanged fixture source creates only one HQ order"); return -1; } + if (m_Events == 0) return 0; + if (!Check(m_Events == 1 && m_Battery.TotalShots == 1 && m_Battery.OrderShots == 1 && !m_Battery.Released && m_SawUplink && m_SawDownlink && m_SawActivity && m_Order == 1, "one physical projectile follows real uplink/downlink, native activity and fresh aim")) return -1; + if (!Check(remaining.Count() == 26 && m_Battery.CountShells() == 26, "one fired projectile consumes one of 27 original inventory shells")) return -1; + if (m_WaitForExpiry) + { + m_Step = 3; m_Deadline = m_ObservedAt + ERR_MortarPrediction.MAX_REPORT_AGE_MS + 50000; + return 0; + } + m_FinalEvents = m_Events; + // Cancel on this later fixture tick, never reentrantly inside the firing node. + hq.ERR_RemoveMortarFixtureReport(m_Target); + system.Stop(); system.Stop(); + if (!Check(!m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder, "explicit support Stop closes native order and route idempotently")) return -1; + m_StoppedShells = remaining.Count(); m_StopUntil = now + 12000; m_Deadline = m_StopUntil + 2000; m_Step = 2; return 0; + } + if (m_Step == 3) + { + if (m_Battery.OrderId != m_Order || m_Battery.SourceId != m_Source) { Check(false, "unchanged delivered observation received a second order"); return -1; } + if (m_Events > ERR_MortarSalvo.ROUNDS || m_Battery.TotalShots > ERR_MortarSalvo.ROUNDS) { Check(false, "single observation cannot exceed finite salvo"); return -1; } + if (now < m_ObservedAt + ERR_MortarPrediction.MAX_REPORT_AGE_MS + 25000) return 0; + if (!Check(m_ClosureSeen && (m_ClosureExpired || m_ClosureComplete) && !m_CommitPending && m_Commits == m_Events && m_Events >= 1 && m_Battery.TotalShots == m_Events && m_Battery.OrderShots == m_Events && remaining.Count() == 27 - m_Events && !m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder && !m_Battery.Report, "explicit expired-withheld closure or complete finite salvo, with only fresh commits and observed physical shells consumed")) return -1; + m_FinalEvents = m_Events; + // Keep HQ running and the expired contact present throughout this next wait. + m_StoppedShells = remaining.Count(); m_StopUntil = now + 12000; m_Deadline = m_StopUntil + 2000; m_Step = 4; + return 0; + } + if (now < m_StopUntil) return 0; + if (!Check(m_Battery.TotalShots == m_FinalEvents && m_Events == m_FinalEvents && m_Battery.OrderId == m_Order && remaining.Count() == m_StoppedShells && !m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder, "closed order issues no duplicate order, projectile or replenishment over 12 seconds")) return -1; + array finalCrew = {}; m_Group.GetAgents(finalCrew); + if (!Check(finalCrew.Count() == 4 && m_Battery.Gun == m_Gun, "original group and gun retain four crew")) return -1; + foreach (AIAgent finalAgent : finalCrew) + if (!Check(finalAgent && m_Crew.Contains(finalAgent.GetControlledEntity()) && ERR_Actors.CanFight(finalAgent.GetControlledEntity()), "final conscious crew entity belongs to original physical roster")) return -1; + if (m_WaitForExpiry) { hq.ERR_RemoveMortarFixtureReport(m_Target); system.Stop(); system.Stop(); } + Stop(); return 1; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + ERR_HQ hq = ERR_HQ.Get(); + if (hq) + { + hq.ERR_RemoveMortarFixtureReport(m_Target); + if (m_Battery && m_Battery.SourceId == m_Source && m_Source > 0) m_Battery.Cancel("mortar firing fixture cleanup"); + } + ERR_Actors.DeleteSpawned(m_Target); m_Target = null; + if (s_Active == this) s_Active = null; + } + void ~ERR_NativeMortarFiringProbe() { Stop(); } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c new file mode 100644 index 0000000..f8d688a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c @@ -0,0 +1,308 @@ +#ifdef WORKBENCH +// Explicit synthetic observation only. Delivery, HQ scheduling and native fire +// are unchanged; this helper never writes directly into the HQ contact list. +modded class ERR_HQ +{ + int ERR_QueueMortarSalvoReport(SCR_AIGroup source, IEntity target, vector position, float now) + { + if (!ERR_NativeMortarSalvoProbe.Enabled() || !target || !m_Contacts.IsEmpty()) return 0; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != source || !unit.ReservedForSupport || !unit.Radio || unit.Uplink || unit.PendingReport) continue; + ERR_HQRoute route = m_Network.Route(unit.Radio); + if (!route || route.Nodes.IsEmpty()) return 0; + ERR_HQReport report = new ERR_HQReport(); + report.MessageId = m_Journal.Message(); report.Target = target; report.Source = source; + report.Position = position; report.ObservedAt = now; report.DetailsObservedAt = now; + report.HasVelocity = true; report.Velocity = vector.Zero; + report.TravelMode = "on foot"; report.SeenEscapists = 1; report.SeenWeapons = "fixture observation"; + route.MessageId = report.MessageId; route.Payload = "EXPLICIT SYNTHETIC OBSERVATION: " + report.Description(now); + unit.PendingReport = report; unit.Uplink = route; + m_Journal.Write("FIXTURE REPORT", route.Payload, report.MessageId); + return report.MessageId; + } + return 0; + } + void ERR_RemoveMortarSalvoReport(IEntity target) + { + if (!target) return; + for (int i = m_Contacts.Count() - 1; i >= 0; i--) + if (m_Contacts[i].Target == target) m_Contacts.Remove(i); + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.PendingReport && unit.PendingReport.Target == target) { unit.PendingReport = null; unit.Uplink = null; } + if ((unit.PendingOrder && unit.PendingOrder.Target == target) || (unit.Assignment && unit.Assignment.Target == target)) unit.Release(); + } + } +} + +// Production sets Released immediately before reserving shell airspace, then +// invokes native inventory transfer. Observe that existing commit boundary so +// even a synchronous native projectile has a prior recorded authorization. +modded class ERR_MortarBattery +{ + override void ReserveShellAirspace(float now) + { + super.ReserveShellAirspace(now); + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeCommit(this, now); + } + override void Cancel(string reason = "cancel requested") + { + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeClosing(this, reason, LastFailure); + super.Cancel(reason); + } +} + +// Exact completion is separate from native activity success or accepted loading. +class ERR_NativeMortarSalvoRules +{ + static bool Complete(int events, int commits, int total, int orderShots, int shells, bool pending) + { + return events == ERR_MortarSalvo.ROUNDS && commits == events && total == events && orderShots == events && shells == 27 - events && !pending; + } +} + +// Observe only the actual native event. Node SUCCESS, accepted inventory moves +// and committed shell loading are never counted as physical projectiles. +modded class SCR_MortarMuzzleComponent +{ + override void OnWeaponFired(IEntity effectEntity, BaseMuzzleComponent muzzle, IEntity projectileEntity) + { + ERR_NativeMortarSalvoProbe probe = ERR_NativeMortarSalvoProbe.Active(); + if (probe) probe.NativeProjectile(GetOwner(), projectileEntity); + super.OnWeaponFired(effectEntity, muzzle, projectileEntity); + } +} + +class ERR_NativeMortarSalvoProbe +{ + protected static ERR_NativeMortarSalvoProbe s_Active; + protected ERR_GameMode m_Mode; + protected ERR_MortarBattery m_Battery; + protected IEntity m_Gun; + protected SCR_AIGroup m_Group; + protected IEntity m_Target; + protected vector m_Impact; + protected ref array m_Crew = {}; + protected ref array m_InitialShells = {}; + protected ref array m_Projectiles = {}; + protected int m_Source; + protected int m_Order; + protected int m_Step; + protected int m_Events; + protected int m_StoppedShells; + protected float m_Deadline; + protected float m_NextDiagnostic; + protected float m_StopUntil; + protected float m_ObservedAt; + protected ref ERR_HQReport m_Delivered; + protected bool m_CommitPending; + protected float m_CommittedAt; + protected int m_CommitOrder; + protected int m_CommitShot; + protected int m_Commits; + protected bool m_ClosureSeen; + protected bool m_ClosureComplete; + protected bool m_Unsafe; + protected bool m_BadProjectile; + protected bool m_SawUplink; + protected bool m_SawDownlink; + protected bool m_SawActivity; + protected bool m_Stopped; + protected string m_BadReason; + + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "mortar-salvo"; + } + static ERR_NativeMortarSalvoProbe Active() { return s_Active; } + void ERR_NativeMortarSalvoProbe(ERR_GameMode mode) + { + m_Mode = mode; + m_Deadline = GetGame().GetWorld().GetWorldTime() + 180000; + if (Enabled() && !s_Active) s_Active = this; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mortar salvo " + detail); return true; } + Print("ERR SMOKE FAIL: mortar salvo " + detail, LogLevel.ERROR); Stop(); return false; + } + protected void Shells(out array shells) + { + shells.Clear(); + foreach (IEntity actor : m_Crew) + { + if (!actor) continue; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + array items = {}; ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL && !shells.Contains(item)) shells.Insert(item); + } + } + protected bool CheckNoOccupants(IEntity entity) + { + if (ChimeraCharacter.Cast(entity) || Vehicle.Cast(entity)) { m_Unsafe = true; return false; } + return true; + } + protected bool EmptyImpact(vector position) + { + m_Unsafe = false; + GetGame().GetWorld().QueryEntitiesByAABB(position - "200 5000 200", position + "200 5000 200", CheckNoOccupants, null, EQueryEntitiesFlags.ALL); + return !m_Unsafe; + } + protected bool SelectImpact(ERR_MortarSystem system) + { + // Bounded candidate survey: no clearance assumption from coordinates alone. + array offsets = {"-800 0 -600", "-600 0 -800", "0 0 -1000", "600 0 -800", "-1000 0 0", "800 0 -600", "-800 0 600", "0 0 1000"}; + foreach (vector offset : offsets) + { + vector candidate = ERR_Actors.Ground(m_Battery.Position + offset); + if (candidate[1] < 1 || !EmptyImpact(candidate) || !system.Safe(m_Battery, candidate, 75)) continue; + bool clear = true; + for (int shot = 0; shot < ERR_MortarSalvo.ROUNDS; shot++) + { + vector spread = ERR_Actors.Ground(candidate + ERR_MortarSalvo.Offset(m_Battery.SiteId, m_Battery.OrderId + 1, shot)); + if (!system.Safe(m_Battery, spread, 75)) { clear = false; break; } + } + if (!clear) continue; + m_Impact = candidate; + PrintFormat("ERR MORTAR SALVO IMPACT: position=%1 batteryDistance=%2; no characters/vehicles in 400m square; production settlement/friendly exclusions passed", candidate, vector.DistanceXZ(candidate, m_Battery.Position)); + return true; + } + return false; + } + protected void Diagnose(float now) + { + if (now < m_NextDiagnostic) return; + m_NextDiagnostic = now + 5000; + if (!m_Battery) { Print("ERR MORTAR SALVO: waiting for one authored battery"); return; } + PrintFormat("ERR MORTAR SALVO: step=%1 startup=%2 source=M%3 observedEvents=%4 ready=%5 failure=%6", m_Step, m_Battery.StartupActivated, m_Source, m_Events, m_Battery.Operational(), m_Battery.SpawnFailure); + m_Battery.SiteStatus(now); + } + void NativeCommit(ERR_MortarBattery battery, float now) + { + if (m_Stopped || battery != m_Battery) return; + if (m_Commits >= ERR_MortarSalvo.ROUNDS || battery.OrderShots != m_Commits) + { m_BadProjectile = true; m_BadReason = "commit count or physical shot sequence exceeds configured finite salvo"; return; } + if (m_Step != 1 || m_CommitPending || !battery.CommandOpen || !battery.Released || battery.SourceId != m_Source || battery.OrderId != m_Order || !battery.Report || battery.Report.MessageId != m_Source || !ERR_NativeMortarEvidenceRules.CommitFresh(battery.Report.ObservedAt, m_ObservedAt, now) || !ERR_NativeMortarEvidenceRules.AimFresh(battery.AimedAt, battery.AimValidatedAt, now) || battery.FlightTime <= 0) + { m_BadProjectile = true; m_BadReason = "physical commit lacks immutable fresh report/current order/native aim, or duplicates pending commit"; return; } + m_CommitPending = true; m_CommittedAt = now; m_CommitOrder = battery.OrderId; m_CommitShot = battery.OrderShots; m_Commits++; + PrintFormat("ERR MORTAR SALVO COMMIT: count=%1 order=%2 shot=%3 source=M%4 observedAge=%5; recorded before native inventory transfer", m_Commits, m_CommitOrder, m_CommitShot, m_Source, now - m_ObservedAt); + } + void NativeClosing(ERR_MortarBattery battery, string reason, string failure) + { + if (m_Stopped || battery != m_Battery || !battery.CommandOpen || battery.SourceId != m_Source || m_Source <= 0) return; + m_ClosureSeen = true; + m_ClosureComplete = battery.OrderShots == ERR_MortarSalvo.ROUNDS && m_Events == ERR_MortarSalvo.ROUNDS && !m_CommitPending && m_Commits == m_Events; + PrintFormat("ERR MORTAR SALVO CLOSURE: order=%1 reason=%2 lastFailure=%3 events=%4 commits=%5 complete=%6", battery.OrderId, reason, failure, m_Events, m_Commits, m_ClosureComplete); + if (battery.Stopped() || battery.OrderId != m_Order || !m_ClosureComplete || reason != "native artillery activity COMPLETED (shot count is separate)") + { m_BadProjectile = true; m_BadReason = "full salvo requires natural native completion; partial expiry, rejection, timeout or Stop is not success"; } + } + void NativeProjectile(IEntity gun, IEntity projectile) + { + if (m_Stopped || !m_Battery || gun != m_Gun) return; + if (!projectile) { m_BadProjectile = true; m_BadReason = "native fired event has no physical projectile"; return; } + if (m_Projectiles.Contains(projectile)) { m_BadProjectile = true; m_BadReason = "same physical projectile observed twice"; return; } + m_Projectiles.Insert(projectile); m_Events++; + float now = GetGame().GetWorld().GetWorldTime(); + if (m_Step != 1 || !m_Battery.Released || m_Battery.SourceId != m_Source || !ERR_NativeMortarEvidenceRules.EventBound(m_CommitPending, m_CommitOrder, m_Battery.OrderId, m_CommitShot, m_Battery.OrderShots, m_CommittedAt, now)) + { m_BadProjectile = true; m_BadReason = "projectile lacks the recorded fresh physical commit for its current order/shot"; } + m_CommitPending = false; + PrintFormat("ERR MORTAR SALVO PROJECTILE: event=%1 entity=%2 origin=%3 order=%4 source=M%5 aimAge=%6 flight=%7; impact is not measured", m_Events, projectile, projectile.GetOrigin(), m_Battery.OrderId, m_Battery.SourceId, now - m_Battery.AimedAt, m_Battery.FlightTime); + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (!Enabled() || s_Active != this || !m_Mode || !m_Mode.Active()) { Check(false, "explicit active fixture context retained"); return -1; } + ERR_HQ hq = ERR_HQ.Get(); + ERR_MortarSystem system; + if (hq) system = hq.Mortars(); + if (!system) { Check(false, "real HQ mortar service available"); return -1; } + if (!m_Battery) + { + array guns = {}; system.AppendGuns(guns); + if (guns.Count() == 1) { m_Gun = guns[0]; m_Battery = system.FindGun(m_Gun); if (m_Battery) m_Group = m_Battery.Group; } + } + Diagnose(now); + if (now >= m_Deadline) { Check(false, "bounded deadline; inspect readiness/route/activity/aim diagnostics"); return -1; } + if (m_BadProjectile) { Check(false, m_BadReason); return -1; } + if (!m_Battery) return 0; + if (!m_Battery.SpawnFailure.IsEmpty()) { Check(false, "battery startup failed: " + m_Battery.SpawnFailure); return -1; } + if (m_Step == 0) + { + if (!m_Battery.StartupActivated || !m_Battery.Operational() || !hq.MortarConnected(m_Battery.Group)) return 0; + m_Group = m_Battery.Group; + if (!Check(m_Group && m_Group.IsExpandComplete() && m_Group.GetAgentsCount() == 4 && m_Battery.TotalShots == 0 && m_Battery.OrderId == 0 && !m_Battery.CommandOpen && !m_Battery.Activity && !m_Battery.RadioOrder, "untasked original gun and complete four-person crew start without shots")) return -1; + array agents = {}; m_Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + IEntity actor; if (agent) actor = agent.GetControlledEntity(); + if (!Check(ERR_Actors.CanFight(actor) && !m_Crew.Contains(actor), "initial physical crew member is conscious and unique")) return -1; + m_Crew.Insert(actor); + } + if (!Check(m_Battery.RadioOperator && ERR_HQRadio.Capability(m_Battery.RadioOperator) == 2, "dedicated actual manpack supplies the radio route")) return -1; + Shells(m_InitialShells); + if (!Check(m_InitialShells.Count() == 27 && m_Battery.CountShells() == 27, "exactly 27 distinct physical initial HE shells")) return -1; + if (!Check(SelectImpact(system), "bounded candidate survey finds an unoccupied production-safe impact area")) return -1; + m_Target = ERR_Actors.Spawn(ERR_Resources.IntelFolder(), m_Impact); + if (!Check(m_Target != null, "fixture-owned inert report identity exists; no enemy perception is claimed")) return -1; + m_Source = hq.ERR_QueueMortarSalvoReport(m_Group, m_Target, m_Impact, now); + if (!Check(m_Source > 0, "synthetic observation enters actual existing radio uplink once")) return -1; + m_ObservedAt = now; m_SawUplink = true; m_Deadline = now + ERR_MortarSalvo.TIMEOUT_MS + 35000; m_Step = 1; return 0; + } + if (m_Battery.Stopped()) { Check(false, "battery must remain running throughout full salvo and replay observation"); return -1; } + if (m_Battery.Report && (m_Battery.Report.MessageId != m_Source || m_Battery.Report.ObservedAt != m_ObservedAt)) { Check(false, "delivered report identity and original observation timestamp remain immutable"); return -1; } + if (m_Battery.Gun != m_Gun || m_Battery.Group != m_Group) { Check(false, "original gun and crew identity retained"); return -1; } + if (!EmptyImpact(m_Impact)) { Check(false, "impact exclusion stays unoccupied before native firing/cancellation"); return -1; } + array remaining = {}; Shells(remaining); + foreach (IEntity item : remaining) + if (!m_InitialShells.Contains(item)) { Check(false, "no replacement HE shell appears after initialization"); return -1; } + if (m_Battery.OrderId > 1 || (m_Battery.SourceId != 0 && m_Battery.SourceId != m_Source)) { Check(false, "one unchanged fixture source creates only one HQ order"); return -1; } + if (m_Events > ERR_MortarSalvo.ROUNDS || m_Battery.TotalShots > ERR_MortarSalvo.ROUNDS) { Check(false, "physical event count never exceeds configured salvo"); return -1; } + if (m_Step == 1) + { + if (m_Battery.RadioOrder && m_Battery.SourceId == m_Source) { m_SawDownlink = true; m_Order = m_Battery.OrderId; } + if (m_Battery.Activity && m_Battery.Report && m_Battery.Report.MessageId == m_Source) + { + m_SawActivity = true; + if (!m_Delivered) m_Delivered = m_Battery.Report.Snapshot(); + } + if (m_Battery.CommandOpen || m_Battery.Activity) return 0; + if (!m_ClosureSeen) return 0; + if (!Check(m_ClosureComplete && m_SawUplink && m_SawDownlink && m_SawActivity && m_Order == 1, "one real uplink/downlink and native activity naturally complete the entire configured salvo")) return -1; + if (!Check(ERR_NativeMortarSalvoRules.Complete(m_Events, m_Commits, m_Battery.TotalShots, m_Battery.OrderShots, remaining.Count(), m_CommitPending) && m_Battery.CountShells() == remaining.Count(), "exact configured native projectiles equal fresh commits and missing original inventory shells")) return -1; + if (!Check(m_Delivered && !m_Battery.CanRequest(m_Delivered, now), "same delivered message is ineligible for a second request after completion")) return -1; + if (!Check(!m_Battery.RadioOrder && !m_Battery.Report && !m_Battery.PendingRadioReport && !m_Battery.PendingSupplyReport && !m_Battery.SupplyPending() && !m_Battery.Released, "natural completion clears command, routes, loading and projectile reservation")) return -1; + // Keep the unchanged HQ contact, battery and scheduler alive. This exceeds + // the normal 20-second post-dispatch decision interval without forging time. + m_StoppedShells = remaining.Count(); m_StopUntil = now + 25000; m_Deadline = m_StopUntil + 2000; m_Step = 2; + return 0; + } + if (m_Battery.CommandOpen || m_Battery.Activity || m_Battery.RadioOrder || m_Battery.Report || m_Battery.PendingRadioReport || m_Battery.PendingSupplyReport || m_Battery.SupplyPending() || m_Battery.Released) + { Check(false, "completed observation must not reopen command, activity, route or physical loading"); return -1; } + if (!ERR_NativeMortarSalvoRules.Complete(m_Events, m_Commits, m_Battery.TotalShots, m_Battery.OrderShots, remaining.Count(), m_CommitPending) || m_Battery.OrderId != m_Order || remaining.Count() != m_StoppedShells) + { Check(false, "closed order cannot add shots, orders or replacement ammunition during replay window"); return -1; } + if (now < m_StopUntil) return 0; + if (!Check(m_Delivered && !m_Battery.CanRequest(m_Delivered, now), "unchanged contact produces no second request, projectile or replenishment over 25 seconds")) return -1; + array finalCrew = {}; m_Group.GetAgents(finalCrew); + if (!Check(finalCrew.Count() == 4 && m_Battery.Gun == m_Gun, "original group and gun retain four crew")) return -1; + foreach (AIAgent finalAgent : finalCrew) + if (!Check(finalAgent && m_Crew.Contains(finalAgent.GetControlledEntity()) && ERR_Actors.CanFight(finalAgent.GetControlledEntity()), "final conscious crew entity belongs to original physical roster")) return -1; + Stop(); return 1; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + ERR_HQ hq = ERR_HQ.Get(); + if (hq) hq.ERR_RemoveMortarSalvoReport(m_Target); + if (m_Battery && m_Battery.Gun == m_Gun && m_Battery.Group == m_Group) m_Battery.Stop(); + ERR_Actors.DeleteSpawned(m_Target); m_Target = null; + if (s_Active == this) s_Active = null; + } + void ~ERR_NativeMortarSalvoProbe() { Stop(); } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c new file mode 100644 index 0000000..c0d206a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c @@ -0,0 +1,383 @@ +#ifdef WORKBENCH +// Mechanism-only fixture: radio delivery and automatic artillery scheduling are +// explicitly bypassed. All ammunition and inventory operations remain physical. +modded class ERR_MortarSystem +{ + protected ERR_NativeMortarTransferProbe m_ERRTransferFixture; + bool ERR_HoldForTransfer(ERR_NativeMortarTransferProbe owner) + { + if (!ERR_NativeMortarTransferProbe.Enabled() || m_Stopped || m_ERRTransferFixture || !owner) return false; + m_ERRTransferFixture = owner; return true; + } + void ERR_ReleaseTransferHold(ERR_NativeMortarTransferProbe owner) + { + if (m_ERRTransferFixture == owner) m_ERRTransferFixture = null; + } + override void Tick(float now) + { + if (m_ERRTransferFixture) return; + super.Tick(now); + } + ERR_MortarBattery ERR_TransferBattery() + { + if (m_Batteries.Count() != 1) return null; + return m_Batteries[0]; + } +} +modded class ERR_MortarBattery +{ + ERR_MortarSupplyTransfer ERR_TransferForProbe() { return m_Transfer; } + int ERR_TransferAttempts() { return m_AttemptedShells.Count(); } +} +modded class ERR_MortarSupplyTransfer +{ + int ERR_CallbackState() { return m_Acknowledgement; } + IEntity ERR_TransferredShell() { return m_Shell; } + IEntity ERR_TransferRecipient() { return m_Gunner; } + bool ERR_RequestAccepted() { return m_Accepted; } +} +class ERR_NativeMortarMoveCallback : ScriptedInventoryOperationCallback +{ + int Result; + protected override void OnComplete() { if (Result == 0) Result = 1; } + protected override void OnFailed() { if (Result == 0) Result = -1; } +} +class ERR_NativeMortarShellOwner +{ + IEntity Shell; + IEntity OriginalOwner; +} + +class ERR_NativeMortarTransferProbe +{ + protected ERR_GameMode m_Mode; + protected ERR_MortarSystem m_System; + protected ERR_MortarBattery m_Battery; + protected IEntity m_Gunner; + protected BaseCompartmentSlot m_Seat; + protected ref array m_Crew = {}; + protected ref array m_Boxes = {}; + protected ref array m_Stores = {}; + protected ref array m_Original = {}; + protected ref ERR_NativeMortarMoveCallback m_MoveCallback; + protected IEntity m_MoveShell; + protected BaseInventoryStorageComponent m_MoveDestination; + protected float m_MoveDeadline; + protected ref ERR_MortarSupplyTransfer m_ObservedTransfer; + protected IEntity m_FirstShell; + protected IEntity m_SecondShell; + protected int m_AttemptsAtStart; + protected int m_ShotsAtStart; + protected int m_CallbackAtCancel; + protected int m_CancelOrder; + protected int m_Step; + protected float m_Deadline; + protected float m_StepDeadline; + protected float m_Wait; + protected bool m_Held; + protected bool m_Stopped; + protected bool m_Complete; + static const ResourceName STORE = "{EBBC859CCD94D96D}Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et"; + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "mortar-transfer"; + } + void ERR_NativeMortarTransferProbe(ERR_GameMode mode) + { + m_Mode = mode; m_Deadline = GetGame().GetWorld().GetWorldTime() + 180000; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mortar transfer " + detail); return true; } + Print("ERR SMOKE FAIL: mortar transfer " + detail, LogLevel.ERROR); Stop(); return false; + } + protected bool IsShell(IEntity item) + { + return item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL; + } + protected InventoryStorageManagerComponent Inventory(IEntity actor) + { + if (!actor) return null; + return InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + } + protected bool Has(IEntity actor, IEntity item) + { + array items = {}; ERR_Inventory.Items(Inventory(actor), items); + return item && items.Contains(item); + } + protected IEntity CrewOwner(IEntity item) + { + foreach (IEntity actor : m_Crew) if (Has(actor, item)) return actor; + return null; + } + protected IEntity OriginalOwner(IEntity item) + { + foreach (ERR_NativeMortarShellOwner entry : m_Original) if (entry.Shell == item) return entry.OriginalOwner; + return null; + } + protected bool InStore(IEntity item) + { + foreach (BaseInventoryStorageComponent storage : m_Stores) if (storage && storage.Contains(item)) return true; + return false; + } + static bool Conservation(int originals, int actual, bool allOriginal, bool singleOwner) + { + return originals == 27 && actual == originals && allOriginal && singleOwner; + } + protected bool Conserved() + { + array actual = {}; + foreach (IEntity actor : m_Crew) + { + array items = {}; ERR_Inventory.Items(Inventory(actor), items); + foreach (IEntity item : items) if (IsShell(item) && !actual.Contains(item)) actual.Insert(item); + } + foreach (BaseInventoryStorageComponent storage : m_Stores) + { + if (!storage) return false; + array items = {}; storage.GetAll(items); + foreach (IEntity item : items) if (IsShell(item) && !actual.Contains(item)) actual.Insert(item); + } + bool allOriginal = true; + bool singleOwner = true; + foreach (ERR_NativeMortarShellOwner entry : m_Original) + { + if (!entry.Shell || !actual.Contains(entry.Shell)) allOriginal = false; + int owners; + foreach (IEntity actor : m_Crew) if (Has(actor, entry.Shell)) owners++; + foreach (BaseInventoryStorageComponent storage : m_Stores) if (storage && storage.Contains(entry.Shell)) owners++; + if (owners != 1) singleOwner = false; + } + return Conservation(m_Original.Count(), actual.Count(), allOriginal, singleOwner); + } + protected IEntity FirstGunnerShell() + { + array items = {}; ERR_Inventory.Items(Inventory(m_Gunner), items); + foreach (IEntity item : items) if (IsShell(item)) return item; + return null; + } + protected bool BeginMove(IEntity shell, BaseInventoryStorageComponent destination, float now) + { + if (!shell || !destination || m_MoveCallback) return false; + IEntity current = CrewOwner(shell); + // A vanilla empty box has storage but no inventory manager. The original + // recipient manager performs its explicit pickup from the external storage. + if (!current) current = OriginalOwner(shell); + InventoryStorageManagerComponent manager = Inventory(current); + if (!manager) return false; + m_MoveShell = shell; m_MoveDestination = destination; + m_MoveCallback = new ERR_NativeMortarMoveCallback(); m_MoveDeadline = now + 8000; + if (!manager.TryMoveItemToStorage(shell, destination, -1, m_MoveCallback)) return false; + return true; + } + protected int MoveResult(float now) + { + if (!m_MoveCallback) return 1; + if (m_MoveCallback.Result < 0 || now >= m_MoveDeadline) return -1; + if (m_MoveCallback.Result == 0 || !m_MoveShell || !m_MoveDestination || !m_MoveDestination.Contains(m_MoveShell)) return 0; + InventoryItemComponent item = InventoryItemComponent.Cast(m_MoveShell.FindComponent(InventoryItemComponent)); + if (!item || !item.GetParentSlot() || item.GetParentSlot().GetStorage() != m_MoveDestination) return 0; + m_MoveCallback = null; m_MoveShell = null; m_MoveDestination = null; + return 1; + } + protected bool Stash(IEntity shell, float now) + { + foreach (BaseInventoryStorageComponent storage : m_Stores) + if (storage && storage.GetEstimatedCountFitForItem(shell) > 0) return BeginMove(shell, storage, now); + return false; + } + protected void StageOrder(float now) + { + ERR_HQReport report = new ERR_HQReport(); + report.Target = GetGame().GetPlayerController().GetControlledEntity(); + report.Source = m_Battery.Group; + report.Position = m_Battery.Gun.GetOrigin() + "700 0 0"; + report.ObservedAt = now; report.DetailsObservedAt = now; + report.TravelMode = "on foot"; report.MessageId = 900001 + m_Battery.OrderId; + m_Battery.BeginRequest(report, now); + m_Battery.PendingSupplyReport = report.Snapshot(); + PrintFormat("ERR MORTAR TRANSFER FIXTURE: synthetic supply order=%1; radio bypassed; scheduler held; no artillery activity authorized", m_Battery.OrderId); + } + protected bool NoFire() + { + return m_Battery && m_Battery.TotalShots == m_ShotsAtStart && !m_Battery.Activity && !m_Battery.RadioOrder && !m_Battery.Released; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Battery) m_Battery.Cancel("native transfer fixture stopped"); + if (m_System) + { + m_System.Stop(); // do not resume automatic fire while test items may be stored + if (m_Held) m_System.ERR_ReleaseTransferHold(this); + } + m_Held = false; + // Never delete a box containing borrowed shells or an outstanding operation. + // Failure preserves it for diagnosis/normal round-owned cleanup. + if (!m_MoveCallback) + { + foreach (IEntity box : m_Boxes) + { + if (!box) continue; + BaseInventoryStorageComponent storage = BaseInventoryStorageComponent.Cast(box.FindComponent(BaseInventoryStorageComponent)); + array items = {}; if (storage) storage.GetAll(items); + if (storage && items.IsEmpty()) ERR_Actors.DeleteSpawned(box); + } + } + } + int Tick(float now) + { + if (m_Complete) return 1; + if (m_Stopped) return -1; + if (!Enabled() || now > m_Deadline) { Check(false, "enabled server fixture and bounded 180-second deadline"); return -1; } + if (now < m_Wait) return 0; + if (m_MoveCallback) + { + int moved = MoveResult(now); + if (moved < 0) { Check(false, "fixture inventory move completed with exact destination before deadline; borrowed shells retained"); return -1; } + if (moved == 0) return 0; + if (!Check(Conserved(), "all original 27 shell identities conserved after fixture move")) return -1; + } + if (m_Step == 0) + { + m_System = ERR_MortarSystem.Get(); + if (!m_System) return 0; + m_Battery = m_System.ERR_TransferBattery(); + if (!m_Battery || !m_Battery.StartupActivated) return 0; + if (!Check(m_Battery.Operational() && m_Battery.CountShells() == 27 && !m_Battery.Activity && !m_Battery.RadioOrder && !m_Battery.CommandOpen, "actual initialized idle battery has finite 27 shells")) return -1; + if (!Check(m_System.ERR_HoldForTransfer(this), "opt-in mechanism fixture holds automatic mortar scheduler")) return -1; + m_Held = true; m_AttemptsAtStart = m_Battery.ERR_TransferAttempts(); m_ShotsAtStart = m_Battery.TotalShots; + array agents = {}; m_Battery.Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) continue; + IEntity actor = agent.GetControlledEntity(); if (m_Crew.Contains(actor)) continue; + m_Crew.Insert(actor); + array items = {}; ERR_Inventory.Items(Inventory(actor), items); + foreach (IEntity item : items) + { + if (!IsShell(item)) continue; + ERR_NativeMortarShellOwner entry = new ERR_NativeMortarShellOwner(); entry.Shell = item; entry.OriginalOwner = actor; m_Original.Insert(entry); + } + if (!m_Gunner && actor != m_Battery.RadioOperator) m_Gunner = actor; + } + if (!Check(m_Crew.Count() == 4 && m_Original.Count() == 27 && m_Gunner != null, "four real crew and original shell-owner identities captured")) return -1; + SCR_AIVehicleUsageComponent usage = SCR_AIVehicleUsageComponent.Cast(m_Battery.Gun.FindComponent(SCR_AIVehicleUsageComponent)); + if (usage) m_Seat = usage.GetTurretCompartmentSlot(); + if (m_Seat && m_Seat.GetOccupant()) + { + IEntity occupant = m_Seat.GetOccupant(); + if (!Check(m_Crew.Contains(occupant) && occupant != m_Battery.RadioOperator && ERR_Actors.CanFight(occupant), "existing native seat occupant is original fighting gunner")) return -1; + m_Gunner = occupant; + } + else + { + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_Gunner.FindComponent(CompartmentAccessComponent)); + if (!Check(m_Seat && access && access.GetInVehicle(m_Battery.Gun, m_Seat, true, -1, ECloseDoorAfterActions.INVALID, false), "native seating request selects actual original crew gunner")) return -1; + } + if (!Check(m_Battery.InventoryShells(Inventory(m_Gunner)) == 9, "selected actual gunner owns its original nine physical shells")) return -1; + for (int i = 0; i < 2; i++) + { + IEntity box = ERR_Actors.Spawn(STORE, ERR_Actors.Ground(m_Battery.Gun.GetOrigin() + Vector(3 + i * 2, 0, 3))); + if (!Check(box != null, "fixture-owned empty vanilla storage created")) return -1; + m_Boxes.Insert(box); m_Mode.Own(box); + BaseInventoryStorageComponent storage = BaseInventoryStorageComponent.Cast(box.FindComponent(BaseInventoryStorageComponent)); + if (!Check(storage != null, "real vanilla storage component available without attaching it to gunner inventory")) return -1; + m_Stores.Insert(storage); + } + m_Step = 1; m_StepDeadline = now + 8000; m_Wait = now + 500; return 0; + } + if (!NoFire()) { Check(false, "no artillery activity, committed load or physical projectile during inventory mechanism test"); return -1; } + if (m_Step == 1) + { + if (m_Seat.GetOccupant() != m_Gunner) + { + if (now >= m_StepDeadline) { Check(false, "actual original gunner occupies native mortar seat"); return -1; } + return 0; + } + if (!Check(Conserved(), "27 original shells have exactly one observed owner each")) return -1; + m_Step = 2; + } + if (m_Step == 2 || m_Step == 5) + { + IEntity shell = FirstGunnerShell(); + if (shell) + { + if (!Check(Stash(shell, now), "one existing gunner shell move to vanilla store accepted; no shell minted")) return -1; + return 0; + } + if (!Check(m_Battery.InventoryShells(Inventory(m_Gunner)) == 0 && Conserved(), "actual gunner empty while all 27 original shells remain in crew or fixture storage")) return -1; + StageOrder(now); + ERR_MortarSupplyState started = m_Battery.SupplyState(now); + m_ObservedTransfer = m_Battery.ERR_TransferForProbe(); + if (!Check(started == ERR_MortarSupplyState.PENDING && m_ObservedTransfer && m_ObservedTransfer.ERR_RequestAccepted() && m_ObservedTransfer.ERR_TransferRecipient() == m_Gunner && m_ObservedTransfer.CapturedOrder() == m_Battery.OrderId, "production exact-shell request accepted once with captured current order and real gunner")) return -1; + if (m_Step == 2) + { + m_FirstShell = m_ObservedTransfer.ERR_TransferredShell(); + m_Step = 3; + } + else + { + m_SecondShell = m_ObservedTransfer.ERR_TransferredShell(); m_CallbackAtCancel = m_ObservedTransfer.ERR_CallbackState(); m_CancelOrder = m_Battery.OrderId; + m_Battery.Cancel("native fixture cancels authorization immediately after accepted inventory request"); + if (!Check(m_SecondShell && m_SecondShell != m_FirstShell && !m_Battery.CommandOpen && m_Battery.SupplyState(now) == ERR_MortarSupplyState.FAILED, "canceled current order cannot report supply READY or issue another request")) return -1; + PrintFormat("ERR MORTAR TRANSFER CANCEL: callbackBeforeCancel=%1 order=%2; accepted native move is not retracted", m_CallbackAtCancel, m_CancelOrder); + m_Step = 6; + } + m_StepDeadline = now + 8000; m_Wait = now + 250; return 0; + } + if (m_Step == 3) + { + ERR_MortarSupplyState state = m_Battery.SupplyState(now); + if (state == ERR_MortarSupplyState.FAILED || now >= m_StepDeadline) { Check(false, "production transfer completes within its bounded deadline"); return -1; } + if (state == ERR_MortarSupplyState.PENDING) return 0; + if (!Check(m_ObservedTransfer.ERR_CallbackState() == 1 && Has(m_Gunner, m_FirstShell) && !Has(OriginalOwner(m_FirstShell), m_FirstShell) && Conserved() && m_Battery.ERR_TransferAttempts() == m_AttemptsAtStart + 1, "successful native callback and exact donor-to-gunner ownership, one attempt, original 27 conserved")) return -1; + if (!Check(m_Battery.SupplyState(now) == ERR_MortarSupplyState.READY && m_Battery.ERR_TransferAttempts() == m_AttemptsAtStart + 1, "repeated supply check reuses actual inventory without another move")) return -1; + m_Battery.Cancel("native success subcase finished; no artillery activity requested"); + m_Step = 5; return 0; + } + if (m_Step == 6) + { + if (m_Battery.SupplyState(now) != ERR_MortarSupplyState.FAILED || m_Battery.OrderId != m_CancelOrder || m_Battery.ERR_TransferAttempts() != m_AttemptsAtStart + 2) { Check(false, "canceled order/generation remains failed with exactly two total move attempts"); return -1; } + if (m_ObservedTransfer.ERR_CallbackState() == 0 || m_ObservedTransfer.Unresolved()) + { + if (now >= m_StepDeadline) { Check(false, "accepted canceled operation reached definite native outcome; no ambiguous retry"); return -1; } + return 0; + } + if (!Check(m_ObservedTransfer.ERR_CallbackState() == 1 && Has(m_Gunner, m_SecondShell) && Conserved(), "canceled accepted native move has definite physical outcome with exactly two attempts and original 27 conserved")) return -1; + if (m_CallbackAtCancel == 0) Print("ERR SMOKE PASS: mortar transfer actual native completion observed after authorization cancellation"); + else Print("ERR MORTAR TRANSFER LIMIT: native callback completed synchronously before cancellation; late callback timing not exercised"); + m_Step = 7; return 0; + } + if (m_Step == 7) + { + // Return foreign shells first, leaving room for each original nine-round kit. + IEntity misplaced; + foreach (ERR_NativeMortarShellOwner entry : m_Original) + if (Has(m_Gunner, entry.Shell) && entry.OriginalOwner != m_Gunner) { misplaced = entry.Shell; break; } + if (!misplaced) + foreach (ERR_NativeMortarShellOwner entry : m_Original) if (InStore(entry.Shell)) { misplaced = entry.Shell; break; } + if (misplaced) + { + InventoryStorageManagerComponent recipient = Inventory(OriginalOwner(misplaced)); + BaseInventoryStorageComponent destination; + if (recipient) destination = recipient.FindStorageForItem(misplaced, EStoragePurpose.PURPOSE_DEPOSIT); + if (!Check(destination && BeginMove(misplaced, destination, now), "one borrowed shell return to its original crew owner accepted")) return -1; + return 0; + } + foreach (ERR_NativeMortarShellOwner entry : m_Original) + if (!Check(Has(entry.OriginalOwner, entry.Shell), "original shell identity returned to original crew inventory")) return -1; + if (!Check(Conserved() && m_Battery.CountShells() == 27 && NoFire(), "all original ammunition restored; no minted/deleted shell or shot")) return -1; + foreach (BaseInventoryStorageComponent storage : m_Stores) + { + array items = {}; storage.GetAll(items); + if (!Check(items.IsEmpty(), "borrowed-ammunition fixture storage empty before deletion")) return -1; + } + Stop(); m_Complete = true; return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c new file mode 100644 index 0000000..d93b082 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c @@ -0,0 +1,87 @@ +#ifdef WORKBENCH +// Test access only: trigger the real delivered-order method on an existing +// registered squad. Radio transit is intentionally not simulated by this test. +modded class ERR_HQ +{ + bool ERR_TestPatrolSearch(SCR_AIGroup group, out AIWaypoint search) + { + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group) continue; + if (unit.Assignment || unit.PendingOrder || unit.Waypoint || !unit.Eligible(m_Mode)) return false; + ERR_HQReport order = new ERR_HQReport(); + order.Position = group.GetOrigin() + "40 0 0"; + order.ObservedAt = GetGame().GetWorld().GetWorldTime(); + order.MessageId = m_Journal.Message(); + unit.PendingOrder = order; + DeliverOrder(unit, order.ObservedAt); + search = unit.Waypoint; + return search && unit.Assignment == order; + } + return false; + } + bool ERR_TestPatrolRelease(SCR_AIGroup group, AIWaypoint search) + { + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Group != group || unit.Waypoint != search) continue; + unit.Release(); + return !unit.Assignment && !unit.PendingOrder && !unit.Waypoint; + } + return false; + } +} + +class ERR_NativePatrolHQProbe +{ + protected ERR_GameMode m_Mode; + protected ERR_SiteRuntime m_Site; + protected AIWaypoint m_Search; + protected ref array m_Baseline = {}; + protected int m_Step; + protected float m_Wait; + void ERR_NativePatrolHQProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: patrol HQ " + detail); return true; } + Print("ERR SMOKE FAIL: patrol HQ " + detail, LogLevel.ERROR); return false; + } + int Tick(float now) + { + if (now < m_Wait) return 0; + ERR_HQ hq = ERR_HQ.Get(); + if (!Check(hq != null, "real HQ available")) return -1; + if (m_Step == 0) + { + m_Site = m_Mode.Sites().Find("everon-outpost-1"); + if (!Check(m_Site && m_Site.Group && m_Site.PatrolCycle, "existing outpost route available")) return -1; + m_Site.Group.GetWaypoints(m_Baseline); + if (!Check(!m_Baseline.IsEmpty() && hq.ERR_TestPatrolSearch(m_Site.Group, m_Search), "real delivered-order method assigns existing squad")) return -1; + m_Step = 1; m_Wait = now + 750; return 0; + } + if (m_Step == 1) + { + array queue = {}; + m_Site.Group.GetWaypoints(queue); + if (!Check(m_Search && !queue.IsEmpty() && queue[0] == m_Search && m_Site.Group.GetCurrentWaypoint() == m_Search, "Search preempts native patrol")) return -1; + foreach (AIWaypoint waypoint : m_Baseline) + if (!Check(queue.Contains(waypoint), "preempted baseline route remains queued")) return -1; + if (!Check(hq.ERR_TestPatrolRelease(m_Site.Group, m_Search), "real HQ release removes only its assignment")) return -1; + m_Step = 2; m_Wait = now + 750; return 0; + } + if (m_Step == 2) + { + AIWaypoint current = m_Site.Group.GetCurrentWaypoint(); + if (!Check(current && (current == m_Site.PatrolCycle || m_Site.PatrolWaypoints.Contains(current)), "native patrol resumes after Search release")) return -1; + m_Step = 3; return 1; + } + return 1; + } + void Stop() + { + ERR_HQ hq = ERR_HQ.Get(); + if (hq && m_Site && m_Search) hq.ERR_TestPatrolRelease(m_Site.Group, m_Search); + } + void ~ERR_NativePatrolHQProbe() { Stop(); } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c new file mode 100644 index 0000000..f76d2ba --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c @@ -0,0 +1,63 @@ +// Vanilla named settlements supply exclusion areas; no original mission location system. +// Shared town/village exclusion for mortar impacts, roadblocks and mine sites. +// Fixed distance from mapped settlement centres, independent of mission +// activation radii. Scattered buildings and props are not settlements. +class ERR_SettlementSafety +{ + static const float RADIUS = 200; + string SettlementReason; + protected vector m_SafeImpact; + protected bool m_SettlementNear; + protected vector m_LastSettlementImpact; + protected float m_LastSettlementCheck = -1; + protected bool m_LastSettlementClear; + + bool OutsideSettlements(vector impact) + { + float now = GetGame().GetWorld().GetWorldTime(); + if (m_LastSettlementCheck >= 0 && now >= m_LastSettlementCheck && now - m_LastSettlementCheck < 1000 && vector.DistanceXZ(impact, m_LastSettlementImpact) == 0) + return m_LastSettlementClear; + m_LastSettlementCheck = now; + m_LastSettlementImpact = impact; + m_LastSettlementClear = false; + m_SafeImpact = impact; + m_SettlementNear = false; + SettlementReason = "clear"; + // Also cover named native map settlements, independent of whether the + // mission placed a garrison marker there. Generic building entities also + // include deer stands, bridge pillars, rubble and electrical cabinets. + // Broad vertical bounds keep the 200m distance horizontal on hills. + GetGame().GetWorld().QueryEntitiesByAABB(impact - Vector(RADIUS, 5000, RADIUS), impact + Vector(RADIUS, 5000, RADIUS), CheckSettlement, FilterSettlement, EQueryEntitiesFlags.ALL); + m_LastSettlementClear = !m_SettlementNear; + return m_LastSettlementClear; + } + + protected bool FilterSettlement(IEntity entity) + { + return entity && entity.FindComponent(MapDescriptorComponent); + } + + protected bool CheckSettlement(IEntity entity) + { + float radius; + MapDescriptorComponent descriptor = MapDescriptorComponent.Cast(entity.FindComponent(MapDescriptorComponent)); + if (descriptor) + { + int type = descriptor.GetBaseType(); + if (type == EMapDescriptorType.MDT_NAME_CITY) + radius = RADIUS; + else if (type == EMapDescriptorType.MDT_NAME_TOWN) + radius = RADIUS; + else if (type == EMapDescriptorType.MDT_NAME_VILLAGE || type == EMapDescriptorType.MDT_NAME_SETTLEMENT) + radius = RADIUS; + } + if (radius > 0 && vector.DistanceXZ(m_SafeImpact, entity.GetOrigin()) <= radius) + { + m_SettlementNear = true; + SettlementReason = string.Format("named map settlement entity=%1 position=%2 distance=%3m exclusion=%4m", entity, entity.GetOrigin(), vector.DistanceXZ(m_SafeImpact, entity.GetOrigin()), radius); + return false; + } + return true; + } + +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c new file mode 100644 index 0000000..1cb5412 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c @@ -0,0 +1,9 @@ +modded class ERR_ScenarioComponent +{ + protected override bool PrepareAdditionalForces() + { + if (!super.PrepareAdditionalForces()) return false; + ERR_HQ hq = ERR_HQ.Get(); + return hq && hq.PrepareSupport(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/addon.gproj new file mode 100644 index 0000000..ec3100b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/ai/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Ai" + GUID "5192138CB9D5B911" + TITLE "Escapists Rereintroduced - Ai" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf new file mode 100644 index 0000000..d63df9d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf @@ -0,0 +1,11 @@ +SCR_MissionHeader { + World "{B6C516F86302C679}Worlds/ERR_Everon.ent" + SystemsConfig "{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf" + m_sName "Rereintroduced: Everon (development)" + m_sAuthor "Rereintroduced contributors" + m_sDescription "Independent escape prototype. Development scenario; runtime validation in progress." + m_sGameMode "Escape" + m_iPlayerCount 12 + m_eSaveTypes 0 + m_bShowInScenarioMenu 1 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf.meta new file mode 100644 index 0000000..4d75705 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Missions/ERR_Everon.conf.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{C1E20667DCE324ED}Missions/ERR_Everon.conf" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c new file mode 100644 index 0000000..f1b6593 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c @@ -0,0 +1,36 @@ +// Companion-specific commands extend Core's authenticated transport. +modded class ERR_AdminService +{ + protected override string Setting(string section, string option) + { + if (section == "hq") + { + if (option == "interval") return "reportIntervalSeconds"; + if (option == "squads") return "supportSquadLimit"; + if (option == "radius") return "responseRadiusMetres"; + } + if (section == "intel") + { + if (option == "carrying") return "aiIntelChancePercent"; + } + return super.Setting(section, option); + } + protected override bool Extension(ERR_GameMode mode, string arguments, array replies) + { + if (arguments != "status" && arguments != "hq show" && arguments != "hq log") return super.Extension(mode, arguments, replies); + ERR_HQ hq = ERR_HQ.Cast(mode.Command()); + if (!hq) { replies.Insert("HQ unavailable"); return true; } + if (arguments == "hq show" || arguments == "status") replies.Insert(hq.Status()); + else + { + int cursor; + hq.Journal().Read(Math.Max(0, hq.Journal().Sequence() - 8), replies, cursor); + if (replies.IsEmpty()) replies.Insert("HQ journal is empty."); + } + return true; + } + protected override string Help() + { + return super.Help() + " | hq show|log | hq interval|squads|radius show|set N | intel carrying show|set N"; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c new file mode 100644 index 0000000..442c72f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c @@ -0,0 +1,288 @@ +#ifdef WORKBENCH +// Read-only evidence hooks. Every production method delegates unchanged. +modded class ERR_HQ +{ + void ERR_ResponseUnits(out array units) + { + units.Clear(); + if (!ERR_NativeHQResponseProof.Enabled()) return; + foreach (ERR_HQUnit unit : m_Units) units.Insert(unit); + } + protected override void Observe(ERR_HQUnit unit, float now) + { + ERR_HQReport previous = unit.PendingReport; + super.Observe(unit, now); + ERR_NativeHQResponseProof proof = ERR_NativeHQResponseProof.Active(); + if (proof && unit.PendingReport && unit.PendingReport != previous) proof.Observed(this, unit, now); + } + protected override void Accept(ERR_HQReport report, float now) + { + super.Accept(report, now); + ERR_NativeHQResponseProof proof = ERR_NativeHQResponseProof.Active(); + if (!proof || !report) return; + foreach (ERR_HQReport accepted : m_Contacts) + if (accepted.MessageId == report.MessageId) { proof.Accepted(this, accepted, now); break; } + } + protected override void DeliverOrder(ERR_HQUnit unit, float now) + { + ERR_HQReport order = unit.PendingOrder; + ERR_HQRoute route = unit.Downlink; + super.DeliverOrder(unit, now); + ERR_NativeHQResponseProof proof = ERR_NativeHQResponseProof.Active(); + if (proof && order && route && unit.Assignment == order && unit.Waypoint) proof.Delivered(this, unit, route, now); + } +} +modded class ERR_HQJournal +{ + override void Write(string kind, string message, int messageId = 0) + { + super.Write(kind, message, messageId); + ERR_NativeHQResponseProof proof = ERR_NativeHQResponseProof.Active(); + if (proof) proof.JournalEvent(this, kind, message, messageId); + } +} +modded class SCR_AIGroupUtilityComponent +{ + IEntity ERR_ResponseVisualObserver(ERR_HQReport report, float now) + { + foreach (SCR_AIInfoComponent info : m_aInfoComponents) + { + if (!info || !info.m_Perception) continue; + AIAgent agent = AIAgent.Cast(info.GetOwner()); + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) continue; + array targets = {}; info.m_Perception.GetTargetsList(targets, ETargetCategory.ENEMY); + foreach (BaseTarget target : targets) + { + ERR_HQVisualContact sample = ERR_HQObservation.Capture(target, now); + if (sample && sample.Entity == report.Target && sample.Escapist && Math.AbsFloat(sample.ObservedAt - report.ObservedAt) < 1 && vector.Distance(sample.Position, report.Position) < 0.1) return agent.GetControlledEntity(); + } + } + return null; + } +} +class ERR_NativeResponseUnit +{ + ERR_HQUnit Unit; + SCR_AIGroup Group; + IEntity Radio; + ref array Actors = {}; +} +class ERR_NativeResponseJournal +{ + bool Report; + bool Transmit; + bool HQReceive; + bool HQTransmit; + bool UnitReceive; + bool Delivered; +} +class ERR_NativeResponseLineage +{ + ref ERR_HQReport Report; + ERR_HQUnit Source; + IEntity Observer; + IEntity SourceRadio; + ref ERR_HQRoute Uplink; + bool Accepted; + float AcceptedAt; + ERR_HQUnit Recipient; + IEntity RecipientRadio; + int DeliveryId; + AIWaypoint Waypoint; + IEntity MovingActor; + vector DeliveredOrigin; + float DeliveredAt; +} +class ERR_NativeHQResponseProof +{ + protected static ERR_NativeHQResponseProof s_Active; + protected ERR_GameMode m_Mode; + protected ERR_HQ m_HQ; + protected IEntity m_Player; + protected SCR_PlayerController m_Controller; + protected ERR_PlayerLife m_Life; + protected ERR_HQUnit m_Source; + protected DamageManagerComponent m_Damage; + protected bool m_DamageWasEnabled; + protected bool m_Protected; + protected bool m_Started; + protected bool m_Stopped; + protected bool m_Failed; + protected string m_Failure; + protected float m_Deadline; + protected float m_NextDiagnostic; + protected ref array m_Units = {}; + protected ref array m_Forces = {}; + protected ref array m_Reports = {}; + protected ref map m_Journal = new map(); + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "hq-response"; + } + static ERR_NativeHQResponseProof Active() { return s_Active; } + void ERR_NativeHQResponseProof(ERR_GameMode mode, IEntity player) + { + m_Mode = mode; m_Player = player; m_HQ = ERR_HQ.Get(); m_Deadline = GetGame().GetWorld().GetWorldTime() + 140000; + if (Enabled() && !s_Active) s_Active = this; + } + protected bool Fail(string reason) { m_Failed = true; m_Failure = reason; return false; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: HQ response " + detail); return true; } + Print("ERR SMOKE FAIL: HQ response " + detail, LogLevel.ERROR); Stop(); return false; + } + protected ERR_NativeResponseUnit Original(ERR_HQUnit unit) + { + foreach (ERR_NativeResponseUnit original : m_Units) if (original.Unit == unit && original.Group == unit.Group) return original; + return null; + } + protected ERR_NativeResponseLineage Report(int id) + { + foreach (ERR_NativeResponseLineage report : m_Reports) if (report.Report.MessageId == id) return report; + return null; + } + protected bool Canonical() + { + return m_Player && m_Controller && m_Life && m_Mode.Players().CurrentActor(m_Player) == m_Life && m_Controller == GetGame().GetPlayerController() && m_Controller.GetControlledEntity() == m_Player && m_Life.Actor == m_Player && m_Life.Connected && m_Life.UsedLife; + } + protected bool UnchangedForces() + { + array current = {}; m_HQ.ERR_ResponseUnits(current); + if (current.Count() != m_Units.Count()) return false; + foreach (ERR_HQUnit unit : current) + { + ERR_NativeResponseUnit original = Original(unit); + if (!original) return false; + array agents = {}; unit.Group.GetAgents(agents); + if (agents.Count() != original.Actors.Count()) return false; + foreach (AIAgent agent : agents) if (!agent || !original.Actors.Contains(agent.GetControlledEntity())) return false; + } + array forces = {}; m_HQ.PhysicalForces(forces); + if (forces.Count() != m_Forces.Count()) return false; + foreach (IEntity entity : forces) if (!m_Forces.Contains(entity)) return false; + return true; + } + protected bool Arrange() + { + array units = {}; m_HQ.ERR_ResponseUnits(units); + foreach (ERR_HQUnit unit : units) + { + if (!unit.Group || !unit.Utility || !unit.Radio || ERR_HQRadio.Capability(unit.Radio) != 2) return false; + array agents = {}; unit.Group.GetAgents(agents); + if (agents.IsEmpty() || !unit.Group.IsExpandComplete()) return false; + ERR_NativeResponseUnit original = new ERR_NativeResponseUnit(); original.Unit = unit; original.Group = unit.Group; original.Radio = unit.Radio; + foreach (AIAgent agent : agents) + { + if (!agent || !ERR_Actors.CanFight(agent.GetControlledEntity())) return false; + original.Actors.Insert(agent.GetControlledEntity()); + } + m_Units.Insert(original); + if (!m_Source && !unit.ReservedForSupport) m_Source = unit; + } + if (!m_Source || m_Units.Count() < 2) return false; + m_HQ.PhysicalForces(m_Forces); + m_Controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); m_Life = m_Mode.Players().CurrentActor(m_Player); + if (!Canonical()) return false; + m_Damage = DamageManagerComponent.Cast(m_Player.FindComponent(DamageManagerComponent)); + if (!m_Damage) return false; + m_DamageWasEnabled = m_Damage.IsDamageHandlingEnabled(); m_Damage.EnableDamageHandling(false); m_Protected = true; + // Preserve the established fixture arrangement: move only the real prisoner. + // Native perception must discover him; neither targets nor reports are seeded. + vector position = ERR_Actors.Ground(m_Source.Group.GetOrigin() + "0 0 20"); + vector transform[4]; m_Player.GetWorldTransform(transform); transform[3] = position; + ChimeraCharacter.Cast(m_Player).Teleport(transform); + m_Started = true; + PrintFormat("ERR HQ RESPONSE ARRANGEMENT: canonical prisoner moved to=%1 near original source group=%2; temporary player damage protection=%3; no AI/report/radio cadence changes", position, m_Source.Id, m_Protected); + return true; + } + void JournalEvent(ERR_HQJournal journal, string kind, string message, int messageId) + { + if (!m_Started || m_Stopped || !m_HQ || journal != m_HQ.Journal() || messageId <= 0) return; + ERR_NativeResponseJournal entry = m_Journal.Get(messageId); + if (!entry) + { + if (m_Journal.Count() >= 128) { Fail("bounded journal evidence map exhausted"); return; } + entry = new ERR_NativeResponseJournal(); m_Journal.Insert(messageId, entry); + } + if (kind == "REPORT") entry.Report = true; + if (kind == "TRANSMIT") { entry.Transmit = true; if (message.StartsWith("HQ -> ")) entry.HQTransmit = true; } + if (kind == "RECEIVE") { if (message.StartsWith("HQ received from ")) entry.HQReceive = true; else if (message.StartsWith("unit ")) entry.UnitReceive = true; } + if (kind == "ORDER DELIVERED") entry.Delivered = true; + } + void Observed(ERR_HQ hq, ERR_HQUnit unit, float now) + { + if (!m_Started || m_Stopped || hq != m_HQ || unit != m_Source || unit.PendingReport.Target != m_Player) return; + ERR_HQReport report = unit.PendingReport; + ERR_NativeResponseUnit original = Original(unit); + IEntity observer = unit.Utility.ERR_ResponseVisualObserver(report, now); + if (!Canonical() || !original || !original.Actors.Contains(observer) || !unit.Uplink || unit.Uplink.Nodes.IsEmpty() || unit.Uplink.Nodes[0].Carrier != unit.Radio || unit.Uplink.MessageId != report.MessageId || unit.Radio != original.Radio || !original.Actors.Contains(unit.Radio) || report.Source != original.Group || report.ObservedAt > now || Report(report.MessageId)) { Fail("real observed report lacks canonical original observer/radio/source lineage"); return; } + if (m_Reports.Count() >= 32) { Fail("bounded report evidence exhausted"); return; } + ERR_NativeResponseLineage proof = new ERR_NativeResponseLineage(); proof.Report = report.Snapshot(); proof.Source = unit; proof.Observer = observer; proof.SourceRadio = unit.Radio; proof.Uplink = unit.Uplink; m_Reports.Insert(proof); + PrintFormat("ERR HQ RESPONSE SIGHTING: source=%1 report=M%2 observer=%3 radio=%4 target=%5 observedAt=%6; actual native visual sample", unit.Id, report.MessageId, observer, unit.Radio, m_Player, report.ObservedAt); + } + void Accepted(ERR_HQ hq, ERR_HQReport report, float now) + { + if (!m_Started || m_Stopped || hq != m_HQ) return; + ERR_NativeResponseLineage proof = Report(report.MessageId); if (!proof) return; + if (report.Target != m_Player || report.Source != proof.Report.Source || report.ObservedAt != proof.Report.ObservedAt || vector.Distance(report.Position, proof.Report.Position) > 0.01 || !proof.Uplink || proof.Uplink.Failed || proof.Uplink.Sending || proof.Uplink.Cursor < proof.Uplink.Nodes.Count()) { Fail("accepted report lacks completed actual uplink or immutable observed time"); return; } + proof.Accepted = true; proof.AcceptedAt = now; + } + void Delivered(ERR_HQ hq, ERR_HQUnit unit, ERR_HQRoute route, float now) + { + if (!m_Started || m_Stopped || hq != m_HQ || !unit.Assignment) return; + ERR_NativeResponseLineage proof = Report(unit.Assignment.MessageId); if (!proof || proof.Recipient) return; + ERR_NativeResponseUnit original = Original(unit); + if (!proof.Accepted || !original || unit == proof.Source || !unit.Assignment || !unit.Waypoint) { Fail("delivered response lacks accepted original recipient/order"); return; } + if (unit.Assignment.Target != m_Player || unit.Assignment.Source != proof.Report.Source || unit.Assignment.ObservedAt != proof.Report.ObservedAt || vector.Distance(unit.Assignment.Position, proof.Report.Position) > 0.01) { Fail("delivered response changed immutable report"); return; } + if (unit.Radio != original.Radio || !original.Actors.Contains(unit.Radio) || !route.Downlink || route.Nodes.IsEmpty()) { Fail("delivered response lacks original radio/downlink"); return; } + ERR_HQRadioNode recipientNode = route.Nodes[route.Nodes.Count() - 1]; + if (recipientNode.Carrier != unit.Radio || route.Failed || route.Sending || route.Cursor != route.Nodes.Count() - 1) { Fail("delivered response lacks completed actual recipient downlink"); return; } + proof.Recipient = unit; proof.RecipientRadio = unit.Radio; proof.DeliveryId = route.MessageId; proof.Waypoint = unit.Waypoint; proof.DeliveredAt = now; + foreach (IEntity actor : original.Actors) if (ERR_Actors.CanFight(actor)) { proof.MovingActor = actor; break; } + if (proof.MovingActor) proof.DeliveredOrigin = proof.MovingActor.GetOrigin(); + PrintFormat("ERR HQ RESPONSE DELIVERED: report=M%1 downlink=M%2 source=%3 recipient=%4 radio=%5 waypoint=%6 observedAt=%7", proof.Report.MessageId, route.MessageId, proof.Source.Id, unit.Id, unit.Radio, unit.Waypoint, unit.Assignment.ObservedAt); + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (!Enabled() || s_Active != this || !m_Mode || !m_Mode.Active() || !m_HQ || now > m_Deadline || m_Failed) { Check(false, "bounded active evidence context: " + m_Failure); return -1; } + if (!m_Started) + { + if (!m_HQ.ERR_ProbeSquadsReady()) return 0; + array guns = {}; m_HQ.Mortars().AppendGuns(guns); + foreach (IEntity gun : guns) { ERR_MortarBattery battery = m_HQ.Mortars().FindGun(gun); if (!battery || !battery.StartupActivated || !battery.Operational() || !m_HQ.MortarConnected(battery.Group)) return 0; } + if (!Check(Arrange(), "original physical force, RTOs and canonical prisoner captured before arranged sighting")) return -1; + return 0; + } + if (!Canonical() || !UnchangedForces()) { Check(false, "canonical player and all original physical group/actor identities retained without added force"); return -1; } + if (now >= m_NextDiagnostic) + { + PrintFormat("ERR HQ RESPONSE PROOF: observed source reports=%1; %2", m_Reports.Count(), m_HQ.ERR_ProbePerception()); m_NextDiagnostic = now + 10000; + } + foreach (ERR_NativeResponseLineage proof : m_Reports) + { + if (!proof.Recipient || !proof.MovingActor) continue; + if (proof.Recipient.Waypoint != proof.Waypoint || !proof.Recipient.Assignment || proof.Recipient.Assignment.MessageId != proof.Report.MessageId) continue; + ERR_NativeResponseJournal uplink = m_Journal.Get(proof.Report.MessageId); + ERR_NativeResponseJournal downlink = m_Journal.Get(proof.DeliveryId); + if (!uplink || !downlink || !uplink.Report || !uplink.Transmit || !uplink.HQReceive || !downlink.HQTransmit || !downlink.UnitReceive || !downlink.Delivered) continue; + if (proof.Recipient.Group.GetCurrentWaypoint() != proof.Waypoint || vector.DistanceXZ(proof.MovingActor.GetOrigin(), proof.DeliveredOrigin) < 3) continue; + if (vector.DistanceXZ(proof.MovingActor.GetOrigin(), proof.Report.Position) >= vector.DistanceXZ(proof.DeliveredOrigin, proof.Report.Position) - 1) continue; + if (!Check(proof.SourceRadio && proof.RecipientRadio && m_HQ.ERR_ProbeUniqueAssignments(), "actual sighting/report/uplink/HQ receipt/downlink journal lineage reaches distinct original infantry with bounded unique waypoints")) return -1; + if (!Check(UnchangedForces(), "original recipient physically moves toward its native Search waypoint with no replacement or additional force")) return -1; + Stop(); return 1; + } + return 0; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Protected && m_Damage) m_Damage.EnableDamageHandling(m_DamageWasEnabled); + m_Protected = false; + if (s_Active == this) s_Active = null; + } + void ~ERR_NativeHQResponseProof() { Stop(); } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c new file mode 100644 index 0000000..74516fd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c @@ -0,0 +1,10 @@ +#ifdef WORKBENCH +modded class ERR_MortarSystem +{ + ERR_MortarBattery ERR_ProbeBattery() + { + if (m_Batteries.Count() != 1) return null; + return m_Batteries[0]; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c new file mode 100644 index 0000000..c237258 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c @@ -0,0 +1,114 @@ +// Opt-in engine fixture: physical radios and production delivery routes only. +#ifdef WORKBENCH +modded class ERR_HQ +{ + vector ERR_ProbeResponseOrigin() + { + foreach (ERR_HQUnit unit : m_Units) + if (!unit.ReservedForSupport && unit.Group) return unit.Group.GetOrigin() + "0 0 20"; + return vector.Zero; + } + bool ERR_ProbeDeliveredResponse() + { + foreach (ERR_HQUnit unit : m_Units) + if (unit.Assignment && unit.Waypoint && unit.Group != unit.Assignment.Source) return true; + return false; + } + bool ERR_ProbeUniqueAssignments() + { + array waypoints = {}; + foreach (ERR_HQUnit unit : m_Units) + { + if (!unit.Waypoint) continue; + if (!unit.Assignment || waypoints.Contains(unit.Waypoint)) return false; + waypoints.Insert(unit.Waypoint); + } + return waypoints.Count() > 0 && Assigned() <= m_Mode.Settings().Get("supportSquadLimit"); + } + string ERR_ProbePerception() + { + int targets, sightings, radios; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.Radio) radios++; + if (!unit.Utility) continue; + array samples = {}; + ERR_HQObservation.Gather(unit.Utility, GetGame().GetWorld().GetWorldTime(), samples); + sightings += samples.Count(); + if (unit.Utility.m_Perception) targets += unit.Utility.m_Perception.m_aTargets.Count(); + } + return string.Format("%1; radios=%2 targets=%3 fresh visual samples=%4", Status(), radios, targets, sightings); + } + ERR_HQRoute ERR_ProbeRoute(IEntity carrier = null, bool downlink = false) + { + if (carrier) return m_Network.Route(carrier, downlink); + foreach (ERR_HQUnit unit : m_Units) + if (unit.Radio) return m_Network.Route(unit.Radio, downlink); + return null; + } + bool ERR_ProbeSquadsReady() + { + int infantry; + foreach (ERR_HQUnit unit : m_Units) + { + if (unit.ReservedForSupport) continue; + infantry++; + if (!unit.Group || ERR_HQRadio.Capability(unit.Radio) != 2) return false; + array agents = {}; + unit.Group.GetAgents(agents); + if (agents.Count() != 6) return false; + } + return infantry == 6; + } +} + +class ERR_NativeRadioProbe +{ + protected ref ERR_HQRoute m_Route; + protected IEntity m_Carrier; + protected int m_Step; + + int Tick(ERR_HQ hq, float now) + { + if (!hq) return -1; + if (m_Step == 0) + { + if (!hq.ERR_ProbeSquadsReady()) return 0; + Print("ERR SMOKE PASS: six physical six-person squads each have a manpack operator"); + m_Route = hq.ERR_ProbeRoute(); + if (!m_Route || m_Route.Nodes.IsEmpty()) return -1; + m_Carrier = m_Route.Nodes[0].Carrier; + m_Route.MessageId = hq.Journal().Message(); + m_Step = 1; + } + int result = m_Route.Advance(now, hq.Journal()); + if (result == 0) return 0; + if (m_Step == 3) + { + if (result >= 0) return -1; + Print("ERR SMOKE PASS: removing receiving manpack interrupts an in-flight HQ order"); + return 1; + } + if (result < 0) return -1; + if (m_Step == 1) Print("ERR SMOKE PASS: physical manpack uplink delivers to HQ"); + if (m_Step == 2) Print("ERR SMOKE PASS: HQ downlink delivers to a physical receiver"); + m_Route = hq.ERR_ProbeRoute(m_Carrier, true); + if (!m_Route || m_Route.Nodes.IsEmpty()) return -1; + m_Route.MessageId = hq.Journal().Message(); + m_Step++; + if (m_Step == 3) + { + // Start HQ transmission, then remove the actual receiving equipment. + if (m_Route.Advance(now, hq.Journal()) != 0) return -1; + IEntity receiver = m_Route.Nodes[0].Carrier; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(receiver.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) return -1; + array items = {}; + inventory.GetItems(items); + foreach (IEntity item : items) + if (item && item.FindComponent(BaseRadioComponent)) SCR_EntityHelper.DeleteEntityAndChildren(item); + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c new file mode 100644 index 0000000..44d021a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c @@ -0,0 +1,506 @@ +// Explicit, local Workbench diagnostic only. Never compiled into game/server builds. +#ifdef WORKBENCH +modded class ERR_GameMode +{ + protected bool m_ERRTestPatrolHQ; + protected ref ERR_NativePatrolProbe m_ERRHQPatrolMovement; + protected ref ERR_NativePatrolHQProbe m_ERRHQPatrolOrder; + protected int m_ERRSmokeStep; + protected float m_ERRSmokeDeadline; + protected float m_ERRSmokeWait; + protected IEntity m_ERRSmokePlayer; + protected BaseDoorComponent m_ERRGate; + protected ERR_LocationComponent m_ERRSmokeRadio; + protected bool m_ERRSmokeDone; + protected bool m_ERRTestLostHelicopter; + protected bool m_ERRTestPlayerDeath; + protected bool m_ERRTestRadioNetwork; + protected bool m_ERRTestHQResponse; + protected bool m_ERRTestMortar; + protected bool m_ERRTestMortarFire; + protected bool m_ERRTestMortarSalvo; + protected ref ERR_NativeMortarSalvoProbe m_ERRMortarSalvo; + protected bool m_ERRTestMortarCourier; + protected ref ERR_NativeMortarCourierProbe m_ERRMortarCourier; + protected bool m_ERRTestMortarTransfer; + protected ref ERR_NativeMortarTransferProbe m_ERRMortarTransfer; + protected ref ERR_NativeMortarFiringProbe m_ERRMortarFire; + protected float m_ERRNextProbeLog; + protected ref ERR_NativeRadioProbe m_ERRRadioProbe; + protected ref ERR_NativeHQResponseProof m_ERRHQResponseProof; + protected ref array m_ERRCacheFolders = {}; + + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + string enabled; + if (SCR_Global.IsEditMode() || !Replication.IsServer() || !System.GetCLIParam("errSmoke", enabled) || enabled != "1") return; + string outcome; + m_ERRTestLostHelicopter = System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "lost-helicopter"; + m_ERRTestRadioNetwork = outcome == "radio-network"; + m_ERRTestHQResponse = outcome == "hq-response"; + m_ERRTestMortar = outcome == "mortar-inventory"; + m_ERRTestMortarFire = outcome == "mortar-fire" || outcome == "mortar-expiry"; + m_ERRTestMortarCourier = outcome == "mortar-courier"; + m_ERRTestMortarSalvo = outcome == "mortar-salvo"; + m_ERRTestMortarTransfer = outcome == "mortar-transfer"; + m_ERRTestPatrolHQ = outcome == "patrol-hq"; + m_ERRTestPlayerDeath = outcome == "player-death" || m_ERRTestRadioNetwork || m_ERRTestHQResponse || m_ERRTestMortar; + m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 150000; + if (m_ERRTestMortarCourier) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 450000; + if (m_ERRTestMortarTransfer) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; + if (m_ERRTestMortarSalvo) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; + if (m_ERRTestMortarFire) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000; + if (m_ERRTestPatrolHQ) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 420000; + OnStop().Insert(ERR_StopHQPatrol); + OnPhaseChanged().Insert(ERR_SmokePhase); + GetGame().GetCallqueue().CallLater(ERR_SmokeTick, 500, true); + Print("ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate"); + } + + protected bool ERR_Check(bool condition, string name) + { + if (condition) { Print("ERR SMOKE PASS: " + name); return true; } + ERR_StopHQPatrol(); + Print("ERR SMOKE FAIL: " + name, LogLevel.ERROR); + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + return false; + } + protected void ERR_StopHQPatrol() + { + if (m_ERRHQResponseProof) m_ERRHQResponseProof.Stop(); + if (m_ERRMortarSalvo) m_ERRMortarSalvo.Stop(); + if (m_ERRMortarCourier) m_ERRMortarCourier.Stop(); + if (m_ERRMortarTransfer) m_ERRMortarTransfer.Stop(); + if (m_ERRMortarFire) m_ERRMortarFire.Stop(); + if (m_ERRHQPatrolMovement) m_ERRHQPatrolMovement.Stop(); + if (m_ERRHQPatrolOrder) m_ERRHQPatrolOrder.Stop(); + } + protected void ERR_MovePlayer(vector position) + { + vector transform[4]; + m_ERRSmokePlayer.GetWorldTransform(transform); + transform[3] = ERR_Actors.Ground(position); + ChimeraCharacter.Cast(m_ERRSmokePlayer).Teleport(transform); + } + protected ERR_UnlockPrisonAction ERR_FindLock(IEntity entity) + { + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(entity.FindComponent(BaseActionsManagerComponent)); + if (manager) + { + array actions = {}; + manager.GetActionsList(actions); + foreach (BaseUserAction action : actions) + { + ERR_UnlockPrisonAction lock = ERR_UnlockPrisonAction.Cast(action); + if (lock) return lock; + } + } + IEntity child = entity.GetChildren(); + while (child) + { + ERR_UnlockPrisonAction lock = ERR_FindLock(child); + if (lock) return lock; + child = child.GetSibling(); + } + return null; + } + protected void ERR_SmokePhase(ERR_Phase previous, ERR_Phase current) + { + if (m_ERRSmokeDone || !ERR_MissionRules.Terminal(current)) return; + if (m_ERRTestMortarSalvo) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 191, "native configured salvo and unchanged-report replay observation complete before reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + ERR_StopHQPatrol(); + Print("ERR SMOKE COMPLETE: native full configured mortar salvo, exact original ammunition and unchanged-report replay refusal; fixture reset requested"); + return; + } + if (m_ERRTestMortarCourier) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 181, "native finite courier reached an exhausted battery before explicit reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + ERR_StopHQPatrol(); + Print("ERR SMOKE COMPLETE: native finite courier, real supply uplink/downlink, original patrol walking and exact physical shell delivery; original 27 shells sequestered in fixture boxes; reset requested"); + return; + } + if (m_ERRTestMortarTransfer) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 161, "native exact shell transfers and original-owner restoration complete before explicit reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + ERR_StopHQPatrol(); + Print("ERR SMOKE COMPLETE: native exact mortar inventory transfer, accepted-operation cancellation and original-owner restoration; radio bypassed; fixture reset requested"); + return; + } + if (m_ERRTestMortarFire) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 151, "native mortar first shot and stop complete before explicit reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + ERR_StopHQPatrol(); + Print("ERR SMOKE COMPLETE: native HQ radio mortar projectile and configured cancellation/expiry; fixture reset requested"); + return; + } + if (m_ERRTestPatrolHQ) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 133, "HQ patrol preemption and physical resumption before explicit reset")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + Print("ERR SMOKE COMPLETE: native HQ patrol preemption and physical resumption"); + return; + } + if (m_ERRTestPlayerDeath) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 91, "death exhausts round life and reaches defeat after spectator grace")) return; + } + else if (m_ERRTestLostHelicopter) + { + if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 8, "lost extraction helicopter causes defeat")) return; + } + else if (!ERR_Check(current == ERR_Phase.VICTORY && m_ERRSmokeStep == 7, "scripted escape reaches victory after physical vehicle occupancy")) return; + m_ERRSmokeDone = true; + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + PrintFormat("ERR SMOKE COMPLETE: terminal=%1 lostHelicopterCase=%2 playerDeathCase=%3", current, m_ERRTestLostHelicopter, m_ERRTestPlayerDeath); + GetGame().GetCallqueue().CallLater(ERR_EndScreenshot, 4000); + } + protected bool ERR_CheckRoster() + { + ERR_PlayerRoster roster = new ERR_PlayerRoster(); + UUID first = "00e77100-0000-0000-0000-000000000101"; + UUID second = "00e77100-0000-0000-0000-000000000202"; + if (!ERR_Check(roster.Bind(101, first) && roster.CanEnter(101, ERR_Phase.PRISON), "new identity may enter prison")) return false; + roster.Spawned(101, m_ERRSmokePlayer); + if (!ERR_Check(!roster.CanEnter(101, ERR_Phase.PRISON), "spawn consumes identity life")) return false; + roster.Disconnect(101); + if (!ERR_Check(roster.HasSurvivor() && !roster.Get(101), "disconnect retains living actor and clears connection")) return false; + if (!ERR_Check(roster.Bind(202, first) && !roster.CanEnter(202, ERR_Phase.PRISON), "reconnected identity retains spent life")) return false; + if (!ERR_Check(!roster.Bind(303, first), "duplicate active identity rejected")) return false; + if (!ERR_Check(roster.Bind(101, second) && roster.CanEnter(101, ERR_Phase.RADIO_DEFENCE) && !roster.CanEnter(101, ERR_Phase.EXTRACTION), "recycled connection receives independent life and extraction admission policy")) return false; + return true; + } + protected bool ERR_CheckCompanionCommands() + { + array replies = {}; + array commands = {"hq interval show", "hq squads show", "hq radius show", "intel carrying show", "intel reveal show"}; + array keys = {"reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "aiIntelChancePercent", "intelRevealChancePercent"}; + for (int i = 0; i < commands.Count(); i++) + { + Admin().Execute(this, true, commands[i], replies); + if (!ERR_Check(replies.Count() == 1 && replies[0] == keys[i] + "=" + Settings().Get(keys[i]).ToString(), "companion command retained: " + commands[i])) return false; + } + Admin().Execute(this, false, "hq log", replies); + if (!ERR_Check(replies.Count() == 1 && replies[0] == "Administrator access required.", "companion journal is behind Core admin authorization")) return false; + Admin().Execute(this, true, "hq show", replies); + ERR_HQ hq = ERR_HQ.Cast(Command()); + if (!ERR_Check(hq && replies.Count() == 1 && replies[0] == hq.Status(), "companion HQ status uses the shared command service")) return false; + return true; + } + protected void ERR_PrisonScreenshot() { System.MakeScreenshot("$logs:err-prison"); } + protected void ERR_EndScreenshot() { System.MakeScreenshot("$logs:err-result"); } + protected void ERR_SmokeTick() + { + float now = GetWorld().GetWorldTime(); + if (m_ERRSmokeDone) return; + if (now > m_ERRSmokeDeadline) { ERR_Check(false, "timeout at step " + m_ERRSmokeStep.ToString()); return; } + if (now < m_ERRSmokeWait) return; + if (m_ERRSmokeStep == 190) + { + int result = m_ERRMortarSalvo.Tick(now); + if (result < 0) { ERR_Check(false, "native complete mortar salvo fixture; inspect source diagnostics"); return; } + if (result == 1) { m_ERRSmokeStep = 191; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRSmokeStep == 180) + { + int result = m_ERRMortarCourier.Tick(now); + if (result < 0) { ERR_Check(false, "native finite courier fixture"); return; } + if (result == 1) { m_ERRSmokeStep = 181; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRSmokeStep == 160) + { + int result = m_ERRMortarTransfer.Tick(now); + if (result < 0) { ERR_Check(false, "native mortar exact-shell transfer fixture"); return; } + if (result == 1) { m_ERRSmokeStep = 161; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRSmokeStep == 150) + { + int result = m_ERRMortarFire.Tick(now); + if (result < 0) { ERR_Check(false, "native mortar firing probe failed; see diagnostics"); return; } + if (result == 1) { m_ERRSmokeStep = 151; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRSmokeStep == 130 || m_ERRSmokeStep == 132) + { + int result = m_ERRHQPatrolMovement.Tick(now); + if (result < 0) { ERR_StopHQPatrol(); GetGame().GetCallqueue().Remove(ERR_SmokeTick); return; } + if (result == 1) + { + if (m_ERRSmokeStep == 130) { m_ERRHQPatrolOrder = new ERR_NativePatrolHQProbe(this); m_ERRSmokeStep = 131; } + else { m_ERRSmokeStep = 133; Transition(ERR_Phase.DEFEAT); } + } + return; + } + if (m_ERRSmokeStep == 131) + { + int result = m_ERRHQPatrolOrder.Tick(now); + if (result < 0) { ERR_StopHQPatrol(); GetGame().GetCallqueue().Remove(ERR_SmokeTick); return; } + if (result == 1) { m_ERRHQPatrolMovement = new ERR_NativePatrolProbe(this); m_ERRSmokeStep = 132; } + return; + } + if (m_ERRSmokeStep == 0) + { + array players = {}; + ERR_Actors.Players(players, true); + if (players.Count() != 1 || Phase() != ERR_Phase.PRISON) return; + m_ERRSmokePlayer = players[0]; + if (!ERR_CheckRoster() || !ERR_NativeContractsProbe.Run(this, m_ERRSmokePlayer) || !ERR_CheckCompanionCommands()) return; + if (m_ERRTestPatrolHQ) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRHQPatrolMovement = new ERR_NativePatrolProbe(this); + m_ERRSmokeStep = 130; + return; + } + if (m_ERRTestMortarSalvo) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRMortarSalvo = new ERR_NativeMortarSalvoProbe(this); + m_ERRSmokeStep = 190; + return; + } + if (m_ERRTestMortarCourier) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRMortarCourier = new ERR_NativeMortarCourierProbe(this); + m_ERRSmokeStep = 180; + return; + } + if (m_ERRTestMortarTransfer) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRMortarTransfer = new ERR_NativeMortarTransferProbe(this); + m_ERRSmokeStep = 160; + return; + } + if (m_ERRTestMortarFire) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRMortarFire = new ERR_NativeMortarFiringProbe(this); + m_ERRSmokeStep = 150; + return; + } + if (m_ERRTestMortar) + { + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRSmokeStep = 120; + return; + } + if (m_ERRTestHQResponse) + { + m_ERRHQResponseProof = new ERR_NativeHQResponseProof(this, m_ERRSmokePlayer); + m_ERRSmokeStep = 110; + return; + } + if (m_ERRTestRadioNetwork) + { + m_ERRRadioProbe = new ERR_NativeRadioProbe(); + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRSmokeStep = 100; + return; + } + if (m_ERRTestPlayerDeath) + { + m_ERRSmokeStep = 9; + SCR_CharacterDamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(SCR_CharacterDamageManagerComponent)).Kill(Instigator.CreateInstigator(m_ERRSmokePlayer)); + m_ERRSmokeWait = now + 4000; + return; + } + DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + if (!ERR_Check(vector.DistanceXZ(m_ERRSmokePlayer.GetOrigin(), PrisonPosition()) < 5, "initial prisoner position")) return; + foreach (ERR_LocationComponent location : m_Locations) + if (location.Kind() == ERR_LocationKind.RADIO) m_ERRSmokeRadio = location; + if (!ERR_Check(m_ERRSmokeRadio && ERR_Actors.Alive(ExtractionVehicle()), "radio and extraction vehicle exist")) return; + ERR_UnlockPrisonAction lock; + foreach (IEntity tracked : m_OwnedEntities) + { + if (tracked) lock = ERR_FindLock(tracked); + if (lock) break; + } + if (!ERR_Check(lock != null, "authored gate exposes lock action")) return; + ERR_MovePlayer(lock.GetOwner().GetOrigin() + "1 0 1"); + vector gateLow, gateHigh; + lock.GetOwner().GetWorldBounds(gateLow, gateHigh); + PrintFormat("ERR GEOMETRY: gate low=%1 high=%2", gateLow, gateHigh); + IEntity wall = lock.GetOwner().GetParent().GetChildren(); + while (wall) + { + vector wallLow, wallHigh; + wall.GetWorldBounds(wallLow, wallHigh); + PrintFormat("ERR GEOMETRY: child origin=%1 low=%2 high=%3", wall.GetOrigin(), wallLow, wallHigh); + wall = wall.GetSibling(); + } + GetGame().GetCallqueue().CallLater(ERR_PrisonScreenshot, 2000); + if (!ERR_Check(lock.CanBePerformedScript(m_ERRSmokePlayer), "lock permits prisoner")) return; + m_ERRGate = BaseDoorComponent.Cast(lock.GetOwner().FindComponent(BaseDoorComponent)); + lock.PerformAction(lock.GetOwner(), m_ERRSmokePlayer); + if (!ERR_Check(Phase() == ERR_Phase.RADIO_SEARCH, "lock action advances mission")) return; + array cacheStock = {}; + ERR_Inventory.Items(InventoryStorageManagerComponent.Cast(Sites().Find("everon-supply-1").Container.FindComponent(InventoryStorageManagerComponent)), cacheStock); + foreach (IEntity tracked : cacheStock) + { + if (tracked && tracked.GetPrefabData() && tracked.GetPrefabData().GetPrefabName() == ERR_Resources.ObjectiveDocument()) m_ERRCacheFolders.Insert(tracked); + } + if (!ERR_Check(m_ERRCacheFolders.Count() == 2, "two guaranteed physical cache documents")) return; + if (!ERR_Check(m_Settings.Set("aiIntelChancePercent", 0), "test does not rely on random intel")) return; + if (!ERR_Check(m_Settings.Set("radioDefenceSeconds", 30), "isolated test profile defence duration")) return; + m_ERRSmokeStep = 1; + } + else if (m_ERRSmokeStep == 1 || m_ERRSmokeStep == 2) + { + if (m_ERRSmokeStep == 2 && !ERR_Check(m_ERRGate && m_ERRGate.IsOpen() && m_ERRGate.CanCharacterPass(0.6), "unlocked gate physically permits passage")) return; + ERR_MovePlayer(Sites().Find("everon-supply-1").Container.GetOrigin() + "0 0 2"); + SCR_InventoryStorageManagerComponent inventory = SCR_InventoryStorageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(SCR_InventoryStorageManagerComponent)); + InventoryStorageManagerComponent source = InventoryStorageManagerComponent.Cast(Sites().Find("everon-supply-1").Container.FindComponent(InventoryStorageManagerComponent)); + BaseInventoryStorageComponent destination = inventory.FindStorageForItem(m_ERRCacheFolders[m_ERRSmokeStep - 1]); + if (!ERR_Check(destination && source.TryMoveItemToStorage(m_ERRCacheFolders[m_ERRSmokeStep - 1], destination), "authored cache document recovered into inventory")) return; + m_ERRSmokeStep++; + m_ERRSmokeWait = now + 2500; + } + else if (m_ERRSmokeStep == 3) + { + if (!ERR_Check(m_ERRSmokeRadio.Knowledge() == 2, "carried intel identifies radio through intel service")) return; + if (!ERR_Check(!TuneRadio(m_ERRSmokePlayer, m_ERRSmokeRadio), "radio rejects distant player")) return; + ERR_MovePlayer(m_ERRSmokeRadio.Position() + "2 0 0"); + m_ERRSmokeStep = 30; + m_ERRSmokeWait = now + 1000; + } + else if (m_ERRSmokeStep == 30) + { + PrintFormat("ERR SMOKE: radio=%1 player=%2", m_ERRSmokeRadio.Position(), m_ERRSmokePlayer.GetOrigin()); + if (!ERR_Check(TuneRadio(m_ERRSmokePlayer, m_ERRSmokeRadio), "identified radio starts defence")) return; + m_ERRSmokeStep = 4; + m_ERRSmokeWait = now + 3000; + } + else if (m_ERRSmokeStep == 4) + { + if (!ERR_Check(DefenceOccupied(), "occupied defence timer running")) return; + ERR_MovePlayer(m_ERRSmokeRadio.Position() + "90 0 0"); + m_ERRSmokeStep = 5; + m_ERRSmokeWait = now + 2500; + } + else if (m_ERRSmokeStep == 5) + { + if (!ERR_Check(!DefenceOccupied() && Phase() == ERR_Phase.RADIO_DEFENCE, "leaving area resets defence")) return; + ERR_MovePlayer(m_ERRSmokeRadio.Position() + "2 0 0"); + m_ERRSmokeStep = 6; + m_ERRSmokeWait = now + 33000; + } + else if (m_ERRSmokeStep == 6) + { + if (!ERR_Check(Phase() == ERR_Phase.EXTRACTION, "continuous occupied defence completes")) return; + if (m_ERRTestLostHelicopter) + { + m_ERRSmokeStep = 8; + ERR_Actors.DeleteSpawned(ExtractionVehicle()); + return; + } + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_ERRSmokePlayer.FindComponent(CompartmentAccessComponent)); + BaseCompartmentSlot slot = access.FindFreeCompartment(ExtractionVehicle(), ECompartmentType.PILOT); + if (!ERR_Check(slot && access.GetInVehicle(ExtractionVehicle(), slot, true, -1, ECloseDoorAfterActions.INVALID, false), "boarding extraction vehicle")) return; + m_ERRSmokeStep = 7; + m_ERRSmokeWait = now + 3000; + } + else if (m_ERRSmokeStep == 120) + { + ERR_MortarBattery battery = ERR_MortarSystem.Get().ERR_ProbeBattery(); + if (!battery || !battery.StartupActivated) return; + if (!ERR_Check(battery.Operational() && battery.Group.GetAgentsCount() == 4, "authored physical mortar and four-person crew initialize")) return; + if (!ERR_Check(ERR_HQRadio.Capability(battery.RadioOperator) == 2, "mortar has a dedicated physical manpack operator")) return; + if (!ERR_Check(battery.CountShells() == 27, "mortar starts with exactly 27 physical HE shells")) return; + array agents = {}; + battery.Group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(agent.GetControlledEntity().FindComponent(InventoryStorageManagerComponent)); + array items = {}; + ERR_Inventory.Items(inventory, items); + foreach (IEntity item : items) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_MortarBattery.SHELL) SCR_EntityHelper.DeleteEntityAndChildren(item); + } + m_ERRSmokeStep = 121; + m_ERRSmokeWait = now + 15000; + } + else if (m_ERRSmokeStep == 121) + { + ERR_MortarBattery battery = ERR_MortarSystem.Get().ERR_ProbeBattery(); + if (!ERR_Check(battery.CountShells() == 0 && battery.TotalShots == 0, "depleted mortar inventory stays empty without fabricated ammunition")) return; + ERR_Actors.DeleteSpawned(battery.Gun); + ERR_Actors.DeleteSpawned(battery.Group); + m_ERRSmokeStep = 122; + m_ERRSmokeWait = now + 12000; + } + else if (m_ERRSmokeStep == 122) + { + ERR_MortarBattery battery = ERR_MortarSystem.Get().ERR_ProbeBattery(); + if (!ERR_Check(battery && !battery.Gun && !battery.Group && !battery.Operational(), "lost mortar and crew remain lost without replacement spawning")) return; + m_ERRSmokeStep = 9; + SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(SCR_CharacterDamageManagerComponent)); + damage.EnableDamageHandling(true); + damage.Kill(Instigator.CreateInstigator(m_ERRSmokePlayer)); + m_ERRSmokeWait = now + 4000; + } + else if (m_ERRSmokeStep == 110) + { + int result = m_ERRHQResponseProof.Tick(now); + if (result < 0) { ERR_Check(false, "native HQ response evidence failed; inspect report lineage diagnostics"); return; } + if (result == 0) return; + m_ERRSmokeStep = 9; + SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(SCR_CharacterDamageManagerComponent)); + damage.EnableDamageHandling(true); + damage.Kill(Instigator.CreateInstigator(m_ERRSmokePlayer)); + m_ERRSmokeWait = now + 4000; + } + else if (m_ERRSmokeStep == 100) + { + int result = m_ERRRadioProbe.Tick(ERR_HQ.Cast(Command()), now); + if (result == 0) return; + if (!ERR_Check(result == 1, "native radio delivery and interruption sequence")) return; + m_ERRSmokeStep = 9; + SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(SCR_CharacterDamageManagerComponent)); + damage.EnableDamageHandling(true); + damage.Kill(Instigator.CreateInstigator(m_ERRSmokePlayer)); + m_ERRSmokeWait = now + 4000; + } + else if (m_ERRSmokeStep == 9) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!ERR_Check(!ERR_Actors.Alive(m_ERRSmokePlayer), "native damage kills prisoner")) return; + if (!ERR_Check(controller && controller.ERR_ObserverState() == ERR_ObserverReason.SPENT_LIFE, "death selects spectator without another life")) return; + if (!ERR_Check(controller.ERR_HasObserverCamera() && SCR_ManualCamera.Cast(GetGame().GetCameraManager().CurrentCamera()), "spectator camera activates after native death")) return; + m_ERRSmokeStep = 91; + } + else if (m_ERRSmokeStep == 7) + { + if (!ERR_Check(CompartmentAccessComponent.GetVehicleIn(m_ERRSmokePlayer) == ExtractionVehicle(), "physical extraction occupancy")) return; + // Controlled transport tests the boundary detector, not piloting skill. + ExtractionVehicle().SetOrigin(m_EscapeCenter + Vector(m_EscapeRadius + 100, 300, 0)); + m_ERRSmokeWait = now + 5000; + } + } + void ~ERR_GameMode() + { + if (GetGame()) + { + GetGame().GetCallqueue().Remove(ERR_SmokeTick); + GetGame().GetCallqueue().Remove(ERR_PrisonScreenshot); + GetGame().GetCallqueue().Remove(ERR_EndScreenshot); + } + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c new file mode 100644 index 0000000..bc6fb76 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c @@ -0,0 +1,16 @@ +#ifndef WORKBENCH +modded class ArmaReforgerScripted +{ + override protected ResourceName ERR_DiagnosticHeader(string project) + { + if (project == "chat") return "{C1E20667DCE324ED}Missions/ERR_Everon.conf"; + return super.ERR_DiagnosticHeader(project); + } + + override protected string ERR_DiagnosticAddon(string project) + { + if (project == "chat") return "FA804F411BDDF2C6"; + return super.ERR_DiagnosticAddon(project); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c new file mode 100644 index 0000000..2702220 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c @@ -0,0 +1,51 @@ +[WorkbenchPluginAttribute(name: "Validate Rereintroduced scenario", wbModules: {"WorldEditor"})] +class ERR_ValidateWorldPlugin : WorldEditorPlugin +{ + protected bool m_Obstructed; + protected bool CheckClearance(IEntity entity) + { + if (entity && entity.GetVObject()) m_Obstructed = true; + return !m_Obstructed; + } + override void Run() { Validate(); } + override void RunCommandline() { Validate(); } + protected void Validate() + { + WorldEditor editor = Workbench.GetModule(WorldEditor); + if (!editor) { Print("ERR VALIDATION: World Editor missing", LogLevel.ERROR); return; } + WorldEditorAPI api = editor.GetApi(); + if (!api) { Print("ERR VALIDATION: world API missing", LogLevel.ERROR); return; } + PrintFormat("ERR VALIDATION: prison terrain=%1, radio terrain=%2, extraction terrain=%3", api.GetTerrainSurfaceY(6090,7160), api.GetTerrainSurfaceY(6500,7200), api.GetTerrainSurfaceY(7000,7500)); + for (int dx = -6; dx <= 6; dx += 3) + for (int dz = -6; dz <= 6; dz += 3) + PrintFormat("ERR TERRAIN: x=%1 z=%2 y=%3", 6090 + dx, 7160 + dz, api.GetTerrainSurfaceY(6090 + dx, 7160 + dz)); + float bestSlope = 1000; + vector bestPosition; + for (int x = 5800; x <= 6200; x += 10) + { + for (int z = 6800; z <= 7200; z += 10) + { + float low = 10000; + float high = -10000; + for (int sx = -9; sx <= 9; sx += 3) + for (int sz = -15; sz <= 9; sz += 3) + { + float height = api.GetTerrainSurfaceY(x + sx, z + sz); + low = Math.Min(low, height); + high = Math.Max(high, height); + } + if (low > 5 && high - low < bestSlope) + { + m_Obstructed = false; + api.GetWorld().QueryEntitiesByAABB(Vector(x - 10, low + 0.1, z - 16), Vector(x + 10, high + 5, z + 10), CheckClearance); + if (m_Obstructed) continue; + bestSlope = high - low; + bestPosition = Vector(x, api.GetTerrainSurfaceY(x, z), z); + } + } + } + PrintFormat("ERR SITE CANDIDATE: position=%1 elevationRange=%2", bestPosition, bestSlope); + string play; + if (System.GetCLIParam("errPlay", play) && play == "1") editor.SwitchToGameMode(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/addon.gproj new file mode 100644 index 0000000..d2e277c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/chat/addon.gproj @@ -0,0 +1,12 @@ +GameProject { + ID "ERR_Chat" + GUID "FA804F411BDDF2C6" + TITLE "Escapists Rereintroduced - Chat" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + "5192138CB9D5B911" + "D31039C7C53E348A" + "9AAEE9041D79809E" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf new file mode 100644 index 0000000..e15dc4b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf @@ -0,0 +1,136 @@ +ERR_ScenarioDefinition { + MinimumRadioSources 2 + Sites { + ERR_SiteDefinition { + Id "everon-prison-1" + Label "Prison" + Kind 0 + Prefab "{BE6B8D56349038A6}Prefabs/ERR/Prison.et" + Position 6090 0 7160 + Guarded 1 + GuardOffset 35 0 0 + Container "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + ContainerOffset -4 0 0 + Stock { + ERR_SiteStock { Prefab "{C0F7DD85A86B2900}Prefabs/Weapons/Handguns/PM/Handgun_PM.et" Count 5 } + ERR_SiteStock { Prefab "{8B853CDD11BA916E}Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et" Count 8 } + ERR_SiteStock { Prefab "{13772C903CB5E4F7}Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et" Count 1 } + } + } + ERR_SiteDefinition { + Id "everon-supply-1" + Label "Southern supply cache" + Kind 4 + Prefab "{7C3D16C17C24D351}Prefabs/ERR/SupplySite.et" + Position 6150 0 7050 + Guarded 1 + GuardOffset 18 0 0 + Container "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + ContainerOffset 0 0 0 + Stock { + ERR_SiteStock { Prefab "{FA5C25BF66A53DCF}Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et" Count 8 } + ERR_SiteStock { Prefab "{BBB50A815A2F916B}Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et" Count 16 } + ERR_SiteStock { Prefab "{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et" Count 12 } + ERR_SiteStock { Prefab "{554159A6740C3F3E}Prefabs/ERR/ObjectiveDocument.et" Count 2 TargetId "everon-radio-1" } + } + RevealOnEscape 1 + } + ERR_SiteDefinition { + Id "everon-radio-1" + Label "Radio station" + DiscoverRadius 8 + Kind 1 + Prefab "{F7E7E3D6ACF0C860}Prefabs/ERR/Radio.et" + Position 6500 0 7200 + Guarded 1 + GuardOffset 30 0 0 + } + ERR_SiteDefinition { + Id "everon-extraction-1" + Label "Initial helicopter pickup site" + Kind 2 + Prefab "{033503110AC34EAC}Prefabs/ERR/Extraction.et" + Position 7000 0 7500 + Guarded 1 + GuardOffset 30 0 0 + } + ERR_SiteDefinition { + Id "everon-supply-2" + Label "Western supply cache" + Kind 4 + Prefab "{7C3D16C17C24D351}Prefabs/ERR/SupplySite.et" + Position 5960 0 7220 + Guarded 1 + GuardOffset 16 0 0 + Patrol { + ERR_SitePatrolPoint { Offset 18 0 0 } + ERR_SitePatrolPoint { Offset 18 0 24 } + ERR_SitePatrolPoint { Offset -6 0 24 } + ERR_SitePatrolPoint { Offset -6 0 0 } + } + Container "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + DiscoverRadius 25 + RevealOnEscape 1 + Transport ERR_SiteTransport { + Prefab "{259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et" + Offset 0 0 -8 + Heading 180 + ClearanceRadius 4 + MaximumTerrainRange 1 + } + Stock { + ERR_SiteStock { Prefab "{FA5C25BF66A53DCF}Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et" Count 4 } + ERR_SiteStock { Prefab "{BBB50A815A2F916B}Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et" Count 8 } + ERR_SiteStock { Prefab "{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et" Count 6 } + ERR_SiteStock { Prefab "{554159A6740C3F3E}Prefabs/ERR/ObjectiveDocument.et" Count 2 TargetId "everon-radio-1" } + } + } + ERR_SiteDefinition { + Id "everon-medical-1" + Label "Medical stash" + Kind 4 + Prefab "{7C3D16C17C24D351}Prefabs/ERR/SupplySite.et" + Position 6340 0 7400 + Guarded 0 + GuardOffset 16 0 0 + Container "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + DiscoverRadius 25 + RevealOnEscape 0 + Stock { + ERR_SiteStock { Prefab "{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et" Count 12 } + ERR_SiteStock { Prefab "{527D7C5D2E476BDC}Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et" Count 6 } + ERR_SiteStock { Prefab "{0D9A5DCF89AE7AA9}Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et" Count 6 } + ERR_SiteStock { Prefab "{13772C903CB5E4F7}Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et" Count 3 } + } + } + ERR_SiteDefinition { + Id "everon-outpost-1" + Label "Eastern guard outpost" + Kind 3 + Prefab "{7C3D16C17C24D351}Prefabs/ERR/SupplySite.et" + Position 6740 0 7300 + Guarded 1 + GuardOffset 16 0 0 + Patrol { + ERR_SitePatrolPoint { Offset 18 0 0 } + ERR_SitePatrolPoint { Offset 18 0 24 } + ERR_SitePatrolPoint { Offset -6 0 24 } + ERR_SitePatrolPoint { Offset -6 0 0 } + } + Container "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + DiscoverRadius 35 + RevealOnEscape 0 + Stock { + ERR_SiteStock { Prefab "{FA5C25BF66A53DCF}Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et" Count 2 } + ERR_SiteStock { Prefab "{BBB50A815A2F916B}Prefabs/Weapons/Magazines/Magazine_545x39_AK_30rnd_Ball.et" Count 10 } + ERR_SiteStock { Prefab "{243948B23D90BECB}Prefabs/Items/Equipment/Binoculars/Binoculars_B8/Binoculars_B8.et" Count 2 } + ERR_SiteStock { Prefab "{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et" Count 4 } + } + Props { + ERR_SiteProp { Prefab "{4B6AC1D8701C35A1}Prefabs/ERR/FieldCover.et" Offset 0 0 -4 } + ERR_SiteProp { Prefab "{4B6AC1D8701C35A1}Prefabs/ERR/FieldCover.et" Offset -4 0 0 Angles 90 0 0 } + ERR_SiteProp { Prefab "{4B6AC1D8701C35A1}Prefabs/ERR/FieldCover.et" Offset 4 0 0 Angles 90 0 0 } + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf.meta new file mode 100644 index 0000000..98c7363 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/EveronSites.conf.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{BC310DC0CD27F523}Configs/ERR/EveronSites.conf" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf new file mode 100644 index 0000000..bb80989 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf @@ -0,0 +1,24 @@ +SCR_EntityCatalogMultiList { + m_eEntityCatalogType VEHICLE + m_aMultiLists { + SCR_EntityCatalogMultiListEntry { + m_sIdentifier "Mission transport" + m_aEntities { + SCR_EntityCatalogEntry { + m_sEntityPrefab "{259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et" + m_aEntityDataList { + SCR_EntityCatalogEditorData { m_eValidEditorModes 33 } + SCR_EntityCatalogSpawnerData { m_eSlotTypes 24 } + } + } + SCR_EntityCatalogEntry { + m_sEntityPrefab "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et" + m_aEntityDataList { + SCR_EntityCatalogEditorData { m_eValidEditorModes 33 } + SCR_EntityCatalogSpawnerData { m_eSlotTypes VEHICLE_LARGE } + } + } + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta new file mode 100644 index 0000000..eeeb160 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{E4785D3AF1D043C2}Configs/ERR/Factions/MissionVehicles.conf" + Configurations { + ResourceClass PC {} + ResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf new file mode 100644 index 0000000..8d454a0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf @@ -0,0 +1,277 @@ +SCR_Faction : "{E7B7EA4823DD81F0}Configs/Factions/BLUFOR.conf" { + FactionKey "US" + UIInfo SCR_FactionUIInfo "{528C961236B7DCD3}" { + Name "#AR-Faction_US" + Icon "{EB7F65DBC9392557}UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USA.edds" + m_sNameUpper "#AR-Faction_US-UC" + } + "Identity of soldiers" FactionIdentity "{570D128F4022EF5A}" : "{B600946E9ACC17C2}Configs/Identities/FactionIdentity_US.conf" { + } + "Radio encryption key" "chickenNuggets" + m_sFactionFlag "{46FB2FB2C2125A3C}UI/Textures/Flags/US-flag-base-3it.edds" + m_FactionFlagMaterial "{610803CC3F3D6649}Assets/Props/Fabric/Flags/Data/Flag_1_2_USA.emat" + m_FactionLabel FACTION_US + m_CallsignInfo SCR_FactionCallsignInfo "{5DA0F2A6677ADA9E}" : "{CB7824D572DD0D5C}Configs/Callsigns/Callsigns_US.conf" { + } + m_iFactionRadioFrequency 48000 + m_aEntityCatalogs { + SCR_EntityCatalogMultiList "{5C68A0EE815FA292}" : "{B56E8B4D4B195559}Configs/EntityCatalog/US/Characters_EntityCatalog_US.conf" { + } + SCR_EntityCatalogMultiList "{5C9E82F29B327997}" : "{E4785D3AF1D043C2}Configs/ERR/Factions/MissionVehicles.conf" { + } + SCR_EntityCatalogMultiList "{5C68A0EE8B97CA50}" : "{4E70E7C4C2C17D4A}Configs/EntityCatalog/US/Groups_EntityCatalog_US.conf" { + } + SCR_EntityCatalog "{5C68A0EEB7DB3E84}" : "{0E4B62F186F97C43}Configs/EntityCatalog/US/WeaponTripod_EntityCatalog_US.conf" { + } + SCR_EntityCatalogMultiList "{5C68A0EEB3F124F9}" : "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" { + } + SCR_EntityCatalog "{5C9EDDD37394AD40}" : "{0BF36EFF9FFAF92B}Configs/EntityCatalog/US/SupplyContainerItems_EntityCatalog_US.conf" { + } + } + m_aFlagNames +{ + } + m_aBaseCallsigns { + SCR_MilitaryBaseCallsign "{5C90D92F493E764B}" { + m_sCallsign "#AR-Campaign_PointAlabama" + m_sCallsignShort "#AR-Comm_Variable_Base_Alabama_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Alabama_US_UC" + m_iSignalIndex 0 + } + SCR_MilitaryBaseCallsign "{5C90D92F49F79967}" { + m_sCallsign "#AR-Campaign_PointAlaska" + m_sCallsignShort "#AR-Comm_Variable_Base_Alaska_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Alaska_US_UC" + m_iSignalIndex 1 + } + SCR_MilitaryBaseCallsign "{5C90D92F482DA59B}" { + m_sCallsign "#AR-Campaign_PointArizona" + m_sCallsignShort "#AR-Comm_Variable_Base_Arizona_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Arizona_US_UC" + m_iSignalIndex 2 + } + SCR_MilitaryBaseCallsign "{5C90D92F483330D2}" { + m_sCallsign "#AR-Campaign_PointArkansas" + m_sCallsignShort "#AR-Comm_Variable_Base_Arkansas_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Arkansas_US_UC" + m_iSignalIndex 3 + } + SCR_MilitaryBaseCallsign "{5C90D92F48170DA8}" { + m_sCallsign "#AR-Campaign_PointCalifornia" + m_sCallsignShort "#AR-Comm_Variable_Base_California_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_California_US_UC" + m_iSignalIndex 4 + } + SCR_MilitaryBaseCallsign "{5C90D92F487834E8}" { + m_sCallsign "#AR-Campaign_PointColorado" + m_sCallsignShort "#AR-Comm_Variable_Base_Colorado_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Colorado_US_UC" + m_iSignalIndex 5 + } + SCR_MilitaryBaseCallsign "{5C90D92F48410A86}" { + m_sCallsign "#AR-Campaign_PointConnecticut" + m_sCallsignShort "#AR-Comm_Variable_Base_Connecticut_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Connecticut_US_UC" + m_iSignalIndex 6 + } + SCR_MilitaryBaseCallsign "{5C90D92F48A4E31F}" { + m_sCallsign "#AR-Campaign_PointDelaware" + m_sCallsignShort "#AR-Comm_Variable_Base_Delaware_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Delaware_US_UC" + m_iSignalIndex 7 + } + SCR_MilitaryBaseCallsign "{5C90D92F488C6B57}" { + m_sCallsign "#AR-Campaign_PointFlorida" + m_sCallsignShort "#AR-Comm_Variable_Base_Florida_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Florida_US_UC" + m_iSignalIndex 8 + } + SCR_MilitaryBaseCallsign "{5C90D92F4896F764}" { + m_sCallsign "#AR-Campaign_PointGeorgia" + m_sCallsignShort "#AR-Comm_Variable_Base_Georgia_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Georgia_US_UC" + m_iSignalIndex 9 + } + SCR_MilitaryBaseCallsign "{5C90D92F48FBD90E}" { + m_sCallsign "#AR-Campaign_PointHawaii" + m_sCallsignShort "#AR-Comm_Variable_Base_Hawaii_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Hawaii_US_UC" + m_iSignalIndex 10 + } + SCR_MilitaryBaseCallsign "{5C90D92F48DFF562}" { + m_sCallsign "#AR-Campaign_PointIdaho" + m_sCallsignShort "#AR-Comm_Variable_Base_Idaho_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Idaho_US_UC" + m_iSignalIndex 11 + } + SCR_MilitaryBaseCallsign "{5C90D92F7724C851}" { + m_sCallsign "#AR-Campaign_PointIllinois" + m_sCallsignShort "#AR-Comm_Variable_Base_Illinois_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Illinois_US_UC" + m_iSignalIndex 12 + } + SCR_MilitaryBaseCallsign "{5C90D92F77097F3F}" { + m_sCallsign "#AR-Campaign_PointIndiana" + m_sCallsignShort "#AR-Comm_Variable_Base_Indiana_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Indiana_US_UC" + m_iSignalIndex 13 + } + SCR_MilitaryBaseCallsign "{5C90D92F77102B55}" { + m_sCallsign "#AR-Campaign_PointIowa" + m_sCallsignShort "#AR-Comm_Variable_Base_Iowa_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Iowa_US_UC" + m_iSignalIndex 14 + } + SCR_MilitaryBaseCallsign "{5C90D92F777ABD04}" { + m_sCallsign "#AR-Campaign_PointKansas" + m_sCallsignShort "#AR-Comm_Variable_Base_Kansas_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Kansas_US_UC" + m_iSignalIndex 15 + } + SCR_MilitaryBaseCallsign "{5C90D92F775EBBC1}" { + m_sCallsign "#AR-Campaign_PointKentucky" + m_sCallsignShort "#AR-Comm_Variable_Base_Kentucky_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Kentucky_US_UC" + m_iSignalIndex 16 + } + SCR_MilitaryBaseCallsign "{5C90D92F77A28EB6}" { + m_sCallsign "#AR-Campaign_PointLouisiana" + m_sCallsignShort "#AR-Comm_Variable_Base_Louisiana_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Louisiana_US_UC" + m_iSignalIndex 17 + } + SCR_MilitaryBaseCallsign "{5C90D92F77871C23}" { + m_sCallsign "#AR-Campaign_PointMaine" + m_sCallsignShort "#AR-Comm_Variable_Base_Maine_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Maine_US_UC" + m_iSignalIndex 18 + } + SCR_MilitaryBaseCallsign "{5C90D92F77EB96A0}" { + m_sCallsign "#AR-Campaign_PointMaryland" + m_sCallsignShort "#AR-Comm_Variable_Base_Maryland_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Maryland_US_UC" + m_iSignalIndex 19 + } + SCR_MilitaryBaseCallsign "{5C90D92F77CC2518}" { + m_sCallsign "#AR-Campaign_PointMassachusetts" + m_sCallsignShort "#AR-Comm_Variable_Base_Massachusetts_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Massachusetts_US_UC" + m_iSignalIndex 20 + } + SCR_MilitaryBaseCallsign "{5C90D92F77D3715B}" { + m_sCallsign "#AR-Campaign_PointMichigan" + m_sCallsignShort "#AR-Comm_Variable_Base_Michigan_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Michigan_US_UC" + m_iSignalIndex 21 + } + SCR_MilitaryBaseCallsign "{5C90D92F7635D418}" { + m_sCallsign "#AR-Campaign_PointMinnesota" + m_sCallsignShort "#AR-Comm_Variable_Base_Minnesota_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Minnesota_US_UC" + m_iSignalIndex 22 + } + SCR_MilitaryBaseCallsign "{5C90D92F761C3FF2}" { + m_sCallsign "#AR-Campaign_PointMississippi" + m_sCallsignShort "#AR-Comm_Variable_Base_Mississippi_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Mississippi_US_UC" + m_iSignalIndex 23 + } + SCR_MilitaryBaseCallsign "{5C90D92F7660CFAA}" { + m_sCallsign "#AR-Campaign_PointMissouri" + m_sCallsignShort "#AR-Comm_Variable_Base_Missouri_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Missouri_US_UC" + m_iSignalIndex 24 + } + SCR_MilitaryBaseCallsign "{5C90D92F764A6E6B}" { + m_sCallsign "#AR-Campaign_PointMontana" + m_sCallsignShort "#AR-Comm_Variable_Base_Montana_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Montana_US_UC" + m_iSignalIndex 25 + } + SCR_MilitaryBaseCallsign "{5C90D92F76AD4D35}" { + m_sCallsign "#AR-Campaign_PointNebraska" + m_sCallsignShort "#AR-Comm_Variable_Base_Nebraska_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Nebraska_US_UC" + m_iSignalIndex 26 + } + SCR_MilitaryBaseCallsign "{5C90D92F76B1EF3A}" { + m_sCallsign "#AR-Campaign_PointNevada" + m_sCallsignShort "#AR-Comm_Variable_Base_Nevada_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Nevada_US_UC" + m_iSignalIndex 27 + } + SCR_MilitaryBaseCallsign "{5C90D92F7695FF2F}" { + m_sCallsign "#AR-Campaign_PointNewYork" + m_sCallsignShort "#AR-Comm_Variable_Base_NewYork_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_NewYork_US_UC" + m_iSignalIndex 28 + } + SCR_MilitaryBaseCallsign "{5C90D92F76FF94B1}" { + m_sCallsign "#AR-Campaign_PointOhio" + m_sCallsignShort "#AR-Comm_Variable_Base_Ohio_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Ohio_US_UC" + m_iSignalIndex 29 + } + SCR_MilitaryBaseCallsign "{5C90D92F76C68EED}" { + m_sCallsign "#AR-Campaign_PointOklahoma" + m_sCallsignShort "#AR-Comm_Variable_Base_Oklahoma_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Oklahoma_US_UC" + m_iSignalIndex 30 + } + SCR_MilitaryBaseCallsign "{5C90D92F752A9F29}" { + m_sCallsign "#AR-Campaign_PointOregon" + m_sCallsignShort "#AR-Comm_Variable_Base_Oregon_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Oregon_US_UC" + m_iSignalIndex 31 + } + SCR_MilitaryBaseCallsign "{5C90D92F750E6FB9}" { + m_sCallsign "#AR-Campaign_PointPennsylvania" + m_sCallsignShort "#AR-Comm_Variable_Base_Pennsylvania_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Pennsylvania_US_UC" + m_iSignalIndex 32 + } + SCR_MilitaryBaseCallsign "{5C90D92F7517240F}" { + m_sCallsign "#AR-Campaign_PointTexas" + m_sCallsignShort "#AR-Comm_Variable_Base_Texas_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Texas_US_UC" + m_iSignalIndex 33 + } + SCR_MilitaryBaseCallsign "{5C90D92F7574D867}" { + m_sCallsign "#AR-Campaign_PointUtah" + m_sCallsignShort "#AR-Comm_Variable_Base_Utah_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Utah_US_UC" + m_iSignalIndex 34 + } + SCR_MilitaryBaseCallsign "{5C90D92F755C4871}" { + m_sCallsign "#AR-Campaign_PointVermont" + m_sCallsignShort "#AR-Comm_Variable_Base_Vermont_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Vermont_US_UC" + m_iSignalIndex 35 + } + SCR_MilitaryBaseCallsign "{5C90D92F75A0502B}" { + m_sCallsign "#AR-Campaign_PointVirginia" + m_sCallsignShort "#AR-Comm_Variable_Base_Virginia_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Virginia_US_UC" + m_iSignalIndex 36 + } + SCR_MilitaryBaseCallsign "{5C90D92F758ABFD3}" { + m_sCallsign "#AR-Campaign_PointWashington" + m_sCallsignShort "#AR-Comm_Variable_Base_Washington_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Washington_US_UC" + m_iSignalIndex 37 + } + SCR_MilitaryBaseCallsign "{5C90D92F75EF8263}" { + m_sCallsign "#AR-Campaign_PointWisconsin" + m_sCallsignShort "#AR-Comm_Variable_Base_Wisconsin_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Wisconsin_US_UC" + m_iSignalIndex 38 + } + SCR_MilitaryBaseCallsign "{5C90D92F75F0F224}" { + m_sCallsign "#AR-Campaign_PointWyoming" + m_sCallsignShort "#AR-Comm_Variable_Base_Wyoming_US" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Wyoming_US_UC" + m_iSignalIndex 39 + } + } + m_FactionHomeTerritoryConfig SCR_FactionHomeTerritoryConfig "{5AEE94D54FB58C33}" : "{B548A5B264939A98}Configs/Identities/Territories/FactionHomeTerritory_US.conf" { + } +} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf.meta new file mode 100644 index 0000000..340f26d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/US.conf.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{5C67A1DDE0044806}Configs/ERR/Factions/US.conf" + Configurations { + ResourceClass PC {} + ResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf new file mode 100644 index 0000000..53e7886 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf @@ -0,0 +1,276 @@ +SCR_Faction : "{B122E3B10BB3404B}Configs/Factions/OPFOR.conf" { + FactionKey "USSR" + UIInfo SCR_FactionUIInfo "{528C96127F8B6B08}" { + Name "#AR-Faction_USSR" + Icon "{40B12B0DF911B856}UI/Textures/Editor/EditableEntities/Factions/EditableEntity_Faction_USSR.edds" + m_sNameUpper "#AR-Faction_USSR-UC" + } + "Identity of soldiers" FactionIdentity "{570CFDC6685B6B25}" : "{FBBCD73926989580}Configs/Identities/FactionIdentity_USSR.conf" { + } + "Radio encryption key" "coldBorscht" + m_sFactionFlag "{50824EB9F2C215AB}UI/Textures/Flags/USSR-flag-base-3it.edds" + m_FactionFlagMaterial "{B47B52D9DA68905D}Assets/Props/Fabric/Flags/Data/Flag_1_2_SovietArmy.emat" + m_FactionLabel FACTION_USSR + m_CallsignInfo SCR_FactionCallsignInfo "{5DA0F2A67DFB8809}" : "{958043CE1648EC43}Configs/Callsigns/Callsigns_USSR.conf" { + } + m_iFactionRadioFrequency 42000 + m_aEntityCatalogs { + SCR_EntityCatalogMultiList "{5C68A0E9BD5E5DD9}" : "{3B679F1799D55F6F}Configs/EntityCatalog/USSR/Characters_EntityCatalog_USSR.conf" { + } + SCR_EntityCatalogMultiList "{5C9E82F285C09E24}" : "{E4785D3AF1D043C2}Configs/ERR/Factions/MissionVehicles.conf" { + } + SCR_EntityCatalogMultiList "{5C68A0E9B9AA3C2D}" : "{37D5B75AAC3E72EA}Configs/EntityCatalog/USSR/Groups_EntityCatalog_USSR.conf" { + } + SCR_EntityCatalog "{5C68A0E9A51460AB}" : "{DDF17C8C140BD1F2}Configs/EntityCatalog/USSR/WeaponTripod_EntityCatalog_USSR.conf" { + } + SCR_EntityCatalogMultiList "{5C68A0E9AFE1E631}" : "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" { + } + SCR_EntityCatalog "{5C9EDDD378BA3298}" : "{B4CA6761AC935808}Configs/EntityCatalog/USSR/SupplyContainerItems_EntityCatalog_USSR.conf" { + } + } + m_iIdentityVoiceSignal 100 + m_aBaseCallsigns { + SCR_MilitaryBaseCallsign "{5C9108F95F3FB520}" { + m_sCallsign "#AR-Campaign_PointArena" + m_sCallsignShort "#AR-Comm_Variable_Base_Arena_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Arena_RU_UC" + m_iSignalIndex 0 + } + SCR_MilitaryBaseCallsign "{5C9108F95F0034DB}" { + m_sCallsign "#AR-Campaign_PointAvrora" + m_sCallsignShort "#AR-Comm_Variable_Base_Avrora_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Avrora_RU_UC" + m_iSignalIndex 1 + } + SCR_MilitaryBaseCallsign "{5C9108F95F6514E7}" { + m_sCallsign "#AR-Campaign_PointBekas" + m_sCallsignShort "#AR-Comm_Variable_Base_Bekas_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Bekas_RU_UC" + m_iSignalIndex 2 + } + SCR_MilitaryBaseCallsign "{5C9108F95F4EE8BF}" { + m_sCallsign "#AR-Campaign_PointBizon" + m_sCallsignShort "#AR-Comm_Variable_Base_Bizon_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Bizon_RU_UC" + m_iSignalIndex 3 + } + SCR_MilitaryBaseCallsign "{5C9108F95F5021F9}" { + m_sCallsign "#AR-Campaign_PointBolero" + m_sCallsignShort "#AR-Comm_Variable_Base_Bolero_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Bolero_RU_UC" + m_iSignalIndex 4 + } + SCR_MilitaryBaseCallsign "{5C9108F95FBA4C89}" { + m_sCallsign "#AR-Campaign_PointCafftan" + m_sCallsignShort "#AR-Comm_Variable_Base_Cafftan_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Cafftan_RU_UC" + m_iSignalIndex 5 + } + SCR_MilitaryBaseCallsign "{5C9108F95F9C00A9}" { + m_sCallsign "#AR-Campaign_PointKaban" + m_sCallsignShort "#AR-Comm_Variable_Base_Kaban_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Kaban_RU_UC" + m_iSignalIndex 6 + } + SCR_MilitaryBaseCallsign "{5C9108F95FE17E10}" { + m_sCallsign "#AR-Campaign_PointConsul" + m_sCallsignShort "#AR-Comm_Variable_Base_Consul_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Consul_RU_UC" + m_iSignalIndex 7 + } + SCR_MilitaryBaseCallsign "{5C9108F95FCBA475}" { + m_sCallsign "#AR-Campaign_PointDimok" + m_sCallsignShort "#AR-Comm_Variable_Base_Dimok_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Dimok_RU_UC" + m_iSignalIndex 8 + } + SCR_MilitaryBaseCallsign "{5C9108F95E2B2963}" { + m_sCallsign "#AR-Campaign_PointEffir" + m_sCallsignShort "#AR-Comm_Variable_Base_Effir_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Effir_RU_UC" + m_iSignalIndex 9 + } + SCR_MilitaryBaseCallsign "{5C9108F95E3040F5}" { + m_sCallsign "#AR-Campaign_PointFakir" + m_sCallsignShort "#AR-Comm_Variable_Base_Fakir_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Fakir_RU_UC" + m_iSignalIndex 10 + } + SCR_MilitaryBaseCallsign "{5C9108F95E17C67D}" { + m_sCallsign "#AR-Campaign_PointGips" + m_sCallsignShort "#AR-Comm_Variable_Base_Gips_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Gips_RU_UC" + m_iSignalIndex 11 + } + SCR_MilitaryBaseCallsign "{5C9108F95E797F8A}" { + m_sCallsign "#AR-Campaign_PointGussar" + m_sCallsignShort "#AR-Comm_Variable_Base_Gussar_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Gussar_RU_UC" + m_iSignalIndex 12 + } + SCR_MilitaryBaseCallsign "{5C9108F95E431F83}" { + m_sCallsign "#AR-Campaign_PointIgla" + m_sCallsignShort "#AR-Comm_Variable_Base_Igla_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Igla_RU_UC" + m_iSignalIndex 13 + } + SCR_MilitaryBaseCallsign "{5C9108F95EA7F87E}" { + m_sCallsign "#AR-Campaign_PointKhek" + m_sCallsignShort "#AR-Comm_Variable_Base_Khek_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Khek_RU_UC" + m_iSignalIndex 14 + } + SCR_MilitaryBaseCallsign "{5C9108F95E88C6B9}" { + m_sCallsign "#AR-Campaign_PointLednik" + m_sCallsignShort "#AR-Comm_Variable_Base_Lednik_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Lednik_RU_UC" + m_iSignalIndex 15 + } + SCR_MilitaryBaseCallsign "{5C9108F95EEDE322}" { + m_sCallsign "#AR-Campaign_PointMatros" + m_sCallsignShort "#AR-Comm_Variable_Base_Matros_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Matros_RU_UC" + m_iSignalIndex 16 + } + SCR_MilitaryBaseCallsign "{5C9108F95EF6244A}" { + m_sCallsign "#AR-Campaign_PointMuskat" + m_sCallsignShort "#AR-Comm_Variable_Base_Muskat_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Muskat_RU_UC" + m_iSignalIndex 17 + } + SCR_MilitaryBaseCallsign "{5C9108F95EDAF04A}" { + m_sCallsign "#AR-Campaign_PointNagan" + m_sCallsignShort "#AR-Comm_Variable_Base_Nagan_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Nagan_RU_UC" + m_iSignalIndex 18 + } + SCR_MilitaryBaseCallsign "{5C9108F95D3CCF27}" { + m_sCallsign "#AR-Campaign_PointNitka" + m_sCallsignShort "#AR-Comm_Variable_Base_Nitka_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Nitka_RU_UC" + m_iSignalIndex 19 + } + SCR_MilitaryBaseCallsign "{5C9108F95D076483}" { + m_sCallsign "#AR-Campaign_PointOmega" + m_sCallsignShort "#AR-Comm_Variable_Base_Omega_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Omega_RU_UC" + m_iSignalIndex 20 + } + SCR_MilitaryBaseCallsign "{5C9108F95D68D0F3}" { + m_sCallsign "#AR-Campaign_PointPlazma" + m_sCallsignShort "#AR-Comm_Variable_Base_Plazma_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Plazma_RU_UC" + m_iSignalIndex 21 + } + SCR_MilitaryBaseCallsign "{5C9108F95D4C0F8E}" { + m_sCallsign "#AR-Campaign_PointPolyn" + m_sCallsignShort "#AR-Comm_Variable_Base_Polyn_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Polyn_RU_UC" + m_iSignalIndex 22 + } + SCR_MilitaryBaseCallsign "{5C9108F95D56EEEE}" { + m_sCallsign "#AR-Campaign_PointProlog" + m_sCallsignShort "#AR-Comm_Variable_Base_Prolog_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Prolog_RU_UC" + m_iSignalIndex 23 + } + SCR_MilitaryBaseCallsign "{5C9108F95DBA92EE}" { + m_sCallsign "#AR-Campaign_PointRabkor" + m_sCallsignShort "#AR-Comm_Variable_Base_Rabkor_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Rabkor_RU_UC" + m_iSignalIndex 24 + } + SCR_MilitaryBaseCallsign "{5C9108F95C69680D}" { + m_sCallsign "#AR-Campaign_PointRadon" + m_sCallsignShort "#AR-Comm_Variable_Base_Radon_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Radon_RU_UC" + m_iSignalIndex 25 + } + SCR_MilitaryBaseCallsign "{5C9108F95C4FD930}" { + m_sCallsign "#AR-Campaign_PointSadko" + m_sCallsignShort "#AR-Comm_Variable_Base_Sadko_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Sadko_RU_UC" + m_iSignalIndex 26 + } + SCR_MilitaryBaseCallsign "{5C9108F95C5255FD}" { + m_sCallsign "#AR-Campaign_PointSekret" + m_sCallsignShort "#AR-Comm_Variable_Base_Sekret_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Sekret_RU_UC" + m_iSignalIndex 27 + } + SCR_MilitaryBaseCallsign "{5C9108F95CB621AE}" { + m_sCallsign "#AR-Campaign_PointShtanga" + m_sCallsignShort "#AR-Comm_Variable_Base_Shtanga_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Shtanga_RU_UC" + m_iSignalIndex 28 + } + SCR_MilitaryBaseCallsign "{5C9108F95C9545BC}" { + m_sCallsign "#AR-Campaign_PointShuka" + m_sCallsignShort "#AR-Comm_Variable_Base_Shuka_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Shuka_RU_UC" + m_iSignalIndex 29 + } + SCR_MilitaryBaseCallsign "{5C9108F95CFE26C3}" { + m_sCallsign "#AR-Campaign_PointTabor" + m_sCallsignShort "#AR-Comm_Variable_Base_Tabor_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Tabor_RU_UC" + m_iSignalIndex 30 + } + SCR_MilitaryBaseCallsign "{5C9108F95CDD263C}" { + m_sCallsign "#AR-Campaign_PointTenor" + m_sCallsignShort "#AR-Comm_Variable_Base_Tenor_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Tenor_RU_UC" + m_iSignalIndex 31 + } + SCR_MilitaryBaseCallsign "{5C9108F95B27128C}" { + m_sCallsign "#AR-Campaign_PointTsikson" + m_sCallsignShort "#AR-Comm_Variable_Base_Tsikson_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Tsikson_RU_UC" + m_iSignalIndex 32 + } + SCR_MilitaryBaseCallsign "{5C9108F95B08D83D}" { + m_sCallsign "#AR-Campaign_PointUlan" + m_sCallsignShort "#AR-Comm_Variable_Base_Ulan_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Ulan_RU_UC" + m_iSignalIndex 33 + } + SCR_MilitaryBaseCallsign "{5C9108F95B6D3FC2}" { + m_sCallsign "#AR-Campaign_PointVermout" + m_sCallsignShort "#AR-Comm_Variable_Base_Vermout_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Vermout_RU_UC" + m_iSignalIndex 34 + } + SCR_MilitaryBaseCallsign "{5C9108F95B712949}" { + m_sCallsign "#AR-Campaign_PointViympel" + m_sCallsignShort "#AR-Comm_Variable_Base_Viympel_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Viympel_RU_UC" + m_iSignalIndex 35 + } + SCR_MilitaryBaseCallsign "{5C9108F95B57D185}" { + m_sCallsign "#AR-Campaign_PointYantar" + m_sCallsignShort "#AR-Comm_Variable_Base_Yantar_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Yantar_RU_UC" + m_iSignalIndex 36 + } + SCR_MilitaryBaseCallsign "{5C9108F95BB17114}" { + m_sCallsign "#AR-Campaign_PointYolka" + m_sCallsignShort "#AR-Comm_Variable_Base_Yolka_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Yolka_RU_UC" + m_iSignalIndex 37 + } + SCR_MilitaryBaseCallsign "{5C9108F95B97C054}" { + m_sCallsign "#AR-Campaign_PointZheton" + m_sCallsignShort "#AR-Comm_Variable_Base_Zheton_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Zheton_RU_UC" + m_iSignalIndex 38 + } + SCR_MilitaryBaseCallsign "{5C9108F95BFC33E5}" { + m_sCallsign "#AR-Campaign_PointZurna" + m_sCallsignShort "#AR-Comm_Variable_Base_Zurna_RU" + m_sCallsignUpperCase "#AR-Comm_Variable_Base_Zurna_RU_UC" + m_iSignalIndex 39 + } + } + m_FactionHomeTerritoryConfig SCR_FactionHomeTerritoryConfig "{5AEE94D5517C30BD}" : "{31FC78AF00523A99}Configs/Identities/Territories/FactionHomeTerritory_USSR.conf" { + } +} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf.meta new file mode 100644 index 0000000..f60822c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/Factions/USSR.conf.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{D7A5CFA62A36480D}Configs/ERR/Factions/USSR.conf" + Configurations { + ResourceClass PC {} + ResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf new file mode 100644 index 0000000..a7eafe8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf @@ -0,0 +1,21 @@ +SCR_GameOverScreenConfig : "{651583FFFB7FC765}Configs/GameOverScreen/BaseGameOverScreensConfig.conf" { + m_aGameOverScreens { + ERR_EscapeGameOverScreenInfo "{6B193DC8DDC63507}" { + m_GameOverScreenId VICTORY + m_GameOverContentLayout "{C4507D07F3C54831}UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout" + m_OptionalParams SCR_BaseGameOverScreenInfoOptional "{4984A5C1BFEFC04E}" { + m_sTitle "Escape complete" + m_sAudioOneShot "SOUND_ONVICTORY" + } + } + ERR_FailureGameOverScreenInfo "{E66F29A7A8AD7438}" { + m_GameOverScreenId LOOSE + m_GameOverContentLayout "{C4507D07F3C54831}UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout" + m_OptionalParams SCR_BaseGameOverScreenInfoOptional "{3DBF0BDE715945FA}" { + m_sTitle "Escape failed" + m_sDebriefing "No surviving prisoners can complete the escape, or the extraction helicopter has been lost." + m_sAudioOneShot "SOUND_ONDEFEAT" + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf.meta new file mode 100644 index 0000000..8f032b0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/GameOverScreens.conf.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{F6633922A25F9441}Configs/ERR/GameOverScreens.conf" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf new file mode 100644 index 0000000..ca1abae --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf @@ -0,0 +1,7 @@ +ERR_FactionCatalog { + PlayerFactionKey "US" + EnemyFactionKey "USSR" + PrisonerPrefab "{3FF693715C9F8928}Prefabs/ERR/Prisoner.et" + GuardGroupPrefab "{D5A4D0D3AE1A3E26}Prefabs/ERR/Patrol.et" + ExtractionPrefab "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf.meta new file mode 100644 index 0000000..47f3162 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Configs/ERR/VanillaFactions.conf.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{BE50B97B8E2B36E6}Configs/ERR/VanillaFactions.conf" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf new file mode 100644 index 0000000..b44da89 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf @@ -0,0 +1,11 @@ +SCR_MissionHeader { + World "{B6C516F86302C679}Worlds/ERR_Everon.ent" + SystemsConfig "{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf" + m_sName "Rereintroduced: Everon Base (development)" + m_sAuthor "Rereintroduced contributors" + m_sDescription "Independent base escape mission using vanilla Reforger. Companion addons optional. Development scenario." + m_sGameMode "Escape" + m_iPlayerCount 12 + m_eSaveTypes 0 + m_bShowInScenarioMenu 1 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf.meta new file mode 100644 index 0000000..566e857 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Missions/ERR_Everon_Base.conf.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{AD62322D5213C440}Missions/ERR_Everon_Base.conf" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et new file mode 100644 index 0000000..2ad6dc1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et @@ -0,0 +1,6 @@ +GenericEntity { + components { + ERR_LocationComponent "{C17CA14398A1CD7E}" { m_Kind 2 } + RplComponent "{0BF5BAAA5FBFEECE}" { Streamable Disabled } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et.meta new file mode 100644 index 0000000..742075d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Extraction.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{033503110AC34EAC}Prefabs/ERR/Extraction.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et new file mode 100644 index 0000000..b2c8f02 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et @@ -0,0 +1,10 @@ +SCR_FactionManager : "{A242612865F2A48E}Prefabs/MP/Managers/Factions/FactionManager_Base.et" { + Factions { + SCR_Faction : "{5C67A1DDE0044806}Configs/ERR/Factions/US.conf" { + m_sFactionBackground "{F8AC305446D5D480}UI/Textures/DeployMenu/Loadout-BG/Loadout_US_BG.imageset" + } + SCR_Faction : "{D7A5CFA62A36480D}Configs/ERR/Factions/USSR.conf" { + m_sFactionBackground "{21533F2089005056}UI/Textures/DeployMenu/Loadout-BG/Loadout_BG_USSR.imageset" + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et.meta new file mode 100644 index 0000000..170d8da --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FactionManager.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{5414041A15DC4B54}Prefabs/ERR/FactionManager.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et new file mode 100644 index 0000000..ec18f1f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et @@ -0,0 +1,13 @@ +GenericEntity { + components { + MeshObject "{A557F6DC012E5101}" { + Object "{268DBDABB3C94AD7}Assets/Props/Military/Sandbags/Sandbag_01_short.xob" + Materials { + MaterialAssignClass "{A557F6DC012E5102}" { SourceMaterial "Sandbags_01_Short" AssignedMaterial "{31529E064AA7C917}Assets/Props/Military/Sandbags/Data/Sandbags_01_short_Burlap.emat" } + MaterialAssignClass "{A557F6DC012E5103}" { SourceMaterial "Sandbags_01_MLOD" AssignedMaterial "{2169E8EB73E1C127}Assets/Props/Military/Sandbags/Data/Sandbags_01_Burlap_MLOD.emat" } + } + } + RigidBody "{A557F6DC012E5104}" { ModelGeometry 1 Static 1 } + RplComponent "{A557F6DC012E5105}" {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et.meta new file mode 100644 index 0000000..c8c4e70 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/FieldCover.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{4B6AC1D8701C35A1}Prefabs/ERR/FieldCover.et" + Configurations { + ResourceClass PC {} + ResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et new file mode 100644 index 0000000..41a9d62 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et @@ -0,0 +1,14 @@ +ERR_GameMode : "{0F307326459A1395}Prefabs/MP/Modes/GameMode_Base.et" { + components { + SCR_GameOverScreenManagerComponent "{56DEC646298AD219}" { + m_GameOverScreenConfig SCR_GameOverScreenConfig "{56DEC6462FFDD82D}" : "{F6633922A25F9441}Configs/ERR/GameOverScreens.conf" {} + } + ERR_ScenarioComponent "{B78E910E88DE30D2}" { + m_Definition "{BC310DC0CD27F523}Configs/ERR/EveronSites.conf" + } + SCR_RespawnSystemComponent "{56B2B4793051E7C9}" { + m_SpawnLogic ERR_SpawnLogic "{79AD722B2EFD595F}" {} + } + } + m_bUseSpawnPreload 0 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et.meta new file mode 100644 index 0000000..f8dfb87 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/GameMode.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{978E045E53EF36C8}Prefabs/ERR/GameMode.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et new file mode 100644 index 0000000..850c6c1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et @@ -0,0 +1,5 @@ +GenericEntity : "{6D56FED1E55A8F84}Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et" { + components { + ERR_DocumentComponent "{E4598D0BE2C251A3}" {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et.meta new file mode 100644 index 0000000..68f2b8a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/ObjectiveDocument.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{554159A6740C3F3E}Prefabs/ERR/ObjectiveDocument.et" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et new file mode 100644 index 0000000..7295625 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et @@ -0,0 +1,10 @@ +SCR_AIGroup : "{E552DABF3636C2AD}Prefabs/Groups/OPFOR/Group_USSR_RifleSquad.et" { + m_aUnitPrefabSlots { + "{5436629450D8387A}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SL.et" + "{612F43A4D5AE765F}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_RTO.et" + "{23ADBBC31B6A3DC6}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AR.et" + "{1C78331E156A3D65}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_AT.et" + "{333DA6244C7DA34C}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_SR.et" + "{BF643BE4ADBDFDD3}Prefabs/Characters/Factions/OPFOR/USSR_Army/Character_USSR_LAT.et" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et.meta new file mode 100644 index 0000000..6eef9b5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Patrol.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{D5A4D0D3AE1A3E26}Prefabs/ERR/Patrol.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et new file mode 100644 index 0000000..d51ec79 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et @@ -0,0 +1,90 @@ +GenericEntity { + components { + ERR_LocationComponent "{3B60CBEB3C04333C}" { m_Kind 0 } + Hierarchy "{30ADADE77D1EC3B8}" {} + RplComponent "{7FA5168C6FBD0C22}" {} + } + { + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "2879356FFFBE36E0" + coords -6 0 6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "C99EF9AFCEBA863D" + coords -3 0 6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "91048277F04ACA61" + coords 0 0 6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "8F2200A922FB0A6E" + coords 3 0 6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "3C442429BBCF5D2F" + coords -6 0 -6 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "9E855CC802C592CA" + coords 6 0 -6 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "778DAC42C9208F67" + coords -6 0 -3 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "7E350EB9053673C4" + coords 6 0 -3 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "AD17884D5EA37D37" + coords -6 0 0 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "1A157E23E1A995D8" + coords 6 0 0 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "3A78A6F3ACB7ACB1" + coords -6 0 3 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "275B472B565FFF6C" + coords 6 0 3 + angles 0 -90 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "1B20E11B3FC7B59A" + coords -6 0 -6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "2735B52246DD6213" + coords -3 0 -6 + angles 0 0 0 + } + GenericEntity : "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" { + ID "28101A0E33470B38" + coords 3 0 -6 + angles 0 0 0 + } + GenericEntity : "{C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et" { + ID "54D8F96ECC743335" + scale 1.5 + coords 0 -0.1 -6 + angles 0 0 0 + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et.meta new file mode 100644 index 0000000..3341905 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prison.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{BE6B8D56349038A6}Prefabs/ERR/Prison.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et new file mode 100644 index 0000000..2725dd5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et @@ -0,0 +1,19 @@ +GenericEntity : "{34B08027DBDE322A}Prefabs/Structures/BuildingParts/Doors/Door_MetalGate_01_Short_LEFT_EXT_ST_B.et" { + components { + DoorComponent "{221C667A9F7D4B69}" { + DoorAction ERR_PrisonDoorAction "{50888D3646A61640}" { + ParentContextList { "SCR_DoorUserAction" } + } + } + ActionsManagerComponent "{F32B667C3C823800}" { + ActionContexts { UserActionContext "{50888D37F529F720}" { ContextName "SCR_DoorUserAction" Radius 2 } } + additionalActions { + ERR_UnlockPrisonAction "{CA7918FEA177BFB8}" { + ParentContextList { "SCR_DoorUserAction" } + UIInfo SCR_ActionUIInfo "{F734C81E11AA6BEF}" { Name "Pick prison lock" } + Duration 4 + } + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et.meta new file mode 100644 index 0000000..018cdc5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonDoor.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et new file mode 100644 index 0000000..90d2735 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et @@ -0,0 +1,8 @@ +GenericEntity { + components { + Hierarchy "{4F20A90EDBD625A4}" {} + MeshObject "{4F20A90EDBD625A1}" { Object "{0B96D139FEBCA006}Assets/Structures/Walls/Concrete/ConcreteWall_01_3m.xob" } + RigidBody "{4F20A90EDBD625A2}" { ModelGeometry 1 Static 1 } + RplComponent "{4F20A90EDBD625A3}" {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et.meta new file mode 100644 index 0000000..a0183ef --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/PrisonWall.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et new file mode 100644 index 0000000..8b8d49f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et @@ -0,0 +1,55 @@ +SCR_ChimeraCharacter : "{836E7E39AAC5888B}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_Base.et" { + components { + ActionsManagerComponent "{520EA1D2F659CE02}" { + additionalActions { + ERR_LoadCasualtyAction "{E7016B8C499EC8A3}" { + ParentContextList { "Chest" "LowerTorso" } + UIInfo SCR_ActionUIInfo "{E7016B8C499EC8A4}" { Name "Load casualty into extraction helicopter" } + Duration 5 + } + } + } + SCR_EditableCharacterComponent "{520EA1D2F659C85C}" { + m_UIInfo SCR_EditableEntityUIInfo "{5298E609432D192D}" { + Name "Prisoner" + } + } + SCR_CharacterInventoryStorageComponent "{520EA1D2DB118DAC}" { + components { + SCR_EquipmentStorageComponent "{56B49DA9722B635D}" { + InitialStorageSlots { + SCR_EquipmentStorageSlot BinocularSlot { Prefab "" } + SCR_EquipmentStorageSlot WristwatchSlot { + Prefab "{78ED4FEF62BBA728}Prefabs/Items/Equipment/Watches/Watch_SandY184A.et" + } + } + } + } + } + BaseLoadoutManagerComponent "{520EA1D2DB11821E}" { + Slots { + LoadoutSlotInfo Hat { Prefab "{F545C1BE7C99954A}Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et" } + LoadoutSlotInfo Jacket { Prefab "{3CCA7A9BB4FD3197}Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et" } + LoadoutSlotInfo Pants { Prefab "{604BB72BE8E023C2}Prefabs/Characters/Uniforms/Pants_US_BDU.et" } + SCR_FeetLoadoutSlotInfo Boots { Prefab "{DAAFD15478BDE1C3}Prefabs/Characters/Footwear/CombatBoots_US_01.et" } + LoadoutSlotInfo ArmoredVest { Prefab "" } + LoadoutSlotInfo Back { Prefab "" } + LoadoutSlotInfo Vest { Prefab "" } + LoadoutSlotInfo HandWear { Prefab "" } + } + } + SCR_InventoryStorageManagerComponent "{520EA1D2DB118DE5}" { + InitialInventoryItems { + ItemsInitConfigurationItem "{EA7AC3C2078B68C1}" { + TargetStorage "Prefabs/Characters/Uniforms/Pants_US_BDU.et" + PrefabsToSpawn { + "{A81F501D3EF6F38E}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et" + "{A81F501D3EF6F38E}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et" + "{D70216B1B2889129}Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et" + "{0D9A5DCF89AE7AA9}Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et" + } + } + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et.meta new file mode 100644 index 0000000..edf4d1e --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Prisoner.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{3FF693715C9F8928}Prefabs/ERR/Prisoner.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS : PC {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et new file mode 100644 index 0000000..8fd6e6b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et @@ -0,0 +1,16 @@ +GenericEntity { + components { + MeshObject "{111C06CB740ED195}" { Object "{77C9FCF3FB1246E9}Assets/Items/Equipment/Radios/Radio_R107M/Radio_R107M_01_item.xob" } + RigidBody "{4C174A44D07B91BA}" { ModelGeometry 1 Static 1 } + ERR_LocationComponent "{C19CA6CC83470879}" { m_Kind 1 } + RplComponent "{54ED7463161A5622}" { Streamable Disabled } + ActionsManagerComponent "{B081EC0768636EAB}" { + ActionContexts { UserActionContext "{C1A75A5D8B7EF1E4}" { ContextName "ERR_Radio" Radius 2 } } + additionalActions { ERR_TuneRadioAction "{7ABBB6B5D73DDD95}" { + ParentContextList { "ERR_Radio" } + UIInfo SCR_ActionUIInfo "{1B42BB7CEDECB994}" { Name "Contact extraction HQ" } + Duration 8 + } } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et.meta new file mode 100644 index 0000000..9b57d02 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/Radio.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{F7E7E3D6ACF0C860}Prefabs/ERR/Radio.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et new file mode 100644 index 0000000..db6fbed --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et @@ -0,0 +1,7 @@ +SCR_ManualCamera { + m_bInputEnabled 0 + m_bStartAtEntity 1 + m_aComponents { + ERR_FollowSurvivorCameraComponent "{965C2E8B2339B926}" {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et.meta new file mode 100644 index 0000000..c192bbd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SpectatorCamera.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{EB1210AAE1BB8F54}Prefabs/ERR/SpectatorCamera.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et new file mode 100644 index 0000000..de68b39 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et @@ -0,0 +1,28 @@ +GenericEntity : "{EBBC859CCD94D96D}Prefabs/Props/EmptyStorages/USSR_AmmoBox_empty.et" { + components { + MeshObject "{6530845A09309E37}" { + Object "{819ED3266EE5113B}Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/EquipmentBoxWooden_Weapon_01.xob" + Materials { + MaterialAssignClass "{6530845A093091BB}" { + SourceMaterial "EquipmentBoxWooden_Weapon_01" + AssignedMaterial "{7D2E831AFA5CF50D}Assets/Props/Military/AmmoBox/EquipmentBoxWooden_01/Data/EquipmentBoxWooden_Weapon_01_USSR.emat" + } + MaterialAssignClass "{6530845A093091B2}" { + SourceMaterial "EquipmentBoxWooden_Weapon_01_Decal" + } + } + } + SCR_UniversalInventoryStorageComponent "{6530845A09302DE0}" { + MaxCumulativeVolume 120000 + MaxItemSize 120 40 40 + m_fMaxWeight 80 + Attributes SCR_ItemAttributeCollection "{6530845A09302DFF}" { + ItemDisplayName SCR_InventoryUIInfo "{6530845A09302D03}" { + Name "Supply cache" + Description "Limited equipment shared between prisoners." + } + } + } + InventoryStorageManagerComponent "{18A1D42A468F584F}" {} + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et.meta new file mode 100644 index 0000000..3ecec02 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplyCache.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{40986810D0B1F4AE}Prefabs/ERR/SupplyCache.et" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et new file mode 100644 index 0000000..118178f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et @@ -0,0 +1,6 @@ +GenericEntity { + components { + ERR_LocationComponent "{8E7CFEA92C1811F0}" { m_Kind 4 } + RplComponent "{98A4A31435A9CA04}" { Streamable Disabled } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et.meta new file mode 100644 index 0000000..f511bfd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Prefabs/ERR/SupplySite.et.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{7C3D16C17C24D351}Prefabs/ERR/SupplySite.et" + Configurations { + ResourceClass PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actions.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actions.c new file mode 100644 index 0000000..2de2494 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actions.c @@ -0,0 +1,48 @@ +class ERR_UnlockPrisonAction : ScriptedUserAction +{ + override bool CanBePerformedScript(IEntity user) + { + ERR_GameMode mode = ERR_GameMode.Get(); + return mode && mode.Phase() == ERR_Phase.PRISON && ERR_Actors.CanFight(user); + } + override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode || !mode.UnlockPrison(pUserEntity)) return; + BaseDoorComponent door = BaseDoorComponent.Cast(pOwnerEntity.FindComponent(BaseDoorComponent)); + if (door) door.UseDoorAction(pUserEntity); + } +} + +class ERR_PrisonDoorAction : SCR_DoorUserAction +{ + // Native AI calls PerformAction directly, bypassing the UI availability query. + // Recheck the same permission here; preserve vanilla execution/broadcasting + // on both server and clients once the replicated prison phase is unlocked. + override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity) + { + if (!CanBePerformedScript(pUserEntity)) return; + super.PerformAction(pOwnerEntity, pUserEntity); + } + + override bool CanBePerformedScript(IEntity user) + { + ERR_GameMode mode = ERR_GameMode.Get(); + return mode && mode.Phase() > ERR_Phase.PRISON && super.CanBePerformedScript(user); + } +} + +class ERR_TuneRadioAction : ScriptedUserAction +{ + override bool CanBePerformedScript(IEntity user) + { + ERR_GameMode mode = ERR_GameMode.Get(); + ERR_LocationComponent location = ERR_LocationComponent.Cast(GetOwner().FindComponent(ERR_LocationComponent)); + return mode && mode.Phase() == ERR_Phase.RADIO_SEARCH && location && location.Knowledge() == 2 && ERR_Actors.CanFight(user); + } + override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.TuneRadio(pUserEntity, ERR_LocationComponent.Cast(pOwnerEntity.FindComponent(ERR_LocationComponent))); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actors.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actors.c new file mode 100644 index 0000000..4a58ce1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Actors.c @@ -0,0 +1,81 @@ +class ERR_Actors +{ + static bool Alive(IEntity actor) + { + if (!actor) return false; + DamageManagerComponent damage = DamageManagerComponent.Cast(actor.FindComponent(DamageManagerComponent)); + return damage && !damage.IsDestroyed(); + } + + static bool CanFight(IEntity actor) + { + if (!Alive(actor)) return false; + CharacterControllerComponent controller = CharacterControllerComponent.Cast(actor.FindComponent(CharacterControllerComponent)); + return controller && !controller.IsUnconscious(); + } + + static SCR_AIGroup Group(IEntity actor) + { + if (!actor) return null; + AIControlComponent control = AIControlComponent.Cast(actor.FindComponent(AIControlComponent)); + if (!control || !control.GetAIAgent()) return null; + return SCR_AIGroup.Cast(control.GetAIAgent().GetParentGroup()); + } + + static bool Player(IEntity actor) + { + return actor && GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(actor) > 0; + } + + static IEntity Spawn(ResourceName prefab, vector position, vector angles = "0 0 0") + { + if (!Replication.IsServer() || prefab.IsEmpty()) return null; + Resource resource = Resource.Load(prefab); + if (!resource || !resource.IsValid()) return null; + EntitySpawnParams params = new EntitySpawnParams(); + params.TransformMode = ETransformMode.WORLD; + Math3D.AnglesToMatrix(angles, params.Transform); + params.Transform[3] = position; + return GetGame().SpawnEntityPrefab(resource, GetGame().GetWorld(), params); + } + + static void DeleteSpawned(IEntity entity) + { + if (!Replication.IsServer() || !entity || Player(entity)) return; + SCR_AIGroup group = SCR_AIGroup.Cast(entity); + if (group) + { + // Never remove a group that has acquired a player since mission creation. + if (group.GetPlayerCount(true) > 0) return; + group.DespawnMembers(); + } + SCR_EntityHelper.DeleteEntityAndChildren(entity); + } + + static vector Ground(vector position) + { + position[1] = GetGame().GetWorld().GetSurfaceY(position[0], position[2]) + 0.1; + return position; + } + + static void Players(out array players, bool conscious = false) + { + players.Clear(); + array ids = {}; + GetGame().GetPlayerManager().GetPlayers(ids); + foreach (int id : ids) + { + IEntity actor = GetGame().GetPlayerManager().GetPlayerControlledEntity(id); + if (Alive(actor) && (!conscious || CanFight(actor))) players.Insert(actor); + } + } +} + +// One server-owned implementation is installed by the AI addon. +class ERR_CommandService +{ + void Tick(float now) {} + void Stop() {} + void RegisterGroup(SCR_AIGroup group) {} + void UnregisterGroup(SCR_AIGroup group) {} +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_AdminService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_AdminService.c new file mode 100644 index 0000000..da57255 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_AdminService.c @@ -0,0 +1,111 @@ +// Transport-independent administration. Only the owning controller supplies +// authorization, derived on the server from its authenticated player ID. +class ERR_CommandArguments +{ + static string CoreSetting(string section, string option) + { + if (section == "mission" && option == "radio") return "radioDefenceSeconds"; + if (section == "intel" && option == "reveal") return "intelRevealChancePercent"; + return ""; + } + static bool Integer(string text, out int value) + { + if (text.IsEmpty() || text.Length() > 6) return false; + for (int i = 0; i < text.Length(); i++) + if ("0123456789".IndexOf(text.Substring(i, 1)) < 0) return false; + value = text.ToInt(); + return true; + } +} +class ERR_AdminService +{ + protected string Setting(string section, string option) + { + return ERR_CommandArguments.CoreSetting(section, option); + } + protected bool Extension(ERR_GameMode mode, string arguments, array replies) { return false; } + protected bool TimeCommand(ERR_GameMode mode, array parts, array replies) + { + if (parts.Count() < 2 || parts[0] != "mission" || (parts[1] != "time" && parts[1] != "speed")) return false; + string key = "startTimeMinutes"; + if (parts[1] == "speed") key = "timeMultiplier"; + if (parts.Count() == 3 && parts[2] == "show") + { + if (mode.Time()) replies.Insert(mode.Time().Status()); + replies.Insert("Next round: " + ERR_TimeService.Clock(mode.Settings().Get("startTimeMinutes")) + ", " + mode.Settings().Get("timeMultiplier").ToString() + "x progression."); + return true; + } + int value; + bool valid; + if (parts.Count() == 4 && parts[2] == "set") + { + if (key == "startTimeMinutes") valid = ERR_TimeService.ParseClock(parts[3], value); + else valid = ERR_CommandArguments.Integer(parts[3], value); + } + if (valid && mode.Settings().Set(key, value)) + replies.Insert("Saved for next round: " + ERR_TimeService.Clock(mode.Settings().Get("startTimeMinutes")) + ", " + mode.Settings().Get("timeMultiplier").ToString() + "x progression. Current round clock unchanged."); + else replies.Insert("Invalid time or settings could not be saved. Use mission time set HH:MM (00:00-23:59) or mission speed set N (1-24). Previous setting retained."); + return true; + } + protected string SettingHelp(string key) + { + if (key == "intelRevealChancePercent") + return "Use /esc intel reveal set N (0-100). This is the chance that a first document identifies its location exactly; otherwise it gives a rough location. A second document for that location always identifies it. Changes affect newly recovered documents immediately; known locations and spent documents remain unchanged."; + return ""; + } + protected void SettingCommand(ERR_Settings settings, string key, array parts, array replies) + { + if (parts.Count() == 3 && parts[2] == "show") { replies.Insert(key + "=" + settings.Get(key).ToString()); return; } + string help = SettingHelp(key); + if (parts.Count() == 3 && parts[2] == "help" && !help.IsEmpty()) { replies.Insert(help); return; } + int value; + if (parts.Count() == 4 && parts[2] == "set" && ERR_CommandArguments.Integer(parts[3], value) && settings.Set(key, value)) + replies.Insert(key + "=" + value.ToString() + " saved"); + else + { + string failure = "Invalid value or settings could not be saved; previous setting retained."; + if (!help.IsEmpty()) failure += " " + help; + replies.Insert(failure); + } + } + protected string Help() + { + return "/esc status | settings | mission abandon | mission radio show|set N | mission date show|set YYYY-MM-DD|authored | mission weather show|set authored|clear|overcast|rain | mission time show|set HH:MM | mission speed show|set N | intel reveal show|set N|help | spectate next|previous"; + } + void Execute(ERR_GameMode mode, bool authorized, string arguments, array replies) + { + replies.Clear(); + if (!Replication.IsServer() || !mode) return; + if (!authorized) { replies.Insert("Administrator access required."); return; } + if (arguments.Length() > 160) { replies.Insert("Command is too long."); return; } + arguments = arguments.Trim(); arguments.ToLower(); + if (arguments == "status") { replies.Insert(mode.Status()); Extension(mode, arguments, replies); return; } + if (arguments == "mission abandon") + { + if (mode.AbandonRound()) replies.Insert("Round abandoned. The normal defeat and restart sequence has begun."); + else replies.Insert("Only an active round can be abandoned."); + return; + } + if (!mode.Settings()) { replies.Insert("Mission settings are not ready."); return; } + if (arguments == "settings") + { + foreach (string key : ERR_Settings.Keys()) replies.Insert(key + "=" + mode.Settings().Get(key).ToString()); + return; + } + if (Extension(mode, arguments, replies)) return; + array parts = {}; + arguments.Split(" ", parts, true); + if (ERR_EnvironmentCommands.Execute(mode.Settings(), mode.Environment(), parts, replies)) return; + if (TimeCommand(mode, parts, replies)) return; + if (parts.Count() == 3 || parts.Count() == 4) + { + string key = Setting(parts[0], parts[1]); + if (!key.IsEmpty()) + { + SettingCommand(mode.Settings(), key, parts, replies); + return; + } + } + replies.Insert(Help()); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c new file mode 100644 index 0000000..f3703aa --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c @@ -0,0 +1,82 @@ +// Conservative fallback for a sleeping, engine-off Mi8 whose native simulation +// has not yet populated contact flags. Reads physical support; never wakes it. +class ERR_CasualtyGroundSupport +{ + static bool SupportHit(float fraction, float normalY, bool selfHit, bool dynamicHit) + { + return fraction >= 0 && fraction < 1 && normalY >= 0.85 && !selfHit && !dynamicHit; + } + static bool BelongsTo(IEntity entity, IEntity root) + { + while (entity) + { + if (entity == root) return true; + entity = entity.GetParent(); + } + return false; + } + static bool WheelCenter(Vehicle aircraft, string bone, out vector center, bool diagnostics = false) + { + if (!aircraft) return false; + if (aircraft.GetBoneIndex(bone) == -1) + { + if (diagnostics) Print("ERR GEAR PIVOT MISSING: " + bone); + return false; + } + vector identity[4]; Math3D.MatrixIdentity4(identity); + PointInfo pivot = new PointInfo(); + pivot.Set(aircraft, bone, identity); + vector world[4]; pivot.GetWorldTransform(world); + center = world[3]; + if (diagnostics) PrintFormat("ERR GEAR PIVOT: bone=%1 node=%2 center=%3", bone, pivot.GetNodeId(), center); + return pivot.GetNodeId() != -1; + } + static bool WheelSupported(Vehicle aircraft, vector center, float radius, bool diagnostics = false) + { + vector bottom = center - Vector(0, radius, 0); + TraceParam trace = new TraceParam(); + trace.Start = bottom + "0 0.10 0"; + trace.End = bottom - "0 0.12 0"; + trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + trace.Exclude = aircraft; + float fraction = aircraft.GetWorld().TraceMove(trace, null); + bool selfHit = trace.TraceEnt && BelongsTo(trace.TraceEnt, aircraft); + bool dynamicHit; + if (trace.TraceEnt) + { + Physics surface = trace.TraceEnt.GetPhysics(); + // Unknown/entity-only support and moving actors/vehicles are not parking. + dynamicHit = !surface || surface.IsDynamic(); + } + bool supported = SupportHit(fraction, trace.TraceNorm[1], selfHit, dynamicHit); + if (diagnostics) + { + vector contact = vector.Lerp(trace.Start, trace.End, fraction); + float terrainY = aircraft.GetWorld().GetSurfaceY(bottom[0], bottom[2]); + PrintFormat("ERR GEAR TERRAIN: bottom=%1 terrainY=%2 tireTerrainGap=%3", bottom, terrainY, bottom[1] - terrainY); + PrintFormat("ERR GEAR SUPPORT: center=%1 radius=%2 bottom=%3 fraction=%4 normal=%5 self=%6 dynamic=%7 supported=%8 gap=%9", center, radius, bottom, fraction, trace.TraceNorm, selfHit, dynamicHit, supported, bottom[1] - contact[1]); + } + return supported; + } + static bool Parked(Vehicle aircraft, bool diagnostics = false) + { + if (!aircraft || !aircraft.GetPrefabData() || !aircraft.GetPrefabData().GetPrefabName().Contains("/Mi8MT/")) return false; + Physics physics = aircraft.GetPhysics(); + HelicopterControllerComponent controller = HelicopterControllerComponent.Cast(aircraft.FindComponent(HelicopterControllerComponent)); + if (!physics || !controller || !controller.GetSimulation()) return false; + if (diagnostics) PrintFormat("ERR PARKED SUPPORT: physicsAwake=%1 engineOn=%2 nativeContact=%3", physics.IsActive(), controller.GetSimulation().EngineIsOn(), controller.GetSimulation().HasAnyGroundContact()); + if (physics.IsActive() || controller.GetSimulation().EngineIsOn()) return false; + vector front, left, right; + if (!WheelCenter(aircraft, "v_wheel_F", front, diagnostics) || !WheelCenter(aircraft, "v_wheel_bL", left, diagnostics) || !WheelCenter(aircraft, "v_wheel_bR", right, diagnostics)) return false; + // Fail closed if native pivot resolution collapses to an owner origin or + // otherwise cannot represent the authored three-point landing footprint. + if (vector.DistanceXZ(front, left) < 1 || vector.DistanceXZ(front, right) < 1 || vector.DistanceXZ(left, right) < 1) return false; + // Radii come from installed Mi8_base.et's authored landing-gear configuration. + // Every wheel needs a short, upward-facing static collision directly below. + bool a = WheelSupported(aircraft, front, 0.30, diagnostics); + bool b = WheelSupported(aircraft, left, 0.45, diagnostics); + bool c = WheelSupported(aircraft, right, 0.45, diagnostics); + return a && b && c; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c new file mode 100644 index 0000000..a732a63 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c @@ -0,0 +1,48 @@ +// Round-owned server service; only the aircraft reference is replicated for action visibility. +modded class ERR_GameMode +{ + protected ref ERR_CasualtyLoadingService m_ERRCasualtyLoading; + [RplProp()] + protected RplId m_ERRCasualtyAircraftId = RplId.Invalid(); + ERR_CasualtyLoadingService CasualtyLoading() { return m_ERRCasualtyLoading; } + Vehicle CasualtyLoadingAircraft() + { + if (Replication.IsServer()) return ExtractionVehicle(); + RplComponent component = RplComponent.Cast(Replication.FindItem(m_ERRCasualtyAircraftId)); + if (!component) return null; + return Vehicle.Cast(component.GetEntity()); + } + protected void ERR_UpdateCasualtyAircraft(float now) + { + Vehicle aircraft = ExtractionVehicle(); + if (!aircraft) + { + if (m_ERRCasualtyAircraftId != RplId.Invalid()) { m_ERRCasualtyAircraftId = RplId.Invalid(); Replication.BumpMe(); } + return; + } + RplComponent component = RplComponent.Cast(aircraft.FindComponent(RplComponent)); + if (!component || m_ERRCasualtyAircraftId == component.Id()) return; + m_ERRCasualtyAircraftId = component.Id(); + Replication.BumpMe(); + } + protected void ERR_StopCasualtyLoading() + { + if (m_ERRCasualtyLoading) + { + Players().OnChanged().Remove(m_ERRCasualtyLoading.RosterChanged); + OnTick().Remove(m_ERRCasualtyLoading.Tick); + m_ERRCasualtyLoading.Stop(); + } + OnTick().Remove(ERR_UpdateCasualtyAircraft); + } + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (!Replication.IsServer() || SCR_Global.IsEditMode()) return; + m_ERRCasualtyLoading = new ERR_CasualtyLoadingService(this); + OnTick().Insert(ERR_UpdateCasualtyAircraft); + OnTick().Insert(m_ERRCasualtyLoading.Tick); + Players().OnChanged().Insert(m_ERRCasualtyLoading.RosterChanged); + OnStop().Insert(ERR_StopCasualtyLoading); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c new file mode 100644 index 0000000..c6fa983 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c @@ -0,0 +1,75 @@ +// Only successor service methods initiate this controller-owned handshake. +// No caller-supplied entity/seat RPC can ask the server to load another player. +modded class SCR_PlayerController +{ + protected RplId m_ERRPreparedLoadMode = RplId.Invalid(); + protected int m_ERRPreparedLoadNonce; + protected int m_ERRPreparedLoadClock; + protected int m_ERRLastLoadNonce; + + void ERR_PrepareCasualtyLoad(RplId modeId, int nonce) + { + if (!Replication.IsServer()) return; + if (this == GetGame().GetPlayerController()) ERR_PrepareCasualtyLoadOwner(modeId, nonce); + else Rpc(ERR_PrepareCasualtyLoadOwner, modeId, nonce); + } + [RplRpc(RplChannel.Reliable, RplRcver.Owner)] + protected void ERR_PrepareCasualtyLoadOwner(RplId modeId, int nonce) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (this != GetGame().GetPlayerController() || !mode || !mode.Active() || mode.Phase() != ERR_Phase.EXTRACTION || ERR_CasualtyLoadingRules.EntityId(mode) != modeId || !ERR_CasualtyLoadingRules.GroundSettled(GetControlledEntity())) return; + if (m_ERRPreparedLoadMode == modeId && nonce <= m_ERRLastLoadNonce) return; + if (nonce <= 0) return; + m_ERRPreparedLoadMode = modeId; + m_ERRPreparedLoadNonce = nonce; + m_ERRLastLoadNonce = nonce; + m_ERRPreparedLoadClock = System.GetTickCount(); + if (Replication.IsServer()) ERR_CasualtyLoadReady(modeId, nonce); + else Rpc(ERR_CasualtyLoadReady, modeId, nonce); + } + [RplRpc(RplChannel.Reliable, RplRcver.Server)] + protected void ERR_CasualtyLoadReady(RplId modeId, int nonce) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || !mode || ERR_CasualtyLoadingRules.EntityId(mode) != modeId || !mode.CasualtyLoading()) return; + mode.CasualtyLoading().OwnerReady(this, nonce); + } + void ERR_CommitCasualtyLoad(RplId modeId, int nonce, RplId callerId, RplId actorId, RplId vehicleId, RplId ownerId, int slotId) + { + if (!Replication.IsServer()) return; + if (this == GetGame().GetPlayerController()) ERR_CommitCasualtyLoadOwner(modeId, nonce, callerId, actorId, vehicleId, ownerId, slotId); + else Rpc(ERR_CommitCasualtyLoadOwner, modeId, nonce, callerId, actorId, vehicleId, ownerId, slotId); + } + [RplRpc(RplChannel.Reliable, RplRcver.Owner)] + protected void ERR_CommitCasualtyLoadOwner(RplId modeId, int nonce, RplId callerId, RplId actorId, RplId vehicleId, RplId ownerId, int slotId) + { + bool lease = this == GetGame().GetPlayerController() && m_ERRPreparedLoadMode == modeId && m_ERRPreparedLoadNonce == nonce && ERR_CasualtyLoadingRules.Within(m_ERRPreparedLoadClock, System.GetTickCount(), 3000); + if (m_ERRPreparedLoadMode == modeId && m_ERRPreparedLoadNonce == nonce) m_ERRPreparedLoadNonce = 0; + // Consume the local lease before the native call so duplicates cannot act. + bool accepted; + ERR_GameMode mode = ERR_GameMode.Get(); + IEntity actor = GetControlledEntity(); + IEntity caller = ERR_CasualtyLoadingRules.Entity(callerId); + Vehicle vehicle = Vehicle.Cast(ERR_CasualtyLoadingRules.Entity(vehicleId)); + IEntity owner = ERR_CasualtyLoadingRules.Entity(ownerId); + if (lease && mode && ERR_CasualtyLoadingRules.EntityId(mode) == modeId && ERR_CasualtyLoadingRules.EntityId(actor) == actorId && vehicle == mode.CasualtyLoadingAircraft() && ERR_CasualtyLoadingRules.Nearby(mode, caller, actor) && owner) + { + BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(owner.FindComponent(BaseCompartmentManagerComponent)); + SCR_CompartmentAccessComponent access = SCR_CompartmentAccessComponent.Cast(actor.FindComponent(SCR_CompartmentAccessComponent)); + BaseCompartmentSlot seat; + if (manager) seat = manager.FindCompartment(slotId); + if (access && ERR_CasualtyLoadingRules.TransportBench(seat, vehicle) && seat.GetOwner() == owner && !seat.GetOccupant() && seat.IsCompartmentAccessible() && !seat.IsGetInLockedFor(actor) && (!seat.IsReserved() || seat.IsReservedBy(actor))) + accepted = access.GetInVehicle(owner, seat, true, -1, ECloseDoorAfterActions.INVALID, false); + } + // Missing replicated entities or rejected native entry fail once; never retry. + if (Replication.IsServer()) ERR_CasualtyLoadResult(modeId, nonce, accepted); + else Rpc(ERR_CasualtyLoadResult, modeId, nonce, accepted); + } + [RplRpc(RplChannel.Reliable, RplRcver.Server)] + protected void ERR_CasualtyLoadResult(RplId modeId, int nonce, bool accepted) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || !mode || ERR_CasualtyLoadingRules.EntityId(mode) != modeId || !mode.CasualtyLoading()) return; + mode.CasualtyLoading().OwnerResult(this, nonce, accepted); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c new file mode 100644 index 0000000..5b5091a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c @@ -0,0 +1,331 @@ +// First release supports only the registered Mi8 extraction aircraft's physical +// child transport benches. Nothing changes health, ownership, or seat classes. +class ERR_CasualtyLoadingRules +{ + static int RoundAction(int phase) + { + if (phase == ERR_Phase.PREPARING) return 0; + if (ERR_MissionRules.Terminal(phase)) return 2; + return 1; + } + static bool ObserveTicket(bool committed, bool physical, bool authorized) + { + return physical && (committed || authorized); + } + static bool Within(int started, int now, int limit) { return now >= started && now - started < limit; } + static bool SettledFor(int started, int observed, int now) + { + return started >= 0 && now >= started && now - started >= 5000 && Within(observed, now, 2000); + } + static bool Ranges(float callerToCasualty, float callerToAircraft, float casualtyToAircraft) + { + return callerToCasualty >= 0 && callerToCasualty <= 3 && callerToAircraft >= 0 && callerToAircraft <= 12 && casualtyToAircraft >= 0 && casualtyToAircraft <= 12; + } + static bool AircraftMotion(bool groundContact, float up, float speed, float angularSpeed) + { + return groundContact && up >= 0.85 && speed >= 0 && speed <= 0.5 && angularSpeed >= 0 && angularSpeed <= 0.1; + } + static RplId EntityId(IEntity entity) + { + if (!entity) return RplId.Invalid(); + RplComponent component = RplComponent.Cast(entity.FindComponent(RplComponent)); + if (!component) return RplId.Invalid(); + return component.Id(); + } + static IEntity Entity(RplId id) + { + if (id == RplId.Invalid()) return null; + RplComponent component = RplComponent.Cast(Replication.FindItem(id)); + if (!component) return null; + return component.GetEntity(); + } + static bool Down(IEntity actor) + { + if (!ERR_Actors.Alive(actor)) return false; + CharacterControllerComponent controller = CharacterControllerComponent.Cast(actor.FindComponent(CharacterControllerComponent)); + return controller && controller.GetLifeState() == ECharacterLifeState.INCAPACITATED; + } + static bool GroundSettled(IEntity actor) + { + if (!Down(actor) || CompartmentAccessComponent.GetVehicleIn(actor)) return false; + CharacterAnimationComponent animation = CharacterAnimationComponent.Cast(actor.FindComponent(CharacterAnimationComponent)); + SCR_CompartmentAccessComponent access = SCR_CompartmentAccessComponent.Cast(actor.FindComponent(SCR_CompartmentAccessComponent)); + Physics physics = actor.GetPhysics(); + return animation && !animation.PhysicsIsFalling() && physics && physics.GetVelocity().Length() <= 0.5 && access && !access.IsGettingIn() && !access.IsGettingOut(); + } + static bool AircraftReady(Vehicle aircraft) + { + if (!ERR_Actors.Alive(aircraft)) return false; + HelicopterControllerComponent controller = HelicopterControllerComponent.Cast(aircraft.FindComponent(HelicopterControllerComponent)); + Physics physics = aircraft.GetPhysics(); + if (!controller || !controller.GetSimulation() || !physics) return false; + vector transform[4]; aircraft.GetWorldTransform(transform); + if (!AircraftMotion(true, transform[1][1], physics.GetVelocity().Length(), physics.GetAngularVelocity().Length())) return false; + if (controller.GetSimulation().HasAnyGroundContact()) return true; + return ERR_CasualtyGroundSupport.Parked(aircraft); + } + static bool LineOfSight(IEntity caller, IEntity casualty) + { + ChimeraCharacter rescuer = ChimeraCharacter.Cast(caller); + ChimeraCharacter patient = ChimeraCharacter.Cast(casualty); + if (!rescuer || !patient || !GetGame()) return false; + TraceParam trace = new TraceParam(); + trace.Start = rescuer.AimingPosition(); + trace.End = patient.AimingPosition(); + trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + trace.Exclude = caller; + if (GetGame().GetWorld().TraceMove(trace, null) >= 1) return true; + // Hitting the intended body's clothing/attachment is still sight of that body. + IEntity hit = trace.TraceEnt; + while (hit) + { + if (hit == casualty) return true; + hit = hit.GetParent(); + } + return false; + } + static bool Nearby(ERR_GameMode mode, IEntity caller, IEntity casualty) + { + if (!mode || !mode.Active() || mode.Phase() != ERR_Phase.EXTRACTION || !caller || caller == casualty) return false; + CharacterControllerComponent rescuer = CharacterControllerComponent.Cast(caller.FindComponent(CharacterControllerComponent)); + if (!ERR_Actors.CanFight(caller) || !rescuer || rescuer.GetLifeState() != ECharacterLifeState.ALIVE || !GroundSettled(casualty) || CompartmentAccessComponent.GetVehicleIn(caller)) return false; + Vehicle aircraft = mode.CasualtyLoadingAircraft(); + if (!aircraft || !Ranges(vector.Distance(caller.GetOrigin(), casualty.GetOrigin()), vector.Distance(caller.GetOrigin(), aircraft.GetOrigin()), vector.Distance(casualty.GetOrigin(), aircraft.GetOrigin())) || !AircraftReady(aircraft)) return false; + Faction faction = mode.PlayerFaction(); + return faction && SCR_FactionManager.SGetFaction(caller) == faction && SCR_FactionManager.SGetFaction(casualty) == faction && LineOfSight(caller, casualty); + } + static bool TransportBench(BaseCompartmentSlot seat, Vehicle aircraft) + { + if (!seat || !aircraft || seat.GetType() != ECompartmentType.CARGO || SCR_PatientCompartmentSlot.Cast(seat)) return false; + IEntity owner = seat.GetOwner(); + if (!owner || owner == aircraft || !owner.GetPrefabData() || !owner.GetPrefabData().GetPrefabName().Contains("VehPart_MI8_seats")) return false; + while (owner) + { + if (owner == aircraft) return true; + owner = owner.GetParent(); + } + return false; + } +} +class ERR_CasualtySettling +{ + IEntity Actor; + UUID Account; + int Connection; + int Since; + int Observed; +} +class ERR_CasualtyLoadTicket +{ + IEntity Caller; + IEntity Casualty; + Vehicle Aircraft; + BaseCompartmentSlot Seat; + UUID CallerAccount; + UUID CasualtyAccount; + int CallerConnection; + int CasualtyConnection; + int Nonce; + int Started; + int CommittedAt; + bool Committed; + bool OwnerReported; +} +class ERR_CasualtyLoadingService +{ + protected ERR_GameMode m_Mode; + protected bool m_Stopped; + protected int m_NextNonce; + protected bool m_MaintenanceQueued; + protected ref array m_Settling = {}; + protected ref array m_Pending = {}; + protected ref ScriptInvoker m_OnResolved = new ScriptInvoker(); + void ERR_CasualtyLoadingService(ERR_GameMode mode) { m_Mode = mode; } + ScriptInvoker OnResolved() { return m_OnResolved; } // (IEntity casualty, bool physicallyLoaded) + int PendingCount() { return m_Pending.Count(); } + protected ERR_PlayerLife CurrentLife(IEntity actor) + { + if (!m_Mode || !m_Mode.Players()) return null; + return m_Mode.Players().CurrentActor(actor); + } + protected bool SameLife(IEntity actor, UUID account, int connection) + { + ERR_PlayerLife life = CurrentLife(actor); + return life && life.AccountId == account && life.ConnectionId == connection; + } + protected bool Settled(IEntity actor, int now) + { + foreach (ERR_CasualtySettling sample : m_Settling) + if (sample.Actor == actor && SameLife(actor, sample.Account, sample.Connection)) return ERR_CasualtyLoadingRules.GroundSettled(actor) && ERR_CasualtyLoadingRules.SettledFor(sample.Since, sample.Observed, now); + return false; + } + protected void Observe(int now) + { + for (int index = m_Settling.Count() - 1; index >= 0; index--) + { + ERR_CasualtySettling sample = m_Settling[index]; + if (!SameLife(sample.Actor, sample.Account, sample.Connection) || !ERR_CasualtyLoadingRules.GroundSettled(sample.Actor) || !ERR_CasualtyLoadingRules.Within(sample.Observed, now, 2000)) m_Settling.Remove(index); + else sample.Observed = now; + } + array lives = {}; m_Mode.Players().Participants(lives); + foreach (ERR_PlayerLife life : lives) + { + if (!CurrentLife(life.Actor) || !ERR_CasualtyLoadingRules.GroundSettled(life.Actor)) continue; + bool found; + foreach (ERR_CasualtySettling tracked : m_Settling) if (tracked.Actor == life.Actor) { found = true; break; } + if (found) continue; + ERR_CasualtySettling added = new ERR_CasualtySettling(); + added.Actor = life.Actor; added.Account = life.AccountId; added.Connection = life.ConnectionId; added.Since = now; added.Observed = now; + m_Settling.Insert(added); + } + } + protected bool PendingActor(IEntity caller, IEntity casualty) + { + foreach (ERR_CasualtyLoadTicket pending : m_Pending) + if (pending.Caller == caller || pending.Casualty == casualty) return true; + return false; + } + protected BaseCompartmentSlot AvailableSeat(IEntity casualty, Vehicle aircraft) + { + array seats = {}; m_Mode.Extraction().Seats(seats); + foreach (BaseCompartmentSlot seat : seats) + { + if (!ERR_CasualtyLoadingRules.TransportBench(seat, aircraft) || seat.GetOccupant() || seat.IsReserved() || !seat.IsCompartmentAccessible() || seat.IsGetInLockedFor(casualty)) continue; + bool pendingSeat; + foreach (ERR_CasualtyLoadTicket pending : m_Pending) if (pending.Seat == seat) { pendingSeat = true; break; } + if (!pendingSeat) return seat; + } + return null; + } + bool CanLoad(IEntity caller, IEntity casualty) + { + if (!Replication.IsServer() || m_Stopped || !ERR_CasualtyLoadingRules.Nearby(m_Mode, caller, casualty)) return false; + if (!CurrentLife(caller) || !CurrentLife(casualty) || !Settled(casualty, System.GetTickCount()) || PendingActor(caller, casualty)) return false; + return AvailableSeat(casualty, m_Mode.ExtractionVehicle()) != null; + } + bool Begin(IEntity caller, IEntity casualty) + { + if (!CanLoad(caller, casualty) || m_NextNonce >= 2147483646) return false; + ERR_PlayerLife callerLife = CurrentLife(caller); + ERR_PlayerLife casualtyLife = CurrentLife(casualty); + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(casualtyLife.ConnectionId)); + if (!controller || ERR_CasualtyLoadingRules.EntityId(m_Mode) == RplId.Invalid() || ERR_CasualtyLoadingRules.EntityId(caller) == RplId.Invalid() || ERR_CasualtyLoadingRules.EntityId(casualty) == RplId.Invalid() || ERR_CasualtyLoadingRules.EntityId(m_Mode.ExtractionVehicle()) == RplId.Invalid()) return false; + ERR_CasualtyLoadTicket ticket = new ERR_CasualtyLoadTicket(); + ticket.Caller = caller; ticket.Casualty = casualty; ticket.Aircraft = m_Mode.ExtractionVehicle(); + ticket.Seat = AvailableSeat(casualty, ticket.Aircraft); + if (!ticket.Seat || ERR_CasualtyLoadingRules.EntityId(ticket.Seat.GetOwner()) == RplId.Invalid()) return false; + ticket.CallerAccount = callerLife.AccountId; ticket.CasualtyAccount = casualtyLife.AccountId; + ticket.CallerConnection = callerLife.ConnectionId; ticket.CasualtyConnection = casualtyLife.ConnectionId; + ticket.Started = System.GetTickCount(); ticket.Nonce = ++m_NextNonce; + m_Pending.Insert(ticket); + ticket.Seat.SetReserved(casualty); + if (!ticket.Seat.IsReservedBy(casualty)) { Resolve(ticket, false); return false; } + ScheduleMaintenance(); + // Preparation never moves the actor. Its owner starts a local real-time lease. + controller.ERR_PrepareCasualtyLoad(ERR_CasualtyLoadingRules.EntityId(m_Mode), ticket.Nonce); + return true; + } + protected ERR_CasualtyLoadTicket Ticket(SCR_PlayerController controller, int nonce) + { + if (!controller || !GetGame() || !GetGame().GetPlayerManager() || GetGame().GetPlayerManager().GetPlayerController(controller.GetPlayerId()) != controller) return null; + foreach (ERR_CasualtyLoadTicket ticket : m_Pending) + if (ticket.Nonce == nonce && ticket.CasualtyConnection == controller.GetPlayerId() && ticket.Casualty == controller.GetControlledEntity()) return ticket; + return null; + } + void OwnerReady(SCR_PlayerController controller, int nonce) + { + if (!Replication.IsServer() || m_Stopped) return; + ERR_CasualtyLoadTicket ticket = Ticket(controller, nonce); + if (!ticket || ticket.Committed) return; + int now = System.GetTickCount(); + if (!ValidTicket(ticket) || !ERR_CasualtyLoadingRules.Within(ticket.Started, now, 5000) || !Settled(ticket.Casualty, now) || !ERR_CasualtyLoadingRules.Nearby(m_Mode, ticket.Caller, ticket.Casualty) || ticket.Seat.GetOccupant() || !ticket.Seat.IsCompartmentAccessible() || ticket.Seat.IsGetInLockedFor(ticket.Casualty) || !ticket.Seat.IsReservedBy(ticket.Casualty)) { Resolve(ticket, false); return; } + ticket.Committed = true; ticket.CommittedAt = now; + // Final authority/physical validation is the commit boundary. No retries. + controller.ERR_CommitCasualtyLoad(ERR_CasualtyLoadingRules.EntityId(m_Mode), nonce, ERR_CasualtyLoadingRules.EntityId(ticket.Caller), ERR_CasualtyLoadingRules.EntityId(ticket.Casualty), ERR_CasualtyLoadingRules.EntityId(ticket.Aircraft), ERR_CasualtyLoadingRules.EntityId(ticket.Seat.GetOwner()), ticket.Seat.GetCompartmentSlotID()); + } + void OwnerResult(SCR_PlayerController controller, int nonce, bool accepted) + { + if (!Replication.IsServer() || m_Stopped) return; + ERR_CasualtyLoadTicket ticket = Ticket(controller, nonce); + if (!ticket || !ticket.Committed || ticket.OwnerReported) return; + ticket.OwnerReported = true; + if (!accepted) Print("Rereintroduced [casualty]: owner declined loading; observing physical outcome until expiry."); + // Neither positive nor negative client acknowledgements release a reserved + // seat while an authorized owner command could still be in flight. + } + protected bool PhysicalTicket(ERR_CasualtyLoadTicket ticket) + { + // Death cannot revoke an in-flight commit. Keep the vacant seat reserved + // while the captured body exists; its owner may still see the prior state. + return m_Mode && m_Mode.Active() && m_Mode.Phase() == ERR_Phase.EXTRACTION && ticket.Aircraft == m_Mode.ExtractionVehicle() && ERR_Actors.Alive(ticket.Aircraft) && ticket.Casualty != null && ERR_CasualtyLoadingRules.TransportBench(ticket.Seat, ticket.Aircraft); + } + protected bool ValidTicket(ERR_CasualtyLoadTicket ticket) + { + return m_Mode && m_Mode.Active() && m_Mode.Phase() == ERR_Phase.EXTRACTION && ticket.Aircraft == m_Mode.ExtractionVehicle() && ERR_Actors.Alive(ticket.Aircraft) && ERR_Actors.Alive(ticket.Casualty) && SameLife(ticket.Caller, ticket.CallerAccount, ticket.CallerConnection) && SameLife(ticket.Casualty, ticket.CasualtyAccount, ticket.CasualtyConnection) && ERR_CasualtyLoadingRules.TransportBench(ticket.Seat, ticket.Aircraft); + } + protected void Resolve(ERR_CasualtyLoadTicket ticket, bool success) + { + int index = m_Pending.Find(ticket); if (index < 0) return; + m_Pending.Remove(index); + if (ticket.Seat && ticket.Casualty && ticket.Seat.IsReservedBy(ticket.Casualty)) ticket.Seat.SetReserved(null); + if (m_Pending.IsEmpty()) CancelMaintenance(); + m_OnResolved.Invoke(ticket.Casualty, success); + } + void Tick(float worldNow) + { + if (!Replication.IsServer() || m_Stopped || !m_Mode) return; + int roundAction = ERR_CasualtyLoadingRules.RoundAction(m_Mode.Phase()); + if (roundAction == 0) return; + if (roundAction == 2) { Stop(); return; } + int now = System.GetTickCount(); + Observe(now); + MaintainPending(); + } + protected void ScheduleMaintenance() + { + if (m_MaintenanceQueued || m_Stopped || m_Pending.IsEmpty() || !GetGame()) return; + // Only ticket observation runs independently of player population. No owner + // request is retried and neither local nor server leases are refreshed. + m_MaintenanceQueued = true; + GetGame().GetCallqueue().CallLater(MaintainPending, 250, true); + } + protected void CancelMaintenance() + { + if (!m_MaintenanceQueued) return; + m_MaintenanceQueued = false; + if (GetGame()) GetGame().GetCallqueue().Remove(MaintainPending); + } + protected void MaintainPending() + { + if (!Replication.IsServer() || m_Stopped) { CancelMaintenance(); return; } + if (!m_Mode || ERR_MissionRules.Terminal(m_Mode.Phase())) { Stop(); return; } + if (m_Pending.IsEmpty()) { CancelMaintenance(); return; } + int now = System.GetTickCount(); + array snapshot = {}; foreach (ERR_CasualtyLoadTicket item : m_Pending) snapshot.Insert(item); + foreach (ERR_CasualtyLoadTicket ticket : snapshot) + { + if (m_Stopped) return; + // Commit authorizes one move of the captured body; a later caller/target + // disconnect cannot revoke that command or release its seat prematurely. + if (!ERR_CasualtyLoadingRules.ObserveTicket(ticket.Committed, PhysicalTicket(ticket), ValidTicket(ticket))) { Resolve(ticket, false); continue; } + bool aboard = CompartmentAccessComponent.GetVehicleIn(ticket.Casualty) == ticket.Aircraft && ticket.Seat.GetOccupant() == ticket.Casualty; + if (aboard && ticket.Committed) { Resolve(ticket, ERR_Actors.Alive(ticket.Casualty)); continue; } + if (ticket.Committed) + { + // Owner's prepare-to-commit lease is only 3s; this 8s observation budget + // leaves room for replication. Timeouts do not issue compensating teleports. + if (!ERR_CasualtyLoadingRules.Within(ticket.CommittedAt, now, 8000)) Resolve(ticket, false); + } + else if (!ERR_CasualtyLoadingRules.Within(ticket.Started, now, 5000) || !ERR_CasualtyLoadingRules.Nearby(m_Mode, ticket.Caller, ticket.Casualty)) Resolve(ticket, false); + } + } + void RosterChanged(int connection) { if (GetGame()) Tick(GetGame().GetWorld().GetWorldTime()); } + void Stop() + { + if (!Replication.IsServer() || m_Stopped) return; + m_Stopped = true; m_Settling.Clear(); + CancelMaintenance(); + while (!m_Pending.IsEmpty()) Resolve(m_Pending[m_Pending.Count() - 1], false); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c new file mode 100644 index 0000000..18344bd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c @@ -0,0 +1,119 @@ +// A first clue identifies a stable search square, not the exact objective. +// Stable grid centers prevent repeated updates from triangulating the site. +class ERR_DiscoveryMapRules +{ + static int Coordinate(float coordinate, int knowledge) + { + if (knowledge >= 2) return Math.Round(coordinate); + return Math.Floor(coordinate / 500.0) * 500 + 250; + } +} + +// Discovery markers are authored objective information, not player annotations. +// Native local insertion overwrites owner ID before OnCreateMarker; clear it at +// that boundary so native edit/drag cannot move a discovered objective. +class ERR_DiscoveryMarker : SCR_MapMarkerBase +{ + void ERR_DiscoveryMarker() { SetCanBeRemovedByOwner(false); } + void SetDiscoveryPosition(vector position, int knowledge) + { + SetWorldPos(ERR_DiscoveryMapRules.Coordinate(position[0], knowledge), ERR_DiscoveryMapRules.Coordinate(position[2], knowledge)); + } + override void OnCreateMarker(bool skipProfanityFilter = false) + { + SetMarkerOwnerID(-1); + // Text is scenario-authored, never user input. Avoid delayed UGC callbacks + // overwriting a newer discovery label after the location becomes identified. + super.OnCreateMarker(true); + } + override void OnDelete() + { + SCR_MapEntity.GetOnMapClose().Remove(OnMapClosed); + SCR_MapEntity.GetOnLayerChanged().Remove(OnMapLayerChanged); + super.OnDelete(); + m_wRoot = null; + m_MarkerWidgetComp = null; + } + override void SetCustomText(string text) + { + super.SetCustomText(text); + // Native SetCustomText updates data only; an already-open map needs its + // existing widget updated too. Closed maps use the saved text on creation. + SCR_MapMarkerWidgetComponent widget = GetMarkerComponent(); + if (GetRootWidget() && widget) widget.SetText(text, true); + } +} + +// Vanilla local deletion removes only its active list. A culled local objective +// must also leave the disabled list or map movement can resurrect it later. +modded class SCR_MapMarkerManagerComponent +{ + void ERR_RemoveDiscoveryMarker(ERR_DiscoveryMarker marker) + { + if (!marker || marker.GetMarkerID() != -1) return; + m_aStaticMarkers.RemoveItem(marker); + m_aDisabledMarkers.RemoveItem(marker); + marker.OnDelete(); + } +} + +// Read replicated discovery locally. A server-wide marker list never leaks +// locations which have not been recovered through gameplay. +modded class ERR_LocationComponent +{ + protected ref ERR_DiscoveryMarker m_ERRMarker; + protected int m_ERRShown; + protected string m_ERRShownLabel; + + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (RplSession.Mode() != RplMode.Dedicated && !SCR_Global.IsEditMode()) + GetGame().GetCallqueue().CallLater(ERR_UpdateMarker, 1500, true); + } + protected void ERR_UpdateMarker() + { + if (!GetGame().GetPlayerController() || Knowledge() <= 0 || (Knowledge() == m_ERRShown && Label() == m_ERRShownLabel)) return; + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (!manager || !manager.GetMarkerConfig()) return; + string label = "Search area (500 m square)"; + if (Knowledge() == 2) + { + if (!Label().IsEmpty()) label = Label(); + else if (Kind() == ERR_LocationKind.RADIO) label = "Radio station"; + else if (Kind() == ERR_LocationKind.EXTRACTION) label = "Initial helicopter pickup site"; + else if (Kind() == ERR_LocationKind.DEPOT) label = "Supply cache"; + else if (Kind() == ERR_LocationKind.PRISON) label = "Prison"; + else label = Id(); + } + if (!m_ERRMarker) + { + m_ERRMarker = new ERR_DiscoveryMarker(); + m_ERRMarker.SetType(SCR_EMapMarkerType.PLACED_CUSTOM); + m_ERRMarker.SetDiscoveryPosition(Position(), Knowledge()); + m_ERRMarker.SetMarkerConfigID(0); + m_ERRMarker.SetCustomText(label); + manager.InsertStaticMarker(m_ERRMarker, true); + } + m_ERRMarker.SetDiscoveryPosition(Position(), Knowledge()); + m_ERRMarker.SetCustomText(label); + // Reactivate a previously culled rough marker if the exact point moves + // into the open map's view. Native update performs normal visibility checks. + SCR_MapEntity mapEntity = SCR_MapEntity.GetMapInstance(); + if (mapEntity && mapEntity.IsOpen()) manager.SetStaticMarkerDisabled(m_ERRMarker, false); + m_ERRShown = Knowledge(); + m_ERRShownLabel = Label(); + } + protected override void OnDelete(IEntity owner) + { + if (GetGame()) GetGame().GetCallqueue().Remove(ERR_UpdateMarker); + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (m_ERRMarker) + { + if (manager) manager.ERR_RemoveDiscoveryMarker(m_ERRMarker); + else m_ERRMarker.OnDelete(); + } + m_ERRMarker = null; + super.OnDelete(owner); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c new file mode 100644 index 0000000..d513413 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c @@ -0,0 +1,64 @@ +// Base mission discovery: recovering physical documents works without companions. +// The Intel addon optionally assigns extra documents to enemy inventories. +class ERR_DiscoveryService +{ + protected ERR_GameMode m_Mode; + protected ref set m_Spent = new set(); + void ERR_DiscoveryService(ERR_GameMode mode) { m_Mode = mode; } + static void Folders(InventoryStorageManagerComponent inventory, out array folders) + { + folders.Clear(); + SCR_PrefabNamePredicate predicate = new SCR_PrefabNamePredicate(); + predicate.prefabName = ERR_Resources.IntelFolder(); + array intel = {}; + inventory.FindItems(intel, predicate, EStoragePurpose.PURPOSE_ANY); + foreach (IEntity folder : intel) + if (folder && !folders.Contains(folder)) folders.Insert(folder); + array objectives = {}; + predicate.prefabName = ERR_Resources.ObjectiveDocument(); + inventory.FindItems(objectives, predicate, EStoragePurpose.PURPOSE_ANY); + foreach (IEntity objective : objectives) + if (objective && !folders.Contains(objective)) folders.Insert(objective); + } + + void Tick(float now) + { + if (!Replication.IsServer()) return; + array players = {}; + ERR_Actors.Players(players); + foreach (IEntity player : players) Recover(player); + } + protected void Recover(IEntity player) + { + if (!Replication.IsServer() || !m_Mode || !m_Mode.Players() || !m_Mode.Players().CurrentActor(player) || !ERR_Actors.Alive(player)) return; + if (!m_Mode.PlayerFaction() || SCR_FactionManager.SGetFaction(player) != m_Mode.PlayerFaction()) return; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(player.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) return; + array folders = {}; + Folders(inventory, folders); + foreach (IEntity folder : folders) + { + if (!folder || m_Spent.Contains(folder) || m_Spent.Count() >= 4096) continue; + array locations = {}; + m_Mode.Locations(locations); + array eligible = {}; + ERR_DocumentComponent document = ERR_DocumentComponent.Cast(folder.FindComponent(ERR_DocumentComponent)); + foreach (ERR_LocationComponent location : locations) + { + if (!location || location.Knowledge() >= 2) continue; + if (document) + { + if (location.Id() == document.TargetId()) eligible.Insert(location); + } + else if (location.Kind() != ERR_LocationKind.PRISON && location.Kind() != ERR_LocationKind.EXTRACTION) eligible.Insert(location); + } + if (eligible.IsEmpty()) continue; + ERR_LocationComponent chosen = eligible.GetRandomElement(); + if (!chosen.Discover(Math.RandomInt(0, 100), m_Mode.Settings().Get("intelRevealChancePercent"))) continue; + m_Spent.Insert(folder); + PrintFormat("Rereintroduced [intel]: player %1 recovered folder; location=%2 knowledge=%3", GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(player), chosen.Id(), chosen.Knowledge()); + } + } + + void Stop() { m_Spent.Clear(); } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c new file mode 100644 index 0000000..4572814 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c @@ -0,0 +1,8 @@ +[ComponentEditorProps(category: "Rereintroduced", description: "Physical document identifying one authored objective")] +class ERR_DocumentComponentClass : ScriptComponentClass {} +class ERR_DocumentComponent : ScriptComponent +{ + protected string m_TargetId; + void SetTarget(string id) { if (Replication.IsServer()) m_TargetId = id; } + string TargetId() { return m_TargetId; } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c new file mode 100644 index 0000000..440a7b9 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c @@ -0,0 +1,164 @@ +// The server applies optional date/weather choices once at round preparation. +// Zero values preserve the world's authored environment and existing defaults. +class ERR_EnvironmentService +{ + protected TimeAndWeatherManagerEntity m_Manager; + protected bool m_Started; + protected bool m_Stopped; + protected int m_DateCode; + protected int m_Profile; + + static string Pad2(int value) + { + if (value < 10) return "0" + value.ToString(); + return value.ToString(); + } + static string Date(int code) + { + if (code == 0) return "authored"; + if (!ERR_Settings.Valid("startDateCode", code)) return "unavailable"; + int year = 1900 + code / 10000; + int month = (code % 10000) / 100; + int day = code % 100; + return year.ToString() + "-" + Pad2(month) + "-" + Pad2(day); + } + static bool ParseDate(string text, out int code) + { + if (text == "authored") { code = 0; return true; } + if (text.Length() != 10 || text.Substring(4, 1) != "-" || text.Substring(7, 1) != "-") return false; + int year, month, day; + if (!ERR_CommandArguments.Integer(text.Substring(0, 4), year) || !ERR_CommandArguments.Integer(text.Substring(5, 2), month) || !ERR_CommandArguments.Integer(text.Substring(8, 2), day)) return false; + if (year < 1900 || year > 2050 || month < 1 || month > 12 || day < 1 || day > 31) return false; + int parsed = (year - 1900) * 10000 + month * 100 + day; + if (!ERR_Settings.Valid("startDateCode", parsed)) return false; + code = parsed; + return true; + } + static string ProfileName(int profile) + { + if (profile == 0) return "authored"; + if (profile == 1) return "clear"; + if (profile == 2) return "overcast"; + if (profile == 3) return "rain"; + return "unavailable"; + } + static string WeatherStateName(int profile) + { + if (profile == 1) return "Clear"; + if (profile == 2) return "Overcast"; + if (profile == 3) return "Rainy"; + return ""; + } + static bool ParseProfile(string text, out int profile) + { + if (text == "authored") { profile = 0; return true; } + if (text == "clear") { profile = 1; return true; } + if (text == "overcast") { profile = 2; return true; } + if (text == "rain" || text == "rainy") { profile = 3; return true; } + return false; + } + static bool HasWeatherState(TimeAndWeatherManagerEntity manager, string name) + { + if (!manager || name.IsEmpty()) return false; + array states = {}; + manager.GetWeatherStatesList(states); + foreach (WeatherState state : states) + if (state && state.GetStateName() == name) return true; + return false; + } + bool Start(ERR_GameMode mode) + { + if (!Replication.IsServer() || !mode || !mode.Settings()) return false; + ChimeraWorld world = ChimeraWorld.CastFrom(mode.GetWorld()); + if (!world) return false; + return StartOn(world.GetTimeAndWeatherManager(), mode.Settings().Get("startDateCode"), mode.Settings().Get("weatherProfile")); + } + protected bool StartOn(TimeAndWeatherManagerEntity manager, int dateCode, int profile) + { + if (!Replication.IsServer() || m_Stopped) return false; + if (m_Started) return true; + if (!manager || !ERR_Settings.Valid("startDateCode", dateCode) || !ERR_Settings.Valid("weatherProfile", profile)) return false; + int year = 1900 + dateCode / 10000; + int month = (dateCode % 10000) / 100; + int day = dateCode % 100; + if (dateCode != 0 && !manager.CheckValidDate(year, month, day)) return false; + string weather = WeatherStateName(profile); + BaseWeatherStateTransitionManager transitions = manager.GetTransitionManager(); + if (profile != 0 && (!transitions || !manager.GetCurrentWeatherState() || !HasWeatherState(manager, weather))) return false; + int previousYear, previousMonth, previousDay; + manager.GetDate(previousYear, previousMonth, previousDay); + if (dateCode != 0 && !manager.SetDate(year, month, day, true)) return false; + if (profile != 0) + { + string previousWeather = manager.GetCurrentWeatherState().GetStateName(); + bool previousLooping = manager.IsWeatherLooping(); + // Use the native replicated weather route, never local editor previews. + // Loop the selected family; native variants/wind still follow vanilla rules. + manager.ForceWeatherTo(true, weather, 0, 24); + WeatherState current = manager.GetCurrentWeatherState(); + WeatherState next = transitions.GetNextState(); + if (!manager.IsWeatherLooping() || ((!current || current.GetStateName() != weather) && (!next || next.GetStateName() != weather))) + { + manager.ForceWeatherTo(previousLooping, previousWeather, 0, 24); + if (dateCode != 0) manager.SetDate(previousYear, previousMonth, previousDay, true); + return false; + } + } + m_Manager = manager; + m_DateCode = dateCode; + m_Profile = profile; + m_Started = true; + PrintFormat("Rereintroduced [environment]: date=%1 weather=%2", Date(dateCode), ProfileName(profile)); + return true; + } + bool Started() { return m_Started && !m_Stopped; } + int DateCode() { return m_DateCode; } + int Profile() { return m_Profile; } + int CurrentDateCode() + { + if (!Started() || !m_Manager) return -1; + return (m_Manager.GetYear() - 1900) * 10000 + m_Manager.GetMonth() * 100 + m_Manager.GetDay(); + } + string CurrentWeather() + { + if (!Started() || !m_Manager) return "unavailable"; + WeatherState weather = m_Manager.GetCurrentWeatherState(); + if (!weather) return "unavailable"; + return weather.GetStateName(); + } + string Status() + { + if (!Started()) return "Environment not started."; + return "Current date " + Date(CurrentDateCode()) + ", weather " + CurrentWeather() + " (round profile " + ProfileName(m_Profile) + ")."; + } + void Stop() { m_Stopped = true; m_Manager = null; } +} + +// Called after the server-owned admin authorization gate. Saving cannot change +// the active service; accepted changes are consumed by the next mission instance. +class ERR_EnvironmentCommands +{ + static bool Execute(ERR_Settings settings, ERR_EnvironmentService environment, array parts, array replies) + { + if (!Replication.IsServer() || !settings || parts.Count() < 2 || parts[0] != "mission" || (parts[1] != "date" && parts[1] != "weather")) return false; + if (parts.Count() == 3 && parts[2] == "show") + { + if (environment) replies.Insert(environment.Status()); + replies.Insert("Next round: date " + ERR_EnvironmentService.Date(settings.Get("startDateCode")) + ", weather " + ERR_EnvironmentService.ProfileName(settings.Get("weatherProfile")) + "."); + return true; + } + int value; + bool valid; + string key = "startDateCode"; + if (parts[1] == "weather") key = "weatherProfile"; + if (parts.Count() == 4 && parts[2] == "set") + { + if (key == "startDateCode") valid = ERR_EnvironmentService.ParseDate(parts[3], value); + else valid = ERR_EnvironmentService.ParseProfile(parts[3], value); + } + if (valid && settings.Set(key, value)) + replies.Insert("Saved for next round: date " + ERR_EnvironmentService.Date(settings.Get("startDateCode")) + ", weather " + ERR_EnvironmentService.ProfileName(settings.Get("weatherProfile")) + ". Current round unchanged."); + else replies.Insert("Invalid environment or settings could not be saved. Use mission date set YYYY-MM-DD (1900-2050) or authored; mission weather set authored|clear|overcast|rain. Previous setting retained."); + return true; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c new file mode 100644 index 0000000..3dedc73 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c @@ -0,0 +1,72 @@ +[BaseContainerProps()] +class ERR_EscapeGameOverScreenInfo : SCR_BaseGameOverScreenInfo +{ + protected ERR_PersonalEscapeResult PersonalResult(int playerId) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!controller || controller.GetPlayerId() != playerId) return ERR_PersonalEscapeResult.UNKNOWN; + return controller.ERR_EscapeResult(); + } + override string GetTitle(int playerId, array otherPlayerIds) + { + string title = "The helicopter escaped"; + if (PersonalResult(playerId) == ERR_PersonalEscapeResult.ESCAPED) title = "You escaped Everon"; + #ifdef WORKBENCH + PrintFormat("ERR RESULT UI: player=%1 title=%2", playerId, title); + #endif + return title; + } + override string GetDebriefing(int playerId, array otherPlayerIds) + { + ERR_PersonalEscapeResult result = PersonalResult(playerId); + if (result == ERR_PersonalEscapeResult.ESCAPED) + return "You crossed the extraction boundary aboard the helicopter."; + if (result == ERR_PersonalEscapeResult.MISSED) return "You did not escape with the helicopter."; + return "Your personal escape result is not available."; + } +} + +// End data and the controller replicate independently. Refresh an already-open +// native result screen when the identity-derived controller result arrives. +modded class SCR_GameOverScreenContentUIComponent +{ + protected bool m_ERREscapeContent; + override void InitContent(SCR_GameOverScreenUIContentData endScreenUIContent) + { + SCR_PlayerController.ERR_OnEscapeResultChanged().Remove(ERR_RefreshEscapeContent); + super.InitContent(endScreenUIContent); + m_ERREscapeContent = ERR_EscapeGameOverScreenInfo.Cast(endScreenUIContent.m_GameOverInfo) != null; + if (!m_ERREscapeContent) return; + SCR_PlayerController.ERR_OnEscapeResultChanged().Insert(ERR_RefreshEscapeContent); + ERR_RefreshEscapeContent(); + } + protected void ERR_RefreshEscapeContent() + { + if (!m_ERREscapeContent || !m_wRoot) return; + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + int playerId = -1; + if (controller) playerId = controller.GetPlayerId(); + ERR_EscapeGameOverScreenInfo info = new ERR_EscapeGameOverScreenInfo(); + TextWidget title = TextWidget.Cast(m_wRoot.FindAnyWidget(m_sTileName)); + TextWidget debrief = TextWidget.Cast(m_wRoot.FindAnyWidget(m_sDebriefingName)); + if (title) title.SetText(info.GetTitle(playerId, null)); + if (debrief) debrief.SetText(info.GetDebriefing(playerId, null)); + } + override void HandlerDeattached(Widget w) + { + SCR_PlayerController.ERR_OnEscapeResultChanged().Remove(ERR_RefreshEscapeContent); + m_ERREscapeContent = false; + super.HandlerDeattached(w); + } +} + +[BaseContainerProps()] +class ERR_FailureGameOverScreenInfo : SCR_BaseGameOverScreenInfo +{ + override string GetDebriefing(int playerId, array otherPlayerIds) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode && !mode.EndReason().IsEmpty()) return mode.EndReason(); + return "No surviving prisoners can complete the escape, or the extraction helicopter has been lost."; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c new file mode 100644 index 0000000..5d70758 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c @@ -0,0 +1,112 @@ +// Initial preparation only. A newly spawned vehicle may start asleep above its +// landing gear contact plane. Wake once, then observe native gravity/contact; +// never correct its transform, apply an impulse, or replenish its supplies. +class ERR_ExtractionPlacement +{ + protected ERR_GameMode m_Mode; + protected Vehicle m_Aircraft; + protected bool m_Stopped; + protected int m_WakeCount; + protected float m_Deadline; + protected float m_StableSince = -1; + protected float m_LastObservation = -1; + protected float m_NextDiagnostic; + protected ERR_PrepareResult m_Result = ERR_PrepareResult.PENDING; + protected string m_Failure; + void ERR_ExtractionPlacement(ERR_GameMode mode, Vehicle aircraft) + { + m_Mode = mode; m_Aircraft = aircraft; + m_Deadline = GetGame().GetWorld().GetWorldTime() + 30000; + } + static bool CanWake(bool initialized, int count, float now, float deadline) + { + return initialized && count == 0 && now < deadline; + } + static bool Fresh(float previous, float now) + { + return previous >= 0 && now >= previous && now - previous <= 1500; + } + static bool QualificationAllowed(bool previouslyReady, float now, float deadline) + { + return previouslyReady || now < deadline; + } + static bool Stable(float since, float previous, float now) + { + return since >= 0 && previous >= since && now >= previous && now - previous <= 1500 && now - since >= 1000; + } + int WakeCount() { return m_WakeCount; } + bool Ready() { return !m_Stopped && m_Result == ERR_PrepareResult.READY; } + string FailureReason() { return m_Failure; } + void Stop() { m_Stopped = true; } + protected ERR_PrepareResult Fail(string reason) + { + m_Failure = reason; m_Result = ERR_PrepareResult.FAILED; + Print("Rereintroduced [extraction placement]: " + reason, LogLevel.ERROR); + return m_Result; + } + protected void Diagnostic(bool ready) + { + if (!m_Aircraft) return; + Physics physics = m_Aircraft.GetPhysics(); + HelicopterControllerComponent controller = HelicopterControllerComponent.Cast(m_Aircraft.FindComponent(HelicopterControllerComponent)); + vector entity[4]; m_Aircraft.GetWorldTransform(entity); + PrintFormat("ERR EXTRACTION PLACEMENT: wakes=%1 alive=%2 ready=%3 origin=%4 up=%5", m_WakeCount, ERR_Actors.Alive(m_Aircraft), ready, entity[3], entity[1][1]); + if (physics) PrintFormat("ERR EXTRACTION PHYSICS: dynamic=%1 awake=%2 speed=%3 angularSpeed=%4", physics.IsDynamic(), physics.IsActive(), physics.GetVelocity().Length(), physics.GetAngularVelocity().Length()); + if (controller && controller.GetSimulation()) + { + vector nativeTransform[4]; controller.GetSimulation().GetWorldTransform(nativeTransform); + PrintFormat("ERR EXTRACTION NATIVE: valid=%1 contact=%2 engine=%3 origin=%4 up=%5 entityDifference=%6", controller.GetSimulation().IsValid(), controller.GetSimulation().HasAnyGroundContact(), controller.GetSimulation().EngineIsOn(), nativeTransform[3], nativeTransform[1][1], vector.Distance(nativeTransform[3], entity[3])); + } + // Diagnostics read every wheel even while physics is awake. The strict parked + // fallback itself still requires sleep and never alters the vehicle. + vector front, left, right; + if (ERR_CasualtyGroundSupport.WheelCenter(m_Aircraft, "v_wheel_F", front, true)) ERR_CasualtyGroundSupport.WheelSupported(m_Aircraft, front, 0.30, true); + if (ERR_CasualtyGroundSupport.WheelCenter(m_Aircraft, "v_wheel_bL", left, true)) ERR_CasualtyGroundSupport.WheelSupported(m_Aircraft, left, 0.45, true); + if (ERR_CasualtyGroundSupport.WheelCenter(m_Aircraft, "v_wheel_bR", right, true)) ERR_CasualtyGroundSupport.WheelSupported(m_Aircraft, right, 0.45, true); + } + ERR_PrepareResult Poll(float now) + { + if (m_Stopped || m_Result == ERR_PrepareResult.FAILED) return ERR_PrepareResult.FAILED; + if (!Replication.IsServer() || !m_Mode || m_Mode.Phase() != ERR_Phase.PREPARING || m_Mode.ExtractionVehicle() != m_Aircraft) return Fail("initial aircraft ownership/phase changed"); + if (!ERR_Actors.Alive(m_Aircraft) || !m_Aircraft.GetPrefabData() || !m_Aircraft.GetPrefabData().GetPrefabName().Contains("/Mi8MT/")) return Fail("registered initial Mi8 is missing, destroyed or unsupported"); + Physics physics = m_Aircraft.GetPhysics(); + HelicopterControllerComponent controller = HelicopterControllerComponent.Cast(m_Aircraft.FindComponent(HelicopterControllerComponent)); + bool initialized = physics && physics.IsDynamic() && controller && controller.GetSimulation() && controller.GetSimulation().IsValid(); + if (CanWake(initialized, m_WakeCount, now, m_Deadline)) + { + // Production preparation owns the empty registered aircraft. The count is + // latched BEFORE the native call, preventing repeated wakes on any callback. + m_WakeCount = 1; + physics.SetActive(ActiveState.ACTIVE); + m_LastObservation = now; + Diagnostic(false); + m_NextDiagnostic = now + 1000; + return ERR_PrepareResult.PENDING; // never accept in the mutation frame + } + FuelManagerComponent fuel = FuelManagerComponent.Cast(m_Aircraft.FindComponent(FuelManagerComponent)); + bool ready = initialized && m_WakeCount == 1 && fuel && fuel.HasFuel() && ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft); + if (now >= m_NextDiagnostic) + { + Diagnostic(ready); + PrintFormat("ERR EXTRACTION FUEL: manager=%1 hasFuel=%2", fuel != null, fuel && fuel.HasFuel()); + m_NextDiagnostic = now + 1000; + } + if (!ready || !Fresh(m_LastObservation, now)) m_StableSince = -1; + if (ready) + { + if (m_StableSince < 0) m_StableSince = now; + if (Stable(m_StableSince, m_LastObservation, now)) + { + if (!QualificationAllowed(m_Result == ERR_PrepareResult.READY, now, m_Deadline)) return Fail("initial aircraft stable qualification missed the 30-second preparation deadline"); + if (m_Result != ERR_PrepareResult.READY) Print("Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake"); + m_Result = ERR_PrepareResult.READY; + m_LastObservation = now; + return m_Result; + } + } + m_Result = ERR_PrepareResult.PENDING; + m_LastObservation = now; + if (now >= m_Deadline) return Fail("initial aircraft did not become alive, fueled and physically supported/stable within 30 seconds; no replacement or repositioning requested"); + return m_Result; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionService.c new file mode 100644 index 0000000..e9a9082 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ExtractionService.c @@ -0,0 +1,101 @@ +enum ERR_ExtractionState { WAITING, ESCAPED, LOST } + +// Mission progression consumes the result; this service never spawns a vehicle. +class ERR_ExtractionService +{ + static const int REQUIRED_SEATS = 12; + protected ref ERR_PlayerRoster m_Roster; + protected Vehicle m_Vehicle; + protected bool m_Assigned; + protected bool m_Begun; + protected bool m_Stopped; + protected vector m_Center; + protected float m_Radius; + protected ERR_ExtractionState m_State; + protected ref set m_Escapees = new set(); + protected int m_ParticipantCount; + protected ref ScriptInvoker m_OnResolved = new ScriptInvoker(); + + void ERR_ExtractionService(ERR_PlayerRoster roster) { m_Roster = roster; } + Vehicle VehicleEntity() { return m_Vehicle; } + ERR_ExtractionState State() { return m_State; } + ScriptInvoker OnResolved() { return m_OnResolved; } + int EscapedCount() { return m_Escapees.Count(); } + int LeftBehindCount() { return m_ParticipantCount - m_Escapees.Count(); } + bool DidEscape(UUID identity) { return m_Escapees.Contains(identity); } + + bool Assign(Vehicle vehicle) + { + if (!Replication.IsServer() || m_Assigned || m_Stopped || !ERR_Actors.Alive(vehicle)) return false; + m_Vehicle = vehicle; + m_Assigned = true; + return true; + } + int Seats(out array seats) + { + seats.Clear(); + if (!m_Vehicle) return 0; + BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(m_Vehicle.FindComponent(BaseCompartmentManagerComponent)); + if (!manager) return 0; + array all = {}; + manager.GetCompartments(all); + foreach (BaseCompartmentSlot slot : all) + { + if (!slot) continue; + ECompartmentType type = SCR_CompartmentAccessComponent.GetCompartmentType(slot); + if (type == ECompartmentType.PILOT || type == ECompartmentType.CARGO) seats.Insert(slot); + } + return seats.Count(); + } + bool Ready() + { + if (!m_Assigned || !ERR_Actors.Alive(m_Vehicle) || !m_Vehicle.FindComponent(HelicopterControllerComponent)) return false; + array seats = {}; + if (Seats(seats) < REQUIRED_SEATS) return false; + foreach (BaseCompartmentSlot slot : seats) + if (SCR_CompartmentAccessComponent.GetCompartmentType(slot) == ECompartmentType.PILOT) return true; + return false; + } + bool Begin(vector center, float radius) + { + if (!Replication.IsServer() || m_Begun || m_Stopped || !m_Roster || radius <= 0 || !Ready()) return false; + m_Center = center; + m_Radius = radius; + m_Begun = true; + return true; + } + void Tick(ERR_Phase phase) + { + if (!Replication.IsServer() || !m_Begun || m_Stopped || m_State != ERR_ExtractionState.WAITING) return; + if (phase < ERR_Phase.PRISON || ERR_MissionRules.Terminal(phase)) return; + if (!ERR_Actors.Alive(m_Vehicle)) { Resolve(ERR_ExtractionState.LOST); return; } + if (phase != ERR_Phase.EXTRACTION || vector.DistanceXZ(m_Vehicle.GetOrigin(), m_Center) <= m_Radius) return; + array lives = {}; + m_Roster.Participants(lives); + foreach (ERR_PlayerLife life : lives) + { + if (!ERR_Actors.Alive(life.Actor) || CompartmentAccessComponent.GetVehicleIn(life.Actor) != m_Vehicle) continue; + // Reserved disconnected characters and unconscious passengers remain alive. + // A recycled connection ID is never an identity for the escape snapshot. + m_Escapees.Insert(life.AccountId); + } + if (m_Escapees.IsEmpty()) return; + m_ParticipantCount = lives.Count(); + Resolve(ERR_ExtractionState.ESCAPED); + } + protected void Resolve(ERR_ExtractionState result) + { + m_State = result; + m_OnResolved.Invoke(result); + } + void ConnectedWinners(out array winners) + { + winners.Clear(); + if (m_State != ERR_ExtractionState.ESCAPED || !m_Roster) return; + array lives = {}; + m_Roster.Participants(lives); + foreach (ERR_PlayerLife life : lives) + if (life.Connected && m_Roster.Get(life.ConnectionId) == life && m_Escapees.Contains(life.AccountId)) winners.Insert(life.ConnectionId); + } + void Stop() { m_Stopped = true; } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c new file mode 100644 index 0000000..d2c8e9b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c @@ -0,0 +1,42 @@ +// One authored faction/asset contract, supplied by the game mode resource. +[BaseContainerProps()] +class ERR_FactionCatalog +{ + [Attribute()] string PlayerFactionKey; + [Attribute()] string EnemyFactionKey; + [Attribute("", UIWidgets.ResourceNamePicker, "Unarmed prisoner character", "et")] + ResourceName PrisonerPrefab; + [Attribute("", UIWidgets.ResourceNamePicker, "Initial physical guard squad", "et")] + ResourceName GuardGroupPrefab; + [Attribute("", UIWidgets.ResourceNamePicker, "Extraction helicopter", "et")] + ResourceName ExtractionPrefab; + + bool Valid() + { + return !PlayerFactionKey.IsEmpty() && !EnemyFactionKey.IsEmpty() && PlayerFactionKey != EnemyFactionKey && !PrisonerPrefab.IsEmpty() && !GuardGroupPrefab.IsEmpty() && !ExtractionPrefab.IsEmpty(); + } + Faction PlayerFaction() + { + if (!GetGame().GetFactionManager()) return null; + return GetGame().GetFactionManager().GetFactionByKey(PlayerFactionKey); + } + Faction EnemyFaction() + { + if (!GetGame().GetFactionManager()) return null; + return GetGame().GetFactionManager().GetFactionByKey(EnemyFactionKey); + } + bool WorldReady() + { + if (!Valid()) return false; + Faction player = PlayerFaction(); + Faction enemy = EnemyFaction(); + if (!player || !enemy || !player.IsFactionEnemy(enemy) || !enemy.IsFactionEnemy(player)) return false; + array required = {PrisonerPrefab, GuardGroupPrefab, ExtractionPrefab}; + foreach (ResourceName prefab : required) + { + Resource resource = Resource.Load(prefab); + if (!resource || !resource.IsValid()) return false; + } + return true; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_GameMode.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_GameMode.c new file mode 100644 index 0000000..9eee930 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_GameMode.c @@ -0,0 +1,427 @@ +class ERR_GameModeClass : SCR_BaseGameModeClass {} +class ERR_GameMode : SCR_BaseGameMode +{ + [RplProp(), Attribute("6090 0 7160", UIWidgets.Coords, "Prison position; configured from authored scenario")] + protected vector m_PrisonPosition; + [Attribute("6090 0 7160", UIWidgets.Coords, "Centre of extraction boundary")] + protected vector m_EscapeCenter; + [RplProp(), Attribute("9000", UIWidgets.EditBox, "Helicopter must cross this radius to escape")] + protected float m_EscapeRadius; + [RplProp()] + protected ERR_Phase m_Phase; + [Attribute("{BE50B97B8E2B36E6}Configs/ERR/VanillaFactions.conf", UIWidgets.ResourceNamePicker, "Faction and asset catalog", "conf")] + protected ResourceName m_FactionDefinition; + [RplProp()] + protected string m_PreparationError; + protected ref ERR_FactionCatalog m_Factions; + protected ref ERR_Settings m_Settings; + protected ref ERR_TimeService m_Time = new ERR_TimeService(); + protected ref ERR_EnvironmentService m_Environment = new ERR_EnvironmentService(); + protected ref ERR_DiscoveryService m_Discovery; + protected ref ERR_Objectives m_Objectives; + protected ref ERR_PlayerRoster m_Roster = new ERR_PlayerRoster(); + protected ref ERR_AdminService m_Admin = new ERR_AdminService(); + protected ref ERR_CommandService m_Command; + protected ref array m_Locations = {}; + protected ref array m_OwnedEntities = {}; + protected ref ERR_ExtractionService m_Extraction; + [RplProp()] + protected string m_EndReason; + protected ref ERR_RadioDefenceService m_RadioDefence; + [RplProp()] + protected ERR_RadioFeedback m_RadioFeedback; + protected ref ERR_RecoveryService m_Recovery; + protected ref ERR_PrisonEscapeService m_PrisonEscape; + [RplProp()] + protected string m_RecoveryStatus; + protected bool m_StartedPlayers; + protected bool m_Stopped; + protected float m_NoSurvivorsSince = -1; + protected ref ScriptInvoker m_OnPhaseChanged = new ScriptInvoker(); + protected ref ScriptInvoker m_OnTick = new ScriptInvoker(); + protected ref ScriptInvoker m_OnStop = new ScriptInvoker(); + protected ref ScriptInvoker m_OnLocationDiscovered = new ScriptInvoker(); + protected ref ScriptInvoker m_OnGroup = new ScriptInvoker(); + + static ERR_GameMode Get() + { + if (!GetGame()) return null; + return ERR_GameMode.Cast(GetGame().GetGameMode()); + } + ERR_Phase Phase() { return m_Phase; } + ERR_PlayerRoster Players() { return m_Roster; } + ERR_AdminService Admin() { return m_Admin; } + ERR_Settings Settings() { return m_Settings; } + ERR_TimeService Time() { return m_Time; } + ERR_EnvironmentService Environment() { return m_Environment; } + ERR_RadioDefenceService RadioDefence() { return m_RadioDefence; } + ERR_RecoveryService Recovery() { return m_Recovery; } + ERR_PrisonEscapeService PrisonEscape() { return m_PrisonEscape; } + string RecoveryStatus() { return m_RecoveryStatus; } + ERR_CommandService Command() { return m_Command; } + ERR_Objectives Objectives() { return m_Objectives; } + ERR_ExtractionService Extraction() { return m_Extraction; } + string EndReason() { return m_EndReason; } + Vehicle ExtractionVehicle() + { + if (!m_Extraction) return null; + return m_Extraction.VehicleEntity(); + } + float EscapeRadius() { return m_EscapeRadius; } + ERR_RadioFeedback RadioFeedback() { return m_RadioFeedback; } + // Called only from existing authority transition/tick paths; no extra timer. + protected bool RefreshRadioFeedback() + { + if (!Replication.IsServer()) return false; + bool defending = m_Phase == ERR_Phase.RADIO_DEFENCE && m_RadioDefence != null && m_RadioDefence.State() == ERR_RadioDefenceState.DEFENDING; + bool occupied = defending && m_RadioDefence.Occupied(); + ERR_RadioFeedback next = ERR_RadioFeedbackRules.Next(m_RadioFeedback, defending, occupied); + if (next == m_RadioFeedback) return false; + m_RadioFeedback = next; + return true; + } + bool DefenceOccupied() { return m_RadioDefence && m_RadioDefence.Occupied(); } + int DefenceSecondsRemaining() + { + if (!m_RadioDefence) return 0; + return m_RadioDefence.SecondsRemaining(GetWorld().GetWorldTime()); + } + ScriptInvoker OnPhaseChanged() { return m_OnPhaseChanged; } + ScriptInvoker OnTick() { return m_OnTick; } + ScriptInvoker OnStop() { return m_OnStop; } + ScriptInvoker OnGroup() { return m_OnGroup; } + ScriptInvoker OnLocationDiscovered() { return m_OnLocationDiscovered; } + void LocationDiscovered(ERR_LocationComponent location, int previous, int current) + { + if (!Replication.IsServer() || !m_Locations.Contains(location) || current <= previous) return; + m_OnLocationDiscovered.Invoke(location, previous, current); + } + ERR_FactionCatalog Factions() { return m_Factions; } + Faction PlayerFaction() + { + if (!m_Factions) return null; + return m_Factions.PlayerFaction(); + } + Faction EnemyFaction() + { + if (!m_Factions) return null; + return m_Factions.EnemyFaction(); + } + string PreparationError() { return m_PreparationError; } + string Status() + { + if (!m_PreparationError.IsEmpty()) return "Mission startup failed: " + m_PreparationError; + if (!m_EndReason.IsEmpty()) return m_EndReason; + if (m_Phase == ERR_Phase.PREPARING) return "Preparing mission sites and physical supplies."; + string phase; + if (m_Phase == ERR_Phase.PRISON) phase = "Escape the prison"; + else if (m_Phase == ERR_Phase.RADIO_SEARCH) phase = "Locate the radio station"; + else if (m_Phase == ERR_Phase.RADIO_DEFENCE) phase = "Defend the radio transmission"; + else if (m_Phase == ERR_Phase.EXTRACTION) phase = "Helicopter extraction"; + else if (m_Phase == ERR_Phase.VICTORY) phase = "Escape complete"; + else phase = "Mission lost"; + if (!m_RecoveryStatus.IsEmpty()) phase += " " + m_RecoveryStatus; + return phase; + } + protected void RecoveryChanged(string message) + { + if (!Replication.IsServer() || m_RecoveryStatus == message) return; + m_RecoveryStatus = message; + Replication.BumpMe(); + } + bool AbandonRound() + { + if (!Replication.IsServer() || !Active() || m_Stopped || !m_PreparationError.IsEmpty()) return false; + if (!ERR_MissionRules.CanTransition(m_Phase, ERR_Phase.DEFEAT)) return false; + m_EndReason = "An administrator abandoned this round."; + return Transition(ERR_Phase.DEFEAT); + } + protected void FailPreparation(string detail) + { + if (!Replication.IsServer() || m_Phase != ERR_Phase.PREPARING || !m_PreparationError.IsEmpty()) return; + m_PreparationError = detail; + Replication.BumpMe(); + Print("Rereintroduced: scenario preparation failed; spawning remains disabled: " + detail, LogLevel.ERROR); + StopServices(); + ERR_SiteService sites = Sites(); + if (sites) sites.Rollback(); + for (int i = m_OwnedEntities.Count() - 1; i >= 0; i--) ERR_Actors.DeleteSpawned(m_OwnedEntities[i]); + m_OwnedEntities.Clear(); + } + vector PrisonPosition() { return ERR_Actors.Ground(m_PrisonPosition); } + bool Active() { return m_Phase >= ERR_Phase.PRISON && !ERR_MissionRules.Terminal(m_Phase); } + protected ERR_CommandService CreateCommandService() { return null; } + + void ConfigureStart(vector position) + { + if (!Replication.IsServer() || m_Phase != ERR_Phase.PREPARING) return; + m_PrisonPosition = position; + m_EscapeCenter = position; + Replication.BumpMe(); + } + ERR_SiteService Sites() + { + ERR_ScenarioComponent scenario = ERR_ScenarioComponent.Cast(FindComponent(ERR_ScenarioComponent)); + if (!scenario) return null; + return scenario.Sites(); + } + void RegisterLocation(ERR_LocationComponent location) + { + if (!location || location.Id().IsEmpty() || m_Locations.Contains(location)) return; + foreach (ERR_LocationComponent existing : m_Locations) + { + if (existing.Id() == location.Id()) + { + Print("Rereintroduced: duplicate location ID " + location.Id(), LogLevel.ERROR); + return; + } + } + m_Locations.Insert(location); + } + bool HasLocation(ERR_LocationComponent location) { return location && m_Locations.Contains(location); } + void UnregisterLocation(ERR_LocationComponent location) { m_Locations.RemoveItem(location); } + void Locations(out array locations) { locations.Copy(m_Locations); } + void Own(IEntity entity) { if (entity && !m_OwnedEntities.Contains(entity)) m_OwnedEntities.Insert(entity); } + bool SetExtractionVehicle(Vehicle vehicle) + { + return Replication.IsServer() && m_Phase == ERR_Phase.PREPARING && m_Extraction && m_Extraction.Assign(vehicle); + } + void PublishEscapeResults(bool reset = false) + { + if (!Replication.IsServer()) return; + array connected = {}; + GetGame().GetPlayerManager().GetPlayers(connected); + foreach (int id : connected) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(id)); + if (!controller) continue; + if (reset) controller.ERR_ResetEscapeResult(); + else controller.ERR_PublishEscapeResult(m_Roster, m_Extraction); + } + } + void RegisterGroup(SCR_AIGroup group) + { + if (!Replication.IsServer() || !group) return; + Own(group); + if (m_Command) m_Command.RegisterGroup(group); + m_OnGroup.Invoke(group); + } + + bool Transition(ERR_Phase phase) + { + if (!Replication.IsServer() || !m_PreparationError.IsEmpty() || !ERR_MissionRules.CanTransition(m_Phase, phase)) return false; + ERR_Phase previous = m_Phase; + m_Phase = phase; + RefreshRadioFeedback(); + if (ERR_MissionRules.Terminal(phase)) PublishEscapeResults(); + Replication.BumpMe(); + PrintFormat("Rereintroduced [mission]: phase %1 -> %2", previous, phase); + m_OnPhaseChanged.Invoke(previous, phase); + if (ERR_MissionRules.Terminal(phase)) + { + StopServices(); + array winners = {}; + if (phase == ERR_Phase.VICTORY && m_Extraction) m_Extraction.ConnectedWinners(winners); + EGameOverTypes reason = EGameOverTypes.LOOSE; + if (phase == ERR_Phase.VICTORY) reason = EGameOverTypes.VICTORY; + EndGameMode(SCR_GameModeEndData.Create(reason, winners)); + } + return true; + } + + bool UnlockPrison(IEntity player) + { + if (!Replication.IsServer() || !m_Roster || !m_Roster.CurrentActor(player) || !ERR_Actors.CanFight(player)) return false; + if (!PlayerFaction() || SCR_FactionManager.SGetFaction(player) != PlayerFaction()) return false; + if (vector.DistanceXZ(player.GetOrigin(), PrisonPosition()) > 15) return false; + return m_Phase == ERR_Phase.PRISON && Transition(ERR_Phase.RADIO_SEARCH); + } + + bool TuneRadio(IEntity player, ERR_LocationComponent location) + { + return m_RadioDefence && m_RadioDefence.Begin(player, location); + } + protected void RadioStarted(ERR_LocationComponent location) + { + if (!Replication.IsServer() || !m_RadioDefence || location != m_RadioDefence.Location()) return; + if (!Transition(ERR_Phase.RADIO_DEFENCE)) m_RadioDefence.Stop(); + } + protected void RadioCompleted(ERR_LocationComponent location) + { + if (!Replication.IsServer() || m_Phase != ERR_Phase.RADIO_DEFENCE || !m_RadioDefence || m_RadioDefence.State() != ERR_RadioDefenceState.COMPLETED || location != m_RadioDefence.Location()) return; + foreach (ERR_LocationComponent candidate : m_Locations) + if (candidate.Kind() == ERR_LocationKind.EXTRACTION) candidate.Discover(0, 100); + Transition(ERR_Phase.EXTRACTION); + } + + void PlayerSpawned(int id, IEntity actor) + { + if (!Replication.IsServer() || !actor || ERR_MissionRules.Terminal(m_Phase)) return; + m_Roster.Spawned(id, actor); + m_StartedPlayers = true; + m_NoSurvivorsSince = -1; + } + + protected string SettingsPath() { return ERR_Settings.PATH; } + + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (SCR_Global.IsEditMode()) return; + m_Factions = ERR_FactionCatalog.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab(m_FactionDefinition)); + if (!System.IsConsoleApp()) GetGame().GetCallqueue().CallLater(BindLocalObserver, 250, true); + if (!Replication.IsServer()) return; + m_Settings = new ERR_Settings(SettingsPath()); + OnStop().Insert(m_Environment.Stop); + m_Recovery = new ERR_RecoveryService(this); + m_Recovery.OnChanged().Insert(RecoveryChanged); + OnStop().Insert(m_Recovery.Stop); + m_RadioDefence = new ERR_RadioDefenceService(this); + m_RadioDefence.OnStarted().Insert(RadioStarted); + m_RadioDefence.OnCompleted().Insert(RadioCompleted); + OnPhaseChanged().Insert(m_RadioDefence.PhaseChanged); + OnStop().Insert(m_RadioDefence.Stop); + m_Extraction = new ERR_ExtractionService(m_Roster); + PublishEscapeResults(true); + m_Extraction.OnResolved().Insert(ExtractionResolved); + OnStop().Insert(m_Extraction.Stop); + m_PrisonEscape = new ERR_PrisonEscapeService(this); + OnPhaseChanged().Insert(m_PrisonEscape.PhaseChanged); + OnTick().Insert(m_PrisonEscape.Tick); + OnStop().Insert(m_PrisonEscape.Stop); + m_Roster.OnChanged().Insert(m_PrisonEscape.RosterChanged); + m_Discovery = new ERR_DiscoveryService(this); + OnTick().Insert(m_Discovery.Tick); + OnStop().Insert(m_Discovery.Stop); + m_Objectives = new ERR_Objectives(this); + OnPhaseChanged().Insert(m_Objectives.PhaseChanged); + OnTick().Insert(m_Objectives.Tick); + OnStop().Insert(m_Objectives.Stop); + m_Command = CreateCommandService(); + GetGame().GetCallqueue().CallLater(ServerTick, 1000, true); + GetGame().GetCallqueue().CallLater(StartScenario, 1500, false); + } + + protected void BindLocalObserver() + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!controller) return; + controller.ERR_StartObserverMonitor(); + GetGame().GetCallqueue().Remove(BindLocalObserver); + } + + protected void StartScenario() + { + if (m_Phase != ERR_Phase.PREPARING || !m_PreparationError.IsEmpty()) return; + if (!m_Factions || !m_Factions.WorldReady()) { FailPreparation("The configured player and enemy factions or required assets are missing, invalid or not hostile."); return; } + // Scenario content is created through a separate authoring component. + ERR_ScenarioComponent scenario = ERR_ScenarioComponent.Cast(FindComponent(ERR_ScenarioComponent)); + ERR_PrepareResult prepared = ERR_PrepareResult.FAILED; + if (scenario) prepared = scenario.Prepare(); + if (prepared == ERR_PrepareResult.PENDING) + { + GetGame().GetCallqueue().CallLater(StartScenario, 250, false); + return; + } + if (prepared == ERR_PrepareResult.FAILED) + { + string detail = "Scenario component is missing."; + if (scenario) detail = scenario.FailureReason(); + FailPreparation(detail); + return; + } + if (!m_Extraction || !m_Extraction.Begin(m_EscapeCenter, m_EscapeRadius)) + { + FailPreparation("The extraction vehicle must be a helicopter with a pilot position and at least twelve pilot/passenger seats, with a valid escape boundary."); + return; + } + if (!m_Environment.Start(this)) { FailPreparation("The selected date or vanilla weather profile could not be initialized."); return; } + if (!m_Time.Start(this)) { FailPreparation("The world clock could not be initialized."); return; } + Transition(ERR_Phase.PRISON); + } + + protected void ExtractionResolved(ERR_ExtractionState result) + { + if (!Replication.IsServer() || !Active()) return; + if (result == ERR_ExtractionState.LOST) + { + m_EndReason = "The extraction helicopter was lost. No replacement is available."; + Transition(ERR_Phase.DEFEAT); + } + else if (result == ERR_ExtractionState.ESCAPED) + { + m_EndReason = string.Format("Escape complete: %1 escaped; %2 did not escape.", m_Extraction.EscapedCount(), m_Extraction.LeftBehindCount()); + Transition(ERR_Phase.VICTORY); + } + } + + protected void ServerTick() + { + if (!Replication.IsServer() || !Active()) return; + float now = GetWorld().GetWorldTime(); + m_Extraction.Tick(m_Phase); + if (!Active()) return; + m_RadioDefence.Tick(now); + if (RefreshRadioFeedback()) Replication.BumpMe(); + m_Recovery.Tick(); + if (!Active()) return; + if (GetGame().GetPlayerManager().GetPlayerCount() == 0) + { + m_NoSurvivorsSince = -1; + return; + } + if (m_StartedPlayers && !m_Roster.HasSurvivor()) + { + if (m_NoSurvivorsSince < 0) m_NoSurvivorsSince = now; + if (now - m_NoSurvivorsSince >= 30000) + { + m_EndReason = "No surviving prisoners remain."; + Transition(ERR_Phase.DEFEAT); + return; + } + } + else m_NoSurvivorsSince = -1; + array connected = {}; + GetGame().GetPlayerManager().GetPlayers(connected); + foreach (int id : connected) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(id)); + if (controller) controller.ERR_UpdateObserverServer(); + } + if (m_Command) m_Command.Tick(now); + m_OnTick.Invoke(now); + } + + protected void StopServices() + { + if (m_Stopped) return; + m_Stopped = true; + GetGame().GetCallqueue().Remove(ServerTick); + if (m_Command) m_Command.Stop(); + m_OnStop.Invoke(); + if (Replication.IsServer()) + { + array connected = {}; + GetGame().GetPlayerManager().GetPlayers(connected); + foreach (int id : connected) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(id)); + if (controller) controller.ERR_SetObserver(ERR_ObserverReason.NONE); + } + foreach (IEntity entity : m_OwnedEntities) + if (SCR_AIGroup.Cast(entity)) ERR_Actors.DeleteSpawned(entity); + } + } + + void ~ERR_GameMode() + { + if (GetGame()) + { + GetGame().GetCallqueue().Remove(StartScenario); + GetGame().GetCallqueue().Remove(BindLocalObserver); + StopServices(); + } + m_Locations.Clear(); + m_OwnedEntities.Clear(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c new file mode 100644 index 0000000..5ec5d04 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c @@ -0,0 +1,12 @@ +// Initial preparation only. A READY site service never consults this rule again. +class ERR_InitialGuardRules +{ + static float TimeoutMilliseconds() { return 90000; } + static ERR_PrepareResult State(int requested, int physical, int conscious, bool queueComplete, bool expired) + { + if (requested <= 0 || physical > requested || conscious > physical || conscious < 0 || physical < 0) return ERR_PrepareResult.FAILED; + if (expired) return ERR_PrepareResult.FAILED; + if (physical == requested && conscious == requested && queueComplete) return ERR_PrepareResult.READY; + return ERR_PrepareResult.PENDING; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Inventory.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Inventory.c new file mode 100644 index 0000000..844ad95 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Inventory.c @@ -0,0 +1,19 @@ +// GetItems may enumerate the same physical entity through multiple storages. +// Identity is the entity reference, never its prefab: distinct rounds still count. +class ERR_Inventory +{ + static int AppendUnique(InventoryStorageManagerComponent inventory, notnull array items) + { + if (!inventory) return items.Count(); + array raw = {}; + inventory.GetItems(raw); + foreach (IEntity item : raw) + if (item && !items.Contains(item)) items.Insert(item); + return items.Count(); + } + static int Items(InventoryStorageManagerComponent inventory, out array items) + { + items.Clear(); + return AppendUnique(inventory, items); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c new file mode 100644 index 0000000..6868b2d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c @@ -0,0 +1,62 @@ +// A previously initialized off-world medical kit can outlive its weak catalog. +// Runtime/startup validation remains vanilla. Only owned teardown bypasses the +// unrelated initialization gate; no catalog is kept alive or fabricated. +class ERR_ItemStationTeardownRules +{ + static bool Recover(bool initialized, bool scoped, bool offWorld, bool catalogPresent, bool editMode) + { + return initialized && scoped && offWorld && !catalogPresent && !editMode; + } +} + +modded class SCR_ResupplyMedicalGadgetSupportStationComponent +{ + protected bool m_ERRTeardownScope; + protected bool m_ERRTeardownInitializing; + protected bool m_ERRTeardownInitialized; + protected bool m_ERRTeardownDone; + protected SCR_ResourceComponent m_ERRTeardownResource; + + protected bool ERR_KnownOffWorldKit(IEntity owner) + { + if (!GetGame() || !owner || owner.GetWorld() == GetGame().GetWorld() || !owner.GetPrefabData()) return false; + ResourceName prefab = owner.GetPrefabData().GetPrefabName(); + return prefab == "{AE578EEA4244D41F}Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et" || prefab == "{21EF98BFC1EB3793}Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et"; + } + + protected override void DelayedInit(IEntity owner) + { + m_ERRTeardownInitializing = ERR_GameMode.Get() && ERR_KnownOffWorldKit(owner); + super.DelayedInit(owner); + m_ERRTeardownInitializing = false; + } + + protected override void AddRemoveOnDamageStateChanged(IEntity owner, bool subscribe) + { + super.AddRemoveOnDamageStateChanged(owner, subscribe); + // Vanilla reaches this only after the complete virtual InitValidSetup passed. + if (!subscribe || !m_ERRTeardownInitializing) return; + m_ERRTeardownScope = true; + m_ERRTeardownInitialized = true; + if (m_ResourceConsumer || m_ResourceGenerator) m_ERRTeardownResource = GetResourceComponent(); + } + + override void OnDelete(IEntity owner) + { + bool offWorld = owner && (!GetGame() || owner.GetWorld() != GetGame().GetWorld()); + if (!ERR_ItemStationTeardownRules.Recover(m_ERRTeardownInitialized, m_ERRTeardownScope, offWorld, m_EntityCatalogManager != null, SCR_Global.IsEditMode())) + { + super.OnDelete(owner); + return; + } + if (m_ERRTeardownDone) return; + m_ERRTeardownDone = true; + if (GetGame()) GetGame().GetCallqueue().Remove(DelayedInit); + AddRemoveOnDamageStateChanged(owner, false); + // These exact stations reject UsesRange at initialization and were never + // registered with the range manager. Native resource subscription is separate + // from range, and still needs removing when its component remains alive. + if (m_ERRTeardownResource) m_ERRTeardownResource.TEMP_GetOnInteractorReplicated().Remove(TEMP_OnInteractorReplicated); + m_ERRTeardownResource = null; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c new file mode 100644 index 0000000..c997b3f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c @@ -0,0 +1,23 @@ +// Attach only to a successor-owned prisoner prefab, with a native action duration. +class ERR_LoadCasualtyAction : ScriptedUserAction +{ + override bool CanBeShownScript(IEntity user) + { + return ERR_CasualtyLoadingRules.Nearby(ERR_GameMode.Get(), user, GetOwner()); + } + override bool CanBePerformedScript(IEntity user) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!ERR_CasualtyLoadingRules.Nearby(mode, user, GetOwner())) return false; + // Clients do not own the authoritative roster. Server always checks again. + if (!Replication.IsServer()) return true; + return mode.CasualtyLoading() && mode.CasualtyLoading().CanLoad(user, GetOwner()); + } + override bool HasLocalEffectOnlyScript() { return false; } + override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity) + { + if (!Replication.IsServer() || pOwnerEntity != GetOwner()) return; + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode && mode.CasualtyLoading()) mode.CasualtyLoading().Begin(pUserEntity, pOwnerEntity); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c new file mode 100644 index 0000000..55bd09f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c @@ -0,0 +1,107 @@ +// A round-local roster identity is not a Bohemia/platform identity. Only the +// real native admission callback may select it for the sole offline controller. +class ERR_LocalAdmissionRules +{ + static bool Context(bool server, int sessionMode, int count, bool connected, bool sameLocal, bool sameManager, int connection, int controllerId) + { + return server && sessionMode == RplMode.None && count == 1 && connected && sameLocal && sameManager && connection > 0 && controllerId == connection; + } +} +class ERR_LocalAdmission +{ + protected ERR_GameMode m_Mode; + protected SCR_PlayerController m_Controller; + protected int m_Connection; + protected UUID m_Key; + protected bool m_Selected; + protected bool m_OfflineMode; + protected bool m_LocalKey; + protected bool m_Failed; + protected bool m_Stopped; + protected bool m_RefusalLogged; + void ERR_LocalAdmission(ERR_GameMode mode) { m_Mode = mode; m_OfflineMode = RplSession.Mode() == RplMode.None; } + bool OfflineMode() { return m_OfflineMode; } + bool Selected() { return m_Selected; } + bool LocalKey() { return m_LocalKey; } + protected bool Context(ERR_GameMode mode, int connection, SCR_PlayerController controller) + { + if (!GetGame()) return false; + PlayerManager manager = GetGame().GetPlayerManager(); + bool ownedMode = mode && mode == m_Mode && mode == ERR_GameMode.Get(); + int count = -1; + bool connected, sameManager; + if (manager) + { + count = manager.GetPlayerCount(); + connected = manager.IsPlayerConnected(connection); + sameManager = controller && manager.GetPlayerController(connection) == controller; + } + bool sameLocal = controller && controller == GetGame().GetPlayerController(); + int controllerId; + if (controller) controllerId = controller.GetPlayerId(); + bool valid = ownedMode && manager && controller && ERR_LocalAdmissionRules.Context(Replication.IsServer(), RplSession.Mode(), count, connected, sameLocal, sameManager, connection, controllerId); + if (!valid && !m_RefusalLogged) + { + string project; + if (System.GetCLIParam("errOrdinaryScenario", project) && (project == "core" || project == "chat")) + { + m_RefusalLogged = true; + PrintFormat("ERR ORDINARY LOCAL CONTEXT: server=%1 sessionMode=%2 count=%3 connected=%4 sameLocal=%5 sameManager=%6 positiveMatchingId=%7 ownedMode=%8 controllerPresent=%9", Replication.IsServer(), RplSession.Mode(), count, connected, sameLocal, sameManager, connection > 0 && controllerId == connection, ownedMode, controller != null); + } + } + return valid; + } + UUID Resolve(ERR_GameMode mode, int connection, SCR_PlayerController controller, UUID nativeIdentity) + { + // This helper is inert for modes created as Listen/Dedicated, even after Stop. + if (!m_OfflineMode) return nativeIdentity; + if (m_Failed || m_Stopped) return UUID.NULL_UUID; + if (m_Selected) + { + // A late backend value or name change never grants another local life. + if (mode != m_Mode || connection != m_Connection || controller != m_Controller || !Validate()) { m_Failed = true; return UUID.NULL_UUID; } + return m_Key; + } + if (!Context(mode, connection, controller)) { m_Failed = true; return UUID.NULL_UUID; } + m_Controller = controller; m_Connection = connection; m_Key = nativeIdentity; + m_Selected = true; + if (m_Key.IsNull()) { m_Key = UUID.GenV4(); m_LocalKey = true; } + if (m_Key.IsNull()) { m_Failed = true; return UUID.NULL_UUID; } + if (m_LocalKey) Print("Rereintroduced [admission]: sole offline controller uses a generated local-round roster key; backend identity and permissions unchanged."); + return m_Key; + } + bool Validate() + { + if (!m_OfflineMode) return true; + if (m_Failed || m_Stopped) return false; + if (!m_Selected) return true; + if (!Context(m_Mode, m_Connection, m_Controller)) m_Failed = true; + return !m_Failed; + } + bool Disconnected(int connection) + { + if (!m_Selected || m_Stopped || connection != m_Connection) return false; + m_Failed = true; + return true; + } + void Stop() + { + m_Stopped = true; + m_Controller = null; + m_Key = UUID.NULL_UUID; + // Keep selection/failure latched: this object cannot admit a replacement. + } +} + +modded class ERR_GameMode +{ + void ERR_FailLocalAdmission() + { + if (!Replication.IsServer()) return; + string reason = "The offline player context changed. Start a new scenario to establish a fresh session."; + if (Phase() == ERR_Phase.PREPARING) { FailPreparation(reason); return; } + if (!Active()) return; + m_EndReason = reason; + Transition(ERR_Phase.DEFEAT); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Location.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Location.c new file mode 100644 index 0000000..bff1193 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Location.c @@ -0,0 +1,69 @@ +enum ERR_LocationKind { PRISON, RADIO, EXTRACTION, OUTPOST, DEPOT } + +[ComponentEditorProps(category: "Rereintroduced", description: "Server-owned location with replicated discovery state")] +class ERR_LocationComponentClass : ScriptComponentClass {} +class ERR_LocationComponent : ScriptComponent +{ + [RplProp(onRplName: "IdentityChanged"), Attribute("", UIWidgets.EditBox, "Stable scenario location ID")] + protected string m_Id; + [RplProp()] + protected string m_Label; + [RplProp(), Attribute("0", UIWidgets.ComboBox, "Location kind", enums: ParamEnumArray.FromEnum(ERR_LocationKind))] + protected ERR_LocationKind m_Kind; + [RplProp()] + protected int m_Knowledge; + + string Id() { return m_Id; } + string Label() { return m_Label; } + ERR_LocationKind Kind() { return m_Kind; } + int Knowledge() { return m_Knowledge; } + vector Position() { return GetOwner().GetOrigin(); } + + bool Configure(string id, ERR_LocationKind kind, string label = "") + { + if (!Replication.IsServer() || id.IsEmpty()) return false; + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode || mode.Phase() != ERR_Phase.PREPARING) return false; + mode.UnregisterLocation(this); + m_Id = id; + m_Label = label; + m_Kind = kind; + mode.RegisterLocation(this); + Replication.BumpMe(); + return true; + } + protected void IdentityChanged() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode) return; + mode.UnregisterLocation(this); + mode.RegisterLocation(this); + } + bool Discover(int roll, int chance) + { + if (!Replication.IsServer() || m_Knowledge >= 2) return false; + int previous = m_Knowledge; + m_Knowledge = ERR_MissionRules.Discovery(m_Knowledge, roll, chance); + Replication.BumpMe(); + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.LocationDiscovered(this, previous, m_Knowledge); + return true; + } + + override void OnPostInit(IEntity owner) + { + super.OnPostInit(owner); + if (!SCR_Global.IsEditMode()) SetEventMask(owner, EntityEvent.INIT); + } + protected override void EOnInit(IEntity owner) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.RegisterLocation(this); + } + protected override void OnDelete(IEntity owner) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.UnregisterLocation(this); + super.OnDelete(owner); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_MissionRules.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_MissionRules.c new file mode 100644 index 0000000..1a2b2f7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_MissionRules.c @@ -0,0 +1,46 @@ +enum ERR_Phase +{ + PREPARING, + PRISON, + RADIO_SEARCH, + RADIO_DEFENCE, + EXTRACTION, + VICTORY, + DEFEAT +} + +// Pure mission policy. Entity queries and authority checks belong to the owner. +class ERR_MissionRules +{ + static bool Terminal(int phase) + { + return phase == ERR_Phase.VICTORY || phase == ERR_Phase.DEFEAT; + } + + static bool CanTransition(int from, int to) + { + if (Terminal(from) || from == to) return false; + if (to == ERR_Phase.DEFEAT) return from >= ERR_Phase.PRISON && from <= ERR_Phase.EXTRACTION; + if (from == ERR_Phase.PREPARING) return to == ERR_Phase.PRISON; + if (from == ERR_Phase.PRISON) return to == ERR_Phase.RADIO_SEARCH; + if (from == ERR_Phase.RADIO_SEARCH) return to == ERR_Phase.RADIO_DEFENCE; + if (from == ERR_Phase.RADIO_DEFENCE) return to == ERR_Phase.EXTRACTION; + return from == ERR_Phase.EXTRACTION && to == ERR_Phase.VICTORY; + } + + static bool DefenceComplete(float now, float since, float duration, bool occupied) + { + return occupied && since >= 0 && duration > 0 && now >= since && now - since >= duration; + } + + static bool ContactFresh(float observed, float now) + { + return observed >= 0 && now >= observed && now - observed <= 120000; + } + + static int Discovery(int knowledge, int roll, int identifyPercent) + { + if (knowledge >= 1 || roll < identifyPercent) return 2; + return 1; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c new file mode 100644 index 0000000..c17a68d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c @@ -0,0 +1,76 @@ +#ifdef WORKBENCH +// Test adapter exercises the production setting handler with a disposable file. +// Actual mode.Admin below still tests its server authorization and alias dispatch. +class ERR_NativeAdminSettingsAdapter : ERR_AdminService +{ + void Probe(ERR_Settings settings, string arguments, array replies) + { + replies.Clear(); + arguments = arguments.Trim(); arguments.ToLower(); + array parts = {}; + arguments.Split(" ", parts, true); + if (parts.Count() != 3 && parts.Count() != 4) return; + string key = Setting(parts[0], parts[1]); + if (!key.IsEmpty()) SettingCommand(settings, key, parts, replies); + } +} + +class ERR_NativeAdminSettingsProbe +{ + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: admin settings " + detail); return true; } + Print("ERR SMOKE FAIL: admin settings " + detail, LogLevel.ERROR); + return false; + } + protected static bool Storage(string path) + { + ERR_Settings settings = new ERR_Settings(path); + ERR_NativeAdminSettingsAdapter adapter = new ERR_NativeAdminSettingsAdapter(); + array replies = {}; + map initial = new map(); + foreach (string key : ERR_Settings.Keys()) initial.Set(key, settings.Get(key)); + array values = {0, 100, 15}; + foreach (int value : values) + { + adapter.Probe(settings, " INTEL REVEAL SET " + value.ToString() + " ", replies); + if (!Check(replies.Count() == 1 && replies[0] == "intelRevealChancePercent=" + value.ToString() + " saved" && settings.Get("intelRevealChancePercent") == value, "authorized setting handler accepts normalized value " + value.ToString())) return false; + ERR_Settings reloaded = new ERR_Settings(path); + if (!Check(reloaded.Get("intelRevealChancePercent") == value, "discovery probability survives native JSON reload")) return false; + foreach (string key, int original : initial) + if (key != "intelRevealChancePercent" && !Check(reloaded.Get(key) == original, "unrelated setting preserved: " + key)) return false; + } + array invalid = {"-1", "101", "1.5", "100junk", "999999"}; + foreach (string argument : invalid) + { + adapter.Probe(settings, "intel reveal set " + argument, replies); + ERR_Settings reloaded = new ERR_Settings(path); + if (!Check(replies.Count() == 1 && replies[0].Contains("Invalid") && replies[0].Contains("0-100") && settings.Get("intelRevealChancePercent") == 15 && reloaded.Get("intelRevealChancePercent") == 15, "invalid input preserves live and stored value: " + argument)) return false; + } + adapter.Probe(settings, "intel reveal help", replies); + if (!Check(replies.Count() == 1 && replies[0].Contains("second document") && replies[0].Contains("newly recovered") && replies[0].Contains("remain unchanged"), "help explains exact versus rough discovery and apply timing")) return false; + adapter.Probe(settings, "mission radio show", replies); + return Check(replies.Count() == 1 && replies[0] == "radioDefenceSeconds=" + initial.Get("radioDefenceSeconds").ToString(), "existing radio alias and response remain intact"); + } + static bool Run(ERR_GameMode mode) + { + if (!Check(Replication.IsServer() && mode && mode.Admin() && mode.Settings(), "native Core command service and settings ready")) return false; + int original = mode.Settings().Get("intelRevealChancePercent"); + array replies = {}; + mode.Admin().Execute(mode, false, "intel reveal set 100", replies); + if (!Check(replies.Count() == 1 && replies[0] == "Administrator access required." && mode.Settings().Get("intelRevealChancePercent") == original, "actual unauthorized command cannot mutate discovery")) return false; + mode.Admin().Execute(mode, true, " INTEL REVEAL SHOW ", replies); + if (!Check(replies.Count() == 1 && replies[0] == "intelRevealChancePercent=" + original.ToString(), "actual Core alias dispatches without Chat")) return false; + mode.Admin().Execute(mode, true, "intel reveal set 101", replies); + if (!Check(replies.Count() == 1 && replies[0].Contains("0-100") && mode.Settings().Get("intelRevealChancePercent") == original, "actual dispatch rejects out-of-range value with guidance")) return false; + mode.Admin().Execute(mode, true, "intel reveal help", replies); + if (!Check(replies.Count() == 1 && replies[0].Contains("second document"), "actual Core help describes physical document progression")) return false; + string path = "$profile:erri-native-admin-settings-probe.json"; + if (!Check(!FileIO.FileExists(path) && !FileIO.FileExists(path + ".bak") && !FileIO.FileExists(path + ".tmp"), "disposable fixture filenames are unused")) return false; + bool result = Storage(path); + FileIO.DeleteFile(path); FileIO.DeleteFile(path + ".bak"); FileIO.DeleteFile(path + ".tmp"); + if (!result) return false; + return Check(mode.Settings().Get("intelRevealChancePercent") == original && !FileIO.FileExists(path) && !FileIO.FileExists(path + ".bak") && !FileIO.FileExists(path + ".tmp"), "fixture removed its files and never changed actual mission settings"); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c new file mode 100644 index 0000000..3e4e890 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c @@ -0,0 +1,846 @@ +// Explicit local engine fixture, excluded from game/server builds. +#ifdef WORKBENCH +modded class ERR_GameMode +{ + protected ref ERR_NativeEnvironmentRestartProbe m_ERRBaseEnvironmentRestartProbe; + protected override string SettingsPath() + { + string enabled, outcome; + if (System.GetCLIParam("errBaseSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "environment-restart") + { + m_ERRBaseEnvironmentRestartProbe = new ERR_NativeEnvironmentRestartProbe(this); + return ERR_NativeEnvironmentRestartProbe.PATH; + } + return super.SettingsPath(); + } + + protected ref ERR_NativeCasualtyServiceProbe m_ERRCasualtyServiceProbe; + protected ref ERR_NativePrisonerProbe m_ERRPrisonerProbe; + protected ref ERR_NativeGuardCancelProbe m_ERRGuardCancelProbe; + protected ref ERR_NativeLocalAdmissionProbe m_ERRLocalAdmissionProbe; + protected ref ERR_NativePoweredFlightProbe m_ERRPoweredFlightProbe; + protected ref ERR_NativePrisonBreachProbe m_ERRPrisonBreachProbe; + protected ref ERR_NativeItemStationTeardownProbe m_ERRItemStationTeardownProbe; + protected ref ERR_NativeObjectiveLossProbe m_ERRObjectiveLossProbe; + protected ref ERR_NativeMedicalProbe m_ERRBaseMedicalProbe; + protected ref ERR_NativeCasualtyLoadProbe m_ERRCasualtyLoadProbe; + protected ref ERR_NativeEnvironmentProbe m_ERRBaseEnvironmentProbe; + protected bool m_ERRCatalogChecked; + protected bool m_ERRDiscoveryMapChecked; + protected ref ERR_NativePatrolProbe m_ERRPatrolEast; + protected ref ERR_NativePatrolProbe m_ERRPatrolWest; + protected int m_ERRBaseStep; + protected bool m_ERRObjectiveCloseChecked; + protected bool m_ERRStartupFailure; + protected bool m_ERRCacheLoss; + protected string m_ERRExtractionCase; + protected ref ERR_NativeExtractionProbe m_ERRExtractionProbe; + protected ref ERR_NativeTransportProbe m_ERRTransportProbe; + protected ref ERR_NativeLifecycleProbe m_ERRLifecycleProbe; + protected ref ERR_NativeRecoveryProbe m_ERRRecoveryProbe; + protected ref ERR_NativeRadioDefenceProbe m_ERRBaseRadioProbe; + protected string m_ERRActiveCacheId = "everon-supply-1"; + protected int m_ERRMedicalDiscoveries; + protected IEntity m_ERRSightBlocker; + protected float m_ERRBaseDeadline; + protected float m_ERRBaseWait; + protected IEntity m_ERRBasePlayer; + protected ERR_LocationComponent m_ERRBaseRadio; + protected ref array m_ERRBaseDocuments = {}; + + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + string enabled; + if (SCR_Global.IsEditMode() || !Replication.IsServer() || !System.GetCLIParam("errBaseSmoke", enabled) || enabled != "1") return; + ERR_NativeObjectiveProbe.BeginRound(); + ERR_NativeProgressionIdentityProbe.BeginRound(); + string outcome; + m_ERRStartupFailure = System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "startup-failure"; + m_ERRExtractionCase = outcome; + if (outcome == "extraction-startup-failure" && m_Factions) m_Factions.ExtractionPrefab = "{259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et"; + if (outcome == "extraction-boundary-failure") m_EscapeRadius = 0; + m_ERRCacheLoss = outcome == "cache-loss"; + if (m_ERRCacheLoss) m_ERRActiveCacheId = "everon-supply-2"; + OnLocationDiscovered().Insert(ERR_BaseDiscovered); + OnStop().Insert(ERR_NativeObjectiveProbe.Stop); + OnStop().Insert(ERR_StopRadioProbe); + OnStop().Insert(ERR_StopHealthProbes); + if (m_ERRStartupFailure && m_Factions) m_Factions.EnemyFactionKey = m_Factions.PlayerFactionKey; + m_ERRBaseDeadline = GetWorld().GetWorldTime() + 210000; + if (outcome == "patrols") m_ERRBaseDeadline = GetWorld().GetWorldTime() + 330000; + OnPhaseChanged().Insert(ERR_BaseResult); + GetGame().GetCallqueue().CallLater(ERR_BaseTick, 500, true); + Print("ERR BASE SMOKE: core-only scripted escape; not manual or multiplayer acceptance"); + } + protected bool ERR_BaseCheck(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: base " + detail); return true; } + ERR_NativeObjectiveProbe.Stop(); + ERR_StopRadioProbe(); + ERR_StopHealthProbes(); + Print("ERR SMOKE FAIL: base " + detail, LogLevel.ERROR); + GetGame().GetCallqueue().Remove(ERR_BaseTick); + return false; + } + protected void ERR_StopHealthProbes() + { + ERR_NativeDiscoveryMapProbe.Stop(); + ERR_NativeProgressionIdentityProbe.Stop(); + if (m_ERRPatrolEast) m_ERRPatrolEast.Stop(); + if (m_ERRPatrolWest) m_ERRPatrolWest.Stop(); + if (m_ERRBaseEnvironmentRestartProbe) m_ERRBaseEnvironmentRestartProbe.Stop(); + if (m_ERRBaseEnvironmentProbe) m_ERRBaseEnvironmentProbe.Stop(); + if (m_ERRPrisonerProbe) m_ERRPrisonerProbe.Stop(); + if (m_ERRGuardCancelProbe) m_ERRGuardCancelProbe.Stop(); + if (m_ERRLocalAdmissionProbe) m_ERRLocalAdmissionProbe.Stop(); + if (m_ERRPoweredFlightProbe) m_ERRPoweredFlightProbe.Stop(); + if (m_ERRPrisonBreachProbe) m_ERRPrisonBreachProbe.Stop(); + if (m_ERRItemStationTeardownProbe) m_ERRItemStationTeardownProbe.Stop(); + if (m_ERRCasualtyServiceProbe) m_ERRCasualtyServiceProbe.Stop(); + if (m_ERRObjectiveLossProbe) m_ERRObjectiveLossProbe.Stop(); + if (m_ERRBaseMedicalProbe) m_ERRBaseMedicalProbe.Stop(); + if (m_ERRCasualtyLoadProbe) m_ERRCasualtyLoadProbe.Cleanup(); + if (m_ERRRecoveryProbe) m_ERRRecoveryProbe.Stop(); + } + protected void ERR_StopRadioProbe() { if (m_ERRBaseRadioProbe) m_ERRBaseRadioProbe.Stop(); } + protected void ERR_BaseMove(vector position) + { + vector transform[4]; + m_ERRBasePlayer.GetWorldTransform(transform); + transform[3] = ERR_Actors.Ground(position); + ChimeraCharacter.Cast(m_ERRBasePlayer).Teleport(transform); + } + protected ERR_UnlockPrisonAction ERR_BaseLock(IEntity entity) + { + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(entity.FindComponent(BaseActionsManagerComponent)); + if (manager) + { + array actions = {}; + manager.GetActionsList(actions); + foreach (BaseUserAction action : actions) + { + ERR_UnlockPrisonAction lock = ERR_UnlockPrisonAction.Cast(action); + if (lock) return lock; + } + } + IEntity child = entity.GetChildren(); + while (child) + { + ERR_UnlockPrisonAction lock = ERR_BaseLock(child); + if (lock) return lock; + child = child.GetSibling(); + } + return null; + } + protected bool ERR_BaseCover() + { + int count; + foreach (IEntity entity : m_OwnedEntities) + { + if (!entity || !entity.GetPrefabData() || entity.GetPrefabData().GetPrefabName() != "{4B6AC1D8701C35A1}Prefabs/ERR/FieldCover.et") continue; + vector transform[4]; + entity.GetWorldTransform(transform); + vector up = transform[1]; + if (!ERR_BaseCheck(up[1] > 0.99, "outpost barrier is upright")) return false; + vector low, high; + entity.GetWorldBounds(low, high); + vector center = (low + high) * 0.5; + vector across = "0 0 2"; + if (high[0] - low[0] < high[2] - low[2]) across = "2 0 0"; + TraceParam trace = new TraceParam(); + trace.Start = center + across; + trace.End = center - across; + trace.Flags = TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + float fraction = GetWorld().TraceMove(trace, null); + PrintFormat("ERR COVER GEOMETRY: low=%1 high=%2 trace=%3", low, high, fraction); + if (!ERR_BaseCheck(fraction < 1 && trace.TraceEnt == entity, "outpost barrier has physical collision")) return false; + count++; + } + return ERR_BaseCheck(count == 3, "exactly three authored outpost barriers exist"); + } + protected void ERR_BaseDiscovered(ERR_LocationComponent location, int previous, int current) + { + if (location.Id() == "everon-medical-1" && previous == 0 && current == 2) m_ERRMedicalDiscoveries++; + } + protected void ERR_BaseResult(ERR_Phase previous, ERR_Phase current) + { + if (!ERR_MissionRules.Terminal(current)) return; + GetGame().GetCallqueue().Remove(ERR_BaseTick); + if (m_ERRExtractionCase == "station-teardown") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 2002, "native station teardown fixture finished before explicit reset")) return; + ERR_StopHealthProbes(); + Print("ERR SMOKE COMPLETE: isolated off-world station catalog-expiry injection and native callback teardown; not restart reproduction"); + return; + } + if (m_ERRExtractionCase == "prison-breach") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1902, "native destroyed-gate crossing finished before explicit reset")) return; + ERR_StopHealthProbes(); + Print("ERR SMOKE COMPLETE: actual gate destruction and sampled prison crossing; repositioned fixture, not walking or multiplayer"); + return; + } + if (m_ERRExtractionCase == "powered-flight") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1802, "native powered-flight fixture finished before explicit test reset")) return; + ERR_StopHealthProbes(); + Print("ERR SMOKE COMPLETE: native pilot-input powered takeoff, hover, contact landing and shutdown; isolated mechanism fixture reset"); + return; + } + if (m_ERRExtractionCase == "local-admission") + { + // Completion is emitted by the calling tick after synchronous teardown and + // its post-transition invariants; a terminal event alone is insufficient. + ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1700, "local admission fixture received its production fail-closed transition"); + return; + } + if (m_ERRExtractionCase == "early-helicopter-loss") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 201 && Players().HasSurvivor() && Extraction().State() == ERR_ExtractionState.LOST, "lost helicopter ends prison phase despite a living prisoner")) return; + ERR_FailureGameOverScreenInfo result = new ERR_FailureGameOverScreenInfo(); + if (!ERR_BaseCheck(EndReason().Contains("helicopter was lost") && result.GetDebriefing(0, null) == EndReason(), "early loss has a specific replicated and debriefing reason")) return; + Print("ERR SMOKE COMPLETE: early extraction vehicle loss"); + return; + } + if (m_ERRExtractionCase == "casualty-service") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1402, "casualty service fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native casualty service with helper-only identity adapter; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "radio-document-loss" || m_ERRExtractionCase == "radio-document-loss-partial") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1302, "radio document-loss fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native " + m_ERRExtractionCase + "; reset requested by fixture"); + return; + } + + if (m_ERRExtractionCase == "guard-cancel") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1502, "guard cancellation fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native guard-cancel; reset requested by fixture"); + return; + } + + if (m_ERRExtractionCase == "prisoner-kit") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 702, "prisoner-kit fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native prisoner-kit; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "medical") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 602, "medical fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native medical; reset requested by fixture"); + return; + } + if ((m_ERRExtractionCase == "casualty-load" || m_ERRExtractionCase == "casualty-direct" || m_ERRExtractionCase == "casualty-bench" || m_ERRExtractionCase == "casualty-remove")) + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 802, "casualty-load fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native " + m_ERRExtractionCase + "; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "environment-restart") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1202, "environment restart round finished before explicit test reset")) return; + PrintFormat("ERR SMOKE COMPLETE: environment restart round %1; reset requested by fixture", m_ERRBaseEnvironmentRestartProbe.Round()); + return; + } + if (m_ERRExtractionCase == "environment") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1002, "environment fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native environment; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "patrols") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 1102, "both patrol routes finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native finite patrol routes and cleanup; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "recovery") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 502 && EndReason().Contains("administrator abandoned"), "explicit authorized abandonment uses normal defeat result")) return; + if (!ERR_BaseCheck(!RecoveryStatus().IsEmpty() && !AbandonRound(), "terminal event observes active warning and rejects repeated abandonment")) return; + Print("ERR SMOKE COMPLETE: recovery status and explicit administrator abandonment"); + return; + } + if (m_ERRExtractionCase == "objective-ui") + { + if (!ERR_BaseCheck(current == ERR_Phase.DEFEAT && m_ERRBaseStep == 902, "objective UI fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native objective UI close, reopen and deleted-task cleanup; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "lifecycle") + { + if (!ERR_BaseCheck(m_ERRBaseStep == 402, "lifecycle fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: native lifecycle admission guards; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "transport-loss") + { + if (!ERR_BaseCheck(m_ERRBaseStep == 302, "transport fixture finished before explicit test reset")) return; + Print("ERR SMOKE COMPLETE: finite native ground transport; reset requested by fixture"); + return; + } + if (m_ERRExtractionCase == "extraction-capacity") + { + if (!ERR_BaseCheck(m_ERRBaseStep == 202, "capacity fixture finished before its explicit test reset")) return; + Print("ERR SMOKE COMPLETE: physical capacity and isolated extraction results; reset requested by fixture"); + return; + } + if (!ERR_BaseCheck(current == ERR_Phase.VICTORY && m_ERRBaseStep == 5, "escape and restart reached without companion services")) return; + Print("ERR SMOKE COMPLETE: core-only escape"); + } + protected void ERR_BaseTick() + { + float now = GetWorld().GetWorldTime(); + if (ERR_NativeProgressionIdentityProbe.Failed()) { ERR_BaseCheck(false, "native progression identity rejection fixture"); return; } + if (now > m_ERRBaseDeadline) { ERR_BaseCheck(false, "timeout at " + m_ERRBaseStep.ToString()); return; } + if (m_ERRExtractionCase == "extraction-startup-failure" || m_ERRExtractionCase == "extraction-boundary-failure") + { + if (PreparationError().IsEmpty()) return; + if (!ERR_BaseCheck(Phase() == ERR_Phase.PREPARING && !Active() && m_Stopped, "invalid extraction setup never starts gameplay")) return; + array players = {}; + ERR_Actors.Players(players); + if (!ERR_BaseCheck(players.IsEmpty() && Sites() && Sites().Count() == 0 && m_OwnedEntities.IsEmpty() && !ExtractionVehicle(), "late startup failure rolls back all authored stock, scenery, groups and vehicle")) return; + if (!ERR_BaseCheck(PreparationError().Contains("twelve") && !Transition(ERR_Phase.PRISON), "invalid extraction retains actionable diagnosis and blocks progression")) return; + GetGame().GetCallqueue().Remove(ERR_BaseTick); + Print("ERR SMOKE COMPLETE: expected late extraction startup failure"); + return; + } + if (m_ERRStartupFailure) + { + if (PreparationError().IsEmpty()) return; + if (!ERR_BaseCheck(Phase() == ERR_Phase.PREPARING && !Active() && m_Stopped, "invalid faction setup stops services without starting the mission")) return; + array players = {}; + ERR_Actors.Players(players); + if (!ERR_BaseCheck(players.IsEmpty() && !Sites() && m_OwnedEntities.IsEmpty(), "failed setup spawns no players, sites or supplies")) return; + array replies = {}; + Admin().Execute(this, true, "status", replies); + if (!ERR_BaseCheck(replies.Count() == 1 && replies[0].Contains("configured player and enemy factions"), "administrator receives retained startup failure cause")) return; + if (!ERR_BaseCheck(!Transition(ERR_Phase.PRISON) && !Transition(ERR_Phase.EXTRACTION), "failed preparation cannot be advanced into gameplay")) return; + GetGame().GetCallqueue().Remove(ERR_BaseTick); + Print("ERR SMOKE COMPLETE: expected startup-failure"); + return; + } + if (m_ERRBaseStep == 2000) + { + int result = m_ERRItemStationTeardownProbe.Tick(now); + if (result < 0) { ERR_BaseCheck(false, "native isolated station teardown fixture"); return; } + if (result == 1) { m_ERRBaseStep = 2002; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1900) + { + int result = m_ERRPrisonBreachProbe.Tick(now); + if (result < 0) { ERR_BaseCheck(false, "native destroyed-gate progression fixture"); return; } + if (result == 1) { m_ERRBaseStep = 1902; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1800) + { + int result = m_ERRPoweredFlightProbe.Tick(now); + if (result < 0) { ERR_BaseCheck(false, "native powered-flight feasibility fixture"); return; } + if (result == 1) { m_ERRBaseStep = 1802; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1700) + { + int result = m_ERRLocalAdmissionProbe.Tick(now); + if (result < 0) { ERR_StopHealthProbes(); GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) + { + m_ERRBaseStep = 1702; + GetGame().GetCallqueue().Remove(ERR_BaseTick); + Print("ERR SMOKE COMPLETE: native local admission callback replay and fail-closed method injection; not multiplayer evidence"); + } + return; + } + if (m_ERRBaseStep == 1400) + { + int result = m_ERRCasualtyServiceProbe.Tick(now); + if (result < 0) { ERR_BaseCheck(false, "casualty service fixture failed"); return; } + if (result == 1) { m_ERRBaseStep = 1402; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1300) + { + int result = m_ERRObjectiveLossProbe.Tick(now); + if (result < 0) { ERR_StopHealthProbes(); GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 1302; Transition(ERR_Phase.DEFEAT); } + return; + } + + if (m_ERRBaseStep == 1500) + { + int result = m_ERRGuardCancelProbe.Tick(now); + if (result < 0) { ERR_StopHealthProbes(); GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 1502; Transition(ERR_Phase.DEFEAT); } + return; + } + + if (m_ERRBaseStep == 700) + { + int result = m_ERRPrisonerProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 702; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 600) + { + int result = m_ERRBaseMedicalProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 602; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 800) + { + int result = m_ERRCasualtyLoadProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 802; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1200) + { + int result = m_ERRBaseEnvironmentRestartProbe.Tick(now); + if (result < 0) { ERR_BaseCheck(false, "environment restart fixture failed"); return; } + if (result == 1) { m_ERRBaseStep = 1202; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1000) + { + int result = m_ERRBaseEnvironmentProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 1002; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 1100) + { + int east = m_ERRPatrolEast.Tick(now); + int west = m_ERRPatrolWest.Tick(now); + if (east < 0 || west < 0) { ERR_StopHealthProbes(); GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (east == 1 && west == 1) + { + if (!ERR_NativePatrolProbe.StopChecks(this)) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + m_ERRBaseStep = 1102; Transition(ERR_Phase.DEFEAT); + } + return; + } + if (m_ERRBaseStep == 500) + { + int result = m_ERRRecoveryProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) + { + m_ERRBaseStep = 502; + array replies = {}; + Admin().Execute(this, true, "mission abandon", replies); + ERR_BaseCheck(Phase() == ERR_Phase.DEFEAT && replies.Count() == 1 && replies[0].Contains("Round abandoned") && RecoveryStatus().IsEmpty() && Recovery().Conscious() == 0 && Recovery().Incapacitated() == 0, "administrator command returns accepted outcome after recovery cleanup"); + } + return; + } + if (m_ERRBaseStep == 400) + { + int result = m_ERRLifecycleProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 402; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 300) + { + int result = m_ERRTransportProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 302; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 200) + { + int result = m_ERRExtractionProbe.Tick(now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 202; Transition(ERR_Phase.DEFEAT); } + return; + } + if (m_ERRBaseStep == 901) + { + int result = ERR_NativeObjectiveProbe.TickCloseReopen(this, now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) + { + if (m_ERRExtractionCase == "objective-ui") + { + if (!ERR_NativeObjectiveProbe.BeginDeletedTaskClose(this, now)) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + m_ERRBaseStep = 903; + } + else { m_ERRObjectiveCloseChecked = true; m_ERRBaseStep = 0; } + } + return; + } + if (m_ERRBaseStep == 903) + { + int result = ERR_NativeObjectiveProbe.TickDeletedTaskClose(this, now); + if (result < 0) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 1) { m_ERRBaseStep = 902; Transition(ERR_Phase.DEFEAT); } + return; + } + if (now < m_ERRBaseWait) return; + if (m_ERRBaseStep == 0) + { + array players = {}; + ERR_Actors.Players(players, true); + if (players.Count() != 1 || Phase() != ERR_Phase.PRISON) return; + m_ERRBasePlayer = players[0]; + if (!m_ERRCatalogChecked) + { + if (!ERR_NativeFactionCatalogProbe.Run(this)) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + m_ERRCatalogChecked = true; + } + if (!m_ERRDiscoveryMapChecked) + { + if (!ERR_NativeDiscoveryMapProbe.Run()) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + m_ERRDiscoveryMapChecked = true; + } + if (m_ERRExtractionCase == "station-teardown") + { + m_ERRItemStationTeardownProbe = new ERR_NativeItemStationTeardownProbe(); + m_ERRBaseStep = 2000; + return; + } + if (m_ERRExtractionCase == "prison-breach") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRPrisonBreachProbe = new ERR_NativePrisonBreachProbe(this, m_ERRBasePlayer); + m_ERRBaseStep = 1900; + return; + } + if (m_ERRExtractionCase == "powered-flight") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRPoweredFlightProbe = new ERR_NativePoweredFlightProbe(this); + m_ERRBaseDeadline = now + 250000; + m_ERRBaseStep = 1800; + return; + } + if (m_ERRExtractionCase == "local-admission") + { + m_ERRLocalAdmissionProbe = new ERR_NativeLocalAdmissionProbe(this); + m_ERRBaseStep = 1700; + return; + } + if (m_ERRExtractionCase == "casualty-service") + { + m_ERRCasualtyServiceProbe = new ERR_NativeCasualtyServiceProbe(this); + m_ERRBaseStep = 1400; + return; + } + if (m_ERRExtractionCase == "radio-document-loss" || m_ERRExtractionCase == "radio-document-loss-partial") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRObjectiveLossProbe = new ERR_NativeObjectiveLossProbe(this, m_ERRBasePlayer, m_ERRExtractionCase == "radio-document-loss-partial"); + m_ERRBaseStep = 1300; + return; + } + + if (m_ERRExtractionCase == "guard-cancel") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRGuardCancelProbe = new ERR_NativeGuardCancelProbe(this); + m_ERRBaseStep = 1500; + return; + } + + if (m_ERRExtractionCase == "prisoner-kit") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRPrisonerProbe = new ERR_NativePrisonerProbe(this, m_ERRBasePlayer); + m_ERRBaseStep = 700; + return; + } + if (m_ERRExtractionCase == "medical") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRBaseMedicalProbe = new ERR_NativeMedicalProbe(this); + m_ERRBaseStep = 600; + return; + } + if ((m_ERRExtractionCase == "casualty-load" || m_ERRExtractionCase == "casualty-direct" || m_ERRExtractionCase == "casualty-bench" || m_ERRExtractionCase == "casualty-remove")) + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + if (m_ERRExtractionCase == "casualty-remove") m_ERRCasualtyLoadProbe = new ERR_NativeCasualtyRemoveProbe(this); + else m_ERRCasualtyLoadProbe = new ERR_NativeCasualtyLoadProbe(this, m_ERRExtractionCase != "casualty-load", m_ERRExtractionCase == "casualty-bench"); + m_ERRBaseStep = 800; + return; + } + if (m_ERRExtractionCase == "environment-restart") + { + if (!ERR_BaseCheck(m_ERRBaseEnvironmentRestartProbe != null, "environment restart selected isolated settings before mode initialization")) return; + m_ERRBaseStep = 1200; + return; + } + if (m_ERRExtractionCase == "environment") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRBaseEnvironmentProbe = new ERR_NativeEnvironmentProbe(this); + m_ERRBaseStep = 1000; + return; + } + if (m_ERRExtractionCase == "patrols") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRPatrolEast = new ERR_NativePatrolProbe(this, "everon-outpost-1"); + m_ERRPatrolWest = new ERR_NativePatrolProbe(this, "everon-supply-2"); + m_ERRBaseStep = 1100; + return; + } + if (m_ERRExtractionCase == "recovery") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRRecoveryProbe = new ERR_NativeRecoveryProbe(this, m_ERRBasePlayer); + m_ERRBaseStep = 500; + return; + } + if (m_ERRExtractionCase == "lifecycle") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRLifecycleProbe = new ERR_NativeLifecycleProbe(this, m_ERRBasePlayer); + m_ERRBaseStep = 400; + return; + } + if (m_ERRExtractionCase == "transport-survey") + { + ERR_NativeTransportSurvey.Run(this); + GetGame().GetCallqueue().Remove(ERR_BaseTick); + return; + } + if (m_ERRExtractionCase == "transport-loss") + { + m_ERRTransportProbe = new ERR_NativeTransportProbe(this); + m_ERRBaseStep = 300; + return; + } + if (m_ERRExtractionCase == "early-helicopter-loss") + { + if (!ERR_BaseCheck(Extraction().Ready() && Players().HasSurvivor(), "ready helicopter and living prisoner before deliberate loss")) return; + m_ERRBaseStep = 201; + ERR_Actors.DeleteSpawned(ExtractionVehicle()); + return; + } + if (m_ERRExtractionCase == "extraction-capacity") + { + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + m_ERRExtractionProbe = new ERR_NativeExtractionProbe(this); + m_ERRBaseStep = 200; + return; + } + string survey; + if (System.GetCLIParam("errSmokeOutcome", survey) && survey == "site-survey") + { + ERR_NativeSiteSurvey probe = new ERR_NativeSiteSurvey(); + probe.Run(); + GetGame().GetCallqueue().Remove(ERR_BaseTick); + return; + } + if (!m_ERRObjectiveCloseChecked) + { + if (!ERR_NativeObjectiveProbe.BeginCloseReopen(this, now)) { GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + m_ERRBaseStep = 901; + return; + } + if (!ERR_NativeAdminSettingsProbe.Run(this) || !ERR_NativeDefinitionProbe.Run() || !ERR_NativeContractsProbe.Run(this, m_ERRBasePlayer) || !ERR_BaseCover() || !ERR_NativeTimeProbe.Run(this)) return; + DamageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + if (!ERR_BaseCheck(Objectives() && Objectives().Current() && Objectives().Current().GetTaskName() == "Escape the prison", "native prison objective exists")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + ERR_SiteRuntime cache = Sites().Find(m_ERRActiveCacheId); + if (!ERR_BaseCheck(Sites().Count() == 7 && cache && cache.Container && vector.DistanceXZ(cache.Container.GetOrigin(), PrisonPosition()) > 100, "authored supply cache is a separate scavenging location")) return; + array stock = {}; + ERR_Inventory.Items(InventoryStorageManagerComponent.Cast(cache.Container.FindComponent(InventoryStorageManagerComponent)), stock); + PrintFormat("ERR BASE STOCK: cache items=%1", stock.Count()); + int expectedStock; + foreach (ERR_SiteStock entry : cache.Definition.Stock) expectedStock += entry.Count; + if (!ERR_BaseCheck(stock.Count() >= expectedStock, "cache holds finite physical equipment and objective documents")) return; + if (!ERR_BaseCheck(Command() == null, "no companion HQ or support controller loaded")) return; + if (!ERR_BaseCheck(vector.DistanceXZ(m_ERRBasePlayer.GetOrigin(), PrisonPosition()) < 5, "prisoner spawned in authored prison")) return; + foreach (ERR_LocationComponent location : m_Locations) + if (location.Kind() == ERR_LocationKind.RADIO) m_ERRBaseRadio = location; + ERR_UnlockPrisonAction lock; + foreach (IEntity entity : m_OwnedEntities) + { + if (!entity) continue; + if (!lock) lock = ERR_BaseLock(entity); + } + foreach (IEntity item : stock) + if (item && item.GetPrefabData() && item.GetPrefabData().GetPrefabName() == ERR_Resources.ObjectiveDocument()) m_ERRBaseDocuments.Insert(item); + if (m_ERRCacheLoss) + { + ERR_Actors.DeleteSpawned(Sites().Find("everon-supply-1").Container); + if (!ERR_BaseCheck(!Sites().Find("everon-supply-1").Container, "primary cache lost before any clues are recovered")) return; + } + if (!ERR_BaseCheck(lock && m_ERRBaseRadio && m_ERRBaseDocuments.Count() == 2 && ERR_Actors.Alive(ExtractionVehicle()), "gate, clues, radio and helicopter created by core")) return; + if (!ERR_NativeProgressionIdentityProbe.Begin(this, m_ERRBasePlayer)) { ERR_BaseCheck(false, "native progression identity gate baseline"); return; } + ERR_BaseMove(lock.GetOwner().GetOrigin() + "1 0 1"); + lock.PerformAction(lock.GetOwner(), m_ERRBasePlayer); + if (!ERR_BaseCheck(Phase() == ERR_Phase.RADIO_SEARCH, "gate action begins escape")) return; + if (!ERR_BaseCheck(m_Settings.Set("radioDefenceSeconds", 30), "test defence duration accepted")) return; + SCR_Task prisonTask = SCR_TaskSystem.GetTaskFromTaskID(ERR_Objectives.Id(ERR_Phase.PRISON), false); + if (!ERR_BaseCheck(prisonTask && prisonTask.GetTaskState() == SCR_ETaskState.COMPLETED, "previous native objective completes on phase change")) return; + if (!ERR_BaseCheck(Objectives().Current().GetTaskUIVisibility() == SCR_ETaskUIVisibility.LIST_ONLY, "search objective does not expose a hidden site")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + if (!ERR_BaseCheck(Sites().Find("everon-supply-1").Location.Knowledge() == 2 && Sites().Find("everon-supply-2").Location.Knowledge() == 2, "both named supply routes revealed after escape")) return; + ERR_SiteRuntime medical = Sites().Find("everon-medical-1"); + if (!ERR_BaseCheck(medical.Location.Knowledge() == 0 && Sites().Find("everon-outpost-1").Location.Knowledge() == 0, "optional sites remain hidden until approached")) return; + ERR_BaseMove(medical.Location.Position() + "0 0 8"); + CharacterControllerComponent.Cast(m_ERRBasePlayer.FindComponent(CharacterControllerComponent)).SetUnconscious(true); + m_ERRBaseStep = 10; + m_ERRBaseWait = now + 6000; + } + else if (m_ERRBaseStep == 10) + { + ERR_SiteRuntime medical = Sites().Find("everon-medical-1"); + if (!ERR_BaseCheck(medical.Location.Knowledge() == 0 && !Sites().CanObserve(m_ERRBasePlayer, medical), "unconscious player cannot discover optional sites")) return; + CharacterControllerComponent.Cast(m_ERRBasePlayer.FindComponent(CharacterControllerComponent)).SetUnconscious(false); + ERR_BaseMove(medical.Location.Position() + "0 0 65"); + m_ERRBaseStep = 11; + m_ERRBaseWait = now + 6000; + } + else if (m_ERRBaseStep == 11) + { + ERR_SiteRuntime medical = Sites().Find("everon-medical-1"); + if (!ERR_BaseCheck(medical.Location.Knowledge() == 0 && !Sites().CanObserve(m_ERRBasePlayer, medical), "distant player cannot discover optional sites")) return; + ERR_BaseMove(medical.Location.Position() + "0 0 8"); + m_ERRSightBlocker = ERR_Actors.Spawn("{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et", ERR_Actors.Ground(medical.Location.Position() + "-1.5 0 4")); + if (!ERR_BaseCheck(m_ERRSightBlocker != null, "isolated visibility obstacle created")) return; + Own(m_ERRSightBlocker); + vector low, high; + m_ERRSightBlocker.GetWorldBounds(low, high); + PrintFormat("ERR VISIBILITY OBSTACLE: low=%1 high=%2 observer=%3 target=%4", low, high, m_ERRBasePlayer.GetOrigin(), medical.Location.Position()); + m_ERRBaseStep = 115; + m_ERRBaseWait = now + 6000; + } + else if (m_ERRBaseStep == 115) + { + ERR_SiteRuntime medical = Sites().Find("everon-medical-1"); + if (!ERR_BaseCheck(medical.Location.Knowledge() == 0 && !Sites().CanObserve(m_ERRBasePlayer, medical), "physical wall prevents nearby site discovery")) return; + ERR_Actors.DeleteSpawned(m_ERRSightBlocker); + m_ERRBaseStep = 12; + m_ERRBaseWait = now + 6000; + } + else if (m_ERRBaseStep == 12) + { + ERR_SiteRuntime medical = Sites().Find("everon-medical-1"); + if (!ERR_BaseCheck(medical.Location.Knowledge() == 2 && medical.Location.Label() == "Medical stash" && m_ERRMedicalDiscoveries == 1, "conscious nearby player visually discovers named medical stash once")) return; + if (!ERR_BaseCheck(!Sites().CanObserve(m_ERRBasePlayer, Sites().Find("everon-radio-1")), "distant medical-site discovery does not reveal the radio")) return; + m_ERRBaseStep = 1; + } + else if (m_ERRBaseStep == 1 || m_ERRBaseStep == 2) + { + ERR_BaseMove(Sites().Find(m_ERRActiveCacheId).Container.GetOrigin() + "0 0 2"); + SCR_InventoryStorageManagerComponent inventory = SCR_InventoryStorageManagerComponent.Cast(m_ERRBasePlayer.FindComponent(SCR_InventoryStorageManagerComponent)); + InventoryStorageManagerComponent source = InventoryStorageManagerComponent.Cast(Sites().Find(m_ERRActiveCacheId).Container.FindComponent(InventoryStorageManagerComponent)); + BaseInventoryStorageComponent destination = inventory.FindStorageForItem(m_ERRBaseDocuments[m_ERRBaseStep - 1]); + if (!ERR_BaseCheck(destination && source.TryMoveItemToStorage(m_ERRBaseDocuments[m_ERRBaseStep - 1], destination), "physical clue recovered")) return; + m_ERRBaseStep++; + m_ERRBaseWait = now + 2500; + } + else if (m_ERRBaseStep == 3) + { + if (!ERR_BaseCheck(Objectives().Current().GetTaskDescription().Contains("The radio station is identified on your map. Reach"), "objective guidance reacts to discovered radio")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + ERR_SiteRuntime cache = Sites().Find(m_ERRActiveCacheId); + array stock = {}; + ERR_Inventory.Items(InventoryStorageManagerComponent.Cast(cache.Container.FindComponent(InventoryStorageManagerComponent)), stock); + foreach (IEntity item : stock) if (item) SCR_EntityHelper.DeleteEntityAndChildren(item); + if (!ERR_BaseCheck(m_ERRMedicalDiscoveries == 1, "discovery ticks do not repeat the location event")) return; + if (m_ERRCacheLoss && !ERR_BaseCheck(!Sites().Find("everon-supply-1").Container, "lost primary cache stays absent while alternate documents identify the radio")) return; + if (!ERR_BaseCheck(ERR_NativeProgressionIdentityProbe.DocumentPassed(), "actual held-document rejection and restored recovery were exercised this round")) return; + if (!ERR_BaseCheck(m_ERRBaseRadio.Knowledge() == 2, "documents identify radio without Intel addon")) return; + ERR_BaseMove(m_ERRBaseRadio.Position() + "2 0 0"); + m_ERRBaseStep = 30; + m_ERRBaseWait = now + 1000; + } + else if (m_ERRBaseStep == 30) + { + m_ERRBaseRadioProbe = new ERR_NativeRadioDefenceProbe(this, m_ERRBasePlayer, m_ERRBaseRadio); + m_ERRBaseStep = 301; + } + else if (m_ERRBaseStep == 301) + { + int result = m_ERRBaseRadioProbe.Tick(now); + if (result < 0) { ERR_StopRadioProbe(); GetGame().GetCallqueue().Remove(ERR_BaseTick); return; } + if (result == 0) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.INACTIVE, "radio feedback remains inactive before tuning")) return; + if (!ERR_BaseCheck(TuneRadio(m_ERRBasePlayer, m_ERRBaseRadio), "identified radio accepts transmission")) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.WAITING && ERR_ObjectiveText.Description(this, false).Contains("Waiting for"), "radio feedback publishes waiting before first occupancy sample")) return; + m_ERRBaseStep = 31; + m_ERRBaseWait = now + 5000; + } + else if (m_ERRBaseStep == 31) + { + ERR_SiteRuntime cache = Sites().Find(m_ERRActiveCacheId); + array stock = {}; + ERR_Inventory.Items(InventoryStorageManagerComponent.Cast(cache.Container.FindComponent(InventoryStorageManagerComponent)), stock); + if (!ERR_BaseCheck(stock.IsEmpty() && Sites().Prepare() == ERR_PrepareResult.READY, "depleted stock stays empty when preparation is queried again")) return; + ERR_Actors.DeleteSpawned(cache.Container); + if (!ERR_BaseCheck(DefenceOccupied() && DefenceSecondsRemaining() > 0 && DefenceSecondsRemaining() < 30 && Objectives().Current().GetTaskDescription().Contains("seconds remaining"), "native objective reports advancing radio progress")) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.TRANSMITTING && ERR_ObjectiveText.Description(this, false).Contains("Transmission in progress"), "radio guide reports transmitting without querying a countdown")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + CharacterControllerComponent.Cast(m_ERRBasePlayer.FindComponent(CharacterControllerComponent)).SetUnconscious(true); + m_ERRBaseStep = 310; + m_ERRBaseWait = now + 35000; + } + else if (m_ERRBaseStep == 310) + { + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_ERRBasePlayer.FindComponent(CharacterControllerComponent)); + if (!ERR_BaseCheck(controller.IsUnconscious() && ERR_Actors.Alive(m_ERRBasePlayer) && Players().HasSurvivor() && Phase() == ERR_Phase.RADIO_DEFENCE, "unconscious survivor does not trigger defeat after the full grace period")) return; + if (!ERR_BaseCheck(!DefenceOccupied() && DefenceSecondsRemaining() == 30, "unconscious radio defender cannot advance transmission")) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.INTERRUPTED && ERR_ObjectiveText.Description(this, false).Contains("Progress has reset"), "radio guide reports interruption after unconsciousness")) return; + SCR_PlayerController playerController = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!ERR_BaseCheck(playerController.GetControlledEntity() == m_ERRBasePlayer && playerController.ERR_ObserverState() == ERR_ObserverReason.NONE && !playerController.ERR_HasObserverCamera(), "unconscious player retains their body and camera")) return; + controller.SetUnconscious(false); + m_ERRBaseStep = 311; + m_ERRBaseWait = now + 6000; + } + else if (m_ERRBaseStep == 311) + { + if (!ERR_BaseCheck(ERR_Actors.CanFight(m_ERRBasePlayer) && DefenceOccupied() && DefenceSecondsRemaining() < 30, "regaining consciousness resumes transmission from zero")) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.TRANSMITTING && ERR_ObjectiveText.Description(this, false).Contains("Transmission in progress"), "radio guide returns to transmitting after recovery")) return; + int playerId = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(m_ERRBasePlayer); + if (!ERR_BaseCheck(!Players().CanEnter(playerId, Phase()), "regaining consciousness does not grant another life")) return; + ERR_BaseMove(m_ERRBaseRadio.Position() + "90 0 0"); + m_ERRBaseStep = 32; + m_ERRBaseWait = now + 2500; + } + else if (m_ERRBaseStep == 32) + { + if (!ERR_BaseCheck(!Sites().Find(m_ERRActiveCacheId).Container, "lost supply cache is not replaced")) return; + if (!ERR_BaseCheck(!DefenceOccupied() && DefenceSecondsRemaining() == 30 && Objectives().Current().GetTaskDescription().Contains("interrupted"), "objective reports interruption and reset")) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.INTERRUPTED && ERR_ObjectiveText.Description(this, false).Contains("Return a conscious survivor"), "radio guide reports interruption after leaving the area")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + ERR_BaseMove(m_ERRBaseRadio.Position() + "2 0 0"); + m_ERRBaseStep = 4; + m_ERRBaseWait = now + 33000; + } + else if (m_ERRBaseStep == 4) + { + if (!ERR_BaseCheck(Phase() == ERR_Phase.EXTRACTION, "radio defence reveals extraction") || !ERR_NativeTimeProbe.VerifyProgression(this)) return; + if (!ERR_BaseCheck(RadioFeedback() == ERR_RadioFeedback.INACTIVE, "radio feedback clears after completion")) return; + if (!ERR_NativeObjectiveProbe.Observe(this)) return; + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_ERRBasePlayer.FindComponent(CompartmentAccessComponent)); + BaseCompartmentSlot slot = access.FindFreeCompartment(ExtractionVehicle(), ECompartmentType.PILOT); + if (!ERR_BaseCheck(slot && access.GetInVehicle(ExtractionVehicle(), slot, true, -1, ECloseDoorAfterActions.INVALID, false), "player physically boards extraction helicopter")) return; + m_ERRBaseStep = 5; + m_ERRBaseWait = now + 3000; + } + else if (m_ERRBaseStep == 5) + { + if (!ERR_BaseCheck(CompartmentAccessComponent.GetVehicleIn(m_ERRBasePlayer) == ExtractionVehicle(), "extraction requires real occupancy")) return; + vector transform[4]; + ExtractionVehicle().GetWorldTransform(transform); + transform[3] = m_EscapeCenter + Vector(m_EscapeRadius + 100, 150, 0); + ExtractionVehicle().SetWorldTransform(transform); + m_ERRBaseWait = now + 4000; + } + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c new file mode 100644 index 0000000..5320e4c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c @@ -0,0 +1,80 @@ +#ifdef WORKBENCH +// Positive check observes production initial placement; the fixture never wakes +// the mission helicopter. Negative transforms +// and velocity are applied only to an independent, disposable empty aircraft. +class ERR_NativeCasualtyGroundProbe +{ + protected ERR_GameMode m_Mode; + protected Vehicle m_Negative; + protected float m_Wait; + protected float m_Deadline; + protected int m_Step; + protected bool m_Stopped; + void ERR_NativeCasualtyGroundProbe(ERR_GameMode mode) { m_Mode = mode; } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + ERR_Actors.DeleteSpawned(m_Negative); m_Negative = null; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: casualty ground " + detail); return true; } + Print("ERR SMOKE FAIL: casualty ground " + detail, LogLevel.ERROR); Stop(); return false; + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (m_Deadline > 0 && now > m_Deadline) { Check(false, "bounded ground-support probe deadline"); return -1; } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + Vehicle parked = m_Mode.ExtractionVehicle(); + ERR_SiteService sites = m_Mode.Sites(); + ERR_ExtractionPlacement placement; + if (sites) placement = sites.ExtractionPlacement(); + if (!Check(placement && placement.Ready() && placement.WakeCount() == 1, "production initial placement completed with exactly one wake before player spawn")) return -1; + bool support = ERR_CasualtyGroundSupport.Parked(parked, true); + HelicopterControllerComponent controller = HelicopterControllerComponent.Cast(parked.FindComponent(HelicopterControllerComponent)); + bool nativeContact = controller && controller.GetSimulation() && controller.GetSimulation().HasAnyGroundContact(); + if (!Check((nativeContact || support) && ERR_CasualtyLoadingRules.AircraftReady(parked), "naturally settled mission aircraft has native landing contact or three strict wheel supports")) return -1; + vector raised = parked.GetOrigin() + "0 20 0"; + m_Negative = Vehicle.Cast(ERR_Actors.Spawn(m_Mode.Factions().ExtractionPrefab, raised)); + if (!Check(m_Negative != null, "separate empty airborne aircraft created for rejection checks")) return -1; + m_Mode.Own(m_Negative); + DamageManagerComponent damage = DamageManagerComponent.Cast(m_Negative.FindComponent(DamageManagerComponent)); + if (!Check(damage != null, "negative aircraft damage manager available")) return -1; + damage.EnableDamageHandling(false); + m_Deadline = now + 10000; m_Wait = now + 500; m_Step = 1; return 0; + } + if (m_Step == 1) + { + vector position = m_Negative.GetOrigin(); + float height = position[1] - GetGame().GetWorld().GetSurfaceY(position[0], position[2]); + bool support = ERR_CasualtyGroundSupport.Parked(m_Negative, true); + PrintFormat("ERR GROUND NEGATIVE: raisedPosition=%1 terrainClearance=%2", position, height); + if (!Check(ERR_Actors.Alive(m_Negative) && height > 5 && !support && !ERR_CasualtyLoadingRules.AircraftReady(m_Negative), "living aircraft above terrain is rejected even if stationary or sleeping")) return -1; + vector tilted[4]; Math3D.AnglesToMatrix("0 0 90", tilted); tilted[3] = position; + m_Negative.SetWorldTransform(tilted); + m_Wait = now + 500; m_Step = 2; return 0; + } + if (m_Step == 2) + { + vector actual[4]; m_Negative.GetWorldTransform(actual); + Physics physics = m_Negative.GetPhysics(); + if (!Check(physics != null, "negative aircraft has actual native physics")) return -1; + PrintFormat("ERR GROUND NEGATIVE: tiltedUp=%1 position=%2", actual[1][1], actual[3]); + if (!Check(ERR_Actors.Alive(m_Negative) && actual[1][1] < 0.85 && !ERR_CasualtyLoadingRules.AircraftMotion(true, actual[1][1], 0, 0) && !ERR_CasualtyLoadingRules.AircraftReady(m_Negative), "actual tilted aircraft is rejected independently by upright policy")) return -1; + // Read back an actual native velocity on the disposable clone. No mission + // aircraft activation, simulation state, engine or velocity is changed. + physics.SetVelocity("2 0 0"); + float speed = physics.GetVelocity().Length(); + PrintFormat("ERR GROUND NEGATIVE: nativeSpeed=%1", speed); + if (!Check(speed > 0.5 && !ERR_CasualtyLoadingRules.AircraftMotion(true, 1, speed, 0) && !ERR_CasualtyLoadingRules.AircraftReady(m_Negative), "actual native velocity is rejected independently by movement policy")) return -1; + if (!Check(ERR_Actors.Alive(m_Mode.ExtractionVehicle()) && ERR_CasualtyLoadingRules.AircraftReady(m_Mode.ExtractionVehicle()), "mission aircraft remains untouched and eligible after negative checks")) return -1; + Stop(); return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c new file mode 100644 index 0000000..11882a2 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c @@ -0,0 +1,255 @@ +#ifdef WORKBENCH +// Native mechanism experiment, NOT proof of an available player load/drag action. +// Caller must explicitly opt in and tick this independently of medical fixtures. +class ERR_NativeCasualtyLoadProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Caller; + protected IEntity m_Casualty; + protected Vehicle m_Vehicle; + protected SCR_CompartmentAccessComponent m_Access; + protected SCR_CharacterDamageManagerComponent m_Damage; + protected BaseCompartmentSlot m_Seat; + protected vector m_CallerTransform[4]; + protected vector m_GroundPosition; + protected bool m_CallerMoved; + protected bool m_Direct; + protected bool m_Bench; + protected float m_DownSettledAt; + protected float m_NextDiagnostic; + protected int m_Entered; + protected int m_Left; + protected int m_Step; + protected float m_Deadline; + protected float m_Wait; + + void ERR_NativeCasualtyLoadProbe(ERR_GameMode mode, bool direct = false, bool bench = false) { m_Mode = mode; m_Direct = direct; m_Bench = bench; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: casualty-load " + detail); return true; } + Print("ERR SMOKE FAIL: casualty-load " + detail, LogLevel.ERROR); + Cleanup(); + return false; + } + void Cleanup() + { + if (m_Access) + { + if (m_Access.GetOnCompartmentEntered(false)) m_Access.GetOnCompartmentEntered(false).Remove(Entered); + if (m_Access.GetOnCompartmentLeft(false)) m_Access.GetOnCompartmentLeft(false).Remove(Left); + } + // Restore only the same living local body, never a replacement/reconnected actor. + PlayerController controller = GetGame().GetPlayerController(); + if (m_CallerMoved && m_Caller && controller && controller.GetControlledEntity() == m_Caller && ERR_Actors.Alive(m_Caller) && !CompartmentAccessComponent.GetVehicleIn(m_Caller)) + ChimeraCharacter.Cast(m_Caller).Teleport(m_CallerTransform); + m_CallerMoved = false; + ERR_Actors.DeleteSpawned(m_Casualty); + m_Casualty = null; + } + protected void Entered(IEntity target, BaseCompartmentManagerComponent manager, int managerId, int slotId, bool move) + { + m_Entered++; + PrintFormat("ERR CASUALTY ENTER EVENT: manager=%1 slot=%2 move=%3 targetRoot=%4 count=%5", managerId, slotId, move, target == m_Vehicle, m_Entered); + } + protected void Left(IEntity target, BaseCompartmentManagerComponent manager, int managerId, int slotId, bool move) + { + m_Left++; + PrintFormat("ERR CASUALTY EXIT EVENT: manager=%1 slot=%2 move=%3 targetRoot=%4 count=%5", managerId, slotId, move, target == m_Vehicle, m_Left); + } + protected bool BelongsToAircraft(IEntity entity) + { + while (entity) + { + if (entity == m_Vehicle) return true; + entity = entity.GetParent(); + } + return false; + } + protected BaseCompartmentSlot FindTransportBench() + { + array seats = {}; + m_Mode.Extraction().Seats(seats); + foreach (BaseCompartmentSlot seat : seats) + { + if (!seat || seat.GetType() != ECompartmentType.CARGO || SCR_PatientCompartmentSlot.Cast(seat)) continue; + IEntity owner = seat.GetOwner(); + if (!owner || owner == m_Vehicle || !BelongsToAircraft(owner) || !owner.GetPrefabData()) continue; + ResourceName prefab = owner.GetPrefabData().GetPrefabName(); + // These installed Mi8 seat-part prefabs own the real transport benches. + // No compartment class, animation, accessibility or health setting is changed. + if (!prefab.Contains("VehPart_MI8_seats")) continue; + if (!seat.IsCompartmentAccessible() || seat.IsGetInLockedFor(m_Casualty) || seat.GetOccupant()) continue; + return seat; + } + return null; + } + protected void Trace(string stage) + { + if (!m_Casualty || !m_Access) return; + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Casualty.FindComponent(CharacterControllerComponent)); + CharacterAnimationComponent animation = CharacterAnimationComponent.Cast(m_Casualty.FindComponent(CharacterAnimationComponent)); + if (controller && animation) + PrintFormat("ERR CASUALTY STATE: stage=%1 life=%2 ragdoll=%3 falling=%4 physicsLinked=%5 gettingIn=%6 gettingOut=%7", stage, controller.GetLifeState(), animation.IsRagdollActive(), animation.PhysicsIsFalling(), animation.PhysicsIsLinked(), m_Access.IsGettingIn(), m_Access.IsGettingOut()); + if (m_Seat) + { + IEntity owner = m_Seat.GetOwner(); + string prefab; + if (owner && owner.GetPrefabData()) prefab = owner.GetPrefabData().GetPrefabName(); + PrintFormat("ERR CASUALTY SEAT: stage=%1 name=%2 ownerPrefab=%3 rootOwner=%4 hierarchyValid=%5 slotId=%6 managerId=%7", stage, m_Seat.GetCompartmentUniqueName(), prefab, owner == m_Vehicle, BelongsToAircraft(owner), m_Seat.GetCompartmentSlotID(), m_Seat.GetCompartmentMgrID()); + PrintFormat("ERR CASUALTY OCCUPANCY: stage=%1 inCompartment=%2 actualSlot=%3 targetOccupant=%4 vehicleRoot=%5 enterEvents=%6 exitEvents=%7", stage, m_Access.IsInCompartment(), m_Access.GetCompartment() == m_Seat, m_Seat.GetOccupant() == m_Casualty, CompartmentAccessComponent.GetVehicleIn(m_Casualty) == m_Vehicle, m_Entered, m_Left); + } + } + protected bool DownOnGround() + { + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Casualty.FindComponent(CharacterControllerComponent)); + return ERR_Actors.Alive(m_Casualty) && controller && controller.GetLifeState() == ECharacterLifeState.INCAPACITATED && !CompartmentAccessComponent.GetVehicleIn(m_Casualty); + } + protected bool IncapacitateGroundCasualty() + { + if (!Check(m_Damage && ERR_Actors.Alive(m_Casualty), "living fixture casualty has native damage manager before incapacitation")) return false; + HitZone resilience = m_Damage.GetResilienceHitZone(); + if (!Check(resilience != null, "fixture casualty has actual native resilience hit zone")) return false; + float beforeResilience = resilience.GetHealth(); + bool damageWasEnabled = m_Damage.IsDamageHandlingEnabled(); + // ForceUnconsciousness uses HandleDamage(TRUE), which damage protection can + // suppress. Permit only this synchronous operation, then restore the flag + // before any assertion/cleanup path. Never restore health or life state. + m_Damage.EnableDamageHandling(true); + m_Damage.ForceUnconsciousness(); + float afterResilience = resilience.GetHealth(); + m_Damage.EnableDamageHandling(damageWasEnabled); + PrintFormat("ERR CASUALTY INCAPACITATION: resilienceBefore=%1 resilienceAfter=%2 damageOriginallyEnabled=%3 restored=%4", beforeResilience, afterResilience, damageWasEnabled, m_Damage.IsDamageHandlingEnabled() == damageWasEnabled); + return Check(afterResilience < beforeResilience && ERR_Actors.Alive(m_Casualty) && m_Damage.IsDamageHandlingEnabled() == damageWasEnabled, "single native incapacitation reduces actual resilience, preserves life and restores damage-protection flag"); + } + protected bool BeginExit() + { + // Native unloading is a separate mechanism check, not a user-action claim. + vector exitTransform[4]; + m_Casualty.GetWorldTransform(exitTransform); + exitTransform[3] = m_GroundPosition; + return Check(m_Access.GetOutVehicle_NoDoor(exitTransform, true, false), "unconscious cargo occupant accepts native ground exit"); + } + protected bool ExitSettled() + { + return ERR_Actors.Alive(m_Casualty) && vector.Distance(m_Casualty.GetOrigin(), m_GroundPosition) < 4 && m_Seat.IsCompartmentAccessible(); + } + protected vector ExpectedExit() { return m_GroundPosition; } + protected string ExitResultDetail() { return "unloaded survivor on ground and seat accessible"; } + // now is world milliseconds, matching the other native probes. Returns -1/0/1. + int Tick(float now) + { + if (now < m_Wait) return 0; + if (m_Step == 0) + { + PlayerController controller = GetGame().GetPlayerController(); + if (!Check(Replication.IsServer() && controller && m_Mode, "server and local real caller available")) return -1; + m_Caller = controller.GetControlledEntity(); + m_Vehicle = m_Mode.ExtractionVehicle(); + if (!Check(ERR_Actors.CanFight(m_Caller) && !CompartmentAccessComponent.GetVehicleIn(m_Caller) && ERR_Actors.Alive(m_Vehicle), "caller on foot and authored helicopter intact")) return -1; + m_GroundPosition = ERR_Actors.Ground(m_Vehicle.GetOrigin() + "6 0 6"); + m_Casualty = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, m_GroundPosition); + if (!Check(m_Casualty != null, "independent casualty spawned on ground")) return -1; + m_Mode.Own(m_Casualty); + m_Access = SCR_CompartmentAccessComponent.Cast(m_Casualty.FindComponent(SCR_CompartmentAccessComponent)); + m_Damage = SCR_CharacterDamageManagerComponent.Cast(m_Casualty.FindComponent(SCR_CharacterDamageManagerComponent)); + if (!Check(m_Access && m_Damage, "native casualty components present")) return -1; + m_Access.GetOnCompartmentEntered().Insert(Entered); + m_Access.GetOnCompartmentLeft().Insert(Left); + m_Caller.GetWorldTransform(m_CallerTransform); + vector helperTransform[4]; + m_Caller.GetWorldTransform(helperTransform); + helperTransform[3] = ERR_Actors.Ground(m_GroundPosition + "2 0 0"); + ChimeraCharacter.Cast(m_Caller).Teleport(helperTransform); + m_CallerMoved = true; + m_Step = 1; + m_Wait = now + 1000; + return 0; + } + if (m_Step == 1) + { + if (!IncapacitateGroundCasualty()) return -1; + m_Deadline = now + 8000; + m_Step = 2; + return 0; + } + if (m_Step == 2) + { + if (!DownOnGround()) + { + if (now >= m_Deadline) { Check(false, "native health-driven ground incapacitation before boarding deadline"); return -1; } + return 0; + } + if (m_Bench) + { + if (m_DownSettledAt == 0) + { + m_DownSettledAt = now + 5000; + m_Deadline = now + 13000; + Trace("incapacitated; begin five-second bench settling interval"); + return 0; + } + if (now < m_DownSettledAt) return 0; + } + PrintFormat("ERR CASUALTY POSITIONS: caller=%1 casualty=%2 helicopter=%3", m_Caller.GetOrigin(), m_Casualty.GetOrigin(), m_Vehicle.GetOrigin()); + if (!Check(ERR_Actors.CanFight(m_Caller) && vector.Distance(m_Caller.GetOrigin(), m_Casualty.GetOrigin()) < 4, "conscious real caller physically beside ground casualty")) return -1; + if (m_Bench) m_Seat = FindTransportBench(); + else m_Seat = m_Access.FindFreeAndAccessibleCompartment(m_Vehicle, ECompartmentType.CARGO); + if (!Check(m_Seat && !SCR_PatientCompartmentSlot.Cast(m_Seat) && !m_Seat.GetOccupant(), "ordinary free cargo seat selected without patient-seat substitution")) return -1; + if (m_Bench) Print("ERR CASUALTY BENCH SOURCE: VehPart_MI8_seats_base.et sha256=1b9a2e55a9a1cb884886488b6e170f437b6c1a615b584449819b96a6c78ad973"); + Trace("before selected boarding request"); + PrintFormat("ERR CASUALTY LOAD: CanGetInVehicle=%1 state=%2 targetType=%3", m_Access.CanGetInVehicle(m_Seat.GetOwner()), CharacterControllerComponent.Cast(m_Casualty.FindComponent(CharacterControllerComponent)).GetLifeState(), m_Seat.GetType()); + // Exactly the public server-to-owner primitive used by vanilla ambulance loading. + bool accepted; + if (m_Direct) accepted = m_Access.GetInVehicle(m_Seat.GetOwner(), m_Seat, true, -1, ECloseDoorAfterActions.INVALID, false); + else accepted = m_Access.MoveInVehicle(m_Vehicle, ECompartmentType.CARGO, false, m_Seat); + PrintFormat("ERR CASUALTY MECHANISM: direct=%1 bench=%2 accepted=%3", m_Direct, m_Bench, accepted); + Trace("immediately after selected boarding request"); + m_NextDiagnostic = now + 1000; + if (!Check(accepted, "selected loading request accepted while already unconscious")) return -1; + m_Deadline = now + 8000; + m_Step = 3; + return 0; + } + if (m_Step == 3) + { + if (now >= m_NextDiagnostic) { Trace("awaiting physical occupancy"); m_NextDiagnostic = now + 1000; } + if (CompartmentAccessComponent.GetVehicleIn(m_Casualty) != m_Vehicle || m_Seat.GetOccupant() != m_Casualty) + { + if (now >= m_Deadline) { Check(false, "physical cargo occupancy after selected mechanism before deadline"); return -1; } + return 0; + } + if (!Check(ERR_Actors.Alive(m_Casualty) && !ERR_Actors.CanFight(m_Casualty), "living unconscious ground casualty now physically aboard")) return -1; + if (!Check(!m_Access.MoveInVehicle(m_Vehicle, ECompartmentType.CARGO, false, m_Seat), "occupied target seat rejects repeated request")) return -1; + ERR_PlayerRoster roster = new ERR_PlayerRoster(); + UUID account = "00e77200-0000-0000-0000-000000000201"; + if (!Check(roster.Bind(10201, account), "isolated casualty identity registered")) return -1; + roster.Spawned(10201, m_Casualty); + ERR_ExtractionService service = new ERR_ExtractionService(roster); + if (!Check(service.Assign(m_Vehicle) && service.Begin(m_Vehicle.GetOrigin() + "100 0 0", 50), "isolated boundary service initialized without moving mission helicopter")) return -1; + service.Tick(ERR_Phase.EXTRACTION); + if (!Check(service.DidEscape(account) && service.EscapedCount() == 1, "loaded unconscious identity satisfies physical extraction rule")) return -1; + if (!BeginExit()) return -1; + m_Deadline = now + 8000; + m_Step = 4; + return 0; + } + if (m_Step == 4) + { + if (now >= m_NextDiagnostic) { Trace("awaiting ground exit"); m_NextDiagnostic = now + 1000; } + if (CompartmentAccessComponent.GetVehicleIn(m_Casualty) || m_Seat.GetOccupant()) + { + if (now >= m_Deadline) { Check(false, "native exit clears physical vehicle and seat before deadline"); return -1; } + return 0; + } + bool settled = ExitSettled(); + if (!settled && now < m_Deadline) return 0; + PrintFormat("ERR CASUALTY EXIT POSITION: actual=%1 requested=%2 alive=%3 accessible=%4", m_Casualty.GetOrigin(), ExpectedExit(), ERR_Actors.Alive(m_Casualty), m_Seat.IsCompartmentAccessible()); + if (!Check(settled, ExitResultDetail())) return -1; + Cleanup(); + m_Step = 5; + return 1; + } + return 1; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c new file mode 100644 index 0000000..2b25c41 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c @@ -0,0 +1,160 @@ +#ifdef WORKBENCH +// Opt-in completion-boundary test of the REAL inherited stock remove action. +// It does not simulate held input, replace the action, or prove remote ownership. +class ERR_NativeCasualtyRemoveProbe : ERR_NativeCasualtyLoadProbe +{ + protected SCR_RemoveCasualtyUserAction m_Remove; + protected UserActionContext m_Context; + protected int m_SavedDoor; + protected int m_SelectedDoor; + protected bool m_DoorChanged; + protected bool m_PendingAction; + protected bool m_TestBodyProtected; + protected bool m_RemoveStopped; + protected bool m_RemoveComplete; + protected vector m_AuthoredExit; + protected vector m_SeatedPosition; + protected vector m_HelperPosition; + protected float m_RemoveDeadline; + protected float m_RemoveDiagnostic; + void ERR_NativeCasualtyRemoveProbe(ERR_GameMode mode, bool direct = false, bool bench = false) + { + m_Mode = mode; m_Direct = true; m_Bench = true; + } + override void Cleanup() + { + if (m_Remove && m_DoorChanged) m_Remove.SetCompartmentDoorInfoIndex(m_SavedDoor); + m_DoorChanged = false; m_PendingAction = false; m_RemoveStopped = true; + super.Cleanup(); + } + protected void FindAction(IEntity entity) + { + if (!entity || m_Remove) return; + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(entity.FindComponent(BaseActionsManagerComponent)); + if (manager) + { + array actions = {}; manager.GetActionsList(actions); + foreach (BaseUserAction action : actions) + { + SCR_RemoveCasualtyUserAction remove = SCR_RemoveCasualtyUserAction.Cast(action); + if (remove && remove.GetCompartmentSlot() == m_Seat && remove.GetContextIndex("door_l01_door") >= 0) + { + m_Remove = remove; return; + } + } + } + for (IEntity child = entity.GetChildren(); child; child = child.GetSibling()) FindAction(child); + } + protected void FindContext(IEntity entity) + { + if (!entity || m_Context) return; + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(entity.FindComponent(BaseActionsManagerComponent)); + if (manager) + { + UserActionContext context = manager.GetContext("door_l01_door"); + if (context) + { + array actions = {}; context.GetActionsList(actions); + if (actions.Contains(m_Remove)) { m_Context = context; return; } + } + } + for (IEntity child = entity.GetChildren(); child; child = child.GetSibling()) FindContext(child); + } + protected CompartmentDoorInfo ResolveDoor() + { + BaseCompartmentManagerComponent manager = m_Seat.GetManager(); + if (!manager) return null; + CompartmentDoorInfo info = manager.GetDoorInfo(m_SelectedDoor); + if (info) return info; + CompartmentDoorReference doorReference = manager.GetDoorReference(m_SelectedDoor); + if (!doorReference) return null; + BaseCompartmentManagerComponent referenced = doorReference.GetReferencedDoorCompartmentManager(); + int referencedIndex = doorReference.GetAnimDoorIndex(); + PrintFormat("ERR CASUALTY REMOVE DOOR REFERENCE: selected=%1 referencedIndex=%2 manager=%3", m_SelectedDoor, referencedIndex, referenced != null); + if (!referenced || referencedIndex < 0) return null; + return referenced.GetDoorInfo(referencedIndex); + } + protected override bool BeginExit() + { + FindAction(m_Vehicle); + if (!Check(m_Remove && BelongsToAircraft(m_Remove.GetOwner()) && m_Remove.GetActionDuration() == 1 && !m_Remove.HasLocalEffectOnly(), "stock bench RemoveCasualty action exists, duration one second, nonlocal effect")) return false; + FindContext(m_Vehicle); + if (!Check(m_Context && m_Context.GetContextName() == "door_l01_door", "actual exterior context contains selected stock seat action")) return false; + // Same native point-to-door selection used by SCR_CompartmentUserAction. + // Explicit cached index substitutes only for selecting a UI context, not input. + m_SelectedDoor = m_Seat.PickDoorIndexForPoint(m_Context.GetOrigin()); + if (!Check(m_SelectedDoor >= 0, "actual action context resolves a relevant native compartment door")) return false; + CompartmentDoorInfo door = ResolveDoor(); + if (!Check(door && door.GetExitTeleportPointInfo(), "selected native door exposes its authored teleport exit")) return false; + vector exitTransform[4]; door.GetExitTeleportPointInfo().GetWorldTransform(exitTransform); + m_AuthoredExit = exitTransform[3]; m_SeatedPosition = m_Casualty.GetOrigin(); + if (!Check(vector.Distance(m_AuthoredExit, m_Vehicle.GetOrigin()) < 15, "authored exit resolves beside this physical helicopter")) return false; + m_SavedDoor = m_Remove.GetCompartmentDoorInfoIndex(); + m_Remove.SetCompartmentDoorInfoIndex(m_SelectedDoor); m_DoorChanged = true; + vector outside = m_Context.GetOrigin() - m_Vehicle.GetOrigin(); outside[1] = 0; + if (!Check(outside.Length() > 0.1, "exterior context has a distinct outward direction")) return false; + outside.Normalize(); + m_HelperPosition = ERR_Actors.Ground(m_Context.GetOrigin() + outside * 0.75); + vector helper[4]; m_Caller.GetWorldTransform(helper); helper[3] = m_HelperPosition; + ChimeraCharacter.Cast(m_Caller).Teleport(helper); + PrintFormat("ERR CASUALTY REMOVE SETUP: action=%1 context=%2 door=%3 contextOrigin=%4 exit=%5 seatedOrigin=%6 helperRequested=%7", m_Remove.GetActionID(), m_Context.GetContextName(), m_SelectedDoor, m_Context.GetOrigin(), m_AuthoredExit, m_SeatedPosition, m_HelperPosition); + m_PendingAction = true; + m_Wait = GetGame().GetWorld().GetWorldTime() + 1000; + return true; + } + static bool SafeExit(float horizontalDistance, float terrainClearance) + { + return horizontalDistance >= 0 && horizontalDistance <= 1.25 && terrainClearance >= -0.25 && terrainClearance <= 1.5; + } + protected override vector ExpectedExit() { return m_AuthoredExit; } + protected override string ExitResultDetail() { return "stock removal leaves a living incapacitated body beside authored door exit, outside compartment, on terrain, and seat accessible"; } + protected override bool ExitSettled() + { + if (!m_Casualty || !m_Access || !m_Seat) return false; + vector actual = m_Casualty.GetOrigin(); + float height = actual[1] - GetGame().GetWorld().GetSurfaceY(actual[0], actual[2]); + CharacterAnimationComponent animation = CharacterAnimationComponent.Cast(m_Casualty.FindComponent(CharacterAnimationComponent)); + bool safe = DownOnGround() && !m_Access.IsGettingOut() && !m_Access.IsInCompartment() && !m_Seat.GetOccupant() && m_Seat.IsCompartmentAccessible() && animation && !animation.PhysicsIsFalling() && SafeExit(vector.DistanceXZ(actual, m_AuthoredExit), height); + float now = GetGame().GetWorld().GetWorldTime(); + if (now >= m_RemoveDiagnostic || safe) + { + PrintFormat("ERR CASUALTY REMOVE POSITION: actual=%1 aiming=%2 authored=%3 seated=%4 horizontalError=%5 terrainClearance=%6 safe=%7", actual, ChimeraCharacter.Cast(m_Casualty).AimingPosition(), m_AuthoredExit, m_SeatedPosition, vector.DistanceXZ(actual, m_AuthoredExit), height, safe); + Trace("stock door removal observation"); m_RemoveDiagnostic = now + 1000; + } + return safe; + } + override int Tick(float now) + { + if (m_RemoveComplete) return 1; + if (m_RemoveStopped) return -1; + if (m_RemoveDeadline == 0) + { + if (!Check(m_Mode && ERR_CasualtyLoadingRules.AircraftReady(m_Mode.ExtractionVehicle()), "production mission helicopter is physically grounded and stable before fixture")) return -1; + m_RemoveDeadline = now + 45000; + } + if (now > m_RemoveDeadline) { Check(false, "bounded 45-second stock removal fixture deadline"); return -1; } + if (m_Step == 4 && m_PendingAction) + { + if (now < m_Wait) return 0; + if (!Check(ERR_Actors.CanFight(m_Caller) && !CompartmentAccessComponent.GetVehicleIn(m_Caller) && vector.Distance(m_Caller.GetOrigin(), m_HelperPosition) < 1.5, "real conscious rescuer settled outside selected native door")) return -1; + bool shown = m_Remove.CanBeShown(m_Caller); + bool permitted = m_Remove.CanBePerformed(m_Caller); + PrintFormat("ERR CASUALTY REMOVE ACTION: shown=%1 performedAllowed=%2 reason=%3 cachedDoor=%4 caller=%5", shown, permitted, m_Remove.GetCannotPerformReason(), m_Remove.GetCompartmentDoorInfoIndex(), m_Caller.GetOrigin()); + if (!Check(shown && permitted && m_Seat.GetOccupant() == m_Casualty && m_Remove.GetCompartmentDoorInfoIndex() == m_SelectedDoor, "stock native action visibility and permission accept actual rescuer and occupied casualty bench")) return -1; + m_PendingAction = false; // exactly one completion invocation, no native retry + m_Remove.PerformAction(m_Remove.GetOwner(), m_Caller); + Print("ERR CASUALTY REMOVE: invoked existing stock action completion once; held input and network dispatch not exercised"); + m_Deadline = now + 8000; + } + int result = super.Tick(now); + if (!m_TestBodyProtected && m_Casualty && m_Damage) + { + // Only the fixture-owned casualty is protected from nearby initial guards. + // ForceUnconsciousness still uses its actual native health/life transition. + m_Damage.EnableDamageHandling(false); m_TestBodyProtected = true; + } + if (result == 1) m_RemoveComplete = true; + return result; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c new file mode 100644 index 0000000..289f381 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c @@ -0,0 +1,293 @@ +#ifdef WORKBENCH +// Only the helper's membership is synthetic. The casualty keeps its real native +// player controller/account/body and exercises the ordinary owner handshake. +class ERR_NativeCasualtyHelperAdapter : ERR_CasualtyLoadingService +{ + protected ref ERR_PlayerLife m_HelperLife; + protected bool m_HelperEnabled; + void ERR_NativeCasualtyHelperAdapter(ERR_GameMode mode) { m_Mode = mode; } + void Helper(IEntity actor) + { + m_HelperLife = new ERR_PlayerLife(); + m_HelperLife.Actor = actor; m_HelperLife.Connected = true; m_HelperLife.UsedLife = true; + m_HelperLife.ConnectionId = 15401; + m_HelperLife.AccountId = "00e77200-0000-0000-0000-000000001401"; + } + void EnableHelper() { m_HelperEnabled = true; } + bool StrictParticipant(IEntity actor) { return super.CurrentLife(actor) != null; } + bool StoppedForProbe() { return m_Stopped; } + protected override ERR_PlayerLife CurrentLife(IEntity actor) + { + if (m_HelperEnabled && m_HelperLife && actor && actor == m_HelperLife.Actor) return m_HelperLife; + return super.CurrentLife(actor); + } +} +class ERR_NativeCasualtyServiceProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected IEntity m_Helper; + protected IEntity m_Blocker; + protected Vehicle m_Aircraft; + protected ERR_LoadCasualtyAction m_Action; + protected ref ERR_NativeCasualtyHelperAdapter m_Service; + protected ref ERR_NativeCasualtyGroundProbe m_GroundProbe; + protected bool m_GroundChecked; + protected ref array m_Reserved = {}; + protected BaseCompartmentSlot m_LoadedSeat; + protected float m_Deadline; + protected float m_Wait; + protected float m_PositionDeadline; + protected float m_NextDiagnostic; + protected vector m_RequestedPlayer; + protected vector m_RequestedHelper; + protected bool m_PlayerDamageSnapshot; + protected bool m_PlayerDamageOriginallyEnabled; + protected int m_SettleStart; + protected int m_Step; + protected int m_Resolutions; + protected bool m_Loaded; + protected bool m_Observing; + protected bool m_Stopped; + void ERR_NativeCasualtyServiceProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: casualty service " + detail); return true; } + Print("ERR SMOKE FAIL: casualty service " + detail, LogLevel.ERROR); + Stop(); return false; + } + protected void Resolved(IEntity actor, bool loaded) + { + m_Resolutions++; + m_Loaded = actor == m_Player && loaded; + } + protected void ReleaseFixtureReservations() + { + foreach (BaseCompartmentSlot seat : m_Reserved) + if (seat && m_Helper && seat.IsReservedBy(m_Helper)) seat.SetReserved(null); + m_Reserved.Clear(); + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_GroundProbe) m_GroundProbe.Stop(); + if (m_Service) { m_Service.Stop(); m_Service.OnResolved().Remove(Resolved); } + if (m_Mode) m_Mode.ERR_UseCasualtyFixture(null); + ReleaseFixtureReservations(); + // Restore the original damage-handling flag only on this exact still-owned + // living player body. This never restores health or changes another actor. + if (m_PlayerDamageSnapshot && GetGame() && GetGame().GetPlayerController() && GetGame().GetPlayerController().GetControlledEntity() == m_Player && ERR_Actors.Alive(m_Player)) + { + DamageManagerComponent damage = DamageManagerComponent.Cast(m_Player.FindComponent(DamageManagerComponent)); + if (damage) damage.EnableDamageHandling(m_PlayerDamageOriginallyEnabled); + } + m_PlayerDamageSnapshot = false; + ERR_Actors.DeleteSpawned(m_Blocker); m_Blocker = null; + ERR_Actors.DeleteSpawned(m_Helper); m_Helper = null; + // This opt-in case ends by ordinary round reset. Never restore arbitrary + // health, force recovery, teleport the seated player, or delete its body. + } + protected ERR_LoadCasualtyAction FindAction() + { + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(m_Player.FindComponent(BaseActionsManagerComponent)); + if (!manager) return null; + array actions = {}; manager.GetActionsList(actions); + bool medical; + ERR_LoadCasualtyAction load; + foreach (BaseUserAction action : actions) + { + if (SCR_BandageUserAction.Cast(action)) medical = true; + ERR_LoadCasualtyAction candidate = ERR_LoadCasualtyAction.Cast(action); + if (candidate) load = candidate; + } + if (!Check(medical, "successor prisoner retains inherited native medicine actions")) return null; + return load; + } + protected void Diagnose() + { + if (!m_Player || !m_Helper || !m_Aircraft || !m_Service) return; + HelicopterControllerComponent aircraftController = HelicopterControllerComponent.Cast(m_Aircraft.FindComponent(HelicopterControllerComponent)); + Physics physics = m_Aircraft.GetPhysics(); + bool groundContact; + bool simulationAvailable; + float speed = -1; + float angularSpeed = -1; + if (aircraftController && aircraftController.GetSimulation()) + { + simulationAvailable = true; + groundContact = aircraftController.GetSimulation().HasAnyGroundContact(); + } + if (physics) { speed = physics.GetVelocity().Length(); angularSpeed = physics.GetAngularVelocity().Length(); } + vector transform[4]; m_Aircraft.GetWorldTransform(transform); + PrintFormat("ERR CASUALTY AIRCRAFT READINESS: alive=%1 controller=%2 simulation=%3 physics=%4 groundContact=%5 up=%6 speed=%7 angularSpeed=%8 position=%9", ERR_Actors.Alive(m_Aircraft), aircraftController != null, simulationAvailable, physics != null, groundContact, transform[1][1], speed, angularSpeed, m_Aircraft.GetOrigin()); + CharacterControllerComponent playerController = CharacterControllerComponent.Cast(m_Player.FindComponent(CharacterControllerComponent)); + CharacterControllerComponent helperController = CharacterControllerComponent.Cast(m_Helper.FindComponent(CharacterControllerComponent)); + int playerLife = -1; + int helperLife = -1; + if (playerController) playerLife = playerController.GetLifeState(); + if (helperController) helperLife = helperController.GetLifeState(); + PrintFormat("ERR CASUALTY ACTOR READINESS: playerAlive=%1 playerConscious=%2 playerLife=%3 helperAlive=%4 helperConscious=%5 helperLife=%6 pairRange=%7 playerAircraftRange=%8 helperAircraftRange=%9", ERR_Actors.Alive(m_Player), ERR_Actors.CanFight(m_Player), playerLife, ERR_Actors.Alive(m_Helper), ERR_Actors.CanFight(m_Helper), helperLife, vector.Distance(m_Player.GetOrigin(), m_Helper.GetOrigin()), vector.Distance(m_Player.GetOrigin(), m_Aircraft.GetOrigin()), vector.Distance(m_Helper.GetOrigin(), m_Aircraft.GetOrigin())); + PrintFormat("ERR CASUALTY POSITION READINESS: playerRequested=%1 playerActual=%2 playerError=%3 helperRequested=%4 helperActual=%5 helperError=%6", m_RequestedPlayer, m_Player.GetOrigin(), vector.Distance(m_RequestedPlayer, m_Player.GetOrigin()), m_RequestedHelper, m_Helper.GetOrigin(), vector.Distance(m_RequestedHelper, m_Helper.GetOrigin())); + ERR_CasualtyGroundSupport.Parked(m_Aircraft, true); + PrintFormat("ERR CASUALTY SERVICE STATE: step=%1 player=%2 helper=%3 groundedTarget=%4 aircraftReady=%5 sight=%6 pending=%7 resolutions=%8 loaded=%9", m_Step, m_Player.GetOrigin(), m_Helper.GetOrigin(), ERR_CasualtyLoadingRules.GroundSettled(m_Player), ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft), ERR_CasualtyLoadingRules.LineOfSight(m_Helper, m_Player), m_Service.PendingCount(), m_Resolutions, m_Loaded); + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (m_Deadline > 0 && now > m_Deadline) { if (m_Player && m_Helper && m_Service) Diagnose(); Check(false, "bounded native fixture deadline"); return -1; } + if (m_Service && m_Observing) m_Service.Tick(now); + if (now < m_Wait) return 0; + if (m_Step == 0) + { + PlayerController controller = GetGame().GetPlayerController(); + if (!Check(Replication.IsServer() && controller && m_Mode.Phase() == ERR_Phase.PRISON, "explicit local server fixture starts with real prisoner")) return -1; + m_Player = controller.GetControlledEntity(); m_Aircraft = m_Mode.ExtractionVehicle(); + if (!Check(ERR_Actors.CanFight(m_Player) && m_Aircraft && !CompartmentAccessComponent.GetVehicleIn(m_Player), "real controlled casualty starts conscious on foot")) return -1; + m_Action = FindAction(); + if (!Check(m_Action && m_Action.GetOwner() == m_Player && m_Action.GetActionDuration() == 5 && !m_Action.HasLocalEffectOnly(), "real successor prisoner owns five-second server action")) return -1; + DamageManagerComponent playerDamage = DamageManagerComponent.Cast(m_Player.FindComponent(DamageManagerComponent)); + if (!Check(playerDamage != null, "fixture player damage manager available")) return -1; + m_PlayerDamageOriginallyEnabled = playerDamage.IsDamageHandlingEnabled(); + m_PlayerDamageSnapshot = true; + playerDamage.EnableDamageHandling(false); + m_RequestedPlayer = ERR_Actors.Ground(m_Aircraft.GetOrigin() + "6 0 6"); + m_RequestedHelper = ERR_Actors.Ground(m_RequestedPlayer + "0 0 2"); + m_Helper = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, m_RequestedHelper); + if (!Check(m_Helper != null, "separate physical helper spawned")) return -1; + m_Mode.Own(m_Helper); + DamageManagerComponent helperDamage = DamageManagerComponent.Cast(m_Helper.FindComponent(DamageManagerComponent)); + if (!Check(helperDamage != null, "fixture helper damage manager available")) return -1; + helperDamage.EnableDamageHandling(false); + vector transform[4]; m_Player.GetWorldTransform(transform); transform[3] = m_RequestedPlayer; + ChimeraCharacter.Cast(m_Player).Teleport(transform); + m_Service = new ERR_NativeCasualtyHelperAdapter(m_Mode); m_Service.Helper(m_Helper); + m_Service.OnResolved().Insert(Resolved); + if (!Check(m_Service.StrictParticipant(m_Player) && !m_Service.StrictParticipant(m_Helper), "actual target passes strict native membership; synthetic helper does not")) return -1; + if (!Check(!m_Mode.CasualtyLoading().Begin(m_Helper, m_Player) && !m_Service.Begin(m_Helper, m_Player), "production and unadapted sample reject out-of-phase helper request")) return -1; + // Deliberate fixture phase setup, not evidence of a completed radio objective. + if (!Check(m_Mode.Transition(ERR_Phase.RADIO_SEARCH) && m_Mode.Transition(ERR_Phase.RADIO_DEFENCE) && m_Mode.Transition(ERR_Phase.EXTRACTION), "fixture enters extraction through explicit legal phase transitions")) return -1; + m_Deadline = now + 45000; + m_PositionDeadline = now + 10000; + m_NextDiagnostic = now; + m_Wait = now + 500; m_Step = 1; return 0; + } + if (m_Step == 1) + { + if (now >= m_NextDiagnostic) { Diagnose(); m_NextDiagnostic = now + 1000; } + bool actorsReady = ERR_Actors.CanFight(m_Player) && ERR_Actors.CanFight(m_Helper) && vector.Distance(m_RequestedPlayer, m_Player.GetOrigin()) <= 1.5 && vector.Distance(m_RequestedHelper, m_Helper.GetOrigin()) <= 1.5 && vector.Distance(m_Player.GetOrigin(), m_Helper.GetOrigin()) <= 3; + bool aircraftReady = ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft); + if ((!actorsReady || !aircraftReady) && now < m_PositionDeadline) return 0; + if (!Check(actorsReady, "actual living conscious actors reached requested nearby ground positions before deadline")) return -1; + if (!Check(aircraftReady, "actual aircraft satisfies unchanged production grounded-motion safety before deadline")) return -1; + if (!m_GroundChecked) + { + if (!m_GroundProbe) m_GroundProbe = new ERR_NativeCasualtyGroundProbe(m_Mode); + int groundResult = m_GroundProbe.Tick(now); + if (groundResult < 0) { Check(false, "native ground-support qualification failed"); return -1; } + if (groundResult == 0) return 0; + m_GroundChecked = true; + } + if (!Check(!m_Service.Begin(m_Helper, m_Player), "conscious target is rejected before native incapacitation")) return -1; + SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(m_Player.FindComponent(SCR_CharacterDamageManagerComponent)); + if (!Check(damage != null, "real casualty has native health manager")) return -1; + HitZone resilience = damage.GetResilienceHitZone(); + if (!Check(resilience && damage.GetPermitUnconsciousness(), "native resilience and unconsciousness policy available")) return -1; + float beforeResilience = resilience.GetHealth(); + // Protection must not swallow the fixture's own true-damage request. Keep + // this synchronous interval limited to that one native health operation. + damage.EnableDamageHandling(true); + damage.ForceUnconsciousness(); + float afterResilience = resilience.GetHealth(); + damage.EnableDamageHandling(false); + PrintFormat("ERR CASUALTY INCAPACITATION: resilienceBefore=%1 resilienceAfter=%2", beforeResilience, afterResilience); + if (!Check(afterResilience < beforeResilience && ERR_Actors.Alive(m_Player), "single native resilience damage applied before restoring fixture protection")) return -1; + m_Step = 2; m_Wait = now + 500; return 0; + } + if (m_Step == 2) + { + if (!ERR_CasualtyLoadingRules.GroundSettled(m_Player)) + { + if (now >= m_NextDiagnostic) { Diagnose(); m_NextDiagnostic = now + 1000; } + return 0; + } + if (!Check(ERR_CasualtyLoadingRules.Nearby(m_Mode, m_Helper, m_Player), "actual incapacitated target is settled with clear line of sight")) return -1; + if (!Check(!m_Mode.CasualtyLoading().CanLoad(m_Helper, m_Player) && !m_Service.Begin(m_Helper, m_Player) && m_Service.PendingCount() == 0, "strict production authorization rejects nonparticipant helper even in valid physical state")) return -1; + m_Service.EnableHelper(); + if (!Check(m_Mode.ERR_UseCasualtyFixture(m_Service), "explicit fixture installs helper-only membership adapter")) return -1; + m_Observing = true; m_Service.Tick(now); m_SettleStart = System.GetTickCount(); + if (!Check(!m_Service.CanLoad(m_Helper, m_Player), "new observation cannot bypass five-second settling window")) return -1; + m_Step = 3; return 0; + } + if (m_Step == 3) + { + if (System.GetTickCount() - m_SettleStart < 5500) return 0; + Diagnose(); + if (!Check(m_Service.CanLoad(m_Helper, m_Player), "settled real casualty is eligible with only helper membership adapted")) return -1; + array seats = {}; m_Mode.Extraction().Seats(seats); + foreach (BaseCompartmentSlot seat : seats) + { + if (!ERR_CasualtyLoadingRules.TransportBench(seat, m_Aircraft) || seat.GetOccupant() || seat.IsReserved()) continue; + seat.SetReserved(m_Helper); m_Reserved.Insert(seat); + } + if (!Check(!m_Reserved.IsEmpty() && !m_Service.CanLoad(m_Helper, m_Player) && !m_Service.Begin(m_Helper, m_Player), "native external reservations prevent loading when all child benches are reserved")) return -1; + ReleaseFixtureReservations(); + vector middle = (ChimeraCharacter.Cast(m_Helper).AimingPosition() + ChimeraCharacter.Cast(m_Player).AimingPosition()) * 0.5; + m_Blocker = ERR_Actors.Spawn("{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et", middle); + if (!Check(m_Blocker != null, "successor-owned physical line-of-sight obstacle spawned")) return -1; + m_Mode.Own(m_Blocker); + vector low, high; m_Blocker.GetWorldBounds(low, high); + vector wall[4]; m_Blocker.GetWorldTransform(wall); wall[3] = wall[3] + middle - (low + high) * 0.5; + m_Blocker.SetWorldTransform(wall); + m_Step = 4; m_Wait = now + 500; return 0; + } + if (m_Step == 4) + { + if (!Check(!ERR_CasualtyLoadingRules.LineOfSight(m_Helper, m_Player) && !m_Service.CanLoad(m_Helper, m_Player) && !m_Service.Begin(m_Helper, m_Player) && m_Service.PendingCount() == 0, "physical wall blocks completion-time rescue authorization")) return -1; + ERR_Actors.DeleteSpawned(m_Blocker); m_Blocker = null; + m_Step = 5; m_Wait = now + 500; return 0; + } + if (m_Step == 5) + { + if (!Check(m_Action.CanBePerformedScript(m_Helper) && m_Service.PendingCount() == 0, "real action becomes performable after obstruction removal")) return -1; + // Invoke the real completion boundary. This does not simulate holding input + // for five seconds or claim a second authenticated network player. + m_Action.PerformAction(m_Player, m_Helper); + if (!Check(m_Service.PendingCount() == 1 && m_Resolutions == 0, "real owner handshake commits one pending physical load")) return -1; + array seats = {}; m_Mode.Extraction().Seats(seats); + foreach (BaseCompartmentSlot seat : seats) + if (ERR_CasualtyLoadingRules.TransportBench(seat, m_Aircraft) && seat.IsReservedBy(m_Player)) m_LoadedSeat = seat; + if (!Check(m_LoadedSeat != null, "service reserves the actual selected child bench for the casualty")) return -1; + m_Action.PerformAction(m_Player, m_Helper); + if (!Check(m_Service.PendingCount() == 1 && m_Resolutions == 0, "duplicate completion cannot issue a second ticket")) return -1; + m_Step = 6; return 0; + } + if (m_Step == 6) + { + if (m_Service.PendingCount() > 0) return 0; + Diagnose(); + if (!Check(m_Loaded && m_Resolutions == 1 && ERR_Actors.Alive(m_Player) && ERR_CasualtyLoadingRules.Down(m_Player) && CompartmentAccessComponent.GetVehicleIn(m_Player) == m_Aircraft && m_LoadedSeat.GetOccupant() == m_Player, "production owner handshake physically loads real living incapacitated player exactly once")) return -1; + if (!Check(!m_LoadedSeat.IsReserved() && m_Service.StrictParticipant(m_Player), "successful loading releases reservation and preserves actual player identity")) return -1; + m_Service.Stop(); m_Service.Stop(); m_Service.Tick(now); + if (!Check(m_Service.StoppedForProbe() && m_Service.PendingCount() == 0 && m_Resolutions == 1 && !m_Service.Begin(m_Helper, m_Player), "Stop is latched, idempotent and cannot repeat completion or restart loading")) return -1; + Stop(); return 1; + } + return 0; + } +} +modded class ERR_GameMode +{ + protected ref ERR_NativeCasualtyHelperAdapter m_ERRNativeCasualtyAdapter; + bool ERR_UseCasualtyFixture(ERR_NativeCasualtyHelperAdapter service) + { + string enabled, outcome; + if (!Replication.IsServer() || !System.GetCLIParam("errBaseSmoke", enabled) || enabled != "1" || !System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "casualty-service") return false; + m_ERRNativeCasualtyAdapter = service; return true; + } + override ERR_CasualtyLoadingService CasualtyLoading() + { + if (m_ERRNativeCasualtyAdapter) return m_ERRNativeCasualtyAdapter; + return super.CasualtyLoading(); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c new file mode 100644 index 0000000..14e03c1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c @@ -0,0 +1,52 @@ +#ifdef WORKBENCH +// Exercises native service dispatch, not remote RPC ownership or rendered UI. +class ERR_NativeContractsProbe +{ + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: base contracts " + detail); return true; } + Print("ERR SMOKE FAIL: base contracts " + detail, LogLevel.ERROR); + return false; + } + static bool Run(ERR_GameMode mode, IEntity player) + { + if (!Check(mode.Factions() && mode.Factions().WorldReady() && mode.PreparationError().IsEmpty(), "catalog resolves hostile vanilla factions and successful preparation")) return false; + if (!Check(SCR_FactionManager.SGetFaction(player) == mode.PlayerFaction() && player.GetPrefabData().GetPrefabName() == mode.Factions().PrisonerPrefab, "physical prisoner matches injected faction and resource")) return false; + ERR_SiteRuntime site = mode.Sites().Find("everon-supply-1"); + if (!Check(site && site.Group && site.Group.GetFaction() == mode.EnemyFaction() && site.Group.GetPrefabData().GetPrefabName() == mode.Factions().GuardGroupPrefab, "physical guard squad comes from injected catalog")) return false; + ERR_FactionCatalog isolated = ERR_FactionCatalog.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BE50B97B8E2B36E6}Configs/ERR/VanillaFactions.conf")); + if (!isolated) return false; + string enemyKey = isolated.EnemyFactionKey; + isolated.EnemyFactionKey = isolated.PlayerFactionKey; + if (!Check(!isolated.Valid() && !isolated.WorldReady(), "same-side factions rejected")) return false; + isolated.EnemyFactionKey = "ERR_MISSING_FACTION"; + if (!Check(!isolated.WorldReady(), "unknown world faction rejected")) return false; + isolated.EnemyFactionKey = enemyKey; + ResourceName prisoner = isolated.PrisonerPrefab; + isolated.PrisonerPrefab = ""; + if (!Check(!isolated.Valid(), "missing prisoner resource rejected")) return false; + isolated.PrisonerPrefab = prisoner; + if (!Check(isolated.WorldReady(), "isolated catalog restored without mutating live configuration")) return false; + + array replies = {}; + int original = mode.Settings().Get("radioDefenceSeconds"); + mode.Admin().Execute(mode, false, "mission radio set 60", replies); + if (!Check(mode.Settings().Get("radioDefenceSeconds") == original && replies.Count() == 1 && replies[0] == "Administrator access required.", "unauthorized settings request rejected")) return false; + mode.Admin().Execute(mode, true, "mission radio set 60junk", replies); + if (!Check(mode.Settings().Get("radioDefenceSeconds") == original && replies[0].Contains("Invalid"), "partially numeric input rejected without mutation")) return false; + mode.Admin().Execute(mode, true, "mission radio set 0", replies); + if (!Check(mode.Settings().Get("radioDefenceSeconds") == original && replies[0].Contains("Invalid"), "out-of-range duration rejected without mutation")) return false; + mode.Admin().Execute(mode, true, " MISSION RADIO SET 60 ", replies); + if (!Check(mode.Settings().Get("radioDefenceSeconds") == 60 && replies[0] == "radioDefenceSeconds=60 saved", "normalized base command saves validated duration")) return false; + mode.Admin().Execute(mode, true, "mission radio show", replies); + if (!Check(replies.Count() == 1 && replies[0] == "radioDefenceSeconds=60", "base command reads saved duration")) return false; + mode.Admin().Execute(mode, true, "settings", replies); + if (!Check(replies.Count() == ERR_Settings.Keys().Count(), "base settings listing available")) return false; + mode.Admin().Execute(mode, true, "status", replies); + if (!Check(!replies.IsEmpty() && replies[0] == "Escape the prison", "base mission status available before companions")) return false; + mode.Admin().Execute(mode, true, "mission radio set " + original.ToString(), replies); + if (!Check(mode.Settings().Get("radioDefenceSeconds") == original, "test setting restored")) return false; + return true; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c new file mode 100644 index 0000000..8afc5ff --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c @@ -0,0 +1,60 @@ +#ifdef WORKBENCH +class ERR_NativeDefinitionProbe +{ + protected static bool Check(bool condition, string name) + { + if (condition) { Print("ERR SMOKE PASS: definition " + name); return true; } + Print("ERR SMOKE FAIL: definition " + name, LogLevel.ERROR); + return false; + } + static bool Run() + { + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BC310DC0CD27F523}Configs/ERR/EveronSites.conf")); + if (!Check(definition && definition.Valid(), "authored configuration resolves")) return false; + ERR_SiteDefinition cache = definition.Find("everon-supply-1"); + if (!cache) return false; + cache.Id = "everon-prison-1"; + if (!Check(!definition.Valid(), "duplicate site identity rejected")) return false; + cache.Id = "everon-supply-1"; + ERR_SiteStock documents = cache.Stock[3]; + documents.TargetId = "missing-radio"; + if (!Check(!definition.Valid(), "dangling document target rejected")) return false; + documents.TargetId = "everon-prison-1"; + if (!Check(!definition.Valid(), "non-radio document target rejected")) return false; + documents.TargetId = "everon-radio-1"; + documents.Count = 1; + if (!Check(!definition.Valid(), "insufficient guaranteed radio clues rejected")) return false; + documents.Count = 65; + if (!Check(!definition.Valid(), "unbounded stock rejected")) return false; + documents.Count = 2; + cache.RevealOnEscape = false; + if (!Check(!definition.Valid(), "unguaranteed clue route rejected")) return false; + cache.RevealOnEscape = true; + ERR_SiteDefinition alternate = definition.Find("everon-supply-2"); + vector alternatePosition = alternate.Position; + alternate.Position = cache.Position + "10 0 0"; + if (!Check(!definition.Valid(), "radio sources sharing one footprint rejected")) return false; + alternate.Position = alternatePosition; + string label = alternate.Label; + alternate.Label = ""; + if (!Check(!definition.Valid(), "unnamed location rejected")) return false; + alternate.Label = label; + ERR_SiteDefinition radio = definition.Find("everon-radio-1"); + float radioRadius = radio.DiscoverRadius; + radio.DiscoverRadius = 9; + if (!Check(!definition.Valid(), "radio identification beyond eight metres rejected")) return false; + radio.DiscoverRadius = 8; + if (!Check(definition.Valid(), "close physical radio identification allowed")) return false; + radio.DiscoverRadius = radioRadius; + radio.RevealOnEscape = true; + if (!Check(!definition.Valid(), "escape cannot reveal the radio directly")) return false; + radio.RevealOnEscape = false; + ERR_SiteProp prop = definition.Find("everon-outpost-1").Props[0]; + vector offset = prop.Offset; + prop.Offset = "100 0 0"; + if (!Check(!definition.Valid(), "unbounded scenery offset rejected")) return false; + prop.Offset = offset; + return Check(definition.Valid(), "valid configuration restored after isolated mutations"); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c new file mode 100644 index 0000000..67e07d4 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c @@ -0,0 +1,160 @@ +#ifdef WORKBENCH +// Opt-in hidden native-widget comparison; no discovery, inventory or mission +// state is changed, and no map menu or player input is fabricated. +// Separate owned subclasses preserve the vanilla base RPC serializer identity. +// Their small widget adapters are repeated to compare the unchanged native +// setter against the real successor subclass without modding a replicated type. +class ERR_NativePlainMapMarker : SCR_MapMarkerBase +{ + bool ERR_ProbeAttachMapWidget() + { + ERR_ProbeDetachMapWidget(); + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (!manager || !manager.GetMarkerConfig()) return false; + m_ConfigEntry = manager.GetMarkerConfig().GetMarkerEntryConfigByType(GetType()); + if (!m_ConfigEntry) return false; + m_wRoot = GetGame().GetWorkspace().CreateWidgets(m_ConfigEntry.GetMarkerLayout()); + if (!m_wRoot) return false; + m_wRoot.SetVisible(false); + m_MarkerWidgetComp = SCR_MapMarkerWidgetComponent.Cast(m_wRoot.FindHandler(SCR_MapMarkerWidgetComponent)); + if (!m_MarkerWidgetComp) return false; + m_MarkerWidgetComp.SetMarkerObject(this); + m_ConfigEntry.InitClientSettings(this, m_MarkerWidgetComp, true); + return m_wRoot.FindAnyWidget("MarkerText") != null; + } + string ERR_ProbeMapText() + { + if (!m_wRoot) return ""; + TextWidget text = TextWidget.Cast(m_wRoot.FindAnyWidget("MarkerText")); + if (!text) return ""; + return text.GetText(); + } + void ERR_ProbeDetachMapWidget() + { + // Remove only this probe object's native subscriptions/widgets. + SCR_MapEntity.GetOnMapClose().Remove(OnMapClosed); + SCR_MapEntity.GetOnLayerChanged().Remove(OnMapLayerChanged); + if (m_wRoot) m_wRoot.RemoveFromHierarchy(); + m_wRoot = null; + m_MarkerWidgetComp = null; + } +} +class ERR_NativeObjectiveMapMarker : ERR_DiscoveryMarker +{ + bool ERR_ProbeAttachMapWidget() + { + ERR_ProbeDetachMapWidget(); + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (!manager || !manager.GetMarkerConfig()) return false; + m_ConfigEntry = manager.GetMarkerConfig().GetMarkerEntryConfigByType(GetType()); + if (!m_ConfigEntry) return false; + m_wRoot = GetGame().GetWorkspace().CreateWidgets(m_ConfigEntry.GetMarkerLayout()); + if (!m_wRoot) return false; + m_wRoot.SetVisible(false); + m_MarkerWidgetComp = SCR_MapMarkerWidgetComponent.Cast(m_wRoot.FindHandler(SCR_MapMarkerWidgetComponent)); + if (!m_MarkerWidgetComp) return false; + m_MarkerWidgetComp.SetMarkerObject(this); + m_ConfigEntry.InitClientSettings(this, m_MarkerWidgetComp, true); + return m_wRoot.FindAnyWidget("MarkerText") != null; + } + string ERR_ProbeMapText() + { + if (!m_wRoot) return ""; + TextWidget text = TextWidget.Cast(m_wRoot.FindAnyWidget("MarkerText")); + if (!text) return ""; + return text.GetText(); + } + void ERR_ProbeDetachMapWidget() + { + // Remove only this probe object's native subscriptions/widgets. + SCR_MapEntity.GetOnMapClose().Remove(OnMapClosed); + SCR_MapEntity.GetOnLayerChanged().Remove(OnMapLayerChanged); + if (m_wRoot) m_wRoot.RemoveFromHierarchy(); + m_wRoot = null; + m_MarkerWidgetComp = null; + } +} +modded class SCR_MapMarkerManagerComponent +{ + bool ERR_ProbeRetainsDiscoveryMarker(ERR_DiscoveryMarker marker) + { + return m_aStaticMarkers.Contains(marker) || m_aDisabledMarkers.Contains(marker); + } +} +class ERR_NativeDiscoveryMapProbe +{ + protected static ref ERR_NativePlainMapMarker s_Plain; + protected static ref ERR_NativeObjectiveMapMarker s_Objective; + static void Stop() + { + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (s_Plain) + { + s_Plain.ERR_ProbeDetachMapWidget(); + if (manager) manager.RemoveStaticMarker(s_Plain); + } + if (s_Objective) + { + s_Objective.ERR_ProbeDetachMapWidget(); + if (manager) manager.ERR_RemoveDiscoveryMarker(s_Objective); + } + s_Plain = null; + s_Objective = null; + } + protected static bool Check(bool success, string detail) + { + if (success) { Print("ERR SMOKE PASS: discovery map " + detail); return true; } + Print("ERR SMOKE FAIL: discovery map " + detail, LogLevel.ERROR); + Stop(); + return false; + } + // Invoke once after ordinary fixture admission and native map manager init. + static bool Run() + { + Stop(); + SCR_MapMarkerManagerComponent manager = SCR_MapMarkerManagerComponent.GetInstance(); + if (!Check(manager && manager.GetMarkerConfig() && GetGame().GetPlayerController(), "native local controller and marker manager available")) return false; + int originalCount = manager.GetStaticMarkers().Count(); + s_Plain = new ERR_NativePlainMapMarker(); + s_Plain.SetType(SCR_EMapMarkerType.PLACED_CUSTOM); + s_Plain.SetMarkerConfigID(0); + s_Plain.SetCustomText("Unknown location"); + manager.InsertStaticMarker(s_Plain, true); + if (!Check(s_Plain.ERR_ProbeAttachMapWidget() && s_Plain.ERR_ProbeMapText() == "Unknown location", "native baseline label rendered in actual hidden marker layout")) return false; + s_Plain.SetCustomText("Radio station"); + if (!Check(s_Plain.GetCustomText() == "Radio station" && s_Plain.ERR_ProbeMapText() == "Unknown location", "native data-only setter reproduces stale already-open label")) return false; + if (!Check(s_Plain.CanBeRemovedByOwner() && SCR_MapMarkersUI.IsOwnedMarker(s_Plain), "plain local marker exposes native delete/edit/drag eligibility")) return false; + + s_Objective = new ERR_NativeObjectiveMapMarker(); + s_Objective.SetType(SCR_EMapMarkerType.PLACED_CUSTOM); + s_Objective.SetMarkerConfigID(0); + s_Objective.SetCustomText("Unknown location"); + manager.InsertStaticMarker(s_Objective, true); + if (!Check(s_Objective.GetMarkerOwnerID() == -1 && !SCR_MapMarkersUI.IsOwnedMarker(s_Objective) && !s_Objective.CanBeRemovedByOwner(), "local insertion retains objective identity and disables native edit/drag/delete eligibility")) return false; + if (!Check(s_Objective.ERR_ProbeAttachMapWidget() && s_Objective.ERR_ProbeMapText() == "Unknown location", "objective first label rendered through actual native layout")) return false; + int coordinates[2]; + s_Objective.SetDiscoveryPosition("6123.25 0 7345.75", 1); + s_Objective.GetWorldPos(coordinates); + if (!Check(coordinates[0] == 6250 && coordinates[1] == 7250, "first clue stores only stable 500m search-square center")) return false; + s_Objective.SetDiscoveryPosition("6123.25 0 7345.75", 2); + s_Objective.GetWorldPos(coordinates); + if (!Check(coordinates[0] == 6123 && coordinates[1] == 7346, "identification moves same native marker to exact rounded coordinates")) return false; + Widget originalWidget = s_Objective.GetRootWidget(); + s_Objective.SetCustomText("Radio station"); + if (!Check(s_Objective.GetRootWidget() == originalWidget && s_Objective.ERR_ProbeMapText() == "Radio station", "identification refreshes existing native widget without recreating marker")) return false; + if (!Check(manager.GetStaticMarkers().Count() == originalCount + 2, "label change creates no additional marker")) return false; + s_Objective.ERR_ProbeDetachMapWidget(); + s_Objective.SetCustomText("Initial helicopter pickup site"); + if (!Check(!s_Objective.GetRootWidget() && s_Objective.GetCustomText() == "Initial helicopter pickup site", "closed widget accepts data-only update safely")) return false; + if (!Check(s_Objective.ERR_ProbeAttachMapWidget() && s_Objective.ERR_ProbeMapText() == "Initial helicopter pickup site", "new native widget renders latest saved label")) return false; + manager.SetStaticMarkerDisabled(s_Objective, true); + if (!Check(manager.ERR_ProbeRetainsDiscoveryMarker(s_Objective) && !manager.GetStaticMarkers().Contains(s_Objective), "native culling retains objective only in disabled list")) return false; + manager.ERR_RemoveDiscoveryMarker(s_Objective); + if (!Check(!manager.ERR_ProbeRetainsDiscoveryMarker(s_Objective) && !s_Objective.GetRootWidget(), "deleting culled objective removes both memberships and its widget")) return false; + manager.ERR_RemoveDiscoveryMarker(s_Objective); + if (!Check(!manager.ERR_ProbeRetainsDiscoveryMarker(s_Objective), "duplicate owned cleanup cannot reactivate objective")) return false; + Stop(); + return Check(manager.GetStaticMarkers().Count() == originalCount, "owned probe widgets and markers removed; mission markers preserved"); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c new file mode 100644 index 0000000..95df39b --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c @@ -0,0 +1,163 @@ +#ifdef WORKBENCH +class ERR_NativeEnvironmentSample : ERR_EnvironmentService +{ + bool Apply(TimeAndWeatherManagerEntity manager, int dateCode, int profile) { return StartOn(manager, dateCode, profile); } +} +// Explicit isolated environment smoke outcome. It temporarily changes the private +// native world, restores date/weather family/looping, then requests a round reset. +class ERR_NativeEnvironmentProbe +{ + protected ERR_GameMode m_Mode; + protected TimeAndWeatherManagerEntity m_Manager; + protected ref ERR_NativeEnvironmentSample m_Sample; + protected ref ERR_Settings m_TestSettings; + protected bool m_Snapshot; + protected bool m_Restored; + protected bool m_Stopped; + protected bool m_OwnsSettings; + protected bool m_RestoreDateAccepted; + protected int m_Year; + protected int m_Month; + protected int m_Day; + protected string m_Weather; + protected bool m_Looping; + protected float m_Clock; + protected float m_DayDuration; + protected bool m_DayAdvances; + protected float m_Wait; + protected float m_Deadline; + protected int m_Step; + protected int m_Result; + void ERR_NativeEnvironmentProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: environment " + detail); return true; } + Print("ERR SMOKE FAIL: environment " + detail, LogLevel.ERROR); + m_Result = -1; + Stop(); + return false; + } + protected string CurrentWeather() + { + if (!m_Manager || !m_Manager.GetCurrentWeatherState()) return ""; + return m_Manager.GetCurrentWeatherState().GetStateName(); + } + protected void Restore() + { + if (!m_Snapshot || m_Restored || !m_Manager) return; + m_Restored = true; + if (m_Sample) m_Sample.Stop(); + m_RestoreDateAccepted = m_Manager.SetDate(m_Year, m_Month, m_Day, true); + m_Manager.ForceWeatherTo(m_Looping, m_Weather, 0, 24); + } + void Stop() + { + if (m_Stopped) return; + Restore(); + m_Stopped = true; + if (m_OwnsSettings) + { + string path = "$profile:erri-native-environment-probe.json"; + FileIO.DeleteFile(path); FileIO.DeleteFile(path + ".bak"); FileIO.DeleteFile(path + ".tmp"); + m_OwnsSettings = false; + } + } + protected bool SettingsChecks() + { + string path = "$profile:erri-native-environment-probe.json"; + if (!Check(!FileIO.FileExists(path) && !FileIO.FileExists(path + ".bak") && !FileIO.FileExists(path + ".tmp"), "environment fixture filenames are unused")) return false; + m_OwnsSettings = true; + JsonSaveContext json = new JsonSaveContext(); + json.EnableTypeDiscriminator(false); + foreach (string key : ERR_Settings.Keys()) + if (key != "startDateCode" && key != "weatherProfile") json.WriteValue(key, m_Mode.Settings().Get(key)); + if (!Check(json.SaveToFile(path), "owned legacy settings fixture written")) return false; + m_TestSettings = new ERR_Settings(path); + JsonLoadContext unchanged = new JsonLoadContext(); + if (!Check(m_TestSettings.Get("startDateCode") == 0 && m_TestSettings.Get("weatherProfile") == 0 && unchanged.LoadFromFile(path) && !unchanged.DoesKeyExist("startDateCode") && !unchanged.DoesKeyExist("weatherProfile"), "missing environment settings preserve authored defaults without rewriting legacy file")) return false; + if (!Check(m_TestSettings.Set("startDateCode", 1501231) && m_TestSettings.Set("weatherProfile", 2), "date and weather persist in owned fixture settings")) return false; + ERR_Settings reloaded = new ERR_Settings(path); + if (!Check(reloaded.Get("startDateCode") == 1501231 && reloaded.Get("weatherProfile") == 2 && reloaded.Get("radioDefenceSeconds") == m_Mode.Settings().Get("radioDefenceSeconds"), "odd maximum date code round-trips exactly and old settings survive")) return false; + if (!Check(!m_TestSettings.Set("startDateCode", 229) && !m_TestSettings.Set("weatherProfile", 4), "non-leap-century date and unknown profile cannot be saved")) return false; + int originalDate = m_Mode.Settings().Get("startDateCode"); + int originalProfile = m_Mode.Settings().Get("weatherProfile"); + array replies = {}; + m_Mode.Admin().Execute(m_Mode, false, "mission weather set rain", replies); + if (!Check(replies.Count() == 1 && replies[0].Contains("Administrator") && m_Mode.Settings().Get("startDateCode") == originalDate && m_Mode.Settings().Get("weatherProfile") == originalProfile, "unauthorized environment command preserves real settings")) return false; + replies.Clear(); + ERR_EnvironmentCommands.Execute(m_TestSettings, m_Mode.Environment(), {"mission", "date", "set", "2000-02-29"}, replies); + if (!Check(m_TestSettings.Get("startDateCode") == 1000229 && replies.Count() == 1 && replies[0].Contains("next round"), "natural leap-date command saves only next-round settings")) return false; + replies.Clear(); + ERR_EnvironmentCommands.Execute(m_TestSettings, m_Mode.Environment(), {"mission", "weather", "set", "clear"}, replies); + if (!Check(m_TestSettings.Get("weatherProfile") == 1 && replies.Count() == 1 && replies[0].Contains("Current round unchanged"), "named weather command saves only next-round settings")) return false; + replies.Clear(); + ERR_EnvironmentCommands.Execute(m_TestSettings, m_Mode.Environment(), {"mission", "date", "set", "1900-00-00"}, replies); + if (!Check(m_TestSettings.Get("startDateCode") == 1000229 && replies[0].Contains("Invalid"), "zero month/day cannot masquerade as authored date")) return false; + return true; + } + int Tick(float now) + { + if (m_Result != 0) return m_Result; + if (m_Stopped) return -1; + if (!Replication.IsServer() || !m_Mode || !m_Mode.Active()) { Check(false, "requires active server authority"); return -1; } + if (m_Deadline > 0 && now > m_Deadline) { Check(false, "native environment request timed out"); return -1; } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + ChimeraWorld world = ChimeraWorld.CastFrom(m_Mode.GetWorld()); + if (world) m_Manager = world.GetTimeAndWeatherManager(); + if (!Check(m_Manager && m_Manager.GetCurrentWeatherState() && m_Mode.Environment().Started(), "native environment manager and round service available")) return -1; + m_Manager.GetDate(m_Year, m_Month, m_Day); + m_Weather = CurrentWeather(); m_Looping = m_Manager.IsWeatherLooping(); + m_Clock = m_Manager.GetTimeOfTheDay(); m_DayDuration = m_Manager.GetDayDuration(); m_DayAdvances = m_Manager.GetIsDayAutoAdvanced(); + m_Snapshot = true; + m_Deadline = now + 15000; + if (!SettingsChecks()) return -1; + if (!Check(CurrentWeather() == m_Weather && m_Manager.GetYear() == m_Year && m_Manager.GetMonth() == m_Month && m_Manager.GetDay() == m_Day, "saving fixture environment settings does not mutate native world")) return -1; + for (int profile = 1; profile <= 3; profile++) + if (!Check(ERR_EnvironmentService.HasWeatherState(m_Manager, ERR_EnvironmentService.WeatherStateName(profile)), "selected vanilla weather family exists: " + ERR_EnvironmentService.ProfileName(profile))) return -1; + m_Sample = new ERR_NativeEnvironmentSample(); + if (!Check(!m_Sample.Apply(m_Manager, 229, 1) && !m_Sample.Apply(m_Manager, 1000229, 4) && !m_Sample.Started(), "invalid date/profile rejected before native changes")) return -1; + if (!Check(m_Sample.Apply(m_Manager, 890601, 1), "clear profile and specific date requested once")) return -1; + m_Step = 1; m_Wait = now + 500; + return 0; + } + if (m_Step == 1) + { + if (!Check(CurrentWeather() == "Clear" && m_Manager.IsWeatherLooping() && m_Manager.GetYear() == 1989 && m_Manager.GetMonth() == 6 && m_Manager.GetDay() == 1, "native clear weather and requested date applied after frame")) return -1; + if (!Check(m_Sample.Apply(m_Manager, 1000229, 3) && m_Sample.DateCode() == 890601 && m_Sample.Profile() == 1 && CurrentWeather() == "Clear", "repeated start cannot apply another date or profile")) return -1; + m_Sample.Stop(); + if (!Check(!m_Sample.Apply(m_Manager, 1000229, 3), "stopped environment cannot restart")) return -1; + m_Sample = new ERR_NativeEnvironmentSample(); + if (!Check(m_Sample.Apply(m_Manager, 1000229, 2), "overcast and leap date requested on fresh service")) return -1; + m_Step = 2; m_Wait = now + 500; + return 0; + } + if (m_Step == 2) + { + if (!Check(CurrentWeather() == "Overcast" && m_Manager.GetYear() == 2000 && m_Manager.GetMonth() == 2 && m_Manager.GetDay() == 29, "native overcast and leap date accepted")) return -1; + m_Sample.Stop(); m_Sample = new ERR_NativeEnvironmentSample(); + if (!Check(m_Sample.Apply(m_Manager, 0, 3), "rain profile preserves authored/current date when date override is disabled")) return -1; + m_Step = 3; m_Wait = now + 500; + return 0; + } + if (m_Step == 3) + { + if (!Check(CurrentWeather() == "Rainy" && m_Manager.GetYear() == 2000 && m_Manager.GetMonth() == 2 && m_Manager.GetDay() == 29, "native rainy family applied without changing date")) return -1; + float clockAdvance = m_Manager.GetTimeOfTheDay() - m_Clock; + if (clockAdvance < 0) clockAdvance += 24; + if (!Check(m_Manager.GetDayDuration() == m_DayDuration && m_Manager.GetIsDayAutoAdvanced() == m_DayAdvances && clockAdvance < 0.1, "environment does not reset clock or progression")) return -1; + Restore(); + m_Step = 4; m_Wait = now + 500; + return 0; + } + if (m_Step == 4) + { + if (!Check(m_RestoreDateAccepted && m_Manager.GetYear() == m_Year && m_Manager.GetMonth() == m_Month && m_Manager.GetDay() == m_Day && CurrentWeather() == m_Weather && m_Manager.IsWeatherLooping() == m_Looping, "fixture restores original native date, weather family and looping")) return -1; + m_Result = 1; Stop(); + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c new file mode 100644 index 0000000..0046a03 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c @@ -0,0 +1,118 @@ +#ifdef WORKBENCH +// Only environment-restart opts into this fixed private path. The runner must +// refuse all preexisting fixture files and require exactly two real rounds. +class ERR_NativeEnvironmentRestartProbe +{ + static const string PATH = "$profile:erri-environment-restart.json"; + static const string MARKER = "$profile:erri-environment-restart-round.json"; + protected ERR_GameMode m_Mode; + protected TimeAndWeatherManagerEntity m_Manager; + protected bool m_Failed; + protected bool m_Stopped; + protected bool m_Complete; + protected int m_Round = 1; + protected int m_InitialDate; + protected string m_InitialWeather; + protected bool m_InitialLoop; + protected float m_Wait; + protected float m_Hour; + protected float m_Duration; + + void ERR_NativeEnvironmentRestartProbe(ERR_GameMode mode) + { + m_Mode = mode; + ChimeraWorld world = ChimeraWorld.CastFrom(mode.GetWorld()); + if (world) m_Manager = world.GetTimeAndWeatherManager(); + if (!Check(m_Manager && m_Manager.GetCurrentWeatherState(), "world environment exists before production settings and service initialization")) return; + m_InitialDate = DateCode(); + m_InitialWeather = Weather(); + m_InitialLoop = m_Manager.IsWeatherLooping(); + if (FileIO.FileExists(MARKER)) + { + JsonLoadContext marker = new JsonLoadContext(); + int stage; + if (!Check(marker.LoadFromFile(MARKER) && marker.ReadValue("completedRound", stage) && stage == 1 && FileIO.FileExists(PATH), "second instance sees first round's completed marker and saved settings")) return; + m_Round = 2; + } + else + { + if (!Check(!FileIO.FileExists(PATH) && !FileIO.FileExists(PATH + ".bak") && !FileIO.FileExists(PATH + ".tmp"), "first instance owns previously unused fixture settings paths")) return; + } + PrintFormat("ERR ENVIRONMENT RESTART INSTANCE: round=%1 authoredDate=%2 authoredWeather=%3", m_Round, m_InitialDate, m_InitialWeather); + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: environment restart " + detail); return true; } + m_Failed = true; + Print("ERR SMOKE FAIL: environment restart " + detail, LogLevel.ERROR); + return false; + } + protected int DateCode() { return (m_Manager.GetYear() - 1900) * 10000 + m_Manager.GetMonth() * 100 + m_Manager.GetDay(); } + protected string Weather() + { + WeatherState state = m_Manager.GetCurrentWeatherState(); + if (!state) return "unavailable"; + return state.GetStateName(); + } + int Round() { return m_Round; } + void Stop() { m_Stopped = true; } + int Tick(float now) + { + if (m_Failed || m_Stopped) return -1; + if (m_Complete) return 1; + if (m_Wait == 0) + { + if (!Check(m_Mode.Environment().Started() && m_Mode.Time().Started(), "production round services started")) return -1; + if (!Check(m_Mode.Settings().Get("startTimeMinutes") == 840 && m_Mode.Settings().Get("timeMultiplier") == 1 && m_Mode.Time().StartMinutes() == 840 && m_Mode.Time().Multiplier() == 1, "both rounds retain original clock defaults and active progression settings")) return -1; + m_Hour = m_Manager.GetTimeOfTheDay(); + m_Duration = m_Manager.GetDayDuration(); + if (m_Round == 1) + { + if (!Check(m_Mode.Settings().Get("startDateCode") == 0 && m_Mode.Settings().Get("weatherProfile") == 0 && m_Mode.Environment().DateCode() == 0 && m_Mode.Environment().Profile() == 0, "first instance uses authored environment defaults")) return -1; + if (!Check(DateCode() == m_InitialDate && Weather() == m_InitialWeather && m_Manager.IsWeatherLooping() == m_InitialLoop, "default production startup preserves authored date and weather")) return -1; + array replies = {}; + if (!Check(ERR_EnvironmentCommands.Execute(m_Mode.Settings(), m_Mode.Environment(), {"mission", "date", "set", "2000-02-29"}, replies), "production date command handled")) return -1; + if (!Check(ERR_EnvironmentCommands.Execute(m_Mode.Settings(), m_Mode.Environment(), {"mission", "weather", "set", "overcast"}, replies), "production weather command handled")) return -1; + if (!Check(replies.Count() == 2 && replies[0].Contains("Saved for next round") && replies[1].Contains("Saved for next round"), "both commands report durable next-round saves")) return -1; + // This is the actual mode's settings owner, not a detached sample service. + ERR_Settings disk = new ERR_Settings(PATH); + if (!Check(disk.Get("startDateCode") == 1000229 && disk.Get("weatherProfile") == 2 && disk.Get("radioDefenceSeconds") == 180 && disk.Get("timeMultiplier") == 1, "production saves persist environment and preserve unrelated defaults")) return -1; + } + else + { + if (!Check(m_Mode.Settings().Get("startDateCode") == 1000229 && m_Mode.Settings().Get("weatherProfile") == 2 && m_Mode.Environment().DateCode() == 1000229 && m_Mode.Environment().Profile() == 2, "second real mode loads saved date and weather into production services")) return -1; + } + m_Wait = now + 2500; + return 0; + } + if (now < m_Wait) return 0; + if (!Check(m_Mode.Settings().Get("startDateCode") == 1000229 && m_Mode.Settings().Get("weatherProfile") == 2, "saved next-round settings remain intact")) return -1; + if (m_Round == 1) + { + if (!Check(m_Mode.Environment().DateCode() == 0 && m_Mode.Environment().Profile() == 0 && DateCode() == m_InitialDate && Weather() == m_InitialWeather && m_Manager.IsWeatherLooping() == m_InitialLoop, "saving real mode settings leaves current environment unchanged across native ticks")) return -1; + } + else if (!Check(DateCode() == 1000229 && Weather() == "Overcast" && m_Manager.IsWeatherLooping(), "second round applies exact leap date and selected native weather family")) return -1; + float advance = m_Manager.GetTimeOfTheDay() - m_Hour; + if (advance < 0) advance += 24; + if (!Check(advance > 0 && advance < 0.02 && m_Manager.GetIsDayAutoAdvanced() && m_Duration == ERR_TimeService.DayDuration(1) && m_Manager.GetDayDuration() == m_Duration, "native clock continues advancing without an environment-induced reset or rate change")) return -1; + if (m_Round == 1) + { + JsonSaveContext marker = new JsonSaveContext(); + marker.EnableTypeDiscriminator(false); + marker.WriteValue("completedRound", 1); + if (!Check(marker.SaveToFile(MARKER), "first completed round leaves restart handoff marker")) return -1; + } + else + { + if (FileIO.FileExists(PATH)) FileIO.DeleteFile(PATH); + if (FileIO.FileExists(PATH + ".bak")) FileIO.DeleteFile(PATH + ".bak"); + if (FileIO.FileExists(PATH + ".tmp")) FileIO.DeleteFile(PATH + ".tmp"); + if (FileIO.FileExists(MARKER)) FileIO.DeleteFile(MARKER); + if (!Check(!FileIO.FileExists(PATH) && !FileIO.FileExists(PATH + ".bak") && !FileIO.FileExists(PATH + ".tmp") && !FileIO.FileExists(MARKER), "successful second round removes only fixture settings and marker files")) return -1; + } + m_Complete = true; + return 1; + } +} + +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c new file mode 100644 index 0000000..f962fc5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c @@ -0,0 +1,172 @@ +#ifdef WORKBENCH +// Real vehicle/character compartments with an isolated synthetic identity roster. +// This is not twelve network clients, manual boarding, medical treatment or flight. +class ERR_NativeExtractionProbe +{ + protected ERR_GameMode m_Mode; + protected Vehicle m_Vehicle; + protected ref ERR_PlayerRoster m_Roster = new ERR_PlayerRoster(); + protected ref ERR_ExtractionService m_All; + protected ref ERR_ExtractionService m_Partial; + protected ref array m_Actors = {}; + protected ref array m_Accounts = {}; + protected ref array m_Seats = {}; + protected vector m_Original[4]; + protected int m_Step; + protected int m_Boarding; + protected int m_Resolutions; + protected float m_Wait; + protected UUID m_NewAccount = "00e77200-0000-0000-0000-000000000099"; + + void ERR_NativeExtractionProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: extraction " + detail); return true; } + Print("ERR SMOKE FAIL: extraction " + detail, LogLevel.ERROR); + return false; + } + protected void Resolved(ERR_ExtractionState state) { m_Resolutions++; } + protected IEntity Character(int index) + { + IEntity actor = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, ERR_Actors.Ground(m_Original[3] + Vector(20 + index * 2, 0, 15))); + if (!actor) return null; + m_Mode.Own(actor); + m_Actors.Insert(actor); + DamageManagerComponent.Cast(actor.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + return actor; + } + protected void MoveHelicopter(bool outside) + { + vector transform[4]; + m_Vehicle.GetWorldTransform(transform); + transform[3] = m_Original[3]; + if (outside) transform[3] = m_Original[3] + "650 150 0"; + m_Vehicle.SetWorldTransform(transform); + } + int Tick(float now) + { + if (now < m_Wait) return 0; + if (m_Step == 0) + { + if (!ERR_NativeTimeProbe.Run(m_Mode)) return -1; + m_Vehicle = m_Mode.ExtractionVehicle(); + if (!Check(m_Vehicle && m_Mode.Extraction().Ready(), "authored transport is ready for twelve prisoners")) return -1; + int count = m_Mode.Extraction().Seats(m_Seats); + PrintFormat("ERR EXTRACTION CAPACITY: usable pilot/passenger positions=%1", count); + if (!Check(count >= 12 && !m_Mode.SetExtractionVehicle(m_Vehicle), "running mission cannot rebind its extraction vehicle")) return -1; + m_Vehicle.GetWorldTransform(m_Original); + DamageManagerComponent.Cast(m_Vehicle.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + for (int i = 0; i < 12; i++) + { + IEntity actor = Character(i); + UUID account = "00e77200-0000-0000-0000-" + (i + 1).ToString(12, true); + if (!Check(actor && m_Roster.Bind(10001 + i, account), "isolated participant created")) return -1; + m_Accounts.Insert(account); + m_Roster.Spawned(10001 + i, actor); + } + m_All = new ERR_ExtractionService(m_Roster); + if (!Check(m_All.Assign(m_Vehicle) && !m_All.Begin(m_Original[3], 0) && m_All.Begin(m_Original[3], 500), "invalid boundary rejected without preventing a valid service start")) return -1; + if (!Check(!m_All.Assign(m_Vehicle) && !m_All.Begin(m_Original[3], 500), "duplicate binding and start rejected")) return -1; + m_All.OnResolved().Insert(Resolved); + m_Step = 1; + m_Wait = now + 1000; + return 0; + } + if (m_Step == 1) + { + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_Actors[m_Boarding].FindComponent(CompartmentAccessComponent)); + if (!Check(access && access.GetInVehicle(m_Vehicle, m_Seats[m_Boarding], true, -1, ECloseDoorAfterActions.INVALID, false), "native boarding request accepted")) return -1; + m_Boarding++; + m_Wait = now + 500; + if (m_Boarding == 12) { m_Step = 2; m_Wait = now + 3000; } + return 0; + } + if (m_Step == 2) + { + for (int i = 0; i < 12; i++) + if (!Check(CompartmentAccessComponent.GetVehicleIn(m_Actors[i]) == m_Vehicle && m_Seats[i].GetOccupant() == m_Actors[i], "participant occupies a distinct physical seat")) return -1; + m_All.Tick(ERR_Phase.EXTRACTION); + if (!Check(m_All.State() == ERR_ExtractionState.WAITING && m_All.EscapedCount() == 0, "boarding inside boundary does not win")) return -1; + MoveHelicopter(true); + m_Step = 3; + m_Wait = now + 2500; + return 0; + } + if (m_Step == 3) + { + m_All.Tick(ERR_Phase.RADIO_SEARCH); + if (!Check(m_All.State() == ERR_ExtractionState.WAITING, "leaving before extraction phase does not win")) return -1; + m_All.Tick(ERR_Phase.EXTRACTION); + array winners = {}; + m_All.ConnectedWinners(winners); + if (!Check(m_All.EscapedCount() == 12 && m_All.LeftBehindCount() == 0 && winners.Count() == 12 && m_Resolutions == 1, "all twelve physical occupants escape exactly once")) return -1; + m_All.Tick(ERR_Phase.EXTRACTION); + if (!Check(m_Resolutions == 1 && !m_All.Assign(m_Vehicle), "resolved extraction neither repeats nor replaces its vehicle")) return -1; + MoveHelicopter(false); + m_Step = 4; + m_Wait = now + 2500; + return 0; + } + if (m_Step == 4) + { + SCR_CharacterDamageManagerComponent damage = SCR_CharacterDamageManagerComponent.Cast(m_Actors[0].FindComponent(SCR_CharacterDamageManagerComponent)); + damage.EnableDamageHandling(true); + damage.Kill(Instigator.CreateInstigator(m_Actors[0])); + vector exitTransform[4]; + m_Actors[1].GetWorldTransform(exitTransform); + exitTransform[3] = ERR_Actors.Ground(m_Original[3] + "30 0 0"); + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_Actors[1].FindComponent(CompartmentAccessComponent)); + if (!Check(access.GetOutVehicle_NoDoor(exitTransform, false, false), "one survivor leaves the helicopter")) return -1; + CharacterControllerComponent.Cast(m_Actors[2].FindComponent(CharacterControllerComponent)).SetUnconscious(true); + m_Roster.Disconnect(10004); + IEntity newcomer = Character(12); + if (!Check(newcomer && m_Roster.Bind(10004, m_NewAccount), "departed connection ID reused by a distinct account")) return -1; + m_Roster.Spawned(10004, newcomer); + m_Partial = new ERR_ExtractionService(m_Roster); + if (!Check(m_Partial.Assign(m_Vehicle) && m_Partial.Begin(m_Original[3], 500), "isolated partial escape case starts")) return -1; + m_Step = 5; + m_Wait = now + 3000; + return 0; + } + if (m_Step == 5) + { + if (!Check(!ERR_Actors.Alive(m_Actors[0]) && !CompartmentAccessComponent.GetVehicleIn(m_Actors[1]), "dead occupant and left-behind survivor are physically distinct cases")) return -1; + if (!Check(ERR_Actors.Alive(m_Actors[2]) && !ERR_Actors.CanFight(m_Actors[2]) && CompartmentAccessComponent.GetVehicleIn(m_Actors[2]) == m_Vehicle, "unconscious passenger remains physically aboard")) return -1; + MoveHelicopter(true); + m_Step = 6; + m_Wait = now + 2500; + return 0; + } + if (m_Step == 6) + { + m_Partial.Tick(ERR_Phase.EXTRACTION); + array winners = {}; + m_Partial.ConnectedWinners(winners); + if (!Check(m_Partial.EscapedCount() == 10 && m_Partial.LeftBehindCount() == 3 && winners.Count() == 9, "partial escape counts only living aboard participants")) return -1; + if (!Check(m_Partial.DidEscape(m_Accounts[2]) && m_Partial.DidEscape(m_Accounts[3]) && !m_Partial.DidEscape(m_Accounts[0]) && !m_Partial.DidEscape(m_Accounts[1]) && !m_Partial.DidEscape(m_NewAccount), "unconscious and reserved occupants escape; dead and absent people do not")) return -1; + if (!Check(winners.Contains(10003) && !winners.Contains(10004), "recycled connection ID does not inherit another account's win")) return -1; + if (!Check(m_Roster.Bind(10040, m_Accounts[3]), "escaped reserved account can rebind to a new connection")) return -1; + m_Partial.ConnectedWinners(winners); + if (!Check(winners.Count() == 10 && winners.Contains(10040) && !winners.Contains(10004), "result follows escaped identity after rebinding")) return -1; + m_Partial.Tick(ERR_Phase.EXTRACTION); + if (!Check(m_Partial.EscapedCount() == 10 && m_Partial.LeftBehindCount() == 3, "terminal result snapshot remains stable")) return -1; + ERR_PlayerRoster emptyRoster = new ERR_PlayerRoster(); + ERR_ExtractionService empty = new ERR_ExtractionService(emptyRoster); + if (!Check(empty.Assign(m_Vehicle) && empty.Begin(m_Original[3], 500), "empty-roster control starts")) return -1; + empty.Tick(ERR_Phase.EXTRACTION); + if (!Check(empty.State() == ERR_ExtractionState.WAITING, "unregistered occupants cannot win the mission")) return -1; + ERR_ExtractionService stopped = new ERR_ExtractionService(m_Roster); + if (!Check(stopped.Assign(m_Vehicle) && stopped.Begin(m_Original[3], 500), "stopped-service control starts")) return -1; + stopped.Stop(); + stopped.Tick(ERR_Phase.EXTRACTION); + if (!Check(stopped.State() == ERR_ExtractionState.WAITING, "stopped extraction cannot resolve")) return -1; + if (!ERR_NativeResultProbe.Run(m_Partial, m_Accounts[3], m_Accounts[0]) || !ERR_NativeTimeProbe.VerifyProgression(m_Mode)) return -1; + MoveHelicopter(false); + for (int i = m_Actors.Count() - 1; i >= 0; i--) ERR_Actors.DeleteSpawned(m_Actors[i]); + m_Step = 7; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c new file mode 100644 index 0000000..05161d5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c @@ -0,0 +1,75 @@ +#ifdef WORKBENCH +// Read-only native assertions. Run after site preparation and faction init, +// before destructive vehicle fixtures. Does not load legacy full faction configs. +class ERR_NativeFactionCatalogProbe +{ + protected static ResourceName UAZ() { return "{259EE7B78C51B624}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469.et"; } + protected static ResourceName Mi8() { return "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"; } + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: faction-catalog " + detail); return true; } + Print("ERR SMOKE FAIL: faction-catalog " + detail, LogLevel.ERROR); + return false; + } + protected static bool Catalogs(SCR_Faction faction) + { + array catalogs = {}; + if (!Check(faction.GetAllFactionEntityCatalogs(catalogs) == 6, faction.GetFactionKey() + " retains all six catalog types")) return false; + SCR_EntityCatalog vehicles = faction.GetFactionEntityCatalogOfType(EEntityCatalogType.VEHICLE); + array entries = {}; + if (!Check(vehicles && vehicles.GetEntityList(entries) == 2, faction.GetFactionKey() + " has exactly two supported vehicle entries")) return false; + bool uaz, mi8; + foreach (SCR_EntityCatalogEntry entry : entries) + { + if (!Check(entry != null, "vehicle entry exists")) return false; + ResourceName prefab = entry.GetPrefab(); + PrintFormat("ERR FACTION VEHICLE: faction=%1 prefab=%2", faction.GetFactionKey(), prefab); + if (prefab == UAZ()) uaz = true; + else if (prefab == Mi8()) mi8 = true; + else return Check(false, "unexpected vehicle catalog entry " + prefab); + } + if (!Check(uaz && mi8 && vehicles.GetEntryWithPrefab(UAZ()) && vehicles.GetEntryWithPrefab(Mi8()), "catalog lookup resolves both unique mission vehicles")) return false; + array retained = {EEntityCatalogType.CHARACTER, EEntityCatalogType.GROUP, EEntityCatalogType.WEAPONS_TRIPOD, EEntityCatalogType.ITEM, EEntityCatalogType.SUPPLY_CONTAINER_ITEM}; + foreach (EEntityCatalogType kind : retained) + { + SCR_EntityCatalog catalog = faction.GetFactionEntityCatalogOfType(kind); + if (!Check(catalog != null, faction.GetFactionKey() + " non-vehicle catalog exists " + typename.EnumToString(EEntityCatalogType, kind))) return false; + catalog.GetEntityList(entries); + PrintFormat("ERR FACTION RETAINED: faction=%1 type=%2 entries=%3", faction.GetFactionKey(), typename.EnumToString(EEntityCatalogType, kind), entries.Count()); + // Installed US/USSR supply-container catalogs are intentionally empty. + if (kind != EEntityCatalogType.SUPPLY_CONTAINER_ITEM && !Check(!entries.IsEmpty(), "retained native content catalog is initialized and nonempty")) return false; + } + return true; + } + protected static bool Items(SCR_Faction faction, ResourceName dressing, ResourceName saline, ResourceName radio) + { + SCR_EntityCatalog items = faction.GetFactionEntityCatalogOfType(EEntityCatalogType.ITEM); + return Check(items && items.GetEntryWithPrefab(dressing) && items.GetEntryWithPrefab(saline) && items.GetEntryWithPrefab(radio), faction.GetFactionKey() + " native dressing saline and backpack radio remain catalogued"); + } + static bool Run(ERR_GameMode mode) + { + if (!Check(Replication.IsServer() && mode && mode.Active(), "active authority available")) return false; + FactionManager manager = GetGame().GetFactionManager(); + if (!Check(manager != null, "native faction manager exists")) return false; + SCR_Faction us = SCR_Faction.Cast(manager.GetFactionByKey("US")); + SCR_Faction ussr = SCR_Faction.Cast(manager.GetFactionByKey("USSR")); + if (!Check(us && ussr && mode.PlayerFaction() == us && mode.EnemyFaction() == ussr, "mission retains US and USSR faction identities")) return false; + if (!Check(us.IsFactionEnemy(ussr) && ussr.IsFactionEnemy(us) && !us.IsFactionEnemy(us) && !ussr.IsFactionEnemy(ussr), "mutual enemy and same-faction relations preserved")) return false; + if (!Check(us.GetFactionRadioEncryptionKey() == "chickenNuggets" && ussr.GetFactionRadioEncryptionKey() == "coldBorscht" && us.GetFactionRadioFrequency() == 48000 && ussr.GetFactionRadioFrequency() == 42000, "native radio encryption and frequencies preserved")) return false; + if (!Check(us.GetCallsignInfo() && ussr.GetCallsignInfo(), "native faction callsign configurations resolve")) return false; + if (!Catalogs(us) || !Catalogs(ussr)) return false; + if (!Items(us, "{A81F501D3EF6F38E}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et", "{00E36F41CA310E2A}Prefabs/Items/Medicine/SalineBag_01/SalineBag_US_01.et", "{9B6B61BB3FE3DFB0}Prefabs/Items/Equipment/Radios/Radio_ANPRC77.et")) return false; + if (!Items(ussr, "{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et", "{527D7C5D2E476BDC}Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et", "{54C68E438DD34265}Prefabs/Items/Equipment/Radios/Radio_R107M.et")) return false; + SCR_EntityCatalogManagerComponent catalogManager = SCR_EntityCatalogManagerComponent.GetInstance(); + if (!Check(catalogManager && catalogManager.GetFactionEntityCatalogOfType(EEntityCatalogType.VEHICLE, "US") && catalogManager.GetFactionEntityCatalogOfType(EEntityCatalogType.ITEM, "USSR"), "global catalog manager retains faction vehicle and inventory access")) return false; + ERR_SiteRuntime depot = mode.Sites().Find("everon-supply-2"); + Vehicle helicopter = mode.ExtractionVehicle(); + if (!Check(depot && depot.Transport && ERR_Actors.Alive(depot.Transport) && depot.Transport.GetPrefabData().GetPrefabName() == UAZ(), "physical finite depot vehicle is supported UAZ")) return false; + if (!Check(helicopter && ERR_Actors.Alive(helicopter) && helicopter.GetPrefabData().GetPrefabName() == Mi8() && helicopter.FindComponent(HelicopterControllerComponent), "physical extraction aircraft is supported Mi8")) return false; + array seats = {}; + if (!Check(mode.Extraction().Seats(seats) >= 12, "physical aircraft still has required capacity")) return false; + Print("ERR FACTION RESULT: successor faction catalog scope and retained native support; no driving or multiplayer claim"); + return true; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c new file mode 100644 index 0000000..44d0141 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c @@ -0,0 +1,141 @@ +#ifdef WORKBENCH +// Test-only horizontal envelope, independent of aircraft yaw/pitch/roll. +// All distances are around the native physics origin, not the rotor centre. +class ERR_FlightFootprintRules +{ + static float CylinderSphere(float originDistance, float radius, float thickness) + { + // Triangle inequality deliberately overbounds the one-sided rotor cylinder. + return originDistance + radius + thickness; + } + static bool Fits(float radius, float initialDrift, float initialHeight) + { + if (!(radius > 0 && radius < 32 && initialDrift >= 0 && initialDrift < 32)) return false; + if (!(initialHeight >= -3 && initialHeight <= 5)) return false; + return radius + initialDrift + 8 + 1 <= 40 && radius + initialHeight + 18 + 1 <= 60; + } +} + +class ERR_NativeFlightFootprint +{ + static const int MAX_ENTITIES = 256; + static const int MAX_DEPTH = 16; + static const int MAX_HITZONES = 512; + protected static bool Refuse(string reason) + { + Print("ERR POWERED FOOTPRINT: refused " + reason); + return false; + } + protected static bool PointRadius(vector point, vector origin, inout float radius) + { + float distance = vector.Distance(point, origin); + if (!(distance >= 0 && distance < 1000)) return false; + radius = Math.Max(radius, distance); + return true; + } + static bool Measure(Vehicle aircraft, VehicleHelicopterSimulation simulation, vector pad, out vector origin, out float radius) + { + radius = 0; + if (!aircraft || !simulation || !simulation.IsValid() || !aircraft.GetPrefabData()) return Refuse("missing initialized native airframe"); + if (aircraft.GetPrefabData().GetPrefabName() != "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et") return Refuse("different airframe resource"); + // Model bounds and damage pivots are world-space. The simulation getter + // exposes internal physics space (identity at the airport in 100422), so + // use this same physical aircraft's actual entity world transform. + vector worldTransform[4]; aircraft.GetWorldTransform(worldTransform); + origin = worldTransform[3]; + for (int axis = 0; axis < 3; axis++) + if (!(Math.AbsFloat(worldTransform[axis].Length() - 1) < 0.001)) return Refuse("non-unit native entity world basis"); + + array entities = {aircraft}; + array depths = {0}; + array seenZones = {}; + int meshes, mainSweeps, tailSweeps; + float modelRadius, damageRadius, simulationRadius; + for (int index = 0; index < entities.Count(); index++) + { + IEntity entity = entities[index]; + if (!entity) return Refuse("hierarchy changed during measurement"); + if (entity.GetVObject()) + { + vector mins, maxs; entity.GetWorldBounds(mins, maxs); + for (int dimension = 0; dimension < 3; dimension++) + if (!(mins[dimension] <= maxs[dimension])) return Refuse("invalid model bounds"); + // A sphere around every corner encloses the complete world AABB. Its radius + // remains conservative under any rigid orientation of the whole aircraft. + for (int x = 0; x < 2; x++) + for (int y = 0; y < 2; y++) + for (int z = 0; z < 2; z++) + { + vector corner = mins; + if (x == 1) corner[0] = maxs[0]; + if (y == 1) corner[1] = maxs[1]; + if (z == 1) corner[2] = maxs[2]; + if (!PointRadius(corner, origin, modelRadius)) return Refuse("non-finite or excessive model bounds"); + } + meshes++; + } + HitZoneContainerComponent container = HitZoneContainerComponent.Cast(entity.FindComponent(HitZoneContainerComponent)); + if (container) + { + int count = container.CountAllHitZones(); + if (count < 0 || count + seenZones.Count() > MAX_HITZONES) return Refuse("hitzone traversal bound"); + array zones = {}; + if (container.GetAllHitZones(zones) != count || zones.Count() != count) return Refuse("hitzones changed during measurement"); + foreach (HitZone zone : zones) + { + if (!zone || seenZones.Contains(zone)) continue; + seenZones.Insert(zone); + SCR_RotorHitZone rotorZone = SCR_RotorHitZone.Cast(zone); + if (!rotorZone || rotorZone.GetRotorRadius() <= 0) continue; // transmission zones have no sweep + int rotorIndex = rotorZone.GetRotorIndex(); + float expectedRadius, thickness; + if (rotorIndex == 0) { expectedRadius = 12; thickness = 1.5; mainSweeps++; } + else if (rotorIndex == 1) { expectedRadius = 2.3; thickness = 0.75; tailSweeps++; } + else return Refuse("unknown rotor sweep index"); + // Stock thickness is protected with no getter. Scope to the exact prefab + // and verify its public sweep radius against the audited stock constants. + if (!(Math.AbsFloat(rotorZone.GetRotorRadius() - expectedRadius) < 0.001)) return Refuse("stock damage sweep radius changed"); + PointInfo point = rotorZone.GetPointInfo(); + if (!point) return Refuse("missing actual rotor sweep pivot"); + vector rotorWorld[4]; point.GetWorldTransform(rotorWorld); + // Frobenius norm bounds the transform's maximum stretch even with scale + // or shear; do not assume the PointInfo basis is orthonormal. + float scaleSquared = 0; + for (int basis = 0; basis < 3; basis++) scaleSquared += vector.Dot(rotorWorld[basis], rotorWorld[basis]); + float scale = Math.Sqrt(scaleSquared); + if (!(scale > 0 && scale < 4)) return Refuse("invalid damage sweep basis"); + float distance = vector.Distance(origin, rotorWorld[3]); + float sweepBound = ERR_FlightFootprintRules.CylinderSphere(distance, expectedRadius * scale, thickness * scale); + if (!(sweepBound > 0 && sweepBound < 1000)) return Refuse("invalid damage sweep extent"); + damageRadius = Math.Max(damageRadius, sweepBound); + PrintFormat("ERR POWERED FOOTPRINT ROTOR: index=%1 pivot=%2 damageRadius=%3 thickness=%4 scale=%5 sphereBound=%6", rotorIndex, rotorWorld[3], expectedRadius, thickness, scale, sweepBound); + } + } + IEntity child = entity.GetChildren(); + while (child) + { + if (entities.Count() >= MAX_ENTITIES || depths[index] >= MAX_DEPTH || entities.Contains(child)) return Refuse("entity/depth/cycle traversal bound"); + entities.Insert(child); depths.Insert(depths[index] + 1); + child = child.GetSibling(); + } + } + if (meshes == 0 || mainSweeps != 1 || tailSweeps != 1) return Refuse("complete model and both actual damage sweeps required"); + if (simulation.RotorCount() != 2) return Refuse("stock simulation rotor count changed"); + for (int rotor = 0; rotor < 2; rotor++) + { + vector localRotor[4]; simulation.RotorGetTransform(rotor, localRotor); + float physicalRadius = simulation.RotorGetRadius(rotor); + float physicalBound = localRotor[3].Length() + physicalRadius; + if (!(physicalRadius > 0 && physicalBound > 0 && physicalBound < 1000)) return Refuse("invalid native simulation rotor extent"); + simulationRadius = Math.Max(simulationRadius, physicalBound); + PrintFormat("ERR POWERED FOOTPRINT PHYSICS ROTOR: index=%1 localPivot=%2 radius=%3 sphereBound=%4", rotor, localRotor[3], physicalRadius, physicalBound); + } + radius = Math.Max(modelRadius, Math.Max(damageRadius, simulationRadius)); + float initialDrift = vector.DistanceXZ(origin, pad); + float initialHeight = origin[1] - pad[1]; + PrintFormat("ERR POWERED FOOTPRINT: entities=%1 meshes=%2 zones=%3 modelSphere=%4 damageSphere=%5 simulationSphere=%6 completeSphere=%7 initialDrift=%8 initialHeight=%9", entities.Count(), meshes, seenZones.Count(), modelRadius, damageRadius, simulationRadius, radius, initialDrift, initialHeight); + if (!ERR_FlightFootprintRules.Fits(radius, initialDrift, initialHeight)) return Refuse("measured footprint plus initial placement,8m drift and1m margin exceeds40m corridor or60m ceiling"); + return true; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c new file mode 100644 index 0000000..b480393 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c @@ -0,0 +1,106 @@ +#ifdef WORKBENCH +// Optional observations only. Never writes pilot controls, signals or settings. +modded class ERR_NativePoweredFlightProbe +{ + protected bool m_ERRInputDiagChecked; + protected bool m_ERRInputDiagEnabled; + protected int m_ERRInputDiagSamples; + protected int m_ERRWrittenSequence; + protected int m_ERRAppliedSequence; + protected int m_ERRApplyCallbacks; + protected float m_ERRWrittenAt; + protected float m_ERRAppliedAt; + protected float m_ERRWrittenCollective; + protected float m_ERRAppliedCollective; + protected float m_ERRWrittenThrottle; + protected float m_ERRAppliedThrottle; + // Vector elements are cyclic-forward, cyclic-aside, anti-torque, respectively. + protected vector m_ERRWrittenCyclic; + protected vector m_ERRAppliedCyclic; + + protected bool ERR_InputDiagActive() + { + if (!m_ERRInputDiagChecked) + { + string enabled; + m_ERRInputDiagEnabled = System.GetCLIParam("errFlightInputDiag", enabled) && enabled == "1"; + m_ERRInputDiagChecked = true; + } + if (!m_ERRInputDiagEnabled || !m_Bound || m_Stopped || !m_Input) return false; + return PoweredAuthority(); + } + + override void PreparePilotActions(CharacterControllerComponent controller, IEntity owner, ActionManager am, float dt) + { + int before = m_ControlUpdates; + super.PreparePilotActions(controller, owner, am, dt); + if (m_ControlUpdates == before || controller != m_Character || owner != m_Pilot || !ERR_InputDiagActive()) return; + m_ERRWrittenSequence = m_ControlUpdates; + m_ERRWrittenAt = GetGame().GetWorld().GetWorldTime(); + // These are actual owned virtual-action values, not native consumption. + m_ERRWrittenCollective = am.GetActionValue("HelicopterCollectiveIncrease") - am.GetActionValue("HelicopterCollectiveDecrease"); + float forward = am.GetActionValue("HelicopterCyclicForward") - am.GetActionValue("HelicopterCyclicBack"); + float aside = am.GetActionValue("HelicopterCyclicRight") - am.GetActionValue("HelicopterCyclicLeft"); + float torque = am.GetActionValue("HelicopterAntiTorqueRight") - am.GetActionValue("HelicopterAntiTorqueLeft"); + m_ERRWrittenCyclic = Vector(forward, aside, torque); + m_ERRWrittenThrottle = m_Input.GetVehicleThrottle(); // observation only in action mode + } + + override void ApplyPilot(CharacterControllerComponent controller, IEntity owner, float dt) + { + // Snapshot native context before this callback's owned final writes. + ERR_ObserveAppliedFlightInput(controller, owner); + int before = m_ControlUpdates; + super.ApplyPilot(controller, owner, dt); + if (m_ControlUpdates == before || controller != m_Character || owner != m_Pilot || !ERR_InputDiagActive()) return; + m_ERRWrittenSequence = m_ControlUpdates; + m_ERRWrittenAt = GetGame().GetWorld().GetWorldTime(); + m_ERRWrittenCollective = m_Input.GetVehicleCollective(); + m_ERRWrittenThrottle = m_Input.GetVehicleThrottle(); + m_ERRWrittenCyclic = Vector(m_Input.GetVehicleCyclicForward(), m_Input.GetVehicleCyclicAside(), m_Input.GetVehicleAntiTorque()); + } + + void ERR_ObserveAppliedFlightInput(CharacterControllerComponent controller, IEntity owner) + { + if (controller != m_Character || owner != m_Pilot || !ERR_InputDiagActive()) return; + m_ERRApplyCallbacks++; + m_ERRAppliedSequence = m_ERRWrittenSequence; + m_ERRAppliedAt = GetGame().GetWorld().GetWorldTime(); + m_ERRAppliedCollective = m_Input.GetVehicleCollective(); + m_ERRAppliedThrottle = m_Input.GetVehicleThrottle(); + m_ERRAppliedCyclic = Vector(m_Input.GetVehicleCyclicForward(), m_Input.GetVehicleCyclicAside(), m_Input.GetVehicleAntiTorque()); + } + + protected string ERR_ExistingRotorSignal(SignalsManagerComponent signals, string name) + { + if (!signals) return "no-manager"; + int index = signals.FindSignal(name); + if (index < 0) return "missing"; + return string.Format("%1", signals.GetSignalValue(index)); + } + + protected override void Diagnostic(float now) + { + bool due = m_Simulation && m_Aircraft && now >= m_NextLog; + super.Diagnostic(now); + // The existing diagnostic gate is two seconds. Cap at120 batches as well, + // and never call native getters for an unowned or player-claimed fixture. + if (!due || m_ERRInputDiagSamples >= 120 || !ERR_InputDiagActive()) return; + m_ERRInputDiagSamples++; + float writtenAge = -1; + float appliedAge = -1; + if (m_ERRWrittenSequence > 0) writtenAge = now - m_ERRWrittenAt; + if (m_ERRApplyCallbacks > 0) appliedAge = now - m_ERRAppliedAt; + PrintFormat("ERR POWERED INPUT OBSERVATION: sample=%1 writtenSequence=%2 applyCallbacks=%3 beforeWriteSequence=%4 writtenAgeMs=%5 beforeWriteAgeMs=%6", m_ERRInputDiagSamples, m_ERRWrittenSequence, m_ERRApplyCallbacks, m_ERRAppliedSequence, writtenAge, appliedAge); + PrintFormat("ERR POWERED INPUT STAGES: writtenCollective=%1 beforeWriteCollective=%2 writtenFRA=%3 beforeWriteFRA=%4 writtenThrottle=%5 beforeWriteThrottle=%6", m_ERRWrittenCollective, m_ERRAppliedCollective, m_ERRWrittenCyclic, m_ERRAppliedCyclic, m_ERRWrittenThrottle, m_ERRAppliedThrottle); + SignalsManagerComponent signals = m_Controller.GetSignalsManager(); + string collective = ERR_ExistingRotorSignal(signals, "MainRotorCollective"); + string forward = ERR_ExistingRotorSignal(signals, "MainRotorCyclicForward"); + string aside = ERR_ExistingRotorSignal(signals, "MainRotorCyclicAside"); + string tail = ERR_ExistingRotorSignal(signals, "TailRotorCollective"); + bool autohover = m_Controller.GetAutohoverEnabled(); + int mode = m_Controller.GetCollectiveMode(); + PrintFormat("ERR POWERED ROTOR SIGNALS: collective=%1 cyclicForward=%2 cyclicAside=%3 tailCollective=%4 autohover=%5 collectiveMode=%6", collective, forward, aside, tail, autohover, mode); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c new file mode 100644 index 0000000..9892230 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c @@ -0,0 +1,247 @@ +#ifdef WORKBENCH +// Native queue length is not exposed: SCR_AIGroup.GetSpawnQueueSize() is a +// compatibility stub returning zero. Observe dispatch on explicitly tagged +// disposable groups instead; every engine call still reaches unchanged super. +class ERR_NativeGuardDispatchTrace +{ + static int Total; +} +modded class SCR_AIGroup +{ + protected bool m_ERRGuardCancelTracked; + protected int m_ERRGuardCancelDispatches; + protected int m_ERRGuardCancelInitCalls; + protected int m_ERRGuardCancelRequestCalls; + void ERR_TrackGuardCancel() + { + m_ERRGuardCancelTracked = true; + PrintFormat("ERR GUARD CANCEL TRACK: group=%1 initCalls=%2 requests=%3 agents=%4 spawnImmediately=%5 slots=%6 lifecycle=%7", this, m_ERRGuardCancelInitCalls, m_ERRGuardCancelRequestCalls, GetAgentsCount(), GetSpawnImmediately(), m_aUnitPrefabSlots.Count(), GetLifecyclePolicy()); + } + override void EOnInit(IEntity owner) + { + m_ERRGuardCancelInitCalls++; + if (m_ERRGuardCancelTracked) PrintFormat("ERR GUARD CANCEL LATE INIT: group=%1 initCalls=%2", this, m_ERRGuardCancelInitCalls); + super.EOnInit(owner); + } + override void RequestSpawn(int slotsWanted = -1, float observerRange = 0) + { + m_ERRGuardCancelRequestCalls++; + if (m_ERRGuardCancelTracked) PrintFormat("ERR GUARD CANCEL REQUEST: group=%1 request=%2 wanted=%3 range=%4 slots=%5", this, m_ERRGuardCancelRequestCalls, slotsWanted, observerRange, m_aUnitPrefabSlots.Count()); + super.RequestSpawn(slotsWanted, observerRange); + } + int ERR_GuardCancelDispatches() { return m_ERRGuardCancelDispatches; } + // EOnInit assigns the cached utility before requesting members. The ignore- + // spawning branch instead invokes all-members init immediately; exclude it. + bool ERR_GuardCancelPendingInit() { return GetGroupUtilityComponent() && !m_bOnInitInvoked; } + override bool ExpandOneMember() + { + if (m_ERRGuardCancelTracked) + { + m_ERRGuardCancelDispatches++; + ERR_NativeGuardDispatchTrace.Total++; + PrintFormat("ERR GUARD CANCEL DISPATCH: group=%1 dispatch=%2 agents=%3 slots=%4 complete=%5", this, m_ERRGuardCancelDispatches, GetAgentsCount(), m_aUnitPrefabSlots.Count(), IsExpandComplete()); + } + return super.ExpandOneMember(); + } +} + +// Assemble only the owned-group portion of PENDING preparation. No authored +// mission sites, stock, waypoints or live mission service are cloned or changed. +class ERR_NativeGuardCancelOwner : ERR_SiteService +{ + protected int m_Cancellations; + void ERR_NativeGuardCancelOwner(ERR_GameMode mode) { m_Mode = mode; } + int Cancellations() { return m_Cancellations; } + protected override void CancelInitialGuardRequests() + { + m_Cancellations++; + PrintFormat("ERR GUARD CANCEL OWNER: pendingState=%1 calls=%2 ownedSites=%3", m_State, m_Cancellations, m_Sites.Count()); + super.CancelInitialGuardRequests(); + foreach (ERR_SiteRuntime site : m_Sites) + if (site.Group) PrintFormat("ERR GUARD CANCEL RETIRED: site=%1 group=%2 slots=%3 spawnImmediately=%4 agents=%5 complete=%6", site.Definition.Id, site.Group, site.Group.m_aUnitPrefabSlots.Count(), site.Group.GetSpawnImmediately(), site.Group.GetAgentsCount(), site.Group.IsExpandComplete()); + } + bool Attach(SCR_AIGroup group, string label) + { + if (!group || m_Begun) return false; + m_Begun = true; + ERR_SiteRuntime site = new ERR_SiteRuntime(); + site.Definition = new ERR_SiteDefinition(); + site.Definition.Id = label; + site.Definition.Guarded = true; + site.Group = group; + if (group.m_aUnitPrefabSlots) site.InitialGuardCount = group.m_aUnitPrefabSlots.Count(); + m_Sites.Insert(site); + m_Entities.Insert(group); + return site.InitialGuardCount == 6 && group.GetSpawnImmediately(); + } +} + +class ERR_NativeGuardCancelProbe +{ + protected ERR_GameMode m_Mode; + protected ref ERR_NativeGuardCancelOwner m_EmptyOwner; + protected ref ERR_NativeGuardCancelOwner m_PartialOwner; + protected ref ERR_NativeGuardCancelOwner m_ControlOwner; + protected SCR_AIGroup m_Empty; + protected SCR_AIGroup m_Partial; + protected SCR_AIGroup m_Control; + protected ref array m_PartialMembers = {}; + protected ref array m_DeletedMembers = {}; + protected ref array m_MainGroups = {}; + protected int m_PartialDispatches; + protected int m_TotalBeforeDelete; + protected int m_Step; + protected float m_Deadline; + protected float m_ObserveUntil; + protected bool m_RolledBack; + void ERR_NativeGuardCancelProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: guard-cancel " + detail); return true; } + Print("ERR SMOKE FAIL: guard-cancel " + detail, LogLevel.ERROR); + Stop(); + return false; + } + protected int Members(SCR_AIGroup group, out array members) + { + members.Clear(); + if (!group) return 0; + array agents = {}; + group.GetAgents(agents); + foreach (AIAgent agent : agents) + { + if (!agent) continue; + IEntity actor = agent.GetControlledEntity(); + if (actor && !members.Contains(actor)) members.Insert(actor); + } + return members.Count(); + } + protected SCR_AIGroup NewGroup(vector offset) + { + ERR_SiteRuntime outpost = m_Mode.Sites().Find("everon-outpost-1"); + if (!outpost || !outpost.Group) return null; + SCR_AIGroup group = SCR_AIGroup.Cast(ERR_Actors.Spawn(m_Mode.Factions().GuardGroupPrefab, ERR_Actors.Ground(outpost.Group.GetOrigin() + offset))); + if (group) group.ERR_TrackGuardCancel(); + return group; + } + protected bool OriginalSitesIntact() + { + if (!m_Mode.Sites() || m_Mode.Sites().Prepare() != ERR_PrepareResult.READY) return false; + array locations = {}; + m_Mode.Locations(locations); + array groups = {}; + foreach (ERR_LocationComponent location : locations) + { + ERR_SiteRuntime site = m_Mode.Sites().Find(location.Id()); + if (site && site.Group) groups.Insert(site.Group); + } + if (groups.Count() != m_MainGroups.Count()) return false; + foreach (SCR_AIGroup group : m_MainGroups) + if (!group || !groups.Contains(group)) return false; + return true; + } + protected bool CancelledStable() + { + array emptyMembers = {}; + array partialMembers = {}; + if (!m_Empty || Members(m_Empty, emptyMembers) != 0 || m_Empty.ERR_GuardCancelDispatches() != 0) return false; + if (!m_Partial || Members(m_Partial, partialMembers) != m_PartialMembers.Count() || m_Partial.ERR_GuardCancelDispatches() != m_PartialDispatches) return false; + foreach (IEntity actor : m_PartialMembers) + if (!actor || !partialMembers.Contains(actor)) return false; + return true; + } + void Stop() + { + // Each owner rolls back at most once. ERR_Actors.DeleteSpawned retains its + // stock active-player protection; no player is assigned to these groups. + if (m_RolledBack) return; + m_RolledBack = true; + if (m_EmptyOwner) m_EmptyOwner.Rollback(); + if (m_PartialOwner) m_PartialOwner.Rollback(); + if (m_ControlOwner) m_ControlOwner.Rollback(); + } + int Tick(float now) + { + if (m_Deadline == 0) m_Deadline = now + 90000; + if (now > m_Deadline || !m_Mode.Active()) { Check(false, "bounded fixture deadline or active mission lost"); return -1; } + if (m_Step == 0) + { + array locations = {}; + m_Mode.Locations(locations); + foreach (ERR_LocationComponent location : locations) + { + ERR_SiteRuntime site = m_Mode.Sites().Find(location.Id()); + if (site && site.Group) m_MainGroups.Insert(site.Group); + } + ERR_NativeGuardDispatchTrace.Total = 0; + m_EmptyOwner = new ERR_NativeGuardCancelOwner(m_Mode); + m_PartialOwner = new ERR_NativeGuardCancelOwner(m_Mode); + m_ControlOwner = new ERR_NativeGuardCancelOwner(m_Mode); + m_Empty = NewGroup("50 0 60"); + if (!Check(m_EmptyOwner.Attach(m_Empty, "guard-cancel-empty"), "empty case owns one six-slot automatic native group")) return -1; + array initial = {}; + if (!Check(m_Empty.ERR_GuardCancelPendingInit() && Members(m_Empty, initial) == 0 && m_Empty.ERR_GuardCancelDispatches() == 0 && !m_Empty.IsExpandComplete(), "empty case is cancelled before its first native member dispatch")) return -1; + m_EmptyOwner.Stop(); + m_EmptyOwner.Stop(); + if (!Check(m_EmptyOwner.Cancellations() == 1 && !m_Empty.GetSpawnImmediately() && m_Empty.m_aUnitPrefabSlots.IsEmpty(), "empty cancellation retires only this instance's spawn intent once")) return -1; + if (!Check(m_Empty && m_EmptyOwner.Owns(m_Empty) && m_EmptyOwner.Prepare() == ERR_PrepareResult.FAILED && !m_Mode.Sites().Owns(m_Empty), "repeated actual preparation stop retains only the disposable empty group for observation")) return -1; + m_Partial = NewGroup("-50 0 60"); + if (!Check(m_PartialOwner.Attach(m_Partial, "guard-cancel-partial"), "partial case owns a separate six-slot automatic native group")) return -1; + m_Control = NewGroup("0 0 100"); + if (!Check(m_ControlOwner.Attach(m_Control, "guard-cancel-control"), "uncancelled six-slot control uses the same native queue")) return -1; + m_Step = 1; + return 0; + } + if (m_Step == 1) + { + array emptyMembers = {}; + if (!m_Empty || Members(m_Empty, emptyMembers) != 0 || m_Empty.ERR_GuardCancelDispatches() != 0) + { Check(false, "empty group received late dispatch or members after cancellation"); return -1; } + if (!m_Partial || !m_Control) { Check(false, "disposable observation group disappeared before cancellation"); return -1; } + if (Members(m_Partial, m_PartialMembers) == 0) return 0; + if (!Check(m_PartialMembers.Count() < 6 && !m_Partial.IsExpandComplete() && m_Partial.ERR_GuardCancelDispatches() > 0, "native queue produced a real partial squad before cancellation")) return -1; + // The fixture tick runs after native dispatch returns, so the queue has + // finished re-enqueuing this partial fill. Do not purge from inside AddAgent. + m_PartialOwner.Stop(); + m_PartialOwner.Stop(); + if (!Check(m_PartialOwner.Cancellations() == 1 && !m_Partial.GetSpawnImmediately() && m_Partial.m_aUnitPrefabSlots.IsEmpty(), "partial cancellation retires future spawn intent without deleting present actors")) return -1; + m_PartialDispatches = m_Partial.ERR_GuardCancelDispatches(); + if (!Check(m_PartialOwner.Prepare() == ERR_PrepareResult.FAILED && m_PartialOwner.Owns(m_Partial), "partial preparation stops idempotently while existing members remain")) return -1; + PrintFormat("ERR GUARD CANCEL: partialMembers=%1 dispatches=%2 observationSeconds=15", m_PartialMembers.Count(), m_PartialDispatches); + m_ObserveUntil = now + 15000; + m_Step = 2; + return 0; + } + if (m_Step == 2) + { + if (!CancelledStable()) { Check(false, "cancelled groups changed member identity/count or received another native dispatch"); return -1; } + array controlMembers = {}; + int controlCount = Members(m_Control, controlMembers); + if (!m_Control || controlCount > 6) { Check(false, "uncancelled control vanished or exceeded its requested size"); return -1; } + if (now < m_ObserveUntil || controlCount != 6 || !m_Control.IsExpandComplete()) return 0; + if (!Check(m_Control.ERR_GuardCancelDispatches() >= 6 && m_Control.m_aUnitPrefabSlots.Count() == 6 && m_Control.GetSpawnImmediately(), "uncancelled native control reached six while cancelled groups stayed unchanged for at least fifteen seconds")) return -1; + if (!Check(OriginalSitesIntact(), "original mission site groups and ready service remain intact")) return -1; + foreach (IEntity partialMember : m_PartialMembers) m_DeletedMembers.Insert(partialMember); + foreach (IEntity controlMember : controlMembers) m_DeletedMembers.Insert(controlMember); + foreach (IEntity actor : m_DeletedMembers) + if (!Check(!ERR_Actors.Player(actor), "rollback target is a disposable non-player character")) return -1; + m_TotalBeforeDelete = ERR_NativeGuardDispatchTrace.Total; + Stop(); + m_ObserveUntil = now + 6000; + m_Step = 3; + return 0; + } + if (m_Step == 3) + { + if (ERR_NativeGuardDispatchTrace.Total != m_TotalBeforeDelete) { Check(false, "native dispatch occurred after rollback"); return -1; } + if (now < m_ObserveUntil) return 0; + if (!Check(!m_Empty && !m_Partial && !m_Control, "each disposable group was deleted once by its real owner rollback")) return -1; + foreach (IEntity deleted : m_DeletedMembers) + if (!Check(!deleted, "each physical partial/control member is actually deleted after rollback")) return -1; + if (!Check(OriginalSitesIntact(), "original mission groups remain intact after rollback and six-second observation")) return -1; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c new file mode 100644 index 0000000..ce6dd60 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c @@ -0,0 +1,162 @@ +#ifdef WORKBENCH +// Opt-in fault injection on a fixture-owned stock kit in a private preview world. +// Calls the actual teardown boundary while the native callback sources still +// exist, so an unsubscribe failure remains observable before entity destruction. +modded class SCR_ResupplyMedicalGadgetSupportStationComponent +{ + protected bool m_ERRTeardownProbeWatch; + protected int m_ERRTeardownProbeResourceCalls; + protected int m_ERRTeardownProbeDamageCalls; + protected int m_ERRTeardownProbeInitCalls; + + protected override void DelayedInit(IEntity owner) + { + if (m_ERRTeardownProbeWatch) m_ERRTeardownProbeInitCalls++; + super.DelayedInit(owner); + } + protected override void TEMP_OnInteractorReplicated() + { + if (m_ERRTeardownProbeWatch) m_ERRTeardownProbeResourceCalls++; + super.TEMP_OnInteractorReplicated(); + } + protected override void OnDamageStateChanged(EDamageState damageState) + { + if (m_ERRTeardownProbeWatch) m_ERRTeardownProbeDamageCalls++; + super.OnDamageStateChanged(damageState); + } + bool ERR_TeardownProbeInitialize() + { + // Preview worlds need not process normal world events. Execute the unchanged + // native initialization routine once if EOnInit has not already done so. + if (!m_ERRTeardownInitialized) + { + GetGame().GetCallqueue().Remove(DelayedInit); + DelayedInit(GetOwner()); + } + return m_ERRTeardownInitialized && m_ERRTeardownScope && m_EntityCatalogManager && !UsesRange(); + } + SCR_ResourceComponent ERR_TeardownProbeResource() { return m_ERRTeardownResource; } + void ERR_TeardownProbeWatch() { m_ERRTeardownProbeWatch = true; } + int ERR_TeardownProbeResourceCalls() { return m_ERRTeardownProbeResourceCalls; } + int ERR_TeardownProbeDamageCalls() { return m_ERRTeardownProbeDamageCalls; } + int ERR_TeardownProbeInitCalls() { return m_ERRTeardownProbeInitCalls; } + bool ERR_TeardownProbeDone() { return m_ERRTeardownDone; } + void ERR_TeardownProbeExpireAndDelete() + { + // Fault injection only: do not mutate/delete the global manager or any + // existing preview/cache entity. Nothing calls InitValidSetup with this null. + m_EntityCatalogManager = null; + GetGame().GetCallqueue().CallLater(DelayedInit, 100, false, GetOwner()); + OnDelete(GetOwner()); + OnDelete(GetOwner()); + } +} + +class ERR_NativeItemStationTeardownProbe +{ + protected ref SharedItemRef m_WorldRef; + protected BaseWorld m_World; + protected IEntity m_Kit; + protected SCR_ResupplyMedicalGadgetSupportStationComponent m_Station; + protected SCR_ResourceComponent m_Resource; + protected SCR_DamageManagerComponent m_Damage; + protected SCR_HitZone m_HitZone; + protected SCR_EntityCatalogManagerComponent m_OriginalCatalog; + protected int m_Index; + protected int m_Step; + protected int m_Result; + protected bool m_Stopped; + protected int m_ExpectedDamageCalls; + protected float m_Wait; + protected float m_Deadline; + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: station teardown " + detail); return true; } + Print("ERR SMOKE FAIL: station teardown " + detail, LogLevel.ERROR); + m_Result = -1; + Stop(); + return false; + } + void Stop() + { + m_Stopped = true; + ReleaseKit(); + } + protected void ReleaseKit() + { + // All objects belong to this fixture, never a resource or preview cache. + m_Station = null; + m_Resource = null; + m_Damage = null; + m_HitZone = null; + if (m_Kit) delete m_Kit; + m_Kit = null; + m_World = null; + m_WorldRef = null; + } + protected void EmitNativeCallbacks() + { + m_Resource.TEMP_GetOnInteractorReplicated().Invoke(); + if (m_Damage) m_Damage.GetOnDamageStateChanged().Invoke(m_Damage.GetState()); + if (m_HitZone) m_HitZone.GetOnDamageStateChanged().Invoke(m_HitZone); + } + int Tick(float now) + { + if (m_Result != 0) return m_Result; + if (m_Stopped) return -1; + if (m_Deadline == 0) m_Deadline = now + 10000; + if (now >= m_Deadline) { Check(false, "bounded fixture deadline"); return -1; } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + if (!Check(Replication.IsServer() && ERR_GameMode.Get() && SCR_EntityCatalogManagerComponent.GetInstance(), "successor server and real global catalog available")) return -1; + m_OriginalCatalog = SCR_EntityCatalogManagerComponent.GetInstance(); + m_WorldRef = BaseWorld.CreateWorld("Preview", "ERRStationTeardownProbe"); + if (m_WorldRef) m_World = m_WorldRef.GetRef(); + if (!Check(m_World && m_World != GetGame().GetWorld(), "owns an independent off-world preview world")) return -1; + ResourceName prefab = "{AE578EEA4244D41F}Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_US.et"; + if (m_Index == 1) prefab = "{21EF98BFC1EB3793}Prefabs/Items/Equipment/Kits/MedicalKit_01/MedicalKit_01_USSR.et"; + Resource resource = Resource.Load(prefab); + if (!Check(resource && resource.IsValid(), "stock kit resource resolves")) return -1; + m_Kit = GetGame().SpawnEntityPrefab(resource, m_World); + if (!Check(m_Kit != null, "isolated stock kit spawned")) return -1; + m_Wait = now + 500; + m_Step = 1; + return 0; + } + if (m_Step == 1) + { + m_Station = SCR_ResupplyMedicalGadgetSupportStationComponent.Cast(m_Kit.FindComponent(SCR_ResupplyMedicalGadgetSupportStationComponent)); + if (!Check(m_Station && m_Station.ERR_TeardownProbeInitialize(), "actual native initialization completed with valid catalog and no range registration")) return -1; + m_Resource = m_Station.ERR_TeardownProbeResource(); + if (!Check(m_Resource != null, "actual subscribed native resource component captured")) return -1; + m_Damage = SCR_DamageManagerComponent.Cast(m_Kit.FindComponent(SCR_DamageManagerComponent)); + HitZoneContainerComponent hitZones = HitZoneContainerComponent.Cast(m_Kit.FindComponent(HitZoneContainerComponent)); + if (hitZones) m_HitZone = SCR_HitZone.Cast(hitZones.GetDefaultHitZone()); + m_ExpectedDamageCalls = 0; + if (m_Damage) m_ExpectedDamageCalls++; + if (m_HitZone) m_ExpectedDamageCalls++; + PrintFormat("ERR STATION TEARDOWN PROBE: kit=%1 nativeDamageSources=%2 resourcePresent=%3", m_Index, m_ExpectedDamageCalls, m_Resource != null); + m_Station.ERR_TeardownProbeWatch(); + EmitNativeCallbacks(); + if (!Check(m_Station.ERR_TeardownProbeResourceCalls() == 1 && m_Station.ERR_TeardownProbeDamageCalls() == m_ExpectedDamageCalls, "native invokers reach initialized station exactly once per installed source")) return -1; + m_Station.ERR_TeardownProbeExpireAndDelete(); + if (!Check(m_Station.ERR_TeardownProbeDone(), "expired cached catalog takes production cleanup exactly once")) return -1; + EmitNativeCallbacks(); + if (!Check(m_Station.ERR_TeardownProbeResourceCalls() == 1 && m_Station.ERR_TeardownProbeDamageCalls() == m_ExpectedDamageCalls, "resource and installed damage sources no longer invoke detached station")) return -1; + m_Wait = now + 500; + m_Step = 2; + return 0; + } + if (!Check(m_Station.ERR_TeardownProbeInitCalls() == 0, "queued native initialization did not run after teardown")) return -1; + EmitNativeCallbacks(); + if (!Check(m_Station.ERR_TeardownProbeResourceCalls() == 1 && m_Station.ERR_TeardownProbeDamageCalls() == m_ExpectedDamageCalls, "no late callbacks after 500 ms")) return -1; + if (!Check(m_OriginalCatalog && SCR_EntityCatalogManagerComponent.GetInstance() == m_OriginalCatalog, "same global catalog remains alive and unchanged by fault injection")) return -1; + ReleaseKit(); + m_Index++; + if (m_Index < 2) { m_Step = 0; return 0; } + m_Result = 1; + return 1; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c new file mode 100644 index 0000000..7cacb39 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c @@ -0,0 +1,190 @@ +#ifdef WORKBENCH +[BaseContainerProps(category: "Respawn")] +modded class ERR_SpawnLogic +{ + // Test-only ownership setup. This does not change a life record, start a real + // spawn request, replace a controller's actor or bypass production finalization. + bool ERR_TestPendingActor(SCR_SpawnRequestComponent request, SCR_SpawnData data, IEntity actor) + { + if (!Replication.IsServer() || !request || !data || !actor || ERR_Actors.Player(actor)) return false; + int id = request.GetPlayerId(); + if (m_Pending.Contains(id) || !m_Identities.Contains(id)) return false; + ERR_SpawnTicket ticket = new ERR_SpawnTicket(); + ticket.ConnectionId = id; ticket.AccountId = m_Identities.Get(id); + ticket.Mode = ERR_GameMode.Get(); + ticket.Controller = SCR_PlayerController.Cast(request.GetPlayerController()); + ticket.Request = request; ticket.Data = data; ticket.Actor = actor; + m_SpawnTickets.Insert(ticket); + m_Pending.Insert(id); + m_AuthorizedPositions.Set(id, data.GetPosition()); + return true; + } + void ERR_TestClearAdmission(int playerId) { CancelAdmission(playerId, ERR_ObserverReason.NONE); } + bool ERR_TestDelayedLossPreservesAdmission(int playerId, SCR_PlayerController controller) + { + ObserveAfterLoss(playerId, m_Identities.Get(playerId), controller); + return m_Pending.Contains(playerId) && m_AuthorizedPositions.Contains(playerId); + } + bool ERR_TestHasAdmission(int playerId) + { + if (m_Pending.Contains(playerId) || m_AuthorizedPositions.Contains(playerId)) return true; + foreach (ERR_SpawnTicket ticket : m_SpawnTickets) + if (ticket.ConnectionId == playerId) return true; + return false; + } +} + +class ERR_NativeLifecycleProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected IEntity m_Blocker; + protected IEntity m_Preload; + protected IEntity m_Cancelled; + protected IEntity m_Drift; + protected SCR_PlayerController m_Controller; + protected SCR_FreeSpawnRequestComponent m_Request; + protected SCR_FreeSpawnHandlerComponent m_Handler; + protected ERR_SpawnLogic m_Logic; + protected ref SCR_FreeSpawnData m_Data; + protected ref ERR_SpawnPlacement m_Placement = new ERR_SpawnPlacement(); + protected vector m_Position; + protected int m_Step; + protected float m_Wait; + void ERR_NativeLifecycleProbe(ERR_GameMode mode, IEntity player) { m_Mode = mode; m_Player = player; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: lifecycle " + detail); return true; } + Print("ERR SMOKE FAIL: lifecycle " + detail, LogLevel.ERROR); + return false; + } + protected IEntity Actor(vector position) + { + IEntity actor = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, position); + if (actor) + { + m_Mode.Own(actor); + DamageManagerComponent.Cast(actor.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + } + return actor; + } + protected bool Rules() + { + UUID account = "00e77300-0000-0000-0000-000000000001"; + UUID other = "00e77300-0000-0000-0000-000000000002"; + for (int phase = ERR_Phase.PREPARING; phase <= ERR_Phase.DEFEAT; phase++) + { + bool permitted = phase >= ERR_Phase.PRISON && phase <= ERR_Phase.RADIO_DEFENCE; + if (!Check(ERR_SpawnFinalizationRules.Allows(phase, true, false, account, account, true, true, true) == permitted, "finalization phase matrix " + phase.ToString())) return false; + } + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, true, true, account, account, true, true, true), "spent life cannot finalize a delayed admission")) return false; + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, false, false, account, account, true, true, true), "disconnected account cannot finalize")) return false; + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, true, false, account, other, true, true, true), "recycled connection identity cannot inherit a pending admission")) return false; + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, true, false, account, account, false, true, true), "changed controller rejects stale admission")) return false; + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, true, false, account, account, true, false, true), "changed request rejects stale admission")) return false; + if (!Check(!ERR_SpawnFinalizationRules.Allows(ERR_Phase.PRISON, true, false, account, account, true, true, false), "existing controlled actor cannot be replaced by delayed admission")) return false; + return Check(ERR_SpawnFinalizationRules.PositionClose("0.3 0.2 0", "0 0 0") && !ERR_SpawnFinalizationRules.PositionClose("0 2 0", "0 0 0") && !ERR_SpawnFinalizationRules.PositionClose("0.7 0 0", "0 0 0"), "native settling tolerance rejects horizontal and vertical preload drift"); + } + protected bool Finalization() + { + m_Controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + m_Request = SCR_FreeSpawnRequestComponent.Cast(m_Controller.FindComponent(SCR_FreeSpawnRequestComponent)); + if (m_Request) m_Handler = SCR_FreeSpawnHandlerComponent.Cast(m_Request.GetHandlerComponent()); + SCR_RespawnSystemComponent system = SCR_RespawnSystemComponent.GetInstance(); + m_Logic = ERR_SpawnLogic.Cast(system.GetSpawnLogic()); + if (!Check(m_Request && m_Handler && m_Logic, "real local free-spawn request, handler and admission logic exist")) return false; + int id = m_Controller.GetPlayerId(); + ERR_PlayerLife life = m_Mode.Players().Get(id); + if (!Check(life && life.UsedLife && life.Actor == m_Player && m_Controller.GetControlledEntity() == m_Player && !m_Logic.ERR_TestHasAdmission(id), "real prisoner has a spent life and no pending admission")) return false; + m_Preload = Actor(m_Position); + m_Data = new SCR_FreeSpawnData(m_Mode.Factions().PrisonerPrefab, m_Position); + if (!Check(m_Preload && m_Logic.ERR_TestPendingActor(m_Request, m_Data, m_Preload), "isolated unpossessed actor receives an explicit test-owned admission ticket")) return false; + SCR_FreeSpawnData different = new SCR_FreeSpawnData(m_Mode.Factions().PrisonerPrefab, m_Position); + if (!Check(m_Handler.FinalizeRequest_S(m_Request, different, m_Preload) == SCR_ESpawnResult.SPAWN_NOT_ALLOWED && ERR_Actors.Alive(m_Preload), "different request payload cannot claim or delete the owned actor")) return false; + return Check(m_Handler.FinalizeRequest_S(m_Request, m_Data, m_Preload) == SCR_ESpawnResult.SPAWN_NOT_ALLOWED, "native finalization refuses the spent-life preload"); + } + int Tick(float now) + { + if (now < m_Wait) return 0; + if (m_Step == 0) + { + if (!Rules()) return -1; + map reservations = new map(); + vector first, second; + if (!Check(m_Placement.Prison(m_Mode.PrisonPosition(), reservations, first), "native prison has a clear candidate")) return -1; + reservations.Set(1, first); + if (!Check(m_Placement.Prison(m_Mode.PrisonPosition(), reservations, second) && vector.DistanceXZ(first, second) >= 1.2, "IDs one and thirteen receive distinct reserved slots")) return -1; + reservations.Set(13, second); + vector position; + int count = 2; + while (count < 16 && m_Placement.Prison(m_Mode.PrisonPosition(), reservations, position)) + { + reservations.Set(100 + count, position); + count++; + } + PrintFormat("ERR SPAWN CAPACITY: remaining clear prison positions=%1 plus current controlled prisoner", count); + if (!Check(count >= 11 && !m_Placement.Prison(m_Mode.PrisonPosition(), reservations, position), "occupied and pending slots exhaust a bounded grid without overlap or outside fallback")) return -1; + vector prison = m_Mode.PrisonPosition(); + foreach (int id, vector reserved : reservations) + if (!Check(Math.AbsFloat(reserved[0] - prison[0]) <= 4.6 && Math.AbsFloat(reserved[2] - prison[2]) <= 4.6, "candidate remains inside authored prison")) return -1; + reservations.Remove(1); + if (!Check(m_Placement.Prison(m_Mode.PrisonPosition(), reservations, position) && vector.DistanceXZ(position, first) < 0.1, "released pending reservation becomes available again")) return -1; + m_Position = first; + m_Blocker = Actor(first); + if (!Check(m_Blocker != null, "uncontrolled physical body created at a previously clear slot")) return -1; + m_Step = 1; m_Wait = now + 1000; + return 0; + } + if (m_Step == 1) + { + map empty = new map(); + if (!Check(!m_Placement.Clear(m_Position, empty), "native character body blocks a slot even without a connected player ID")) return -1; + ERR_Actors.DeleteSpawned(m_Blocker); + m_Step = 2; m_Wait = now + 1000; + return 0; + } + if (m_Step == 2) + { + if (!Finalization()) return -1; + m_Step = 3; m_Wait = now + 1000; + return 0; + } + if (m_Step == 3) + { + int id = m_Controller.GetPlayerId(); + ERR_PlayerLife life = m_Mode.Players().Get(id); + if (!Check(!m_Preload, "refused native preload was deleted after lifecycle processing")) return -1; + m_Logic.ERR_TestClearAdmission(id); + if (!Check(!m_Logic.ERR_TestHasAdmission(id) && life.UsedLife && life.Actor == m_Player && m_Controller.GetControlledEntity() == m_Player, "refusal releases reservations without changing life or controlled actor")) return -1; + if (!Check(m_Handler.FinalizeRequest_S(m_Request, m_Data, m_Player) == SCR_ESpawnResult.SPAWN_NOT_ALLOWED && ERR_Actors.Alive(m_Player), "unticketed repeated callback cannot delete or replace the controlled prisoner")) return -1; + m_Cancelled = Actor(m_Position); + if (!Check(m_Cancelled && m_Logic.ERR_TestPendingActor(m_Request, m_Data, m_Cancelled), "second isolated pending actor prepared for cancellation")) return -1; + if (!Check(m_Logic.ERR_TestDelayedLossPreservesAdmission(id, m_Controller) && m_Controller.ERR_ObserverState() == ERR_ObserverReason.NONE, "delayed loss callback preserves reacquired living controller and admission metadata")) return -1; + m_Logic.ERR_TestClearAdmission(id); + m_Step = 4; m_Wait = now + 1000; + return 0; + } + if (m_Step == 4) + { + int id = m_Controller.GetPlayerId(); + ERR_PlayerLife life = m_Mode.Players().Get(id); + if (!Check(!m_Cancelled && !m_Logic.ERR_TestHasAdmission(id) && life.UsedLife && life.Actor == m_Player, "pending-request cancellation cleans its actor and never grants another life")) return -1; + m_Drift = Actor(m_Position); + if (!Check(m_Drift != null, "physical actor created for vertical drift check")) return -1; + vector transform[4]; m_Drift.GetWorldTransform(transform); + transform[3] = m_Position + "0 10 0"; + ChimeraCharacter.Cast(m_Drift).Teleport(transform); + m_Step = 5; m_Wait = now + 750; + return 0; + } + if (m_Step == 5) + { + if (!Check(!ERR_SpawnFinalizationRules.PositionClose(m_Drift.GetOrigin(), m_Position), "actual vertically displaced character fails finalization position tolerance after native movement")) return -1; + ERR_Actors.DeleteSpawned(m_Drift); + m_Step = 6; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c new file mode 100644 index 0000000..20ae4a7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c @@ -0,0 +1,129 @@ +#ifdef WORKBENCH +[BaseContainerProps(category: "Respawn")] +modded class ERR_SpawnLogic +{ + ERR_LocalAdmission ERR_LocalProbeHelper() + { + if (!ERR_NativeLocalAdmissionProbe.Enabled()) return null; + return m_LocalAdmission; + } + bool ERR_LocalProbeIdle(int connection) + { + return ERR_NativeLocalAdmissionProbe.Enabled() && !m_Attempts.Contains(connection) && !m_Retries.Contains(connection) && !m_Pending.Contains(connection) && !m_AuthorizedPositions.Contains(connection) && m_SpawnTickets.IsEmpty(); + } + bool ERR_LocalProbeClosed() + { + return ERR_NativeLocalAdmissionProbe.Enabled() && m_AdmissionsStopped && m_LocalAdmissionFailed; + } + bool ERR_LocalProbeRefuseController(int connection) + { + if (!ERR_NativeLocalAdmissionProbe.Enabled() || !m_LocalAdmission || !m_LocalAdmission.OfflineMode() || !m_LocalAdmission.Selected() || !m_Identities.Contains(connection)) return false; + // Deliberately invalid METHOD ARGUMENT, not a fabricated native disconnect or + // replacement controller. The real controller and backend remain untouched. + UUID rejected = m_LocalAdmission.Resolve(ERR_GameMode.Get(), connection, null, m_Identities.Get(connection)); + if (!rejected.IsNull()) return false; + return !CheckLocalAdmissionContext(); + } +} + +class ERR_NativeLocalAdmissionProbe +{ + protected ERR_GameMode m_Mode; + protected SCR_PlayerController m_Controller; + protected IEntity m_Actor; + protected ERR_SpawnLogic m_Logic; + protected ERR_LocalAdmission m_Helper; + protected ERR_PlayerLife m_Life; + protected UUID m_Key; + protected int m_Connection; + protected int m_Participants; + protected int m_Changes; + protected int m_Step; + protected float m_Deadline; + protected float m_Wait; + protected bool m_Listening; + protected bool m_Stopped; + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errBaseSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "local-admission"; + } + void ERR_NativeLocalAdmissionProbe(ERR_GameMode mode) + { + m_Mode = mode; m_Deadline = GetGame().GetWorld().GetWorldTime() + 15000; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: local admission " + detail); return true; } + Print("ERR SMOKE FAIL: local admission " + detail, LogLevel.ERROR); Stop(); return false; + } + protected void Changed(int connection) { m_Changes++; } + protected int Participants() + { + array lives = {}; m_Mode.Players().Participants(lives); return lives.Count(); + } + protected bool Unchanged() + { + return m_Controller && m_Actor && m_Life && m_Mode.Players().Get(m_Connection) == m_Life && m_Mode.Players().CurrentActor(m_Actor) == m_Life && m_Life.AccountId == m_Key && m_Life.Connected && m_Life.UsedLife && m_Life.Actor == m_Actor && m_Controller.GetControlledEntity() == m_Actor && GetGame().GetPlayerManager().GetPlayerController(m_Connection) == m_Controller && Participants() == m_Participants && !m_Mode.Players().CanEnter(m_Connection, ERR_Phase.PRISON) && m_Logic.ERR_LocalProbeIdle(m_Connection); + } + protected bool DisposableHelpers() + { + ERR_LocalAdmission disconnected = new ERR_LocalAdmission(m_Mode); + if (!Check(disconnected.Resolve(m_Mode, m_Connection, m_Controller, m_Key) == m_Key && disconnected.Validate() && !disconnected.LocalKey(), "disposable helper accepts actual sole native controller using existing round key")) return false; + // Opaque alternative input only: no backend read/write, roster bind or login. + UUID alternative = "00e77500-0000-0000-0000-000000000001"; + if (!Check(disconnected.Resolve(m_Mode, m_Connection, m_Controller, alternative) == m_Key && disconnected.Resolve(m_Mode, m_Connection, m_Controller, UUID.NULL_UUID) == m_Key, "late opaque identity input and null input retain the selected key")) return false; + if (!Check(!disconnected.Disconnected(m_Connection + 1) && disconnected.Validate(), "unrelated disconnect argument does not close helper")) return false; + if (!Check(disconnected.Disconnected(m_Connection) && !disconnected.Validate() && disconnected.Resolve(m_Mode, m_Connection, m_Controller, m_Key).IsNull(), "matching disconnect argument latches disposable helper closed")) return false; + disconnected.Stop(); + if (!Check(!disconnected.Validate() && disconnected.Resolve(m_Mode, m_Connection, m_Controller, m_Key).IsNull(), "stopped disposable helper cannot reopen with the genuine controller")) return false; + ERR_LocalAdmission invalid = new ERR_LocalAdmission(m_Mode); + if (!Check(invalid.Resolve(m_Mode, m_Connection, null, m_Key).IsNull() && invalid.Resolve(m_Mode, m_Connection, m_Controller, m_Key).IsNull() && !invalid.Selected(), "invalid controller argument before selection fails closed without selecting another life")) return false; + invalid.Stop(); + Print("ERR LOCAL ADMISSION LIMIT: disposable method-argument fault injection; no native disconnect or replacement occurred; Listen/Dedicated pass-through remains source-policy coverage, not multiplayer evidence"); + return true; + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Listening && m_Mode) m_Mode.Players().OnChanged().Remove(Changed); + m_Listening = false; + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (!Enabled() || now > m_Deadline) { Check(false, "explicit enabled fixture completes within fifteen seconds"); return -1; } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + m_Controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + SCR_RespawnSystemComponent respawn = SCR_RespawnSystemComponent.GetInstance(); + if (respawn) m_Logic = ERR_SpawnLogic.Cast(respawn.GetSpawnLogic()); + if (!Check(RplSession.Mode() == RplMode.None && m_Controller && m_Logic && GetGame().GetPlayerManager().GetPlayerCount() == 1, "actual standalone session has one native local controller and successor spawn logic")) return -1; + m_Connection = m_Controller.GetPlayerId(); m_Actor = m_Controller.GetControlledEntity(); + m_Life = m_Mode.Players().Get(m_Connection); m_Helper = m_Logic.ERR_LocalProbeHelper(); + if (!Check(m_Actor && m_Life && m_Helper && m_Helper.OfflineMode() && m_Helper.Selected() && m_Helper.Validate(), "real native admission already created the local controlled prisoner and selected helper")) return -1; + m_Key = m_Life.AccountId; m_Participants = Participants(); + if (!Check(!m_Key.IsNull() && Unchanged(), "existing prisoner has one spent life and no pending spawn metadata")) return -1; + if (!DisposableHelpers()) return -1; + m_Mode.Players().OnChanged().Insert(Changed); m_Listening = true; + Print("ERR LOCAL ADMISSION REPLAY: invoking existing callback twice for already admitted real controller; this does not represent new native authentication/audits"); + m_Logic.OnPlayerAuditSuccess_S(m_Connection); + m_Logic.OnPlayerAuditSuccess_S(m_Connection); + if (!Check(Unchanged() && m_Changes == 0, "replayed callbacks preserve exact roster object, used life, key, actor and no roster-change event")) return -1; + m_Step = 1; m_Wait = now + 1500; return 0; + } + if (m_Step == 1) + { + if (!Check(Unchanged() && m_Changes == 0 && m_Helper.Validate(), "native update interval after replay creates no replacement actor, life or pending request")) return -1; + if (!Check(m_Logic.ERR_LocalProbeRefuseController(m_Connection), "live helper rejects invalid controller argument through production context guard")) return -1; + // The guard has synchronously entered the real terminal transition and + // stopped services. No second callback, login, UUID or actor is introduced. + if (!Check(m_Mode.Phase() == ERR_Phase.DEFEAT && m_Mode.EndReason().Contains("offline player context changed") && m_Logic.ERR_LocalProbeClosed() && !m_Helper.Validate() && Unchanged(), "production failure closes admission and ends round while preserving original used life and controlled actor")) return -1; + Stop(); m_Step = 2; return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c new file mode 100644 index 0000000..373b6b8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c @@ -0,0 +1,225 @@ +#ifdef WORKBENCH +// Opt-in native medical-effects fixture. Treatment enters at the real item's +// completion boundary; manual user actions/animations and remote clients are not +// simulated. Only fixture-owned characters are injured or deleted. +class ERR_NativeMedicalProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Casualty; + protected IEntity m_Healer; + protected IEntity m_Dressing; + protected IEntity m_Saline; + protected IEntity m_SpareSaline; + protected SCR_CharacterDamageManagerComponent m_Damage; + protected CharacterControllerComponent m_Controller; + protected SCR_CharacterBloodHitZone m_Blood; + protected SCR_SalineStorageComponent m_SalineStorage; + protected SCR_InventoryStorageManagerComponent m_Inventory; + protected ref array m_Owned = {}; + protected int m_Step; + protected int m_Result; + protected bool m_Stopped; + protected bool m_Recovered; + protected float m_Wait; + protected float m_Deadline; + protected float m_InfusionStarted; + protected float m_SeedBlood; + protected float m_PreInfusionBlood; + protected float m_RegenSpeed; + protected float m_NextDiagnostic; + + void ERR_NativeMedicalProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: medical " + detail); return true; } + Print("ERR SMOKE FAIL: medical " + detail, LogLevel.ERROR); + Trace("failure"); + m_Result = -1; + Stop(); + return false; + } + protected IEntity Spawn(ResourceName prefab, vector position) + { + IEntity entity = ERR_Actors.Spawn(prefab, ERR_Actors.Ground(position)); + if (entity) { m_Owned.Insert(entity); m_Mode.Own(entity); } + return entity; + } + protected int SalineEffects() + { + if (!m_Damage) return 0; + array effects = {}; + m_Damage.GetPersistentEffects(effects); + int count; + foreach (SCR_PersistentDamageEffect effect : effects) + if (SCR_SalineDamageEffect.Cast(effect)) count++; + return count; + } + protected int AttachedBags() + { + if (!m_SalineStorage) return 0; + array items = {}; + m_SalineStorage.GetAll(items); + return items.Count(); + } + protected void Trace(string stage) + { + if (!m_Blood || !m_Controller || !m_Damage) return; + PrintFormat("ERR MEDICAL STATE: stage=%1 blood=%2 bloodState=%3 unconscious=%4 bleeding=%5 salineEffects=%6 attachedBags=%7", stage, m_Blood.GetHealth(), m_Blood.GetDamageState(), m_Controller.IsUnconscious(), m_Damage.IsBleeding(), SalineEffects(), AttachedBags()); + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + // Items first, then characters; native scheduled saline deletion is null-safe. + for (int i = m_Owned.Count() - 1; i >= 0; i--) ERR_Actors.DeleteSpawned(m_Owned[i]); + m_Owned.Clear(); + m_Casualty = null; + m_Healer = null; + m_Dressing = null; + m_Saline = null; + m_SpareSaline = null; + m_Damage = null; + m_Controller = null; + m_Blood = null; + m_SalineStorage = null; + m_Inventory = null; + } + int Tick(float now) + { + if (m_Result != 0) return m_Result; + if (m_Stopped) return -1; + if (!Replication.IsServer() || !m_Mode || !m_Mode.Active()) + { + Check(false, "fixture requires the active authority"); + return -1; + } + if (m_Deadline > 0 && now > m_Deadline) + { + Check(false, "native medical state timed out at step " + m_Step.ToString()); + return -1; + } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + // Keep fixture actors separate from the real prisoner spawn. + vector anchor = m_Mode.PrisonPosition() + "100 0 100"; + m_Casualty = Spawn(m_Mode.Factions().PrisonerPrefab, anchor); + m_Healer = Spawn(m_Mode.Factions().PrisonerPrefab, anchor + "3 0 0"); + m_Dressing = Spawn("{C3F1FA1E2EC2B345}Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_USSR_01.et", anchor + "4 0 0"); + m_Saline = Spawn("{527D7C5D2E476BDC}Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et", anchor + "5 0 0"); + m_SpareSaline = Spawn("{527D7C5D2E476BDC}Prefabs/Items/Medicine/SalineBag_01/SalineBag_USSR_01.et", anchor + "6 0 0"); + if (!Check(m_Casualty && m_Healer && m_Dressing && m_Saline && m_SpareSaline, "two isolated characters and finite stock-type medicine spawned")) return -1; + if (!Check(!ERR_Actors.Player(m_Casualty) && !ERR_Actors.Player(m_Healer), "neither medical actor is a real player")) return -1; + m_Deadline = now + 120000; + m_Wait = now + 1000; + m_Step = 1; + return 0; + } + if (!ERR_Actors.Alive(m_Casualty) || !ERR_Actors.Alive(m_Healer)) + { + Check(false, "owned casualty or healer died unexpectedly"); + return -1; + } + if (m_Step == 1) + { + m_Damage = SCR_CharacterDamageManagerComponent.Cast(m_Casualty.FindComponent(SCR_CharacterDamageManagerComponent)); + m_Controller = CharacterControllerComponent.Cast(m_Casualty.FindComponent(CharacterControllerComponent)); + m_SalineStorage = SCR_SalineStorageComponent.Cast(m_Casualty.FindComponent(SCR_SalineStorageComponent)); + m_Inventory = SCR_InventoryStorageManagerComponent.Cast(m_Healer.FindComponent(SCR_InventoryStorageManagerComponent)); + if (!Check(m_Damage && m_Controller && m_SalineStorage && m_Inventory, "native health, controller and medical storage components available")) return -1; + m_Blood = m_Damage.GetBloodHitZone(); + if (!Check(m_Blood && !m_Controller.IsUnconscious() && !m_Damage.IsBleeding(), "casualty begins healthy and conscious")) return -1; + if (!Check(m_Inventory.TryInsertItem(m_Dressing) && m_Inventory.TryInsertItem(m_Saline) && m_Inventory.TryInsertItem(m_SpareSaline), "finite medical items enter healer inventory")) return -1; + SCR_ConsumableItemComponent dressing = SCR_ConsumableItemComponent.Cast(m_Dressing.FindComponent(SCR_ConsumableItemComponent)); + SCR_ConsumableItemComponent saline = SCR_ConsumableItemComponent.Cast(m_Saline.FindComponent(SCR_ConsumableItemComponent)); + if (!Check(dressing && saline, "stock items contain actual native consumable components")) return -1; + SCR_ConsumableBandage bandageEffect = SCR_ConsumableBandage.Cast(dressing.GetConsumableEffect()); + SCR_ConsumableSalineBag salineEffect = SCR_ConsumableSalineBag.Cast(saline.GetConsumableEffect()); + SCR_EConsumableFailReason reason; + if (!Check(bandageEffect && salineEffect && !bandageEffect.CanApplyEffect(m_Casualty, m_Healer, reason) && !salineEffect.CanApplyEffect(m_Casualty, m_Healer, reason), "healthy casualty rejects bandage and saline")) return -1; + array zones = {}; + m_Damage.GetHitZonesOfGroupFromOwner(ECharacterHitZoneGroup.LEFTARM, zones); + SCR_CharacterHitZone wound; + foreach (HitZone zone : zones) + { + SCR_CharacterHitZone candidate = SCR_CharacterHitZone.Cast(zone); + if (candidate && candidate.GetMaxBleedingRate() > 0) { wound = candidate; break; } + } + if (!Check(wound != null, "native left-arm hit zone can bleed")) return -1; + wound.SetHealthScaled(0.5); + m_Damage.AddBleedingEffectOnHitZone(wound); + float threshold = m_Blood.GetDamageStateThreshold(ECharacterBloodState.UNCONSCIOUS) * m_Blood.GetMaxHealth(); + float destroyed = m_Blood.GetDamageStateThreshold(ECharacterBloodState.DESTROYED) * m_Blood.GetMaxHealth(); + if (!Check(threshold - destroyed > 200, "native blood thresholds permit a survivable recovery fixture")) return -1; + // Initial casualty condition only. All subsequent blood changes are native effects. + m_Blood.SetHealth(threshold - 100); + m_SeedBlood = m_Blood.GetHealth(); + m_Wait = now + 5000; + m_Step = 2; + return 0; + } + if (m_Step == 2) + { + Trace("untreated blood loss"); + if (!Check(m_Damage.IsBleeding() && m_Blood.GetHealth() < m_SeedBlood && m_Controller.IsUnconscious(), "native bleeding reduces real blood and causes unconsciousness")) return -1; + SCR_ConsumableItemComponent dressing = SCR_ConsumableItemComponent.Cast(m_Dressing.FindComponent(SCR_ConsumableItemComponent)); + SCR_ConsumableBandage effect = SCR_ConsumableBandage.Cast(dressing.GetConsumableEffect()); + SCR_EConsumableFailReason reason; + if (!Check(effect.CanApplyEffectToHZ(m_Casualty, m_Healer, ECharacterHitZoneGroup.LEFTARM, reason), "real dressing accepts bleeding arm")) return -1; + ItemUseParameters parameters = effect.GetAnimationParameters(m_Dressing, m_Casualty, ECharacterHitZoneGroup.LEFTARM); + if (!Check(parameters && effect.GetDeleteOnUse(), "native dressing parameters and finite consumption policy are valid")) return -1; + dressing.ApplyItemEffect(m_Casualty, m_Healer, parameters, m_Dressing, effect.GetDeleteOnUse()); + m_Wait = now + 500; + m_Step = 3; + return 0; + } + if (m_Step == 3) + { + if (!Check(!m_Dressing && !m_Damage.IsBleeding() && m_Damage.GetGroupDamageOverTime(ECharacterHitZoneGroup.LEFTARM, EDamageType.BLEEDING) == 0, "dressing is consumed and native bleeding is stopped")) return -1; + if (!Check(m_Controller.IsUnconscious(), "bandage alone has not fabricated blood recovery")) return -1; + SCR_ConsumableItemComponent saline = SCR_ConsumableItemComponent.Cast(m_Saline.FindComponent(SCR_ConsumableItemComponent)); + SCR_ConsumableSalineBag effect = SCR_ConsumableSalineBag.Cast(saline.GetConsumableEffect()); + SCR_EConsumableFailReason reason; + if (!Check(effect && effect.CanApplyEffect(m_Casualty, m_Healer, reason) && !effect.GetDeleteOnUse(), "native saline accepts real blood loss and retains bag for infusion")) return -1; + ItemUseParameters parameters = effect.GetAnimationParameters(m_Saline, m_Casualty); + if (!Check(parameters != null, "native saline item parameters available")) return -1; + m_PreInfusionBlood = m_Blood.GetHealth(); + m_RegenSpeed = effect.GetItemRegenSpeed(); + saline.ApplyItemEffect(m_Casualty, m_Healer, parameters, m_Saline, effect.GetDeleteOnUse()); + m_InfusionStarted = now; + m_Wait = now + 1000; + m_Step = 4; + return 0; + } + if (m_Step == 4) + { + array attached = {}; + m_SalineStorage.GetAll(attached); + if (!Check(m_Saline && attached.Count() == 1 && attached.Contains(m_Saline) && m_Damage.GetGroupSalineBagged(ECharacterHitZoneGroup.RIGHTARM) && SalineEffects() == 1, "real saline bag occupies native treatment slot with one healing effect")) return -1; + SCR_ConsumableItemComponent spare = SCR_ConsumableItemComponent.Cast(m_SpareSaline.FindComponent(SCR_ConsumableItemComponent)); + SCR_EConsumableFailReason reason; + if (!Check(!spare.GetConsumableEffect().CanApplyEffect(m_Casualty, m_Healer, reason) && reason == SCR_EConsumableFailReason.ALREADY_APPLIED && m_SpareSaline, "occupied treatment slot rejects another bag without consuming spare")) return -1; + m_NextDiagnostic = now; + m_Step = 5; + } + if (m_Step == 5) + { + if (now >= m_NextDiagnostic) { Trace("native infusion"); m_NextDiagnostic = now + 10000; } + if (!m_Controller.IsUnconscious()) m_Recovered = true; + if (m_Saline || AttachedBags() != 0 || SalineEffects() != 0 || m_Damage.GetGroupSalineBagged(ECharacterHitZoneGroup.RIGHTARM)) return 0; + float requiredGain = Math.Min(m_RegenSpeed * 60, (m_Blood.GetMaxHealth() - m_PreInfusionBlood) * 0.8); + if (!Check(m_RegenSpeed > 0 && m_Blood.GetHealth() - m_PreInfusionBlood >= requiredGain, "native infusion restores substantial blood without setting health again")) return -1; + if (!Check(m_Recovered && !m_Controller.IsUnconscious() && ERR_Actors.CanFight(m_Casualty), "casualty regains consciousness through native health recovery")) return -1; + if (!Check(now - m_InfusionStarted >= 85000 && !m_Saline && AttachedBags() == 0 && SalineEffects() == 0, "finite saline expires after native duration and releases treatment state")) return -1; + if (!Check(m_SpareSaline != null, "unused spare survives the completed infusion")) return -1; + InventoryItemComponent spareItem = InventoryItemComponent.Cast(m_SpareSaline.FindComponent(InventoryItemComponent)); + if (!Check(spareItem && spareItem.GetParentSlot(), "rejected spare bag remains a physical inventory item")) return -1; + m_Result = 1; + Stop(); + Print("ERR MEDICAL RESULT: native blood loss, finite treatment and recovery; not manual action or multiplayer acceptance"); + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c new file mode 100644 index 0000000..21efa9a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c @@ -0,0 +1,183 @@ +#ifdef WORKBENCH +// Explicit disposable-world fixture: destroy all four authored radio documents, +// then move the real participant to the station. No replacement clues or actors +// are used to grant discovery; the normal site tick must identify the station. +class ERR_NativeObjectiveLossProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected ERR_SiteRuntime m_Radio; + protected ref array m_Documents = {}; + protected IEntity m_NonParticipant; + protected IEntity m_Blocker; + protected bool m_Partial; + protected bool m_SettingSaved; + protected int m_RevealChance; + protected int m_Step; + protected int m_Identifications; + protected float m_Wait; + protected float m_Deadline; + void ERR_NativeObjectiveLossProbe(ERR_GameMode mode, IEntity player, bool partial) + { + m_Mode = mode; m_Player = player; m_Partial = partial; + m_Mode.OnLocationDiscovered().Insert(Discovered); + } + protected void Discovered(ERR_LocationComponent location, int previous, int current) + { + if (m_Radio && location == m_Radio.Location && current == 2) m_Identifications++; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: objective-loss " + detail); return true; } + Print("ERR SMOKE FAIL: objective-loss " + detail, LogLevel.ERROR); + Stop(); + return false; + } + protected void Move(vector position) + { + vector transform[4]; + m_Player.GetWorldTransform(transform); + transform[3] = ERR_Actors.Ground(position); + ChimeraCharacter.Cast(m_Player).Teleport(transform); + } + protected void CollectDocuments(out array documents) + { + documents.Clear(); + array locations = {}; + m_Mode.Locations(locations); + array stock = {}; + foreach (ERR_LocationComponent location : locations) + { + ERR_SiteRuntime site = m_Mode.Sites().Find(location.Id()); + if (!site || !site.Container) continue; + ERR_Inventory.AppendUnique(InventoryStorageManagerComponent.Cast(site.Container.FindComponent(InventoryStorageManagerComponent)), stock); + } + ERR_Inventory.AppendUnique(InventoryStorageManagerComponent.Cast(m_Player.FindComponent(InventoryStorageManagerComponent)), stock); + foreach (IEntity item : stock) + { + ERR_DocumentComponent document = ERR_DocumentComponent.Cast(item.FindComponent(ERR_DocumentComponent)); + if (document && document.TargetId() == m_Radio.Location.Id()) documents.Insert(item); + } + } + void Stop() + { + if (m_Mode) + { + m_Mode.OnLocationDiscovered().Remove(Discovered); + if (m_SettingSaved) m_Mode.Settings().Set("intelRevealChancePercent", m_RevealChance); + } + m_SettingSaved = false; + ERR_Actors.DeleteSpawned(m_NonParticipant); + ERR_Actors.DeleteSpawned(m_Blocker); + } + int Tick(float now) + { + if (m_Deadline == 0) m_Deadline = now + 60000; + if (now > m_Deadline || !m_Mode.Active() || !ERR_Actors.CanFight(m_Player)) + { + Check(false, "fixture lost its active conscious participant or exceeded its deadline"); + return -1; + } + if (now < m_Wait) return 0; + if (m_Step == 0) + { + m_Radio = m_Mode.Sites().Find("everon-radio-1"); + if (!Check(m_Radio && m_Radio.Location && m_Radio.Location.Knowledge() == 0 && m_Radio.Definition.DiscoverRadius == 8, "authored station is initially unknown with bounded eight-metre discovery")) return -1; + CollectDocuments(m_Documents); + if (!Check(m_Documents.Count() == 4, "four distinct physical documents exist before deliberate loss")) return -1; + if (!Check(m_Mode.UnlockPrison(m_Player) && m_Mode.Phase() == ERR_Phase.RADIO_SEARCH, "real prisoner enters radio search through ordinary mission interface")) return -1; + if (m_Partial) + { + m_RevealChance = m_Mode.Settings().Get("intelRevealChancePercent"); + m_SettingSaved = true; + if (!Check(m_Mode.Settings().Set("intelRevealChancePercent", 0), "isolated first document produces only partial knowledge")) return -1; + ERR_SiteRuntime cache = m_Mode.Sites().Find("everon-supply-1"); + Move(cache.Container.GetOrigin() + "0 0 2"); + InventoryStorageManagerComponent source = InventoryStorageManagerComponent.Cast(cache.Container.FindComponent(InventoryStorageManagerComponent)); + SCR_InventoryStorageManagerComponent target = SCR_InventoryStorageManagerComponent.Cast(m_Player.FindComponent(SCR_InventoryStorageManagerComponent)); + array stock = {}; + ERR_Inventory.Items(source, stock); + IEntity selected; + foreach (IEntity item : stock) if (m_Documents.Contains(item)) { selected = item; break; } + BaseInventoryStorageComponent destination; + if (selected && target) destination = target.FindStorageForItem(selected); + if (!Check(destination && source.TryMoveItemToStorage(selected, destination), "one real document transfer accepted before the remaining clues are lost")) return -1; + m_Wait = now + 8000; + } + m_Step = 1; + return 0; + } + if (m_Step == 1) + { + int expected; + if (m_Partial) expected = 1; + if (!Check(m_Radio.Location.Knowledge() == expected, "ordinary clue processing leaves the requested unknown or partial station state")) return -1; + foreach (IEntity document : m_Documents) if (document) SCR_EntityHelper.DeleteEntityAndChildren(document); + m_Step = 2; + m_Wait = now + 1500; + return 0; + } + if (m_Step == 2) + { + foreach (IEntity removed : m_Documents) + if (!Check(!removed, "each original physical document is deleted")) return -1; + array remaining = {}; + CollectDocuments(remaining); + if (!Check(remaining.IsEmpty() && m_Mode.Sites().Prepare() == ERR_PrepareResult.READY, "all targeted documents are absent and preparation does not replenish them")) return -1; + Move(m_Radio.Location.Position() + "0 0 20"); + m_NonParticipant = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, ERR_Actors.Ground(m_Radio.Location.Position() + "3 0 0")); + if (!Check(m_NonParticipant != null, "disposable unpossessed character created for authorization rejection")) return -1; + m_Mode.Own(m_NonParticipant); + if (!Check(!m_Mode.Sites().CanObserve(m_NonParticipant, m_Radio), "unpossessed character cannot identify the station")) return -1; + m_Step = 3; + m_Wait = now + 6000; + return 0; + } + if (m_Step == 3) + { + int expected; + if (m_Partial) expected = 1; + if (!Check(m_Radio.Location.Knowledge() == expected && !m_Mode.Sites().CanObserve(m_Player, m_Radio), "distant participant and nearby nonparticipant do not reveal the station")) return -1; + ERR_Actors.DeleteSpawned(m_NonParticipant); + m_Blocker = ERR_Actors.Spawn("{A67420C1FB91856E}Prefabs/ERR/PrisonWall.et", ERR_Actors.Ground(m_Radio.Location.Position() + "-1.5 0 2")); + if (!Check(m_Blocker != null, "physical obstruction created before close approach")) return -1; + m_Mode.Own(m_Blocker); + Move(m_Radio.Location.Position() + "0 0 4"); + m_Step = 4; + m_Wait = now + 6000; + return 0; + } + if (m_Step == 4) + { + int expected; + if (m_Partial) expected = 1; + PrintFormat("ERR OBJECTIVE LOSS: player=%1 radio=%2 knowledge=%3 visible=%4", m_Player.GetOrigin(), m_Radio.Location.Position(), m_Radio.Location.Knowledge(), m_Mode.Sites().CanObserve(m_Player, m_Radio)); + if (!Check(m_Radio.Location.Knowledge() == expected && !m_Mode.Sites().CanObserve(m_Player, m_Radio), "a nearby station behind a wall remains unidentified")) return -1; + ERR_Actors.DeleteSpawned(m_Blocker); + m_Step = 5; + m_Wait = now + 6000; + return 0; + } + if (m_Step == 5) + { + TraceParam sight = new TraceParam(); + sight.Start = m_Player.GetOrigin() + "0 1.5 0"; + sight.End = m_Radio.Location.Position() + "0 1.3 0"; + sight.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + sight.LayerMask = TRACE_LAYER_CAMERA; + sight.Exclude = m_Player; + float fraction = m_Mode.GetWorld().TraceMove(sight, null); + PrintFormat("ERR OBJECTIVE LOSS FINAL: player=%1 radio=%2 knowledge=%3 identifications=%4 visible=%5", m_Player.GetOrigin(), m_Radio.Location.Position(), m_Radio.Location.Knowledge(), m_Identifications, m_Mode.Sites().CanObserve(m_Player, m_Radio)); + PrintFormat("ERR OBJECTIVE LOSS SIGHT: fraction=%1 hit=%2 blockerRemaining=%3", fraction, sight.TraceEnt, m_Blocker); + if (!Check(m_Mode.Sites().CanObserve(m_Player, m_Radio) && m_Radio.Location.Knowledge() == 2 && m_Identifications == 1, "actual participant with clear close approach identifies the station once through normal discovery")) return -1; + array remaining = {}; + CollectDocuments(remaining); + if (!Check(remaining.IsEmpty(), "physical discovery creates no replacement documents")) return -1; + if (!Check(m_Mode.RadioDefence().CanBegin(m_Player, m_Radio.Location) && m_Mode.TuneRadio(m_Player, m_Radio.Location) && m_Mode.Phase() == ERR_Phase.RADIO_DEFENCE, "identified station permits ordinary authorized tuning after complete document loss")) return -1; + Stop(); + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c new file mode 100644 index 0000000..c32f072 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c @@ -0,0 +1,238 @@ +#ifdef WORKBENCH +// Exercise native task entries and detail text on the private test display. +// This is local presentation evidence, not remote task replication acceptance. +class ERR_NativeObjectiveProbe +{ + protected static bool s_Failed; + protected static Widget s_Entry; + protected static Widget s_Detail; + protected static SCR_Task s_Task; + protected static SCR_TaskListEntryUIComponent s_EntryHandler; + protected static SCR_TaskListEntryDescriptionUIComponent s_DetailHandler; + protected static ref SCR_TaskListEntryDescriptionUIComponent s_ClosedHandler; + protected static float s_CloseReadyAt; + protected static SCR_Task s_IsolatedTask; + protected static bool s_IsolatedDeleteRequested; + protected static SCR_Task s_PreservedMissionTask; + protected static ref SCR_TaskExecutor s_RestoreExecutor; + static void BeginRound() + { + Stop(); + s_Failed = false; + } + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: objective UI " + detail); return true; } + s_Failed = true; + Stop(); + Print("ERR SMOKE FAIL: objective UI " + detail, LogLevel.ERROR); + return false; + } + static void Stop() + { + if (s_EntryHandler && s_DetailHandler) s_EntryHandler.GetOnTaskVisualChanged().Remove(s_DetailHandler.InitDescription); + if (s_Detail) s_Detail.RemoveFromHierarchy(); + if (s_Entry) s_Entry.RemoveFromHierarchy(); + s_Detail = null; + s_Entry = null; + s_DetailHandler = null; + s_EntryHandler = null; + s_Task = null; + s_ClosedHandler = null; + s_CloseReadyAt = 0; + SCR_TaskSystem tasks = SCR_TaskSystem.GetInstance(); + if (tasks && s_IsolatedTask && !s_IsolatedDeleteRequested) tasks.DeleteTask(s_IsolatedTask); + if (tasks && s_PreservedMissionTask && s_RestoreExecutor && !s_PreservedMissionTask.IsTaskAssignedTo(s_RestoreExecutor)) + tasks.AssignTask(s_PreservedMissionTask, s_RestoreExecutor, true); + s_IsolatedTask = null; + s_IsolatedDeleteRequested = false; + s_PreservedMissionTask = null; + s_RestoreExecutor = null; + } + // Emit unchanged task state: exercise actual invoker subscriptions without + // changing assignment, visibility, ownership or mission progression. + protected static void EmitTaskCallbacks(SCR_Task task) + { + task.GetOnTaskAssigneeAdded().Invoke(task, null, 0); + task.GetOnTaskAssigneeRemoved().Invoke(task, null, 0); + task.GetOnTaskUIVisibilityChanged().Invoke(task, task.GetTaskUIVisibility()); + task.GetOnTaskVisibilityChanged().Invoke(task, task.GetTaskVisibility()); + task.GetOnTaskOwnershipChanged().Invoke(task, task.GetTaskOwnership()); + task.GetOnDisplayDataChanged().Invoke(); + } + static bool BeginCloseReopen(ERR_GameMode mode, float now) + { + if (!Observe(mode)) return false; + // Reinitialization is the vanilla route when the selected task changes. + s_DetailHandler.InitDescription(s_Task); + s_DetailHandler.ERR_ProbeWatch(); + EmitTaskCallbacks(s_Task); + if (!Check(s_DetailHandler.ERR_ProbeTaskCallbacks() == 5, "rebinding keeps one subscription to each native task event")) return false; + // Keep only the handler alive so a leaked event or queued overflow callback + // can be counted safely after actual widget destruction. No manual unbinding. + SCR_Task task = s_Task; + ref SCR_TaskListEntryDescriptionUIComponent closed = s_DetailHandler; + Stop(); + s_ClosedHandler = closed; + s_ClosedHandler.ERR_ProbeClosed(); + if (!Check(s_ClosedHandler.ERR_ProbeWasDetached() && s_ClosedHandler.ERR_ProbeHasNoTask(), "closing native widget uses production detach and releases its task")) return false; + EmitTaskCallbacks(task); + if (!Check(s_ClosedHandler.ERR_ProbeLateCallbacks() == 0, "closed native widget receives no task callbacks")) return false; + s_CloseReadyAt = now + 500; + return true; + } + // One normal smoke tick allows native 100ms overflow work to become due. + static int TickCloseReopen(ERR_GameMode mode, float now) + { + if (s_Failed || !s_ClosedHandler) return -1; + if (now < s_CloseReadyAt) return 0; + if (!Check(s_ClosedHandler.ERR_ProbeLateCallbacks() == 0, "closed native widget has no delayed overflow callbacks")) return -1; + if (!Observe(mode)) return -1; + if (!Check(s_DetailHandler != null, "details reopen through native layout and current objective binding")) return -1; + return 1; + } + // Dedicated objective-ui case: delete an owned test task before its panel. + // The real objective remains alive and regains its local assignment immediately. + static bool BeginDeletedTaskClose(ERR_GameMode mode, float now) + { + Stop(); + SCR_TaskSystem tasks = SCR_TaskSystem.GetInstance(); + s_PreservedMissionTask = mode.Objectives().Current(); + s_RestoreExecutor = SCR_TaskSystem.TaskExecutorFromPlayerID(SCR_PlayerController.GetLocalPlayerId()); + if (!Check(tasks && s_PreservedMissionTask && s_RestoreExecutor, "isolated deletion has a native task system, mission task and local executor")) return false; + s_IsolatedTask = tasks.CreateTask("{1D0F815858EE24AD}Prefabs/Tasks/BaseTask.et", "erri-mission-probe-teardown", "Objective cleanup probe", "Isolated native task for widget teardown."); + if (!Check(s_IsolatedTask && s_IsolatedTask != s_PreservedMissionTask, "deletion fixture owns a separate native task")) return false; + tasks.SetTaskUIVisibility(s_IsolatedTask, SCR_ETaskUIVisibility.LIST_ONLY); + // Vanilla permits one assigned task per executor. Cleanup restores the real one. + tasks.AssignTask(s_IsolatedTask, s_RestoreExecutor, true); + if (!Check(s_IsolatedTask.IsTaskAssignedTo(s_RestoreExecutor), "isolated task has an actual local assignee")) return false; + s_Detail = GetGame().GetWorkspace().CreateWidgets("{552EB1921B5C548C}UI/layouts/Task/TaskListEntryDescription.layout"); + if (!Check(s_Detail != null, "isolated native details layout created")) return false; + s_Detail.SetVisible(false); + s_DetailHandler = SCR_TaskListEntryDescriptionUIComponent.Cast(s_Detail.FindHandler(SCR_TaskListEntryDescriptionUIComponent)); + if (!Check(s_DetailHandler != null, "isolated native details handler attached")) return false; + s_DetailHandler.InitDescription(s_IsolatedTask); + s_DetailHandler.ERR_ProbeWatch(); + s_IsolatedDeleteRequested = true; + tasks.DeleteTask(s_IsolatedTask); + // These are native weak references, not manually cleared probe variables. + if (!Check(s_IsolatedTask == null && s_DetailHandler.ERR_ProbeHasNoTask(), "native task deletion clears both task and bound-widget weak references")) return false; + s_ClosedHandler = s_DetailHandler; + s_Detail.RemoveFromHierarchy(); + s_Detail = null; + s_DetailHandler = null; + s_ClosedHandler.ERR_ProbeClosed(); + if (!Check(s_ClosedHandler.ERR_ProbeWasDetached(), "deleted-task panel closes through production detach")) return false; + tasks.AssignTask(s_PreservedMissionTask, s_RestoreExecutor, true); + if (!Check(mode.Objectives().Current() == s_PreservedMissionTask && s_PreservedMissionTask.IsTaskAssignedTo(s_RestoreExecutor), "real mission objective survives isolated deletion and assignment is restored")) return false; + s_CloseReadyAt = now + 500; + return true; + } + static int TickDeletedTaskClose(ERR_GameMode mode, float now) + { + if (s_Failed || !s_ClosedHandler) return -1; + if (now < s_CloseReadyAt) return 0; + if (!Check(s_ClosedHandler.ERR_ProbeLateCallbacks() == 0, "deleted-task panel has no delayed callbacks after weak references clear")) return -1; + if (!Check(s_PreservedMissionTask && mode.Objectives().Current() == s_PreservedMissionTask && s_PreservedMissionTask.IsTaskAssignedTo(s_RestoreExecutor), "real mission objective remains intact after delayed teardown check")) return -1; + Stop(); + return 1; + } + static bool Observe(ERR_GameMode mode) + { + if (s_Failed) return false; + SCR_Task task = mode.Objectives().Current(); + if (!Check(task != null, "current native task exists")) return false; + if (s_Task != task) + { + Stop(); + s_Task = task; + s_Entry = GetGame().GetWorkspace().CreateWidgets("{B71975032150BAFB}UI/layouts/Task/TaskListEntry.layout"); + s_Detail = GetGame().GetWorkspace().CreateWidgets("{552EB1921B5C548C}UI/layouts/Task/TaskListEntryDescription.layout"); + if (!Check(s_Entry && s_Detail, "native list and detail layouts created")) return false; + s_Entry.SetVisible(false); + s_Detail.SetVisible(false); + s_EntryHandler = SCR_TaskListEntryUIComponent.Cast(s_Entry.FindHandler(SCR_TaskListEntryUIComponent)); + s_DetailHandler = SCR_TaskListEntryDescriptionUIComponent.Cast(s_Detail.FindHandler(SCR_TaskListEntryDescriptionUIComponent)); + if (!Check(s_EntryHandler && s_DetailHandler, "native handlers attached")) return false; + s_EntryHandler.InitTask(task); + s_DetailHandler.InitDescription(task); + // Same visual-change route used by the vanilla task list. + s_EntryHandler.GetOnTaskVisualChanged().Insert(s_DetailHandler.InitDescription); + } + RichTextWidget title = RichTextWidget.Cast(s_Entry.FindAnyWidget("m_wTaskTitle")); + RichTextWidget description = RichTextWidget.Cast(s_Detail.FindAnyWidget("m_wDescription")); + if (!Check(title && description && title.GetText() == task.GetTaskName() && description.GetText() == task.GetTaskDescription(), "open list and details contain current title and instructions")) return false; + Widget showMap = s_Detail.FindAnyWidget("m_wButtonShowMap"); + if (!Check(showMap && !showMap.IsVisible(), "list-only task cannot expose an undiscovered map position")) return false; + SCR_TaskExecutor player = SCR_TaskSystem.TaskExecutorFromPlayerID(SCR_PlayerController.GetLocalPlayerId()); + if (!Check(player && task.IsTaskAssignedTo(player), "actual local player receives the active objective")) return false; + if (!Check(ERR_ObjectiveText.Extraction(12500).Contains("12.5") && !ERR_ObjectiveText.Extraction(12500).Contains("9 kilometres"), "extraction instructions follow a nondefault boundary")) return false; + return true; + } +} + +// Observers exist only in the opt-in native fixture. They do not unsubscribe or +// cancel work: a late callback is counted as failure before avoiding dead-widget +// dereferences, allowing the fixture to report the production cleanup defect. +modded class SCR_TaskListEntryDescriptionUIComponent +{ + protected bool m_ERRProbeWatching; + protected bool m_ERRProbeClosed; + protected bool m_ERRProbeDetached; + protected int m_ERRProbeTaskCallbacks; + protected int m_ERRProbeLateCallbacks; + void ERR_ProbeWatch() { m_ERRProbeWatching = true; m_ERRProbeTaskCallbacks = 0; } + void ERR_ProbeClosed() { m_ERRProbeClosed = true; } + int ERR_ProbeTaskCallbacks() { return m_ERRProbeTaskCallbacks; } + int ERR_ProbeLateCallbacks() { return m_ERRProbeLateCallbacks; } + bool ERR_ProbeWasDetached() { return m_ERRProbeDetached; } + bool ERR_ProbeHasNoTask() { return m_Task == null; } + protected bool ERR_ProbeCallback(bool taskEvent, string kind) + { + if (!m_ERRProbeWatching) return false; + if (m_ERRProbeClosed) + { + m_ERRProbeLateCallbacks++; + PrintFormat("ERR OBJECTIVE LATE CALLBACK: kind=%1 count=%2 task=%3 detached=%4 root=%5", kind, m_ERRProbeLateCallbacks, m_Task != null, m_ERRProbeDetached, m_wRoot != null); + return true; + } + if (taskEvent) m_ERRProbeTaskCallbacks++; + return false; + } + override void HandlerDeattached(Widget w) + { + m_ERRProbeDetached = true; + super.HandlerDeattached(w); + } + protected override void UpdateAssignees(notnull SCR_Task task, SCR_TaskExecutor newAssignee = null, int requesterID = 0) + { + if (ERR_ProbeCallback(true, "UpdateAssignees")) return; + super.UpdateAssignees(task, newAssignee, requesterID); + } + protected override void OnTaskUIVisibilityChanged(SCR_Task task, SCR_ETaskUIVisibility visible) + { + if (ERR_ProbeCallback(true, "OnTaskUIVisibilityChanged")) return; + super.OnTaskUIVisibilityChanged(task, visible); + } + protected override void OnTaskVisibilityChanged(SCR_Task task, SCR_ETaskVisibility visible) + { + if (ERR_ProbeCallback(true, "OnTaskVisibilityChanged")) return; + super.OnTaskVisibilityChanged(task, visible); + } + protected override void OnTaskOwnershipChanged(SCR_Task task, SCR_ETaskOwnership ownership) + { + if (ERR_ProbeCallback(true, "OnTaskOwnershipChanged")) return; + super.OnTaskOwnershipChanged(task, ownership); + } + protected override void CheckOverflow(Widget w) + { + if (ERR_ProbeCallback(false, "CheckOverflow")) return; + super.CheckOverflow(w); + } + override void UpdateTask() + { + if (ERR_ProbeCallback(false, "UpdateTask")) return; + super.UpdateTask(); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c new file mode 100644 index 0000000..ec795e5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c @@ -0,0 +1,203 @@ +#ifdef WORKBENCH +// Observe existing physical guards. No teleporting, spawned soldiers or forced +// completion: a full ordered loop and physical movement must happen natively. +class ERR_NativePatrolProbe +{ + protected ERR_GameMode m_Mode; + protected string m_SiteId; + protected ERR_SiteRuntime m_Site; + protected IEntity m_Actor; + protected vector m_Origin; + protected float m_Deadline; + protected int m_Completions; + protected int m_LastIndex = -1; + protected bool m_BadSequence; + protected bool m_Moved; + protected bool m_Started; + protected bool m_Prepared; + protected float m_AcquireDeadline; + protected bool m_Finished; + protected int m_LastQueueSample = -1; + protected ref map m_QueueBounds = new map(); + void ERR_NativePatrolProbe(ERR_GameMode mode, string siteId = "everon-outpost-1") { m_Mode = mode; m_SiteId = siteId; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: patrol " + detail); return true; } + Print("ERR SMOKE FAIL: patrol " + detail, LogLevel.ERROR); + return false; + } + protected void Completed(AIWaypoint waypoint) + { + if (!m_Site) return; + int index = m_Site.PatrolWaypoints.Find(waypoint); + if (index < 0) return; + if (m_LastIndex >= 0 && index != (m_LastIndex + 1) % m_Site.PatrolWaypoints.Count()) m_BadSequence = true; + m_LastIndex = index; + m_Completions++; + PrintFormat("ERR PATROL COMPLETED: site=%1 index=%2 count=%3", m_Site.Definition.Id, index, m_Completions); + } + protected bool DefinitionChecks() + { + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BC310DC0CD27F523}Configs/ERR/EveronSites.conf")); + if (!Check(definition && definition.Valid(), "authored definition resolves")) return false; + ERR_SiteDefinition site = definition.Find("everon-outpost-1"); + if (!Check(site && site.Patrol && site.Patrol.Count() == 4, "four ordered outpost points authored")) return false; + ref array savedRoute = site.Patrol; + site.Patrol = new array(); + site.Patrol.Insert(savedRoute[0]); + if (!Check(!definition.Valid(), "single-point route rejected")) return false; + for (int extra = 1; extra < 7; extra++) site.Patrol.Insert(savedRoute[extra % savedRoute.Count()]); + if (!Check(!definition.Valid(), "over-six-point route rejected")) return false; + site.Patrol.Clear(); + site.Patrol.Insert(null); + site.Patrol.Insert(savedRoute[1]); + if (!Check(!definition.Valid(), "missing point rejected")) return false; + site.Patrol = savedRoute; + vector saved = site.Patrol[0].Offset; + site.Patrol[0].Offset = "61 0 0"; + if (!Check(!definition.Valid(), "unbounded route rejected")) return false; + site.Patrol[0].Offset = "0 1 0"; + if (!Check(!definition.Valid(), "floating route rejected")) return false; + site.Patrol[0].Offset = site.Patrol[1].Offset; + if (!Check(!definition.Valid(), "duplicate route points rejected")) return false; + site.Patrol[0].Offset = saved; + site.Guarded = false; + if (!Check(!definition.Valid(), "route without a physical guard rejected")) return false; + site.Guarded = true; + ERR_SiteDefinition prison = definition.Find("everon-prison-1"); + prison.Patrol = site.Patrol; + if (!Check(!definition.Valid(), "prison patrol rejected; gate guards remain stationary")) return false; + prison.Patrol = null; + return Check(definition.Valid(), "isolated authoring mutations restored"); + } + protected bool PreparedRoute(string id, bool deferDuplicateFailure = false) + { + ERR_SiteRuntime site = m_Mode.Sites().Find(id); + if (!Check(site && site.Group && site.PatrolCycle && site.PatrolWaypoints.Count() == 4, id + " existing group has one cycle and four native moves")) return false; + array route = {}; + site.PatrolCycle.GetWaypoints(route); + if (!Check(route.Count() == 4 && site.PatrolCycle.GetRerunCounter() == -1 && m_Mode.Sites().Owns(site.PatrolCycle), id + " finite owner holds repeating cycle")) return false; + for (int i = 0; i < route.Count(); i++) + { + vector expected = site.Definition.Position + site.Definition.GuardOffset + site.Definition.Patrol[i].Offset; + if (!Check(route[i] == site.PatrolWaypoints[i] && m_Mode.Sites().Owns(route[i]) && vector.DistanceXZ(route[i].GetOrigin(), expected) < 0.1, id + " authored point " + i.ToString())) return false; + } + array queued = {}; + site.Group.GetWaypoints(queued); + PrintFormat("ERR PATROL QUEUE: site=%1 count=%2 current=%3", id, queued.Count(), site.Group.GetCurrentWaypoint()); + for (int diagnosticIndex = 0; diagnosticIndex < Math.Min(queued.Count(), 20); diagnosticIndex++) + { + AIWaypoint entry = queued[diagnosticIndex]; + PrintFormat("ERR PATROL QUEUE ENTRY: site=%1 index=%2 point=%3 cycle=%4 current=%5 entity=%6", id, diagnosticIndex, site.PatrolWaypoints.Find(entry), entry == site.PatrolCycle, entry == site.Group.GetCurrentWaypoint(), entry); + } + // Diagnostic only: retain duplicate rejection at final acceptance, but first + // observe whether native completion events execute the apparent repetitions. + // GetWaypoints has no documented raw-queue/expanded-cycle distinction. + int repeated; + for (int j = 0; j < queued.Count(); j++) + { + if (!Check(queued[j] && (queued[j] == site.PatrolCycle || site.PatrolWaypoints.Contains(queued[j])), id + " queue contains only owned patrol references")) return false; + for (int k = 0; k < j; k++) if (queued[j] == queued[k]) repeated++; + } + int currentIndex = site.PatrolWaypoints.Find(site.Group.GetCurrentWaypoint()); + string stateKey = id + ":" + currentIndex.ToString(); + if (m_QueueBounds.Contains(stateKey)) + { + if (!Check(queued.Count() <= m_QueueBounds.Get(stateKey), id + " queue does not grow at the same current route point")) return false; + } + else m_QueueBounds.Insert(stateKey, queued.Count()); + PrintFormat("ERR PATROL QUEUE DIAGNOSTIC: site=%1 repeatedPairs=%2 deferred=%3 completions=%4", id, repeated, deferDuplicateFailure, m_Completions); + if (!deferDuplicateFailure && !Check(repeated == 0, id + " no duplicate queue references")) return false; + return true; + } + int Tick(float now) + { + if (m_Finished) return 1; + if (!m_Started) + { + if (!m_Prepared) + { + if (!DefinitionChecks() || !PreparedRoute("everon-supply-2", true) || !PreparedRoute("everon-outpost-1", true)) return -1; + ERR_SiteRuntime prison = m_Mode.Sites().Find("everon-prison-1"); + if (!Check(prison && prison.Group && !prison.PatrolCycle && prison.PatrolWaypoints.IsEmpty(), "prison guards retain stationary orders")) return -1; + m_Site = m_Mode.Sites().Find(m_SiteId); + if (!Check(m_Site && m_Site.Group && m_Site.InitialGuardCount == 6, "selected native guard profile requests six physical members")) return -1; + m_AcquireDeadline = now + 15000; + m_Prepared = true; + } + if (!m_Site || !m_Site.Group) { Check(false, "original guard group disappeared before observation"); return -1; } + array agents = {}; + m_Site.Group.GetAgents(agents); + array ready = {}; + foreach (AIAgent agent : agents) + { + if (!agent) continue; + IEntity actor = agent.GetControlledEntity(); + if (ERR_Actors.CanFight(actor) && !ready.Contains(actor)) ready.Insert(actor); + } + if (ready.Count() > m_Site.InitialGuardCount) { Check(false, "original group contains excess living physical guards"); return -1; } + if (ready.Count() < m_Site.InitialGuardCount) + { + if (now < m_AcquireDeadline) return 0; + PrintFormat("ERR PATROL ACTOR TIMEOUT: site=%1 agents=%2 requested=%3 nativeComplete=%4", m_SiteId, agents.Count(), m_Site.InitialGuardCount, m_Site.Group.IsExpandComplete()); + Check(false, "existing living physical guard unavailable after bounded readiness wait"); + return -1; + } + m_Actor = ready[0]; + if (!Check(ready.Count() == 6, "six distinct original living physical guards available")) return -1; + m_Origin = m_Actor.GetOrigin(); + m_Site.Group.GetOnWaypointCompleted().Insert(Completed); + m_Deadline = now + 180000; + m_Started = true; + return 0; + } + if (m_Actor && vector.DistanceXZ(m_Origin, m_Actor.GetOrigin()) >= 8) m_Moved = true; + if (m_BadSequence) { Stop(); Check(false, "native route completion order"); return -1; } + if (m_Completions != m_LastQueueSample) + { + m_LastQueueSample = m_Completions; + if (!PreparedRoute(m_SiteId, true)) { Stop(); return -1; } + } + // Five completions prove traversal across a cycle boundary, from any starting point. + if (m_Completions >= 5 && m_Moved) + { + Stop(); + if (!Check(true, "existing physical guard moved at least 8m and five native moves completed in authored cyclic order")) return -1; + if (!PreparedRoute(m_SiteId)) return -1; + m_Finished = true; + return 1; + } + if (now >= m_Deadline) + { + PrintFormat("ERR PATROL TIMEOUT: completions=%1 moved=%2 actor=%3 current=%4", m_Completions, m_Moved, m_Actor, m_Site.Group.GetCurrentWaypoint()); + Stop(); Check(false, "native route traversal completed within 180s"); return -1; + } + return 0; + } + // Run last in a disposable mission: deliberately stops both route owners. + static bool StopChecks(ERR_GameMode mode) + { + ERR_SiteRuntime site = mode.Sites().Find("everon-outpost-1"); + if (!site || !site.Group || !site.PatrolCycle) return false; + AIWaypoint search = AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.SearchWaypoint(), ERR_Actors.Ground(site.Definition.Position + "40 0 0"))); + if (!search) return false; + mode.Own(search); + site.Group.AddWaypointAt(search, 0); + mode.Sites().Stop(); + mode.Sites().Stop(); + array queued = {}; + site.Group.GetWaypoints(queued); + bool valid = !site.PatrolCycle && site.PatrolWaypoints.IsEmpty() && queued.Contains(search) && mode.Sites().Prepare() == ERR_PrepareResult.FAILED; + site.Group.RemoveWaypoint(search); + ERR_Actors.DeleteSpawned(search); + if (valid) Print("ERR SMOKE PASS: patrol stop clears owned routes once and preserves foreign Search"); + else Print("ERR SMOKE FAIL: patrol stop ownership", LogLevel.ERROR); + return valid; + } + void Stop() + { + if (m_Site && m_Site.Group) m_Site.Group.GetOnWaypointCompleted().Remove(Completed); + } + void ~ERR_NativePatrolProbe() { Stop(); } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c new file mode 100644 index 0000000..e71d0e5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c @@ -0,0 +1,618 @@ +#ifdef WORKBENCH +// New native-input feasibility experiment. No original Escapists flight code. +// Only the exact fixture-owned AI pilot and helicopter receive these hooks. +modded class SCR_CharacterControllerComponent +{ + override void OnPrepareControls(IEntity owner, ActionManager am, float dt, bool player) + { + ERR_NativePoweredFlightProbe probe = ERR_NativePoweredFlightProbe.Current(); + if (probe && !player) probe.PreparePilotActions(this, owner, am, dt); + super.OnPrepareControls(owner, am, dt, player); + if (probe && !player) probe.ObservePilotPreparation(this, owner); + } + protected override void OnApplyControls(IEntity owner, float timeSlice) + { + super.OnApplyControls(owner, timeSlice); + ERR_NativePoweredFlightProbe probe = ERR_NativePoweredFlightProbe.Current(); + if (probe) probe.ApplyPilot(this, owner, timeSlice); + } +} +modded class SCR_HelicopterControllerComponent +{ + protected override event void OnPrepareControls() + { + super.OnPrepareControls(); + ERR_NativePoweredFlightProbe probe = ERR_NativePoweredFlightProbe.Current(); + if (probe) probe.PrepareHelicopter(this); + } +} +class ERR_PoweredFlightRules +{ + static const int PAD_CANDIDATES = 128; + static const int PAD_REFINEMENTS = 80; + static const int AIRPORT_CANDIDATES = 169; + static vector AirportOffset(int index) + { + if (index < 0 || index >= AIRPORT_CANDIDATES) return vector.Zero; + int x = Math.Mod(index, 13) - 6; + int z = index / 13; + z -= 6; + return Vector(x * 50, 0, z * 50); + } + static vector RefineOffset(int index) + { + if (index < 0 || index >= PAD_REFINEMENTS) return vector.Zero; + int sample = index; + if (sample >= 40) sample++; + int x = Math.Mod(sample, 9) - 4; + int z = sample / 9; + z -= 4; + return Vector(x * 10, 0, z * 10); + } + static vector PadOffset(int index) + { + if (index < 0 || index >= PAD_CANDIDATES) return vector.Zero; + float radius = 120; + int segments = 12; + int sample = index; + float phase = 0; + if (index >= 12 && index < 108) + { + int ring = (index - 12) / 24; + radius = 200 + ring * 80; + segments = 24; sample = Math.Mod(index - 12, 24); phase = Math.Mod(ring, 2) * 0.5; + } + else if (index >= 108) + { + radius = 500; segments = 20; sample = index - 108; phase = 0.25; + } + float angle = (sample + phase) * 2 * Math.PI / segments; + return Vector(Math.Cos(angle) * radius, 0, Math.Sin(angle) * radius); + } + static bool Authority(bool server, bool enabled, bool stopped, bool ownedPilot, bool ownedSeat, bool playerPresent, bool alive, bool fueled) + { + return server && enabled && !stopped && ownedPilot && ownedSeat && !playerPresent && alive && fueled; + } + static float ClampInput(float value, float limit = 1) + { + return Math.Clamp(value, -limit, limit); + } + static float NativeCollective(float signedDemand) + { + // The native apply stage clamps negative collective to zero (100422). + // Keep the feedback controller's signed state; encode its final demand in + // the nonnegative native collective domain, unlike signed cyclic/torque. + return (ClampInput(signedDemand) + 1) * 0.5; + } + static bool CollectiveObserved(float command, float signal) + { + return command >= 0.04 && command <= 0.06 && Math.AbsFloat(signal - command) <= 0.01; + } + static float DesiredVertical(float height, bool landing) + { + float target = 8; + if (landing) target = 0; + return Math.Clamp((target - height) * 0.6, -0.8, 1.5); + } + static bool Hover(float height, float speed, float vertical, float upright, float drift) + { + return height >= 7 && height <= 9 && speed < 1.5 && Math.AbsFloat(vertical) < 0.5 && upright > 0.98 && drift < 8; + } + static bool Landed(bool contact, float height, float speed, float angular, float upright) + { + return contact && height < 1 && height > -1 && speed < 0.5 && angular < 0.1 && upright > 0.98; + } +} +class ERR_NativePoweredFlightProbe +{ + protected static ERR_NativePoweredFlightProbe s_Current; + protected ERR_GameMode m_Mode; + protected Vehicle m_Aircraft; + protected SCR_AIGroup m_Group; + protected IEntity m_Pilot; + protected HelicopterControllerComponent m_Controller; + protected CharacterControllerComponent m_Character; + protected CharacterInputContext m_Input; + protected VehicleHelicopterSimulation m_Simulation; + protected FuelManagerComponent m_Fuel; + protected PilotCompartmentSlot m_Seat; + protected CollectiveMode m_OriginalMode; + protected vector m_Home; + protected vector m_TestPad; + protected float m_Heading; + protected float m_Deadline; + protected float m_StageDeadline; + protected float m_Stable = -1; + protected float m_PreviousTick = -1; + protected float m_NextLog; + protected float m_InitialFuel; + protected float m_Collective = -1; + protected float m_LastControl; + protected int m_Stage; + protected int m_Wakes; + protected int m_StartRequests; + protected int m_ControlUpdates; + protected int m_PilotPreparations; + protected int m_PositiveGateUpdates; + protected float m_PositiveSignalSince = -1; + protected int m_HelicopterUpdates; + protected bool m_PilotSpawnRequested; + protected AIAgent m_PilotAgent; + protected int m_OriginalPilotLOD; + protected bool m_PilotLODSaved; + protected bool m_PilotSeatsLogged; + protected float m_NextInitializationLog; + protected float m_NextSeatingLog; + protected bool m_Bound; + protected bool m_ModeSaved; + protected bool m_Stopped; + protected bool m_Complete; + protected bool m_ReadbackOK = true; + protected bool m_ActionInputs; + protected ActionManager m_OwnedActions; + protected int m_ActionContextSamples; + static const ResourceName AIRCRAFT = "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et"; + static const ResourceName GROUP = "{000CD338713F2B5A}Prefabs/AI/Groups/Group_Base.et"; + static const ResourceName PILOT = "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et"; + static bool Enabled() + { + string enabled, outcome; + return Replication.IsServer() && System.GetCLIParam("errBaseSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "powered-flight"; + } + static ERR_NativePoweredFlightProbe Current() { return s_Current; } + void ERR_NativePoweredFlightProbe(ERR_GameMode mode) + { + string actionInputs; + m_ActionInputs = System.GetCLIParam("errFlightActionInputs", actionInputs) && actionInputs == "1"; + m_Mode = mode; m_Deadline = GetGame().GetWorld().GetWorldTime() + 240000; + if (Enabled() && !s_Current) s_Current = this; + else m_Stopped = true; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: powered-flight " + detail); return true; } + Print("ERR SMOKE FAIL: powered-flight " + detail, LogLevel.ERROR); Stop(); return false; + } + protected bool PlayerPresent() + { + if (!m_Aircraft || !m_Group || m_Group.GetPlayerCount(true) > 0) return true; + array ids = {}; GetGame().GetPlayerManager().GetPlayers(ids); + foreach (int id : ids) + { + IEntity actor = GetGame().GetPlayerManager().GetPlayerControlledEntity(id); + if (actor && (actor == m_Pilot || CompartmentAccessComponent.GetVehicleIn(actor) == m_Aircraft)) return true; + } + return false; + } + protected bool OwnPilot() + { + return m_Pilot && m_Group && ERR_Actors.Group(m_Pilot) == m_Group && !ERR_Actors.Player(m_Pilot); + } + protected bool PoweredAuthority() + { + bool occupied = m_Seat && m_Seat.GetOccupant() == m_Pilot && m_Controller && m_Controller.GetPilotCompartmentSlot() == m_Seat && CompartmentAccessComponent.GetVehicleIn(m_Pilot) == m_Aircraft; + bool alive = ERR_Actors.Alive(m_Aircraft) && ERR_Actors.CanFight(m_Pilot); + SCR_VehicleDamageManagerComponent damage; + if (m_Aircraft) damage = SCR_VehicleDamageManagerComponent.Cast(m_Aircraft.FindComponent(SCR_VehicleDamageManagerComponent)); + alive = alive && damage && damage.GetEngineFunctional() && damage.GetMovementDamage() < 1 && !damage.IsOnFire(); + if (m_Simulation) + for (int rotor = 0; rotor < m_Simulation.RotorCount(); rotor++) if (m_Simulation.RotorGetState(rotor) == RotorState.DESTROYED) alive = false; + return ERR_PoweredFlightRules.Authority(Replication.IsServer(), Enabled(), m_Stopped, OwnPilot(), occupied, PlayerPresent(), alive, m_Fuel && m_Fuel.HasFuel()); + } + void PrepareHelicopter(HelicopterControllerComponent controller) + { + if (!m_Bound || controller != m_Controller || !PoweredAuthority()) return; + // Native SCR controller normally reapplies device preferences every update. + // Override only this owned fixture controller, never global/user settings. + controller.SetCollectiveMode(CollectiveMode.Direct); m_HelicopterUpdates++; + } + bool UsesActionInputs() { return m_ActionInputs; } + void ObservePilotPreparation(CharacterControllerComponent controller, IEntity owner) + { + if (!m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority()) return; + m_PilotPreparations++; + } + // Both selectable input paths share one computation. Only the selected + // path integrates per callback; neither path invokes the other writer. + protected bool ComputePilotDemand(CharacterControllerComponent controller, IEntity owner, float dt, out float collective, out vector axes) + { + if (!m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority() || !m_Input || !m_Simulation || dt <= 0 || dt > 0.2) return false; + vector transform[4]; m_Aircraft.GetWorldTransform(transform); + vector velocity = m_Simulation.GetVelocity(); + vector angular = m_Simulation.GetAngularVelocityLocal(); + float height = transform[3][1] - m_Home[1]; + float forward, aside, torque; + collective = -1; + if (m_Stage == 9) collective = -0.9; // native0.05, bounded signal-consumption proof + if (m_Stage >= 4 && m_Stage <= 6 && m_Controller.IsEngineOn()) + { + float desiredVertical = ERR_PoweredFlightRules.DesiredVertical(height, m_Stage == 6); + float error = desiredVertical - velocity[1]; + m_Collective = Math.Clamp(m_Collective + error * dt * 0.12, -0.95, 0.8); + collective = Math.Clamp(m_Collective + error * 0.12, -1, 0.9); + vector offset = m_Home - transform[3]; offset[1] = 0; + // Native105226 already brakes before8m refusal; increase only velocity damping. + vector acceleration = offset * 0.08 - velocity * 0.6; acceleration[1] = 0; + // Small local cyclic corrections counter drift/tilt through native inputs. + // Sign/gain and native Direct-mode response remain experimental evidence. + forward = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[2]) / 9.81 + transform[2][1]) * 0.8 - angular[0] * 0.3, 0.15); + aside = ERR_PoweredFlightRules.ClampInput((vector.Dot(acceleration, transform[0]) / 9.81 + transform[0][1]) * 0.8 + angular[2] * 0.3, 0.15); + float headingError = m_Heading - m_Aircraft.GetYawPitchRoll()[0]; + while (headingError > 180) headingError -= 360; + while (headingError < -180) headingError += 360; + torque = ERR_PoweredFlightRules.ClampInput(headingError * 0.01 - angular[1] * 0.3, 0.3); + if (m_Stage == 6 && ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact(), height, velocity.Length(), angular.Length(), transform[1][1])) collective = -1; + } + collective = ERR_PoweredFlightRules.NativeCollective(collective); + axes = Vector(forward, aside, torque); + return true; + } + protected bool WriteActionPair(ActionManager am, string positive, string negative, float demand) + { + float a = Math.Clamp(demand, 0, 1); + float b = Math.Clamp(-demand, 0, 1); + am.SetActionValue(positive, a); am.SetActionValue(negative, b); + return Math.AbsFloat(am.GetActionValue(positive) - a) < 0.001 && Math.AbsFloat(am.GetActionValue(negative) - b) < 0.001; + } + protected bool OwnActionManager(ActionManager am) + { + // Read the global manager only to reject shared ownership. Never write it. + return am && m_PilotAgent && am == m_PilotAgent.GetActionManager() && am != GetGame().GetInputManager(); + } + void PreparePilotActions(CharacterControllerComponent controller, IEntity owner, ActionManager am, float dt) + { + if (!m_ActionInputs || !m_Bound || controller != m_Character || owner != m_Pilot || !PoweredAuthority()) return; + if (!OwnActionManager(am)) { m_ReadbackOK = false; return; } + m_OwnedActions = am; + // Same short activation pattern used by vanilla game.c; this manager belongs + // solely to the fixture AI, never to global hardware or the human player. + // Native104256 reports false from ActivateContext while already active. + // Treat observed active state as authority, not an undocumented return meaning. + bool alreadyActive = am.IsContextActive("HelicopterContext"); + bool activated; + if (!alreadyActive) activated = am.ActivateContext("HelicopterContext", 1); + bool contextActive = am.IsContextActive("HelicopterContext"); + if (m_ActionContextSamples < 4) + { + m_ActionContextSamples++; + PrintFormat("ERR POWERED ACTION CONTEXT: sample=%1 activated=%2 active=%3 dt=%4 input=%5 simulation=%6", m_ActionContextSamples, activated, contextActive, dt, m_Input != null, m_Simulation != null); + } + if (!contextActive) { m_ReadbackOK = false; return; } + float collective; vector axes; + if (!ComputePilotDemand(controller, owner, dt, collective, axes)) return; + bool a = WriteActionPair(am, "HelicopterCollectiveIncrease", "HelicopterCollectiveDecrease", collective); + bool b = WriteActionPair(am, "HelicopterCyclicForward", "HelicopterCyclicBack", axes[0]); + bool c = WriteActionPair(am, "HelicopterCyclicRight", "HelicopterCyclicLeft", axes[1]); + bool d = WriteActionPair(am, "HelicopterAntiTorqueRight", "HelicopterAntiTorqueLeft", axes[2]); + m_ReadbackOK = m_ReadbackOK && a && b && c && d; + m_ControlUpdates++; m_LastControl = GetGame().GetWorld().GetWorldTime(); + } + void ApplyPilot(CharacterControllerComponent controller, IEntity owner, float dt) + { + // The experimental actor-action path and old context path never both write. + if (m_ActionInputs) return; + float collective; vector axes; + if (!ComputePilotDemand(controller, owner, dt, collective, axes)) return; + float forward = axes[0]; float aside = axes[1]; float torque = axes[2]; + m_Input.SetVehicleThrottle(1); + m_Input.SetVehicleCollective(collective); + m_Input.SetVehicleCyclicForward(forward); + m_Input.SetVehicleCyclicAside(aside); + m_Input.SetVehicleAntiTorque(torque); + m_ReadbackOK = m_ReadbackOK && Math.AbsFloat(m_Input.GetVehicleCollective() - collective) < 0.001 && Math.AbsFloat(m_Input.GetVehicleCyclicForward() - forward) < 0.001 && Math.AbsFloat(m_Input.GetVehicleCyclicAside() - aside) < 0.001 && Math.AbsFloat(m_Input.GetVehicleAntiTorque() - torque) < 0.001; + m_ControlUpdates++; m_LastControl = GetGame().GetWorld().GetWorldTime(); + } + protected bool FindPad(out vector result) + { + vector anchor = m_Mode.ExtractionVehicle().GetOrigin(); + int tested, lowGround, slopeRejected, cylinderRejected, sweepRejected; + float bestSlope = float.MAX; + vector bestCandidate; + vector refinementAnchor; + int localCandidates = ERR_PoweredFlightRules.PAD_CANDIDATES + ERR_PoweredFlightRules.PAD_REFINEMENTS; + for (int index = 0; index < localCandidates + ERR_PoweredFlightRules.AIRPORT_CANDIDATES; index++) + { + if (index == ERR_PoweredFlightRules.PAD_CANDIDATES) + { + if (bestSlope == float.MAX) refinementAnchor = anchor; + else refinementAnchor = bestCandidate; + // Freeze the refinement centre; improvements must not move the grid. + } + tested++; + vector candidate; + if (index < ERR_PoweredFlightRules.PAD_CANDIDATES) candidate = ERR_Actors.Ground(anchor + ERR_PoweredFlightRules.PadOffset(index)); + else if (index < localCandidates) candidate = ERR_Actors.Ground(refinementAnchor + ERR_PoweredFlightRules.RefineOffset(index - ERR_PoweredFlightRules.PAD_CANDIDATES)); + // Installed vanilla Eden/Airport location centre; candidate only, never + // accepted without exactly the same terrain and physical clearance queries. + else candidate = ERR_Actors.Ground("4900.953 0 11787.412" + ERR_PoweredFlightRules.AirportOffset(index - localCandidates)); + if (candidate[1] < 2) { lowGround++; continue; } + float maximumDelta = 0; + for (int edge = 0; edge < 4; edge++) + { + float side = edge * Math.PI / 2; + vector point = candidate + Vector(Math.Cos(side) * 14, 0, Math.Sin(side) * 14); + maximumDelta = Math.Max(maximumDelta, Math.AbsFloat(SCR_TerrainHelper.GetTerrainY(point) - candidate[1])); + } + if (maximumDelta < bestSlope) { bestSlope = maximumDelta; bestCandidate = candidate; } + if (maximumDelta > 0.8) { slopeRejected++; continue; } + // Retain slope and exact native rejection semantics; widen the tested + // column for a runtime-measured whole-aircraft footprint plus8m drift. + if (!SCR_WorldTools.TraceCilinderUtil(candidate + "0 2.5 0", 40, 4, TraceFlags.ENTS)) { cylinderRejected++; continue; } + TraceBox clearance = new TraceBox(); clearance.Start = candidate + "0 3 0"; clearance.End = candidate + "0 60 0"; + clearance.Mins = "-40 -1 -40"; clearance.Maxs = "40 1 40"; clearance.Flags = TraceFlags.ENTS | TraceFlags.WORLD; + if (GetGame().GetWorld().TraceMove(clearance, null) < 1) { sweepRejected++; continue; } + PrintFormat("ERR POWERED PAD: found=%1 tested=%2 distance=%3m maximumHeightDelta=%4m lowGround=%5 slopeRejected=%6 cylinderRejected=%7 sweepRejected=%8", candidate, tested, vector.DistanceXZ(anchor, candidate), maximumDelta, lowGround, slopeRejected, cylinderRejected, sweepRejected); + result = candidate; return true; + } + if (bestSlope == float.MAX) bestSlope = -1; + PrintFormat("ERR POWERED PAD: no safe candidate; tested=%1 localRadius=557m plus airport300m-grid lowGround=%2 slopeRejected=%3 cylinderRejected=%4 sweepRejected=%5 bestHeightDelta=%6m bestCandidate=%7 (diagnostic only; never a fallback)", tested, lowGround, slopeRejected, cylinderRejected, sweepRejected, bestSlope, bestCandidate); + return false; + } + protected void Diagnostic(float now) + { + if (!m_Simulation || !m_Aircraft || now < m_NextLog) return; + m_NextLog = now + 2000; + if (m_Stage == 4 && now < m_StageDeadline - 57000) m_NextLog = now + 250; + if (m_ActionInputs) + { + bool ownedActions = OwnActionManager(m_OwnedActions); + bool contextActive = m_OwnedActions && m_OwnedActions.IsContextActive("HelicopterContext"); + PrintFormat("ERR POWERED ACTION MANAGER: selected=1 exactOwnedNonGlobal=%1 contextActive=%2 virtualWrites=%3", ownedActions, contextActive, m_ControlUpdates); + } + vector transform[4]; m_Aircraft.GetWorldTransform(transform); + PrintFormat("ERR POWERED FLIGHT: stage=%1 height=%2 drift=%3 speed=%4 vertical=%5 up=%6 groundContact=%7 fuel=%8 engine=%9", m_Stage, transform[3][1] - m_Home[1], vector.DistanceXZ(transform[3], m_Home), m_Simulation.GetVelocity().Length(), m_Simulation.GetVelocity()[1], transform[1][1], m_Simulation.HasAnyGroundContact(), m_Fuel.GetTotalFuel(), m_Controller.IsEngineOn()); + vector rotorAxis; m_Simulation.RotorGetAxis(0, rotorAxis); + PrintFormat("ERR POWERED HEADING: desiredYaw=%1 actualYawPitchRoll=%2", m_Heading, m_Aircraft.GetYawPitchRoll()); + PrintFormat("ERR POWERED ROTOR AXIS: local=%1 acceleration=%2", rotorAxis, m_Simulation.GetAcceleration()); + PrintFormat("ERR POWERED MOTION: offset=%1 velocity=%2 angularLocal=%3 forward=%4 right=%5", m_Home - transform[3], m_Simulation.GetVelocity(), m_Simulation.GetAngularVelocityLocal(), transform[2], transform[0]); + PrintFormat("ERR POWERED INPUT: pilotHooks=%1 vehicleHooks=%2 readback=%3 collective=%4 cyclicF=%5 cyclicR=%6 antiTorque=%7 rotorRPM=%8 targetRPM=%9", m_ControlUpdates, m_HelicopterUpdates, m_ReadbackOK, m_Input.GetVehicleCollective(), m_Input.GetVehicleCyclicForward(), m_Input.GetVehicleCyclicAside(), m_Input.GetVehicleAntiTorque(), m_Simulation.RotorGetRPM(0), m_Simulation.RotorGetRPMTarget(0)); + } + protected bool PollNativeFlightComponents(float now) + { + // Component pointers, simulation and tank contents may initialize after spawn. + // Enumerate the real empty primary cockpit slot; an active pilot assignment + // is a later occupancy requirement, not a prerequisite to creating its pilot. + m_Controller = HelicopterControllerComponent.Cast(m_Aircraft.FindComponent(HelicopterControllerComponent)); + m_Simulation = null; + if (m_Controller) m_Simulation = m_Controller.GetSimulation(); + m_Fuel = FuelManagerComponent.Cast(m_Aircraft.FindComponent(FuelManagerComponent)); + BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(m_Aircraft.FindComponent(BaseCompartmentManagerComponent)); + array slots = {}; + if (manager) manager.GetCompartments(slots); + m_Seat = null; + if (slots.Count() <= 64) + { + foreach (BaseCompartmentSlot slot : slots) + { + PilotCompartmentSlot pilotSlot = PilotCompartmentSlot.Cast(slot); + if (!pilotSlot || pilotSlot.GetOwner() != m_Aircraft || pilotSlot.GetVehicle() != m_Aircraft) continue; + if (!m_PilotSeatsLogged) PrintFormat("ERR POWERED INITIAL SEAT: name=%1 unique=%2 type=%3 occupied=%4 accessible=%5 piloting=%6", pilotSlot.GetCompartmentName(), pilotSlot.GetCompartmentUniqueName(), pilotSlot.GetType(), pilotSlot.GetOccupant() != null, pilotSlot.IsCompartmentAccessible(), pilotSlot.IsPiloting()); + // This is the actual object name in the audited stock Mi8 prefab. Do not + // choose the copilot merely because it has the same PilotCompartment type. + if (pilotSlot.GetCompartmentName() != "PilotCompartment") continue; + if (pilotSlot.GetType() != ECompartmentType.PILOT || !pilotSlot.IsCompartmentAccessible()) continue; + if (pilotSlot.GetOccupant() || pilotSlot.IsReserved() || pilotSlot.IsGetInLocked()) continue; + m_Seat = pilotSlot; + } + } + if (slots.Count() > 0) m_PilotSeatsLogged = true; + bool validSimulation = m_Simulation && m_Simulation.IsValid(); + bool fueled = m_Fuel && m_Fuel.HasFuel(); + PilotCompartmentSlot active; + if (m_Controller) active = m_Controller.GetPilotCompartmentSlot(); + if (now >= m_NextInitializationLog || now >= m_StageDeadline) + { + m_NextInitializationLog = now + 2000; + float fuel = -1; + if (m_Fuel) fuel = m_Fuel.GetTotalFuel(); + PrintFormat("ERR POWERED INITIALIZATION: controller=%1 simulation=%2 valid=%3 manager=%4 slots=%5 primaryEmptySeat=%6 activeSeat=%7 fuelManager=%8", m_Controller != null, m_Simulation != null, validSimulation, manager != null, slots.Count(), m_Seat != null, active != null, m_Fuel != null); + PrintFormat("ERR POWERED INITIALIZATION STOCK: fueled=%1 totalFuel=%2 agents=%3 pilotSpawnRequested=%4", fueled, fuel, m_Group.GetAgentsCount(), m_PilotSpawnRequested); + } + return m_Controller && validSimulation && m_Seat && fueled; + } + protected void SeatingDiagnostic(float now) + { + // Observe each existing stage-1 predicate without changing seating, AI, + // physics, health, fuel, or the shared preparation deadline. + if (now < m_NextSeatingLog && now < m_StageDeadline) return; + m_NextSeatingLog = now + 2000; + bool ownPilot = OwnPilot(); + bool seatMatches = m_Seat.GetOccupant() == m_Pilot; + bool activeMatches = m_Controller.GetPilotCompartmentSlot() == m_Seat; + bool vehicleMatches = m_Pilot && CompartmentAccessComponent.GetVehicleIn(m_Pilot) == m_Aircraft; + bool aircraftReady = ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft); + bool pilotAlive = ERR_Actors.Alive(m_Pilot); + bool pilotConscious = ERR_Actors.CanFight(m_Pilot); + bool aircraftAlive = ERR_Actors.Alive(m_Aircraft); + bool sameGroup = ERR_Actors.Group(m_Pilot) == m_Group; + bool player = ERR_Actors.Player(m_Pilot); + PrintFormat("ERR POWERED SEATING: ownPilot=%1 seatOccupantMatches=%2 activeSlotMatches=%3 vehicleMatches=%4 aircraftReady=%5 wakes=%6 stableSince=%7 remainingMs=%8", ownPilot, seatMatches, activeMatches, vehicleMatches, aircraftReady, m_Wakes, m_Stable, m_StageDeadline - now); + PrintFormat("ERR POWERED SEATING ACTORS: pilotExists=%1 alive=%2 conscious=%3 sameGroup=%4 player=%5 groupAgents=%6 aircraftAlive=%7", m_Pilot != null, pilotAlive, pilotConscious, sameGroup, player, m_Group.GetAgentsCount(), aircraftAlive); + PrintFormat("ERR POWERED SEATING IDENTITIES: pilot=%1 occupant=%2 selectedSeat=%3 activeSeat=%4 group=%5 actualGroup=%6", m_Pilot, m_Seat.GetOccupant(), m_Seat, m_Controller.GetPilotCompartmentSlot(), m_Group, ERR_Actors.Group(m_Pilot)); + if (m_PilotAgent) PrintFormat("ERR POWERED SEATING AGENT: actualLOD=%1 forcedLOD=%2 activated=%3", m_PilotAgent.GetLOD(), m_PilotAgent.GetPermanentLOD(), m_PilotAgent.IsAIActivated()); + CompartmentAccessComponent access; + if (m_Pilot) access = CompartmentAccessComponent.Cast(m_Pilot.FindComponent(CompartmentAccessComponent)); + if (access) PrintFormat("ERR POWERED SEATING ACCESS: gettingIn=%1 gettingOut=%2", access.IsGettingIn(), access.IsGettingOut()); + Physics physics = m_Aircraft.GetPhysics(); + vector entityTransform[4]; m_Aircraft.GetWorldTransform(entityTransform); + if (physics) PrintFormat("ERR POWERED SEATING PHYSICS: dynamic=%1 awake=%2 speed=%3 angularSpeed=%4 entityUp=%5 entityOrigin=%6", physics.IsDynamic(), physics.IsActive(), physics.GetVelocity().Length(), physics.GetAngularVelocity().Length(), entityTransform[1][1], entityTransform[3]); + vector nativeTransform[4]; m_Simulation.GetWorldTransform(nativeTransform); + bool valid = m_Simulation.IsValid(); + bool nativeContact = m_Simulation.HasAnyGroundContact(); + bool parkedSupport = ERR_CasualtyGroundSupport.Parked(m_Aircraft, now >= m_StageDeadline); + PrintFormat("ERR POWERED SEATING SIMULATION: valid=%1 nativeContact=%2 parkedSupport=%3 engineOn=%4 nativeUp=%5 nativeOrigin=%6", valid, nativeContact, parkedSupport, m_Controller.IsEngineOn(), nativeTransform[1][1], nativeTransform[3]); + } + void Stop() + { + if (m_Stopped) return; + // Input cleanup is confined to the same unclaimed test pilot/aircraft. + bool ours = m_Bound && OwnPilot() && !PlayerPresent(); + m_Stopped = true; m_Bound = false; + if (s_Current == this) s_Current = null; + if (ours && m_ActionInputs && OwnActionManager(m_OwnedActions)) + { + WriteActionPair(m_OwnedActions, "HelicopterCollectiveIncrease", "HelicopterCollectiveDecrease", 0); + WriteActionPair(m_OwnedActions, "HelicopterCyclicForward", "HelicopterCyclicBack", 0); + WriteActionPair(m_OwnedActions, "HelicopterCyclicRight", "HelicopterCyclicLeft", 0); + WriteActionPair(m_OwnedActions, "HelicopterAntiTorqueRight", "HelicopterAntiTorqueLeft", 0); + } + if (ours && !m_ActionInputs && m_Input) + { + m_Input.SetVehicleCollective(0); m_Input.SetVehicleThrottle(0); + m_Input.SetVehicleCyclicForward(0); m_Input.SetVehicleCyclicAside(0); m_Input.SetVehicleAntiTorque(0); + } + if (ours && m_Controller && m_ModeSaved) m_Controller.SetCollectiveMode(m_OriginalMode); + m_OwnedActions = null; + if (m_PilotLODSaved && m_PilotAgent && OwnPilot() && !PlayerPresent()) m_PilotAgent.SetPermanentLOD(m_OriginalPilotLOD); + if (m_Group && m_Group.GetPlayerCount(true) == 0) m_Group.SetPermanentLOD(-1); + // Keep real airborne/failed test actors for diagnosis and mode-owned cleanup. + // Stop never repairs, stabilizes, teleports, refuels or replaces them. + } + int Tick(float now) + { + if (m_Complete) return 1; + if (m_Stopped) return -1; + if (!Enabled() || !m_Mode || now >= m_Deadline || ERR_MissionRules.Terminal(m_Mode.Phase())) { Check(false, "server fixture active within 240-second bound"); return -1; } + if (m_PreviousTick >= 0 && (now < m_PreviousTick || now - m_PreviousTick > 1500)) { m_Stable = -1; m_PositiveSignalSince = -1; } + m_PreviousTick = now; + if (m_Stage == 0) + { + if (!m_Mode.ExtractionVehicle()) return 0; + vector pad; + if (!Check(FindPad(pad), "separate clear flat test pad found; extraction vehicle untouched")) return -1; + m_TestPad = pad; + m_Aircraft = Vehicle.Cast(ERR_Actors.Spawn(AIRCRAFT, pad)); + m_Group = SCR_AIGroup.Cast(ERR_Actors.Spawn(GROUP, pad + "20 0 0")); + m_Mode.Own(m_Aircraft); m_Mode.Own(m_Group); + if (!Check(m_Aircraft && m_Group, "one stock unarmed airframe and own empty group created once")) return -1; + // Group_USSR_Base authors six queued members; use the memberless native + // base group so adding one pilot cannot initiate a hidden crew allocation. + if (!Check(m_Group.InitFactionKey("USSR") && m_Group.GetFactionName() == "USSR", "memberless native group receives explicit USSR faction")) return -1; + m_Group.SetPermanentLOD(0); m_Group.ActivateAI(); + m_Stage = 8; m_StageDeadline = now + 30000; return 0; + } + if (m_Stage == 8) + { + if (!m_Aircraft || !m_Group || PlayerPresent()) { Check(false, "initial fixture airframe/group remain owned and unclaimed"); return -1; } + bool componentsReady = PollNativeFlightComponents(now); + if (now >= m_StageDeadline) { Check(false, "native flight components and empty primary pilot seat initialize within shared 30-second preparation bound"); return -1; } + if (!componentsReady) return 0; + if (!Check(!m_PilotSpawnRequested && m_Group.GetAgentsCount() == 0, "native components initialized before the only pilot allocation")) return -1; + m_PilotSpawnRequested = true; + AIGroup nativeGroup = m_Group; + m_Pilot = m_Seat.SpawnCharacterInCompartment(PILOT, nativeGroup, GROUP); + if (m_Pilot) m_Mode.Own(m_Pilot); + if (!Check(m_Pilot && nativeGroup == m_Group, "one existing vanilla character spawned through native pilot-seat mechanism")) return -1; + AIControlComponent pilotControl = AIControlComponent.Cast(m_Pilot.FindComponent(AIControlComponent)); + if (pilotControl) m_PilotAgent = pilotControl.GetControlAIAgent(); + if (!Check(m_PilotAgent && OwnPilot(), "single native pilot owns its actual control agent and fixture group")) return -1; + // Group LOD does not establish each member's own native LOD. Keep the + // distant fixture pilot's actual control agent active, as physical crews do. + m_OriginalPilotLOD = m_PilotAgent.GetPermanentLOD(); m_PilotLODSaved = true; + m_PilotAgent.SetPermanentLOD(0); m_PilotAgent.ActivateAI(); + m_Stage = 1; return 0; + } + if (m_Stage == 1) + { + if (!m_Aircraft || !m_Group || !m_Controller || !m_Simulation || !m_Seat) { Check(false, "same native flight objects survive seating"); return -1; } + SeatingDiagnostic(now); + Physics physics = m_Aircraft.GetPhysics(); + if (physics && physics.IsDynamic() && m_Simulation.IsValid() && m_Wakes == 0) { m_Wakes = 1; physics.SetActive(ActiveState.ACTIVE); m_Stable = -1; return 0; } + if (now >= m_StageDeadline) { Check(false, "initial native seating and ground settling complete in 30 seconds"); return -1; } + if (!m_Wakes || !OwnPilot() || m_Seat.GetOccupant() != m_Pilot || m_Controller.GetPilotCompartmentSlot() != m_Seat || !ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft)) { m_Stable = -1; return 0; } + if (m_Stable < 0) m_Stable = now; + if (now - m_Stable < 1000) return 0; + m_Character = CharacterControllerComponent.Cast(m_Pilot.FindComponent(CharacterControllerComponent)); + if (m_Character) m_Input = m_Character.GetInputContext(); + if (!Check(m_Input && m_Group.GetAgentsCount() == 1 && PoweredAuthority(), "one living native AI pilot physically occupies its own fueled helicopter")) return -1; + m_Home = m_Aircraft.GetOrigin(); m_Heading = m_Aircraft.GetYawPitchRoll()[0]; + m_OriginalMode = m_Controller.GetCollectiveMode(); m_ModeSaved = true; + m_InitialFuel = m_Fuel.GetTotalFuel(); m_Bound = true; + m_Stage = 2; m_StageDeadline = now + 5000; return 0; + } + Diagnostic(now); + if (!PoweredAuthority() || !m_ReadbackOK) { Check(false, "current owned conscious pilot, fuel, rotors and exact input readback remain valid"); return -1; } + if (m_Stage == 2) + { + if (now >= m_StageDeadline) { Check(false, "native AI input and helicopter preparation hooks execute before engine start"); return -1; } + if (m_PilotPreparations < 3 || m_ControlUpdates < 3 || m_HelicopterUpdates < 3) return 0; + if (!Check(m_Controller.GetCollectiveMode() == CollectiveMode.Direct && m_Input.GetVehicleCollective() == 0, "owned native input hooks apply minimum collective in Direct mode")) return -1; + if (!Check(!m_Controller.IsEngineOn(), "native engine remains off until the complete footprint is qualified")) return -1; + vector measuredOrigin; + float measuredRadius; + if (!Check(ERR_NativeFlightFootprint.Measure(m_Aircraft, m_Simulation, m_TestPad, measuredOrigin, measuredRadius), "actual complete model and rotor footprint fits the cleared flight column before engine start")) return -1; + // Baseline the actual entity world origin used by geometry and telemetry, + // after native placement; this never changes an entity transform. + m_Home = measuredOrigin; + m_StartRequests = 1; + bool started = m_Controller.StartEngine(); + PrintFormat("ERR POWERED ENGINE REQUEST: StartEngine returned=%1; normal procedure, no force-start or simulation EngineStart", started); + m_Stage = 3; m_StageDeadline = now + 65000; return 0; + } + if (now - m_LastControl > 1000) { Check(false, "native control callback remains live during test flight"); return -1; } + vector transform[4]; m_Aircraft.GetWorldTransform(transform); + float height = transform[3][1] - m_Home[1]; + float speed = m_Simulation.GetVelocity().Length(); + float drift = vector.DistanceXZ(transform[3], m_Home); + if (height > 18 || height < -3 || drift >= 8 || transform[1][1] < 0.85) { Check(false, "physical test stays inside height, drift and tilt safety envelope"); return -1; } + if (m_Stage == 3) + { + if (now >= m_StageDeadline) { Check(false, "normal engine startup and native rotor RPM complete within 65 seconds"); return -1; } + float targetRPM = m_Simulation.RotorGetRPMTarget(0); + if (!m_Controller.IsEngineOn() || targetRPM <= 0 || m_Simulation.RotorGetRPM(0) < targetRPM * 0.9 || m_Fuel.GetTotalFuel() >= m_InitialFuel) return 0; + if (!Check(m_StartRequests == 1 && m_Fuel.GetTotalFuel() < m_InitialFuel, "single normal engine start spins physical rotor and consumes native fuel")) return -1; + m_PositiveGateUpdates = m_ControlUpdates; m_PositiveSignalSince = -1; + m_Stage = 9; m_StageDeadline = now + 3000; return 0; + } + if (((m_Stage >= 4 && m_Stage <= 6) || m_Stage == 9) && !m_Controller.IsEngineOn()) { Check(false, "powered flight retains real running engine"); return -1; } + if (m_Stage == 9) + { + if (now >= m_StageDeadline) { Check(false, "positive native collective reaches actual rotor signal before climb within three seconds"); return -1; } + SignalsManagerComponent signals = m_Controller.GetSignalsManager(); + int signalIndex = -1; + if (signals) signalIndex = signals.FindSignal("MainRotorCollective"); + if (!Check(signalIndex >= 0, "existing native main rotor collective signal available for consumption proof")) return -1; + float observed = signals.GetSignalValue(signalIndex); + bool matched = m_ControlUpdates >= m_PositiveGateUpdates + 3 && ERR_PoweredFlightRules.CollectiveObserved(m_Input.GetVehicleCollective(), observed); + PrintFormat("ERR POWERED COLLECTIVE GATE: command=%1 rotorSignal=%2 applyUpdates=%3 matched=%4", m_Input.GetVehicleCollective(), observed, m_ControlUpdates - m_PositiveGateUpdates, matched); + if (!matched) { m_PositiveSignalSince = -1; return 0; } + if (m_PositiveSignalSince < 0) m_PositiveSignalSince = now; + if (now - m_PositiveSignalSince < 500) return 0; + if (!Check(true, "positive collective persists in existing native rotor signal across actual ticks before climb")) return -1; + m_Collective = -0.8; m_Stage = 4; m_StageDeadline = now + 65000; m_Stable = -1; return 0; + } + if (m_Stage == 4 || m_Stage == 5) + { + bool hover = !m_Simulation.HasAnyGroundContact() && ERR_PoweredFlightRules.Hover(height, speed, m_Simulation.GetVelocity()[1], transform[1][1], drift); + if (!hover) m_Stable = -1; + if (hover && m_Stable < 0) m_Stable = now; + if (now >= m_StageDeadline) { Check(false, "actual powered takeoff and five-second stable hover reached in 65 seconds"); return -1; } + if (m_Stable >= 0 && now - m_Stable >= 5000) + { + if (!Check(m_ControlUpdates > 100 && m_Fuel.GetTotalFuel() < m_InitialFuel - 0.05, "actual 7–9 metre powered hover stable five seconds with native fuel consumption")) return -1; + m_Stage = 6; m_StageDeadline = now + 65000; m_Stable = -1; + } + return 0; + } + if (m_Stage == 6) + { + bool landed = ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact(), height, speed, m_Simulation.GetAngularVelocity().Length(), transform[1][1]); + if (!landed) m_Stable = -1; + if (landed && m_Stable < 0) m_Stable = now; + if (now >= m_StageDeadline) { Check(false, "actual native contact landing reached within 65 seconds"); return -1; } + if (m_Stable < 0 || now - m_Stable < 2000) return 0; + if (!Check(drift < 8 && m_Fuel.GetTotalFuel() < m_InitialFuel - 0.05 && m_Wakes == 1 && m_StartRequests == 1, "same physical aircraft and living AI pilot land with stable ground contact after powered hover")) return -1; + m_Controller.StopEngine(false); + m_Stage = 7; m_StageDeadline = now + 15000; return 0; + } + if (m_Stage == 7) + { + if (now >= m_StageDeadline) { Check(false, "normal engine shutdown completed on actual ground"); return -1; } + if (m_Controller.IsEngineOn()) return 0; + if (!Check(ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact(), height, speed, m_Simulation.GetAngularVelocity().Length(), transform[1][1]) && PoweredAuthority(), "native engine off after contact landing; no transform/velocity/health/fuel correction")) return -1; + Stop(); m_Complete = true; return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c new file mode 100644 index 0000000..7cd8883 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c @@ -0,0 +1,167 @@ +#ifdef WORKBENCH +// Disposable-world fixture. Direct native door boundary, gate damage and real admitted character; +// deliberate asynchronous repositioning tests sampling, not walking/input/MP. +class ERR_NativePrisonBreachProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected vector m_Center; + protected vector m_Target; + protected int m_Step; + protected int m_Transitions; + protected float m_Wait; + protected float m_Deadline; + void ERR_NativePrisonBreachProbe(ERR_GameMode mode, IEntity player) + { + m_Mode = mode; m_Player = player; + m_Mode.OnPhaseChanged().Insert(PhaseChanged); + } + protected void PhaseChanged(ERR_Phase previous, ERR_Phase current) + { + if (previous == ERR_Phase.PRISON && current == ERR_Phase.RADIO_SEARCH) m_Transitions++; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: prison-breach " + detail); return true; } + Print("ERR SMOKE FAIL: prison-breach " + detail, LogLevel.ERROR); + Stop(); + return false; + } + protected void Move(vector offset) + { + vector transform[4]; + m_Player.GetWorldTransform(transform); + m_Target = ERR_Actors.Ground(m_Center + offset); + transform[3] = m_Target; + ChimeraCharacter.Cast(m_Player).Teleport(transform); + } + protected bool Arrived() { return vector.Distance(m_Player.GetOrigin(), m_Target) < 1; } + void Stop() { if (m_Mode) m_Mode.OnPhaseChanged().Remove(PhaseChanged); } + int Tick(float now) + { + if (m_Deadline == 0) m_Deadline = now + 45000; + if (now > m_Deadline || !m_Mode.Active() || !ERR_Actors.CanFight(m_Player) || !m_Mode.Players().CurrentActor(m_Player)) + { + vector observed; + if (m_Player) observed = m_Player.GetOrigin(); + PrintFormat("ERR PRISON BREACH STATE: step=%1 player=%2 target=%3 phase=%4", m_Step, observed, m_Target, m_Mode.Phase()); + Check(false, "deadline or canonical conscious participant lost"); + return -1; + } + if (now < m_Wait) return 0; + ERR_PrisonEscapeService escape = m_Mode.PrisonEscape(); + if (m_Step == 0) + { + if (escape) Print("ERR PRISON BREACH REGISTRATION: " + escape.RegistrationReason()); + if (!Check(escape && escape.Registered() && escape.Gate() && !escape.GateLost() && m_Mode.Phase() == ERR_Phase.PRISON, "actual authored gate registered before any breach")) return -1; + array locations = {}; + m_Mode.Locations(locations); + foreach (ERR_LocationComponent location : locations) + if (location.Kind() == ERR_LocationKind.PRISON) m_Center = location.Position(); + Move("1.5 0 -4"); + m_Step = 1; m_Wait = now + 1500; + return 0; + } + if (m_Step == 1) + { + if (!Arrived() || !escape.ProbeArmed(m_Player)) return 0; + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && m_Transitions == 0, "inside sample alone does not complete prison")) return -1; + IEntity gate = escape.Gate(); + BaseDoorComponent door = BaseDoorComponent.Cast(gate.FindComponent(BaseDoorComponent)); + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(gate.FindComponent(BaseActionsManagerComponent)); + array actions = {}; + if (manager) manager.GetActionsList(actions); + ERR_PrisonDoorAction guardedAction; + foreach (BaseUserAction action : actions) + { + ERR_PrisonDoorAction candidate = ERR_PrisonDoorAction.Cast(action); + if (candidate && candidate.GetOwner() == gate) guardedAction = candidate; + } + ERR_SiteRuntime prison = m_Mode.Sites().Find("everon-prison-1"); + array guards = {}; + if (prison && prison.Group) prison.Group.GetAgents(guards); + IEntity actualGuard; + foreach (AIAgent guard : guards) + if (guard && ERR_Actors.CanFight(guard.GetControlledEntity()) && !ERR_Actors.Player(guard.GetControlledEntity())) { actualGuard = guard.GetControlledEntity(); break; } + if (!Check(door && guardedAction && actualGuard && Math.AbsFloat(door.GetNormalizedDoorState()) < 0.01 && !door.IsOpening(), "actual intact gate is closed with successor door action and original living guard")) return -1; + if (!Check(!guardedAction.CanBePerformedScript(actualGuard) && !guardedAction.CanBePerformedScript(m_Player), "locked phase rejects both original AI and actual prisoner action permission")) return -1; + // Direct calls deliberately match SCR_AIOpenDoor's execution boundary. + // This is not autonomous AI navigation or a player held-input test. + guardedAction.PerformAction(gate, actualGuard); + guardedAction.PerformAction(gate, m_Player); + m_Step = 11; m_Wait = now + 1500; + return 0; + } + if (m_Step == 11) + { + IEntity gate = escape.Gate(); + BaseDoorComponent door; + if (gate) door = BaseDoorComponent.Cast(gate.FindComponent(BaseDoorComponent)); + if (!Check(door && !escape.GateLost() && Math.AbsFloat(door.GetNormalizedDoorState()) < 0.01 && !door.IsOpening() && m_Mode.Phase() == ERR_Phase.PRISON && m_Transitions == 0, "direct AI/player PerformAction cannot open locked native gate or advance progression")) return -1; + SCR_DestructionMultiPhaseComponent damage = SCR_DestructionMultiPhaseComponent.Cast(gate.FindComponent(SCR_DestructionMultiPhaseComponent)); + if (!Check(damage && damage.GetDefaultHitZone(), "actual gate has its inherited multiphase destruction component and hit zone")) return -1; + PrintFormat("ERR PRISON BREACH DAMAGE: health=%1 enabled=%2 threshold=%3", damage.GetHealth(), damage.IsDamageHandlingEnabled(), damage.GetTotalDestructionThreshold()); + vector hit[3]; hit[0] = gate.GetOrigin(); hit[1] = "0 0 1"; hit[2] = "0 0 -1"; + SCR_DamageContext context = new SCR_DamageContext(EDamageType.TRUE, 100000, hit, gate, damage.GetDefaultHitZone(), Instigator.CreateInstigator(m_Player), null, -1, -1); + damage.HandleDamage(context); + m_Step = 2; m_Wait = now + 1500; + return 0; + } + if (m_Step == 2) + { + if (!escape.GateLost()) return 0; + PrintFormat("ERR PRISON BREACH GATE: remaining=%1 lost=%2", escape.Gate(), escape.GateLost()); + ERR_PrisonEscapeService late = new ERR_PrisonEscapeService(m_Mode); + late.PhaseChanged(ERR_Phase.PREPARING, ERR_Phase.PRISON); + bool refusedLate = !late.Registered() && !late.GateLost(); + late.Stop(); + if (!Check(refusedLate, "fresh registration after native gate loss stays unregistered and cannot grant escape")) return -1; + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && m_Transitions == 0, "native gate destruction alone cannot advance the round")) return -1; + Move("1.5 0 -60"); + m_Step = 3; m_Wait = now + 2500; + return 0; + } + if (m_Step == 3) + { + if (!Arrived()) return 0; + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && !escape.ProbeArmed(m_Player), "actual far displacement is rejected and clears inside continuity")) return -1; + Move("1.5 0 -9"); + m_Step = 4; m_Wait = now + 2500; + return 0; + } + if (m_Step == 4) + { + if (!Arrived()) return 0; + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && !escape.ProbeArmed(m_Player), "outside-only arrival cannot finish prison")) return -1; + Move("1.5 0 -4"); + m_Step = 5; m_Wait = now + 1500; + return 0; + } + if (m_Step == 5) + { + if (!Arrived() || !escape.ProbeArmed(m_Player)) return 0; + Move("1.5 0 -9"); + m_Step = 6; m_Wait = now + 1500; + return 0; + } + if (m_Step == 6) + { + if (!Arrived() || m_Mode.Phase() == ERR_Phase.PRISON) return 0; + if (!Check(m_Mode.Phase() == ERR_Phase.RADIO_SEARCH && m_Transitions == 1, "bounded inside-to-outside crossing advances once through ordinary phase event")) return -1; + ERR_SiteRuntime first = m_Mode.Sites().Find("everon-supply-1"); + ERR_SiteRuntime second = m_Mode.Sites().Find("everon-supply-2"); + if (!Check(first && second && first.Location.Knowledge() == 2 && second.Location.Knowledge() == 2, "ordinary escape handlers reveal both scavenging sites")) return -1; + m_Step = 7; m_Wait = now + 2500; + return 0; + } + if (m_Step == 7) + { + if (!Check(m_Mode.Phase() == ERR_Phase.RADIO_SEARCH && m_Transitions == 1, "later production ticks do not repeat prison completion")) return -1; + Stop(); + m_Step = 8; + return 1; + } + return 1; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c new file mode 100644 index 0000000..8ac8bae --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c @@ -0,0 +1,210 @@ +#ifdef WORKBENCH +// One real controller plus eleven disposable physical characters. This probes +// native inventory and transfer compatibility, not twelve clients or UI pickup. +class ERR_NativePrisonerProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected ref array m_Actors = {}; + protected ref map m_Reservations = new map(); + protected ref ERR_SpawnPlacement m_Placement = new ERR_SpawnPlacement(); + protected ref map m_Expected = new map(); + protected ERR_SiteRuntime m_Cache; + protected InventoryStorageManagerComponent m_Source; + protected SCR_InventoryStorageManagerComponent m_Inventory; + protected IEntity m_Document; + protected vector m_Original[4]; + protected int m_Step; + protected int m_Checked; + protected float m_Wait; + void ERR_NativePrisonerProbe(ERR_GameMode mode, IEntity player) + { + m_Mode = mode; m_Player = player; + m_Expected.Set("Prefabs/Characters/HeadGear/Hat_Patrol_US_01/Hat_Patrol_US_01.et", 1); + m_Expected.Set("Prefabs/Characters/Uniforms/Jacket_US_BDU_rolledup.et", 1); + m_Expected.Set("Prefabs/Characters/Uniforms/Pants_US_BDU.et", 1); + m_Expected.Set("Prefabs/Characters/Footwear/CombatBoots_US_01.et", 1); + m_Expected.Set("Prefabs/Items/Equipment/Watches/Watch_SandY184A.et", 1); + m_Expected.Set("Prefabs/Items/Medicine/FieldDressing_01/FieldDressing_US_01.et", 2); + m_Expected.Set("Prefabs/Items/Medicine/Tourniquet_01/Tourniquet_US_01.et", 1); + m_Expected.Set("Prefabs/Items/Medicine/MorphineInjection_01/MorphineInjection_01.et", 1); + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: prisoner " + detail); return true; } + Print("ERR SMOKE FAIL: prisoner " + detail, LogLevel.ERROR); + Stop(); + return false; + } + protected void Positions(string stage) + { + foreach (int index, IEntity actor : m_Actors) + { + if (!actor) continue; + vector lower, upper; + actor.GetWorldBounds(lower, upper); + PrintFormat("ERR PRISONER POSITION: stage=%1 index=%2 requested=%3 actual=%4 boundsMin=%5 boundsMax=%6", stage, index, m_Reservations.Get(index), actor.GetOrigin(), lower, upper); + } + } + protected bool Kit(IEntity actor, int index) + { + if (!Check(actor && actor.GetPrefabData() && actor.GetPrefabData().GetPrefabName() == "{3FF693715C9F8928}Prefabs/ERR/Prisoner.et", "character " + index.ToString() + " uses successor resource")) return false; + if (!Check(actor.FindComponent(SCR_CharacterDamageManagerComponent) && actor.FindComponent(CharacterControllerComponent) && actor.FindComponent(SCR_SalineStorageComponent) && actor.FindComponent(SCR_TourniquetStorageComponent) && actor.FindComponent(CompartmentAccessComponent), "character " + index.ToString() + " retains vanilla health, treatment and vehicle components")) return false; + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(actor.FindComponent(InventoryStorageManagerComponent)); + if (!Check(inventory != null, "character inventory exists")) return false; + array items = {}; + inventory.GetItems(items); + map counts = new map(); + int identityItems; + array seen = {}; + foreach (IEntity item : items) + { + if (!item || !item.GetPrefabData()) return Check(false, "inventory item has no resource identity"); + ResourceName resource = item.GetPrefabData().GetPrefabName(); + PrintFormat("ERR PRISONER ITEM: actor=%1 item=%2 resource=%3 duplicateReference=%4", index, item, resource, seen.Contains(item)); + if (seen.Contains(item)) continue; + seen.Insert(item); + // Vanilla creates identification on possession, death or unconsciousness. + // Preserve this native identity record; it is not mission navigation equipment. + if (resource.EndsWith("Prefabs/Items/PersonalBelongings/PersonalBelongings_US.et")) + { + if (!Check(ERR_Actors.Player(actor) && item.FindComponent(SCR_IdentityInventoryItemComponent), "possessed prisoner retains native identification")) return false; + identityItems++; + continue; + } + // A non-equipment belt is authored by the rolled-up vanilla jacket itself. + if (resource.EndsWith("Prefabs/Characters/Vests/Vest_ALICE/Vest_ALICE_belt_dummy.et")) continue; + bool allowed = false; + foreach (string path, int expected : m_Expected) + { + if (!resource.EndsWith(path)) continue; + counts.Set(path, counts.Get(path) + 1); + allowed = true; + break; + } + if (!allowed) return Check(false, "unexpected starter inventory resource: " + resource); + } + int expectedIdentity; + if (ERR_Actors.Player(actor)) expectedIdentity = 1; + if (!Check(identityItems == expectedIdentity, "native identification is created exactly once for the possessed prisoner")) return false; + foreach (string path, int expected : m_Expected) + if (counts.Get(path) != expected) return Check(false, string.Format("character %1 expected %2 of %3, found %4", index, expected, path, counts.Get(path))); + PrintFormat("ERR PRISONER INVENTORY: character=%1 storedItems=%2", index, items.Count()); + return Check(true, "character " + index.ToString() + " has exact clothing/watch/medical kit and no inherited navigation, radio, binoculars, tools, flares or weapons"); + } + protected bool Contains(InventoryStorageManagerComponent inventory, IEntity item) + { + if (!inventory || !item) return false; + array items = {}; + inventory.GetItems(items); + return items.Contains(item); + } + void Stop() + { + // Return borrowed stock when its source still exists; never spawn replacements. + if (m_Document && m_Cache && m_Cache.Container && m_Inventory && Contains(m_Inventory, m_Document)) + { + BaseInventoryStorageComponent destination = BaseInventoryStorageComponent.Cast(m_Cache.Container.FindComponent(BaseInventoryStorageComponent)); + if (destination) m_Inventory.TryMoveItemToStorage(m_Document, destination); + } + for (int i = 1; i < m_Actors.Count(); i++) ERR_Actors.DeleteSpawned(m_Actors[i]); + m_Reservations.Clear(); + } + int Tick(float now) + { + if (now < m_Wait) return 0; + if (m_Step == 0) + { + if (!Check(m_Mode && m_Mode.Phase() == ERR_Phase.PRISON && ERR_Actors.Player(m_Player) && ERR_Actors.CanFight(m_Player), "fixture begins with a real conscious prisoner")) return -1; + m_Player.GetWorldTransform(m_Original); + m_Actors.Insert(m_Player); + m_Reservations.Set(0, m_Player.GetOrigin()); + Positions("initial"); + m_Step = 1; + m_Wait = now + 1000; + return 0; + } + if (m_Step == 1) + { + if (m_Actors.Count() < 12) + { + vector position; + bool available = m_Placement.Prison(m_Mode.PrisonPosition(), m_Reservations, position); + if (!available) Positions("no-clear-slot"); + if (!Check(available, "bounded clear prison slot exists for next test character")) return -1; + IEntity actor = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, position); + if (!Check(actor != null, "physical test prisoner created")) return -1; + m_Mode.Own(actor); + m_Reservations.Set(m_Actors.Count(), position); + m_Actors.Insert(actor); + DamageManagerComponent damage = DamageManagerComponent.Cast(actor.FindComponent(DamageManagerComponent)); + if (!Check(damage != null, "test prisoner damage component exists")) return -1; + damage.EnableDamageHandling(false); + m_Wait = now + 500; + return 0; + } + Positions("all-spawned"); + m_Step = 2; m_Wait = now + 1500; + return 0; + } + if (m_Step == 2) + { + if (m_Checked == 0) Positions("settled"); + if (!Kit(m_Actors[m_Checked], m_Checked)) return -1; + m_Checked++; + if (m_Checked < 12) return 0; + m_Cache = m_Mode.Sites().Find("everon-supply-1"); + if (!Check(m_Cache && m_Cache.Container, "authored clue source remains available")) return -1; + m_Source = InventoryStorageManagerComponent.Cast(m_Cache.Container.FindComponent(InventoryStorageManagerComponent)); + m_Inventory = SCR_InventoryStorageManagerComponent.Cast(m_Player.FindComponent(SCR_InventoryStorageManagerComponent)); + if (!Check(m_Source && m_Inventory, "source and player inventory managers are usable")) return -1; + array stock = {}; + m_Source.GetItems(stock); + foreach (IEntity item : stock) + { + ERR_DocumentComponent document = ERR_DocumentComponent.Cast(item.FindComponent(ERR_DocumentComponent)); + if (document && document.TargetId() == "everon-radio-1") { m_Document = item; break; } + } + if (!Check(m_Document && m_Inventory, "real finite radio document and player storage found")) return -1; + vector transform[4]; m_Player.GetWorldTransform(transform); + transform[3] = ERR_Actors.Ground(m_Cache.Container.GetOrigin() + "0 0 2"); + ChimeraCharacter.Cast(m_Player).Teleport(transform); + m_Step = 3; m_Wait = now + 1000; + return 0; + } + if (m_Step == 3) + { + BaseInventoryStorageComponent destination = m_Inventory.FindStorageForItem(m_Document); + if (!Check(destination && m_Source.TryMoveItemToStorage(m_Document, destination), "minimal starter clothing accepts a real authored clue transfer")) return -1; + m_Step = 4; m_Wait = now + 1000; + return 0; + } + if (m_Step == 4) + { + if (!Check(Contains(m_Inventory, m_Document) && !Contains(m_Source, m_Document) && m_Mode.Phase() == ERR_Phase.PRISON, "document physically moved without duplication while prison phase remains active")) return -1; + BaseInventoryStorageComponent destination = BaseInventoryStorageComponent.Cast(m_Cache.Container.FindComponent(BaseInventoryStorageComponent)); + if (!Check(destination && m_Inventory.TryMoveItemToStorage(m_Document, destination), "borrowed document returns to finite source")) return -1; + m_Step = 5; m_Wait = now + 1000; + return 0; + } + if (m_Step == 5) + { + if (!Check(Contains(m_Source, m_Document) && !Contains(m_Inventory, m_Document), "borrowed clue restored exactly once")) return -1; + Stop(); + ChimeraCharacter.Cast(m_Player).Teleport(m_Original); + m_Step = 6; m_Wait = now + 1000; + return 0; + } + if (m_Step == 6) + { + for (int i = 1; i < m_Actors.Count(); i++) + if (!Check(!m_Actors[i], "disposable prisoner removed after native cleanup")) return -1; + ERR_PlayerLife life = m_Mode.Players().Get(GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(m_Player)); + if (!Check(ERR_Actors.Player(m_Player) && ERR_Actors.Alive(m_Player) && life && life.UsedLife, "real prisoner and spent life preserved")) return -1; + m_Step = 7; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c new file mode 100644 index 0000000..37a91a2 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c @@ -0,0 +1,105 @@ +#ifdef WORKBENCH +// Synchronous roster-body fault injection against the real admitted controller. +// No disconnect, possession, account change, network event or native rebind is simulated. +class ERR_NativeProgressionIdentityProbe +{ + protected static ERR_GameMode s_Mode; + protected static IEntity s_Actor; + protected static bool s_DocumentAttempted; + protected static bool s_DocumentPassed; + protected static bool s_Failed; + static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: progression identity " + detail); return true; } + s_Failed = true; + Print("ERR SMOKE FAIL: progression identity " + detail, LogLevel.ERROR); + return false; + } + static bool Failed() { return s_Failed; } + static bool DocumentPassed() { return s_DocumentPassed; } + static void Stop() { s_Mode = null; s_Actor = null; } + static void BeginRound() { Stop(); s_DocumentAttempted = false; s_DocumentPassed = false; s_Failed = false; } + static bool Begin(ERR_GameMode mode, IEntity actor) + { + BeginRound(); + string enabled; + if (!Replication.IsServer() || !System.GetCLIParam("errBaseSmoke", enabled) || enabled != "1") return false; + if (!mode || !actor || !mode.Players()) return false; + ERR_PlayerLife life = mode.Players().CurrentActor(actor); + PlayerController controller = GetGame().GetPlayerController(); + if (!Check(life && controller && controller.GetControlledEntity() == actor && mode.Phase() == ERR_Phase.PRISON && ERR_Actors.CanFight(actor) && SCR_FactionManager.SGetFaction(actor) == mode.PlayerFaction() && vector.DistanceXZ(actor.GetOrigin(), mode.PrisonPosition()) < 5, "actual local conscious prisoner is canonical and inside lock range")) return false; + IEntity savedActor = life.Actor; + UUID savedIdentity = life.AccountId; + int savedConnection = life.ConnectionId; + bool savedConnected = life.Connected; + bool savedUsedLife = life.UsedLife; + // No callback, assertion, early return or yield between mutation and restore. + life.Actor = null; + bool nativeRosterRefused = mode.Players().CurrentActor(actor) == null; + bool refused = !mode.UnlockPrison(actor); + life.Actor = savedActor; + if (!Check(nativeRosterRefused && refused && mode.Phase() == ERR_Phase.PRISON, "synchronous body-mismatch fault injection rejects normal prison unlock without progression")) return false; + if (!Check(mode.Players().CurrentActor(actor) == life && controller.GetControlledEntity() == savedActor && life.AccountId == savedIdentity && life.ConnectionId == savedConnection && life.Connected == savedConnected && life.UsedLife == savedUsedLife, "exact actor, account, connection and used-life state restored before assertions")) return false; + s_Mode = mode; s_Actor = actor; + Print("ERR IDENTITY FIXTURE LIMIT: synchronous roster Actor=null fault injection, immediately restored; no actual possession, reconnect, foreign faction or multiplayer test"); + return true; + } + static bool WantsDocument(ERR_GameMode mode, IEntity actor) + { + return !s_Failed && !s_DocumentAttempted && mode && mode == s_Mode && actor == s_Actor; + } + static void AttemptDocument() { s_DocumentAttempted = true; } + static void CompleteDocument(bool success) { s_DocumentPassed = success; } +} + +modded class ERR_DiscoveryService +{ + protected override void Recover(IEntity player) + { + if (!ERR_NativeProgressionIdentityProbe.WantsDocument(m_Mode, player)) { super.Recover(player); return; } + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(player.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) { super.Recover(player); return; } + array folders = {}; Folders(inventory, folders); + array locations = {}; m_Mode.Locations(locations); + IEntity candidate; + ERR_LocationComponent target; + foreach (IEntity folder : folders) + { + if (!folder || m_Spent.Contains(folder) || m_Spent.Count() >= 4096) continue; + InventoryItemComponent item = InventoryItemComponent.Cast(folder.FindComponent(InventoryItemComponent)); + ERR_DocumentComponent document = ERR_DocumentComponent.Cast(folder.FindComponent(ERR_DocumentComponent)); + if (!item || !item.GetParentSlot() || !item.GetParentSlot().GetStorage() || !item.GetParentSlot().GetStorage().Contains(folder) || !document) continue; + foreach (ERR_LocationComponent location : locations) + if (location && location.Id() == document.TargetId() && location.Knowledge() < 2) { candidate = folder; target = location; break; } + if (candidate) break; + } + if (!candidate) { super.Recover(player); return; } + ERR_NativeProgressionIdentityProbe.AttemptDocument(); + ERR_PlayerLife life = m_Mode.Players().CurrentActor(player); + PlayerController controller = GetGame().GetPlayerController(); + if (!ERR_NativeProgressionIdentityProbe.Check(life && controller && controller.GetControlledEntity() == player && ERR_Actors.Alive(player) && SCR_FactionManager.SGetFaction(player) == m_Mode.PlayerFaction(), "real held unspent targeted document has an eligible unidentified site and canonical carrier")) return; + array knowledge = {}; + foreach (ERR_LocationComponent location : locations) knowledge.Insert(location.Knowledge()); + int spent = m_Spent.Count(); + int previousKnowledge = target.Knowledge(); + IEntity savedActor = life.Actor; + UUID savedIdentity = life.AccountId; + int savedConnection = life.ConnectionId; + bool savedConnected = life.Connected; + bool savedUsedLife = life.UsedLife; + // Call the actual production implementation directly: no recursion into this + // hook. Restore synchronously before any check, positive call or return. + life.Actor = null; + super.Recover(player); + life.Actor = savedActor; + bool unchanged = m_Spent.Count() == spent && !m_Spent.Contains(candidate); + for (int index = 0; index < locations.Count(); index++) + if (!locations[index] || locations[index].Knowledge() != knowledge[index]) unchanged = false; + if (!ERR_NativeProgressionIdentityProbe.Check(unchanged, "synchronous body-mismatch fault injection neither spends the held document nor changes any discovery knowledge")) return; + if (!ERR_NativeProgressionIdentityProbe.Check(m_Mode.Players().CurrentActor(player) == life && controller.GetControlledEntity() == savedActor && life.AccountId == savedIdentity && life.ConnectionId == savedConnection && life.Connected == savedConnected && life.UsedLife == savedUsedLife, "document rejection restores exact canonical actor and unchanged used-life identity before normal recovery")) return; + super.Recover(player); + bool recovered = m_Spent.Contains(candidate) && m_Spent.Count() > spent && target.Knowledge() > previousKnowledge; + ERR_NativeProgressionIdentityProbe.CompleteDocument(ERR_NativeProgressionIdentityProbe.Check(recovered, "immediately restored ordinary recovery spends the same actual document and advances its target")); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c new file mode 100644 index 0000000..cd2c545 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c @@ -0,0 +1,367 @@ +#ifdef WORKBENCH +// Only connection membership is simulated for the second character. Native +// actor mutations settle on later frames; isolated service timestamps stay exact. +class ERR_NativeRadioSample : ERR_RadioDefenceService +{ + ref array Members = {}; + int Connections = 2; + void ERR_NativeRadioSample(ERR_GameMode mode) { m_Mode = mode; } + protected override bool IsPlayer(IEntity actor) { return Members.Contains(actor); } + protected override int ConnectedPlayers() { return Connections; } + protected override void Players(out array players) { players.Copy(Members); } +} +class ERR_NativeRadioDefenceProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected IEntity m_Second; + protected ERR_LocationComponent m_Radio; + protected FactionAffiliationComponent m_Affiliation; + protected ref ERR_NativeRadioSample m_Service; + protected ref ERR_RadioDefenceService m_Authoritative; + protected int m_Starts; + protected int m_Completions; + protected int m_Changes; + protected int m_OriginalDuration; + protected vector m_Original[4]; + protected bool m_OriginalUnconscious; + protected bool m_Snapshot; + protected bool m_SettingsChanged; + protected bool m_Restored; + protected bool m_RestoreSucceeded; + protected int m_Step; + protected int m_Result; + protected float m_Wait; + protected float m_StateDeadline; + protected float m_NextStateDiagnostic; + + void ERR_NativeRadioDefenceProbe(ERR_GameMode mode, IEntity player, ERR_LocationComponent radio) + { + m_Mode = mode; m_Player = player; m_Radio = radio; + } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: radio service " + detail); return true; } + Print("ERR SMOKE FAIL: radio service " + detail, LogLevel.ERROR); + m_Result = -1; + Restore(); + return false; + } + protected void Started(ERR_LocationComponent location) { m_Starts++; } + protected void Changed(ERR_RadioDefenceService service) { m_Changes++; } + protected void Completed(ERR_LocationComponent location) + { + m_Completions++; + m_Service.Tick(1000000); // Re-entrant observer cannot complete twice. + } + protected void Move(IEntity actor, vector position) + { + vector transform[4]; actor.GetWorldTransform(transform); + transform[3] = ERR_Actors.Ground(position); + ChimeraCharacter.Cast(actor).Teleport(transform); + } + protected void Conscious(IEntity actor, bool value) + { + CharacterControllerComponent.Cast(actor.FindComponent(CharacterControllerComponent)).SetUnconscious(!value); + } + protected float Distance(string label) + { + float distance = vector.DistanceXZ(m_Player.GetOrigin(), m_Radio.Position()); + PrintFormat("ERR RADIO POSITION: %1 actor=%2 radio=%3 distanceXZ=%4", label, m_Player.GetOrigin(), m_Radio.Position(), distance); + return distance; + } + protected void WaitFor(int step, float now) + { + m_Step = step; + m_Wait = now + 750; + m_StateDeadline = now + 12000; + m_NextStateDiagnostic = now; + } + protected void RecoveryDiagnostic(IEntity actor, string label) + { + CharacterControllerComponent controller; + if (actor) controller = CharacterControllerComponent.Cast(actor.FindComponent(CharacterControllerComponent)); + int unconscious = -1; + int lifeState = -1; + if (controller) + { + unconscious = controller.IsUnconscious(); + lifeState = controller.GetLifeState(); + } + PrintFormat("ERR RADIO RECOVERY: %1 step=%2 alive=%3 canFight=%4 unconscious=%5 lifeState=%6 origin=%7", label, m_Step, ERR_Actors.Alive(actor), ERR_Actors.CanFight(actor), unconscious, lifeState, actor.GetOrigin()); + } + // Native recovery includes controller/ragdoll state transitions beyond one + // frame. Poll the observed state without reissuing SetUnconscious or altering + // health. Dead/missing actors fail immediately; delayed recovery has a bound. + protected bool Recovered(IEntity actor, float now, string label) + { + if (!actor || !ERR_Actors.Alive(actor)) + { + Check(false, label + " lost its living actor during recovery"); + return false; + } + if (ERR_Actors.CanFight(actor)) + { + RecoveryDiagnostic(actor, label + " ready"); + return true; + } + if (now >= m_NextStateDiagnostic) + { + RecoveryDiagnostic(actor, label + " waiting"); + m_NextStateDiagnostic = now + 1000; + } + if (now >= m_StateDeadline) + { + Check(false, label + " did not regain conscious native state within twelve seconds"); + return false; + } + m_Wait = now + 250; + return false; + } + protected void AuthorizationDiagnostic() + { + int id = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(m_Player); + ERR_PlayerLife life = m_Mode.Players().Get(id); + bool connected = life && life.Connected; + bool usedLife = life && life.UsedLife; + bool sameActor = life && life.Actor == m_Player; + bool friendly = m_Mode.PlayerFaction() && SCR_FactionManager.SGetFaction(m_Player) == m_Mode.PlayerFaction(); + PrintFormat("ERR RADIO AUTH: active=%1 phase=%2 registered=%3 kind=%4 knowledge=%5 serviceState=%6 distance=%7", m_Mode.Active(), m_Mode.Phase(), m_Mode.HasLocation(m_Radio), m_Radio.Kind(), m_Radio.Knowledge(), m_Authoritative.State(), vector.DistanceXZ(m_Player.GetOrigin(), m_Radio.Position())); + PrintFormat("ERR RADIO AUTH: playerId=%1 connected=%2 usedLife=%3 sameActor=%4 friendly=%5 canFight=%6 canBegin=%7", id, connected, usedLife, sameActor, friendly, ERR_Actors.CanFight(m_Player), m_Authoritative.CanBegin(m_Player, m_Radio)); + } + protected void Restore() + { + if (m_Restored) return; + m_Restored = true; + m_RestoreSucceeded = true; + if (m_Service) + { + m_Service.OnStarted().Remove(Started); + m_Service.OnProgressChanged().Remove(Changed); + m_Service.OnCompleted().Remove(Completed); + m_Service.Stop(); + } + if (m_Authoritative) m_Authoritative.Stop(); + if (!GetGame() || !Replication.IsServer()) return; + if (m_SettingsChanged && m_Mode && m_Mode.Settings()) + m_RestoreSucceeded = m_Mode.Settings().Set("radioDefenceSeconds", m_OriginalDuration); + if (m_Snapshot && m_Player) + { + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Player.FindComponent(CharacterControllerComponent)); + ChimeraCharacter character = ChimeraCharacter.Cast(m_Player); + if (controller && character && ERR_Actors.Alive(m_Player)) + { + controller.SetUnconscious(m_OriginalUnconscious); + character.Teleport(m_Original); + } + else m_RestoreSucceeded = false; + } + ERR_Actors.DeleteSpawned(m_Second); + m_Second = null; + } + // The parent must call this on cancellation/fixture timeout as well as failure. + // No fixture-owned callqueue is installed; no later mutation runs after Stop. + void Stop() + { + if (m_Result == 0) m_Result = -1; + Restore(); + } + int Tick(float now) + { + if (m_Result != 0) return m_Result; + if (now < m_Wait) return 0; + if (!Replication.IsServer() || !m_Mode || !m_Player || !m_Radio || !m_Mode.Settings()) + { + Check(false, "async fixture lost authoritative mission/player/radio"); + return -1; + } + if (m_Step == 0) + { + if (!Check(m_Mode.Phase() == ERR_Phase.RADIO_SEARCH && m_Radio.Knowledge() == 2 && ERR_Actors.Player(m_Player), "identified radio and real controlled prisoner available")) return -1; + m_OriginalDuration = m_Mode.Settings().Get("radioDefenceSeconds"); + m_Player.GetWorldTransform(m_Original); + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Player.FindComponent(CharacterControllerComponent)); + if (!Check(controller && ChimeraCharacter.Cast(m_Player), "controlled prisoner supports native state restoration")) return -1; + m_OriginalUnconscious = controller.IsUnconscious(); + m_Snapshot = true; + if (!Check(m_Mode.Settings().Set("radioDefenceSeconds", 30), "isolated thirty-second duration saved")) return -1; + m_SettingsChanged = true; + m_Second = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, ERR_Actors.Ground(m_Radio.Position() + "-2 0 0")); + if (!Check(m_Second != null, "second physical defender spawned")) return -1; + m_Mode.Own(m_Second); + DamageManagerComponent.Cast(m_Second.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + WaitFor(1, now); + return 0; + } + if (m_Step == 1) + { + if (!Check(ERR_Actors.CanFight(m_Second), "second physical defender settles with simulated connection membership")) return -1; + m_Authoritative = new ERR_RadioDefenceService(m_Mode); + if (!Check(!m_Authoritative.Begin(m_Second, m_Radio), "ordinary AI cannot tune even while alive and nearby")) return -1; + if (!Check(!m_Authoritative.Begin(m_Player, null), "missing radio rejected")) return -1; + Move(m_Player, m_Radio.Position() + "6 0 0"); + WaitFor(2, now); + return 0; + } + if (m_Step == 2) + { + if (!Check(Distance("outside tuning range after deferred teleport") > 5 && !m_Authoritative.Begin(m_Player, m_Radio), "tuning outside five metres rejected")) return -1; + Move(m_Player, m_Radio.Position() + "2 0 0"); + Conscious(m_Player, false); + WaitFor(3, now); + return 0; + } + if (m_Step == 3) + { + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Player.FindComponent(CharacterControllerComponent)); + if (!Check(Distance("unconscious tuning range after deferred teleport") <= 5 && controller.IsUnconscious() && !m_Authoritative.Begin(m_Player, m_Radio), "unconscious prisoner cannot tune")) return -1; + Conscious(m_Player, true); + WaitFor(4, now); + return 0; + } + if (m_Step == 4) + { + if (!Recovered(m_Player, now, "tuning prisoner")) return m_Result; + AuthorizationDiagnostic(); + m_Service = new ERR_NativeRadioSample(m_Mode); + if (!Check(ERR_Actors.CanFight(m_Player) && m_Authoritative.CanBegin(m_Player, m_Radio), "registered friendly conscious prisoner remains authorized")) return -1; + if (!Check(!m_Service.Begin(m_Player, m_Radio), "unregistered defender cannot start the isolated service")) return -1; + m_Service.Members.Insert(m_Player); m_Service.Members.Insert(m_Second); + m_Affiliation = FactionAffiliationComponent.Cast(m_Second.FindComponent(FactionAffiliationComponent)); + if (!Check(m_Affiliation != null, "physical defender has native faction affiliation")) return -1; + m_Affiliation.SetAffiliatedFaction(m_Mode.EnemyFaction()); + WaitFor(5, now); + return 0; + } + if (m_Step == 5) + { + if (!Check(SCR_FactionManager.SGetFaction(m_Second) == m_Mode.EnemyFaction() && !m_Service.Begin(m_Second, m_Radio), "hostile controlled defender cannot tune")) return -1; + m_Affiliation.SetAffiliatedFaction(m_Mode.PlayerFaction()); + WaitFor(6, now); + return 0; + } + if (m_Step == 6) + { + m_Service.OnStarted().Insert(Started); + m_Service.OnProgressChanged().Insert(Changed); + m_Service.OnCompleted().Insert(Completed); + if (!Check(m_Service.Begin(m_Player, m_Radio) && !m_Service.Begin(m_Player, m_Radio) && m_Starts == 1, "start event emitted once and duplicate start rejected")) return -1; + m_Service.Tick(1000); + if (!Check(m_Service.DefenderCount() == 2 && m_Service.Since() == 1000 && m_Service.Occupied(), "two conscious physical defenders share one timer")) return -1; + m_Affiliation.SetAffiliatedFaction(m_Mode.EnemyFaction()); + WaitFor(7, now); + return 0; + } + if (m_Step == 7) + { + m_Service.Tick(1500); + if (!Check(!m_Service.CanDefend(m_Second) && m_Service.DefenderCount() == 1 && m_Service.Since() == 1000, "hostile actor cannot defend even with simulated connection membership")) return -1; + m_Affiliation.SetAffiliatedFaction(m_Mode.PlayerFaction()); + WaitFor(8, now); + return 0; + } + if (m_Step == 8) + { + m_Service.Tick(1600); + int changed = m_Changes; + m_Service.Tick(6000); + if (!Check(m_Service.SecondsRemaining(6000) == 25 && m_Changes == changed, "elapsed countdown does not emit redundant progress events")) return -1; + Conscious(m_Player, false); + WaitFor(9, now); + return 0; + } + if (m_Step == 9) + { + m_Service.Tick(7000); + if (!Check(m_Service.DefenderCount() == 1 && m_Service.Since() == 1000, "second defender preserves progress while first is unconscious")) return -1; + Conscious(m_Second, false); + WaitFor(10, now); + return 0; + } + if (m_Step == 10) + { + m_Service.Tick(8000); + if (!Check(!m_Service.Occupied() && m_Service.Since() == -1 && m_Service.SecondsRemaining(8000) == 30, "all unconscious defenders reset accumulated time")) return -1; + Conscious(m_Player, true); + WaitFor(11, now); + return 0; + } + if (m_Step == 11) + { + if (!Recovered(m_Player, now, "first defender")) return m_Result; + m_Service.Tick(9000); + if (!Check(m_Service.DefenderCount() == 1 && m_Service.Since() == 9000, "conscious recovery starts a fresh continuous interval")) return -1; + Conscious(m_Second, true); + WaitFor(12, now); + return 0; + } + if (m_Step == 12) + { + if (!Recovered(m_Second, now, "second defender")) return m_Result; + m_Service.Tick(10000); + m_Service.Connections = 0; m_Service.Tick(11000); + if (!Check(m_Service.DefenderCount() == 0 && !m_Service.Occupied(), "empty server resets despite remaining character bodies")) return -1; + m_Service.Connections = 2; m_Service.Tick(12000); + Move(m_Player, m_Radio.Position() + "60.5 0 0"); + WaitFor(13, now); + return 0; + } + if (m_Step == 13) + { + m_Service.Tick(13000); + if (!Check(Distance("outside defence radius after deferred teleport") >= 60 && !m_Service.CanDefend(m_Player) && m_Service.DefenderCount() == 1 && m_Service.Since() == 12000, "outside sixty metres excludes first defender without resetting second")) return -1; + DamageManagerComponent damage = DamageManagerComponent.Cast(m_Second.FindComponent(DamageManagerComponent)); + damage.EnableDamageHandling(true); + SCR_CharacterDamageManagerComponent.Cast(damage).Kill(Instigator.CreateInstigator(m_Second)); + WaitFor(14, now); + return 0; + } + if (m_Step == 14) + { + m_Service.Tick(14000); + if (!Check(!ERR_Actors.Alive(m_Second) && !m_Service.CanDefend(m_Second) && !m_Service.Occupied(), "dead defender cannot maintain transmission")) return -1; + Move(m_Player, m_Radio.Position() + "2 0 0"); + WaitFor(15, now); + return 0; + } + if (m_Step == 15) + { + if (!Check(Distance("returned to radio after deferred teleport") <= 5 && ERR_Actors.CanFight(m_Player), "survivor returns physically before final transmission samples")) return -1; + m_Service.Tick(15000); + if (!Check(m_Mode.Settings().Set("radioDefenceSeconds", 45), "live duration increase saved")) return -1; + m_Service.Tick(45000); + if (!Check(m_Service.State() == ERR_RadioDefenceState.DEFENDING && m_Service.Since() == 15000 && m_Service.SecondsRemaining(45000) == 15, "live duration increase preserves accumulated occupancy")) return -1; + if (!Check(m_Mode.Settings().Set("radioDefenceSeconds", 30), "live duration reduction saved")) return -1; + m_Service.Tick(45000); + if (!Check(m_Service.State() == ERR_RadioDefenceState.COMPLETED && m_Completions == 1 && m_Service.SecondsRemaining(45000) == 0, "live duration reduction completes at exact continuous boundary")) return -1; + m_Service.Tick(46000); m_Service.Stop(); m_Service.Tick(47000); + if (!Check(m_Completions == 1 && !m_Service.Begin(m_Player, m_Radio), "completed service cannot restart or emit duplicate completion after stop")) return -1; + ERR_NativeRadioSample stopped = new ERR_NativeRadioSample(m_Mode); + stopped.Members.Insert(m_Player); stopped.OnCompleted().Insert(Completed); + if (!Check(stopped.Begin(m_Player, m_Radio), "isolated cancellation service begins")) return -1; + stopped.Tick(1000); stopped.Stop(); stopped.Stop(); stopped.Tick(60000); + if (!Check(stopped.State() == ERR_RadioDefenceState.STOPPED && !stopped.Occupied() && m_Completions == 1 && !stopped.Begin(m_Player, m_Radio), "stop cancels progress and future starts without completing")) return -1; + ERR_NativeRadioSample terminal = new ERR_NativeRadioSample(m_Mode); + terminal.Members.Insert(m_Player); terminal.OnCompleted().Insert(Completed); + if (!Check(terminal.Begin(m_Player, m_Radio), "isolated terminal-phase service begins")) return -1; + terminal.Tick(1000); terminal.PhaseChanged(ERR_Phase.RADIO_DEFENCE, ERR_Phase.DEFEAT); terminal.Tick(60000); + if (!Check(terminal.State() == ERR_RadioDefenceState.STOPPED && m_Completions == 1, "terminal phase event prevents later completion")) return -1; + if (!Check(m_Mode.Phase() == ERR_Phase.RADIO_SEARCH && m_Mode.RadioDefence().State() == ERR_RadioDefenceState.IDLE, "isolated event tests leave live objective ready for normal tuning")) return -1; + Restore(); + WaitFor(90, now); + return 0; + } + if (m_Step == 90) + { + if (!m_OriginalUnconscious && !Recovered(m_Player, now, "restored prisoner")) return m_Result; + CharacterControllerComponent controller = CharacterControllerComponent.Cast(m_Player.FindComponent(CharacterControllerComponent)); + PrintFormat("ERR RADIO RESTORE: actual=%1 original=%2 distance=%3", m_Player.GetOrigin(), m_Original[3], vector.Distance(m_Player.GetOrigin(), m_Original[3])); + if (!Check(m_RestoreSucceeded && m_Mode.Settings().Get("radioDefenceSeconds") == m_OriginalDuration && controller.IsUnconscious() == m_OriginalUnconscious && vector.Distance(m_Player.GetOrigin(), m_Original[3]) < 1.5, "isolated test restores live duration and physical player state after a world frame")) return -1; + m_Result = 1; + return 1; + } + Check(false, "unknown asynchronous fixture step"); + return -1; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c new file mode 100644 index 0000000..7ebba2c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c @@ -0,0 +1,96 @@ +#ifdef WORKBENCH +class ERR_NativeRecoveryProbe +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Player; + protected CharacterControllerComponent m_Controller; + protected float m_Wait; + protected float m_RecoveryDeadline; + protected bool m_Stopped; + protected bool m_ChangedConsciousness; + protected bool m_InitiallyUnconscious; + protected int m_Step; + protected int m_Changes; + void ERR_NativeRecoveryProbe(ERR_GameMode mode, IEntity player) + { + m_Mode = mode; m_Player = player; + m_Controller = CharacterControllerComponent.Cast(player.FindComponent(CharacterControllerComponent)); + if (m_Controller) m_InitiallyUnconscious = m_Controller.IsUnconscious(); + mode.Recovery().OnChanged().Insert(Changed); + mode.OnStop().Insert(Stop); + } + protected void Changed(string message) { m_Changes++; } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_Mode) m_Mode.OnStop().Remove(Stop); + if (m_Mode && m_Mode.Recovery()) m_Mode.Recovery().OnChanged().Remove(Changed); + if (m_ChangedConsciousness && m_Controller && ERR_Actors.Alive(m_Player)) m_Controller.SetUnconscious(m_InitiallyUnconscious); + } + protected bool Check(bool ok, string detail) + { + if (ok) { Print("ERR SMOKE PASS: recovery " + detail); return true; } + Stop(); + Print("ERR SMOKE FAIL: recovery " + detail, LogLevel.ERROR); + return false; + } + int Tick(float now) + { + if (m_Stopped) return -1; + if (now < m_Wait) return 0; + if (m_Step == 0) + { + m_Mode.Recovery().Tick(); + if (!Check(m_Controller && m_Mode.Recovery().Conscious() == 1 && m_Mode.RecoveryStatus().IsEmpty(), "real conscious prisoner is available without recovery warning")) return -1; + array replies = {}; + m_Mode.Admin().Execute(m_Mode, false, "mission abandon", replies); + if (!Check(replies.Count() == 1 && replies[0].Contains("Administrator") && m_Mode.Phase() == ERR_Phase.PRISON && m_Mode.EndReason().IsEmpty(), "unauthorized abandonment leaves round and result intact")) return -1; + m_Mode.Admin().Execute(m_Mode, true, "mission abandon now", replies); + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && m_Mode.EndReason().IsEmpty(), "malformed abandonment does not end a round")) return -1; + m_ChangedConsciousness = true; + m_Controller.SetUnconscious(true); + m_Step = 1; m_Wait = now + 1000; + return 0; + } + if (m_Step == 1) + { + m_Mode.Recovery().Tick(); + if (!Check(ERR_Actors.Alive(m_Player) && !ERR_Actors.CanFight(m_Player) && m_Mode.Recovery().Incapacitated() == 1 && m_Mode.Recovery().Conscious() == 0, "native unconscious prisoner is counted as incapacitated, not dead")) return -1; + if (!Check(m_Mode.RecoveryStatus().Contains("No conscious prisoner") && m_Mode.Status().Contains("mission abandon") && ERR_ObjectiveText.Description(m_Mode).Contains(m_Mode.RecoveryStatus()), "server status and native objective copy explain the recovery state")) return -1; + if (!Check(m_Changes == 1, "recovery state publishes exactly one change")) return -1; + m_Mode.Recovery().Tick(); + if (!Check(m_Changes == 1, "unchanged sampling emits no duplicate recovery event")) return -1; + m_Step = 2; m_Wait = now + 35000; + return 0; + } + if (m_Step == 2) + { + if (!Check(m_Mode.Phase() == ERR_Phase.PRISON && ERR_Actors.Alive(m_Player) && !ERR_Actors.CanFight(m_Player) && m_Mode.Players().HasSurvivor(), "all-incapacitated player survives beyond ordinary defeat grace")) return -1; + m_Controller.SetUnconscious(false); + m_RecoveryDeadline = now + 12000; + m_Step = 3; m_Wait = now + 1000; + return 0; + } + if (m_Step == 3) + { + if (!ERR_Actors.CanFight(m_Player) && now < m_RecoveryDeadline) return 0; + m_Mode.Recovery().Tick(); + if (!Check(ERR_Actors.CanFight(m_Player) && m_Mode.RecoveryStatus().IsEmpty() && m_Mode.Recovery().Conscious() == 1 && m_Changes == 2, "native recovery clears the warning once")) return -1; + int id = GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(m_Player); + ERR_PlayerLife life = m_Mode.Players().Get(id); + if (!Check(life && life.UsedLife && life.Actor == m_Player, "recovery preserves original actor and spent life")) return -1; + m_Controller.SetUnconscious(true); + m_Step = 4; m_Wait = now + 1000; + return 0; + } + if (m_Step == 4) + { + m_Mode.Recovery().Tick(); + if (!Check(!m_Mode.RecoveryStatus().IsEmpty() && m_Changes == 3, "second incapacitation restores warning before abandonment")) return -1; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c new file mode 100644 index 0000000..b664226 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c @@ -0,0 +1,68 @@ +#ifdef WORKBENCH +// Local controller and native presentation provider; no network clients are +// simulated. The extraction snapshot was produced by real occupied seats. +class ERR_NativeResultProbe +{ + protected static Widget s_Content; + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: result " + detail); return true; } + if (s_Content) s_Content.RemoveFromHierarchy(); + s_Content = null; + Print("ERR SMOKE FAIL: result " + detail, LogLevel.ERROR); + return false; + } + protected static bool NativeText(string title, string debrief) + { + if (!s_Content) return false; + TextWidget titleWidget = TextWidget.Cast(s_Content.FindAnyWidget("GameOver_State")); + TextWidget debriefWidget = TextWidget.Cast(s_Content.FindAnyWidget("GameOver_Description")); + return titleWidget && debriefWidget && titleWidget.GetText() == title && debriefWidget.GetText() == debrief; + } + static bool Run(ERR_ExtractionService extraction, UUID escapedAccount, UUID missedAccount) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!Check(controller && extraction && extraction.State() == ERR_ExtractionState.ESCAPED, "local controller and physical extraction snapshot exist")) return false; + int playerId = controller.GetPlayerId(); + ERR_EscapeGameOverScreenInfo info = new ERR_EscapeGameOverScreenInfo(); + array staleIds = {playerId}; + SCR_GameModeEndData staleData = SCR_GameModeEndData.Create(EGameOverTypes.VICTORY, staleIds); + array copiedIds = {}; + staleData.GetWinnerIds(copiedIds); + controller.ERR_ResetEscapeResult(); + if (!Check(controller.ERR_EscapeResult() == ERR_PersonalEscapeResult.UNKNOWN && info.GetTitle(playerId, copiedIds) == "The helicopter escaped", "unknown controller ignores stale native end-data winner ID")) return false; + ResourceName layout = "{C4507D07F3C54831}UI/layouts/HUD/GameOver/EndScreen/EndScreenContent_NoImage.layout"; + s_Content = GetGame().GetWorkspace().CreateWidgets(layout); + if (!Check(s_Content != null, "native result content widgets created")) return false; + s_Content.SetVisible(false); + SCR_GameOverScreenContentUIComponent contentHandler = SCR_GameOverScreenContentUIComponent.Cast(s_Content.FindHandler(SCR_GameOverScreenContentUIComponent)); + if (!Check(contentHandler != null, "native result content handler attached")) return false; + SCR_GameOverScreenUIContentData content = new SCR_GameOverScreenUIContentData(layout, info, staleData, "STALE WINNER", string.Empty, "STALE DEBRIEF", ResourceName.Empty, ResourceName.Empty, null, string.Empty, string.Empty, string.Empty); + contentHandler.InitContent(content); + if (!Check(NativeText("The helicopter escaped", "Your personal escape result is not available."), "opened native content ignores a stale winner while personal result is unknown")) return false; + ERR_PlayerRoster roster = new ERR_PlayerRoster(); + if (!Check(roster.Bind(playerId, escapedAccount), "isolated presentation account binds to local controller ID")) return false; + roster.Spawned(playerId, controller.GetControlledEntity()); + controller.ERR_PublishEscapeResult(roster, extraction); + array noWinners = {}; + if (!Check(controller.ERR_EscapeResult() == ERR_PersonalEscapeResult.ESCAPED && info.GetTitle(playerId, noWinners) == "You escaped Everon", "identity snapshot publishes victory despite missing end-data ID")) return false; + if (!Check(NativeText("You escaped Everon", "You crossed the extraction boundary aboard the helicopter."), "already-open native content refreshes when personal victory arrives")) return false; + if (!Check(roster.Bind(playerId, missedAccount), "local presentation connection ID is recycled to non-escapee")) return false; + roster.Spawned(playerId, controller.GetControlledEntity()); + controller.ERR_PublishEscapeResult(roster, extraction); + if (!Check(controller.ERR_EscapeResult() == ERR_PersonalEscapeResult.MISSED && info.GetTitle(playerId, copiedIds) == "The helicopter escaped" && info.GetDebriefing(playerId, copiedIds) == "You did not escape with the helicopter.", "recycled winner ID cannot grant escape or misdescribe dead occupants")) return false; + if (!Check(NativeText("The helicopter escaped", "You did not escape with the helicopter."), "native text refresh removes the previous account's win")) return false; + if (!Check(roster.Bind(playerId, escapedAccount), "escaped presentation account returns after simulated rebind")) return false; + controller.ERR_PublishEscapeResult(roster, extraction); + if (!Check(info.GetTitle(playerId, noWinners) == "You escaped Everon", "presentation follows returning account rather than copied end data")) return false; + controller.ERR_ResetEscapeResult(); + if (!Check(controller.ERR_EscapeResult() == ERR_PersonalEscapeResult.UNKNOWN && info.GetTitle(playerId, copiedIds) == "The helicopter escaped", "round reset clears personal result despite stale winner ID")) return false; + if (!Check(NativeText("The helicopter escaped", "Your personal escape result is not available."), "round reset clears the open native result text")) return false; + s_Content.RemoveFromHierarchy(); + s_Content = null; + ERR_GameMode mode = ERR_GameMode.Get(); + controller.ERR_PublishEscapeResult(mode.Players(), mode.Extraction()); + return true; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c new file mode 100644 index 0000000..d171845 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c @@ -0,0 +1,58 @@ +#ifdef WORKBENCH +// Read-only spatial survey of new authored site candidates. No world edits. +class ERR_NativeSiteSurvey +{ + protected bool m_Blocked; + protected string m_Obstacle; + protected bool Obstacle(IEntity entity) + { + if (entity && entity.GetVObject()) + { + m_Blocked = true; + m_Obstacle = entity.ToString(); + if (entity.GetPrefabData()) m_Obstacle = entity.GetPrefabData().GetPrefabName(); + } + return !m_Blocked; + } + void Area(string name, vector center) + { + int found, slopes, blocked; + float best = 10000; + for (int x = -80; x <= 80; x += 20) + for (int z = -80; z <= 80; z += 20) + { + vector position = ERR_Actors.Ground(center + Vector(x, 0, z)); + float low = 10000; + float high = -10000; + for (int dx = -2; dx <= 2; dx += 2) + for (int dz = -2; dz <= 2; dz += 2) + { + float height = GetGame().GetWorld().GetSurfaceY(position[0] + dx, position[2] + dz); + low = Math.Min(low, height); + high = Math.Max(high, height); + } + best = Math.Min(best, high-low); + if (low < 1 || high - low > 1.2) { slopes++; continue; } + m_Blocked = false; + GetGame().GetWorld().QueryEntitiesByAABB(Vector(position[0]-1.3, low+0.1, position[2]-1.3), Vector(position[0]+1.3, high+2, position[2]+1.3), Obstacle); + if (m_Blocked) + { + blocked++; + if (blocked <= 2) PrintFormat("ERR SITE OBSTACLE: area=%1 position=%2 object=%3", name, position, m_Obstacle); + continue; + } + found++; + PrintFormat("ERR SITE CANDIDATE: area=%1 position=%2 elevationRange=%3", name, position, high-low); + } + PrintFormat("ERR SITE SURVEY COUNT: area=%1 clear=%2 slopes=%3 blocked=%4 bestSlope=%5", name, found, slopes, blocked, best); + } + void Run() + { + Area("west-supplies", "5900 0 7200"); + Area("medical", "6320 0 7440"); + Area("outpost", "6740 0 7320"); + Print("ERR SMOKE PASS: candidate survey completed without authoring world changes"); + Print("ERR SMOKE COMPLETE: read-only site survey"); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c new file mode 100644 index 0000000..7c331df --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c @@ -0,0 +1,111 @@ +// Opt-in local diagnostic only. It does not bypass validation or alter cleanup. +#ifdef WORKBENCH +modded class SCR_BaseItemSupportStationComponent +{ + protected static int s_ERRStationTeardownLines; + protected static int s_ERRStationInitLines; + protected bool m_ERRStationInitSeen; + protected bool m_ERRStationInitModePresent; + protected bool m_ERRStationInitMainWorld; + protected bool m_ERRStationInitSiteOwned; + protected bool m_ERRStationInitInInventory; + protected ResourceName m_ERRStationInitParentPrefab; + protected bool m_ERRStationInDelete; + protected IEntity m_ERRStationDeleteOwner; + + protected override void DelayedInit(IEntity owner) + { + // Preserve initialization and every native validation before observation. + super.DelayedInit(owner); + string enabled; + if (!System.GetCLIParam("errStationTeardownDiag", enabled) || enabled != "1" || !owner) return; + m_ERRStationInitSeen = true; + ERR_GameMode mode = ERR_GameMode.Get(); + m_ERRStationInitModePresent = mode != null; + if (GetGame()) m_ERRStationInitMainWorld = owner.GetWorld() == GetGame().GetWorld(); + ERR_SiteService sites; + if (mode) sites = mode.Sites(); + m_ERRStationInitSiteOwned = sites && sites.Owns(owner); + InventoryItemComponent item = InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent)); + m_ERRStationInitInInventory = item && item.GetParentSlot(); + IEntity parent = owner.GetParent(); + if (parent && parent.GetPrefabData()) m_ERRStationInitParentPrefab = parent.GetPrefabData().GetPrefabName(); + if (s_ERRStationInitLines >= 64) return; + s_ERRStationInitLines++; + ResourceName prefab; + if (owner.GetPrefabData()) prefab = owner.GetPrefabData().GetPrefabName(); + PrintFormat("ERR STATION INIT OWNERSHIP: n=%1 prefab=%2 modePresent=%3 mainWorld=%4 siteOwned=%5 inInventory=%6 parentPrefab=%7", s_ERRStationInitLines, prefab, m_ERRStationInitModePresent, m_ERRStationInitMainWorld, m_ERRStationInitSiteOwned, m_ERRStationInitInInventory, m_ERRStationInitParentPrefab); + } + + override void OnDelete(IEntity owner) + { + string enabled; + bool diagnose = System.GetCLIParam("errStationTeardownDiag", enabled) && enabled == "1"; + if (diagnose) + { + m_ERRStationInDelete = true; + m_ERRStationDeleteOwner = owner; + } + + // Preserve vanilla OnDelete, including its call to InitValidSetup. + super.OnDelete(owner); + + m_ERRStationInDelete = false; + m_ERRStationDeleteOwner = null; + } + + protected override bool InitValidSetup() + { + if (m_ERRStationInDelete && s_ERRStationTeardownLines < 64) + { + s_ERRStationTeardownLines++; + IEntity owner = m_ERRStationDeleteOwner; + string ownerName = ""; + ResourceName prefab; + if (owner) + { + ownerName = owner.GetName(); + if (owner.GetPrefabData()) prefab = owner.GetPrefabData().GetPrefabName(); + } + bool globalCatalogPresent = SCR_EntityCatalogManagerComponent.GetInstance() != null; + SCR_BaseGameMode baseMode; + if (GetGame()) baseMode = SCR_BaseGameMode.Cast(GetGame().GetGameMode()); + int gameState = -1; + int phase = -1; + bool hasEndData; + if (baseMode) + { + gameState = baseMode.GetState(); + hasEndData = baseMode.GetEndGameData() != null; + ERR_GameMode mode = ERR_GameMode.Cast(baseMode); + if (mode) phase = mode.Phase(); + } + string detail = string.Format("ERR STATION TEARDOWN DIAG: n=%1 owner=%2 prefab=%3 cachedCatalog=%4 globalCatalog=%5", s_ERRStationTeardownLines, ownerName, prefab, m_EntityCatalogManager != null, globalCatalogPresent); + detail += string.Format(" modePresent=%1 gameState=%2 errPhase=%3 endData=%4 call=OnDelete/InitValidSetup", baseMode != null, gameState, phase, hasEndData); + detail += string.Format(" initSeen=%1 initMode=%2 initMainWorld=%3 initSiteOwned=%4 initInInventory=%5 initParentPrefab=%6", m_ERRStationInitSeen, m_ERRStationInitModePresent, m_ERRStationInitMainWorld, m_ERRStationInitSiteOwned, m_ERRStationInitInInventory, m_ERRStationInitParentPrefab); + bool deleteMainWorld; + bool deleteSiteOwned; + bool deleteInInventory; + ResourceName deleteParentPrefab; + if (owner) + { + if (GetGame()) deleteMainWorld = owner.GetWorld() == GetGame().GetWorld(); + ERR_GameMode deleteMode = ERR_GameMode.Cast(baseMode); + ERR_SiteService deleteSites; + if (deleteMode) deleteSites = deleteMode.Sites(); + deleteSiteOwned = deleteSites && deleteSites.Owns(owner); + InventoryItemComponent deleteItem = InventoryItemComponent.Cast(owner.FindComponent(InventoryItemComponent)); + deleteInInventory = deleteItem && deleteItem.GetParentSlot(); + IEntity deleteParent = owner.GetParent(); + if (deleteParent && deleteParent.GetPrefabData()) deleteParentPrefab = deleteParent.GetPrefabData().GetPrefabName(); + } + detail += string.Format(" deleteMainWorld=%1 deleteSiteOwned=%2 deleteInInventory=%3 deleteParentPrefab=%4", deleteMainWorld, deleteSiteOwned, deleteInInventory, deleteParentPrefab); + Print(detail); + if (s_ERRStationTeardownLines == 64) Print("ERR STATION TEARDOWN DIAG: 64-line diagnostic limit reached; vanilla validation and cleanup continue unchanged."); + } + + // Retain every original validation result and error message. + return super.InitValidSetup(); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c new file mode 100644 index 0000000..03790c0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c @@ -0,0 +1,117 @@ +#ifdef WORKBENCH +class ERR_NativeSettingsReader : ERR_Settings +{ + bool Probe(string path, out map values) { return Read(path, values); } +} +// Runs inside the disposable native test profile. No original settings touched. +class ERR_NativeTimeProbe +{ + protected static float s_EngineTime; + protected static float s_ClockHours; + protected static int s_Multiplier; + protected static bool s_Started; + static bool VerifyProgression(ERR_GameMode mode) + { + ChimeraWorld world = ChimeraWorld.CastFrom(mode.GetWorld()); + TimeAndWeatherManagerEntity manager = world.GetTimeAndWeatherManager(); + if (!Check(s_Started && manager && manager.GetIsDayAutoAdvanced(), "clock advancement remains enabled")) return false; + float elapsed = manager.GetEngineTime() - s_EngineTime; + if (!Check(elapsed >= 10, "progression sampled across at least ten engine seconds")) return false; + float actual = manager.GetTimeOfTheDay() - s_ClockHours; + if (actual < 0) actual += 24; + float expected = elapsed * s_Multiplier / 3600.0; + return Check(Math.AbsFloat(actual - expected) < 0.001, "native clock advances at configured rate without periodic resets"); + } + protected static bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: mission time " + detail); return true; } + Print("ERR SMOKE FAIL: mission time " + detail, LogLevel.ERROR); + return false; + } + protected static bool WriteFixture(string path, string omit = "", bool clock = false, float minutes = 840, bool speed = false, float multiplier = 1) + { + JsonSaveContext json = new JsonSaveContext(); + json.EnableTypeDiscriminator(false); + if (omit != "reportIntervalSeconds") json.WriteValue("reportIntervalSeconds", 20); + json.WriteValue("supportSquadLimit", 2); + json.WriteValue("responseRadiusMetres", 1500); + json.WriteValue("aiIntelChancePercent", 0); + json.WriteValue("intelRevealChancePercent", 100); + json.WriteValue("radioDefenceSeconds", 120); + if (clock) json.WriteValue("startTimeMinutes", minutes); + if (speed) json.WriteValue("timeMultiplier", multiplier); + return json.SaveToFile(path); + } + protected static bool SettingsMigration(string path) + { + if (!Check(WriteFixture(path), "legacy fixture created")) return false; + ERR_Settings legacy = new ERR_Settings(path); + if (!Check(legacy.Get("reportIntervalSeconds") == 20 && legacy.Get("radioDefenceSeconds") == 120 && legacy.Get("aiIntelChancePercent") == 0 && legacy.Get("intelRevealChancePercent") == 100, "existing six-key settings preserved")) return false; + if (!Check(legacy.Get("startTimeMinutes") == 840 && legacy.Get("timeMultiplier") == 1, "only absent time settings receive defaults")) return false; + JsonLoadContext unchanged = new JsonLoadContext(); + if (!Check(unchanged.LoadFromFile(path) && !unchanged.DoesKeyExist("startTimeMinutes") && !unchanged.DoesKeyExist("timeMultiplier"), "loading does not rewrite legacy file")) return false; + if (!Check(legacy.Set("startTimeMinutes", 375) && legacy.Set("timeMultiplier", 4), "explicit save upgrades valid legacy settings")) return false; + ERR_Settings reloaded = new ERR_Settings(path); + if (!Check(reloaded.Get("startTimeMinutes") == 375 && reloaded.Get("timeMultiplier") == 4 && reloaded.Get("responseRadiusMetres") == 1500 && reloaded.Get("radioDefenceSeconds") == 120, "new keys and old values survive reload")) return false; + ERR_NativeSettingsReader reader = new ERR_NativeSettingsReader(); + map values; + if (!WriteFixture(path, "", true, 1440)) return false; + if (!Check(!reader.Probe(path, values), "present out-of-range time cannot silently default")) return false; + if (!WriteFixture(path, "", true, 375.5)) return false; + if (!Check(!reader.Probe(path, values), "fractional clock setting rejected")) return false; + if (!WriteFixture(path, "", false, 0, true, 0)) return false; + if (!Check(!reader.Probe(path, values), "zero multiplier rejected")) return false; + if (!WriteFixture(path, "reportIntervalSeconds")) return false; + if (!Check(!reader.Probe(path, values), "missing legacy setting remains invalid")) return false; + if (!WriteFixture(path, "", true, 375)) return false; + if (!Check(reader.Probe(path, values) && values.Get("startTimeMinutes") == 375 && values.Get("timeMultiplier") == 1, "partially upgraded file defaults only missing new field")) return false; + if (!WriteFixture(path, "", false, 0, true, 25)) return false; + ERR_Settings recovered = new ERR_Settings(path); + if (!Check(recovered.Get("startTimeMinutes") == 375 && recovered.Get("timeMultiplier") == 1 && recovered.Get("reportIntervalSeconds") == 20, "valid saved backup recovers invalid primary")) return false; + return true; + } + static bool Run(ERR_GameMode mode) + { + int minutes; + if (!Check(ERR_TimeService.ParseClock("00:00", minutes) && minutes == 0 && ERR_TimeService.ParseClock("23:59", minutes) && minutes == 1439 && ERR_TimeService.Clock(375) == "06:15", "clock parsing includes midnight and final minute")) return false; + if (!Check(!ERR_TimeService.ParseClock("24:00", minutes) && !ERR_TimeService.ParseClock("12:60", minutes) && !ERR_TimeService.ParseClock("1:00", minutes) && !ERR_TimeService.ParseClock("ab:cd", minutes) && !ERR_TimeService.ParseClock("06:15junk", minutes), "malformed clock commands rejected")) return false; + string path = "$profile:erri-native-time-probe.json"; + if (!Check(!FileIO.FileExists(path) && !FileIO.FileExists(path + ".bak") && !FileIO.FileExists(path + ".tmp"), "isolated fixture paths unused")) return false; + bool migrated = SettingsMigration(path); + FileIO.DeleteFile(path); FileIO.DeleteFile(path + ".bak"); FileIO.DeleteFile(path + ".tmp"); + if (!migrated) return false; + if (!Check(mode.Time() && mode.Time().Started(), "server starts world clock before prison phase")) return false; + ChimeraWorld world = ChimeraWorld.CastFrom(mode.GetWorld()); + TimeAndWeatherManagerEntity manager = world.GetTimeAndWeatherManager(); + if (!Check(manager && manager.GetIsDayAutoAdvanced() && Math.AbsFloat(manager.GetDayDuration() - ERR_TimeService.DayDuration(mode.Time().Multiplier())) < 0.1, "engine progression matches applied multiplier")) return false; + int originalTime = mode.Settings().Get("startTimeMinutes"); + int originalSpeed = mode.Settings().Get("timeMultiplier"); + array replies = {}; + mode.Admin().Execute(mode, false, "mission time set 06:15", replies); + if (!Check(mode.Settings().Get("startTimeMinutes") == originalTime && replies[0] == "Administrator access required.", "unauthorized clock mutation rejected")) return false; + mode.Admin().Execute(mode, true, "mission time set 24:00", replies); + if (!Check(mode.Settings().Get("startTimeMinutes") == originalTime && replies[0].Contains("Invalid"), "invalid clock command preserves setting")) return false; + float currentHours = manager.GetTimeOfTheDay(); + float currentDuration = manager.GetDayDuration(); + int appliedStart = mode.Time().StartMinutes(); + int appliedSpeed = mode.Time().Multiplier(); + mode.Admin().Execute(mode, true, "mission time set 06:15", replies); + bool savedTime = mode.Settings().Get("startTimeMinutes") == 375 && replies[0].Contains("next round"); + mode.Admin().Execute(mode, true, "mission speed set 4", replies); + bool savedSpeed = mode.Settings().Get("timeMultiplier") == 4 && replies[0].Contains("next round"); + bool idempotent = mode.Time().Start(mode) && Math.AbsFloat(manager.GetTimeOfTheDay() - currentHours) < 0.01 && manager.GetDayDuration() == currentDuration && mode.Time().StartMinutes() == appliedStart && mode.Time().Multiplier() == appliedSpeed; + mode.Admin().Execute(mode, true, "mission time show", replies); + bool shown = replies.Count() == 2 && replies[0].Contains("Clock") && replies[1] == "Next round: 06:15, 4x progression."; + bool restoredTime = mode.Settings().Set("startTimeMinutes", originalTime); + bool restoredSpeed = mode.Settings().Set("timeMultiplier", originalSpeed); + if (!Check(savedTime && savedSpeed && restoredTime && restoredSpeed, "authorized settings persist and test restores originals")) return false; + if (!Check(idempotent, "saved changes and repeated start leave current clock and speed intact")) return false; + if (!Check(shown, "admin sees current clock separately from next round settings")) return false; + s_EngineTime = manager.GetEngineTime(); + s_ClockHours = manager.GetTimeOfTheDay(); + s_Multiplier = mode.Time().Multiplier(); + s_Started = true; + return true; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c new file mode 100644 index 0000000..305a3b4 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c @@ -0,0 +1,146 @@ +#ifdef WORKBENCH +// Explicit destructive test of successor-owned transport in the disposable +// scenario. Scripted occupants and engine input are not manual driving or MP. +class ERR_NativeTransportProbe +{ + protected ERR_GameMode m_Mode; + protected ERR_SiteRuntime m_Site; + protected Vehicle m_Vehicle; + protected CarControllerComponent m_Controller; + protected SCR_FuelManagerComponent m_Fuel; + protected ref array m_Actors = {}; + protected BaseCompartmentSlot m_Driver; + protected BaseCompartmentSlot m_Passenger; + protected int m_Step; + protected float m_Wait; + void ERR_NativeTransportProbe(ERR_GameMode mode) { m_Mode = mode; } + protected bool Check(bool condition, string detail) + { + if (condition) { Print("ERR SMOKE PASS: transport " + detail); return true; } + Print("ERR SMOKE FAIL: transport " + detail, LogLevel.ERROR); + return false; + } + protected bool DefinitionChecks() + { + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BC310DC0CD27F523}Configs/ERR/EveronSites.conf")); + ERR_SiteDefinition site; + if (definition) site = definition.Find("everon-supply-2"); + if (!Check(site && site.Transport && definition.Valid(), "authored transport definition resolves")) return false; + ERR_SiteTransport transport = site.Transport; + vector offset = transport.Offset; + transport.Offset = "61 0 0"; + if (!Check(!definition.Valid(), "unbounded parking offset rejected")) return false; + transport.Offset = "0 1 0"; + if (!Check(!definition.Valid(), "floating parking offset rejected")) return false; + transport.Offset = offset; + float radius = transport.ClearanceRadius; + transport.ClearanceRadius = 1; + if (!Check(!definition.Valid(), "undersized parking footprint rejected")) return false; + transport.ClearanceRadius = 9; + if (!Check(!definition.Valid(), "unbounded parking footprint rejected")) return false; + transport.ClearanceRadius = radius; + float range = transport.MaximumTerrainRange; + transport.MaximumTerrainRange = 2; + if (!Check(!definition.Valid(), "unsafe authoring slope allowance rejected")) return false; + transport.MaximumTerrainRange = range; + ERR_SiteDefinition radio = definition.Find("everon-radio-1"); + radio.Transport = transport; + if (!Check(!definition.Valid(), "transport restricted to optional depot and outpost sites")) return false; + radio.Transport = null; + return Check(definition.Valid(), "valid authoring restored after isolated mutations"); + } + protected IEntity Character(int index) + { + IEntity actor = ERR_Actors.Spawn(m_Mode.Factions().PrisonerPrefab, ERR_Actors.Ground(m_Vehicle.GetOrigin() + Vector(-8 - index * 2, 0, 0))); + if (!actor) return null; + m_Mode.Own(actor); + m_Actors.Insert(actor); + DamageManagerComponent damage = DamageManagerComponent.Cast(actor.FindComponent(DamageManagerComponent)); + if (damage) damage.EnableDamageHandling(false); + return actor; + } + int Tick(float now) + { + if (now < m_Wait) return 0; + if (m_Step == 0) + { + if (!DefinitionChecks()) return -1; + m_Site = m_Mode.Sites().Find("everon-supply-2"); + if (!Check(m_Site && m_Site.Transport && m_Mode.Sites().TransportCount() == 1 && m_Mode.Sites().Owns(m_Site.Transport), "exactly one authored transport belongs to the finite site service")) return -1; + m_Vehicle = m_Site.Transport; + m_Controller = CarControllerComponent.Cast(m_Vehicle.FindComponent(CarControllerComponent)); + m_Fuel = SCR_FuelManagerComponent.Cast(m_Vehicle.FindComponent(SCR_FuelManagerComponent)); + if (!Check(m_Controller && m_Fuel && m_Fuel.HasFuel() && m_Controller.GetPersistentHandBrake(), "wheeled transport starts parked with vanilla finite fuel")) return -1; + PrintFormat("ERR TRANSPORT FUEL: current=%1 maximum=%2", m_Fuel.GetTotalFuel(), m_Fuel.GetTotalMaxFuel()); + BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(m_Vehicle.FindComponent(BaseCompartmentManagerComponent)); + array seats = {}; + if (manager) manager.GetCompartments(seats); + int usable; + foreach (BaseCompartmentSlot slot : seats) + { + if (!slot) continue; + ECompartmentType type = SCR_CompartmentAccessComponent.GetCompartmentType(slot); + if (type == ECompartmentType.PILOT) { usable++; if (!m_Driver) m_Driver = slot; } + if (type == ECompartmentType.CARGO) { usable++; if (!m_Passenger) m_Passenger = slot; } + } + PrintFormat("ERR TRANSPORT SEATS: usable driver/passenger positions=%1", usable); + if (!Check(m_Driver && m_Passenger && m_Driver != m_Passenger, "native driver and passenger compartments are distinct")) return -1; + DamageManagerComponent.Cast(m_Vehicle.FindComponent(DamageManagerComponent)).EnableDamageHandling(false); + IEntity driver = Character(0); + IEntity passenger = Character(1); + if (!Check(driver && passenger, "isolated physical occupants created")) return -1; + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(driver.FindComponent(CompartmentAccessComponent)); + if (!Check(access && access.GetInVehicle(m_Vehicle, m_Driver, true, -1, ECloseDoorAfterActions.INVALID, false), "native driver boarding request accepted")) return -1; + m_Step = 1; + m_Wait = now + 1500; + return 0; + } + if (m_Step == 1) + { + CompartmentAccessComponent access = CompartmentAccessComponent.Cast(m_Actors[1].FindComponent(CompartmentAccessComponent)); + if (!Check(access && access.GetInVehicle(m_Vehicle, m_Passenger, true, -1, ECloseDoorAfterActions.INVALID, false), "native passenger boarding request accepted")) return -1; + m_Step = 2; + m_Wait = now + 2500; + return 0; + } + if (m_Step == 2) + { + if (!Check(m_Driver.GetOccupant() == m_Actors[0] && m_Passenger.GetOccupant() == m_Actors[1] && CompartmentAccessComponent.GetVehicleIn(m_Actors[0]) == m_Vehicle && CompartmentAccessComponent.GetVehicleIn(m_Actors[1]) == m_Vehicle, "driver and passenger physically occupy their native seats")) return -1; + if (!Check(m_Controller.IsEngineOn() || m_Controller.StartEngine(), "ordinary native engine start request accepted")) return -1; + m_Step = 3; + m_Wait = now + 6000; + return 0; + } + if (m_Step == 3) + { + if (!Check(m_Controller.IsEngineOn(), "native wheeled engine starts with available fuel")) return -1; + m_Fuel.SetTotalFuelPercentage(0); + if (!Check(m_Mode.Sites().Prepare() == ERR_PrepareResult.READY && m_Site.Transport == m_Vehicle, "preparation queries preserve the original vehicle after deliberate fuel depletion")) return -1; + m_Step = 4; + m_Wait = now + 5000; + return 0; + } + if (m_Step == 4) + { + if (!Check(!m_Fuel.HasFuel() && m_Fuel.GetTotalFuel() <= 0.001 && m_Mode.Sites().Prepare() == ERR_PrepareResult.READY && m_Mode.Sites().TransportCount() == 1 && m_Site.Transport == m_Vehicle, "empty transport stays empty and is not refilled or replaced")) return -1; + foreach (IEntity actor : m_Actors) ERR_Actors.DeleteSpawned(actor); + m_Actors.Clear(); + ERR_Actors.DeleteSpawned(m_Vehicle); + m_Step = 5; + m_Wait = now + 3000; + return 0; + } + if (m_Step == 5) + { + if (!Check(!m_Site.Transport && m_Mode.Sites().TransportCount() == 0 && m_Mode.Sites().Prepare() == ERR_PrepareResult.READY, "lost transport remains absent after service ticks and preparation queries")) return -1; + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BC310DC0CD27F523}Configs/ERR/EveronSites.conf")); + if (!Check(!m_Mode.Sites().Begin(definition, ERR_Supplies.Map()) && m_Mode.Sites().TransportCount() == 0, "duplicate initialization cannot replace lost transport")) return -1; + m_Mode.Sites().Stop(); + if (!Check(m_Mode.Sites().Prepare() == ERR_PrepareResult.FAILED && !m_Mode.Sites().Begin(definition, ERR_Supplies.Map()), "stopped finite owner cannot reinitialize transport")) return -1; + m_Step = 6; + return 1; + } + return 0; + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c new file mode 100644 index 0000000..475a2b1 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c @@ -0,0 +1,36 @@ +#ifdef WORKBENCH +// Authoring-only survey: omit transport in the fixture's in-memory definition so +// an invalid parking candidate cannot block inspecting nearby terrain/scenery. +modded class ERR_SiteService +{ + override bool Begin(ERR_ScenarioDefinition definition, ResourceName fieldMap) + { + string outcome; + if (definition && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "transport-survey") + foreach (ERR_SiteDefinition site : definition.Sites) site.Transport = null; + return super.Begin(definition, fieldMap); + } +} +class ERR_NativeTransportSurvey +{ + static void Run(ERR_GameMode mode) + { + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab("{BC310DC0CD27F523}Configs/ERR/EveronSites.conf")); + ERR_SiteDefinition site = definition.Find("everon-supply-2"); + int clear; + for (int x = -40; x <= 40; x += 8) + for (int z = -40; z <= 40; z += 8) + { + vector offset = Vector(x, 0, z); + if (offset.Length() < 8) continue; + vector position = site.Position + offset; + if (!mode.Sites().TransportClearance(position, site.Transport.ClearanceRadius, site.Transport.MaximumTerrainRange)) continue; + clear++; + PrintFormat("ERR PARKING CANDIDATE: offset=%1 position=%2", offset, ERR_Actors.Ground(position)); + } + PrintFormat("ERR PARKING SURVEY: clear=%1; no scenery removed and no transport spawned", clear); + Print("ERR SMOKE PASS: transport parking survey completed"); + Print("ERR SMOKE COMPLETE: bounded transport parking survey"); + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c new file mode 100644 index 0000000..b583a40 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c @@ -0,0 +1,59 @@ +// Native task descriptions otherwise remain stale while their entry is open. +// Own only this scenario's additional binding and missing native detach cleanup. +modded class SCR_TaskListEntryDescriptionUIComponent +{ + protected SCR_Task m_ERRObservedObjective; + // Entity references become null when a task is deleted; work ownership must survive. + protected bool m_ERROwnsObjectiveBinding; + override void InitDescription(notnull SCR_Task task) + { + // Native InitDescription deletes assignee labels; cancel their delayed work first. + ERR_UnbindObjectiveDetails(); + super.InitDescription(task); + if (!ERR_GameMode.Get() || !task.GetTaskID().StartsWith("erri-mission-")) return; + m_ERRObservedObjective = task; + m_ERROwnsObjectiveBinding = true; + task.GetOnDisplayDataChanged().Insert(ERR_RefreshObjectiveDetails); + } + protected void ERR_RefreshObjectiveDetails() + { + if (m_wRoot && m_Task && m_Task == m_ERRObservedObjective) UpdateTask(); + } + protected override void UpdateAssignees(notnull SCR_Task task, SCR_TaskExecutor newAssignee = null, int requesterID = 0) + { + // Native assignment refresh also deletes the old labels before rebuilding them. + if (m_ERROwnsObjectiveBinding && task == m_Task) + ERR_CancelObjectiveOverflow(); + super.UpdateAssignees(task, newAssignee, requesterID); + } + protected void ERR_CancelObjectiveOverflow() + { + if (GetGame() && GetGame().GetCallqueue()) GetGame().GetCallqueue().Remove(CheckOverflow); + } + protected void ERR_UnbindObjectiveDetails() + { + if (!m_ERROwnsObjectiveBinding) return; + ERR_CancelObjectiveOverflow(); + if (m_ERRObservedObjective) m_ERRObservedObjective.GetOnDisplayDataChanged().Remove(ERR_RefreshObjectiveDetails); + m_ERRObservedObjective = null; + m_ERROwnsObjectiveBinding = false; + } + override void HandlerDeattached(Widget w) + { + // Vanilla detaches widget/manager listeners but leaves these task listeners. + // Preserve that vanilla path for every task outside the successor scenario. + if (m_ERROwnsObjectiveBinding) + { + // These five native invokers are static and survive task entity deletion. + SCR_Task.GetOnTaskAssigneeAdded().Remove(UpdateAssignees); + SCR_Task.GetOnTaskAssigneeRemoved().Remove(UpdateAssignees); + SCR_Task.GetOnTaskUIVisibilityChanged().Remove(OnTaskUIVisibilityChanged); + SCR_Task.GetOnTaskVisibilityChanged().Remove(OnTaskVisibilityChanged); + SCR_Task.GetOnTaskOwnershipChanged().Remove(OnTaskOwnershipChanged); + if (m_TaskComponent) m_TaskComponent.GetOnTaskVisualChanged().Remove(OnTaskVisualChanged); + m_Task = null; + } + ERR_UnbindObjectiveDetails(); + super.HandlerDeattached(w); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c new file mode 100644 index 0000000..00d2df8 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c @@ -0,0 +1,64 @@ +// Shared player-facing copy; reads replicated mission state and never changes it. +class ERR_ObjectiveText +{ + static string Title(ERR_Phase phase) + { + if (phase == ERR_Phase.PRISON) return "Escape the prison"; + if (phase == ERR_Phase.RADIO_SEARCH) return "Locate the radio station"; + if (phase == ERR_Phase.RADIO_DEFENCE) return "Defend the radio transmission"; + if (phase == ERR_Phase.EXTRACTION) return "Escape Everon by helicopter"; + return "Escape Everon"; + } + static string Extraction(float radius) + { + return string.Format("The map marks the initial helicopter pickup site. Board the helicopter and fly beyond %1 kilometres from the prison. Living prisoners aboard escape, including unconscious passengers. Dead or absent prisoners do not.", radius / 1000.0); + } + static string RadioFeedbackMessage(ERR_RadioFeedback feedback) + { + if (feedback == ERR_RadioFeedback.WAITING) + return "Waiting for a conscious defender near the radio. Keep someone within 60 metres to start the transmission."; + if (feedback == ERR_RadioFeedback.TRANSMITTING) + return "Transmission in progress. Keep a conscious survivor within 60 metres of the radio. Leaving the area resets progress."; + if (feedback == ERR_RadioFeedback.INTERRUPTED) + return "Transmission interrupted. Progress has reset. Return a conscious survivor to within 60 metres of the radio to resume."; + return "Keep a conscious survivor within 60 metres of the radio until the transmission finishes. Leaving the area resets the defence timer."; + } + static string Description(ERR_GameMode mode, bool progress = true) + { + string description = PhaseDescription(mode, progress); + if (mode && mode.Active() && !mode.RecoveryStatus().IsEmpty()) description += "\n" + mode.RecoveryStatus(); + return description; + } + protected static string PhaseDescription(ERR_GameMode mode, bool progress) + { + if (!mode) return ""; + ERR_Phase phase = mode.Phase(); + if (phase == ERR_Phase.PREPARING) + { + if (!mode.PreparationError().IsEmpty()) return "The mission could not start. An administrator can use /esc status for the cause. Spawning is disabled until the configuration is corrected and the scenario restarted."; + return "Preparing mission sites and equipment. You will spawn when the mission is ready."; + } + if (phase == ERR_Phase.PRISON) + return "Search the supply box inside the prison for weapons and a field map. Pick the gate lock, then get clear of the guards."; + if (phase == ERR_Phase.RADIO_SEARCH) + { + array locations = {}; + mode.Locations(locations); + foreach (ERR_LocationComponent location : locations) + if (location.Kind() == ERR_LocationKind.RADIO && location.Knowledge() == 2) + return "The radio station is identified on your map. Reach the station and tune its radio to start the transmission."; + return "Choose either marked supply cache. Each has equipment and enough radio documents to identify the station. If one cache is lost, use the other. If every document is lost, a close approach with a clear view can identify the station itself. Nearby medical and guard sites can be discovered by approaching with a clear view."; + } + if (phase == ERR_Phase.RADIO_DEFENCE) + { + if (!progress) return RadioFeedbackMessage(mode.RadioFeedback()); + int seconds = mode.DefenceSecondsRemaining(); + if (!mode.DefenceOccupied()) + return string.Format("Transmission interrupted. Keep a conscious survivor within 60 metres of the radio for %1 seconds. Leaving resets progress.", seconds); + int displayed = Math.Ceil(seconds / 5.0) * 5; + return string.Format("Transmission in progress: up to %1 seconds remaining. Keep a conscious survivor within 60 metres of the radio. Leaving resets progress.", displayed); + } + if (phase == ERR_Phase.EXTRACTION) return Extraction(mode.EscapeRadius()); + return ""; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Objectives.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Objectives.c new file mode 100644 index 0000000..b01ef91 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Objectives.c @@ -0,0 +1,60 @@ +// Server-owned presentation adapter: mission rules decide progress, native tasks +// replicate it. Companion addons neither create nor advance these objectives. +class ERR_Objectives +{ + protected ERR_GameMode m_Mode; + protected SCR_Task m_Current; + protected string m_LastDescription; + protected bool m_Stopped; + + void ERR_Objectives(ERR_GameMode mode) { m_Mode = mode; } + SCR_Task Current() { return m_Current; } + static string Id(ERR_Phase phase) { return "erri-mission-" + phase.ToString(); } + + void PhaseChanged(ERR_Phase previous, ERR_Phase current) + { + if (!Replication.IsServer() || m_Stopped) return; + SCR_TaskSystem tasks = SCR_TaskSystem.GetInstance(); + if (!tasks) { Print("Rereintroduced: native task system missing", LogLevel.ERROR); return; } + if (m_Current) + { + SCR_ETaskState result = SCR_ETaskState.COMPLETED; + if (current == ERR_Phase.DEFEAT) result = SCR_ETaskState.FAILED; + tasks.SetTaskState(m_Current, result); + } + m_Current = null; + if (ERR_MissionRules.Terminal(current)) return; + string title = ERR_ObjectiveText.Title(current); + if (title.IsEmpty()) return; + m_Current = tasks.CreateTask("{1D0F815858EE24AD}Prefabs/Tasks/BaseTask.et", Id(current), title, Description()); + if (!m_Current) { Print("Rereintroduced: objective creation failed", LogLevel.ERROR); return; } + // Location markers use the discovery registry. A task cannot expose an unknown site. + tasks.SetTaskUIVisibility(m_Current, SCR_ETaskUIVisibility.LIST_ONLY); + m_Mode.Own(m_Current); + m_LastDescription = ""; + Tick(GetGame().GetWorld().GetWorldTime()); + } + + protected string Description() { return ERR_ObjectiveText.Description(m_Mode); } + + void Tick(float now) + { + if (!Replication.IsServer() || m_Stopped || !m_Current) return; + string description = Description(); + if (description != m_LastDescription) + { + m_Current.SetTaskDescription(description); + m_LastDescription = description; + } + SCR_TaskSystem tasks = SCR_TaskSystem.GetInstance(); + if (!tasks) return; + array players = {}; + GetGame().GetPlayerManager().GetPlayers(players); + foreach (int playerId : players) + { + SCR_TaskExecutor executor = SCR_TaskSystem.TaskExecutorFromPlayerID(playerId); + if (executor && !m_Current.IsTaskAssignedTo(executor)) tasks.AssignTask(m_Current, executor, true); + } + } + void Stop() { m_Stopped = true; } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Observer.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Observer.c new file mode 100644 index 0000000..68f34a0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Observer.c @@ -0,0 +1,256 @@ +enum ERR_ObserverReason +{ + NONE, + SPENT_LIFE, + LATE_EXTRACTION, + SPAWN_UNAVAILABLE +} + +// Presentation only. Existing server admission and observer selection own state. +class ERR_ObserverGuidance +{ + static string Message(int reason, bool survivorAvailable) + { + if (reason == ERR_ObserverReason.NONE) return ""; + string message = "You are spectating until the next round."; + if (reason == ERR_ObserverReason.SPENT_LIFE) + message = "Your life for this round has been used. You can play again next round."; + else if (reason == ERR_ObserverReason.LATE_EXTRACTION) + message = "Extraction has started. New prisoners can join next round."; + else if (reason == ERR_ObserverReason.SPAWN_UNAVAILABLE) + message = "Your prisoner could not be spawned. You are spectating until the next round."; + if (!survivorAvailable) + return message + " No survivor is currently available to follow. The view will follow a survivor when one becomes available."; + return message + " Use /esc spectate next or /esc spectate previous to change who you follow."; + } + static bool Refresh(bool shown, int previousReason, int reason, bool previousAvailable, bool survivorAvailable) + { + return reason != ERR_ObserverReason.NONE && (!shown || previousReason != reason || previousAvailable != survivorAvailable); + } +} + +// A local follow camera. It never possesses its target or offers free flight. +[BaseContainerProps(), SCR_BaseManualCameraComponentTitle()] +class ERR_FollowSurvivorCameraComponent : SCR_BaseManualCameraComponent +{ + override bool EOnCameraInit() { return true; } + override void EOnCameraFrame(SCR_ManualCameraParam param) + { + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (!controller) return; + IEntity target = controller.ERR_ObservedEntity(); + vector aim = controller.ERR_ObserverAnchor() + "0 1.5 0"; + vector position = aim + "0 4 -6"; + IEntity exclude = target; + if (target) + { + IEntity vehicle = CompartmentAccessComponent.GetVehicleIn(target); + vector transform[4]; + if (vehicle) + { + vehicle.GetWorldTransform(transform); + vector lower, upper; + vehicle.GetWorldBounds(lower, upper); + aim = (lower + upper) * 0.5; + position = aim + "0 5 0" - transform[2] * 10; + exclude = vehicle; + } + else + { + target.GetWorldTransform(transform); + aim = transform[3] + "0 1.5 0"; + position = aim + "0 1.5 0" - transform[2] * 4; + } + } + TraceParam trace = new TraceParam(); + trace.Start = aim; + trace.End = position; + trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + trace.Exclude = exclude; + float fraction = GetCameraEntity().GetWorld().TraceMove(trace, null); + if (fraction < 1) position = vector.Lerp(aim, position, Math.Max(0.05, fraction - 0.05)); + Math3D.DirectionAndUpMatrix(vector.Direction(position, aim), "0 1 0", param.transform); + param.transform[3] = position; + param.isDirty = true; + } +} + +modded class SCR_PlayerController +{ + [RplProp()] + protected ERR_ObserverReason m_ERRObserverReason; + [RplProp()] + protected RplId m_ERRObservedId = RplId.Invalid(); + [RplProp()] + protected vector m_ERRObserverAnchor; + protected IEntity m_ERRServerObserved; + protected IEntity m_ERRServerObservedVehicle; + protected SCR_ManualCamera m_ERRObserverCamera; + protected bool m_ERRObserverMonitor; + protected bool m_ERRObserverReady; + protected ERR_ObserverReason m_ERRShownObserverReason; + protected bool m_ERRShownObserverAvailable; + protected float m_ERRLastCycle = -1000; + + ERR_ObserverReason ERR_ObserverState() { return m_ERRObserverReason; } + vector ERR_ObserverAnchor() { return m_ERRObserverAnchor; } + IEntity ERR_ObservedEntity() + { + RplComponent component = RplComponent.Cast(Replication.FindItem(m_ERRObservedId)); + if (!component) return null; + return component.GetEntity(); + } + bool ERR_HasObserverCamera() { return m_ERRObserverCamera != null; } + + void ERR_SetObserver(ERR_ObserverReason reason) + { + if (!Replication.IsServer()) return; + if (reason != ERR_ObserverReason.NONE && ERR_Actors.Alive(GetControlledEntity())) return; + m_ERRObserverReason = reason; + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode && reason != ERR_ObserverReason.NONE) m_ERRObserverAnchor = mode.PrisonPosition(); + if (reason == ERR_ObserverReason.NONE) ERR_ReleaseObserved(); + Replication.BumpMe(); + ERR_UpdateObserverServer(); + } + + protected void ERR_StreamObserved(IEntity entity, bool normalStreaming) + { + RplIdentity identity = GetRplIdentity(); + if (!identity.IsValid() || identity == RplIdentity.Local() || !entity) return; + RplComponent component = RplComponent.Cast(entity.FindComponent(RplComponent)); + if (component) component.EnableStreamingConNode(identity, normalStreaming); + } + protected void ERR_ReleaseObserved() + { + ERR_StreamObserved(m_ERRServerObserved, true); + ERR_StreamObserved(m_ERRServerObservedVehicle, true); + m_ERRServerObserved = null; + m_ERRServerObservedVehicle = null; + m_ERRObservedId = RplId.Invalid(); + } + void ERR_UpdateObserverServer(int direction = 0) + { + if (!Replication.IsServer() || m_ERRObserverReason == ERR_ObserverReason.NONE) return; + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode || !mode.Active() || ERR_Actors.Alive(GetControlledEntity())) + { + m_ERRObserverReason = ERR_ObserverReason.NONE; + ERR_ReleaseObserved(); + Replication.BumpMe(); + return; + } + array survivors = {}; + ERR_Actors.Players(survivors); + Faction friendly = mode.PlayerFaction(); + for (int i = survivors.Count() - 1; i >= 0; i--) + if (SCR_FactionManager.SGetFaction(survivors[i]) != friendly) survivors.RemoveOrdered(i); + int index = survivors.Find(m_ERRServerObserved); + if (index < 0) index = 0; + else index += direction; + if (index < 0) index = survivors.Count() - 1; + if (index >= survivors.Count()) index = 0; + IEntity target; + if (!survivors.IsEmpty()) target = survivors[index]; + if (target != m_ERRServerObserved) + { + ERR_ReleaseObserved(); + m_ERRServerObserved = target; + if (target) + { + RplComponent component = RplComponent.Cast(target.FindComponent(RplComponent)); + if (component) m_ERRObservedId = component.Id(); + ERR_StreamObserved(target, false); + } + } + if (target) + { + m_ERRObserverAnchor = target.GetOrigin(); + IEntity vehicle = CompartmentAccessComponent.GetVehicleIn(target); + if (vehicle != m_ERRServerObservedVehicle) + { + ERR_StreamObserved(m_ERRServerObservedVehicle, true); + m_ERRServerObservedVehicle = vehicle; + ERR_StreamObserved(vehicle, false); + } + } + Replication.BumpMe(); + } + void ERR_CycleObserver(int direction) + { + if (this == GetGame().GetPlayerController()) Rpc(ERR_RequestObserverCycle, direction); + } + [RplRpc(RplChannel.Reliable, RplRcver.Server)] + protected void ERR_RequestObserverCycle(int direction) + { + if (!Replication.IsServer() || (direction != -1 && direction != 1)) return; + float now = GetGame().GetWorld().GetWorldTime(); + if (now - m_ERRLastCycle < 250) return; + m_ERRLastCycle = now; + ERR_UpdateObserverServer(direction); + } + + void ERR_StartObserverMonitor() + { + if (this != GetGame().GetPlayerController() || System.IsConsoleApp() || m_ERRObserverMonitor) return; + m_ERRObserverMonitor = true; + ERR_OnObserverMonitorStarted(); + GetGame().GetCallqueue().CallLater(ERR_UpdateObserverClient, 250, true); + } + protected void ERR_OnObserverMonitorStarted() {} + protected void ERR_UpdateObserverClient() + { + ERR_GameMode mode = ERR_GameMode.Get(); + bool observe = mode && mode.Active() && m_ERRObserverReason != ERR_ObserverReason.NONE && !ERR_Actors.Alive(GetControlledEntity()); + if (!observe) + { + ERR_CloseObserverCamera(); + return; + } + if (!m_ERRObserverCamera) + { + Resource resource = Resource.Load("{EB1210AAE1BB8F54}Prefabs/ERR/SpectatorCamera.et"); + if (!resource || !resource.IsValid()) return; + EntitySpawnParams params = new EntitySpawnParams(); + params.TransformMode = ETransformMode.WORLD; + params.Transform[3] = m_ERRObserverAnchor + "0 5 -6"; + m_ERRObserverCamera = SCR_ManualCamera.Cast(GetGame().SpawnEntityPrefab(resource, GetGame().GetWorld(), params)); + if (!m_ERRObserverCamera) return; + } + CameraManager manager = GetGame().GetCameraManager(); + if (!manager || manager.CurrentCamera() != m_ERRObserverCamera) return; + SCR_RespawnSystemComponent respawn = SCR_RespawnSystemComponent.GetInstance(); + if (respawn) respawn.DestroyLoadingPlaceholder(); + // The server-selected replicated ID distinguishes no target from a target + // whose local entity is still streaming. Never imply no survivors from delay. + bool survivorAvailable = m_ERRObservedId != RplId.Invalid(); + if (ERR_ObserverGuidance.Refresh(m_ERRObserverReady, m_ERRShownObserverReason, m_ERRObserverReason, m_ERRShownObserverAvailable, survivorAvailable)) + { + SCR_HintManagerComponent hints = SCR_HintManagerComponent.GetInstance(); + if (!hints) return; // retry on the existing monitor; do not lose the first hint + hints.ShowCustom(ERR_ObserverGuidance.Message(m_ERRObserverReason, survivorAvailable), "Spectating", 12); + m_ERRObserverReady = true; + m_ERRShownObserverReason = m_ERRObserverReason; + m_ERRShownObserverAvailable = survivorAvailable; + } + } + protected void ERR_CloseObserverCamera() + { + m_ERRObserverReady = false; + if (!m_ERRObserverCamera) return; + if (GetGame().GetPlayerController() == this) m_ERRObserverCamera.TrySwitchToControlledEntityCamera(); + m_ERRObserverCamera.Terminate(); + delete m_ERRObserverCamera; + m_ERRObserverCamera = null; + } + void ~SCR_PlayerController() + { + if (GetGame()) + { + GetGame().GetCallqueue().Remove(ERR_UpdateObserverClient); + ERR_CloseObserverCamera(); + if (Replication.IsServer()) ERR_ReleaseObserved(); + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c new file mode 100644 index 0000000..fae422c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c @@ -0,0 +1,130 @@ +// Explicit local diagnostic launcher. Normal games and Workbench never request +// transitions from this file. No player, identity or audit state is fabricated. +#ifndef WORKBENCH +// Native Game is not Managed; this script-owned helper owns the callback. +class ERR_OrdinaryScenarioLaunchRequest : Managed +{ + protected string m_Project; + protected ResourceName m_Header; + protected string m_Addon; + protected bool m_Queued; + protected bool m_Finished; + + void Queue(string project, ResourceName header, string addon) + { + if (m_Queued || m_Finished) return; + m_Queued = true; + m_Project = project; + m_Header = header; + m_Addon = addon; + GetGame().GetCallqueue().CallLater(Attempt, 0, false); + } + + void Cancel() + { + m_Finished = true; + if (GetGame() && GetGame().GetCallqueue()) GetGame().GetCallqueue().Remove(Attempt); + } + + protected void Attempt() + { + if (m_Finished) return; + m_Finished = true; + if (!GameStateTransitions.IsInsideMainMenu() || ERR_GameMode.Get() || GameStateTransitions.IsTransitionRequestedOrInProgress()) + { + Print("ERR ORDINARY: header launch refused outside idle main menu", LogLevel.ERROR); + return; + } + string addons; + if (!System.GetCLIParam("addons", addons) || addons != m_Addon) + { + Print("ERR ORDINARY: header launch addon selection mismatch", LogLevel.ERROR); + return; + } + ResourceName expected = m_Header; + MissionHeader header = MissionHeader.ReadMissionHeader(expected); + if (!header || header.GetWorldResourceName() != "{B6C516F86302C679}Worlds/ERR_Everon.ent" || header.GetWorldSystemsConfig() != "{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf") + { + Print("ERR ORDINARY: diagnostic mission header is invalid", LogLevel.ERROR); + return; + } + PrintFormat("ERR ORDINARY: requesting header project=%1", m_Project); + if (!GameStateTransitions.RequestScenarioChangeTransition(expected, string.Empty, addons)) + Print("ERR ORDINARY: native header transition refused", LogLevel.ERROR); + } + +} + +modded class ArmaReforgerScripted +{ + protected ref ERR_OrdinaryScenarioLaunchRequest m_ERRDiagnosticLaunchRequest; + protected bool m_ERRDiagnosticLaunchAttempted; + protected string m_ERRDiagnosticProject; + + protected ResourceName ERR_DiagnosticHeader(string project) + { + if (project == "core") return "{AD62322D5213C440}Missions/ERR_Everon_Base.conf"; + return string.Empty; + } + + protected string ERR_DiagnosticAddon(string project) + { + if (project == "core") return "2528466DE220D91C"; + return string.Empty; + } + + override bool OnGameStart() + { + bool started = super.OnGameStart(); + if (!started || !System.GetCLIParam("errOrdinaryScenario", m_ERRDiagnosticProject)) return started; + ResourceName expected = ERR_DiagnosticHeader(m_ERRDiagnosticProject); + if (expected.IsEmpty()) + { + Print("ERR ORDINARY: invalid diagnostic project", LogLevel.ERROR); + return started; + } + // A loaded successor is inspected only; never replace an active mission. + if (ERR_GameMode.Get()) + { + MissionHeader active = GetMissionHeader(); + ResourceName systems = "{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf"; + if (!active || active.GetHeaderResourceName() != expected || active.GetWorldSystemsConfig() != systems || GetSystemsConfig() != systems) + Print("ERR ORDINARY: active scenario header/systems mismatch", LogLevel.ERROR); + else + PrintFormat("ERR ORDINARY: header verified project=%1 systems=MissionSystems", m_ERRDiagnosticProject); + return started; + } + if (m_ERRDiagnosticLaunchAttempted) return started; + m_ERRDiagnosticLaunchAttempted = true; + // OnGameStart runs while the native state is finishing initialization. The + // one queued attempt requires that it actually reached the main menu. + m_ERRDiagnosticLaunchRequest = new ERR_OrdinaryScenarioLaunchRequest(); + m_ERRDiagnosticLaunchRequest.Queue(m_ERRDiagnosticProject, expected, ERR_DiagnosticAddon(m_ERRDiagnosticProject)); + return started; + } + + + override protected void OnBeforeWorldCleanup() + { + if (m_ERRDiagnosticLaunchRequest) m_ERRDiagnosticLaunchRequest.Cancel(); + m_ERRDiagnosticLaunchRequest = null; + super.OnBeforeWorldCleanup(); + } +} + +// Observe normal finalized admission; this never creates a body or identity. +modded class ERR_GameMode +{ + override void PlayerSpawned(int id, IEntity actor) + { + super.PlayerSpawned(id, actor); + string project; + if (!System.GetCLIParam("errOrdinaryScenario", project) || (project != "core" && project != "chat")) return; + PlayerController local = GetGame().GetPlayerController(); + if (!local || local.GetPlayerId() != id || local.GetControlledEntity() != actor || !ERR_Actors.Alive(actor)) return; + if (!Players().CurrentActor(actor) || Phase() != ERR_Phase.PRISON) return; + PrintFormat("ERR ORDINARY: local participant verified project=%1 phase=prison", project); + } +} + +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c new file mode 100644 index 0000000..0824111 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c @@ -0,0 +1,61 @@ +modded class SCR_PlayerController +{ + protected ChatCommandInvoker m_ERRCommand; + protected float m_ERRLastRequest = -1000; + protected int m_ERRRegisterAttempts; + + override void OnControlledEntityChanged(IEntity from, IEntity to) + { + super.OnControlledEntityChanged(from, to); + if (this == GetGame().GetPlayerController() && ERR_GameMode.Get()) ERR_Register(); + } + + protected void ERR_Register() + { + if (m_ERRCommand || m_ERRRegisterAttempts++ > 40) return; + SCR_ChatPanelManager manager = SCR_ChatPanelManager.GetInstance(); + if (!manager) { GetGame().GetCallqueue().CallLater(ERR_Register, 250, false); return; } + m_ERRCommand = manager.GetCommandInvoker("esc"); + if (m_ERRCommand) m_ERRCommand.Insert(ERR_OnCommand); + } + protected override void ERR_OnObserverMonitorStarted() + { + super.ERR_OnObserverMonitorStarted(); + ERR_Register(); + } + protected void ERR_OnCommand(SCR_ChatPanel panel, string arguments) + { + string localCommand = arguments.Trim(); localCommand.ToLower(); + if (localCommand == "spectate next" || localCommand == "spectate previous") + { + int direction = 1; + if (localCommand == "spectate previous") direction = -1; + ERR_CycleObserver(direction); + return; + } + Rpc(ERR_Request, arguments); + } + + [RplRpc(RplChannel.Reliable, RplRcver.Server)] + protected void ERR_Request(string arguments) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || !mode) return; + float now = GetGame().GetWorld().GetWorldTime(); + if (arguments.Length() > 160 || now - m_ERRLastRequest < 250) return; + m_ERRLastRequest = now; + arguments = arguments.Trim(); arguments.ToLower(); + array replies = {}; + mode.Admin().Execute(mode, SCR_Global.IsAdmin(GetPlayerId()), arguments, replies); + foreach (string reply : replies) ERR_Reply(reply); + } + protected void ERR_Reply(string text) { Rpc(ERR_Response, text); } + [RplRpc(RplChannel.Reliable, RplRcver.Owner)] + protected void ERR_Response(string text) { SCR_ChatComponent.RadioProtocolMessage(text); } + + void ~SCR_PlayerController() + { + if (GetGame()) GetGame().GetCallqueue().Remove(ERR_Register); + if (m_ERRCommand) m_ERRCommand.Remove(ERR_OnCommand); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c new file mode 100644 index 0000000..947360c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c @@ -0,0 +1,56 @@ +enum ERR_PersonalEscapeResult { UNKNOWN, ESCAPED, MISSED } + +// Only the server resolves account identities. Clients receive their controller's +// result, never a persistent account ID or a reused end-data connection ID. +modded class SCR_PlayerController +{ + [RplProp(onRplName: "ERR_OnEscapeResultReplicated")] + protected ERR_PersonalEscapeResult m_ERREscapeResult; + [RplProp(onRplName: "ERR_OnEscapeResultReplicated")] + protected RplId m_ERREscapeResultMission = RplId.Invalid(); + protected static ref ScriptInvoker s_ERREscapeResultChanged = new ScriptInvoker(); + + static ScriptInvoker ERR_OnEscapeResultChanged() { return s_ERREscapeResultChanged; } + protected RplId ERR_CurrentResultMission() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode) return RplId.Invalid(); + RplComponent component = RplComponent.Cast(mode.FindComponent(RplComponent)); + if (!component) return RplId.Invalid(); + return component.Id(); + } + ERR_PersonalEscapeResult ERR_EscapeResult() + { + RplId mission = ERR_CurrentResultMission(); + if (mission == RplId.Invalid() || mission != m_ERREscapeResultMission) return ERR_PersonalEscapeResult.UNKNOWN; + return m_ERREscapeResult; + } + void ERR_ResetEscapeResult() + { + if (!Replication.IsServer()) return; + m_ERREscapeResult = ERR_PersonalEscapeResult.UNKNOWN; + m_ERREscapeResultMission = ERR_CurrentResultMission(); + Replication.BumpMe(); + ERR_OnEscapeResultReplicated(); + } + void ERR_PublishEscapeResult(ERR_PlayerRoster roster, ERR_ExtractionService extraction) + { + if (!Replication.IsServer()) return; + ERR_PersonalEscapeResult result = ERR_PersonalEscapeResult.UNKNOWN; + ERR_PlayerLife life; + if (roster) life = roster.Get(GetPlayerId()); + if (life && life.Connected && life.ConnectionId == GetPlayerId() && life.UsedLife && extraction && extraction.State() == ERR_ExtractionState.ESCAPED) + { + result = ERR_PersonalEscapeResult.MISSED; + if (extraction.DidEscape(life.AccountId)) result = ERR_PersonalEscapeResult.ESCAPED; + } + m_ERREscapeResult = result; + m_ERREscapeResultMission = ERR_CurrentResultMission(); + Replication.BumpMe(); + ERR_OnEscapeResultReplicated(); + } + protected void ERR_OnEscapeResultReplicated() + { + if (GetGame() && this == GetGame().GetPlayerController()) s_ERREscapeResultChanged.Invoke(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c new file mode 100644 index 0000000..4d0bc21 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c @@ -0,0 +1,41 @@ +// Local presentation reads replicated state; it cannot advance objectives. +modded class SCR_PlayerController +{ + protected int m_ERRGuidePhase = -1; + protected bool m_ERRGuideStarted; + protected string m_ERRGuideMessage; + + override void OnControlledEntityChanged(IEntity from, IEntity to) + { + super.OnControlledEntityChanged(from, to); + ERR_StartGuide(); + } + protected override void ERR_OnObserverMonitorStarted() + { + super.ERR_OnObserverMonitorStarted(); + ERR_StartGuide(); + } + protected void ERR_StartGuide() + { + if (this != GetGame().GetPlayerController() || !ERR_GameMode.Get() || m_ERRGuideStarted) return; + m_ERRGuideStarted = true; + GetGame().GetCallqueue().CallLater(ERR_UpdateGuide, 1000, true); + } + protected void ERR_UpdateGuide() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode) return; + if (mode.Phase() != ERR_Phase.PREPARING && !GetControlledEntity()) return; + string message = ERR_ObjectiveText.Description(mode, false); + if (m_ERRGuidePhase == mode.Phase() && m_ERRGuideMessage == message) return; + SCR_HintManagerComponent hints = SCR_HintManagerComponent.GetInstance(); + if (!hints) return; + if (!message.IsEmpty()) hints.ShowCustom(message, ERR_ObjectiveText.Title(mode.Phase()), 15); + m_ERRGuidePhase = mode.Phase(); + m_ERRGuideMessage = message; + } + void ~SCR_PlayerController() + { + if (GetGame()) GetGame().GetCallqueue().Remove(ERR_UpdateGuide); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c new file mode 100644 index 0000000..9bc1cbc --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c @@ -0,0 +1,118 @@ +// Round-owned identities survive controller IDs, death and reconnect attempts. +class ERR_PlayerLifeRules +{ + static bool CanEnter(bool usedLife, int phase) + { + return !usedLife && phase >= ERR_Phase.PRISON && phase <= ERR_Phase.RADIO_DEFENCE; + } +} + +class ERR_PlayerLife +{ + UUID AccountId; + int ConnectionId; + bool Connected; + bool UsedLife; + IEntity Actor; +} + +class ERR_PlayerRoster +{ + protected ref map m_Lives = new map(); + protected ref map m_Connections = new map(); + protected ref ScriptInvoker m_OnChanged = new ScriptInvoker(); + + ScriptInvoker OnChanged() { return m_OnChanged; } + bool Bind(int playerId, UUID identity) + { + if (!Replication.IsServer() || playerId <= 0 || identity.IsNull()) return false; + ERR_PlayerLife life; + if (!m_Lives.Find(identity, life)) + { + life = new ERR_PlayerLife(); + life.AccountId = identity; + m_Lives.Insert(identity, life); + } + if (life.Connected && life.ConnectionId != playerId) return false; + // A recycled transient ID cannot inherit the previous connection's record. + UUID previous; + if (m_Connections.Find(playerId, previous) && previous != identity) Disconnect(playerId); + life.ConnectionId = playerId; + life.Connected = true; + m_Connections.Set(playerId, identity); + m_OnChanged.Invoke(playerId); + return true; + } + ERR_PlayerLife Get(int playerId) + { + UUID identity; + if (!m_Connections.Find(playerId, identity)) return null; + return m_Lives.Get(identity); + } + // The roster identity was bound by the audited connection lifecycle. Consumers + // validate its current body rather than requesting a second backend identity. + ERR_PlayerLife CurrentActor(IEntity actor) + { + if (!Replication.IsServer() || !actor || !GetGame() || !GetGame().GetPlayerManager()) return null; + PlayerManager manager = GetGame().GetPlayerManager(); + int connection = manager.GetPlayerIdFromControlledEntity(actor); + if (connection <= 0 || manager.GetPlayerControlledEntity(connection) != actor) return null; + ERR_PlayerLife life = Get(connection); + if (!life || life.AccountId.IsNull() || !life.Connected || !life.UsedLife || life.ConnectionId != connection || life.Actor != actor) return null; + return life; + } + bool CanEnter(int playerId, int phase) + { + ERR_PlayerLife life = Get(playerId); + return life && life.Connected && ERR_PlayerLifeRules.CanEnter(life.UsedLife, phase); + } + void Spawned(int playerId, IEntity actor) + { + if (!Replication.IsServer() || !actor) return; + ERR_PlayerLife life = Get(playerId); + if (!life) return; + life.Actor = actor; + life.UsedLife = true; + m_OnChanged.Invoke(playerId); + } + void Disconnect(int playerId) + { + if (!Replication.IsServer()) return; + ERR_PlayerLife life = Get(playerId); + if (life) life.Connected = false; + m_Connections.Remove(playerId); + m_OnChanged.Invoke(playerId); + } + void Participants(out array lives) + { + lives.Clear(); + foreach (UUID identity, ERR_PlayerLife life : m_Lives) + if (life.UsedLife) lives.Insert(life); + } + bool HasSurvivor() + { + // Native reconnect reservations retain the original actor until expiry. + // A reserved survivor must not lose the round while their client reconnects. + foreach (UUID identity, ERR_PlayerLife life : m_Lives) + if (life.UsedLife && ERR_Actors.Alive(life.Actor)) return true; + return false; + } +} + +modded class SCR_ReconnectComponent +{ + override bool HandlePlayerDisconnect(int playerId, KickCauseCode cause) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!mode || !mode.Active()) return super.HandlePlayerDisconnect(playerId, cause); + UUID identity = SCR_PlayerIdentityUtils.GetPlayerIdentityId(playerId); + if (identity.IsNull()) return super.HandlePlayerDisconnect(playerId, cause); + // Voluntary and involuntary departures use the same vanilla reservation, + // timeout, character handoff and expiry cleanup. No replacement life is issued. + SCR_ReconnectData data = StoreData(playerId); + if (!IsDataRelevant(data)) return false; + m_mReconnectData.Set(identity, data); + UpdateExpieryCheck(); + return true; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c new file mode 100644 index 0000000..90e745a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c @@ -0,0 +1,199 @@ +// Physical escape from the authored 12m-square prison, including alternate +// exits. Normal lock picking remains available. No additional timer or respawn. +class ERR_PrisonEscapeRules +{ + static bool Inside(float x, float z, float halfSize) { return Math.AbsFloat(x) <= halfSize && Math.AbsFloat(z) <= halfSize; } + static bool Continuous(float elapsedMs, float displacement) + { + return elapsedMs > 0 && elapsedMs <= 2500 && displacement >= 0 && displacement <= 1.5 + 12.0 * elapsedMs / 1000.0; + } + static bool Registration(bool ownedDefinition, int gates, bool bounded, bool intact) { return ownedDefinition && gates == 1 && bounded && intact; } + static bool Grounded(float gap) { return gap >= -0.5 && gap <= 2.5; } + static bool Crossing(bool armed, float previousX, float previousZ, float x, float z, float elapsedMs, float displacement) + { + return armed && Inside(previousX, previousZ, 8) && !Inside(x, z, 8) && Continuous(elapsedMs, displacement); + } +} +class ERR_PrisonEscapeSample +{ + IEntity Actor; + PlayerController Controller; + int ConnectionId; + vector Position; + float ObservedAt; + bool Armed; +} +class ERR_PrisonEscapeService +{ + protected ERR_GameMode m_Mode; + protected IEntity m_Gate; + protected bool m_Registered; + protected bool m_Stopped; + protected vector m_Center; + protected string m_RegistrationReason = "prison phase not entered"; + protected ref map m_Samples = new map(); + void ERR_PrisonEscapeService(ERR_GameMode mode) { m_Mode = mode; } + IEntity Gate() { return m_Gate; } + bool Registered() { return m_Registered; } + string RegistrationReason() { return m_RegistrationReason; } + bool GateLost() + { + if (!m_Registered) return false; + if (!m_Gate) return true; + SCR_DestructionMultiPhaseComponent damage = SCR_DestructionMultiPhaseComponent.Cast(m_Gate.FindComponent(SCR_DestructionMultiPhaseComponent)); + return damage && (damage.GetDestroyed() || damage.IsDestructionQueued()); + } + protected bool HasSuccessorLock(IEntity entity) + { + BaseActionsManagerComponent manager = BaseActionsManagerComponent.Cast(entity.FindComponent(BaseActionsManagerComponent)); + if (!manager) return false; + array actions = {}; + manager.GetActionsList(actions); + foreach (BaseUserAction action : actions) + { + ERR_UnlockPrisonAction lock = ERR_UnlockPrisonAction.Cast(action); + if (lock && lock.GetOwner() == entity) return true; + } + return false; + } + // Native evaluated child prefabs need not expose the same raw prefab name as + // the authored reference. Follow the owned composition and its actual action. + protected bool FindGate(IEntity prison, out IEntity found, out int matches) + { + found = null; matches = 0; + array pending = {}; pending.Insert(prison); + int visited; + while (!pending.IsEmpty() && visited < 64) + { + IEntity entity = pending[0]; pending.Remove(0); visited++; + if (!entity) continue; + bool lock = HasSuccessorLock(entity); + bool door = entity.FindComponent(BaseDoorComponent) != null; + if (lock || door) + { + ResourceName raw; + if (entity.GetPrefabData()) raw = entity.GetPrefabData().GetPrefabName(); + PrintFormat("Rereintroduced [prison]: gate candidate raw=%1 resolved=%2 lock=%3 door=%4 position=%5", raw, SCR_ResourceNameUtils.GetPrefabName(entity), lock, door, entity.GetOrigin()); + } + if (entity != prison && lock && door) { found = entity; matches++; } + IEntity child = entity.GetChildren(); + while (child) + { + // Both queued and visited nodes count against the fixed scan bound. + if (pending.Count() + visited >= 64) return false; + pending.Insert(child); + child = child.GetSibling(); + } + } + return pending.IsEmpty(); + } + // One initial registration from the prepared, server-owned authored site. + // No world-nearby fallback or later retry can adopt a replacement/lost gate. + void PhaseChanged(ERR_Phase previous, ERR_Phase current) + { + m_Samples.Clear(); + if (!Replication.IsServer() || m_Stopped || current != ERR_Phase.PRISON || m_Registered) return; + m_RegistrationReason = "no unique owned authored prison"; + if (!m_Mode || !m_Mode.Sites()) return; + array locations = {}; + m_Mode.Locations(locations); + IEntity prison; + int prisons; + foreach (ERR_LocationComponent location : locations) + { + if (!location || location.Kind() != ERR_LocationKind.PRISON) continue; + ERR_SiteRuntime site = m_Mode.Sites().Find(location.Id()); + if (!site || site.Location != location || !site.Definition) continue; + if (site.Definition.Kind != ERR_LocationKind.PRISON || site.Definition.Prefab != "{BE6B8D56349038A6}Prefabs/ERR/Prison.et") continue; + IEntity owner = location.GetOwner(); + if (!owner || !m_Mode.Sites().Owns(owner)) continue; + prison = owner; prisons++; + } + if (prisons != 1) return; + ResourceName raw; + if (prison.GetPrefabData()) raw = prison.GetPrefabData().GetPrefabName(); + PrintFormat("Rereintroduced [prison]: owned composition raw=%1 resolved=%2 position=%3", raw, SCR_ResourceNameUtils.GetPrefabName(prison), prison.GetOrigin()); + IEntity found; + int gates; + bool bounded = FindGate(prison, found, gates); + SCR_DestructionMultiPhaseComponent damage; + if (found) damage = SCR_DestructionMultiPhaseComponent.Cast(found.FindComponent(SCR_DestructionMultiPhaseComponent)); + bool intact = damage && damage.GetDefaultHitZone() && !damage.GetDestroyed() && !damage.IsDestructionQueued(); + if (damage) PrintFormat("Rereintroduced [prison]: destruction health=%1 destroyed=%2 queued=%3", damage.GetHealth(), damage.GetDestroyed(), damage.IsDestructionQueued()); + if (!ERR_PrisonEscapeRules.Registration(true, gates, bounded, intact)) + { + m_RegistrationReason = string.Format("gate registration refused: candidates=%1 bounded=%2 intact=%3", gates, bounded, intact); + Print("Rereintroduced [prison]: " + m_RegistrationReason); + return; + } + m_Gate = found; + m_Center = prison.GetOrigin(); + m_Registered = true; + m_RegistrationReason = "one intact successor lock in owned prison"; + Print("Rereintroduced [prison]: " + m_RegistrationReason); + } + void RosterChanged(int connection) + { + // Invalidate only this connection; a simultaneous new join must not erase + // another prisoner's genuine inside-to-outside crossing. + array removed = {}; + foreach (UUID account, ERR_PrisonEscapeSample sample : m_Samples) + if (sample.ConnectionId == connection) removed.Insert(account); + foreach (UUID accountToRemove : removed) m_Samples.Remove(accountToRemove); + } + void Tick(float now) + { + if (!Replication.IsServer() || m_Stopped || !m_Mode || m_Mode.Phase() != ERR_Phase.PRISON || !m_Mode.Active() || !m_Registered) return; + ref map next = new map(); + array lives = {}; + m_Mode.Players().Participants(lives); + PlayerManager manager = GetGame().GetPlayerManager(); + foreach (ERR_PlayerLife life : lives) + { + IEntity actor = life.Actor; + if (!actor || m_Mode.Players().CurrentActor(actor) != life || !ERR_Actors.CanFight(actor) || CompartmentAccessComponent.GetVehicleIn(actor)) continue; + if (!m_Mode.PlayerFaction() || SCR_FactionManager.SGetFaction(actor) != m_Mode.PlayerFaction()) continue; + PlayerController controller = manager.GetPlayerController(life.ConnectionId); + if (!controller || controller.GetControlledEntity() != actor) continue; + vector position = actor.GetOrigin(); + float ground = GetGame().GetWorld().GetSurfaceY(position[0], position[2]); + if (!ERR_PrisonEscapeRules.Grounded(position[1] - ground)) continue; + vector offset = position - m_Center; + ERR_PrisonEscapeSample sample = m_Samples.Get(life.AccountId); + bool armed; + if (sample && sample.Actor == actor && sample.Controller == controller) + { + float elapsed = now - sample.ObservedAt; + float displacement = vector.Distance(position, sample.Position); + bool continuous = ERR_PrisonEscapeRules.Continuous(elapsed, displacement); + vector previousOffset = sample.Position - m_Center; + if (ERR_PrisonEscapeRules.Crossing(sample.Armed, previousOffset[0], previousOffset[2], offset[0], offset[2], elapsed, displacement)) + { + // An actual qualifying exit is sufficient even if the gate remains intact. + // Use the existing authority transition so cache reveal/tasks/HQ events + // remain exactly the same as successful lock picking. + m_Mode.Transition(ERR_Phase.RADIO_SEARCH); + return; + } + armed = continuous && sample.Armed; + } + if (!ERR_PrisonEscapeRules.Inside(offset[0], offset[2], 8)) continue; + if (!armed) armed = ERR_PrisonEscapeRules.Inside(offset[0], offset[2], 5.5); + ERR_PrisonEscapeSample updated = new ERR_PrisonEscapeSample(); + updated.Actor = actor; updated.Controller = controller; updated.ConnectionId = life.ConnectionId; + updated.Position = position; updated.ObservedAt = now; updated.Armed = armed; + next.Insert(life.AccountId, updated); + } + m_Samples = next; + } + void Stop() { m_Stopped = true; m_Samples.Clear(); m_Gate = null; m_Registered = false; } + #ifdef WORKBENCH + bool ProbeArmed(IEntity actor) + { + ERR_PlayerLife life = m_Mode.Players().CurrentActor(actor); + if (!life) return false; + ERR_PrisonEscapeSample sample = m_Samples.Get(life.AccountId); + return sample && sample.Actor == actor && sample.Armed; + } + #endif +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c new file mode 100644 index 0000000..19fa6f0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c @@ -0,0 +1,137 @@ +enum ERR_RadioDefenceState +{ + IDLE, + DEFENDING, + COMPLETED, + STOPPED +} + +class ERR_RadioDefenceRules +{ + static float DefenceRadius() { return 60; } + static float TuneRadius() { return 5; } + static bool CanTune(int phase, bool registered, bool radio, int knowledge, bool player, bool conscious, float distance) + { + return phase == ERR_Phase.RADIO_SEARCH && registered && radio && knowledge >= 2 && player && conscious && distance >= 0 && distance <= TuneRadius(); + } + static bool Defender(bool player, bool conscious, float distance) + { + return player && conscious && distance >= 0 && distance < DefenceRadius(); + } + static float SinceAfterSample(float since, float previousSample, float now, int defenders) + { + if (now < 0 || defenders <= 0) return -1; + if (since < 0 || now < since || (previousSample >= 0 && now < previousSample)) return now; + return since; + } +} + +// Server-owned radio objective. Emits facts; GameMode alone advances the mission. +// Native tasks replicate presentation; no client can start/tick this service. +class ERR_RadioDefenceService +{ + protected ERR_GameMode m_Mode; + protected ERR_LocationComponent m_Location; + protected ERR_RadioDefenceState m_State; + protected float m_Since = -1; + protected float m_LastSample = -1; + protected int m_Defenders; + protected int m_LastDuration = -1; + protected ref ScriptInvoker m_OnStarted = new ScriptInvoker(); + protected ref ScriptInvoker m_OnProgressChanged = new ScriptInvoker(); + protected ref ScriptInvoker m_OnCompleted = new ScriptInvoker(); + + void ERR_RadioDefenceService(ERR_GameMode mode) { m_Mode = mode; } + static float DefenceRadius() { return ERR_RadioDefenceRules.DefenceRadius(); } + static float TuneRadius() { return ERR_RadioDefenceRules.TuneRadius(); } + ERR_RadioDefenceState State() { return m_State; } + ERR_LocationComponent Location() { return m_Location; } + float Since() { return m_Since; } + int DefenderCount() { return m_Defenders; } + bool Occupied() { return m_State == ERR_RadioDefenceState.DEFENDING && m_Since >= 0; } + ScriptInvoker OnStarted() { return m_OnStarted; } // (ERR_LocationComponent) + ScriptInvoker OnProgressChanged() { return m_OnProgressChanged; } // (ERR_RadioDefenceService) + ScriptInvoker OnCompleted() { return m_OnCompleted; } // (ERR_LocationComponent), once + + int DurationSeconds() + { + if (!m_Mode || !m_Mode.Settings()) return 0; + return m_Mode.Settings().Get("radioDefenceSeconds"); + } + int SecondsRemaining(float now) + { + int duration = DurationSeconds(); + if (m_State == ERR_RadioDefenceState.COMPLETED) return 0; + if (m_Since < 0 || now < m_Since) return duration; + return Math.Max(0, Math.Ceil(duration - (now - m_Since) / 1000.0)); + } + protected bool IsPlayer(IEntity actor) + { + return m_Mode && m_Mode.Players() && m_Mode.Players().CurrentActor(actor) != null; + } + protected bool Friendly(IEntity actor) + { + return m_Mode && m_Mode.PlayerFaction() && SCR_FactionManager.SGetFaction(actor) == m_Mode.PlayerFaction(); + } + protected int ConnectedPlayers() { return GetGame().GetPlayerManager().GetPlayerCount(); } + protected void Players(out array players) { ERR_Actors.Players(players); } + bool CanBegin(IEntity actor, ERR_LocationComponent location) + { + if (!Replication.IsServer() || !m_Mode || !m_Mode.Active() || m_State != ERR_RadioDefenceState.IDLE || !actor || !location) return false; + return ERR_RadioDefenceRules.CanTune(m_Mode.Phase(), m_Mode.HasLocation(location), location.Kind() == ERR_LocationKind.RADIO, location.Knowledge(), IsPlayer(actor) && Friendly(actor), ERR_Actors.CanFight(actor), vector.DistanceXZ(actor.GetOrigin(), location.Position())); + } + bool Begin(IEntity actor, ERR_LocationComponent location) + { + if (!CanBegin(actor, location) || !ERR_Settings.Valid("radioDefenceSeconds", DurationSeconds())) return false; + m_Location = location; + m_State = ERR_RadioDefenceState.DEFENDING; + m_Since = -1; + m_LastSample = -1; + m_Defenders = 0; + m_LastDuration = DurationSeconds(); + m_OnStarted.Invoke(location); + m_OnProgressChanged.Invoke(this); + return m_State == ERR_RadioDefenceState.DEFENDING; + } + bool CanDefend(IEntity actor) + { + if (!Replication.IsServer() || !m_Location || !actor) return false; + return ERR_RadioDefenceRules.Defender(IsPlayer(actor) && Friendly(actor), ERR_Actors.CanFight(actor), vector.DistanceXZ(actor.GetOrigin(), m_Location.Position())); + } + void Tick(float now) + { + if (!Replication.IsServer() || m_State != ERR_RadioDefenceState.DEFENDING || !m_Mode || !m_Mode.Active()) return; + float previousSince = m_Since; + int previousDefenders = m_Defenders; + m_Defenders = 0; + if (ConnectedPlayers() > 0 && m_Location && m_Mode.HasLocation(m_Location)) + { + array players = {}; + Players(players); + foreach (IEntity actor : players) if (CanDefend(actor)) m_Defenders++; + } + m_Since = ERR_RadioDefenceRules.SinceAfterSample(m_Since, m_LastSample, now, m_Defenders); + m_LastSample = now; + int duration = DurationSeconds(); + bool completed = ERR_MissionRules.DefenceComplete(now, m_Since, duration * 1000, m_Defenders > 0); + if (completed) m_State = ERR_RadioDefenceState.COMPLETED; + bool changed = completed || previousSince != m_Since || previousDefenders != m_Defenders || m_LastDuration != duration; + m_LastDuration = duration; + if (changed) m_OnProgressChanged.Invoke(this); + // Latch before callbacks: nested ticks or duplicate calls cannot complete twice. + if (completed) m_OnCompleted.Invoke(m_Location); + } + void PhaseChanged(ERR_Phase previous, ERR_Phase current) + { + if (current > ERR_Phase.RADIO_DEFENCE) Stop(); + } + void Stop() + { + if (!Replication.IsServer() || m_State == ERR_RadioDefenceState.STOPPED || m_State == ERR_RadioDefenceState.COMPLETED) return; + m_State = ERR_RadioDefenceState.STOPPED; + m_Since = -1; + m_Defenders = 0; + m_Location = null; + m_OnProgressChanged.Invoke(this); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c new file mode 100644 index 0000000..7ab0a90 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c @@ -0,0 +1,19 @@ +// Presentation only. The defence service remains the sole owner of progress. +enum ERR_RadioFeedback +{ + INACTIVE, + WAITING, + TRANSMITTING, + INTERRUPTED +} + +class ERR_RadioFeedbackRules +{ + static ERR_RadioFeedback Next(ERR_RadioFeedback previous, bool defending, bool occupied) + { + if (!defending) return ERR_RadioFeedback.INACTIVE; + if (occupied) return ERR_RadioFeedback.TRANSMITTING; + if (previous == ERR_RadioFeedback.TRANSMITTING || previous == ERR_RadioFeedback.INTERRUPTED) return ERR_RadioFeedback.INTERRUPTED; + return ERR_RadioFeedback.WAITING; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RecoveryService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RecoveryService.c new file mode 100644 index 0000000..824bc4c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_RecoveryService.c @@ -0,0 +1,74 @@ +// Observation only: unconsciousness never consumes a life or ends a round here. +class ERR_RecoveryRules +{ + // 0 absent/dead, 1 reserved or awaiting handoff, 2 conscious, 3 incapacitated. + static int SurvivorKind(bool alive, bool connected, bool sameActor, bool canFight) + { + if (!alive) return 0; + if (!connected || !sameActor) return 1; + if (canFight) return 2; + return 3; + } + static bool NeedsRescuer(int conscious, int incapacitated) + { + return conscious == 0 && incapacitated > 0; + } +} + +class ERR_RecoveryService +{ + protected ERR_GameMode m_Mode; + protected bool m_Stopped; + protected int m_Conscious; + protected int m_Incapacitated; + protected int m_Reserved; + protected string m_Message; + protected ref ScriptInvoker m_OnChanged = new ScriptInvoker(); + void ERR_RecoveryService(ERR_GameMode mode) { m_Mode = mode; } + ScriptInvoker OnChanged() { return m_OnChanged; } + int Conscious() { return m_Conscious; } + int Incapacitated() { return m_Incapacitated; } + int Reserved() { return m_Reserved; } + string Message() { return m_Message; } + + void Tick() + { + if (!Replication.IsServer() || m_Stopped || !m_Mode || !m_Mode.Active()) return; + int conscious, incapacitated, reserved; + array lives = {}; + m_Mode.Players().Participants(lives); + foreach (ERR_PlayerLife life : lives) + { + IEntity controlled = null; + if (life.Connected) controlled = GetGame().GetPlayerManager().GetPlayerControlledEntity(life.ConnectionId); + int kind = ERR_RecoveryRules.SurvivorKind(ERR_Actors.Alive(life.Actor), life.Connected, controlled == life.Actor, ERR_Actors.CanFight(life.Actor)); + if (kind == 1) reserved++; + else if (kind == 2) conscious++; + else if (kind == 3) incapacitated++; + } + m_Conscious = conscious; + m_Incapacitated = incapacitated; + m_Reserved = reserved; + string message; + if (ERR_RecoveryRules.NeedsRescuer(conscious, incapacitated)) + { + message = "No conscious prisoner is currently available to help. Natural recovery and treatment can still continue."; + if (reserved > 0) message += " A surviving prisoner's reconnection may provide help."; + message += " An administrator can abandon this round with /esc mission abandon."; + } + Publish(message); + } + protected void Publish(string message) + { + if (m_Message == message) return; + m_Message = message; + m_OnChanged.Invoke(message); + } + void Stop() + { + if (!Replication.IsServer() || m_Stopped) return; + m_Stopped = true; + m_Conscious = 0; m_Incapacitated = 0; m_Reserved = 0; + Publish(""); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Resources.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Resources.c new file mode 100644 index 0000000..421530a --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Resources.c @@ -0,0 +1,10 @@ +// Shared mission resources are independent of the selected factions. +class ERR_Resources +{ + static ResourceName ObjectiveDocument() { return "{554159A6740C3F3E}Prefabs/ERR/ObjectiveDocument.et"; } + static ResourceName SearchWaypoint() { return "{B3E7B8DC2BAB8ACC}Prefabs/AI/Waypoints/AIWaypoint_SearchAndDestroy.et"; } + static ResourceName MoveWaypoint() { return "{750A8D1695BD6998}Prefabs/AI/Waypoints/AIWaypoint_Move.et"; } + static ResourceName CycleWaypoint() { return "{35BD6541CBB8AC08}Prefabs/AI/Waypoints/AIWaypoint_Cycle.et"; } + static ResourceName DefendWaypoint() { return "{93291E72AC23930F}Prefabs/AI/Waypoints/AIWaypoint_Defend.et"; } + static ResourceName IntelFolder() { return "{6D56FED1E55A8F84}Prefabs/Items/Misc/IntelligenceFolder_E_01/IntelligenceFolder_E_01.et"; } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c new file mode 100644 index 0000000..97afabd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c @@ -0,0 +1,58 @@ +[ComponentEditorProps(category: "Rereintroduced", description: "Authored scenario definition and finite population lifecycle")] +class ERR_ScenarioComponentClass : ScriptComponentClass {} +class ERR_ScenarioComponent : ScriptComponent +{ + [Attribute("", UIWidgets.ResourceNamePicker, "Scenario site definitions", "conf")] + protected ResourceName m_Definition; + protected ref ERR_SiteService m_Sites; + protected bool m_Started; + protected bool m_Finished; + protected bool m_Failed; + + ERR_SiteService Sites() { return m_Sites; } + string FailureReason() + { + if (m_Sites && !m_Sites.FailureReason().IsEmpty()) return m_Sites.FailureReason(); + return "Scenario or additional force preparation failed."; + } + ERR_PrepareResult Prepare() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || !mode || m_Failed) return ERR_PrepareResult.FAILED; + if (m_Finished) return ERR_PrepareResult.READY; + if (!m_Started) + { + m_Started = true; + ERR_ScenarioDefinition definition = ERR_ScenarioDefinition.Cast(SCR_BaseContainerTools.CreateInstanceFromPrefab(m_Definition)); + m_Sites = new ERR_SiteService(mode); + if (!m_Sites.Begin(definition, FieldMap())) { m_Failed = true; return ERR_PrepareResult.FAILED; } + } + ERR_PrepareResult result = m_Sites.Prepare(); + if (result != ERR_PrepareResult.READY) return result; + if (!PrepareAdditionalForces()) + { + m_Failed = true; + m_Sites.Rollback(); + return ERR_PrepareResult.FAILED; + } + mode.OnPhaseChanged().Insert(m_Sites.PhaseChanged); + mode.OnStop().Insert(m_Sites.Stop); + mode.OnTick().Insert(m_Sites.Tick); + GetGame().GetCallqueue().CallLater(ActivateSites, 2000, false); + m_Finished = true; + return ERR_PrepareResult.READY; + } + protected void ActivateSites() + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode && mode.Active() && m_Sites) m_Sites.Activate(); + } + protected bool PrepareAdditionalForces() { return true; } + protected ResourceName FieldMap() { return ERR_Supplies.Map(); } + protected override void OnDelete(IEntity owner) + { + if (GetGame()) GetGame().GetCallqueue().Remove(ActivateSites); + if (m_Sites) m_Sites.Stop(); + super.OnDelete(owner); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Settings.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Settings.c new file mode 100644 index 0000000..bacd463 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Settings.c @@ -0,0 +1,139 @@ +// One configuration owner; never mutate runtime state after a failed save. +class ERR_Settings +{ + static const string PATH = "$profile:rereintroduced.json"; + protected ref map m_Values = new map(); + protected bool m_ReadOnly; + protected string m_Path; + + static array Keys() + { + return {"reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "aiIntelChancePercent", "intelRevealChancePercent", "radioDefenceSeconds", "startTimeMinutes", "timeMultiplier", "startDateCode", "weatherProfile"}; + } + + static bool Valid(string key, int value) + { + if (key == "reportIntervalSeconds") return value >= 5 && value <= 60; + if (key == "supportSquadLimit") return value >= 0 && value <= 8; + if (key == "responseRadiusMetres") return value >= 500 && value <= 5000; + if (key == "aiIntelChancePercent" || key == "intelRevealChancePercent") return value >= 0 && value <= 100; + if (key == "radioDefenceSeconds") return value >= 30 && value <= 1800; + if (key == "startTimeMinutes") return value >= 0 && value <= 1439; + if (key == "timeMultiplier") return value >= 1 && value <= 24; + if (key == "weatherProfile") return value >= 0 && value <= 3; + if (key == "startDateCode") + { + if (value == 0) return true; + // Compact (year-1900)MMDD stays exactly representable by JSON floats. + if (value < 101 || value > 1501231) return false; + int year = 1900 + value / 10000; + int month = (value % 10000) / 100; + int day = value % 100; + if (month < 1 || month > 12 || day < 1) return false; + int days = 31; + if (month == 4 || month == 6 || month == 9 || month == 11) days = 30; + if (month == 2) + { + days = 28; + if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) days = 29; + } + return day <= days; + } + return false; + } + + static int AddedDefault(string key) + { + if (key == "startTimeMinutes") return 840; + if (key == "timeMultiplier") return 1; + if (key == "startDateCode" || key == "weatherProfile") return 0; + return -1; + } + + void ERR_Settings(string path = PATH) + { + m_Path = path; + m_Values.Set("reportIntervalSeconds", 10); + m_Values.Set("supportSquadLimit", 4); + m_Values.Set("responseRadiusMetres", 2000); + m_Values.Set("aiIntelChancePercent", 60); + m_Values.Set("intelRevealChancePercent", 15); + m_Values.Set("radioDefenceSeconds", 180); + m_Values.Set("startTimeMinutes", AddedDefault("startTimeMinutes")); + m_Values.Set("timeMultiplier", AddedDefault("timeMultiplier")); + m_Values.Set("startDateCode", AddedDefault("startDateCode")); + m_Values.Set("weatherProfile", AddedDefault("weatherProfile")); + if (!Replication.IsServer()) { m_ReadOnly = true; return; } + map loaded; + if (Read(m_Path, loaded) || Read(m_Path + ".bak", loaded)) m_Values = loaded; + else if (FileIO.FileExists(m_Path) || FileIO.FileExists(m_Path + ".bak")) + { + m_ReadOnly = true; + Print("Rereintroduced: invalid settings; defaults active, existing files preserved", LogLevel.ERROR); + } + } + + int Get(string key) { return m_Values.Get(key); } + + protected bool Read(string path, out map values) + { + JsonLoadContext json = new JsonLoadContext(); + if (!json.LoadFromFile(path)) return false; + values = new map(); + foreach (string key : Keys()) + { + // Only newly introduced keys may be absent in an older valid file. + if (!json.DoesKeyExist(key) && AddedDefault(key) >= 0) + { + values.Set(key, AddedDefault(key)); + continue; + } + float number; + if (!json.ReadValue(key, number)) return false; + int value = Math.Round(number); + if (number != value || !Valid(key, value)) return false; + values.Set(key, value); + } + return true; + } + + bool Set(string key, int value) + { + if (!Replication.IsServer() || m_ReadOnly || !Valid(key, value)) return false; + JsonSaveContext json = new JsonSaveContext(); + json.EnableTypeDiscriminator(false); + foreach (string option : Keys()) + { + int saved = Get(option); + if (option == key) saved = value; + json.WriteValue(option, saved); + } + map checked; + if (!json.SaveToFile(m_Path + ".tmp") || !Read(m_Path + ".tmp", checked)) return false; + foreach (string option : Keys()) + { + int expected = Get(option); + if (option == key) expected = value; + if (checked.Get(option) != expected) return false; + } + map previous; + if (Read(m_Path, previous) && !FileIO.CopyFile(m_Path, m_Path + ".bak")) return false; + if (!FileIO.CopyFile(m_Path + ".tmp", m_Path) || !Read(m_Path, checked)) + { + if (FileIO.FileExists(m_Path + ".bak")) FileIO.CopyFile(m_Path + ".bak", m_Path); + return false; + } + foreach (string option : Keys()) + { + int expected = Get(option); + if (option == key) expected = value; + if (checked.Get(option) != expected) + { + if (FileIO.FileExists(m_Path + ".bak")) FileIO.CopyFile(m_Path + ".bak", m_Path); + return false; + } + } + m_Values = checked; + return true; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c new file mode 100644 index 0000000..1298f99 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c @@ -0,0 +1,167 @@ +// Authored scenario data. These definitions contain no runtime entities. +[BaseContainerProps()] +class ERR_SiteStock +{ + [Attribute("", UIWidgets.ResourceNamePicker, "Physical inventory item", "et")] + ResourceName Prefab; + [Attribute("1", UIWidgets.EditBox, "Finite initial count")] + int Count; + [Attribute("", UIWidgets.EditBox, "Objective document's destination location ID")] + string TargetId; +} + +[BaseContainerProps()] +class ERR_SiteProp +{ + [Attribute("", UIWidgets.ResourceNamePicker, "Finite initial scenery", "et")] + ResourceName Prefab; + [Attribute("0 0 0", UIWidgets.Coords)] vector Offset; + [Attribute("0 0 0", UIWidgets.Coords, "Yaw, pitch, roll in degrees")] vector Angles; +} + +[BaseContainerProps()] +class ERR_SiteTransport +{ + [Attribute("", UIWidgets.ResourceNamePicker, "One finite wheeled transport; never replaced", "et")] + ResourceName Prefab; + [Attribute("0 0 0", UIWidgets.Coords, "Parking offset from the site; ground height is sampled")] + vector Offset; + [Attribute("0", UIWidgets.EditBox, "Parking heading in degrees")] + float Heading; + [Attribute("3", UIWidgets.EditBox, "Clear square half-width including vehicle and boarding space")] + float ClearanceRadius; + [Attribute("1", UIWidgets.EditBox, "Maximum terrain height range across parking footprint")] + float MaximumTerrainRange; +} + +[BaseContainerProps()] +class ERR_SitePatrolPoint +{ + [Attribute("0 0 0", UIWidgets.Coords, "Ground waypoint offset from the guard anchor")] + vector Offset; +} + +[BaseContainerProps()] +class ERR_SiteDefinition +{ + [Attribute()] + string Id; + [Attribute()] string Label; + [Attribute("0", UIWidgets.EditBox, "Conscious visual discovery radius: radio up to 8m, optional sites up to 60m") ] + float DiscoverRadius; + [Attribute()] ref array Props; + [Attribute()] ref ERR_SiteTransport Transport; + [Attribute("0", UIWidgets.ComboBox, "Location kind", enums: ParamEnumArray.FromEnum(ERR_LocationKind))] + ERR_LocationKind Kind; + [Attribute("", UIWidgets.ResourceNamePicker, "Successor site composition", "et")] + ResourceName Prefab; + [Attribute("0 0 0", UIWidgets.Coords)] + vector Position; + [Attribute("", UIWidgets.ResourceNamePicker, "Optional physical guard group", "et")] + ResourceName Guards; + [Attribute()] ref array Patrol; + [Attribute("0", UIWidgets.CheckBox, "Populate a finite squad from the faction catalog") ] + bool Guarded; + [Attribute("20 0 0", UIWidgets.Coords)] + vector GuardOffset; + [Attribute("", UIWidgets.ResourceNamePicker, "Finite inventory container", "et")] + ResourceName Container; + [Attribute("0 0 0", UIWidgets.Coords)] + vector ContainerOffset; + [Attribute()] + ref array Stock; + [Attribute("0", UIWidgets.CheckBox, "Show this supply location after prison escape")] + bool RevealOnEscape; +} + +[BaseContainerProps()] +class ERR_ScenarioDefinition +{ + [Attribute()] + ref array Sites; + [Attribute("2", UIWidgets.EditBox, "Independent accessible caches containing enough radio documents") ] + int MinimumRadioSources; + + ERR_SiteDefinition Find(string id) + { + foreach (ERR_SiteDefinition site : Sites) + if (site && site.Id == id) return site; + return null; + } + + bool Valid() + { + if (!Sites || Sites.IsEmpty() || Sites.Count() > 32) return false; + set ids = new set(); + int prisons, radios, extractions, groups, items, sources, maps, props, transports; + array cluePositions = {}; + if (MinimumRadioSources < 1 || MinimumRadioSources > 8) return false; + foreach (ERR_SiteDefinition site : Sites) + { + if (!site || site.Id.IsEmpty() || ids.Contains(site.Id) || site.Prefab.IsEmpty()) return false; + if (site.Label.IsEmpty() || site.Label.Length() > 64) return false; + if (!ERR_SiteDiscoveryRules.ValidRadius(site.Kind, site.DiscoverRadius)) return false; + bool optionalSite = site.Kind == ERR_LocationKind.DEPOT || site.Kind == ERR_LocationKind.OUTPOST; + if (!optionalSite && site.RevealOnEscape) return false; + if (site.Transport) + { + ERR_SiteTransport transport = site.Transport; + if (!optionalSite || transport.Prefab.IsEmpty() || transport.Offset.Length() > 60 || Math.AbsFloat(transport.Offset[1]) > 0.01) return false; + if (transport.Heading < -360 || transport.Heading > 360 || transport.ClearanceRadius < 2 || transport.ClearanceRadius > 8) return false; + if (transport.MaximumTerrainRange < 0 || transport.MaximumTerrainRange > 1.5) return false; + transports++; + } + if (site.Props) + { + if (site.Props.Count() > 12) return false; + props += site.Props.Count(); + foreach (ERR_SiteProp prop : site.Props) + if (!prop || prop.Prefab.IsEmpty() || prop.Offset.Length() > 40) return false; + } + if (site.Kind < ERR_LocationKind.PRISON || site.Kind > ERR_LocationKind.DEPOT) return false; + ids.Insert(site.Id); + if (site.Kind == ERR_LocationKind.PRISON) prisons++; + if (site.Kind == ERR_LocationKind.RADIO) radios++; + if (site.Kind == ERR_LocationKind.EXTRACTION) extractions++; + if (site.Guarded || !site.Guards.IsEmpty()) groups++; + if (site.Patrol && !site.Patrol.IsEmpty()) + { + // Native Move completes within 5m: separate every point by at least 12m. + if (!(site.Guarded || !site.Guards.IsEmpty()) || !optionalSite || site.Patrol.Count() < 2 || site.Patrol.Count() > 6) return false; + for (int pointIndex = 0; pointIndex < site.Patrol.Count(); pointIndex++) + { + ERR_SitePatrolPoint point = site.Patrol[pointIndex]; + if (!point || point.Offset.Length() > 60 || Math.AbsFloat(point.Offset[1]) > 0.01) return false; + for (int previous = 0; previous < pointIndex; previous++) + if (vector.DistanceXZ(point.Offset, site.Patrol[previous].Offset) < 12) return false; + } + } + int documents = 0; + if (!site.Stock) continue; + foreach (ERR_SiteStock stock : site.Stock) + { + if (!stock || stock.Prefab.IsEmpty() || stock.Count < 1 || stock.Count > 64 || site.Container.IsEmpty()) return false; + items += stock.Count; + if (stock.Prefab == ERR_Resources.ObjectiveDocument()) + { + if (stock.TargetId.IsEmpty()) return false; + if (site.RevealOnEscape || site.Kind == ERR_LocationKind.PRISON) documents += stock.Count; + } + if (site.Kind == ERR_LocationKind.PRISON && stock.Prefab == ERR_Supplies.Map()) maps += stock.Count; + if (!stock.TargetId.IsEmpty()) + { + ERR_SiteDefinition target = Find(stock.TargetId); + if (!target || target.Kind != ERR_LocationKind.RADIO || stock.Prefab != ERR_Resources.ObjectiveDocument()) return false; + } + } + if (documents >= 2) + { + foreach (vector position : cluePositions) + if (vector.DistanceXZ(position, site.Position) < 100) return false; + cluePositions.Insert(site.Position); + sources++; + } + } + return prisons == 1 && radios == 1 && extractions == 1 && groups <= 8 && items <= 256 && props <= 64 && transports <= 4 && sources >= MinimumRadioSources && maps >= 1; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c new file mode 100644 index 0000000..8926179 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c @@ -0,0 +1,17 @@ +// Authoring bounds separate close identification of the objective radio from +// broader discovery of optional supply sites. Neither reveals a remote site. +class ERR_SiteDiscoveryRules +{ + static float RadioRadiusLimit() { return 8; } + static bool ValidRadius(int kind, float radius) + { + if (radius < 0 || radius > 60) return false; + if (kind == ERR_LocationKind.RADIO) return radius <= RadioRadiusLimit(); + if (kind == ERR_LocationKind.DEPOT || kind == ERR_LocationKind.OUTPOST) return true; + return (kind == ERR_LocationKind.PRISON || kind == ERR_LocationKind.EXTRACTION) && radius == 0; + } + static bool InRange(float radius, float horizontalDistance, float verticalDistance) + { + return radius > 0 && horizontalDistance >= 0 && horizontalDistance <= radius && verticalDistance >= 0 && verticalDistance <= 8; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteService.c new file mode 100644 index 0000000..978353f --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SiteService.c @@ -0,0 +1,484 @@ +enum ERR_PrepareResult { FAILED = -1, PENDING, READY } + +class ERR_StockPlacement +{ + IEntity Item; + InventoryStorageManagerComponent Inventory; + bool Accepted; +} + +class ERR_SiteRuntime +{ + ref ERR_SiteDefinition Definition; + ERR_LocationComponent Location; + IEntity Container; + SCR_AIGroup Group; + int InitialGuardCount; + int LastInitialPhysical = -1; + int LastInitialConscious = -1; + Vehicle Transport; + AIWaypointCycle PatrolCycle; + ref array PatrolWaypoints = {}; +} + +// One owner for finite physical site contents. No population or stock refill tick. +class ERR_SiteService +{ + protected ERR_GameMode m_Mode; + protected ref ERR_ExtractionPlacement m_ExtractionPlacement; + ERR_ExtractionPlacement ExtractionPlacement() { return m_ExtractionPlacement; } + protected ref array m_Sites = {}; + protected ref array m_Entities = {}; + protected ref array m_Placements = {}; + protected ERR_PrepareResult m_State = ERR_PrepareResult.PENDING; + protected float m_Deadline; + protected float m_GuardDeadline; + protected bool m_Begun; + protected bool m_Stopped; + protected bool m_Activated; + protected bool m_Obstructed; + protected string m_FailureReason; + protected float m_NextDiscovery; + string FailureReason() { return m_FailureReason; } + + void ERR_SiteService(ERR_GameMode mode) { m_Mode = mode; } + int Count() { return m_Sites.Count(); } + bool Owns(IEntity entity) { return entity && m_Entities.Contains(entity); } + int TransportCount() + { + int count; + foreach (ERR_SiteRuntime site : m_Sites) + if (site.Transport) count++; + return count; + } + ERR_SiteRuntime Find(string id) + { + foreach (ERR_SiteRuntime site : m_Sites) + if (site.Definition.Id == id) return site; + return null; + } + protected bool CheckClearance(IEntity entity) + { + if (entity && entity.GetVObject()) m_Obstructed = true; + return !m_Obstructed; + } + protected bool CacheClearance(vector position) + { + m_Obstructed = false; + vector ground = ERR_Actors.Ground(position); + GetGame().GetWorld().QueryEntitiesByAABB(ground + "-1.3 0.1 -1.3", ground + "1.3 2 1.3", CheckClearance); + PrintFormat("Rereintroduced [sites]: cache clearance position=%1 clear=%2", ground, !m_Obstructed); + return !m_Obstructed; + } + protected bool CreateGuardOrders(ERR_SiteRuntime site, vector anchor) + { + if (!site.Definition.Patrol || site.Definition.Patrol.IsEmpty()) + { + AIWaypoint defend = AIWaypoint.Cast(Spawn(ERR_Resources.DefendWaypoint(), anchor)); + if (!defend) return false; + site.Group.AddWaypoint(defend); + return true; + } + foreach (ERR_SitePatrolPoint point : site.Definition.Patrol) + { + AIWaypoint move = AIWaypoint.Cast(Spawn(ERR_Resources.MoveWaypoint(), anchor + point.Offset)); + if (!move) return false; + site.PatrolWaypoints.Insert(move); + } + site.PatrolCycle = AIWaypointCycle.Cast(Spawn(ERR_Resources.CycleWaypoint(), anchor)); + if (!site.PatrolCycle) return false; + site.PatrolCycle.SetRerunCounter(-1); + site.PatrolCycle.SetWaypoints(site.PatrolWaypoints); + // The native cycle inserts its own children and itself. Adding children here + // would duplicate the route. HQ inserts Search at index 0 above this queue. + site.Group.AddWaypoint(site.PatrolCycle); + return true; + } + protected void StopPatrols() + { + foreach (ERR_SiteRuntime site : m_Sites) + { + array empty = {}; + if (site.PatrolCycle) site.PatrolCycle.SetWaypoints(empty); + if (site.Group) + { + array queued = {}; + site.Group.GetWaypoints(queued); + foreach (AIWaypoint waypoint : queued) + if (waypoint && (waypoint == site.PatrolCycle || site.PatrolWaypoints.Contains(waypoint))) site.Group.RemoveWaypoint(waypoint); + } + foreach (AIWaypoint move : site.PatrolWaypoints) ERR_Actors.DeleteSpawned(move); + ERR_Actors.DeleteSpawned(site.PatrolCycle); + site.PatrolWaypoints.Clear(); + site.PatrolCycle = null; + } + } + protected IEntity Spawn(ResourceName resource, vector position) + { + IEntity entity = ERR_Actors.Spawn(resource, ERR_Actors.Ground(position)); + if (entity) m_Entities.Insert(entity); + return entity; + } + // Read-only placement survey. It neither removes scenery nor searches for a + // replacement position; authors must correct a rejected parking location. + bool TransportClearance(vector position, float radius, float maximumRange) + { + if (radius < 2 || radius > 8 || maximumRange < 0 || maximumRange > 1.5) return false; + vector ground = ERR_Actors.Ground(position); + float lowest = ground[1]; + float highest = ground[1]; + for (int x = -1; x <= 1; x++) + { + for (int z = -1; z <= 1; z++) + { + vector sample = ERR_Actors.Ground(position + Vector(x * radius, 0, z * radius)); + lowest = Math.Min(lowest, sample[1]); + highest = Math.Max(highest, sample[1]); + } + } + m_Obstructed = false; + vector low = Vector(position[0] - radius, lowest + 0.1, position[2] - radius); + vector high = Vector(position[0] + radius, highest + 3, position[2] + radius); + GetGame().GetWorld().QueryEntitiesByAABB(low, high, CheckClearance); + bool clear = lowest >= 1 && highest - lowest <= maximumRange && !m_Obstructed; + PrintFormat("Rereintroduced [sites]: transport parking=%1 radius=%2 terrainRange=%3 obstructed=%4 clear=%5", ERR_Actors.Ground(position), radius, highest - lowest, m_Obstructed, clear); + return clear; + } + protected bool CreateTransport(ERR_SiteRuntime site, vector sitePosition) + { + ERR_SiteTransport spec = site.Definition.Transport; + if (!spec) return true; + vector position = ERR_Actors.Ground(sitePosition + spec.Offset); + if (!TransportClearance(position, spec.ClearanceRadius, spec.MaximumTerrainRange)) return Fail("obstructed or unsafe transport parking: " + site.Definition.Id); + IEntity entity = ERR_Actors.Spawn(spec.Prefab, position, Vector(spec.Heading, 0, 0)); + if (!entity) return Fail("transport prefab: " + site.Definition.Id); + m_Entities.Insert(entity); + site.Transport = Vehicle.Cast(entity); + if (!site.Transport) return Fail("transport must be a vehicle: " + site.Definition.Id); + CarControllerComponent controller = CarControllerComponent.Cast(site.Transport.FindComponent(CarControllerComponent)); + if (!controller) return Fail("transport must be wheeled: " + site.Definition.Id); + controller.SetPersistentHandBrake(true); + return true; + } + protected bool TransportReady(ERR_SiteRuntime site) + { + if (!site.Definition.Transport) return true; + Vehicle vehicle = site.Transport; + if (!ERR_Actors.Alive(vehicle)) return false; + vector low, high; + vehicle.GetWorldBounds(low, high); + vector center = ERR_Actors.Ground(site.Definition.Position + site.Definition.Transport.Offset); + float radius = site.Definition.Transport.ClearanceRadius - 0.5; + if (Math.AbsFloat(low[0] - center[0]) > radius || Math.AbsFloat(high[0] - center[0]) > radius || Math.AbsFloat(low[2] - center[2]) > radius || Math.AbsFloat(high[2] - center[2]) > radius) + { + if (GetGame().GetWorld().GetWorldTime() > m_Deadline) PrintFormat("Rereintroduced [sites]: transport footprint low=%1 high=%2 surveyedCenter=%3 origin=%4 allowedRadius=%5", low, high, center, vehicle.GetOrigin(), radius); + return false; + } + FuelManagerComponent fuel = FuelManagerComponent.Cast(vehicle.FindComponent(FuelManagerComponent)); + if (!fuel || !fuel.HasFuel()) + { + if (GetGame().GetWorld().GetWorldTime() > m_Deadline) PrintFormat("Rereintroduced [sites]: transport fuel manager=%1 hasFuel=%2", fuel != null, fuel && fuel.HasFuel()); + return false; + } + BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(vehicle.FindComponent(BaseCompartmentManagerComponent)); + if (!manager) return false; + array seats = {}; + manager.GetCompartments(seats); + bool driver, passenger; + foreach (BaseCompartmentSlot slot : seats) + { + if (!slot) continue; + ECompartmentType type = SCR_CompartmentAccessComponent.GetCompartmentType(slot); + if (type == ECompartmentType.PILOT) driver = true; + if (type == ECompartmentType.CARGO) passenger = true; + } + if ((!driver || !passenger) && GetGame().GetWorld().GetWorldTime() > m_Deadline) PrintFormat("Rereintroduced [sites]: transport seats=%1 driver=%2 passenger=%3", seats.Count(), driver, passenger); + return driver && passenger; + } + protected bool Fail(string reason) + { + m_FailureReason = reason; + Print("Rereintroduced [sites]: preparation failed: " + reason, LogLevel.ERROR); + Rollback(); + m_State = ERR_PrepareResult.FAILED; + return false; + } + + bool Begin(ERR_ScenarioDefinition definition, ResourceName fieldMap) + { + if (!Replication.IsServer() || m_Begun || m_Stopped) return false; + m_Begun = true; + if (!definition || !definition.Valid()) return Fail("invalid scenario definition"); + m_Deadline = GetGame().GetWorld().GetWorldTime() + 15000; + m_GuardDeadline = GetGame().GetWorld().GetWorldTime() + ERR_InitialGuardRules.TimeoutMilliseconds(); + foreach (ERR_SiteDefinition spec : definition.Sites) + { + vector position = ERR_Actors.Ground(spec.Position); + if (position[1] < 1) return Fail("site below sea level: " + spec.Id); + IEntity root = Spawn(spec.Prefab, position); + if (!root) return Fail("site composition: " + spec.Id); + ERR_SiteRuntime site = new ERR_SiteRuntime(); + site.Definition = spec; + site.Location = ERR_LocationComponent.Cast(root.FindComponent(ERR_LocationComponent)); + if (!site.Location || !site.Location.Configure(spec.Id, spec.Kind, spec.Label)) return Fail("location identity: " + spec.Id); + m_Sites.Insert(site); + if (spec.Kind == ERR_LocationKind.PRISON) m_Mode.ConfigureStart(position); + if (spec.Kind == ERR_LocationKind.EXTRACTION) + { + Vehicle helicopter = Vehicle.Cast(Spawn(m_Mode.Factions().ExtractionPrefab, position + "12 0 0")); + if (!helicopter) return Fail("extraction vehicle"); + if (!m_Mode.SetExtractionVehicle(helicopter)) return Fail("extraction vehicle registration"); + m_ExtractionPlacement = new ERR_ExtractionPlacement(m_Mode, helicopter); + } + if (!spec.Container.IsEmpty()) + { + if (!CacheClearance(position + spec.ContainerOffset)) return Fail("obstructed cache position: " + spec.Id); + site.Container = Spawn(spec.Container, position + spec.ContainerOffset); + if (!site.Container) return Fail("container: " + spec.Id); + InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(site.Container.FindComponent(InventoryStorageManagerComponent)); + if (!inventory) return Fail("container inventory: " + spec.Id); + BaseInventoryStorageComponent storage = BaseInventoryStorageComponent.Cast(site.Container.FindComponent(BaseInventoryStorageComponent)); + if (!storage) return Fail("container storage: " + spec.Id); + inventory.AddStorage(storage); + if (spec.Stock) + { + foreach (ERR_SiteStock stock : spec.Stock) + { + ResourceName resource = stock.Prefab; + if (resource == ERR_Supplies.Map()) resource = fieldMap; + for (int i = 0; i < stock.Count; i++) + { + // Created exactly once; insertion retries always use this same entity. + IEntity item = Spawn(resource, site.Container.GetOrigin()); + if (!item) return Fail("stock resource: " + spec.Id); + if (!stock.TargetId.IsEmpty()) + { + ERR_DocumentComponent document = ERR_DocumentComponent.Cast(item.FindComponent(ERR_DocumentComponent)); + if (!document) return Fail("targeted document component"); + document.SetTarget(stock.TargetId); + } + ERR_StockPlacement placement = new ERR_StockPlacement(); + placement.Item = item; + placement.Inventory = inventory; + m_Placements.Insert(placement); + } + } + } + } + if (spec.Props) + { + foreach (ERR_SiteProp prop : spec.Props) + { + vector propPosition = ERR_Actors.Ground(position + prop.Offset); + if (!CacheClearance(propPosition)) return Fail("obstructed scenery position: " + spec.Id); + propPosition[1] = propPosition[1] + prop.Offset[1]; + IEntity scenery = ERR_Actors.Spawn(prop.Prefab, propPosition, prop.Angles); + if (!scenery) return Fail("scenery prefab: " + spec.Id); + m_Entities.Insert(scenery); + } + } + if (!CreateTransport(site, position)) return false; + if (spec.Guarded || !spec.Guards.IsEmpty()) + { + vector guardPosition = position + spec.GuardOffset; + ResourceName groupPrefab = spec.Guards; + if (groupPrefab.IsEmpty()) groupPrefab = m_Mode.Factions().GuardGroupPrefab; + site.Group = SCR_AIGroup.Cast(Spawn(groupPrefab, guardPosition)); + if (!site.Group) return Fail("guard group resource: " + spec.Id); + if (!site.Group.m_aUnitPrefabSlots || site.Group.m_aUnitPrefabSlots.IsEmpty() || !site.Group.GetSpawnImmediately()) return Fail("guard profile must request an initial physical squad: " + spec.Id); + site.InitialGuardCount = site.Group.m_aUnitPrefabSlots.Count(); + foreach (ResourceName member : site.Group.m_aUnitPrefabSlots) + if (member.IsEmpty()) return Fail("guard profile has an empty member resource: " + spec.Id); + if (!CreateGuardOrders(site, guardPosition)) return Fail("guard initial orders: " + spec.Id); + } + PrintFormat("Rereintroduced [sites]: authored %1 at %2", spec.Id, position); + } + return true; + } + + protected ERR_PrepareResult InitialGuards(ERR_SiteRuntime site) + { + bool requested = site.Definition.Guarded || !site.Definition.Guards.IsEmpty(); + if (!requested) return ERR_PrepareResult.READY; + if (!site.Group || site.InitialGuardCount <= 0) + { + Fail("initial guard group disappeared or has no configured members: " + site.Definition.Id); + return m_State; + } + if (site.Group.GetFaction() != m_Mode.EnemyFaction()) + { + Fail("guard group faction disagrees with catalog: " + site.Definition.Id); + return m_State; + } + array agents = {}; + array physical = {}; + site.Group.GetAgents(agents); + int conscious; + foreach (AIAgent agent : agents) + { + if (!agent) continue; + IEntity actor = agent.GetControlledEntity(); + if (!actor || physical.Contains(actor)) continue; + physical.Insert(actor); + if (SCR_FactionManager.SGetFaction(actor) != m_Mode.EnemyFaction()) + { + Fail("initial guard actor faction disagrees with catalog: " + site.Definition.Id); + return m_State; + } + if (ERR_Actors.CanFight(actor)) conscious++; + } + bool complete = site.Group.IsExpandComplete(); + if (site.LastInitialPhysical != physical.Count() || site.LastInitialConscious != conscious) + { + PrintFormat("Rereintroduced [guards]: initial site=%1 requested=%2 physical=%3 conscious=%4 nativeComplete=%5", site.Definition.Id, site.InitialGuardCount, physical.Count(), conscious, complete); + site.LastInitialPhysical = physical.Count(); + site.LastInitialConscious = conscious; + } + ERR_PrepareResult result = ERR_InitialGuardRules.State(site.InitialGuardCount, physical.Count(), conscious, complete, GetGame().GetWorld().GetWorldTime() > m_GuardDeadline); + if (result == ERR_PrepareResult.FAILED) + { + AIPathfindingComponent path = AIPathfindingComponent.Cast(site.Group.FindComponent(AIPathfindingComponent)); + NavmeshWorldComponent navmesh; + if (path) navmesh = path.GetNavmeshComponent(); + bool tileLoaded, tileRequested; + if (navmesh) + { + tileLoaded = navmesh.IsTileLoaded(site.Group.GetOrigin()); + tileRequested = navmesh.IsTileRequested(site.Group.GetOrigin()); + } + PrintFormat("Rereintroduced [guards]: timeout detail site=%1 navmesh=%2 tileLoaded=%3 tileRequested=%4 dormantAlive=%5 dormantDead=%6", site.Definition.Id, navmesh != null, tileLoaded, tileRequested, site.Group.GetDormantAliveCount(), site.Group.GetDormantDeadCount()); + Fail(string.Format("initial guard population incomplete or invalid: site=%1 requested=%2 physical=%3 conscious=%4 nativeComplete=%5; limit=90s; no replacement requested", site.Definition.Id, site.InitialGuardCount, physical.Count(), conscious, complete)); + } + return result; + } + protected void CancelInitialGuardRequests() + { + // Stock DespawnMembers returns early for an empty group; explicitly remove + // its queued initial request before a failed/stopped preparation deletes it. + if (!GetGame()) return; + ChimeraAIWorld world = ChimeraAIWorld.Cast(GetGame().GetAIWorld()); + if (!world) return; + foreach (ERR_SiteRuntime site : m_Sites) + { + if (!site.Group || site.InitialGuardCount <= 0) continue; + // Retire this instance's initial spawn intent as well as its current queue + // entries. A native expansion pass may otherwise schedule the empty capacity + // again. Existing physical members remain until the owner rolls back. + site.Group.SetSpawnImmediately(false); + site.Group.m_aUnitPrefabSlots = new array(); + world.PurgeSpawnRequestsForGroup(site.Group); + } + } + + ERR_PrepareResult Prepare() + { + if (!Replication.IsServer() || !m_Begun || m_Stopped) return ERR_PrepareResult.FAILED; + if (m_State != ERR_PrepareResult.PENDING) return m_State; + if (!m_ExtractionPlacement) { Fail("extraction placement owner missing"); return m_State; } + ERR_PrepareResult aircraftPlacement = m_ExtractionPlacement.Poll(GetGame().GetWorld().GetWorldTime()); + if (aircraftPlacement == ERR_PrepareResult.FAILED) { Fail(m_ExtractionPlacement.FailureReason()); return m_State; } + int pending, accepted, pendingGuards; + foreach (ERR_SiteRuntime site : m_Sites) + { + if (!TransportReady(site)) + { + if (GetGame().GetWorld().GetWorldTime() > m_Deadline) Fail("transport needs fuel, driver/passenger seats and a fitting parking footprint: " + site.Definition.Id); + return m_State; + } + ERR_PrepareResult guards = InitialGuards(site); + if (guards == ERR_PrepareResult.FAILED) return m_State; + if (guards == ERR_PrepareResult.PENDING) pendingGuards++; + } + string firstRejected; + foreach (ERR_StockPlacement placement : m_Placements) + { + if (!placement.Item || !placement.Inventory) { Fail("stock disappeared during initialization"); return m_State; } + array items = {}; + placement.Inventory.GetItems(items); + if (items.Contains(placement.Item)) continue; + pending++; + if (firstRejected.IsEmpty() && placement.Item.GetPrefabData()) firstRejected = placement.Item.GetPrefabData().GetPrefabName(); + if (placement.Accepted) accepted++; + if (!placement.Accepted) placement.Accepted = placement.Inventory.TryInsertItem(placement.Item); + } + if (pending) + { + if (GetGame().GetWorld().GetWorldTime() > m_Deadline) Fail(string.Format("physical stock insertion timed out: pending=%1 accepted=%2 sample=%3", pending, accepted, firstRejected)); + return m_State; + } + if (pendingGuards > 0 || aircraftPlacement == ERR_PrepareResult.PENDING) return m_State; + foreach (IEntity entity : m_Entities) m_Mode.Own(entity); + m_State = ERR_PrepareResult.READY; + PrintFormat("Rereintroduced [sites]: %1 sites and %2 physical stock items ready", m_Sites.Count(), m_Placements.Count()); + m_Placements.Clear(); + return m_State; + } + + void Activate() + { + if (m_State != ERR_PrepareResult.READY || m_Stopped || m_Activated) return; + m_Activated = true; + foreach (ERR_SiteRuntime site : m_Sites) + { + if (site.Definition.Kind == ERR_LocationKind.PRISON && site.Location) site.Location.Discover(0, 100); + if (site.Group) m_Mode.RegisterGroup(site.Group); + } + } + void PhaseChanged(ERR_Phase previous, ERR_Phase current) + { + if (!Replication.IsServer() || current != ERR_Phase.RADIO_SEARCH) return; + foreach (ERR_SiteRuntime site : m_Sites) + if (site.Definition.RevealOnEscape && site.Location) site.Location.Discover(0, 100); + } + bool CanObserve(IEntity player, ERR_SiteRuntime site) + { + if (!Replication.IsServer() || m_Stopped || !m_Mode.Active() || m_Mode.Phase() < ERR_Phase.RADIO_SEARCH) return false; + if (!site || !site.Definition || !m_Sites.Contains(site) || !site.Location || !m_Mode.HasLocation(site.Location) || !ERR_Actors.CanFight(player)) return false; + if (!ERR_Actors.Player(player) || !m_Mode.Players() || !m_Mode.PlayerFaction() || SCR_FactionManager.SGetFaction(player) != m_Mode.PlayerFaction()) return false; + if (!m_Mode.Players().CurrentActor(player)) return false; + vector position = site.Location.Position(); + vector observer = player.GetOrigin(); + if (!ERR_SiteDiscoveryRules.InRange(site.Definition.DiscoverRadius, vector.DistanceXZ(observer, position), Math.AbsFloat(observer[1] - position[1]))) return false; + TraceParam trace = new TraceParam(); + trace.Start = player.GetOrigin() + "0 1.5 0"; + trace.End = position + "0 1.3 0"; + trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + trace.Exclude = player; + return GetGame().GetWorld().TraceMove(trace, null) >= 1; + } + void Tick(float now) + { + if (!Replication.IsServer() || m_Stopped || now < m_NextDiscovery) return; + m_NextDiscovery = now + 5000; + array players = {}; + ERR_Actors.Players(players, true); + foreach (ERR_SiteRuntime site : m_Sites) + { + if (!site.Location || site.Location.Knowledge() >= 2) continue; + foreach (IEntity player : players) + { + if (!CanObserve(player, site)) continue; + site.Location.Discover(0, 100); + break; + } + } + } + void Rollback() + { + Stop(); + // Children/items are listed after parents; delete them first. + for (int i = m_Entities.Count() - 1; i >= 0; i--) ERR_Actors.DeleteSpawned(m_Entities[i]); + m_Entities.Clear(); + m_Placements.Clear(); + m_Sites.Clear(); + } + void Stop() + { + if (m_Stopped) return; + m_Stopped = true; + if (m_ExtractionPlacement) m_ExtractionPlacement.Stop(); + if (m_State == ERR_PrepareResult.PENDING) CancelInitialGuardRequests(); + StopPatrols(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c new file mode 100644 index 0000000..9bad5e3 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c @@ -0,0 +1,84 @@ +class ERR_SpawnTicket +{ + int ConnectionId; + UUID AccountId; + ERR_GameMode Mode; + SCR_PlayerController Controller; + SCR_SpawnRequestComponent Request; + ref SCR_SpawnData Data; + IEntity Actor; +} + +class ERR_SpawnFinalizationRules +{ + static bool PositionClose(vector actual, vector requested) + { + return vector.DistanceXZ(actual, requested) <= 0.6 && Math.AbsFloat(actual[1] - requested[1]) <= 1; + } + static bool Allows(int phase, bool connected, bool usedLife, UUID expected, UUID current, bool sameController, bool sameRequest, bool noControlledEntity) + { + return connected && ERR_PlayerLifeRules.CanEnter(usedLife, phase) && !expected.IsNull() && expected == current && sameController && sameRequest && noControlledEntity; + } +} + +modded class SCR_SpawnRequestComponent +{ + // Only a successor-owned admission ticket calls this. Disconnect or a mission + // phase change must not leave an old preload callback assigning an actor later. + void ERR_CancelAdmission(SCR_SpawnData data, bool notifyOwner) + { + if (!GetGame()) return; + GetGame().GetCallqueue().Remove(AwaitFinalization_S); + if (!Replication.IsServer()) return; + if (notifyOwner && GetPlayerController() && GetRespawnComponent()) SendResponse_S(SCR_ESpawnResult.SPAWN_NOT_ALLOWED, data); + } +} + +modded class SCR_FreeSpawnHandlerComponent +{ + protected ERR_SpawnLogic ERR_AdmissionLogic() + { + SCR_RespawnSystemComponent system = GetRespawnSystemComponent(); + if (!system) return null; + return ERR_SpawnLogic.Cast(system.GetSpawnLogic()); + } + protected void ERR_RejectOwnedActor(SCR_SpawnRequestComponent request, IEntity entity, SCR_SpawnData data) + { + // A repeated/malformed callback must never delete a currently possessed actor. + if (entity && !ERR_Actors.Player(entity)) HandleSpawnEntityFailure_S(request, entity, data, SCR_ESpawnResult.SPAWN_NOT_ALLOWED); + } + override SCR_ESpawnResult HandleRequest_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, out IEntity spawnedEntity) + { + ERR_SpawnLogic logic = ERR_AdmissionLogic(); + if (!ERR_GameMode.Get() && !logic) return super.HandleRequest_S(requestComponent, data, spawnedEntity); + ERR_SpawnTicket ticket; + if (logic) ticket = logic.CreateSpawnTicket(requestComponent, data); + if (!ticket) return SCR_ESpawnResult.SPAWN_NOT_ALLOWED; + SCR_ESpawnResult result = super.HandleRequest_S(requestComponent, data, spawnedEntity); + if (result != SCR_ESpawnResult.OK) return result; + ticket.Actor = spawnedEntity; + if (!logic.TrackSpawnTicket(ticket)) + { + ERR_RejectOwnedActor(requestComponent, spawnedEntity, data); + return SCR_ESpawnResult.SPAWN_NOT_ALLOWED; + } + return result; + } + override SCR_ESpawnResult FinalizeRequest_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity) + { + ERR_SpawnLogic logic = ERR_AdmissionLogic(); + if (!ERR_GameMode.Get() && !logic) return super.FinalizeRequest_S(requestComponent, data, entity); + ERR_SpawnTicket ticket; + if (logic) ticket = logic.TakeSpawnTicket(requestComponent, data, entity); + // No ticket means no ownership proof: reject without deleting arbitrary input. + if (!ticket) return SCR_ESpawnResult.SPAWN_NOT_ALLOWED; + if (!logic.MayFinalizeSpawn(ticket)) + { + ERR_RejectOwnedActor(requestComponent, entity, data); + return SCR_ESpawnResult.SPAWN_NOT_ALLOWED; + } + SCR_ESpawnResult result = super.FinalizeRequest_S(requestComponent, data, entity); + if (result != SCR_ESpawnResult.OK) ERR_RejectOwnedActor(requestComponent, entity, data); + return result; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c new file mode 100644 index 0000000..5c62327 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c @@ -0,0 +1,375 @@ +[BaseContainerProps(category: "Respawn")] +class ERR_SpawnLogic : SCR_SpawnLogic +{ + protected ref map m_Attempts = new map(); + protected ref map m_Identities = new map(); + protected ref map m_Retries = new map(); + protected ref map m_AuthorizedPositions = new map(); + protected ref set m_Pending = new set(); + protected ref ERR_SpawnPlacement m_Placement = new ERR_SpawnPlacement(); + protected ref array m_SpawnTickets = {}; + protected ERR_GameMode m_LifecycleMode; + protected bool m_AdmissionsStopped; + protected ref ERR_LocalAdmission m_LocalAdmission; + protected bool m_LocalAdmissionFailed; + + protected void BindLifecycle(ERR_GameMode mode) + { + if (!mode || m_LifecycleMode == mode) return; + if (m_LifecycleMode) + { + m_LifecycleMode.OnPhaseChanged().Remove(AdmissionPhaseChanged); + m_LifecycleMode.OnStop().Remove(StopAdmissions); + m_LifecycleMode.OnTick().Remove(CheckLocalAdmissionTick); + } + if (m_LocalAdmission && m_LocalAdmission.OfflineMode()) { StopAdmissions(); m_Identities.Clear(); } + if (m_LocalAdmission) m_LocalAdmission.Stop(); + m_LocalAdmission = new ERR_LocalAdmission(mode); + m_LocalAdmissionFailed = false; + m_AdmissionsStopped = false; + m_LifecycleMode = mode; + mode.OnPhaseChanged().Insert(AdmissionPhaseChanged); + mode.OnStop().Insert(StopAdmissions); + mode.OnTick().Insert(CheckLocalAdmissionTick); + } + + override void OnPlayerAuditSuccess_S(int playerId) + { + super.OnPlayerAuditSuccess_S(playerId); + UUID identity = SCR_PlayerIdentityUtils.GetPlayerIdentityId(playerId); + #ifdef WORKBENCH + if (identity.IsNull() && RplSession.Mode() != RplMode.Dedicated) + { + string name = GetGame().GetPlayerManager().GetPlayerName(playerId); + string suffix = Math.AbsInt(name.Hash()).ToString(12, true); + identity = "00e77100-0000-0000-0000-" + suffix; + } + #endif + ERR_GameMode mode = ERR_GameMode.Get(); + BindLifecycle(mode); + SCR_PlayerController resultController = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + if (resultController && (!m_LocalAdmission || !m_LocalAdmission.OfflineMode())) resultController.ERR_ResetEscapeResult(); + #ifndef WORKBENCH + string diagnosticProject; + if (System.GetCLIParam("errOrdinaryScenario", diagnosticProject) && (diagnosticProject == "core" || diagnosticProject == "chat")) + { + PrintFormat("ERR ORDINARY ADMISSION: server=%1 sessionMode=%2 modePresent=%3 controllerPresent=%4 identityPresent=%5 nameLength=%6", Replication.IsServer(), RplSession.Mode(), mode != null, resultController != null, !identity.IsNull(), GetGame().GetPlayerManager().GetPlayerName(playerId).Length()); + // Read cached native identity metadata only. Never print identity/name bytes, + // override cached backend identity or change its native utility. + string rawIdentity; + int rawLength = -1; + BackendApi backend = GetGame().GetBackendApi(); + if (backend) + { + rawIdentity = backend.GetPlayerIdentityId(playerId); + rawLength = rawIdentity.Length(); + } + UUID rawUUID = rawIdentity; + PrintFormat("ERR ORDINARY IDENTITY: rawLength=%1 rawEmpty=%2 rawNull=%3 rawFormatValid=%4 rawNullSentinel=%5 helperLength=%6 helperFormatValid=%7 dedicated=%8", rawLength, rawIdentity.IsEmpty(), rawUUID.IsNull(), UUID.IsUUID(rawIdentity), rawIdentity == UUID.NULL_UUID, identity.Length(), UUID.IsUUID(identity), RplSession.Mode() == RplMode.Dedicated); + } + #endif + if (m_LocalAdmission) identity = m_LocalAdmission.Resolve(mode, playerId, resultController, identity); + if (!CheckLocalAdmissionContext()) return; + // Repeated real callbacks retain the existing attempt/body/life and result. + if (m_LocalAdmission && m_LocalAdmission.Selected() && m_Identities.Contains(playerId)) + { + if (m_Identities.Get(playerId) != identity) { m_LocalAdmission.Disconnected(playerId); CheckLocalAdmissionContext(); return; } + if (resultController) resultController.ERR_PublishEscapeResult(mode.Players(), mode.Extraction()); + return; + } + if (!mode || !mode.Players().Bind(playerId, identity)) + { + Print("Rereintroduced: player identity could not be bound; spawn withheld", LogLevel.ERROR); + return; + } + if (resultController) + { + if (m_LocalAdmission && m_LocalAdmission.OfflineMode()) resultController.ERR_ResetEscapeResult(); + resultController.ERR_PublishEscapeResult(mode.Players(), mode.Extraction()); + } + m_Identities.Set(playerId, identity); + if ((!m_LocalAdmission || !m_LocalAdmission.LocalKey()) && ResolveReconnection(playerId)) + { + mode.PlayerSpawned(playerId, GetGame().GetPlayerManager().GetPlayerControlledEntity(playerId)); + SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)).ERR_SetObserver(ERR_ObserverReason.NONE); + return; + } + m_Attempts.Set(playerId, 0); + DoSpawn_S(playerId); + } + + protected override void DoSpawn_S(int playerId) + { + ERR_GameMode mode = ERR_GameMode.Get(); + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + if (!controller || !mode || m_AdmissionsStopped || !m_Identities.Contains(playerId) || !m_Attempts.Contains(playerId) || m_Pending.Contains(playerId)) return; + if (!CheckLocalAdmissionContext()) return; + if (controller.GetControlledEntity()) return; + if (ERR_MissionRules.Terminal(mode.Phase())) return; + if (!mode.PreparationError().IsEmpty()) { Observe(playerId, ERR_ObserverReason.SPAWN_UNAVAILABLE); return; } + // Preparing sites is not a failed spawn attempt. Every audited arrival waits + // for the same server preparation result before consuming its retry budget. + if (!mode.Active()) { RetryLater(playerId); return; } + int attempts = m_Attempts.Get(playerId); + if (attempts >= 30) { Observe(playerId, ERR_ObserverReason.SPAWN_UNAVAILABLE); return; } + if (!mode.Players().CanEnter(playerId, mode.Phase())) + { + ERR_ObserverReason reason = ERR_ObserverReason.SPENT_LIFE; + ERR_PlayerLife life = mode.Players().Get(playerId); + if (life && !life.UsedLife) reason = ERR_ObserverReason.LATE_EXTRACTION; + Observe(playerId, reason); + return; + } + SCR_PlayerFactionAffiliationComponent affiliation = GetPlayerFactionComponent_S(playerId); + SCR_RespawnComponent respawn = GetPlayerRespawnComponent_S(playerId); + Faction faction = mode.PlayerFaction(); + if (!affiliation || !respawn || !faction) { RetryLater(playerId); return; } + affiliation.RequestFaction(faction); + vector position; + if (!SpawnPosition(mode, position)) { RetryLater(playerId); return; } + m_Attempts.Set(playerId, attempts + 1); + SCR_FreeSpawnData request = new SCR_FreeSpawnData(mode.Factions().PrisonerPrefab, position); + if (!respawn.CanSpawn(request)) { RetryLater(playerId); return; } + m_AuthorizedPositions.Set(playerId, position); + m_Pending.Insert(playerId); + if (!respawn.RequestSpawn(request)) OnPlayerSpawnFailed_S(playerId); + } + + protected bool SpawnPosition(ERR_GameMode mode, out vector position) + { + if (mode.Phase() == ERR_Phase.PRISON) return m_Placement.Prison(mode.PrisonPosition(), m_AuthorizedPositions, position); + array survivors = {}; + ERR_Actors.Players(survivors, true); + foreach (IEntity survivor : survivors) + { + if (SCR_FactionManager.SGetFaction(survivor) != mode.PlayerFaction()) continue; + if (m_Placement.Near(survivor, m_AuthorizedPositions, position)) return true; + } + return m_Placement.Prison(mode.PrisonPosition(), m_AuthorizedPositions, position); + } + + ERR_SpawnTicket CreateSpawnTicket(SCR_SpawnRequestComponent request, SCR_SpawnData data) + { + if (!Replication.IsServer() || !request || !data) return null; + int id = request.GetPlayerId(); + if (!Authorizes(id, data)) return null; + ERR_SpawnTicket ticket = new ERR_SpawnTicket(); + ticket.ConnectionId = id; + ticket.AccountId = m_Identities.Get(id); + ticket.Mode = ERR_GameMode.Get(); + ticket.Controller = SCR_PlayerController.Cast(request.GetPlayerController()); + ticket.Request = request; + ticket.Data = data; + return ticket; + } + bool TrackSpawnTicket(ERR_SpawnTicket ticket) + { + if (!Replication.IsServer() || !ticket || !ticket.Actor || ticket.Mode != ERR_GameMode.Get() || !Authorizes(ticket.ConnectionId, ticket.Data)) return false; + foreach (ERR_SpawnTicket existing : m_SpawnTickets) + if (existing.Request == ticket.Request || existing.Actor == ticket.Actor) return false; + m_SpawnTickets.Insert(ticket); + return true; + } + ERR_SpawnTicket TakeSpawnTicket(SCR_SpawnRequestComponent request, SCR_SpawnData data, IEntity entity) + { + if (!Replication.IsServer() || !request || !data || !entity) return null; + for (int i = 0; i < m_SpawnTickets.Count(); i++) + { + ERR_SpawnTicket ticket = m_SpawnTickets[i]; + if (ticket.Request != request || ticket.Data != data || ticket.Actor != entity) continue; + m_SpawnTickets.Remove(i); + return ticket; + } + return null; + } + bool MayFinalizeSpawn(ERR_SpawnTicket ticket) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || m_AdmissionsStopped || !mode || !ticket || ticket.Mode != mode || !ticket.Actor || !ticket.Request || !ticket.Controller) return false; + if (!CheckLocalAdmissionContext()) return false; + ERR_PlayerLife life = mode.Players().Get(ticket.ConnectionId); + if (!life || !m_Identities.Contains(ticket.ConnectionId)) return false; + PlayerController controller = GetGame().GetPlayerManager().GetPlayerController(ticket.ConnectionId); + bool sameController = controller == ticket.Controller && ticket.Request.GetPlayerController() == ticket.Controller; + bool sameRequest = ticket.Request.GetPlayerId() == ticket.ConnectionId && m_Identities.Get(ticket.ConnectionId) == ticket.AccountId; + if (!ERR_SpawnFinalizationRules.Allows(mode.Phase(), life.Connected, life.UsedLife, ticket.AccountId, life.AccountId, sameController, sameRequest, ticket.Controller.GetControlledEntity() == null)) return false; + if (!ERR_Actors.Alive(ticket.Actor) || !Authorizes(ticket.ConnectionId, ticket.Data)) return false; + // The preloaded body may have fallen or the reserved space become occupied. + if (!ERR_SpawnFinalizationRules.PositionClose(ticket.Actor.GetOrigin(), ticket.Data.GetPosition())) return false; + return m_Placement.Clear(ticket.Data.GetPosition(), m_AuthorizedPositions, ticket.ConnectionId, ticket.Actor); + } + protected void CancelOwnedTickets(int playerId, bool sendResponse) + { + for (int i = m_SpawnTickets.Count() - 1; i >= 0; i--) + { + ERR_SpawnTicket ticket = m_SpawnTickets[i]; + if (ticket.ConnectionId != playerId) continue; + m_SpawnTickets.Remove(i); + bool notify = sendResponse && ticket.Controller && ticket.Controller == GetGame().GetPlayerManager().GetPlayerController(playerId); + if (ticket.Request) ticket.Request.ERR_CancelAdmission(ticket.Data, notify); + ERR_Actors.DeleteSpawned(ticket.Actor); + } + } + protected void CancelAdmission(int playerId, ERR_ObserverReason reason) + { + m_Attempts.Remove(playerId); + m_Retries.Remove(playerId); + ClearPending(playerId); + m_AuthorizedPositions.Remove(playerId); + CancelOwnedTickets(playerId, true); + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + if (controller) controller.ERR_SetObserver(reason); + } + protected void AdmissionPhaseChanged(ERR_Phase previous, ERR_Phase current) + { + if (!Replication.IsServer() || current <= ERR_Phase.RADIO_DEFENCE) return; + array pending = {}; + foreach (int id, vector position : m_AuthorizedPositions) pending.Insert(id); + foreach (ERR_SpawnTicket ticket : m_SpawnTickets) + if (!pending.Contains(ticket.ConnectionId)) pending.Insert(ticket.ConnectionId); + foreach (int playerId : pending) + { + ERR_ObserverReason reason = ERR_ObserverReason.NONE; + if (current == ERR_Phase.EXTRACTION) reason = ERR_ObserverReason.LATE_EXTRACTION; + CancelAdmission(playerId, reason); + } + } + protected bool CheckLocalAdmissionContext() + { + if (!m_LocalAdmission || m_LocalAdmission.Validate()) return true; + if (m_LocalAdmissionFailed || m_AdmissionsStopped) return false; + m_LocalAdmissionFailed = true; + StopAdmissions(); + if (m_LifecycleMode) m_LifecycleMode.ERR_FailLocalAdmission(); + return false; + } + protected void CheckLocalAdmissionTick(float now) { CheckLocalAdmissionContext(); } + protected void StopAdmissions() + { + if (!Replication.IsServer()) return; + m_AdmissionsStopped = true; + if (m_LocalAdmission) m_LocalAdmission.Stop(); + array pending = {}; + foreach (int id, vector position : m_AuthorizedPositions) pending.Insert(id); + foreach (ERR_SpawnTicket ticket : m_SpawnTickets) + if (!pending.Contains(ticket.ConnectionId)) pending.Insert(ticket.ConnectionId); + foreach (int playerId : pending) CancelAdmission(playerId, ERR_ObserverReason.NONE); + m_Attempts.Clear(); + m_Retries.Clear(); + GetGame().GetCallqueue().Remove(RetrySpawn); + } + + protected void ClearPending(int playerId) + { + int index = m_Pending.Find(playerId); + if (index >= 0) m_Pending.Remove(index); + } + protected void RetryLater(int playerId) + { + UUID identity; + if (!m_Identities.Find(playerId, identity) || !m_Attempts.Contains(playerId)) return; + if (m_Retries.Contains(playerId) && m_Retries.Get(playerId) == identity) return; + m_Retries.Set(playerId, identity); + GetGame().GetCallqueue().CallLater(RetrySpawn, 1000, false, playerId, identity); + } + protected void RetrySpawn(int playerId, UUID identity) + { + if (!m_Identities.Contains(playerId) || m_Identities.Get(playerId) != identity || m_Retries.Get(playerId) != identity) return; + m_Retries.Remove(playerId); + DoSpawn_S(playerId); + } + protected override void OnPlayerSpawnFailed_S(int playerId) + { + CancelOwnedTickets(playerId, false); + ClearPending(playerId); + m_AuthorizedPositions.Remove(playerId); + RetryLater(playerId); + } + protected void Observe(int playerId, ERR_ObserverReason reason) + { + m_Attempts.Remove(playerId); + m_Retries.Remove(playerId); + ClearPending(playerId); + m_AuthorizedPositions.Remove(playerId); + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + if (controller) controller.ERR_SetObserver(reason); + } + protected override void OnPlayerEntityLost_S(int playerId) + { + super.OnPlayerEntityLost_S(playerId); + if (!m_Identities.Contains(playerId)) return; + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + GetGame().GetCallqueue().CallLater(ObserveAfterLoss, 100, false, playerId, m_Identities.Get(playerId), controller); + } + protected void ObserveAfterLoss(int playerId, UUID identity, SCR_PlayerController expectedController) + { + if (!expectedController || !m_Identities.Contains(playerId) || m_Identities.Get(playerId) != identity) return; + if (GetGame().GetPlayerManager().GetPlayerController(playerId) != expectedController || ERR_Actors.Alive(expectedController.GetControlledEntity())) return; + ERR_GameMode mode = ERR_GameMode.Get(); + ERR_PlayerLife life; + if (mode) life = mode.Players().Get(playerId); + if (life && life.UsedLife) Observe(playerId, ERR_ObserverReason.SPENT_LIFE); + } + override void OnPlayerSpawned_S(int playerId, IEntity entity) + { + super.OnPlayerSpawned_S(playerId, entity); + ClearPending(playerId); + m_AuthorizedPositions.Remove(playerId); + m_Attempts.Remove(playerId); + m_Retries.Remove(playerId); + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.PlayerSpawned(playerId, entity); + SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(playerId)); + if (controller) controller.ERR_SetObserver(ERR_ObserverReason.NONE); + PrintFormat("Rereintroduced [spawn]: player %1 at %2", playerId, entity.GetOrigin()); + } + override void OnPlayerDisconnected_S(int playerId, KickCauseCode cause, int timeout) + { + if (m_LocalAdmission && m_LocalAdmission.Disconnected(playerId)) CheckLocalAdmissionContext(); + CancelAdmission(playerId, ERR_ObserverReason.NONE); + m_Identities.Remove(playerId); + ERR_GameMode mode = ERR_GameMode.Get(); + if (mode) mode.Players().Disconnect(playerId); + if (GetPlayerRespawnComponent_S(playerId)) super.OnPlayerDisconnected_S(playerId, cause, timeout); + } + bool Authorizes(int playerId, SCR_SpawnData data) + { + ERR_GameMode mode = ERR_GameMode.Get(); + if (!Replication.IsServer() || m_AdmissionsStopped || !mode || !data || !m_Identities.Contains(playerId) || !mode.Players().CanEnter(playerId, mode.Phase())) return false; + if (!CheckLocalAdmissionContext()) return false; + ERR_PlayerLife life = mode.Players().Get(playerId); + if (!life || life.AccountId != m_Identities.Get(playerId)) return false; + if (!m_Pending.Contains(playerId) || !m_AuthorizedPositions.Contains(playerId) || data.GetPrefab() != mode.Factions().PrisonerPrefab) return false; + return vector.Distance(data.GetPosition(), m_AuthorizedPositions.Get(playerId)) < 0.1; + } + void ~ERR_SpawnLogic() + { + if (!GetGame()) return; + StopAdmissions(); + if (m_LifecycleMode) + { + m_LifecycleMode.OnPhaseChanged().Remove(AdmissionPhaseChanged); + m_LifecycleMode.OnStop().Remove(StopAdmissions); + m_LifecycleMode.OnTick().Remove(CheckLocalAdmissionTick); + } + GetGame().GetCallqueue().Remove(RetrySpawn); + GetGame().GetCallqueue().Remove(ObserveAfterLoss); + } +} + +modded class SCR_RespawnSystemComponent +{ + override bool CanRequestSpawn_S(SCR_SpawnRequestComponent requestComponent, SCR_SpawnHandlerComponent handlerComponent, SCR_SpawnData data, out SCR_ESpawnResult result = SCR_ESpawnResult.SPAWN_NOT_ALLOWED) + { + if (ERR_GameMode.Get()) + { + ERR_SpawnLogic logic = ERR_SpawnLogic.Cast(GetSpawnLogic()); + if (!requestComponent || !logic || !logic.Authorizes(requestComponent.GetPlayerId(), data)) + { + result = SCR_ESpawnResult.SPAWN_NOT_ALLOWED; + return false; + } + } + return super.CanRequestSpawn_S(requestComponent, handlerComponent, data, result); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c new file mode 100644 index 0000000..ec23f54 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c @@ -0,0 +1,84 @@ +// Allocation is based on occupied space, never on a transient player ID. +class ERR_SpawnPlacement +{ + protected IEntity m_Exclude; + protected bool m_Blocked; + protected bool Obstacle(IEntity entity) + { + if (!entity || (!entity.GetVObject() && !ChimeraCharacter.Cast(entity))) return true; + IEntity parent = entity; + for (int depth = 0; parent && depth < 32; depth++) + { + if (parent == m_Exclude) return true; + parent = parent.GetParent(); + } + m_Blocked = true; + return false; + } + bool Clear(vector position, map reservations, int ownReservation = -1, IEntity exclude = null) + { + if (!Replication.IsServer()) return false; + if (reservations) + foreach (int id, vector reserved : reservations) + if (id != ownReservation && vector.DistanceXZ(position, reserved) < 1.2 && Math.AbsFloat(position[1] - reserved[1]) < 2) return false; + vector ground = ERR_Actors.Ground(position); + if (ground[1] < 1 || Math.AbsFloat(position[1] - ground[1]) > 0.3) return false; + // Feet need supported, reasonably level terrain across the character width. + for (int x = -1; x <= 1; x++) + for (int z = -1; z <= 1; z++) + { + vector sample = ERR_Actors.Ground(position + Vector(x * 0.45, 0, z * 0.45)); + if (Math.AbsFloat(sample[1] - ground[1]) > 0.3) return false; + } + m_Blocked = false; + m_Exclude = exclude; + GetGame().GetWorld().QueryEntitiesByAABB(ground + "-0.45 0.15 -0.45", ground + "0.45 1.9 0.45", Obstacle); + m_Exclude = null; + return !m_Blocked; + } + bool Prison(vector center, map reservations, out vector position) + { + // Native character query bounds are about 4m wide. A 3m lattice leaves + // clearance between that conservative bound and the 0.9m query column. + // Search the four inner positions, then eight edge positions, then corners. + // All sixteen centers remain at least 1.5m inside the authored +/-6m walls. + for (int band = 0; band <= 2; band++) + for (int row = 0; row < 4; row++) + for (int column = 0; column < 4; column++) + { + int outerAxes = 0; + if (row == 0 || row == 3) outerAxes++; + if (column == 0 || column == 3) outerAxes++; + if (outerAxes != band) continue; + vector candidate = ERR_Actors.Ground(center + Vector(-4.5 + column * 3, 0, -4.5 + row * 3)); + if (!Clear(candidate, reservations)) continue; + position = candidate; + return true; + } + return false; + } + bool Near(IEntity survivor, map reservations, out vector position) + { + if (!ERR_Actors.CanFight(survivor) || CompartmentAccessComponent.GetVehicleIn(survivor)) return false; + vector anchor = survivor.GetOrigin(); + vector floor = ERR_Actors.Ground(anchor); + if (Math.AbsFloat(anchor[1] - floor[1]) > 1.5) return false; + for (int z = -2; z <= 2; z++) + for (int x = -2; x <= 2; x++) + { + if (x == 0 && z == 0) continue; + vector candidate = ERR_Actors.Ground(anchor + Vector(x * 1.5, 0, z * 1.5)); + if (Math.AbsFloat(candidate[1] - anchor[1]) > 1.5 || !Clear(candidate, reservations)) continue; + TraceParam trace = new TraceParam(); + trace.Start = anchor + "0 1 0"; + trace.End = candidate + "0 1 0"; + trace.Flags = TraceFlags.WORLD | TraceFlags.ENTS; + trace.LayerMask = TRACE_LAYER_CAMERA; + trace.Exclude = survivor; + if (GetGame().GetWorld().TraceMove(trace, null) < 1) continue; + position = candidate; + return true; + } + return false; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Supplies.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Supplies.c new file mode 100644 index 0000000..09a2fb0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_Supplies.c @@ -0,0 +1,7 @@ +class ERR_Supplies +{ + static ResourceName Pistol() { return "{C0F7DD85A86B2900}Prefabs/Weapons/Handguns/PM/Handgun_PM.et"; } + static ResourceName Magazine() { return "{8B853CDD11BA916E}Prefabs/Weapons/Magazines/Magazine_9x18_PM_8rnd_Ball.et"; } + static ResourceName Map() { return "{13772C903CB5E4F7}Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et"; } + static ResourceName IntelTable() { return "{53506DCB398C7EBE}Prefabs/Props/Furniture/Table_01.et"; } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_TimeService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_TimeService.c new file mode 100644 index 0000000..56b4f6d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/Game/ERR/ERR_TimeService.c @@ -0,0 +1,81 @@ +// The authoritative engine manager owns progression and replication. This +// service sets it once per mission instance; saved changes apply next round. +class ERR_TimeService +{ + protected TimeAndWeatherManagerEntity m_Manager; + protected bool m_Started; + protected int m_StartMinutes; + protected int m_Multiplier; + + static float DayDuration(int multiplier) + { + if (!ERR_Settings.Valid("timeMultiplier", multiplier)) return -1; + return 86400.0 / multiplier; + } + static string Clock(int minutes) + { + if (!ERR_Settings.Valid("startTimeMinutes", minutes)) return "unavailable"; + int hours = minutes / 60; + int remainder = minutes % 60; + string hourText = hours.ToString(); + string minuteText = remainder.ToString(); + if (hours < 10) hourText = "0" + hourText; + if (remainder < 10) minuteText = "0" + minuteText; + return hourText + ":" + minuteText; + } + static bool ParseClock(string text, out int minutes) + { + if (text.Length() != 5 || text.Substring(2, 1) != ":") return false; + int hours; + int remainder; + if (!ERR_CommandArguments.Integer(text.Substring(0, 2), hours) || !ERR_CommandArguments.Integer(text.Substring(3, 2), remainder)) return false; + if (hours > 23 || remainder > 59) return false; + minutes = hours * 60 + remainder; + return true; + } + bool Start(ERR_GameMode mode) + { + if (!Replication.IsServer() || !mode || !mode.Settings()) return false; + if (m_Started) return true; + ChimeraWorld world = ChimeraWorld.CastFrom(mode.GetWorld()); + if (!world) return false; + m_Manager = world.GetTimeAndWeatherManager(); + if (!m_Manager) return false; + int startMinutes = mode.Settings().Get("startTimeMinutes"); + int multiplier = mode.Settings().Get("timeMultiplier"); + if (!ERR_Settings.Valid("startTimeMinutes", startMinutes) || !ERR_Settings.Valid("timeMultiplier", multiplier)) return false; + float previousDuration = m_Manager.GetDayDuration(); + bool previousAdvancement = m_Manager.GetIsDayAutoAdvanced(); + if (!m_Manager.SetDayDuration(DayDuration(multiplier))) return false; + if (!m_Manager.SetIsDayAutoAdvanced(true)) + { + m_Manager.SetDayDuration(previousDuration); + return false; + } + if (!m_Manager.SetTimeOfTheDay(startMinutes / 60.0, true)) + { + m_Manager.SetDayDuration(previousDuration); + m_Manager.SetIsDayAutoAdvanced(previousAdvancement); + return false; + } + m_StartMinutes = startMinutes; + m_Multiplier = multiplier; + m_Started = true; + PrintFormat("Rereintroduced [time]: started at %1 with %2x progression", Clock(m_StartMinutes), m_Multiplier); + return true; + } + bool Started() { return m_Started; } + int StartMinutes() { return m_StartMinutes; } + int Multiplier() { return m_Multiplier; } + int CurrentMinutes() + { + if (!m_Started || !m_Manager) return -1; + int minutes = Math.Floor(m_Manager.GetTimeOfTheDay() * 60); + return minutes % 1440; + } + string Status() + { + if (!m_Started) return "Clock not started."; + return "Clock " + Clock(CurrentMinutes()) + ", " + m_Multiplier.ToString() + "x progression (round started " + Clock(m_StartMinutes) + ")."; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c new file mode 100644 index 0000000..0e2e91c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c @@ -0,0 +1,26 @@ +// Honor noSplash before Game-module widget classes exist, only for the +// explicit ordinary diagnostic. Visible/unflagged startup stays vanilla. +#ifndef WORKBENCH +modded class SplashScreen +{ + protected bool m_ERRDiagnosticSplashSkipped; + + override void Load() + { + string project; + if (!System.IsCLIParam("noSplash") || !System.GetCLIParam("errOrdinaryScenario", project) || (project != "core" && project != "chat")) + { + super.Load(); + return; + } + // BaseLoadingAnim.Show may request Load again while the deliberately absent + // root is null. Preserve the splash sequence counter once per instance. + if (!m_ERRDiagnosticSplashSkipped) + { + m_ERRDiagnosticSplashSkipped = true; + s_iSplashShown++; + Print("ERR ORDINARY: diagnostic noSplash honored before Game compilation"); + } + } +} +#endif diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c new file mode 100644 index 0000000..ec3ade0 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c @@ -0,0 +1,27 @@ +[WorkbenchPluginAttribute(name: "Validate Rereintroduced base", wbModules: {"WorldEditor"})] +class ERR_ValidateBaseWorldPlugin : WorldEditorPlugin +{ + override void RunCommandline() + { + string play; + WorldEditor editor = Workbench.GetModule(WorldEditor); + if (editor) + { + WorldEditorAPI api = editor.GetApi(); + if (api) + { + float low = 10000; + float high = -10000; + for (int x = -3; x <= 3; x += 3) + for (int z = -3; z <= 3; z += 3) + { + float height = api.GetTerrainSurfaceY(6150 + x, 7050 + z); + low = Math.Min(low, height); + high = Math.Max(high, height); + } + PrintFormat("ERR SITE SURVEY: supply=6150/7050 elevationRange=%1 min=%2 max=%3", high - low, low, high); + } + } + if (editor && System.GetCLIParam("errPlay", play) && play == "1") editor.SwitchToGameMode(); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent new file mode 100644 index 0000000..8561fb7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent @@ -0,0 +1,3 @@ +SubScene { + Parent "{853E92315D1D9EFE}worlds/Eden/Eden.ent" +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent.meta new file mode 100644 index 0000000..417bfa5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon.ent.meta @@ -0,0 +1,9 @@ +MetaFileClass { + Name "{B6C516F86302C679}Worlds/ERR_Everon.ent" + Configurations { + WorldResourceClass PC { + } + WorldResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon_Layers/default.layer b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon_Layers/default.layer new file mode 100644 index 0000000..b664d8d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/Worlds/ERR_Everon_Layers/default.layer @@ -0,0 +1,35 @@ +ERR_GameMode Rereintroduced : "{978E045E53EF36C8}Prefabs/ERR/GameMode.et" { +} +SCR_AIWorld AIWorld : "{E0A05C76552E7F58}Prefabs/AI/SCR_AIWorld.et" { + components { + NavmeshWorldComponent "{5584F30E67F617AD}" { + NavmeshSettings NavmeshWorld "{50FC63BEBE3973C5}" { + NavmeshFilesConfig BaseNavmeshFilesConfig "{60CA9BE5536BF701}" : "{8BBC73472092902E}Configs/Navmesh/Navmesh_GM_Eden_Soldier.conf" {} + } + } + NavmeshWorldComponent "{5584F30EEFEE1223}" { + NavmeshSettings ChimeraNavmeshWorld "{50FC63BEBE3973C5}" { + NavmeshFilesConfig BaseNavmeshFilesConfig "{60CA9BE5536BF701}" : "{0228A79846FD8A97}Configs/Navmesh/Navmesh_GM_Eden_Vehicle.conf" {} + } + } + NavmeshWorldComponent "{5C8C9B750D124A63}" { + NavmeshSettings NavmeshWorld "{5C8C9B750B60C6E2}" { + NavmeshFilesConfig BaseNavmeshFilesConfig "{5C90BD0EC793647D}" { + NavmeshFile "{5E19E60F26327356}worlds/MP/Navmeshes/LowResEden.nmn" + } + } + } + } +} +PerceptionManager Perception : "{028DAEAD63E056BE}Prefabs/World/Game/PerceptionManager.et" { +} +SCR_FactionManager Factions : "{5414041A15DC4B54}Prefabs/ERR/FactionManager.et" { +} +SCR_LoadoutManager Loadouts : "{97EF4C1A41F63DDB}Prefabs/MP/Managers/Loadouts/LoadoutManager_USxUSSR.et" { +} + +RadioManagerEntity RadioManager : "{B8E09FAB91C4ECCD}Prefabs/Systems/Radio/RadioManager.et" { +} + +ScriptedChatEntity Chat : "{F69BC912AC8236F9}Prefabs/MP/ScriptedChatEntity.et" { +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/core/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/addon.gproj new file mode 100644 index 0000000..54287e7 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/core/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { + "58D0FB3206B6F859" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/Scripts/Game/ERR/ERR_IntelService.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/Scripts/Game/ERR/ERR_IntelService.c new file mode 100644 index 0000000..6e4fccd --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/Scripts/Game/ERR/ERR_IntelService.c @@ -0,0 +1,76 @@ +class ERR_IntelRequest +{ + IEntity Actor; + int Attempts; + bool Accepted; +} + +// Optional enemy inventory distribution. Core owns recovery and discovery. +class ERR_IntelService +{ + protected ERR_GameMode m_Mode; + protected ref array m_Requests = {}; + protected ref set m_Rolled = new set(); + + void ERR_IntelService(ERR_GameMode mode) { m_Mode = mode; } + void RegisterGroup(SCR_AIGroup group) + { + if (!Replication.IsServer() || !group) return; + array members = {}; + group.GetAgents(members); + foreach (AIAgent member : members) + { + if (!member) continue; + IEntity actor = member.GetControlledEntity(); + if (!ERR_Actors.Alive(actor) || ERR_Actors.Player(actor) || m_Rolled.Contains(actor)) continue; + m_Rolled.Insert(actor); + if (Math.RandomInt(0, 100) >= m_Mode.Settings().Get("aiIntelChancePercent")) continue; + if (m_Requests.Count() >= 256) continue; + ERR_IntelRequest request = new ERR_IntelRequest(); + request.Actor = actor; + m_Requests.Insert(request); + } + } + + + void Tick(float now) + { + if (!Replication.IsServer()) return; + int budget = 8; + for (int i = m_Requests.Count() - 1; i >= 0 && budget > 0; i--) + { + budget--; + ERR_IntelRequest request = m_Requests[i]; + if (!ERR_Actors.Alive(request.Actor) || ERR_Actors.Player(request.Actor)) { m_Requests.Remove(i); continue; } + SCR_InventoryStorageManagerComponent inventory = SCR_InventoryStorageManagerComponent.Cast(request.Actor.FindComponent(SCR_InventoryStorageManagerComponent)); + array folders = {}; + if (inventory) ERR_DiscoveryService.Folders(inventory, folders); + if (!folders.IsEmpty()) { m_Requests.Remove(i); continue; } + request.Attempts++; + if (request.Attempts > 30) + { + Print("Rereintroduced [intel]: bounded assignment failed", LogLevel.WARNING); + m_Requests.Remove(i); continue; + } + if (inventory && !request.Accepted) + request.Accepted = inventory.TrySpawnPrefabToStorage(ERR_Resources.IntelFolder(), purpose: EStoragePurpose.PURPOSE_ANY); + } + } + + + void Stop() { m_Requests.Clear(); m_Rolled.Clear(); } +} + +modded class ERR_GameMode +{ + protected ref ERR_IntelService m_Intel; + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (SCR_Global.IsEditMode() || !Replication.IsServer()) return; + m_Intel = new ERR_IntelService(this); + OnGroup().Insert(m_Intel.RegisterGroup); + OnTick().Insert(m_Intel.Tick); + OnStop().Insert(m_Intel.Stop); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/addon.gproj new file mode 100644 index 0000000..5b29a17 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/intel/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Intel" + GUID "D31039C7C53E348A" + TITLE "Escapists Rereintroduced - Intel" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat new file mode 100644 index 0000000..d70697c --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat @@ -0,0 +1,7 @@ +MatPBRBasic { + Color 0.882 0.847 0.792 1 + AlphaTest 0.5 + AllowUserAlphaBias 1 + BCRMap "$rendertarget" + OpacityMap "{A64A8C63E0FBAE87}system/textures/defWhite.edds" "{A64A8C63E0FBAE87}system/textures/defWhite.edds" anim( 0 ) +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat.meta new file mode 100644 index 0000000..e99a6d5 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Materials/ERRM_MapRenderTarget.emat.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{03D6DE777C8E411C}Materials/ERRM_MapRenderTarget.emat" + Configurations { + ResourceClass PC { + } + ResourceClass XBOX_ONE : PC { + } + ResourceClass XBOX_SERIES : PC { + } + ResourceClass PS4 : PC { + } + ResourceClass PS5 : PC { + } + ResourceClass HEADLESS : PC { + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et new file mode 100644 index 0000000..9122e76 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et @@ -0,0 +1,78 @@ +GameEntity : "{C95E11C60810F432}Prefabs/Items/Core/Item_Base.et" { + ID "6FB475409DE44320" + components { + InventoryItemComponent "{5222EB4D0C73006B}" { + Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { + ItemDisplayName UIInfo "{7236A6DB18BD574C}" { + Name "Shared Field Map" + Description "A field map whose visible surface can be read by nearby players." + } + ItemPhysAttributes ItemPhysicalAttributes PhysicalAttributes { + Weight 0.1 + SizeSetupStrategy Manual + ItemDimensions 5 5 5 + ItemVolume 200 + DimensionScaler 1 + RestingAdditiveRotationLS 0 0 0 + RestingAdditiveOffsetLS 0 0 0 + } + ItemAnimationAttributes ItemAnimationAttributes "{4AC999738D39BA9A}" { + AnimationAttachments { + AnimationAttachmentInfo "{1D66E5B861D2F00A}" { + AnimGraph "{83675D0B0AB1B2C3}Assets/Items/Equipment/workspaces/paper_map.agr" + AnimInstance "{56794534F6B8C3D7}Assets/Items/Equipment/workspaces/player_map.asi" + BindingName "Gadget" + } + } + AllowInspection 1 + } + CustomAttributes { + PreviewRenderAttributes "{D12878E6C065B83D}" { + CameraPreset Top + CameraOrbitAngles -25 35 -25 + CameraDistanceToItem 2 + CameraOffset -0.01 0 0 + ItemRenderRotation 0 0 180 + FOV 10.5 + AspectRatio 1 + LodModel 1 + } + CharacterModifierAttributes "{78A32EF06ED3CB42}" { + ADSSpeedLimit 1 + } + } + m_eQuickSlotSize SLOT_1x1 + m_SlotType SLOT_GADGETS_STORAGE + } + } + MeshObject "{E66421D681D64AB7}" { + Object "{E443663E5241622A}Assets/Items/Equipment/Maps/Map_Paper_01/Map_Paper_01_folded.xob" + Materials { + MaterialAssignClass "{667CE655A40B0E50}" { + SourceMaterial "01__Default" + AssignedMaterial "{03D6DE777C8E411C}Materials/ERRM_MapRenderTarget.emat" + } + } + InheritVisibility 1 + } + RigidBody "{B29D8B091D657415}" { + Enabled 1 + LinearDamping 0.5 + AngularDamping 0.5 + AngularSleepingThreashold 1 + ModelGeometry 1 + } + ERRM_SharedMapComponent "{B576912A7A69396F}" { + m_sLayoutName "{255E1265F702B4AE}UI/layouts/ERRMap/SharedMapRenderTarget.layout" + m_eAnimVariable MAP + } + SCR_SoundDataComponent "{B6F06259A1F25D94}" { + m_aAudioSourceConfiguration { + SCR_AudioSourceConfiguration "{1F4628334AB3CE95}" { + m_sSoundProject "{13F8D0DE67678118}Sounds/Items/_SharedData/PickUp/Items_PickUp_Map.acp" + } + } + } + } + coords 0 0 0 +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta new file mode 100644 index 0000000..204db41 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{A46500E4A30B653B}Prefabs/Items/Equipment/ERRM_SharedFieldMap.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c new file mode 100644 index 0000000..022e963 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c @@ -0,0 +1,7 @@ +modded class ERR_ScenarioComponent +{ + protected override ResourceName FieldMap() + { + return "{A46500E4A30B653B}Prefabs/Items/Equipment/ERRM_SharedFieldMap.et"; + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c new file mode 100644 index 0000000..5c01b0d --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c @@ -0,0 +1,200 @@ +[ComponentEditorProps(category: "GameScripted/Gadgets", description: "Vanilla map gadget with a world-visible rendered surface")] +class ERRM_SharedMapComponentClass : SCR_MapGadgetComponentClass +{ + [Attribute("{255E1265F702B4AE}UI/layouts/ERRMap/SharedMapRenderTarget.layout", UIWidgets.ResourcePickerThumbnail, "Off-screen map render target", "layout")] + protected ResourceName m_sLayoutName; + + [Attribute("0.12", UIWidgets.EditBox, "Initial map zoom in pixels per metre", "0.01 20", category: "Shared Map")] + protected float m_fInitialZoom; + + ResourceName GetSharedMapLayout() + { + return m_sLayoutName; + } + + float GetInitialZoom() + { + return m_fInitialZoom; + } +} + +// This remains a real SCR_MapGadgetComponent, so the normal M-key map, +// animations, ruler and faction-specific protractor settings keep working. +// The extra off-screen widget supplies the texture used by the held model. +class ERRM_SharedMapComponent : SCR_MapGadgetComponent +{ + protected const ResourceName MAP_CONFIG = "{A786DD4868598F15}Configs/Map/MapPlain.conf"; + protected const int MAP_SETUP_DELAY_MS = 100; + protected const int MAP_CAPTURE_DELAY_MS = 500; + protected const int MAP_RETRY_DELAY_MS = 250; + + protected Widget m_ESMRootWidget; + protected RTTextureWidget m_ESMRenderTarget; + protected SCR_MapEntity m_ESMMapEntity; + protected IEntity m_ESMCharacterOwner; + protected bool m_bESMInHand; + protected bool m_bESMOwnsMapRenderer; + + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + + ERRM_SharedMapComponentClass data = ERRM_SharedMapComponentClass.Cast(GetComponentData(owner)); + WorkspaceWidget workspace = GetGame().GetWorkspace(); + if (!data || !workspace || data.GetSharedMapLayout().IsEmpty()) + return; + + m_ESMRootWidget = workspace.CreateWidgets(data.GetSharedMapLayout()); + if (!m_ESMRootWidget) + return; + + m_ESMRenderTarget = RTTextureWidget.Cast(m_ESMRootWidget.FindAnyWidget("RTTexture0")); + if (!m_ESMRenderTarget) + return; + + m_ESMRenderTarget.SetRenderTarget(owner); + m_ESMRenderTarget.SetEnabled(false); + } + + protected override void ModeSwitch(EGadgetMode mode, IEntity charOwner) + { + if (mode != EGadgetMode.IN_HAND || !m_ESMRootWidget || !m_ESMRenderTarget) + { + super.ModeSwitch(mode, charOwner); + return; + } + + m_bESMInHand = true; + m_ESMCharacterOwner = charOwner; + TryCaptureMapSurface(); + } + + protected override void ModeClear(EGadgetMode mode) + { + if (mode == EGadgetMode.IN_HAND) + StopMapCapture(); + + super.ModeClear(mode); + } + + protected void TryCaptureMapSurface() + { + if (!m_bESMInHand) + return; + + if (!m_ESMRootWidget || !m_ESMRenderTarget) + { + CompleteMapModeSwitch(); + return; + } + + m_ESMMapEntity = SCR_MapEntity.GetMapInstance(); + if (!m_ESMMapEntity) + { + CompleteMapModeSwitch(); + return; + } + + // The owner's normal map has priority. Capture only after it closes; + // otherwise this auxiliary render would replace or close the M-key UI. + if (m_ESMMapEntity.IsOpen()) + { + GetGame().GetCallqueue().CallLater(TryCaptureMapSurface, MAP_RETRY_DELAY_MS, false); + return; + } + + m_ESMRenderTarget.SetEnabled(true); + MapConfiguration mapConfig = m_ESMMapEntity.SetupMapConfig(EMapEntityMode.PLAIN, MAP_CONFIG, m_ESMRootWidget); + if (!mapConfig) + { + CompleteMapModeSwitch(); + return; + } + + m_ESMMapEntity.OpenMap(mapConfig); + m_bESMOwnsMapRenderer = true; + RestoreCharacterCamera(); + + GetGame().GetCallqueue().CallLater(CenterMapOnHolder, MAP_SETUP_DELAY_MS, false); + GetGame().GetCallqueue().CallLater(FinishMapCapture, MAP_CAPTURE_DELAY_MS, false); + } + + protected void CenterMapOnHolder() + { + if (!m_bESMOwnsMapRenderer || !m_ESMMapEntity || !m_ESMCharacterOwner) + return; + + ERRM_SharedMapComponentClass data = ERRM_SharedMapComponentClass.Cast(GetComponentData(GetOwner())); + if (!data) + return; + + vector holderPosition = m_ESMCharacterOwner.GetOrigin(); + m_ESMMapEntity.ZoomPanSmooth(data.GetInitialZoom(), holderPosition[0], holderPosition[2], 0.1); + } + + protected void FinishMapCapture() + { + if (!m_bESMOwnsMapRenderer) + return; + + // Freeze the last rendered frame before closing the auxiliary map. + // Leaving the widget enabled would redraw the closed map as an empty + // texture and make the physical map appear to vanish. + if (m_ESMRenderTarget) + m_ESMRenderTarget.SetEnabled(false); + + if (m_ESMMapEntity && m_ESMMapEntity.IsOpen()) + m_ESMMapEntity.CloseMap(); + + m_bESMOwnsMapRenderer = false; + RestoreCharacterCamera(); + CompleteMapModeSwitch(); + } + + protected void CompleteMapModeSwitch() + { + if (!m_bESMInHand || !m_ESMCharacterOwner) + return; + + // Start the stock map only after the world-visible surface owns a frame. + super.ModeSwitch(EGadgetMode.IN_HAND, m_ESMCharacterOwner); + } + + protected void StopMapCapture() + { + m_bESMInHand = false; + GetGame().GetCallqueue().Remove(TryCaptureMapSurface); + GetGame().GetCallqueue().Remove(CenterMapOnHolder); + GetGame().GetCallqueue().Remove(FinishMapCapture); + + if (m_bESMOwnsMapRenderer && m_ESMMapEntity && m_ESMMapEntity.IsOpen()) + m_ESMMapEntity.CloseMap(); + + m_bESMOwnsMapRenderer = false; + m_ESMCharacterOwner = null; + RestoreCharacterCamera(); + } + + protected void RestoreCharacterCamera() + { + if (!GetGame()) return; + PlayerController playerController = GetGame().GetPlayerController(); + if (playerController) + playerController.SetCharacterCameraRenderActive(true); + } + + protected override void OnDelete(IEntity owner) + { + StopMapCapture(); + + // The entity may already be destroyed when this callback runs during a + // world restart. Destroying the widget releases its render binding without + // passing the deleted entity back into the native renderer. + if (m_ESMRootWidget) + m_ESMRootWidget.RemoveFromHierarchy(); + + m_ESMRenderTarget = null; + m_ESMRootWidget = null; + super.OnDelete(owner); + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout new file mode 100644 index 0000000..bcefcb9 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout @@ -0,0 +1,39 @@ +FrameWidgetClass { + Name "rootFrame" + Slot FrameWidgetSlot { + SizeX 1024 + OffsetRight -1024 + SizeY 1024 + OffsetBottom -1024 + } + { + RTTextureWidgetClass { + Name "RTTexture0" + Slot FrameWidgetSlot { + Anchor 0 0 1 1 + SizeX -1024 + OffsetRight 0 + SizeY -1024 + OffsetBottom 0 + } + { + MapWidgetClass { + Name "MapWidget" + Slot FrameWidgetSlot { + Anchor 0 0 1 1 + SizeX -1024 + OffsetRight 0 + SizeY -1024 + OffsetBottom 0 + } + Clipping False + Color 1 1 1 1 + SizeInUnits 1024 1024 + OffsetPixels 0 0 + Clear 1 + ClearColor 0.78 0.74 0.62 1 + } + } + } + } +} diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta new file mode 100644 index 0000000..84e4dae --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{255E1265F702B4AE}UI/layouts/ERRMap/SharedMapRenderTarget.layout" + Configurations { + LayoutResourceClass PC { + } + LayoutResourceClass XBOX_ONE : PC { + } + LayoutResourceClass XBOX_SERIES : PC { + } + LayoutResourceClass PS4 : PC { + } + LayoutResourceClass PS5 : PC { + } + LayoutResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/docs/evidence/package-2026-09-19-111731-all/source/addons/map/addon.gproj b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/addon.gproj new file mode 100644 index 0000000..5d0a4d2 --- /dev/null +++ b/docs/evidence/package-2026-09-19-111731-all/source/addons/map/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Map" + GUID "9AAEE9041D79809E" + TITLE "Escapists Rereintroduced - Map" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/package-control-2026-09-19-110404/archive-sha256.json b/docs/evidence/package-control-2026-09-19-110404/archive-sha256.json new file mode 100644 index 0000000..51f2bfe --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/archive-sha256.json @@ -0,0 +1,16 @@ +{ + "package-report.json": "a939363407337bcd6e130f113234cb4802d76d6ec8205c7fd16d401dc1aec611", + "authored-before.json": "e4f14d5abbf3628bb7e5bd895c8f88b810ad24c5211215506f7b50885cd6be8e", + "repository-after.json": "e4f14d5abbf3628bb7e5bd895c8f88b810ad24c5211215506f7b50885cd6be8e", + "evidence/core/authored-after.json": "e4f14d5abbf3628bb7e5bd895c8f88b810ad24c5211215506f7b50885cd6be8e", + "evidence/core/launch.json": "893ce9969ca633559987a71dbac6484429d3c3abdf662045f3d30e60044fde55", + "evidence/core/launch.log.txt": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9", + "evidence/core/native-child.py": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "evidence/core/native-exit.json": "7aa546c56dbe07851ab022afbf83d8c7161dd5bfa4375785e441f01ca54bbfd3", + "evidence/core/native-prefix-environment.json": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "evidence/core/report.json": "7bdd52120ab3b11a170f56d5d04520ca200c5f55934d376e726184181cd72bd9", + "profiles/core/logs/logs_2026-09-19_11-04-04/console.log.txt": "312aa588ce18762ac7ba8543f189e991094319181fa39633557088bdb772267f", + "profiles/core/logs/logs_2026-09-19_11-04-04/error.log.txt": "880c6b0a67f344b61c8ca589ccfdb574461561fe426a0de392ca0d8d35c27723", + "profiles/core/logs/logs_2026-09-19_11-04-04/script.log.txt": "d07874c0def4b74f6ff13a8e309256b96ea191934a7198694d52511d10b4863d", + "control-description.json": "bf7c5f7b65b04b6c9cb69f38b262947899b0d07c331febe57b83a5e5700d16ed" +} diff --git a/docs/evidence/package-control-2026-09-19-110404/authored-before.json b/docs/evidence/package-control-2026-09-19-110404/authored-before.json new file mode 100644 index 0000000..a2afa6e --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/authored-before.json @@ -0,0 +1,7 @@ +{ + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-control-2026-09-19-110404/control-description.json b/docs/evidence/package-control-2026-09-19-110404/control-description.json new file mode 100644 index 0000000..ef7fa3e --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/control-description.json @@ -0,0 +1,12 @@ +{ + "control_only": true, + "scope": "Private empty-addon Workbench packaging shutdown control; no successor scripts/resources or mission loaded. Own project identities retained solely in isolated input copy. No game or release qualification.", + "files": { + "BUNDLE-README.md": "362400b7a344ee14afe3ba775881c577992791e165b4dde5c993f97b60c069f4", + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + } +} diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/authored-after.json b/docs/evidence/package-control-2026-09-19-110404/evidence/core/authored-after.json new file mode 100644 index 0000000..a2afa6e --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/authored-after.json @@ -0,0 +1,7 @@ +{ + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.json b/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.json new file mode 100644 index 0000000..5ea2766 --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.json @@ -0,0 +1,77 @@ +{ + "authored": { + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" + }, + "child_recorder_sha256": "e9bffed11eda616ae4059eb8276f2e546ec203d4ec53106edf37a37333a55d86", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/usr/bin/python3", + "/tmp/erri-empty-package-control-20260919-1104/evidence/core/native-child.py", + "/tmp/erri-empty-package-control-20260919-1104/evidence/core/native-exit.json", + "/tmp/erri-empty-package-control-20260919-1104/evidence/core/native-prefix-environment.json", + "/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:/tmp/erri-empty-package-control-20260919-1104/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/source/addons", + "-profile", + "Z:/tmp/erri-empty-package-control-20260919-1104/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/cache/core", + "-wbSilent" + ], + "executable_sha256": "7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798", + "native_command": [ + "/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:/tmp/erri-empty-package-control-20260919-1104/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/source/addons", + "-profile", + "Z:/tmp/erri-empty-package-control-20260919-1104/profiles/core", + "-logconsole", + "-noBackend", + "-noSound", + "-disableCrashReporter", + "-wbModule=ResourceManager", + "-packAddon", + "-packAddonDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/packages/core", + "-packAddonCacheDir", + "Z:/tmp/erri-empty-package-control-20260919-1104/cache/core", + "-wbSilent" + ], + "native_environment_sha256": "593c75429a2e30d413230e5bb3c1e2a439b0f8b95eceeb76f241603ea6da089c", + "proton_sha256": "05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332", + "silent_workbench_experiment": true, + "started_unix": 1789808642.4078236 +} diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.log.txt b/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.log.txt new file mode 100644 index 0000000..6210b08 --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/launch.log.txt @@ -0,0 +1,129 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 1 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4 +[Gamescope WSI] Surface state: + steam app id: 1874910 + window xid: 0x1a001a4 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-child.py b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-child.py new file mode 100644 index 0000000..4681c2c --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-child.py @@ -0,0 +1,9 @@ +import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-exit.json b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-exit.json new file mode 100644 index 0000000..b57d808 --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-exit.json @@ -0,0 +1 @@ +{"command": ["/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:/tmp/erri-empty-package-control-20260919-1104/source/addons/core/addon.gproj", "-addonsDir", "Z:/tmp/erri-empty-package-control-20260919-1104/source/addons", "-profile", "Z:/tmp/erri-empty-package-control-20260919-1104/profiles/core", "-logconsole", "-noBackend", "-noSound", "-disableCrashReporter", "-wbModule=ResourceManager", "-packAddon", "-packAddonDir", "Z:/tmp/erri-empty-package-control-20260919-1104/packages/core", "-packAddonCacheDir", "Z:/tmp/erri-empty-package-control-20260919-1104/cache/core", "-wbSilent"], "exit_code": 0} \ No newline at end of file diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-prefix-environment.json b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-prefix-environment.json new file mode 100644 index 0000000..807f6db --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/native-prefix-environment.json @@ -0,0 +1,5 @@ +{ + "STEAM_COMPAT_CLIENT_INSTALL_PATH": "/home/jakub/.local/share/Steam", + "STEAM_COMPAT_DATA_PATH": "/tmp/erri-headless-compat", + "WINEPREFIX": "/tmp/erri-headless-compat/pfx" +} diff --git a/docs/evidence/package-control-2026-09-19-110404/evidence/core/report.json b/docs/evidence/package-control-2026-09-19-110404/evidence/core/report.json new file mode 100644 index 0000000..64ec081 --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/evidence/core/report.json @@ -0,0 +1,157 @@ +{ + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-empty-package-control-20260919-1104/evidence/core/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/console.log": { + "bytes": 20556, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "312aa588ce18762ac7ba8543f189e991094319181fa39633557088bdb772267f" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/error.log": { + "bytes": 4077, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "880c6b0a67f344b61c8ca589ccfdb574461561fe426a0de392ca0d8d35c27723" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/script.log": { + "bytes": 3489, + "errors": [], + "sha256": "d07874c0def4b74f6ff13a8e309256b96ea191934a7198694d52511d10b4863d" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "7aa546c56dbe07851ab022afbf83d8c7161dd5bfa4375785e441f01ca54bbfd3", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "resourceDatabase.rdb": { + "bytes": 81, + "sha256": "aa99c56b0f51d42fce6bf404dc5404fbcfdd16607edb504213400c9a0da1b463" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false +} diff --git a/docs/evidence/package-control-2026-09-19-110404/package-report.json b/docs/evidence/package-control-2026-09-19-110404/package-report.json new file mode 100644 index 0000000..8dd899a --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/package-report.json @@ -0,0 +1,171 @@ +{ + "all_candidates_created": false, + "kind": "UNQUALIFIED NATIVE PACKAGE ATTEMPT", + "project_order": [ + "core" + ], + "projects": [ + { + "candidate_created": false, + "cleanup_confirmed": true, + "completion_observed": "native-child-exited", + "copied_authored_unchanged": true, + "display_cleanup_after_native_exit": true, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "launcher_exit_code": null, + "logs": { + "/tmp/erri-empty-package-control-20260919-1104/evidence/core/launch.log": { + "bytes": 9115, + "errors": [], + "sha256": "351ea7dea503e736b0c79a5d31ad223063f8c528bfddfe08a6ba8cf33a0eb7d9" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/console.log": { + "bytes": 20556, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1" + ], + "sha256": "312aa588ce18762ac7ba8543f189e991094319181fa39633557088bdb772267f" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/error.log": { + "bytes": 4077, + "errors": [ + "11:04:10.562 RESOURCES (E): ==== Resource leaks ====", + "11:04:10.562 RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/debugUI.edds 1", + "11:04:10.562 RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1", + "11:04:10.562 RESOURCES (E): UI/Imagesets/default.edds 1", + "11:04:10.562 RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1", + "Nonempty native error.log" + ], + "sha256": "880c6b0a67f344b61c8ca589ccfdb574461561fe426a0de392ca0d8d35c27723" + }, + "/tmp/erri-empty-package-control-20260919-1104/profiles/core/logs/logs_2026-09-19_11-04-04/script.log": { + "bytes": 3489, + "errors": [], + "sha256": "d07874c0def4b74f6ff13a8e309256b96ea191934a7198694d52511d10b4863d" + } + }, + "native_consumption_verified": false, + "native_exit_code": 0, + "native_status_sha256": "7aa546c56dbe07851ab022afbf83d8c7161dd5bfa4375785e441f01ca54bbfd3", + "package_contents_verified": false, + "packages": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "resourceDatabase.rdb": { + "bytes": 81, + "sha256": "aa99c56b0f51d42fce6bf404dc5404fbcfdd16607edb504213400c9a0da1b463" + } + }, + "project": "core", + "qualification": "PENDING: inspect native contents and load packed-only addon closure; no release claim", + "release_qualified": false, + "result": "validation-failed", + "runner_error": null, + "silent_workbench_experiment": true, + "tool_completion_semantics_verified": false + } + ], + "published": false, + "qualification": "PENDING native contents inspection and packed-only consumption", + "release_qualified": false, + "session": "/tmp/erri-empty-package-control-20260919-1104", + "source_repository_unchanged": true +} diff --git a/docs/evidence/package-control-2026-09-19-110404/repository-after.json b/docs/evidence/package-control-2026-09-19-110404/repository-after.json new file mode 100644 index 0000000..a2afa6e --- /dev/null +++ b/docs/evidence/package-control-2026-09-19-110404/repository-after.json @@ -0,0 +1,7 @@ +{ + "addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a" +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/archive-kind.json b/docs/evidence/packed-chat-2026-09-19-113315/archive-kind.json new file mode 100644 index 0000000..15c0ee3 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/archive-kind.json @@ -0,0 +1,15 @@ +{ + "schema_version": 2, + "kind": "packed-chat-consumption", + "packed_launch_id": "3d2c0cb4-3d7f-4ca9-8ceb-1870d284743e", + "build_qualified": false, + "release_qualified": false, + "project": "chat", + "addon_order": [ + "core", + "ai", + "intel", + "map", + "chat" + ] +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/archive-sha256.json b/docs/evidence/packed-chat-2026-09-19-113315/archive-sha256.json new file mode 100644 index 0000000..b2c4934 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/archive-sha256.json @@ -0,0 +1,27 @@ +{ + "archive-kind.json": "37e1d64a3a7f81f3081f772a8a12a61e574c971cb5d9ff3ff639724cd386be93", + "console.log.txt": "3b0eb4a813f6719ab06878b9252ed077ecf495923e3ec851232aa31504697177", + "error.log.txt": "1159363f60787f715fb9699406c01e614511b770aad945acad5869b34cb1f9f9", + "headless-launch.log.txt": "7bc25bef58a3d14b4be58635f671ad643a0e550bf3ffef78bb7227e56799ff9c", + "package/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1", + "package/ai/data.pak": "c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98", + "package/ai/resourceDatabase.rdb": "84c7b44e7f3ed6837feb4ac685c934dc974f0658ec8f8d419afb91bb3b1f815c", + "package/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e", + "package/chat/data.pak": "19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506", + "package/chat/resourceDatabase.rdb": "ee33c417a1372f33c2ca25d82456e524964dcc3beddf9d55211ba83059ed8983", + "package/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "package/core/data.pak": "68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065", + "package/core/resourceDatabase.rdb": "1561eb190f1aa221e5c53ddfad6fd18e5ce6fa14e7d32c3ed7c9dec194df8ba4", + "package/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe", + "package/intel/data.pak": "362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404", + "package/intel/resourceDatabase.rdb": "062996b9102e99d19eb680bed04880b0e087d9f8789681c0f3ff8ab6772339ba", + "package/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a", + "package/map/data.pak": "be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67", + "package/map/resourceDatabase.rdb": "0a7ba691475355fd5475410c0a2edb9bedddd1a02a221c324c5a34890a01a993", + "packed-input-provenance.json": "1e512cc6b78ada33d96ccecd51be5fb75378b818ad404a3c5cfeab88f8ee3191", + "raw-startup-report.json": "b131e12ea9f2d39cffbf1313350806fcbf34c3d16c1f49371d25a13968fc341b", + "report.json": "24bf982cb77ae06ddc7b34d8a4451905bad0382cbc980c607023a739ee875d20", + "rereintroduced-hq.log.txt": "45d87ef6bc10ef4a90854c87a94eb3c7868589d43363fd6e682bfa5d87e61383", + "runner.json.txt": "138927c5092c4e06d3fa7da81ce0888a7570a3a7954dd7e716b2e76fe08057bc", + "script.log.txt": "dc5163e51e56de9fd8f8391a690cddf8317f8b817dcdc8f796fad7879baa04fb" +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/console.log.txt b/docs/evidence/packed-chat-2026-09-19-113315/console.log.txt new file mode 100644 index 0000000..b7b7d4d --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/console.log.txt @@ -0,0 +1,490 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15\console.log started at 2026-09-19 11:33:15 (2026-09-19 09:33:15 UTC) + +11:33:15.922 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15' to filesystem under name logs +11:33:15.922 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-chat-20260919-1133\profile\profile' to filesystem under name profile +11:33:15.922 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger\' +11:33:15.923 ENGINE : Initializing engine, version 192142 +11:33:15.923 ENGINE : CLI Params: -addonsDir Z:/tmp/erri-packed-chat-20260919-1133/input/addons -addons FA804F411BDDF2C6 -profile Z:/tmp/erri-packed-chat-20260919-1133/profile -errOrdinaryScenario chat -noSplash -noBackend -noSound -noThrow -disableCrashReporter -logconsole +11:33:15.930 ENGINE : Addon dirs: +11:33:15.930 ENGINE : dir: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons' +11:33:15.930 ENGINE : dir: './addons' +11:33:15.930 ENGINE : dir: 'Z:/tmp/erri-packed-chat-20260919-1133/profile/addons' +11:33:15.930 ENGINE : Available addons: +11:33:15.930 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/addon.gproj' guid: '5192138CB9D5B911' (packed) +11:33:15.930 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' (packed) +11:33:15.930 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:33:15.930 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' (packed) +11:33:15.930 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/addon.gproj' guid: '9AAEE9041D79809E' (packed) +11:33:15.930 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:33:15.930 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:33:15.931 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/' (pak count: 1) to filesystem under name ERR_Chat +11:33:15.931 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/' (pak count: 1) to filesystem under name ERR_Map +11:33:15.932 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/' (pak count: 1) to filesystem under name ERR_Intel +11:33:15.933 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/' (pak count: 1) to filesystem under name ERR_Ai +11:33:15.933 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:33:16.053 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:33:16.057 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:33:16.057 ENGINE : CPU vendor : AuthenticAMD +11:33:16.057 ENGINE : CPU type : 2 +11:33:16.057 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:33:16.057 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:33:16.057 ENGINE : CPU count logical : 16 +11:33:16.057 ENGINE : CPU count physical : 8 +11:33:16.057 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:33:16.057 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/resourceDatabase.rdb) +11:33:16.057 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/resourceDatabase.rdb) +11:33:16.058 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/resourceDatabase.rdb) +11:33:16.058 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/resourceDatabase.rdb) +11:33:16.058 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/resourceDatabase.rdb) +11:33:16.059 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:33:16.191 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +11:33:16.192 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-packed-chat-20260919-1133\profile\profile/resourceDatabase.rdb) +11:33:16.192 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15/resourceDatabase.rdb) +11:33:16.342 ENGINE : GameProject load +11:33:16.342 ENGINE : Loaded addons: +11:33:16.342 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:33:16.342 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:33:16.342 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:33:16.342 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:33:16.342 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:33:16.342 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:33:16.342 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:33:16.345 ENGINE : Loading custom engine user config '$profile:.save/app1874880_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:33:16.345 ENGINE : No Enfusion settings file loaded. Continuing with defaults +11:33:16.345 ENGINE : Locale info: system en-US (English), user en-US (English) +11:33:16.479 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:33:16.481 RENDER : Basic screen setup: +11:33:16.481 RENDER : Back buffer width x height: 1280x720 +11:33:16.481 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:33:16.481 RENDER : MSAA : none +11:33:16.494 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:33:16.494 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:33:16.494 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:33:16.494 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:33:16.494 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:33:16.494 RENDER : AMD AGS correctly initialized +11:33:16.494 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 +11:33:16.494 RENDER : Detected output devices: +11:33:16.494 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:33:16.494 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:33:16.494 RENDER : Concurrent frames limit 2 +11:33:16.569 RENDER : DX12 device successfully created by AMD AGS library +11:33:16.569 RENDER : * user markers not supported in this version AMD SW +11:33:16.569 RENDER : Graphics device features +11:33:16.569 RENDER : Needed: +11:33:16.569 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:33:16.569 RENDER : Optional: +11:33:16.569 RENDER : * Allow tearing (VSYNC) : 1 +11:33:16.569 RENDER : * 16 bits : 1 +11:33:16.569 RENDER : * Resource heap tier : 3 +11:33:16.569 RENDER : * Persistent heaps (DRED) : 1 +11:33:16.569 RENDER : * DRED 1.2 is supported by compiler +11:33:16.590 RENDER : Main RT format setup. +11:33:16.590 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:33:16.590 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:33:16.594 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=7 +11:33:16.619 PROFILING : Settings changed took: 0.976600 ms +11:33:16.625 RENDER : RENDER : Reload shaders +11:33:16.625 RENDER : Enfusion shader version 13 +11:33:16.625 INIT : INIT : ShaderListReload +11:33:16.625 PROFILING : ShaderListReload took: 0.000400 ms +11:33:17.041 RENDER : Loaded 3383 newer shader binaries +11:33:17.041 PROFILING : Reload shaders took: 415.739500 ms +11:33:17.044 ENGINE : Initializing inputs. +11:33:17.059 NETWORK : Initializing networking. +11:33:17.059 NETWORK : Using new GameRplScheduler. +11:33:17.059 SCRIPT : SCRIPT : Initializing scripts +11:33:17.059 SCRIPT : SCRIPT : ScriptProjectManager init +11:33:17.059 PROFILING : ScriptProjectManager init took: 0.010500 ms +11:33:17.079 PROFILING : Initializing scripts took: 19.347400 ms +11:33:17.079 BACKEND : Backend Services are disabled. +11:33:17.079 ENGINE : Enfusion engine successfully created. +11:33:17.088 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:33:17.110 GUI : Using default language (en_us) +11:33:17.110 GUI : Loading 'en_us' localization file. +11:33:17.110 INIT : INIT : Loading StringTable +11:33:17.136 PROFILING : Loading StringTable took: 25.191000 ms +11:33:17.136 SCRIPT : SCRIPT : Compiling GameLib scripts +11:33:17.167 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:33:17.168 PROFILING : Compiling GameLib scripts took: 31.895600 ms +11:33:17.168 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:33:17.168 SCRIPT : SCRIPT : Compiling Game scripts +11:33:18.017 SCRIPT : Compiling Game scripts +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:18.245 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.256 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:18.283 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:18.411 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:18.455 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:18.467 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:18.510 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.510 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:18.564 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:18.694 SCRIPT : Module: Game; loaded 5776x files; 11193x classes; used 26975K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: c91180ab +11:33:18.723 PROFILING : Compiling Game scripts took: 1555.264000 ms +11:33:18.723 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:33:18.760 ENGINE : Game successfully created. +11:33:18.774 PLATFORM : Save data from container 'settings' have been loaded +11:33:18.874 PLATFORM : Save data from container 'sessions' have been loaded +11:33:19.275 PLATFORM : System language differs from the saved one - using new language {new: 'en_us'; old: ''} +11:33:19.276 PLATFORM : Save data transaction to 'settings' started. +11:33:19.372 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission 'worlds/MainMenuWorld/MainMenuWorld.ent'. +11:33:19.373 WORLD : WORLD : Entities load 'worlds/MainMenuWorld/MainMenuWorld.ent' +11:33:19.374 PROFILING : Entities load took: 0.249200 ms +11:33:19.375 WORLD : WORLD : Game::LoadEntities +11:33:19.375 WORLD : WORLD : Initializing world systems +11:33:19.376 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:33:19.376 WORLD : WORLD : CreateEntities +11:33:19.376 WORLD : WORLD : CreateEntities +11:33:19.376 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:33:19.378 RESOURCES : Loaded mission headers from 7 addon(s)! +11:33:19.378 PROFILING : NotifyBeforeEntitiesCreated took: 1.487300 ms +11:33:19.378 WORLD : WORLD : Wait for preloading data +11:33:19.378 PROFILING : Wait for preloading data took: 0.001200 ms +11:33:19.378 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:33:19.378 PROFILING : NotifyBeforeEntitiesInitialized took: 0.021800 ms +11:33:19.378 WORLD : InitEntities 'world' +11:33:19.378 ENTITY : Init entity @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> +11:33:19.378 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:33:19.382 WORLD : WORLD : NotifyEntitiesInitialized +11:33:19.382 DEFAULT : DEFAULT : WorldVolumesCollection +11:33:19.382 PROFILING : WorldVolumesCollection took: 0.007300 ms +11:33:19.382 PROFILING : NotifyEntitiesInitialized took: 0.089100 ms +11:33:19.382 PROFILING : CreateEntities took: 5.470800 ms +11:33:19.382 PROFILING : CreateEntities took: 5.478900 ms +11:33:19.382 WORLD : WORLD : EOnActivate +11:33:19.382 PROFILING : EOnActivate took: 0.002300 ms +11:33:19.382 PROFILING : Game::LoadEntities took: 6.957000 ms +11:33:19.571 DEFAULT : Entered main menu. +11:33:19.670 PROFILING : Settings changed took: 0.382700 ms +11:33:19.671 DEFAULT (W): No GameMode present in the world, using fallback logic! +11:33:19.671 SCRIPT : ERR ORDINARY: requesting header project=chat +11:33:20.202 ENGINE : Game destroyed. +11:33:20.332 ENGINE : Addon dirs: +11:33:20.332 ENGINE : dir: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons' +11:33:20.332 ENGINE : dir: './addons' +11:33:20.332 ENGINE : dir: 'Z:/tmp/erri-packed-chat-20260919-1133/profile/addons' +11:33:20.332 ENGINE : dir: '$profile:../addons/' +11:33:20.332 ENGINE : Available addons: +11:33:20.332 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/addon.gproj' guid: '5192138CB9D5B911' (packed) +11:33:20.332 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' (packed) +11:33:20.332 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:33:20.332 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' (packed) +11:33:20.332 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/addon.gproj' guid: '9AAEE9041D79809E' (packed) +11:33:20.332 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:33:20.332 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:33:20.333 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/' (pak count: 1) to filesystem under name ERR_Chat +11:33:20.333 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/' (pak count: 1) to filesystem under name ERR_Map +11:33:20.334 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/' (pak count: 1) to filesystem under name ERR_Intel +11:33:20.335 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/' (pak count: 1) to filesystem under name ERR_Ai +11:33:20.335 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:33:20.449 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:33:20.453 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:33:20.453 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/resourceDatabase.rdb) +11:33:20.453 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/resourceDatabase.rdb) +11:33:20.454 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/resourceDatabase.rdb) +11:33:20.454 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/resourceDatabase.rdb) +11:33:20.454 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/resourceDatabase.rdb) +11:33:20.454 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:33:20.576 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb) +11:33:20.577 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-packed-chat-20260919-1133\profile\profile/resourceDatabase.rdb) +11:33:20.577 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15/resourceDatabase.rdb) +11:33:20.717 ENGINE : GameProject load +11:33:20.717 ENGINE : Loaded addons: +11:33:20.717 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:33:20.717 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:33:20.717 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:33:20.717 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/ai/addon.gproj' guid: '5192138CB9D5B911' +11:33:20.717 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/intel/addon.gproj' guid: 'D31039C7C53E348A' +11:33:20.717 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/map/addon.gproj' guid: '9AAEE9041D79809E' +11:33:20.717 ENGINE : gproj: 'Z:/tmp/erri-packed-chat-20260919-1133/input/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6' +11:33:20.736 GUI : Using default language (en_us) +11:33:20.736 GUI : Loading 'en_us' localization file. +11:33:20.736 INIT : INIT : Loading StringTable +11:33:20.756 PROFILING : Loading StringTable took: 19.557100 ms +11:33:20.756 SCRIPT : SCRIPT : Compiling GameLib scripts +11:33:20.784 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:33:20.785 PROFILING : Compiling GameLib scripts took: 29.247300 ms +11:33:20.785 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:33:20.785 SCRIPT : SCRIPT : Compiling Game scripts +11:33:21.614 SCRIPT : Compiling Game scripts +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:21.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:21.885 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:21.913 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:22.040 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:22.086 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:22.099 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:22.196 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:22.306 SCRIPT : Module: Game; loaded 5776x files; 11193x classes; used 26949K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: c91180ab +11:33:22.334 PROFILING : Compiling Game scripts took: 1549.428200 ms +11:33:22.335 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:33:22.355 ENGINE : Game successfully created. +11:33:22.380 PLATFORM : Save data from container 'settings' have been loaded +11:33:22.463 PLATFORM : Save data from container 'sessions' have been loaded +11:33:22.463 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:33:22.463 ENGINE : Game user settings config loaded +11:33:22.563 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{C1E20667DCE324ED}Missions/ERR_Everon.conf'. +11:33:22.564 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:33:23.525 PROFILING : Entities load took: 960.815900 ms +11:33:23.527 WORLD : WORLD : Game::LoadEntities +11:33:23.527 WORLD : WORLD : Initializing world systems @"{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf" +11:33:23.528 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:33:23.529 WORLD : WORLD : CreateEntities +11:33:23.529 WORLD : WORLD : CreateEntities +11:33:23.529 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:33:23.530 RESOURCES : Loaded mission headers from 7 addon(s)! +11:33:23.530 PROFILING : NotifyBeforeEntitiesCreated took: 1.060800 ms +11:33:23.530 WORLD : WORLD : Wait for preloading data +11:33:23.539 PROFILING : Wait for preloading data took: 8.911300 ms +11:33:23.660 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:33:23.660 PROFILING : PROFILING : Terrain load +11:33:25.103 PROFILING : Terrain load took: 1443.461500 ms +11:33:27.874 WORLD : Game::LoadEntities +11:33:27.874 WORLD : CreateEntities +11:33:27.874 WORLD : CreateEntities +11:33:27.874 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:33:27.874 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:33:27.874 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:33:33.017 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:33:33.017 PROFILING : NotifyBeforeEntitiesInitialized took: 0.057200 ms +11:33:33.593 WORLD : InitEntities 'world' +11:33:33.593 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:33:33.593 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:33:33.613 WORLD : WORLD : NotifyEntitiesInitialized +11:33:33.613 TERRAIN : TERRAIN : Initializing road networks... +11:33:33.616 PROFILING : Initializing road networks... took: 3.460400 ms +11:33:33.616 DEFAULT : DEFAULT : WorldVolumesCollection +11:33:33.676 PROFILING : WorldVolumesCollection took: 59.757500 ms +11:33:33.676 INIT : INIT : SoundWorldInit +11:33:33.690 PROFILING : SoundWorldInit took: 13.906200 ms +11:33:33.690 PROFILING : NotifyEntitiesInitialized took: 77.308000 ms +11:33:33.690 PROFILING : CreateEntities took: 10161.224600 ms +11:33:33.690 PROFILING : CreateEntities took: 10161.401900 ms +11:33:33.691 WORLD : WORLD : Wait for preloading data around camera +11:33:33.941 PROFILING : Wait for preloading data around camera took: 250.341100 ms +11:33:33.941 WORLD : WORLD : EOnActivate +11:33:33.971 PROFILING : EOnActivate took: 29.379700 ms +11:33:33.971 PROFILING : Game::LoadEntities took: 10443.363200 ms +11:33:34.376 DEFAULT : Entered offline game state. +11:33:34.480 SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems +11:33:34.481 NETWORK : Player connected: connectionID=2147483646 +11:33:34.481 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:33:34.481 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:33:34.485 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.485 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:33:34.485 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.485 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! +11:33:34.485 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! +11:33:34.487 SCRIPT (W): Can't open config file "" +11:33:34.487 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:33:34.488 WORLD : InitEntities 'world' +11:33:34.488 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.488 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:33:34.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:33:34.488 SCRIPT (W): Slot_Chat Has no Content! +11:33:34.488 SCRIPT (W): Slot_VON Has no Content! +11:33:34.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:33:34.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:33:34.488 SCRIPT (W): Slot_GameVersion Has no Content! +11:33:34.488 SCRIPT (W): Slot_Notifications Has no Content! +11:33:34.488 SCRIPT (W): Slot_Hints Has no Content! +11:33:34.493 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:33:34.493 SCRIPT : ERR ORDINARY ADMISSION: server=1 sessionMode=0 modePresent=1 controllerPresent=1 identityPresent=0 nameLength=5 +11:33:34.493 SCRIPT : ERR ORDINARY IDENTITY: rawLength=36 rawEmpty=0 rawNull=1 rawFormatValid=1 rawNullSentinel=1 helperLength=36 helperFormatValid=1 dedicated=0 +11:33:34.493 SCRIPT : Rereintroduced [admission]: sole offline controller uses a generated local-round roster key; backend identity and permissions unchanged. +11:33:34.493 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:33:34.493 NETWORK : Players connecting: 0 +11:33:34.493 NETWORK : Players connected: 1 / 1 +11:33:34.505 WORLD : Frame start +11:33:34.505 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:33:34.515 WORLD : UpdateEntities +11:33:34.515 WORLD : Frame +11:33:34.515 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:33:34.662 WORLD : UpdateEntities +11:33:34.662 WORLD : PostFrame +11:33:34.662 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:33:34.662 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:33:34.703 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:33:34.703 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:33:34.703 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:33:34.703 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:33:34.836 RENDER : RENDER : ObjectsHeightMap::Build +11:33:34.836 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:33:34.989 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 153.300000 ms +11:33:34.997 PROFILING : ObjectsHeightMap::Build took: 160.989500 ms +11:33:36.004 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:33:36.018 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:33:36.018 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:33:36.040 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:33:36.042 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:33:36.084 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:33:36.084 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:33:36.090 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:33:36.132 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:33:36.133 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:33:36.134 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:33:36.134 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:33:36.138 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:33:36.139 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:33:36.139 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:33:36.140 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:33:36.140 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:33:36.140 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:33:36.140 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.777 WORLD : UpdateEntities +11:33:36.777 WORLD : AfterPostSimulate +11:33:36.777 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.335 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012.07,63.5095,7499.7> up=0.995332 +11:33:37.335 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.120081 angularSpeed=0.101376 +11:33:37.335 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.05,63.6085,7501.97> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.05,63.3085,7501.97> terrainY=63.3171 tireTerrainGap=-0.00863266 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7012.05,63.6085,7501.97> radius=0.3 bottom=<7012.05,63.3085,7501.97> fraction=0.415686 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00854874 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6083,7497.71> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1583,7497.71> terrainY=64.1562 tireTerrainGap=0.00209045 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6083,7497.71> radius=0.45 bottom=<7009.88,64.1583,7497.71> fraction=0.464386 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00216675 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2586,7497.75> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8086,7497.75> terrainY=63.8176 tireTerrainGap=-0.00894547 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2586,7497.75> radius=0.45 bottom=<7014.42,63.8086,7497.75> fraction=0.413611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0090065 +11:33:37.335 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.402 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5428,7499.73> up=0.994215 +11:33:38.402 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0950941 angularSpeed=0.0210495 +11:33:38.402 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6165,7502> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3165,7502> terrainY=63.3122 tireTerrainGap=0.00427246 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6165,7502> radius=0.3 bottom=<7012.06,63.3165,7502> fraction=0.473699 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00421524 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.6041,7497.73> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.1541,7497.73> terrainY=64.1486 tireTerrainGap=0.00556946 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.6041,7497.73> radius=0.45 bottom=<7009.92,64.1541,7497.73> fraction=0.48009 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00562286 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2633,7497.8> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8133,7497.8> terrainY=63.8148 tireTerrainGap=-0.00149155 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2633,7497.8> radius=0.45 bottom=<7014.46,63.8133,7497.8> fraction=0.447778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00148773 +11:33:38.402 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:38.936 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:33:39.202 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.202 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.203 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.469 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5275,7499.76> up=0.994291 +11:33:39.469 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0517899 angularSpeed=0.0515119 +11:33:39.469 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6123,7502.03> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3123,7502.03> terrainY=63.3099 tireTerrainGap=0.00236893 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6123,7502.03> radius=0.3 bottom=<7012.08,63.3123,7502.03> fraction=0.46522 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00234985 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1414 tireTerrainGap=0.00151062 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.461582 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00154877 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2588,7497.85> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8088,7497.85> terrainY=63.8116 tireTerrainGap=-0.0028801 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2588,7497.85> radius=0.45 bottom=<7014.51,63.8088,7497.85> fraction=0.441389 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00289536 +11:33:39.469 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.536 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994219 +11:33:40.536 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:33:40.536 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6108,7502.04> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3108,7502.04> terrainY=63.3094 tireTerrainGap=0.00142288 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6108,7502.04> radius=0.3 bottom=<7012.08,63.3108,7502.04> fraction=0.461046 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00143051 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1406 tireTerrainGap=0.00244904 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2593,7497.86> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8093,7497.86> terrainY=63.8112 tireTerrainGap=-0.00185776 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2593,7497.86> radius=0.45 bottom=<7014.52,63.8093,7497.86> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:33:40.536 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:41.101 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.101 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:41.102 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.102 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.669 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994219 +11:33:41.669 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:33:41.669 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6108,7502.04> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3108,7502.04> terrainY=63.3094 tireTerrainGap=0.00142288 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6108,7502.04> radius=0.3 bottom=<7012.08,63.3108,7502.04> fraction=0.461046 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00143051 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1406 tireTerrainGap=0.00244904 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2593,7497.86> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8093,7497.86> terrainY=63.8112 tireTerrainGap=-0.00185776 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2593,7497.86> radius=0.45 bottom=<7014.52,63.8093,7497.86> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:33:41.669 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:41.669 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.669 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.670 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:33:41.680 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:33:41.681 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:33:41.681 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:33:41.681 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:33:41.681 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:33:41.681 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:33:41.681 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:33:41.691 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:33:41.735 SCRIPT : ERR ORDINARY: local participant verified project=chat phase=prison +11:33:41.735 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> diff --git a/docs/evidence/packed-chat-2026-09-19-113315/error.log.txt b/docs/evidence/packed-chat-2026-09-19-113315/error.log.txt new file mode 100644 index 0000000..36e3768 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/error.log.txt @@ -0,0 +1,84 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15\error.log started at 2026-09-19 11:33:17 (2026-09-19 09:33:17 UTC) + +11:33:17.088 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:33:18.016 SCRIPT : Compiling Game scripts +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:18.245 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.256 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:18.283 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:18.411 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:18.455 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:18.467 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:18.509 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.510 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:18.564 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:19.671 DEFAULT (W): No GameMode present in the world, using fallback logic! +11:33:21.614 SCRIPT : Compiling Game scripts +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:21.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:21.885 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:21.913 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:22.040 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:22.086 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:22.099 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:22.195 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:27.874 WORLD : Game::LoadEntities +11:33:27.874 WORLD : CreateEntities +11:33:27.874 WORLD : CreateEntities +11:33:27.874 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:33:27.874 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:33:27.874 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:33:33.593 WORLD : InitEntities 'world' +11:33:33.593 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:33:33.593 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:33:34.485 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.485 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:33:34.485 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.485 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! +11:33:34.485 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! +11:33:34.487 SCRIPT (W): Can't open config file "" +11:33:34.487 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:33:34.488 WORLD : InitEntities 'world' +11:33:34.488 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:33:34.488 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:33:34.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:33:34.488 SCRIPT (W): Slot_Chat Has no Content! +11:33:34.488 SCRIPT (W): Slot_VON Has no Content! +11:33:34.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:33:34.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:33:34.488 SCRIPT (W): Slot_GameVersion Has no Content! +11:33:34.488 SCRIPT (W): Slot_Notifications Has no Content! +11:33:34.488 SCRIPT (W): Slot_Hints Has no Content! +11:33:34.493 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:33:34.662 WORLD : UpdateEntities +11:33:34.662 WORLD : PostFrame +11:33:34.662 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:33:34.662 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:33:34.703 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:33:34.703 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:33:34.703 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:33:34.703 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:33:36.777 WORLD : UpdateEntities +11:33:36.777 WORLD : AfterPostSimulate +11:33:36.777 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found diff --git a/docs/evidence/packed-chat-2026-09-19-113315/headless-launch.log.txt b/docs/evidence/packed-chat-2026-09-19-113315/headless-launch.log.txt new file mode 100644 index 0000000..3810daf --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/headless-launch.log.txt @@ -0,0 +1,139 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 122 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerSteam.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a00030 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a00030 +[Gamescope WSI] Surface state: + steam app id: 1874880 + window xid: 0x1a00030 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f2f6010dd60 - imageCount: 3 +[Gamescope WSI] Destroying swapchain: 0x7f2f6010dd60 +[Gamescope WSI] Destroyed swapchain: 0x7f2f6010dd60 +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f2f6010dd60 - imageCount: 3 +[gamescope] [Info] launch: Primary child shut down! diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/ai/addon.gproj b/docs/evidence/packed-chat-2026-09-19-113315/package/ai/addon.gproj new file mode 100644 index 0000000..ec3100b --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/package/ai/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Ai" + GUID "5192138CB9D5B911" + TITLE "Escapists Rereintroduced - Ai" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/ai/data.pak b/docs/evidence/packed-chat-2026-09-19-113315/package/ai/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..46fcb90aacf52b05af6d5b855d3fb20f17e5a9c0 GIT binary patch literal 65724 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%0DG0PKn)kl+mj=Zpu^KlDp*wr6EtAIzmnw@1(5C$P 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/ai/resourceDatabase.rdb b/docs/evidence/packed-chat-2026-09-19-113315/package/ai/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..2a1c3e9bbc84f49b95c787b49953a896a1cf8310 GIT binary patch literal 1721 zcmbVMK}*~~6i!8L5qoG$FQuTO#kSU6dsIYNx7tNkU6bC5$ZYbmj?QMn%k0Wt1b;$7 zr1a{^Lk~R^^wvwEy|lN2SLweHN+%|w?#yJ>95PAX``-8Edv9ib*+2UQx zvW|M?Exm^1dMAGFNk1e@zg&pt@gP?Vk#AVtSEBdiTLr-<)hNaNdUX2m&$q7cF)oed z=WIKTmI^Z;KlSZ>eR4ILU*sqV77?~`Agn~y;ZFJKZcq7eb=TiGkohr}<01{kIoH6{ zXxGB{$@}{kk^Eayhm`E|-~H{!A4ZNIw1qF}`EmO1=k)RK$($x7PFpJhqb?5xV4+DU zBUQ?%Xyx2CAL9Q>wVf%5u?c=f$&HORkelPEtyec0-Ys7`mUNip3PX4CQ`t6NP@@*R0NM?!{;f| zpr)Wkvr%PUqmiI)qyV311LYp^sH?T71EmebqX9%JWd~nv@DZYQMd{0IrAhzG;MFvy z4rgN>!kSzmeANNe2t(GoZ6BRhB%rQvPMA2CZIq8-_4dAK+(1O%x% GDgOc7H=yMJ literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/chat/addon.gproj b/docs/evidence/packed-chat-2026-09-19-113315/package/chat/addon.gproj new file mode 100644 index 0000000..d2e277c --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/package/chat/addon.gproj @@ -0,0 +1,12 @@ +GameProject { + ID "ERR_Chat" + GUID "FA804F411BDDF2C6" + TITLE "Escapists Rereintroduced - Chat" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + "5192138CB9D5B911" + "D31039C7C53E348A" + "9AAEE9041D79809E" + } +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/chat/data.pak b/docs/evidence/packed-chat-2026-09-19-113315/package/chat/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..0f395f0b85b882398e1acf395a8c9fd942d9c543 GIT binary patch literal 14469 zcmbWe1yGz#*EWb-aF+ms`{3>lL4&&w4ufm3KyY{0;2tzM!5xCT1q<#DOY%JLzTda? zZ*A4yRXsI*`a05mPxW-2)0dQziUI@#kB_pbIIE1Ls00KA#CvE6NQmTcg%$v<1-b&P zvbL%gj6Tvw1emum2nkU&Q3wbwGgWaFLj@~mXDhJ149M6FFffsa~22Nn_F4DDT;Hl zaB}mCvPp__@JRAVO8NXV;>`RnkojMi|8{|?E)KQ#bv23?%2Ok7>SPR{=TB|y%mPF4;s zZxaQO%i5cP96)a$_AY=oxv>KX;NS#y0lRoQfPesr|9Sy9n}Y0(ovgt804G;_7pu46 z+>C9l%#8oqv9kZ8X5j>Kb_V|AMfxp#1+dxM6eRze{VTOnwl($yIf;YcEC5*9{>&4k zYU~D5d-LWDVENNGQMClS%i62{>rDYbWX|R zpg%94gnQPPM;~T#76?1nf|P`n$;;SHP-I&WHDb{Klxx|H*M4_+e6y*m{Z2i1@m+M? zJOPIk|1Y5rr&IVJ$+awkyn>;!3f4JDm}+H)+d^EoV-}HV5kqNYC?J#NWXkl#Wc;D# z;-D!L3x3N}6X3g4evHMxGC8GC2F%YGe@jJZY)!^+L2ak4uWfcpIjoFI{iF+r}f#vd^7-=0A%swmRu7@^}S!gCPzA%H)Wgy$Nh%m+pA3) zEFM}Eux2towg88vJcRjLaN2VibJ)D^?-_O0Rn_M&R_Z}DYx_dswse5TscP$s z=Dk3ws@}vbaWi6g1{214nTgCVYlCQPzn08z2%a;oJVOrGMy}t7YvX;sP;WZ1!Ywg4 zQg0a9XqbpypGJ?8!y2BXZ?q8mCLJc*xZl7ty=8)bsD10SGIfrSBEv!Ety{dbBk7+{ zo`@ULu8itoQ^92n8}=Zc07X5`xK7S6jpD4{Va$9`d{3pbQ6;I9#1Tkzmx=N+YT9AD za3C73KOe;(8%{^_;+7^lxgJ!!BYR{1_?hAKSZgJhKT&~j{+CG&F$8HqWZ?d09BwZE z_37h6`>g5h4PU$@d}k=G0rnNMMG%$fjMWY4fNYtdM`k;bjWbcxd8;36ZzTJ##3D+5 zEB^da0;zl^F0Zu2?M8wa_$|>b^#T5e6I$Kv=Faxkg}!YEX%*LWb80R$Ek@i3AJb?3 zPgtcy=O-o?mr4bf1qn2*ttR&=N*w|ix7zOyCc@~GwRK9G ztn_e?ZPk&|_AWN50=D+aas$7QV?iG7yPwj2WCOcDu%NGp-k^%*jIecR(twfsM+8Rf zy$aL}Xy~oo`N%bQ=#?DD6p|TuGa?$7B`I*>P0mGCe{M$g`_nQn-vzY#_qbl&!9{wl&Mqt1O=5^0!mKtM`_NeL}HzsY?n)ta`cj`ld-PV zDQmNc#ggiswUCc0mLlJr==KU-a|kYo{!+j7cuF*=#ooeRGvjV4E^a;p+;g15!LjD9 zvFFJs1ua&wP|y3#ewTjQz=7M3F&ac=xrmu+~^N=a+$45uaQidmX_ zTa?lMsw9*)VcBqQsg1t-G5VfOfPI>AZ#vv2ccUuCcC~BKG^s1^B0@mr-j6PgpbD{9 zW&40%Mp=`}>6r$a#3JV>rQ&JkzJ|=5@F4RPif|~9qO~VK6g>UqgWRtc*q_d)zk1jr zrhkUACcGc4?cWQ#oTpyCX+oxyptjs9<30z*$jt(W-!IUfY+;|o3FEq4>qBCvq9vl# zYGQbbi7*^vzIz!sn`Q}8f(;gCN~6g@C_Oj#;<#sd-wB5bTu*kyOhJ=ggyMpC87w`g zWiqbVLh}uaNRnU3{S{M(qQPL*>FAZP=;PnYou(nLO)&p(-?zUX9W0hLK-%6HB9~OK z6p(TlN?_@dS%v*g26>=ISAyX>2l{fAKVEWiF2b<;xm z;h_A^&7kp`5h$@8XMxBAG(p)wxS?UbPhgx$8U^Ec45_?EW&awP?^*7`q5r+yCTpgGRo{Hgnvw3_(K>&4c#Tt_gYIPbIk0sK&T0IiUZeszJ#4N?lz!7UL*_KVNP(Nhj~qN zZL|m7jpK3q5AOqFXnI7)7;T?499GOVPPs7%;L71K5j+`}UV#uPzU{McU~xI6aiwEX zQ2k6yw6dxIR7>UTjKFN(Q2v>(NEmWU3$iR1b&r zDORls<5__VrLvU&PHJu&Frv0EQYtg)KadYci+ih ztS&86J+dl%b?iS=&=^2Q4vgA#IA;rfygluXOlzO~d09)^AL`7*B_xwdy7o|aMDqSi z2OB=sfs1YH;Px_4L(rn**NXAUt`iDz{WFLQgZ?@c->-KfzWJxsVrTPCdE;yjZV_mA znszV0P)0M`N+UD21Cl=c3hW@{4s%lI(Fk*jF553?gcZ%{=azwanH34@$nS$^Ahv(e z0*Z8un<4q_j@vK_O-jIO$OWZ&(!3jIO*aCLiA?{(W?Ww?wf%0J?M1ciz>X!m&&yJp zB#ZeDfQQM4ey}^_eEnS@ddDsu2LOqKZXp;MK4UkXHNl6Ph_GYE)xj0+P#E$LRQqaUamcmZ|^t9+ho?8B3g z7>O@%JOf9WzMN~1)7X9NZ=40B)?j?Y6-wj8XkIJ2k1AhQAA$6H`_t62wlnvQ{}{k8 zmfFFI&mv;vW2a{u8?YC`aA8JLWQ5#g?e1`+pG*^Xdr99JVN>*xeSVR%c`!`@g$7RsSsiuw#SMN{r-MqTvD+G39_k!!Bem4I|R(P5dwpx z>}%7?&>zg`5`H0uS9t_?*j8BhKcJki^i$N*ZSNOGRS8EolJ+qcpsVG4VIs>47N3?? z))4s(*-pmVbX|zTkx((jA=j-!)!%pyRUX(yyUsM-bo1i@kKR5;E^@SX56)?HNLJe5GO5uQCtN)_JZa+UARFMWvN$2<@s+~!#w^lMs6Rfb9u#&N< z)t<{s0dyz}ZY{uVu||R$7q6a_&htji4GWkyQ3EzUhz}u6j&)-xeCLnC^7`DZ?EA zj!zv-pbl8A(yOAsYCSaIbepk-==^CbX8MkK&hmoXrae=X9Wg)pVSgn&Tq2i$dN$qw zni2alLA^5^Qt>^$)%iEs$@Iw2A7@b^?-XlU1&fxpalxfMCdXFrG1ucalD!eI>53xv zEE{&?g<%4L4Y%~vdGpT4yHvzYO`@H?rYWI^1yg{1yk{Or;z0S0x!@}wcyUwp=EnZ& zJX=)oXSW3xcRX@qOe7h|MCDjIeHusBflR)aNLK|r{w|@d4Co*$0+HW)YB2DtvR#?| z=qJz&2&AP|T1(-TS{30c5{|4r#W1Wfcs`St_;Y)W3mIZp@y^tY#uH+t2s!#+=&+c+ zOAQTSFd)-=5;jDo@-avW85E0E3f9tOpEg_(vovCkc;-Gt82WjfUa+J{r5!ZF!l1TD zGOw8q_hXYSQSc-V?@YZ{QQvSdNQzTD{Xm6H;(d3OWL{%~q>{|Skll%oFz?&??~e-uvXHlUBqy{G{o*dYmrk}VW6O^ZIRw@WRF zgApdkFU_;CaqzCWL>_sd)rGV5dt)BE?8H7cC2njevz_GPS}(q#dgh=jA#tr@IYSIv z(mc&M^TYCPP>cuo0<)iZz`(Af8Mm;qX}oR|{!}CnF%`I$_LSk>>lIe5wbpvD6ptju z(DgH*d~lz#CQPvP@>ET%T%OPb6>WOB z4i{6Q+WgO%BfaCeN0O-{HO5tav7hJd&}+d}P4ZGHcnReiAx1nFml7>dpI|Ws1c@l_ z@C=N?4;xc+zl-YLUg6-LcInmYI#^7gN|u|tIk|ea)(12fOx>l#t=U7bWrp7yU0>LK zT>L!pyJmh?d`}52FmuW&vyR1J99XDLsz$mH`(`o*A+jY`)m6gS?-sdJnqA zZ5Ny{;NX(vt(|p1Znq{TUM{r)1ruw$5_F;n`WY{-r-D2&0x_E${J!;sVy*FmitUd- zpr%!XSL+AoNCziqAY$X{-rqIbZmD<&VuuWBXKuA9R|@xPa}rCiU{O#|hh?tfWJlC# z8aFG9Tc$kgi0yoxyo%G_`4JD+FchfPRbN{qoNa(}_2C@3qT$fh2^N!+dq$X3A;c|q z(jKk*DXJ!ZY3+>}-nuD;(?K@B>4`fU!2H2S)0^Ebr-iyPm}2_;FrobX{tz0KndKi(--U>+_7z)b&Bk>H?;Q8KYCo48`)k!| z(P37T&GE-3U?%ZI{L;zSbgI>#U(YRVT6pads4TKtuG-Ckqy?G`mCIXF$Jdh8dy(Gy zU&OV*NE#z+gk7+;Ev6{;#Xsw_hAQKKK@Jq0$*b20V}arq$Nd zwP7O!6Rni>2g~8bVf5jAgtOf4Gx-u0=j2uv6e`StJR8h?cwXKkuI3R-p@g7cFh}iY zV59Mv1@xt{quqIr&dM99VfIr5mBP|e#2 z`aMpauAgaa3%v_EuGv9lUhU6_b>jJ7M-5!vTwZfvJGaUbA+t)Ql!{FJnYahe%1Yxj z1u8T>jz(~`Y=}9vf%oPKMj(6iPhaeu)F|{c^{x8OdMLS#KI3i_R|a#<0eh~{OX!B- z23PJ>Hq_;_Z`E6i`mICv+U^#I zP(RKR80DTUIOm^k0TMCSP9o9G3ZX_uaeYr2;q>K&=A9fJtMUen>Q&y+wnZm)CONIk zaG89>0=~-Hkt)7E>Nkk!RU_$-RKli{J*JxSRlu&p;*YAEu2OMX)=KBD=NBb;5Kyv-VJU3Of&0Htfdu^6V$DNZI5LRM%77bHz42>d z{hxxT4-1v%o->3jC7dhTn=6(%KpH%}YE(ViF!l>^PiXI>I+Dr|6Xa!@;~X5aPs z-SzfxvteVUyq3~)=yC)2;}fCPNireX?_1)aEx%U_L8G$*e|zUM|I=^Gge8wsN7o*H zHOZ6y@eQ;tUD_0}Opfi5*Uz_O7zOs`7nP7JO9M$xUdoovOmt_u^!(EzH@Y18E-!xaw8uTz!J-ti`1%$e)R3utbZHOfzKhZ8=n**F9rA-%9k2gMVP$RxG6!fXsmO^*DvHY>*@4Z>KxP0_TVrQu zz@H4J0@%sL*y*1XB+^^f^S?4NV;2{YljmQFvJ=<@^sj)H4(U&N6kufzptUpnM`#6d z2L8?L(b56P1Ocpc04I=(tCKyz-qqHY{|)?a_kZAZS@hoqeBRP~6mL05EAzK3UzVmF zc$o|R<;2j@F-}bCeV=TIPst&KRdSJbO3LCfk}W=RKi_}^r3x8cu~f!u2L;{lKE>ol zL&h+HwGrou)hTaphqMfRAVePu9)j~rA2yPqc!!pikSQH)vO{S=7>pBDf{A%EcC68G zN{L3UnXz&p_5uA#+r}l#-r2p=)8_F|-}$2=bpi}lYN5Oh4?#@v>Fd#_<1S1KDf%Xd z!e5-xANN!&+tf1KLcNFqWT|prY#aRtNuMa21Ae@;1>0J8av(yT@k;2r2~u;GB&W6| zSgZW{t_Ek&;Uc}Idcl4gAQrC3k-VkK(M^9O;tm1LgYOdZwK?&+qu;L}zW!k{z=m#m z>3UrNJv9j5_lNi1c--8Rlo_pcv2dL_@Viz7RHIal8+rDi*jP>YL(Jx$<-*}K$U z0z5wJ@`K6&geZ24L{!k6qE=c6VMfsxF?^G5vXA}{x6wvo3}7kjsqgYE*|}uJU<4Yu z%#w1!F=}^Mxt9$B?$zu8Z6Zl0&Yzkx_d|9EFrjt^D5~6+E~JAqKj=BvN#=t39_B)bfDL1bU$u-iTgR~*UUf)6^z;>@6gS8G8Y1??P^(xR6Y%lLaEQx zPr*a&CxZ6#9vIcrIShoITBp&5^);-qjV!R;#B_oyS>z}jxheyWVR?=ZXbSfOeXg7o zW>KW>X8L9%*re#z)<}~bq8rgZhfUouq%zFB)8ec7+*ELE*y59lZ;oWwa|!<#L)r2x zY{1Dj!?J*QX=48<$jMBDrQpdyEvS?BXZ@)hPuwl}&Q`Jp@g;OALas_jS){F3z^*~r z^1>n0?PF5(+HHbef@REdiR9d9;ssay0AV}>rJz)DMY`*czD&dd4Pkv8qCn&J*F-oj z`hIu4-x8pFTbXm#k;R4rjd$;UkHE)V6->&-*iUk)n3G0XTThVFe5GJkOIY*MWC~|| zZm}xu-b6=>l=%tyJb5sqdiQzQEo|HlzBOxzV+AFOFMZCH=B#bB=!DmH7{*=BgQIA-Gy1Epzb0+2e!@}4{tCmH}Vx;#2xVB+k08?^{I^9^x zANy>R*I{&yd1_qx=djAf_6(sIVZ-xxpUn}YXnf*#iVkXGTHtV`jwxP|U!rW<7|^zy zXVPh%l06K4iwBpi(OAE|~dXXuH6*~*7@SHHC7c%R+ z>}ihF8H{)GdUo^JHfU77vLwjyOW};iwl>8g#Y-24uPkKH`5cd{E^7zuQ>lL@lPpZ* zTU(0ZCbF;3T0a%s(dbLxkdJHC&|3@R#FzDT@y_5w%bt<-)nsZf4dDcCp$4HZy~b5< zDXp)#95&B*pFPa#@NEP?$hWFt^J$ z;`1GlR5_NMAU@%I_yBSd6cBb82A~BHjS^lK@tF^drL9I}2F>d!%=^c!7EJw?d`r`w zXdJ}b=Gc(6ftHk#gQr<|NtD`u+@`AFMIC^#2(RR%T|RYBOXN9(&oi3^I{CMY#GQHW z35(IrEqG)e3)na>b2a8<83tH_`F~1inDK%KvK-B*=6b`3N9^3e#nSgtwK4&3dEv)puiPt-bS}U1@Y-g2n=D z7`28LbHYSE5r{bLFE=D*VbR$hpnXcNwDP#UHpdo?$*Pe1N*)f?c!vU)`7SN{?Am2-C$9CN)q8ye&eQ!sYcD+gh%X2U4bH}5t~atrVa+T!%If0O5&IwH zF>4uJCO(HQL!-jpLJ4C>1^Vv#VsxC-%0HQbPV=*OQhEj21qKd?st+9l6c{0Zn z#dZW6OOuWV!RVP`S)S(eY$^asA*-J~p6Rhj^rTT#%%Z-*l-gI>gcv9G`-Xk461-|2 z23Fly`HY*A3@^eFr3EBqaT!3;9)_eO-Q#@LrP*q~OPmba-v4IogNbFc`E(jA`+c%& z(9(R|E3cL}}iE6qq)Z0Ah_hQct4B~*qAhSrfNrbTJ@en$;IlBH?E_X7;gp#sz zBma@%tI6#Ij5U~VXOfppu%eZkAuUw$G)g9TU|W^sQnD2m;^(Hl>lihM#;f`5t+q|^ zEF=`A)q5RuNh>I8(y%u50!V)n1)}T{SR=!BwGf}z_WQ9L<8_GSCSyjIjl0+G-uKQf(<}dDfs-EL-RAGSQ;vG4HpxCS^%Z0f zOmnNNc3LSg8&!Cc2OX`PQAaDmU!m)^WO-!ssUisi0ll(Bvx1HIL{$ZFS>xRXgyWtb zbZtM4*lKDrf`4dOCYC9L2p|X*k@pFo-?D0HItm@GZRa{v};+C4ZEesN&$!qqQwbwh|ae1sdyLD{bn)*{ex^I}PBGhza;DlAWHLTok- z2=x$xpqjEQ>*nFNw?E|p10SF8SAuil#TCc-3NHyT2CNdONixG=^{OP{CRGTB3D5?~ zpKMiSSAXD?IEObM`A1Ll?bB&9$T(d$YcpMAh5!CKsUckYl`%Z(db+|igS$C6Wwj_0 zsc*Na^cQ>5?nhmrp)q1Ty;ZbhoBeQ;#>lUjYJK#pWhZ&G22U6J^ZD4Ni{HPoKrb(1 zL-86K-D;xqtvo_#Cbx4tCI%buFXKt0?d3X~pq5eWLO39MiBKP36lJY_N9e^2)m=Gq zUc`B1g*kmdQjCZcTfk9=e@NmRUzix0gj;Nj!R=DcZ+hJf>i_$zKI( z)M^e`RfK2CJX+S=wDhSwIC>%XUi(-bTiK>G3X%1_`KX?be~a?i<|_(&k+blbk(Gjo z+J^nuH%9g~kQRO$xoET^9H51!;!G>IabenDc~F5ev9JPAW`6eA3=y!*IA}!sXj6zE zzv=&Y?^84{^2icc?#|=&cJ7ld&chGs{>VS!-co@RUl)S6Ioc_2+Lg^{&@UcSxT&@X zVRXA~1-rk$76oK+DXcP&w1FkZI1FruK}6xP=1K(t~nN^)2&tK@2h-T@~`kGfgt^rNewWnYlAjowo4B0~HbH}{_X`eN( z(zR26w_*!iCjjSYw`JY?BYxB3mHsLU;YR}X(>ePCTeJt%Z!b_Yt&7K{uDJzdIWQlG zB@LL;9bO3G<8eJ1VK4SHHFjU7$K=)%$WVV1+Z28|a{u80e<*1~0e%!Z<$)04TZ$5~ zfVz*R8U0PaS&?~LXQ&Y3cXwTk!HOjQgaDdkWLiob`+n}EppI^E1{6Jl;L6EK-7_fw z2T94NzHUK0*h%vd*&()|ki{||9s@>z|M;2`@+3cS45%Roq~fD6^gJ6{Xk(8SZse)5 zV!1R8i;Te(Lt)W=p}Dx;4=ievdIvmQ-~1*e2Q~F=re$m_gkJ3mM{l_8gnxVL1bBup zIhBr3fmo|$o}W@m=Fc&E?8leFWirrz1{V1xFzIUHLcJXfWwx7~5cwV#_l}*4<2QL? z?x6)s^f>{X*$!rJc)_6yA~2FRo`4K*gQE`Wt}pf^%lNFK{6{N9XsNRB6>oZQwO zzaPNrgVI4!jWH*&JpZ_UT$9^Hc?Rx%affakrBdQNZfxmKJ)J8&u0Yjw>I9H*A+--- zqbi1aeIFsYetZsp)kW6KlC%V;@*q3LG-@0J7F9r4Vvaq-?H`6-?zZog*Wn&3W=|uE zmE0em?IMwrUnF0TuH1DNIp|nW8>iYt{U+H?BB;EOy4DyRww7vKG)2V@kXJc>k@3Vr zFuCqsczSVVXSSVg^uaaXXHOm&DB25uAmNSto(OWRWNN=K8`>n9f7CF+Ks7oABggj^ zp5H)%;HAj}QC;PsB|D{C&?tZPuMF0y-zumNLrL8Z0i%wumGy33W#z@u-)2Je2B)23*} z#To^pk60CjX#x$$;X==Uv>zDW^qYPDq!~SAiZ|V6GRN;op(|Jc6lPab`qfRU$dnBa zf`q16mK}TB>t)8rb@nip(V)zv>ATf*e?=P5!DFDiV$@sb6}l~%S>io7<6S13d9?bw zxu528`L`I9*K+2;U#GxjCDf7j=_;jPYHZDWk^>u?2hpM_nV_;SrxARh7^LYuNH@L~ zOhv($T88L`u#B*j{mNfF29*kp6G#F3d>_B(V8+WKUO}xe(D9OE+Qu^w3Eog0wz3YB z5AzKg4QNMEpoTM3Dn-ch_^2AID-3HO%6Y585W6#(26Z0^N|A9OE$wc49h2MlY z(s{IG^HAS=*jyxj{+14G>Umxy-g+?;JkdtFo*T4@%QaecW2L=!P4sXIN%UyT#!Mu5 z(V-tLIYFb)!2{r~6cfVJoovVpbckCY-PE<@sSM->$S3LDQTNirA}r!b!KEX*GRsBI zk*8zS#l|&d+DOxJtUlJbCn2`-6Jp}TJDyv)yHg1HK-Rf&ZG@Gv-;EHcP&Z;E5qeb@ z+-$rH;uGE|Y*EL-{pNI8&~_yH1;tD^rZzmy5^ptA+wyiwEHI(q+u)UZpOPEA)2tLk zpaEtie@Hi2Oh7wW8^Z?w%P+DI`I@JUC=DQ;Fh4V_!}ncK9u3`&J|(F4pAC`RB_#`Q zzG~@iW-mcbrz3T$-C}e}cz*g>*uu5hc#)t499A~G*0S`g+AtU%eBIf{d#4?dnlf^n zG3D36`=GJ(Ktv{D0C_|n@JyJShA_cJ^Es>eS*pZnmb!IN*`s_?K7=M?y8A0zCkEmE zk`vy`oLq$Y5h*zOnLEG}@~)e@YmX`e7plr+9Encu*>zry*o8ks#6q(!WwVZ?AyIUs z)y4N-*I3pM>#N+NGLeOM?VdH=r``A@U0>LAq6%o9&g;NjLDX)V@4bUMV0`FQa&Sqq zmxg5kB+@S}m%yZhXTJC+oc9c0R@4xgsBKF6pH5$OSMiV5vFLHTWirBjvwnMNaby~N z8^ERshN}?F_l-;Wo$Pd{?YK91|8|Xs=?FHHZMu?PP=V~L*VGlRDn4<-4ktyeI*9%V z55`5!pV<6c1nSPzx*s?NlGG?q%{!5b(pTl)P^7awhaia^ms*@r2ofa6fj>JRfNNz| zrrw1+Q(5{Bu&bx#wb&)!b#NRF{cx83uA9#pj-VTcSDzyny z-HT^~M(I=^sy{}_69AJ*bkxoX|hG20H^#euZr(ua-6|Ws@JS{XP`+&Q{F%xR%qU~B7BlVhYBYI2MSRf! z)iG`bUFJ_)8=)3f%Gx9BW$O7&V%E?WmMS?duUK!`t@9S9R&j`yrKxXNGUo|jR-)2G=N{^3DV)pNDG-a6)Xks6DO>*stqj4MVpv@*@w&7xstH-cUp)3CU+ zmSC)lu-e?IucFS<2ee=tVjL%R?k5$@NxR0&@=KvwZpb*btAnfohD1_5qRX24dGibx zyBhw+04+6ft>1y9qAcsdLx!W=#GCMFAEID8tWAwM zm{>(uuOGm*Y*`0OiVp88?K&nJjJvuQR(19HKkiwT+>~bq+Ao5Jvfin0QKd=S>*N>g zj9KSK8l2Q^YLj+ppB~m3Ol9!#=!xHEy_ma9u%n%j&*6oKTZYkpN}SS1bDuT;#+jjuzURKtPIVTxriS({2T&$ZDfkK6E}Zo{n^41~mj@zYhflWluGhSW%m5 zXukHFbn(ch$VA&*y-x=kv+wl^#B2wsuoXe)JTo7}Jy1O;C+}SkHafE9$Z38zLUw?o zp5>}ws14%ixAw&$xPJZK&xZdo>8pycc*ie1Ux;WsI0jc*{{kL%<*WW&9Q+W~(~n=8 zQSi}HHY~r%DA~ewA4%RR?h}_Ze#zeTK43WSFV>U>Xl~>nXYcBgL|tL2SR8E{$x}WD zIOf}uxR;Rm=tePkK6~LbAoya4pbV?e<9!Ea@WR)_!`9Ut0g#}GgZ0((#fVyBdK`}m9xccW=~>;Ecn$o5Vsm^yb1X%m5k zTA{t8Vs{lSDS`&XBL;6NYMk}NEiPNti;{xNg4|v@6DQ#Yiol17m$aMRW+Zu&;&|;V z1tW{)LOWmB8{?7J-@nzujn5fb0CNNUe$A&f)|uSSZY@7+>NaHrLO7`>#*HQiGrNmM z37)J*^Bkfizih3C+T;~Fu%~i|CnwX4RdozVRG+W`r?|0-%6LLZ6xEN<(i!*QhGcg? z)Z0U>LG1k(wsn4JcAcJ{bCxt-`=Zt--g+)#QPN3(JzBNv}rx&eRwrvu^5cfdg(qP?}eL-|2_F5 zguvo@ZnYwRjf04%c&3bG7V4*p@HIC~QFTleze~oiwCp)a55gbs{UcCeB74g4(cSeh z0yTCcw6p!jijf*ggv`E+7Z{XGj(rK^zW#Iq^$wNCl1hnEt!T0kX5%MXeo%I0{@wLp zXt`KmsSt4*<0=DiaOFi!|E$OH>f&dTf*M zL8`1we~9iU4zmQho$%l>3*0pbH@04(^~VeZK|i>SSlE z0x}0XS%92W|1u9iW`C-T;5XiclhqqT;1A&dWa{!(l2idXgI%3WL4Uaqf2xoYR>l_g zU}qOA(|yS7ypaD@t1k=KgyKOt_~n4;Quj*|9JmfyZk>+3@a!KT51o>c-$D8T4o5PLpt#B&PQ;r2sox8jN9e z8Ch}2!m={eh6SvJ^7H)bbQtoN$FZZOjjysZXk8w+$8ERfZ9OsI53lK_n7{$Y##q^P ze5SoLQDzJVfsm!BP!J{Z4;aqjUP~MhnN)0WDgu)_lYi?y4pV<>c8_?}Mc))lywt(c z+G`VGKe>W2PudeBn|6?Cpfl~}s?K$uj48 zTZfX&tH9Xg>mt+=X{S!!Cmhdr*}DEs;LFN>3l8r2%U9Z@y~h}tTzG6UM|F;Ld787` zuwb8te6Es)NOZ0bQY=H56Cv=ldS1SG+0ZC6)>QGd$%sNB!d`Xo(XHdsr8@p6#qc4x z-zeshs$s5LJt5bcu}1mkWW5vd3Y;4LyIEa!}G!R7sxh0;DknbFiwpQN`Z9lhxA zC}`ZxE97dN#a@#UBHh2}K9FB|UZ;vjGKrc!5;m(3?4_qmPI0RJb&QIL|U@ zO80G+t+nmF;@tM<&BFo2*I=#~5%05J+=J~}XGI_2%aBMLj$^pz@JdMgL-zVzdfwVn zEdy)&!p$Qd-dfbLfHr>~2~2Vc>X=l7{!f(<`vFLmCUk~UR6ETO-1VG+f_9c(jp40N z2sm*x+GN#F)Fe^KToLYZH}5c*J8o9+a)eLXDyjVh`TdFt7SZ9JnR7glP^{o~BtD(9 z^ha%kgvsE_G{pjqwB?n5Lp#R_5(d;n_cf;GOxsyI^wGno6tJp;c4lQxQUQsPaYEcF z(EHc9b7l8^wApL2SU`*4?9Y|celSaUZPh2`uh20ACYMsO@{$k`ked(?P=Bar2>;oK zAm2KWXn%H#f5~KjHY1)lVb0sgpZ1?eKhfM80{)*})cLOsm_J0Tzu%zW^kLtCkXU~V ziJIA2*^7hi?2PTroPnnEZ$<>(V9$R!Z-2}|!u>G@N%RM-_{QRL1Ic`R+kYLv_Rb(> zCotF?Xo~d)enE$Ta25EE|9_S6{;TxQ-H|s16A;i80|x@4;tl(!{pb1X1^2%SD#m73 z;D7P$Z+NA*nCnshgZ|e6#((juc3_(~)5t^+5azfL5DA9=8wvsc1{HtX@c*vi--{|r zPG(kbR5j24aLDA1UF}UR|6qWoPOK0RRd3Kg?LW`oMMZgI^x2qz-hh7=^zZ1O1^sK4 n;7>Ff|FGRaf0=*EwyqXd_CQkrI|Rfh=(pF2@E>FUOyK_l5Z(cj literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/chat/resourceDatabase.rdb b/docs/evidence/packed-chat-2026-09-19-113315/package/chat/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..ef8d862d94bcdd87d89869dce2fb7a7a74fdb1ac GIT binary patch literal 804 zcmZ?s5AtPTV3rATadKv7U|>*T1`<#p2&5T7Y*wfMgyI2Gi76@hd3xyuMfq6_EGV*^ zK%Q@AadBpTUNKbT+I{z~OmRA6B8eoW?-~>o?^>2x1T-c&KQE1e4Q$F=mB)9|*&ZE? zosyO{9Vo&9#KFl$nFS>m{RkP#2drzr>QvvQ&@2pw!|5pyyKq zit_W*Ftlsp*Y2BNRFYT()S8rvp;ZIF)}X|c%zW%RmGSEg&dtxpv`!R@Cg+UA5@;~S zKAgn9@xtjnW;m3AgVMh!B{MIvs4_S?6-Z^~`y`g;C1-$4!SJ0Jk~!h|McGNIK$S=_ zn|-wWdNxb&MJZhBkfQjPPu`Z5=R^*h;8P2BU|3>KW=dj7D$vH9lz^Pl^h{uSM2m3% DUro&z literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/core/addon.gproj b/docs/evidence/packed-chat-2026-09-19-113315/package/core/addon.gproj new file mode 100644 index 0000000..54287e7 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/package/core/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { + "58D0FB3206B6F859" + } +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/core/data.pak b/docs/evidence/packed-chat-2026-09-19-113315/package/core/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..494bbc8b2efd210f54e0cf57d0250b8cc9e227d4 GIT binary patch literal 194081 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 E0JN7(#{d8T literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/core/resourceDatabase.rdb b/docs/evidence/packed-chat-2026-09-19-113315/package/core/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..241b7cb08c68f6c988174cd73a33109f457045b3 GIT binary patch literal 6865 zcmb7JYitx%6s}M~2_(D~eDD+yqzeQPhyrEXLS;+qPAM8dyq&q-UOGE>ot3%%z%=iKx7 z?mc&_YLhi3C4-MAE9S(zmz0!zJ{W$vKP%z$7V+;}-9I=VJ>i3B8aK*P8IvzBDebU& z8~iWMjV6}Ly11>CoBq|hzHm<9+?7~mGU={fyxQ&Zk;`vhxu@f5tg@Aw+)$WBvt=si zE9qvN8F6*=$pgJ6eztU7)ACL5mjMA-6;Un54bS$e_7!V;Ul?|1EFu=GVc9ImH_&FL z>K#oTil4bMW9f=Z!qis42R-ym#TF`l54+7Pz4+ah)Di)E6<|X!(+d?P=?C_jH+Afe z)7viy;06E<3jpVmG_8fGD5^=R(IG13>y~XDK3%;gpqnMo24XN>C!WWCt3OX2x9XXF zb^AT&?ErU!;stTn{_oGNn{#6Fy}l)p!DUX4mdznq>Q_1YNWbLxNsYUN$~OQbN}|rB zO{CG&c&gv^zUL2gX%{8ouJ}q~Uir+8ulHF0u_#5~YOHdFWjg6Cqn29_I~N@8(WmQ_ zuEN${kQYAsG47UYh(S`+EaK|te>-4sY5#hG+XI-Ottv)!EzTj_Ma-5dcW1sjxO~3A ztOd-S0b3$LHC&@b#IdQrDNmHH+Td9cDfN3-+qj%Uy|&T{uIAFzu!_)`vwB)P9xq=g zpdzIM1JF8RnOrZ*kD57n_t`Vsz7+D?W%4G=LdzBcw`1Ds$qg^H*m?gDr4$q2c zaevT~L}R?TktdJ+zVrM~zx*l0KLAnDZ+>wl10g0BH{*~VlN5pVFMs;Od%gSqDuDX{ zbXO3V%VhL?oT$ydjPCy9qcgpmH_jHI*8mUg99I4DKHxWBl-cF zm}M-lABM~r-Q|(-KQ8W7T#1QlayfF>rMI6Qux8}GK7nOl&m6mc*BeAc|HoW>mDC*ViBFELjDfLaA+Z-PF5StVnm;tBc_(j*;kQ34~fG=nwn~( z6|%z3e8@jEp4ApjE5M3y^{J;|k+&HkFj@+t*}T4WXeES21DfC}(aV7<>}yvDhXz#O zgts9C+FR}=MjlJFR2P7iRw^6>F0(A)lx&^J8^eq?8q0>GLEMRyG;aw5Cw30>0_zZ> z+%`&wj%`nc$dg>bP5O|eX<#S0ib*%O4Y%XuI#5=2_rVSO!iQu4JyRTX1#M!Yr???E z9udR>$pSUY6`-erW8X)Za{QFeBk02?Y1Sg9C07#>h9ddN;Sr_KkpSf?B0Q+lS*qEp z;@rxZOmgH*?mP|-yxPd*tO`a_2G3ed4c|*5vSIUToER$A<(rt=xfc?`l%({ zY92;SIXWU69obW^0;O%IENiI7fP&@N2wE(RD+!)OnlfVh1r2ih=;`SA?#w)LXoTx^ zyp5VvbBal>A%YN`;bx9WVIYtzKu=rOdwZgyrW_nme*j9E)IKz;H8|~=m6z*@*o8ej z0X0(S1i6BUT_mYjv&QMG^_!B_huB zdX`3F7E$%}CNZ*Nu#pEXf5A}NF%*Yo zVP^b4LszW{qaHEyib~;w@dU{kYI7)=XdS}@k*B78#e+F0O$;r(OO!+%aHT!aIMp07 zJObOQgPogW@I(|GUeIf-14_cFCy5chN1JOLH?g4y1^YPy1EXbNgR3aj8j0Ex+9ujz z9<5;Z(BTJ?z;mW5o^Av463Rth;ows+TCLtp5Hf}iJc751SJ4m-Ei@bFJrBr-7_`uA zu0&p9@Tg=+n^6UwrL(8yqZUdRihw3~im9Rf;c*cdC~jn!$1@-v*q9{UXfyA4gOkJ#dSA$#3>t{k){UDIXyb1~tzvmkW3Uk8-I?ZkbY&mZlg{xz`u6Y=o*7RU~g m$uCO?I`&lGpf%lBpKCoKh$5ug6^&`|T>{)A%4{MJbp3y3=mReR literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/intel/addon.gproj b/docs/evidence/packed-chat-2026-09-19-113315/package/intel/addon.gproj new file mode 100644 index 0000000..5b29a17 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/package/intel/addon.gproj @@ -0,0 +1,9 @@ +GameProject { + ID "ERR_Intel" + GUID "D31039C7C53E348A" + TITLE "Escapists Rereintroduced - Intel" + Dependencies { + "58D0FB3206B6F859" + "2528466DE220D91C" + } +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/intel/data.pak b/docs/evidence/packed-chat-2026-09-19-113315/package/intel/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..00080e84c46d12b76e5151f578c7dceb1565c639 GIT binary patch literal 1141 zcmV-*1d97cPf|?)00eDNK|?V}ML|RW000~V0098hk0Wz+dSORR0u5UR3IYlWR#gT7 z0000)K~zBi00ZNAoQ+m(Z`(Ey{w)6rCLan4ja7HUiXm-Z?8oRk2B$K2DW|B87iysBG`07fmP1O1ovF z%xW|2MN(NdvKH2*t?+Z9b%DAJN(=e0x9jyjd|>ybm0F2{fr9mxNwoom)?1d#${M+- zNu986X|hkv%aUtb;MTY`kDh zE+`+B7sf2pSQu4PH=>qCf@nlJI}jZ>MwoF$^$_mP^scCGj(AlvD&z*ZGj|ytsAh%O zV&Z#U)1`!b3#qE0>%`Q;rm6yC1E@XyR@kQ`MMmm1Hj@u7*vG*jX4hAtbIBYmI$Kpd zrabt$kgn*I$17)WLSiitY5jo_$?)s9XRgqflxQ zZmvtXIX9#nu+9((h}So;@IhvO^JSrhWlBH4PP#*?(TG^o`3fk|-vfgfC$Xf~pJv}@ zABU*JA`IBOca8Bi8=$n`Z|UXb{r+pk*`M%T{`em@9aZW-Sapo?_qL5cg*8qpF5}_8 zadeTRi0ryMaNBhBe#ol6&j74RSBTBwVmA3%?7B8`-M3^6!Y=OkfQGn}3uGE^Eu@n+#!TAOIs#jlO z14Z)ZD7~BB-S||ZS0X0N?xb$S=Cggn{F-!OMqMdZzBNl8u*Ri$Rx{i{V)39uE8QYV zq0%)D7rMlljqd@EFIZWdQde-vCILS4f@JnBo!!qTkE6T4PH#G5OWtY8xB!7JhX<3i zk?d&4TfC(ZUU!L6`3HXwMRc;2^ zlB5CPtKS8XlmJxhe*u<>E@?(dOho_y08#(|0RR9100&cJa%pgMa{&MV000C>VQpmr z0000014U9&0RR910TM-0QeR1KbY*N)WpZ|DV`VO5H~;_u;{yNyn+X5_0000000037 HU6f{Oal8}l literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/intel/resourceDatabase.rdb b/docs/evidence/packed-chat-2026-09-19-113315/package/intel/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..8747de652de335a4e8310cc113c3af10f7239c3d GIT binary patch literal 227 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-chat-2026-09-19-113315/package/map/resourceDatabase.rdb b/docs/evidence/packed-chat-2026-09-19-113315/package/map/resourceDatabase.rdb new file mode 100644 index 0000000000000000000000000000000000000000..1e5427fa8cfd7ebc949e2e431e53f7d826fb6cc3 GIT binary patch literal 750 zcmZ?s5AtPTV0sqh;^fTEz`*d12}nSJ5RhgBv00%45Q+y#C8nh0=jo*v6y;|zu%O6t z0eQZOC8WQym7RiU z(jaT0N>2R#chctOc}rz1NTacdz3_T26n1T93J)wqPV_&>_mf-3`++acdoW#ofQh0E; authored gun and four-person crew; finite ammunition initialization pending [session=1789810413-1] +#3 t=6.8s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789810413-1] +#4 t=8.8s M0 REGISTER group 2 [session=1789810413-1] +#5 t=8.8s M0 REGISTER group 3 [session=1789810413-1] +#6 t=8.8s M0 REGISTER group 4 [session=1789810413-1] +#7 t=8.8s M0 REGISTER group 5 [session=1789810413-1] +#8 t=8.8s M0 REGISTER group 6 [session=1789810413-1] +#9 t=8.8s M0 REGISTER group 7 [session=1789810413-1] +#10 t=18s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789810413-1] diff --git a/docs/evidence/packed-chat-2026-09-19-113315/runner.json.txt b/docs/evidence/packed-chat-2026-09-19-113315/runner.json.txt new file mode 100644 index 0000000..dca05f6 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/runner.json.txt @@ -0,0 +1,29 @@ +{ + "packed_only": true, + "packed_input_provenance": "packed-input-provenance.json", + "packed_input_provenance_sha256": "1e512cc6b78ada33d96ccecd51be5fb75378b818ad404a3c5cfeab88f8ee3191", + "packed_launch_id": "3d2c0cb4-3d7f-4ca9-8ceb-1870d284743e", + "stopped_unix": 1789810438.4591353, + "packed_inputs_unchanged_after_run": true, + "packed_input_error": null, + "console_sha256": "3b0eb4a813f6719ab06878b9252ed077ecf495923e3ec851232aa31504697177", + "build_qualified": false, + "release_qualified": false, + "started_unix": 1789810394.2417355, + "result": "packed-chat-started", + "session": "/tmp/erri-packed-chat-20260919-1133/profile/logs/logs_2026-09-19_11-33-15", + "project": "chat", + "cleanup_confirmed": true, + "runner_error": null, + "failure_grace_seconds": 20, + "failure_observed_during_polling": false, + "first_failure_elapsed_seconds": null, + "executable": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe", + "dedicated_server": false, + "display": "headless Gamescope", + "audio": "-noSound plus own silent sink", + "control_only": false, + "source_manifest_scope": "none: packed input provenance is separate; loose source manifests cannot qualify this run", + "scope": "packed-only chat ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "packed_consumption_verified": true +} diff --git a/docs/evidence/packed-chat-2026-09-19-113315/script.log.txt b/docs/evidence/packed-chat-2026-09-19-113315/script.log.txt new file mode 100644 index 0000000..c85a643 --- /dev/null +++ b/docs/evidence/packed-chat-2026-09-19-113315/script.log.txt @@ -0,0 +1,229 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-chat-20260919-1133\profile\logs\logs_2026-09-19_11-33-15\script.log started at 2026-09-19 11:33:17 (2026-09-19 09:33:17 UTC) + +11:33:17.059 SCRIPT : SCRIPT : Initializing scripts +11:33:17.059 SCRIPT : SCRIPT : ScriptProjectManager init +11:33:17.136 SCRIPT : SCRIPT : Compiling GameLib scripts +11:33:17.167 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:33:17.168 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:33:17.168 SCRIPT : SCRIPT : Compiling Game scripts +11:33:18.017 SCRIPT : Compiling Game scripts +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:18.017 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:18.245 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.256 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:18.283 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:18.380 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:18.411 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:18.455 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:18.466 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:18.467 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:18.510 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.510 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:18.511 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:18.564 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:18.694 SCRIPT : Module: Game; loaded 5776x files; 11193x classes; used 26975K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: c91180ab +11:33:19.378 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:33:19.381 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BB701D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:33:19.672 SCRIPT : ERR ORDINARY: requesting header project=chat +11:33:20.756 SCRIPT : SCRIPT : Compiling GameLib scripts +11:33:20.784 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:33:20.785 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:33:20.785 SCRIPT : SCRIPT : Compiling Game scripts +11:33:21.614 SCRIPT : Compiling Game scripts +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:33:21.614 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:33:21.873 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:21.885 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:33:21.913 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:33:22.008 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:33:22.040 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:33:22.086 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:33:22.097 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:33:22.099 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:33:22.144 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:33:22.196 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:33:22.306 SCRIPT : Module: Game; loaded 5776x files; 11193x classes; used 26949K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: c91180ab +11:33:33.593 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:33:34.481 SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems +11:33:34.485 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! +11:33:34.485 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! +11:33:34.487 SCRIPT (W): Can't open config file "" +11:33:34.487 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:33:34.488 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:33:34.488 SCRIPT (W): Slot_Chat Has no Content! +11:33:34.488 SCRIPT (W): Slot_VON Has no Content! +11:33:34.488 SCRIPT (W): Slot_AvailableActions Has no Content! +11:33:34.488 SCRIPT (W): Slot_Vehicle Has no Content! +11:33:34.488 SCRIPT (W): Slot_GameVersion Has no Content! +11:33:34.488 SCRIPT (W): Slot_Notifications Has no Content! +11:33:34.488 SCRIPT (W): Slot_Hints Has no Content! +11:33:34.493 SCRIPT : ERR ORDINARY ADMISSION: server=1 sessionMode=0 modePresent=1 controllerPresent=1 identityPresent=0 nameLength=5 +11:33:34.493 SCRIPT : ERR ORDINARY IDENTITY: rawLength=36 rawEmpty=0 rawNull=1 rawFormatValid=1 rawNullSentinel=1 helperLength=36 helperFormatValid=1 dedicated=0 +11:33:34.493 SCRIPT : Rereintroduced [admission]: sole offline controller uses a generated local-round roster key; backend identity and permissions unchanged. +11:33:34.493 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:33:34.505 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:33:34.515 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:33:34.662 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:33:36.004 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:33:36.018 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:33:36.018 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:33:36.040 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:33:36.042 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:33:36.084 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:33:36.084 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:33:36.090 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:33:36.132 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:33:36.133 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:33:36.134 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:33:36.134 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:33:36.138 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:33:36.139 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:33:36.139 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:33:36.140 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:33:36.140 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:33:36.140 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:33:36.140 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:33:36.140 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:33:36.140 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:36.140 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.058 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.335 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012.07,63.5095,7499.7> up=0.995332 +11:33:37.335 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.120081 angularSpeed=0.101376 +11:33:37.335 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.05,63.6085,7501.97> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.05,63.3085,7501.97> terrainY=63.3171 tireTerrainGap=-0.00863266 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7012.05,63.6085,7501.97> radius=0.3 bottom=<7012.05,63.3085,7501.97> fraction=0.415686 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00854874 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6083,7497.71> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1583,7497.71> terrainY=64.1562 tireTerrainGap=0.00209045 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6083,7497.71> radius=0.45 bottom=<7009.88,64.1583,7497.71> fraction=0.464386 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00216675 +11:33:37.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2586,7497.75> +11:33:37.335 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8086,7497.75> terrainY=63.8176 tireTerrainGap=-0.00894547 +11:33:37.335 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2586,7497.75> radius=0.45 bottom=<7014.42,63.8086,7497.75> fraction=0.413611 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.0090065 +11:33:37.335 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:37.572 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.136 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.402 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5428,7499.73> up=0.994215 +11:33:38.402 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0950941 angularSpeed=0.0210495 +11:33:38.402 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6165,7502> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3165,7502> terrainY=63.3122 tireTerrainGap=0.00427246 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6165,7502> radius=0.3 bottom=<7012.06,63.3165,7502> fraction=0.473699 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00421524 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.6041,7497.73> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.1541,7497.73> terrainY=64.1486 tireTerrainGap=0.00556946 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.6041,7497.73> radius=0.45 bottom=<7009.92,64.1541,7497.73> fraction=0.48009 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00562286 +11:33:38.402 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2633,7497.8> +11:33:38.402 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8133,7497.8> terrainY=63.8148 tireTerrainGap=-0.00149155 +11:33:38.402 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2633,7497.8> radius=0.45 bottom=<7014.46,63.8133,7497.8> fraction=0.447778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00148773 +11:33:38.402 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:33:38.670 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:38.936 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:33:39.202 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.202 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.203 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.469 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5275,7499.76> up=0.994291 +11:33:39.469 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0517899 angularSpeed=0.0515119 +11:33:39.469 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6123,7502.03> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3123,7502.03> terrainY=63.3099 tireTerrainGap=0.00236893 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6123,7502.03> radius=0.3 bottom=<7012.08,63.3123,7502.03> fraction=0.46522 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00234985 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1414 tireTerrainGap=0.00151062 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.461582 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00154877 +11:33:39.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2588,7497.85> +11:33:39.469 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8088,7497.85> terrainY=63.8116 tireTerrainGap=-0.0028801 +11:33:39.469 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2588,7497.85> radius=0.45 bottom=<7014.51,63.8088,7497.85> fraction=0.441389 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00289536 +11:33:39.469 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:39.737 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.269 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:33:40.536 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994219 +11:33:40.536 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:33:40.536 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6108,7502.04> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3108,7502.04> terrainY=63.3094 tireTerrainGap=0.00142288 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6108,7502.04> radius=0.3 bottom=<7012.08,63.3108,7502.04> fraction=0.461046 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00143051 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1406 tireTerrainGap=0.00244904 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:33:40.536 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2593,7497.86> +11:33:40.536 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8093,7497.86> terrainY=63.8112 tireTerrainGap=-0.00185776 +11:33:40.536 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2593,7497.86> radius=0.45 bottom=<7014.52,63.8093,7497.86> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:33:40.536 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:40.802 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:41.101 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.101 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:33:41.102 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.102 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.669 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994219 +11:33:41.669 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:33:41.669 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6108,7502.04> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3108,7502.04> terrainY=63.3094 tireTerrainGap=0.00142288 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6108,7502.04> radius=0.3 bottom=<7012.08,63.3108,7502.04> fraction=0.461046 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00143051 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.593,7497.74> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.143,7497.74> terrainY=64.1406 tireTerrainGap=0.00244904 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.593,7497.74> radius=0.45 bottom=<7009.97,64.143,7497.74> fraction=0.465769 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00247192 +11:33:41.669 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2593,7497.86> +11:33:41.669 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8093,7497.86> terrainY=63.8112 tireTerrainGap=-0.00185776 +11:33:41.669 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2593,7497.86> radius=0.45 bottom=<7014.52,63.8093,7497.86> fraction=0.446111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00185394 +11:33:41.669 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:33:41.669 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.669 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:33:41.670 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:33:41.680 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:33:41.681 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:33:41.681 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:33:41.681 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:33:41.681 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:33:41.681 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:33:41.681 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:33:41.691 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:33:41.735 SCRIPT : ERR ORDINARY: local participant verified project=chat phase=prison +11:33:41.735 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-kind.json b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-kind.json new file mode 100644 index 0000000..bb649fc --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-kind.json @@ -0,0 +1,7 @@ +{ + "schema_version": 1, + "kind": "packed-core-consumption", + "packed_launch_id": "4686bcbe-428a-45f4-acee-4efa001d2b96", + "build_qualified": false, + "release_qualified": false +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-sha256.json b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-sha256.json new file mode 100644 index 0000000..e2e612a --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/archive-sha256.json @@ -0,0 +1,14 @@ +{ + "archive-kind.json": "5f9a17655af19b7b93905db270141ce293e16a8e83457f297f382380f458f31e", + "console.log.txt": "586d0794e50dfdae94d18c75ad8b986339083485a91635999dd090e82621eba0", + "error.log.txt": "1fcfb5e3d1605e16d7e103d0ddbc4d8bfd2cd37fef194ee7ff4c6bc58b95aa1f", + "headless-launch.log.txt": "2ca01de5a8d530b5185d9b446b5119629ca14fb6238cc9909b1df71a671bee15", + "package/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "package/data.pak": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9", + "package/resourceDatabase.rdb": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97", + "packed-input-provenance.json": "765427d17649967aeba81a1ae70d47c5f84ad1d0811bbcc61f3a4c75eb58f6b1", + "raw-startup-report.json": "d76b768fab2c3ff47a37b61fbb73001da86cbc485599edd0c61281b130cba990", + "report.json": "84f52629a8fee174f0b763793c491af53000b68785a11828a1282e19a42dda6c", + "runner.json.txt": "b84706d34c470452645e20a2b3d2e8d22831d580c6dcb1b6319cc5b07a9dfc34", + "script.log.txt": "ea9b72f65a039c87eaf8d85374c294e12a57cfa32a4bcfc8376c1f2725e5687c" +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/console.log.txt b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/console.log.txt new file mode 100644 index 0000000..9e67f8d --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/console.log.txt @@ -0,0 +1,191 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27\console.log started at 2026-09-19 11:01:27 (2026-09-19 09:01:27 UTC) + +11:01:27.503 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27' to filesystem under name logs +11:01:27.504 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-core-20260919-1102\profile\profile' to filesystem under name profile +11:01:27.504 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger\' +11:01:27.505 ENGINE : Initializing engine, version 192142 +11:01:27.505 ENGINE : CLI Params: -addonsDir Z:/tmp/erri-packed-core-20260919-1102/input/addons -addons 2528466DE220D91C -profile Z:/tmp/erri-packed-core-20260919-1102/profile -errOrdinaryScenario core -noSplash -noBackend -noSound -noThrow -disableCrashReporter -logconsole +11:01:27.510 ENGINE : Addon dirs: +11:01:27.510 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons' +11:01:27.510 ENGINE : dir: './addons' +11:01:27.510 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1102/profile/addons' +11:01:27.510 ENGINE : Available addons: +11:01:27.510 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:01:27.510 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:01:27.510 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:01:27.511 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:01:27.637 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:01:27.641 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:01:27.641 ENGINE : CPU vendor : AuthenticAMD +11:01:27.641 ENGINE : CPU type : 2 +11:01:27.641 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:01:27.641 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:01:27.641 ENGINE : CPU count logical : 16 +11:01:27.641 ENGINE : CPU count physical : 8 +11:01:27.641 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:01:27.641 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/resourceDatabase.rdb) +11:01:27.642 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:01:27.794 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:01:27.795 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-packed-core-20260919-1102\profile\profile/resourceDatabase.rdb) +11:01:27.795 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27/resourceDatabase.rdb) +11:01:27.953 ENGINE : GameProject load +11:01:27.953 ENGINE : Loaded addons: +11:01:27.953 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:01:27.953 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:01:27.953 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:01:27.955 ENGINE : Loading custom engine user config '$profile:.save/app1874880_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:01:27.955 ENGINE : No Enfusion settings file loaded. Continuing with defaults +11:01:27.955 ENGINE : Locale info: system en-US (English), user en-US (English) +11:01:28.088 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:01:28.090 RENDER : Basic screen setup: +11:01:28.090 RENDER : Back buffer width x height: 1280x720 +11:01:28.090 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:01:28.090 RENDER : MSAA : none +11:01:28.103 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:01:28.103 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:01:28.103 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:01:28.103 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:01:28.103 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:01:28.103 RENDER : AMD AGS correctly initialized +11:01:28.104 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 +11:01:28.104 RENDER : Detected output devices: +11:01:28.104 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:01:28.104 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:01:28.104 RENDER : Concurrent frames limit 2 +11:01:28.183 RENDER : DX12 device successfully created by AMD AGS library +11:01:28.183 RENDER : * user markers not supported in this version AMD SW +11:01:28.183 RENDER : Graphics device features +11:01:28.183 RENDER : Needed: +11:01:28.183 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:01:28.183 RENDER : Optional: +11:01:28.183 RENDER : * Allow tearing (VSYNC) : 1 +11:01:28.183 RENDER : * 16 bits : 1 +11:01:28.183 RENDER : * Resource heap tier : 3 +11:01:28.183 RENDER : * Persistent heaps (DRED) : 1 +11:01:28.183 RENDER : * DRED 1.2 is supported by compiler +11:01:28.206 RENDER : Main RT format setup. +11:01:28.206 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:01:28.206 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:01:28.212 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=7 +11:01:28.244 PROFILING : Settings changed took: 1.125600 ms +11:01:28.250 RENDER : RENDER : Reload shaders +11:01:28.251 RENDER : Enfusion shader version 13 +11:01:28.251 INIT : INIT : ShaderListReload +11:01:28.251 PROFILING : ShaderListReload took: 0.000500 ms +11:01:28.739 RENDER : Loaded 3383 newer shader binaries +11:01:28.739 PROFILING : Reload shaders took: 488.884500 ms +11:01:28.742 ENGINE : Initializing inputs. +11:01:28.758 NETWORK : Initializing networking. +11:01:28.758 NETWORK : Using new GameRplScheduler. +11:01:28.759 SCRIPT : SCRIPT : Initializing scripts +11:01:28.759 SCRIPT : SCRIPT : ScriptProjectManager init +11:01:28.759 PROFILING : ScriptProjectManager init took: 0.013200 ms +11:01:28.779 PROFILING : Initializing scripts took: 19.643700 ms +11:01:28.779 BACKEND : Backend Services are disabled. +11:01:28.779 ENGINE : Enfusion engine successfully created. +11:01:28.786 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:01:28.812 GUI : Using default language (en_us) +11:01:28.812 GUI : Loading 'en_us' localization file. +11:01:28.812 INIT : INIT : Loading StringTable +11:01:28.839 PROFILING : Loading StringTable took: 26.415100 ms +11:01:28.839 SCRIPT : SCRIPT : Compiling GameLib scripts +11:01:28.874 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:01:28.875 PROFILING : Compiling GameLib scripts took: 35.844700 ms +11:01:28.875 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:01:28.875 SCRIPT : SCRIPT : Compiling Game scripts +11:01:29.706 SCRIPT : Compiling Game scripts +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:01:29.935 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:29.946 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:01:29.971 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:01:30.099 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:01:30.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:01:30.159 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:01:30.263 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:01:30.394 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26747K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:01:30.423 PROFILING : Compiling Game scripts took: 1547.514300 ms +11:01:30.423 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:01:30.456 ENGINE : Game successfully created. +11:01:30.475 PLATFORM : Save data from container 'settings' have been loaded +11:01:30.574 PLATFORM : Save data from container 'sessions' have been loaded +11:01:30.976 PLATFORM : System language differs from the saved one - using new language {new: 'en_us'; old: ''} +11:01:30.976 PLATFORM : Save data transaction to 'settings' started. +11:01:31.073 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission 'worlds/MainMenuWorld/MainMenuWorld.ent'. +11:01:31.074 WORLD : WORLD : Entities load 'worlds/MainMenuWorld/MainMenuWorld.ent' +11:01:31.074 PROFILING : Entities load took: 0.259000 ms +11:01:31.075 WORLD : WORLD : Game::LoadEntities +11:01:31.075 WORLD : WORLD : Initializing world systems +11:01:31.076 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:01:31.077 WORLD : WORLD : CreateEntities +11:01:31.077 WORLD : WORLD : CreateEntities +11:01:31.077 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:01:31.078 RESOURCES : Loaded mission headers from 3 addon(s)! +11:01:31.078 PROFILING : NotifyBeforeEntitiesCreated took: 1.180200 ms +11:01:31.078 WORLD : WORLD : Wait for preloading data +11:01:31.078 PROFILING : Wait for preloading data took: 0.000400 ms +11:01:31.078 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:01:31.078 PROFILING : NotifyBeforeEntitiesInitialized took: 0.015900 ms +11:01:31.078 WORLD : InitEntities 'world' +11:01:31.078 ENTITY : Init entity @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> +11:01:31.078 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:01:31.080 WORLD : WORLD : NotifyEntitiesInitialized +11:01:31.080 DEFAULT : DEFAULT : WorldVolumesCollection +11:01:31.080 PROFILING : WorldVolumesCollection took: 0.004100 ms +11:01:31.080 PROFILING : NotifyEntitiesInitialized took: 0.053400 ms +11:01:31.080 PROFILING : CreateEntities took: 3.621900 ms +11:01:31.080 PROFILING : CreateEntities took: 3.630300 ms +11:01:31.080 WORLD : WORLD : EOnActivate +11:01:31.080 PROFILING : EOnActivate took: 0.001900 ms +11:01:31.080 PROFILING : Game::LoadEntities took: 5.237300 ms +11:01:31.272 DEFAULT : Entered main menu. +11:01:31.372 PROFILING : Settings changed took: 0.587500 ms +11:01:31.373 DEFAULT (W): No GameMode present in the world, using fallback logic! +11:01:31.374 SCRIPT : ERR ORDINARY: requesting header project=core +11:01:31.908 ENGINE : Game destroyed. +11:01:32.029 ENGINE : Addon dirs: +11:01:32.029 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons' +11:01:32.029 ENGINE : dir: './addons' +11:01:32.029 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1102/profile/addons' +11:01:32.029 ENGINE : dir: '$profile:../addons/' +11:01:32.029 ENGINE : Available addons: +11:01:32.029 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:01:32.029 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:01:32.029 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:01:32.029 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:01:32.133 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:01:32.137 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:01:32.137 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/resourceDatabase.rdb) +11:01:32.137 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:01:32.247 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:01:32.248 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-packed-core-20260919-1102\profile\profile/resourceDatabase.rdb) +11:01:32.248 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27/resourceDatabase.rdb) +11:01:32.389 ENGINE : GameProject load +11:01:32.389 ENGINE : Loaded addons: +11:01:32.389 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:01:32.389 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:01:32.389 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1102/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:01:32.407 GUI : Using default language (en_us) +11:01:32.407 GUI : Loading 'en_us' localization file. +11:01:32.407 INIT : INIT : Loading StringTable +11:01:32.426 PROFILING : Loading StringTable took: 19.389100 ms +11:01:32.426 SCRIPT : SCRIPT : Compiling GameLib scripts +11:01:32.462 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:01:32.463 PROFILING : Compiling GameLib scripts took: 36.631100 ms +11:01:32.463 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:01:32.463 SCRIPT : SCRIPT : Compiling Game scripts diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/error.log.txt b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/error.log.txt new file mode 100644 index 0000000..1df4c84 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/error.log.txt @@ -0,0 +1,25 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27\error.log started at 2026-09-19 11:01:28 (2026-09-19 09:01:28 UTC) + +11:01:28.786 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:01:29.706 SCRIPT : Compiling Game scripts +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:01:29.935 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:29.946 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:01:29.971 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:01:30.099 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:01:30.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:01:30.159 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:01:30.263 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:01:31.373 DEFAULT (W): No GameMode present in the world, using fallback logic! diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/headless-launch.log.txt b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/headless-launch.log.txt new file mode 100644 index 0000000..b280515 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/headless-launch.log.txt @@ -0,0 +1,140 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerSteam.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a00030 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a00030 +[Gamescope WSI] Surface state: + steam app id: 1874880 + window xid: 0x1a00030 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f3a9410dd60 - imageCount: 3 +[Gamescope WSI] Destroying swapchain: 0x7f3a9410dd60 +[Gamescope WSI] Destroyed swapchain: 0x7f3a9410dd60 +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f3a9410dd60 - imageCount: 3 +[gamescope] [Info] launch: Primary child shut down! +(EE) failed to read Wayland events: Broken pipe diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/addon.gproj b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/addon.gproj new file mode 100644 index 0000000..54287e7 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { + "58D0FB3206B6F859" + } +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/data.pak b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/package/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..158df44cfe03e885d11fcd8f4a8cd11b8828f67e GIT binary patch literal 194044 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/packed-input-provenance.json b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/packed-input-provenance.json new file mode 100644 index 0000000..ea51c64 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/packed-input-provenance.json @@ -0,0 +1,57 @@ +{ + "schema_version": 1, + "kind": "packed-core-runtime-input", + "launch_id": "4686bcbe-428a-45f4-acee-4efa001d2b96", + "captured_unix": 1789808485.7643282, + "candidate_directory": "/tmp/erri-native-package-core-20260919-1100-silent/packages/core", + "runtime_directory": "/tmp/erri-packed-core-20260919-1102/input/addons/core", + "profile": "/tmp/erri-packed-core-20260919-1102/profile", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe", + "-addonsDir", + "Z:/tmp/erri-packed-core-20260919-1102/input/addons", + "-addons", + "2528466DE220D91C", + "-profile", + "Z:/tmp/erri-packed-core-20260919-1102/profile", + "-errOrdinaryScenario", + "core", + "-noSplash", + "-noBackend", + "-noSound", + "-noThrow", + "-disableCrashReporter", + "-logconsole" + ], + "artifacts": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194044, + "sha256": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97" + } + }, + "build_qualification": "unqualified candidate; packaging verdict is unchanged" +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/raw-startup-report.json b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/raw-startup-report.json new file mode 100644 index 0000000..046d629 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/raw-startup-report.json @@ -0,0 +1,30 @@ +{ + "log": "console.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "local_participant_verified": false, + "scenario_header_verified": false, + "verified_header_projects": [], + "game_module_defines": [ + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG" + ], + "workbench_undefined": true, + "normal_mission_ready": false, + "unexpected_smoke_fixture": false, + "failed": true, + "ready": false, + "packed_only": true, + "packed_loaded_paths_verified": true, + "packed_input_violations": [ + "Unexpected addon search directory: $profile:../addons/" + ], + "packed_normal_modules": true, + "build_qualified": false, + "release_qualified": false, + "failure_observed_during_polling": true, + "packed_consumption_verified": false +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/report.json b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/report.json new file mode 100644 index 0000000..d1047f8 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/report.json @@ -0,0 +1,69 @@ +{ + "log": "console.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "local_participant_verified": false, + "scenario_header_verified": false, + "verified_header_projects": [], + "game_module_defines": [ + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG" + ], + "workbench_undefined": true, + "normal_mission_ready": false, + "unexpected_smoke_fixture": false, + "failed": true, + "ready": false, + "packed_only": true, + "packed_loaded_paths_verified": true, + "packed_input_violations": [], + "packed_normal_modules": true, + "build_qualified": false, + "release_qualified": false, + "packed_consumption_verified": false, + "archived_packed_input_verified": true, + "runner_result": "game-failed", + "runner_failure_latched": true, + "packed_inputs_unchanged_after_run": true, + "auxiliary_native_reports": { + "script.log": { + "log": "script.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + }, + "error.log": { + "log": "error.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + }, + "headless-launch.log": { + "log": "headless-launch.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + } + }, + "auxiliary_native_failure": false, + "runner_settle_claim_consistent": false, + "settle_evidence": "Native readiness recomputed; 15-second continuous settling is the sealed runner verdict, not an independently recorded polling timeline.", + "qualification": "packed-only ordinary startup consumption only; original package build verdict and current source acceptance remain separate", + "verifier_sha256": { + "archive_packed.py": "a0e9798d9fb06893bb218c80eb3aa578398c720bde561488cd7d4a831e1f00a9", + "headless_game.py": "0e047d14bef44600df7d5d50e5d8890e0734a24a481b8fb29dc992714292fd62", + "native_report.py": "bb75ef5fe551f45776d441f15a49ccad4daf19abca505187f9b2d30102538658" + } +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/runner.json.txt b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/runner.json.txt new file mode 100644 index 0000000..fa99194 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/runner.json.txt @@ -0,0 +1,29 @@ +{ + "packed_only": true, + "packed_input_provenance": "packed-input-provenance.json", + "packed_input_provenance_sha256": "765427d17649967aeba81a1ae70d47c5f84ad1d0811bbcc61f3a4c75eb58f6b1", + "packed_launch_id": "4686bcbe-428a-45f4-acee-4efa001d2b96", + "stopped_unix": 1789808493.1726596, + "packed_inputs_unchanged_after_run": true, + "packed_input_error": null, + "console_sha256": "586d0794e50dfdae94d18c75ad8b986339083485a91635999dd090e82621eba0", + "build_qualified": false, + "release_qualified": false, + "started_unix": 1789808485.7643936, + "result": "game-failed", + "session": "/tmp/erri-packed-core-20260919-1102/profile/logs/logs_2026-09-19_11-01-27", + "project": "core", + "cleanup_confirmed": true, + "runner_error": null, + "failure_grace_seconds": 0, + "failure_observed_during_polling": true, + "first_failure_elapsed_seconds": 7.179668638971634, + "executable": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe", + "dedicated_server": false, + "display": "headless Gamescope", + "audio": "-noSound plus own silent sink", + "control_only": false, + "source_manifest_scope": "none: packed input provenance is separate; loose source manifests cannot qualify this run", + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "packed_consumption_verified": false +} diff --git a/docs/evidence/packed-core-2026-09-19-110127-path-refusal/script.log.txt b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/script.log.txt new file mode 100644 index 0000000..3ec5da1 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110127-path-refusal/script.log.txt @@ -0,0 +1,40 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1102\profile\logs\logs_2026-09-19_11-01-27\script.log started at 2026-09-19 11:01:28 (2026-09-19 09:01:28 UTC) + +11:01:28.759 SCRIPT : SCRIPT : Initializing scripts +11:01:28.759 SCRIPT : SCRIPT : ScriptProjectManager init +11:01:28.839 SCRIPT : SCRIPT : Compiling GameLib scripts +11:01:28.874 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:01:28.875 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:01:28.875 SCRIPT : SCRIPT : Compiling Game scripts +11:01:29.706 SCRIPT : Compiling Game scripts +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:01:29.706 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:01:29.935 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:29.946 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:01:29.971 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:01:30.067 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:01:30.099 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:01:30.143 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:01:30.157 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:01:30.159 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.198 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:01:30.199 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:01:30.263 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:01:30.394 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26747K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:01:31.078 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:01:31.080 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BBE01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:01:31.374 SCRIPT : ERR ORDINARY: requesting header project=core +11:01:32.426 SCRIPT : SCRIPT : Compiling GameLib scripts +11:01:32.462 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:01:32.463 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:01:32.463 SCRIPT : SCRIPT : Compiling Game scripts diff --git a/docs/evidence/packed-core-2026-09-19-110729/archive-kind.json b/docs/evidence/packed-core-2026-09-19-110729/archive-kind.json new file mode 100644 index 0000000..f824740 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/archive-kind.json @@ -0,0 +1,7 @@ +{ + "schema_version": 1, + "kind": "packed-core-consumption", + "packed_launch_id": "91a30cf3-34a1-47ad-b0d4-632289b62437", + "build_qualified": false, + "release_qualified": false +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/archive-sha256.json b/docs/evidence/packed-core-2026-09-19-110729/archive-sha256.json new file mode 100644 index 0000000..140babe --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/archive-sha256.json @@ -0,0 +1,14 @@ +{ + "archive-kind.json": "35de4732c174fc5b56c633c22c2f2156fcb85a6da33c2aee760a83ff0c71dae9", + "console.log.txt": "f021987144059b7254ef7a1e647bb89f2eb339c12d9e65cecc1ad003e7b5a8b3", + "error.log.txt": "72a1c23c8e84b232ba2f19d3d9b59d624f4ca77730e17d4229b07d5f115d63ec", + "headless-launch.log.txt": "90ce2eee706ae6712d5e0e5e2befefc0928167fbd0f1375e18d2da18a5f52ee4", + "package/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46", + "package/data.pak": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9", + "package/resourceDatabase.rdb": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97", + "packed-input-provenance.json": "ac46c12d6b17260bc1ead5bac5edeaf20ed74c556ed454ed2c4031b13044b7d4", + "raw-startup-report.json": "7856a06c91f12bd339b8c872e47c0cec3775dc5c860605455e456c35ffc1ebfe", + "report.json": "f1dddb011b104afa9d22f291793ff024581cd3fea2979f3b642dc452b2092d77", + "runner.json.txt": "00243648067079b291b90ad9d8210d06ded1788e0b5aae92eadd2afdf069fc43", + "script.log.txt": "4139c3332f267029383669a5a1bba3793974830c581bdd54fcebb7251072ff3c" +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/console.log.txt b/docs/evidence/packed-core-2026-09-19-110729/console.log.txt new file mode 100644 index 0000000..91eb8da --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/console.log.txt @@ -0,0 +1,458 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29\console.log started at 2026-09-19 11:07:29 (2026-09-19 09:07:29 UTC) + +11:07:29.433 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29' to filesystem under name logs +11:07:29.433 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-packed-core-20260919-1107\profile\profile' to filesystem under name profile +11:07:29.433 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger\' +11:07:29.434 ENGINE : Initializing engine, version 192142 +11:07:29.434 ENGINE : CLI Params: -addonsDir Z:/tmp/erri-packed-core-20260919-1107/input/addons -addons 2528466DE220D91C -profile Z:/tmp/erri-packed-core-20260919-1107/profile -errOrdinaryScenario core -noSplash -noBackend -noSound -noThrow -disableCrashReporter -logconsole +11:07:29.439 ENGINE : Addon dirs: +11:07:29.439 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons' +11:07:29.439 ENGINE : dir: './addons' +11:07:29.439 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1107/profile/addons' +11:07:29.439 ENGINE : Available addons: +11:07:29.439 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:07:29.439 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:07:29.439 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:07:29.440 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:07:29.576 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:07:29.580 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:07:29.580 ENGINE : CPU vendor : AuthenticAMD +11:07:29.580 ENGINE : CPU type : 2 +11:07:29.580 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +11:07:29.580 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +11:07:29.580 ENGINE : CPU count logical : 16 +11:07:29.580 ENGINE : CPU count physical : 8 +11:07:29.580 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +11:07:29.581 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/resourceDatabase.rdb) +11:07:29.581 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:07:29.733 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:07:29.734 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-packed-core-20260919-1107\profile\profile/resourceDatabase.rdb) +11:07:29.734 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29/resourceDatabase.rdb) +11:07:29.901 ENGINE : GameProject load +11:07:29.901 ENGINE : Loaded addons: +11:07:29.901 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:07:29.901 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:07:29.901 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:07:29.904 ENGINE : Loading custom engine user config '$profile:.save/app1874880_user76561198020202999/settings/ReforgerEngineSettings.conf' +11:07:29.904 ENGINE : No Enfusion settings file loaded. Continuing with defaults +11:07:29.904 ENGINE : Locale info: system en-US (English), user en-US (English) +11:07:30.041 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +11:07:30.043 RENDER : Basic screen setup: +11:07:30.043 RENDER : Back buffer width x height: 1280x720 +11:07:30.043 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +11:07:30.043 RENDER : MSAA : none +11:07:30.059 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +11:07:30.059 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +11:07:30.059 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +11:07:30.059 RENDER : * core clocks 2720 MHz, memory 1124 MHz +11:07:30.059 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s) +11:07:30.059 RENDER : AMD AGS correctly initialized +11:07:30.060 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 +11:07:30.060 RENDER : Detected output devices: +11:07:30.060 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +11:07:30.060 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +11:07:30.060 RENDER : Concurrent frames limit 2 +11:07:30.141 RENDER : DX12 device successfully created by AMD AGS library +11:07:30.141 RENDER : * user markers not supported in this version AMD SW +11:07:30.141 RENDER : Graphics device features +11:07:30.141 RENDER : Needed: +11:07:30.141 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +11:07:30.141 RENDER : Optional: +11:07:30.141 RENDER : * Allow tearing (VSYNC) : 1 +11:07:30.141 RENDER : * 16 bits : 1 +11:07:30.141 RENDER : * Resource heap tier : 3 +11:07:30.141 RENDER : * Persistent heaps (DRED) : 1 +11:07:30.141 RENDER : * DRED 1.2 is supported by compiler +11:07:30.164 RENDER : Main RT format setup. +11:07:30.164 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +11:07:30.164 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +11:07:30.169 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=7 +11:07:30.198 PROFILING : Settings changed took: 1.359500 ms +11:07:30.205 RENDER : RENDER : Reload shaders +11:07:30.205 RENDER : Enfusion shader version 13 +11:07:30.205 INIT : INIT : ShaderListReload +11:07:30.205 PROFILING : ShaderListReload took: 0.000500 ms +11:07:30.633 RENDER : Loaded 3383 newer shader binaries +11:07:30.633 PROFILING : Reload shaders took: 427.577300 ms +11:07:30.635 ENGINE : Initializing inputs. +11:07:30.651 NETWORK : Initializing networking. +11:07:30.651 NETWORK : Using new GameRplScheduler. +11:07:30.651 SCRIPT : SCRIPT : Initializing scripts +11:07:30.652 SCRIPT : SCRIPT : ScriptProjectManager init +11:07:30.652 PROFILING : ScriptProjectManager init took: 0.008500 ms +11:07:30.670 PROFILING : Initializing scripts took: 18.911800 ms +11:07:30.671 BACKEND : Backend Services are disabled. +11:07:30.671 ENGINE : Enfusion engine successfully created. +11:07:30.678 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:07:30.700 GUI : Using default language (en_us) +11:07:30.700 GUI : Loading 'en_us' localization file. +11:07:30.700 INIT : INIT : Loading StringTable +11:07:30.725 PROFILING : Loading StringTable took: 25.217900 ms +11:07:30.725 SCRIPT : SCRIPT : Compiling GameLib scripts +11:07:30.757 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:07:30.757 PROFILING : Compiling GameLib scripts took: 32.124400 ms +11:07:30.758 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:07:30.758 SCRIPT : SCRIPT : Compiling Game scripts +11:07:31.590 SCRIPT : Compiling Game scripts +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:31.820 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:31.831 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:31.856 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:31.983 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:32.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:32.039 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:32.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:32.041 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:32.134 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:32.249 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26747K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:07:32.278 PROFILING : Compiling Game scripts took: 1520.710900 ms +11:07:32.278 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:07:32.310 ENGINE : Game successfully created. +11:07:32.366 PLATFORM : Save data from container 'settings' have been loaded +11:07:32.466 PLATFORM : Save data from container 'sessions' have been loaded +11:07:32.867 PLATFORM : System language differs from the saved one - using new language {new: 'en_us'; old: ''} +11:07:32.867 PLATFORM : Save data transaction to 'settings' started. +11:07:32.965 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission 'worlds/MainMenuWorld/MainMenuWorld.ent'. +11:07:32.966 WORLD : WORLD : Entities load 'worlds/MainMenuWorld/MainMenuWorld.ent' +11:07:32.966 PROFILING : Entities load took: 0.313200 ms +11:07:32.967 WORLD : WORLD : Game::LoadEntities +11:07:32.967 WORLD : WORLD : Initializing world systems +11:07:32.968 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:07:32.969 WORLD : WORLD : CreateEntities +11:07:32.969 WORLD : WORLD : CreateEntities +11:07:32.969 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:07:32.970 RESOURCES : Loaded mission headers from 3 addon(s)! +11:07:32.970 PROFILING : NotifyBeforeEntitiesCreated took: 1.300300 ms +11:07:32.970 WORLD : WORLD : Wait for preloading data +11:07:32.970 PROFILING : Wait for preloading data took: 0.000300 ms +11:07:32.970 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:07:32.970 PROFILING : NotifyBeforeEntitiesInitialized took: 0.019300 ms +11:07:32.971 WORLD : InitEntities 'world' +11:07:32.971 ENTITY : Init entity @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> +11:07:32.971 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:07:32.973 WORLD : WORLD : NotifyEntitiesInitialized +11:07:32.973 DEFAULT : DEFAULT : WorldVolumesCollection +11:07:32.973 PROFILING : WorldVolumesCollection took: 0.006700 ms +11:07:32.973 PROFILING : NotifyEntitiesInitialized took: 0.084000 ms +11:07:32.973 PROFILING : CreateEntities took: 4.235100 ms +11:07:32.973 PROFILING : CreateEntities took: 4.243400 ms +11:07:32.973 WORLD : WORLD : EOnActivate +11:07:32.973 PROFILING : EOnActivate took: 0.002700 ms +11:07:32.973 PROFILING : Game::LoadEntities took: 5.752000 ms +11:07:33.164 DEFAULT : Entered main menu. +11:07:33.264 PROFILING : Settings changed took: 0.522100 ms +11:07:33.265 DEFAULT (W): No GameMode present in the world, using fallback logic! +11:07:33.265 SCRIPT : ERR ORDINARY: requesting header project=core +11:07:33.787 ENGINE : Game destroyed. +11:07:33.911 ENGINE : Addon dirs: +11:07:33.911 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons' +11:07:33.911 ENGINE : dir: './addons' +11:07:33.911 ENGINE : dir: 'Z:/tmp/erri-packed-core-20260919-1107/profile/addons' +11:07:33.911 ENGINE : dir: '$profile:../addons/' +11:07:33.911 ENGINE : Available addons: +11:07:33.911 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/addon.gproj' guid: '2528466DE220D91C' (packed) +11:07:33.911 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +11:07:33.911 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +11:07:33.912 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/' (pak count: 1) to filesystem under name ERR_Core +11:07:34.026 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +11:07:34.030 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +11:07:34.030 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/resourceDatabase.rdb) +11:07:34.031 RESOURCES : ResourceDB: loading cache (id=1 name=ArmaReforger path=./addons/data/resourceDatabase.rdb) +11:07:34.147 RESOURCES : ResourceDB: loading cache (id=2 name=core path=./addons/core/resourceDatabase.rdb) +11:07:34.148 RESOURCES : ResourceDB: loading cache (id=3 name=profile path=Z:\tmp\erri-packed-core-20260919-1107\profile\profile/resourceDatabase.rdb) +11:07:34.148 RESOURCES : ResourceDB: loading cache (id=4 name=logs path=Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29/resourceDatabase.rdb) +11:07:34.312 ENGINE : GameProject load +11:07:34.312 ENGINE : Loaded addons: +11:07:34.312 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +11:07:34.312 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +11:07:34.312 ENGINE : gproj: 'Z:/tmp/erri-packed-core-20260919-1107/input/addons/core/addon.gproj' guid: '2528466DE220D91C' +11:07:34.332 GUI : Using default language (en_us) +11:07:34.332 GUI : Loading 'en_us' localization file. +11:07:34.332 INIT : INIT : Loading StringTable +11:07:34.353 PROFILING : Loading StringTable took: 20.966500 ms +11:07:34.353 SCRIPT : SCRIPT : Compiling GameLib scripts +11:07:34.385 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:07:34.386 PROFILING : Compiling GameLib scripts took: 32.849300 ms +11:07:34.386 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:07:34.386 SCRIPT : SCRIPT : Compiling Game scripts +11:07:35.172 SCRIPT : Compiling Game scripts +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:35.395 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.406 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:35.431 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:35.554 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:35.600 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:35.614 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:35.718 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:35.832 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26721K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:07:35.862 PROFILING : Compiling Game scripts took: 1476.262700 ms +11:07:35.862 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC. +11:07:35.882 ENGINE : Game successfully created. +11:07:35.949 PLATFORM : Save data from container 'settings' have been loaded +11:07:36.048 PLATFORM : Save data from container 'sessions' have been loaded +11:07:36.048 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf" +11:07:36.048 ENGINE : Game user settings config loaded +11:07:36.148 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{AD62322D5213C440}Missions/ERR_Everon_Base.conf'. +11:07:36.149 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent' +11:07:37.159 PROFILING : Entities load took: 1009.697300 ms +11:07:37.160 WORLD : WORLD : Game::LoadEntities +11:07:37.160 WORLD : WORLD : Initializing world systems @"{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf" +11:07:37.161 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits. +11:07:37.161 WORLD : WORLD : CreateEntities +11:07:37.162 WORLD : WORLD : CreateEntities +11:07:37.162 WORLD : WORLD : NotifyBeforeEntitiesCreated +11:07:37.162 RESOURCES : Loaded mission headers from 3 addon(s)! +11:07:37.162 PROFILING : NotifyBeforeEntitiesCreated took: 0.948600 ms +11:07:37.162 WORLD : WORLD : Wait for preloading data +11:07:37.169 PROFILING : Wait for preloading data took: 7.013000 ms +11:07:37.293 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et" +11:07:37.293 PROFILING : PROFILING : Terrain load +11:07:38.750 PROFILING : Terrain load took: 1457.248300 ms +11:07:41.487 WORLD : Game::LoadEntities +11:07:41.487 WORLD : CreateEntities +11:07:41.487 WORLD : CreateEntities +11:07:41.487 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:07:41.487 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:07:41.487 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:07:46.552 WORLD : WORLD : NotifyBeforeEntitiesInitialized +11:07:46.552 PROFILING : NotifyBeforeEntitiesInitialized took: 0.046800 ms +11:07:47.152 WORLD : InitEntities 'world' +11:07:47.152 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:07:47.152 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:07:47.173 WORLD : WORLD : NotifyEntitiesInitialized +11:07:47.173 TERRAIN : TERRAIN : Initializing road networks... +11:07:47.176 PROFILING : Initializing road networks... took: 3.121400 ms +11:07:47.176 DEFAULT : DEFAULT : WorldVolumesCollection +11:07:47.234 PROFILING : WorldVolumesCollection took: 57.989100 ms +11:07:47.234 INIT : INIT : SoundWorldInit +11:07:47.249 PROFILING : SoundWorldInit took: 14.750400 ms +11:07:47.249 PROFILING : NotifyEntitiesInitialized took: 76.044700 ms +11:07:47.249 PROFILING : CreateEntities took: 10087.370100 ms +11:07:47.249 PROFILING : CreateEntities took: 10087.539700 ms +11:07:47.250 WORLD : WORLD : Wait for preloading data around camera +11:07:47.550 PROFILING : Wait for preloading data around camera took: 300.351200 ms +11:07:47.550 WORLD : WORLD : EOnActivate +11:07:47.582 PROFILING : EOnActivate took: 31.586600 ms +11:07:47.582 PROFILING : Game::LoadEntities took: 10421.737100 ms +11:07:48.080 DEFAULT : Entered offline game state. +11:07:48.185 SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems +11:07:48.185 NETWORK : Player connected: connectionID=2147483646 +11:07:48.185 NETWORK : ### Connecting player: connectionID=2147483646, Name= +11:07:48.185 NETWORK : ### Creating player: PlayerId=1, Name=jakub +11:07:48.190 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.190 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:07:48.190 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.190 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! +11:07:48.190 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! +11:07:48.191 SCRIPT (W): Can't open config file "" +11:07:48.192 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:07:48.193 WORLD : InitEntities 'world' +11:07:48.193 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.193 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:07:48.193 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:07:48.194 SCRIPT (W): Slot_Chat Has no Content! +11:07:48.194 SCRIPT (W): Slot_VON Has no Content! +11:07:48.194 SCRIPT (W): Slot_AvailableActions Has no Content! +11:07:48.194 SCRIPT (W): Slot_Vehicle Has no Content! +11:07:48.194 SCRIPT (W): Slot_GameVersion Has no Content! +11:07:48.194 SCRIPT (W): Slot_Notifications Has no Content! +11:07:48.194 SCRIPT (W): Slot_Hints Has no Content! +11:07:48.200 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000 +11:07:48.201 SCRIPT : ERR ORDINARY ADMISSION: server=1 sessionMode=0 modePresent=1 controllerPresent=1 identityPresent=0 nameLength=5 +11:07:48.201 SCRIPT : ERR ORDINARY IDENTITY: rawLength=36 rawEmpty=0 rawNull=1 rawFormatValid=1 rawNullSentinel=1 helperLength=36 helperFormatValid=1 dedicated=0 +11:07:48.201 SCRIPT : Rereintroduced [admission]: sole offline controller uses a generated local-round roster key; backend identity and permissions unchanged. +11:07:48.201 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:07:48.201 NETWORK : Players connecting: 0 +11:07:48.201 NETWORK : Players connected: 1 / 1 +11:07:48.213 WORLD : Frame start +11:07:48.213 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:07:48.224 WORLD : UpdateEntities +11:07:48.224 WORLD : Frame +11:07:48.224 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:07:48.380 WORLD : UpdateEntities +11:07:48.380 WORLD : PostFrame +11:07:48.380 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:07:48.380 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:07:48.422 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:07:48.422 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:07:48.422 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:07:48.422 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:07:48.560 RENDER : RENDER : ObjectsHeightMap::Build +11:07:48.560 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld +11:07:48.701 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 141.437100 ms +11:07:48.710 PROFILING : ObjectsHeightMap::Build took: 149.746800 ms +11:07:49.718 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:07:49.731 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:07:49.731 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:07:49.758 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:07:49.760 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:07:49.802 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:07:49.802 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:07:49.808 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:07:49.845 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:07:49.845 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:07:49.846 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:07:49.846 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:07:49.849 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:07:49.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:07:49.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:07:49.851 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:07:49.851 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:07:49.851 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:07:49.851 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:50.486 WORLD : UpdateEntities +11:07:50.486 WORLD : AfterPostSimulate +11:07:50.486 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.080 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012.07,63.5077,7499.69> up=0.995071 +11:07:51.080 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.125558 angularSpeed=0.105754 +11:07:51.080 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.04,63.6119,7501.97> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.04,63.3119,7501.97> terrainY=63.3173 tireTerrainGap=-0.0054512 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7012.04,63.6119,7501.97> radius=0.3 bottom=<7012.04,63.3119,7501.97> fraction=0.430252 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00534439 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6155,7497.71> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1655,7497.71> terrainY=64.1562 tireTerrainGap=0.00924683 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6155,7497.71> radius=0.45 bottom=<7009.88,64.1655,7497.71> fraction=0.496637 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00926208 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2599,7497.75> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8099,7497.75> terrainY=63.8174 tireTerrainGap=-0.00751877 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2599,7497.75> radius=0.45 bottom=<7014.42,63.8099,7497.75> fraction=0.420278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00753784 +11:07:51.080 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.147 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5422,7499.73> up=0.99409 +11:07:52.147 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0571685 angularSpeed=0.0390047 +11:07:52.147 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6127,7502> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3127,7502> terrainY=63.3122 tireTerrainGap=0.000492096 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6127,7502> radius=0.3 bottom=<7012.06,63.3127,7502> fraction=0.456594 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.000450134 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.6048,7497.73> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.1548,7497.73> terrainY=64.1485 tireTerrainGap=0.00629425 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.6048,7497.73> radius=0.45 bottom=<7009.92,64.1548,7497.73> fraction=0.483455 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00636292 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2626,7497.8> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8126,7497.8> terrainY=63.8147 tireTerrainGap=-0.00213242 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2626,7497.8> radius=0.45 bottom=<7014.46,63.8126,7497.8> fraction=0.444722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00215912 +11:07:52.147 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:52.381 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.382 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:53.215 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5276,7499.76> up=0.994309 +11:07:53.215 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0646891 angularSpeed=0.053254 +11:07:53.215 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6123,7502.04> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3123,7502.04> terrainY=63.3097 tireTerrainGap=0.00260925 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6123,7502.04> radius=0.3 bottom=<7012.08,63.3123,7502.04> fraction=0.466333 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00259399 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5933,7497.74> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1433,7497.74> terrainY=64.1411 tireTerrainGap=0.00221252 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5933,7497.74> radius=0.45 bottom=<7009.97,64.1433,7497.74> fraction=0.464947 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00228882 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2591,7497.85> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8091,7497.85> terrainY=63.8114 tireTerrainGap=-0.00233841 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2591,7497.85> radius=0.45 bottom=<7014.51,63.8091,7497.85> fraction=0.443889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00234222 +11:07:53.215 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.280 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994264 +11:07:54.280 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:07:54.280 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6113,7502.04> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3113,7502.04> terrainY=63.3094 tireTerrainGap=0.00191498 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6113,7502.04> radius=0.3 bottom=<7012.08,63.3113,7502.04> fraction=0.463123 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00188828 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5924,7497.74> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1424,7497.74> terrainY=64.1406 tireTerrainGap=0.00173187 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5924,7497.74> radius=0.45 bottom=<7009.97,64.1424,7497.74> fraction=0.462703 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00180054 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2587,7497.86> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8087,7497.86> terrainY=63.8112 tireTerrainGap=-0.00249863 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2587,7497.86> radius=0.45 bottom=<7014.52,63.8087,7497.86> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:07:54.280 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:55.080 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.353 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994264 +11:07:55.353 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:07:55.353 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6113,7502.04> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3113,7502.04> terrainY=63.3094 tireTerrainGap=0.00191498 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6113,7502.04> radius=0.3 bottom=<7012.08,63.3113,7502.04> fraction=0.463123 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00188828 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5924,7497.74> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1424,7497.74> terrainY=64.1406 tireTerrainGap=0.00173187 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5924,7497.74> radius=0.45 bottom=<7009.97,64.1424,7497.74> fraction=0.462703 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00180054 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2587,7497.86> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8087,7497.86> terrainY=63.8112 tireTerrainGap=-0.00249863 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2587,7497.86> radius=0.45 bottom=<7014.52,63.8087,7497.86> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:07:55.353 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:55.354 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.354 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.354 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:07:55.354 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:07:55.355 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:07:55.355 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:07:55.355 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:07:55.355 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:07:55.355 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:07:55.355 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:07:56.281 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:07:56.320 SCRIPT : ERR ORDINARY: local participant verified project=core phase=prison +11:07:56.320 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> diff --git a/docs/evidence/packed-core-2026-09-19-110729/error.log.txt b/docs/evidence/packed-core-2026-09-19-110729/error.log.txt new file mode 100644 index 0000000..bd6c5e1 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/error.log.txt @@ -0,0 +1,84 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29\error.log started at 2026-09-19 11:07:30 (2026-09-19 09:07:30 UTC) + +11:07:30.678 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected) +11:07:31.590 SCRIPT : Compiling Game scripts +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:31.820 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:31.831 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:31.856 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:31.983 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:32.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:32.039 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:32.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:32.041 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:32.134 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:33.265 DEFAULT (W): No GameMode present in the world, using fallback logic! +11:07:35.172 SCRIPT : Compiling Game scripts +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:35.395 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.406 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:35.431 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:35.554 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:35.600 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:35.614 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:35.718 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:41.487 WORLD : Game::LoadEntities +11:07:41.487 WORLD : CreateEntities +11:07:41.487 WORLD : CreateEntities +11:07:41.487 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et" +11:07:41.487 ENTITY : CreateComponent 'ScriptedRadioComponent' +11:07:41.487 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent. +11:07:47.152 WORLD : InitEntities 'world' +11:07:47.152 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et" +11:07:47.152 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:07:48.190 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.190 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> +11:07:48.190 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.190 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! +11:07:48.190 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! +11:07:48.191 SCRIPT (W): Can't open config file "" +11:07:48.192 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:07:48.193 WORLD : InitEntities 'world' +11:07:48.193 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et" +11:07:48.193 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout" +11:07:48.193 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:07:48.194 SCRIPT (W): Slot_Chat Has no Content! +11:07:48.194 SCRIPT (W): Slot_VON Has no Content! +11:07:48.194 SCRIPT (W): Slot_AvailableActions Has no Content! +11:07:48.194 SCRIPT (W): Slot_Vehicle Has no Content! +11:07:48.194 SCRIPT (W): Slot_GameVersion Has no Content! +11:07:48.194 SCRIPT (W): Slot_Notifications Has no Content! +11:07:48.194 SCRIPT (W): Slot_Hints Has no Content! +11:07:48.201 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:07:48.380 WORLD : UpdateEntities +11:07:48.380 WORLD : PostFrame +11:07:48.380 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout" +11:07:48.380 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:07:48.422 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:07:48.422 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout" +11:07:48.422 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout" +11:07:48.422 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab +11:07:50.486 WORLD : UpdateEntities +11:07:50.486 WORLD : AfterPostSimulate +11:07:50.486 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found diff --git a/docs/evidence/packed-core-2026-09-19-110729/headless-launch.log.txt b/docs/evidence/packed-core-2026-09-19-110729/headless-launch.log.txt new file mode 100644 index 0000000..ddce432 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/headless-launch.log.txt @@ -0,0 +1,139 @@ +[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1) +No CAP_SYS_NICE, falling back to regular-priority compute and threads. +Performance will be affected. +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope' +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2) +[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays' +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10) +[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11) +[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist +[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts' +[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist +[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0) +[gamescope] [Info] vulkan: physical device supports DRM format modifiers +[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend +[gamescope] [Info] vulkan: supported DRM formats for sampling usage: +[gamescope] [Info] vulkan: AR24 (0x34325241) +[gamescope] [Info] vulkan: XR24 (0x34325258) +[gamescope] [Info] vulkan: AB24 (0x34324241) +[gamescope] [Info] vulkan: XB24 (0x34324258) +[gamescope] [Info] vulkan: RG16 (0x36314752) +[gamescope] [Info] vulkan: NV12 (0x3231564E) +[gamescope] [Info] vulkan: AB4H (0x48344241) +[gamescope] [Info] vulkan: XB4H (0x48344258) +[gamescope] [Info] vulkan: AB48 (0x38344241) +[gamescope] [Info] vulkan: XB48 (0x38344258) +[gamescope] [Info] vulkan: AB30 (0x30334241) +[gamescope] [Info] vulkan: XB30 (0x30334258) +[gamescope] [Info] vulkan: AR30 (0x30335241) +[gamescope] [Info] vulkan: XR30 (0x30335258) +[gamescope] [Info] wlserver: Using explicit sync when available +[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0' +[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend +[gamescope] [Info] wlserver: Successfully initialized libei for input emulation! +[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use +[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2 +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Multiple symbols for level 1/group 1 on key +> Using F23, ignoring XF86TouchpadOff +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Symbol map for key redefined +> Using last definition for conflicting fields +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn +> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff +> Warning: Could not resolve keysym XF86ActionOnSelection +> Warning: Could not resolve keysym XF86ContextualInsert +> Warning: Could not resolve keysym XF86ContextualQuery +Errors from xkbcomp are not fatal to the X server +[gamescope] [Info] pipewire: stream state changed: connecting +[gamescope] [Info] pipewire: stream state changed: paused +[gamescope] [Info] pipewire: stream available on node ID: 132 +[gamescope] [Info] vblank: Using timerfd. +fsync: up and running. +[Gamescope WSI] No application info given. +[Gamescope WSI] Executable name: explorer.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: xalia.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: xalia.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] No application info given. +The XKEYBOARD keymap compiler (xkbcomp) reports: +> Warning: Unsupported maximum keycode 709, clipping. +> X11 cannot support keycodes above 255. +> Warning: Virtual modifier Hyper multiply defined +> Using 0, ignoring 0 +> Warning: Virtual modifier ScrollLock multiply defined +> Using 0, ignoring 0 +Errors from xkbcomp are not fatal to the X server +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: DXVK + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Executable name: ArmaReforgerSteam.exe +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: (null) + applicationVersion: 0 + pEngineName: (null) + engineVersion: 0 + apiVersion: 4198400 +ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment. +[Gamescope WSI] Application info: + pApplicationName: ArmaReforgerSteam.exe + applicationVersion: 0 + pEngineName: vkd3d + engineVersion: 12587008 + apiVersion: 4206592 +[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1. +[Gamescope WSI] Creating Gamescope surface: xid: 0x1a00030 +[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL. +[Gamescope WSI] Made gamescope surface for xid: 0x1a00030 +[Gamescope WSI] Surface state: + steam app id: 1874880 + window xid: 0x1a00030 + wayland surface res id: 5 + layer client flags: 0x4 + server hdr output enabled: false + hdr formats exposed to client: false +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7fd2cc1815c0 - imageCount: 3 +[Gamescope WSI] Destroying swapchain: 0x7fd2cc1815c0 +[Gamescope WSI] Destroyed swapchain: 0x7fd2cc1815c0 +[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true +[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7fd2cc1815c0 - imageCount: 3 +[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting... diff --git a/docs/evidence/packed-core-2026-09-19-110729/package/addon.gproj b/docs/evidence/packed-core-2026-09-19-110729/package/addon.gproj new file mode 100644 index 0000000..54287e7 --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/package/addon.gproj @@ -0,0 +1,8 @@ +GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { + "58D0FB3206B6F859" + } +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/package/data.pak b/docs/evidence/packed-core-2026-09-19-110729/package/data.pak new file mode 100644 index 0000000000000000000000000000000000000000..158df44cfe03e885d11fcd8f4a8cd11b8828f67e GIT binary patch literal 194044 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/packed-core-2026-09-19-110729/packed-input-provenance.json b/docs/evidence/packed-core-2026-09-19-110729/packed-input-provenance.json new file mode 100644 index 0000000..8cd18ef --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/packed-input-provenance.json @@ -0,0 +1,57 @@ +{ + "schema_version": 1, + "kind": "packed-core-runtime-input", + "launch_id": "91a30cf3-34a1-47ad-b0d4-632289b62437", + "captured_unix": 1789808847.7616863, + "candidate_directory": "/tmp/erri-native-package-core-20260919-1100-silent/packages/core", + "runtime_directory": "/tmp/erri-packed-core-20260919-1107/input/addons/core", + "profile": "/tmp/erri-packed-core-20260919-1107/profile", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1280", + "-H", + "720", + "-w", + "1280", + "-h", + "720", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe", + "-addonsDir", + "Z:/tmp/erri-packed-core-20260919-1107/input/addons", + "-addons", + "2528466DE220D91C", + "-profile", + "Z:/tmp/erri-packed-core-20260919-1107/profile", + "-errOrdinaryScenario", + "core", + "-noSplash", + "-noBackend", + "-noSound", + "-noThrow", + "-disableCrashReporter", + "-logconsole" + ], + "artifacts": { + "addon.gproj": { + "bytes": 137, + "sha256": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46" + }, + "data.pak": { + "bytes": 194044, + "sha256": "90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9" + }, + "resourceDatabase.rdb": { + "bytes": 6865, + "sha256": "6d0936dc1c30bdd7b2086d9e5e7befc1e03ab678fa87705b402cb4bae356aa97" + } + }, + "build_qualification": "unqualified candidate; packaging verdict is unchanged" +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/raw-startup-report.json b/docs/evidence/packed-core-2026-09-19-110729/raw-startup-report.json new file mode 100644 index 0000000..f5a151a --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/raw-startup-report.json @@ -0,0 +1,31 @@ +{ + "log": "console.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "local_participant_verified": true, + "scenario_header_verified": true, + "verified_header_projects": [ + "core" + ], + "game_module_defines": [ + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG", + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG" + ], + "workbench_undefined": true, + "normal_mission_ready": true, + "unexpected_smoke_fixture": false, + "failed": false, + "ready": true, + "packed_only": true, + "packed_loaded_paths_verified": true, + "packed_input_violations": [], + "packed_normal_modules": true, + "build_qualified": false, + "release_qualified": false, + "failure_observed_during_polling": false, + "packed_consumption_verified": true +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/report.json b/docs/evidence/packed-core-2026-09-19-110729/report.json new file mode 100644 index 0000000..fc1a54f --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/report.json @@ -0,0 +1,72 @@ +{ + "log": "console.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "local_participant_verified": true, + "scenario_header_verified": true, + "verified_header_projects": [ + "core" + ], + "game_module_defines": [ + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG", + "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG" + ], + "workbench_undefined": true, + "normal_mission_ready": true, + "unexpected_smoke_fixture": false, + "failed": false, + "ready": true, + "packed_only": true, + "packed_loaded_paths_verified": true, + "packed_input_violations": [], + "packed_normal_modules": true, + "build_qualified": false, + "release_qualified": false, + "packed_consumption_verified": true, + "archived_packed_input_verified": true, + "runner_result": "packed-core-started", + "runner_failure_latched": false, + "packed_inputs_unchanged_after_run": true, + "auxiliary_native_reports": { + "script.log": { + "log": "script.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + }, + "error.log": { + "log": "error.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + }, + "headless-launch.log": { + "log": "headless-launch.log", + "smoke_completions": 0, + "assertions_passed": 0, + "script_or_runtime_failures": [], + "engine_errors": [], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" + } + }, + "auxiliary_native_failure": false, + "runner_settle_claim_consistent": true, + "settle_evidence": "Native readiness recomputed; 15-second continuous settling is the sealed runner verdict, not an independently recorded polling timeline.", + "qualification": "packed-only ordinary startup consumption only; original package build verdict and current source acceptance remain separate", + "verifier_sha256": { + "archive_packed.py": "a0e9798d9fb06893bb218c80eb3aa578398c720bde561488cd7d4a831e1f00a9", + "headless_game.py": "0e047d14bef44600df7d5d50e5d8890e0734a24a481b8fb29dc992714292fd62", + "native_report.py": "bb75ef5fe551f45776d441f15a49ccad4daf19abca505187f9b2d30102538658" + } +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/runner.json.txt b/docs/evidence/packed-core-2026-09-19-110729/runner.json.txt new file mode 100644 index 0000000..0e55b8d --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/runner.json.txt @@ -0,0 +1,29 @@ +{ + "packed_only": true, + "packed_input_provenance": "packed-input-provenance.json", + "packed_input_provenance_sha256": "ac46c12d6b17260bc1ead5bac5edeaf20ed74c556ed454ed2c4031b13044b7d4", + "packed_launch_id": "91a30cf3-34a1-47ad-b0d4-632289b62437", + "stopped_unix": 1789808893.091181, + "packed_inputs_unchanged_after_run": true, + "packed_input_error": null, + "console_sha256": "f021987144059b7254ef7a1e647bb89f2eb339c12d9e65cecc1ad003e7b5a8b3", + "build_qualified": false, + "release_qualified": false, + "started_unix": 1789808847.761775, + "result": "packed-core-started", + "session": "/tmp/erri-packed-core-20260919-1107/profile/logs/logs_2026-09-19_11-07-29", + "project": "core", + "cleanup_confirmed": true, + "runner_error": null, + "failure_grace_seconds": 20, + "failure_observed_during_polling": false, + "first_failure_elapsed_seconds": null, + "executable": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe", + "dedicated_server": false, + "display": "headless Gamescope", + "audio": "-noSound plus own silent sink", + "control_only": false, + "source_manifest_scope": "none: packed input provenance is separate; loose source manifests cannot qualify this run", + "scope": "packed-only Core ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification", + "packed_consumption_verified": true +} diff --git a/docs/evidence/packed-core-2026-09-19-110729/script.log.txt b/docs/evidence/packed-core-2026-09-19-110729/script.log.txt new file mode 100644 index 0000000..c28993a --- /dev/null +++ b/docs/evidence/packed-core-2026-09-19-110729/script.log.txt @@ -0,0 +1,229 @@ +--------------------------------------------- +Log Z:\tmp\erri-packed-core-20260919-1107\profile\logs\logs_2026-09-19_11-07-29\script.log started at 2026-09-19 11:07:30 (2026-09-19 09:07:30 UTC) + +11:07:30.652 SCRIPT : SCRIPT : Initializing scripts +11:07:30.652 SCRIPT : SCRIPT : ScriptProjectManager init +11:07:30.725 SCRIPT : SCRIPT : Compiling GameLib scripts +11:07:30.757 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 666K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:07:30.758 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:07:30.758 SCRIPT : SCRIPT : Compiling Game scripts +11:07:31.590 SCRIPT : Compiling Game scripts +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:31.590 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:31.820 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:31.831 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:31.856 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:31.952 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:31.983 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:32.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:32.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:32.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:32.041 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.077 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:32.078 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:32.134 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:32.249 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26747K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:07:32.971 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Internal_CheckAddons() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Callback_CheckAddons_OnSuccess() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> FinalizeInitAfterAsyncChecks() +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> Init Finished +11:07:32.973 SCRIPT : [SCR_AddonManager] SCR_AddonManager<0x000000002BAC01D8> @"ENTITY:3" ('SCR_AddonManager') at <0.000000 0.000000 0.000000> User Workshop access: 1 +11:07:33.265 SCRIPT : ERR ORDINARY: requesting header project=core +11:07:34.353 SCRIPT : SCRIPT : Compiling GameLib scripts +11:07:34.385 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 664K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb +11:07:34.386 SCRIPT : ERR ORDINARY: diagnostic noSplash honored before Game compilation +11:07:34.386 SCRIPT : SCRIPT : Compiling Game scripts +11:07:35.172 SCRIPT : Compiling Game scripts +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete +11:07:35.172 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete +11:07:35.395 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.406 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +11:07:35.431 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +11:07:35.524 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +11:07:35.554 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +11:07:35.600 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +11:07:35.612 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +11:07:35.614 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.650 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +11:07:35.651 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +11:07:35.718 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +11:07:35.832 SCRIPT : Module: Game; loaded 5742x files; 11126x classes; used 26721K of static memory; defines: "PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 9c8acf09 +11:07:47.152 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead. +11:07:48.185 SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems +11:07:48.190 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! +11:07:48.190 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! +11:07:48.191 SCRIPT (W): Can't open config file "" +11:07:48.192 SCRIPT (W): Cannot update game blocklist. Backend is offline. +11:07:48.193 SCRIPT (W): Slot_WeaponInfo Has no Content! +11:07:48.194 SCRIPT (W): Slot_Chat Has no Content! +11:07:48.194 SCRIPT (W): Slot_VON Has no Content! +11:07:48.194 SCRIPT (W): Slot_AvailableActions Has no Content! +11:07:48.194 SCRIPT (W): Slot_Vehicle Has no Content! +11:07:48.194 SCRIPT (W): Slot_GameVersion Has no Content! +11:07:48.194 SCRIPT (W): Slot_Notifications Has no Content! +11:07:48.194 SCRIPT (W): Slot_Hints Has no Content! +11:07:48.201 SCRIPT : ERR ORDINARY ADMISSION: server=1 sessionMode=0 modePresent=1 controllerPresent=1 identityPresent=0 nameLength=5 +11:07:48.201 SCRIPT : ERR ORDINARY IDENTITY: rawLength=36 rawEmpty=0 rawNull=1 rawFormatValid=1 rawNullSentinel=1 helperLength=36 helperFormatValid=1 dedicated=0 +11:07:48.201 SCRIPT : Rereintroduced [admission]: sole offline controller uses a generated local-round roster key; backend identity and permissions unchanged. +11:07:48.201 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +11:07:48.213 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +11:07:48.224 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +11:07:48.380 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +11:07:49.718 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1 +11:07:49.731 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160> +11:07:49.731 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1 +11:07:49.758 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050> +11:07:49.760 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200> +11:07:49.802 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500> +11:07:49.802 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1 +11:07:49.808 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1 +11:07:49.845 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220> +11:07:49.845 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1 +11:07:49.846 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400> +11:07:49.846 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1 +11:07:49.849 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1 +11:07:49.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1 +11:07:49.850 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1 +11:07:49.851 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300> +11:07:49.851 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1 +11:07:49.851 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0 +11:07:49.851 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97> +11:07:49.851 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156 +11:07:49.851 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:49.851 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:50.802 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.080 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012.07,63.5077,7499.69> up=0.995071 +11:07:51.080 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.125558 angularSpeed=0.105754 +11:07:51.080 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.04,63.6119,7501.97> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.04,63.3119,7501.97> terrainY=63.3173 tireTerrainGap=-0.0054512 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7012.04,63.6119,7501.97> radius=0.3 bottom=<7012.04,63.3119,7501.97> fraction=0.430252 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00534439 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6155,7497.71> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1655,7497.71> terrainY=64.1562 tireTerrainGap=0.00924683 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6155,7497.71> radius=0.45 bottom=<7009.88,64.1655,7497.71> fraction=0.496637 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00926208 +11:07:51.080 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2599,7497.75> +11:07:51.080 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8099,7497.75> terrainY=63.8174 tireTerrainGap=-0.00751877 +11:07:51.080 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2599,7497.75> radius=0.45 bottom=<7014.42,63.8099,7497.75> fraction=0.420278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00753784 +11:07:51.080 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.316 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:51.880 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.147 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.09,63.5422,7499.73> up=0.99409 +11:07:52.147 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0571685 angularSpeed=0.0390047 +11:07:52.147 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.06,63.6127,7502> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.06,63.3127,7502> terrainY=63.3122 tireTerrainGap=0.000492096 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7012.06,63.6127,7502> radius=0.3 bottom=<7012.06,63.3127,7502> fraction=0.456594 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.000450134 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.92,64.6048,7497.73> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.92,64.1548,7497.73> terrainY=64.1485 tireTerrainGap=0.00629425 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7009.92,64.6048,7497.73> radius=0.45 bottom=<7009.92,64.1548,7497.73> fraction=0.483455 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00636292 +11:07:52.147 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.46,64.2626,7497.8> +11:07:52.147 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.46,63.8126,7497.8> terrainY=63.8147 tireTerrainGap=-0.00213242 +11:07:52.147 SCRIPT : ERR GEAR SUPPORT: center=<7014.46,64.2626,7497.8> radius=0.45 bottom=<7014.46,63.8126,7497.8> fraction=0.444722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00215912 +11:07:52.147 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:52.381 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.381 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0 +11:07:52.382 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:52.947 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:53.215 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5276,7499.76> up=0.994309 +11:07:53.215 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0646891 angularSpeed=0.053254 +11:07:53.215 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6123,7502.04> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3123,7502.04> terrainY=63.3097 tireTerrainGap=0.00260925 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6123,7502.04> radius=0.3 bottom=<7012.08,63.3123,7502.04> fraction=0.466333 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00259399 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5933,7497.74> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1433,7497.74> terrainY=64.1411 tireTerrainGap=0.00221252 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5933,7497.74> radius=0.45 bottom=<7009.97,64.1433,7497.74> fraction=0.464947 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00228882 +11:07:53.215 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2591,7497.85> +11:07:53.215 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8091,7497.85> terrainY=63.8114 tireTerrainGap=-0.00233841 +11:07:53.215 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2591,7497.85> radius=0.45 bottom=<7014.51,63.8091,7497.85> fraction=0.443889 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00234222 +11:07:53.215 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:53.481 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.014 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0 +11:07:54.280 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994264 +11:07:54.280 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:07:54.280 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6113,7502.04> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3113,7502.04> terrainY=63.3094 tireTerrainGap=0.00191498 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6113,7502.04> radius=0.3 bottom=<7012.08,63.3113,7502.04> fraction=0.463123 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00188828 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5924,7497.74> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1424,7497.74> terrainY=64.1406 tireTerrainGap=0.00173187 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5924,7497.74> radius=0.45 bottom=<7009.97,64.1424,7497.74> fraction=0.462703 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00180054 +11:07:54.280 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2587,7497.86> +11:07:54.280 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8087,7497.86> terrainY=63.8112 tireTerrainGap=-0.00249863 +11:07:54.280 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2587,7497.86> radius=0.45 bottom=<7014.52,63.8087,7497.86> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:07:54.280 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:54.549 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:55.080 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.081 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.353 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.528,7499.77> up=0.994264 +11:07:55.353 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0 +11:07:55.353 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6113,7502.04> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3113,7502.04> terrainY=63.3094 tireTerrainGap=0.00191498 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6113,7502.04> radius=0.3 bottom=<7012.08,63.3113,7502.04> fraction=0.463123 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00188828 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5924,7497.74> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1424,7497.74> terrainY=64.1406 tireTerrainGap=0.00173187 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5924,7497.74> radius=0.45 bottom=<7009.97,64.1424,7497.74> fraction=0.462703 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00180054 +11:07:55.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.52,64.2587,7497.86> +11:07:55.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.52,63.8087,7497.86> terrainY=63.8112 tireTerrainGap=-0.00249863 +11:07:55.353 SCRIPT : ERR GEAR SUPPORT: center=<7014.52,64.2587,7497.86> radius=0.45 bottom=<7014.52,63.8087,7497.86> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914 +11:07:55.353 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1 +11:07:55.354 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.354 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1 +11:07:55.354 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready +11:07:55.354 SCRIPT : Rereintroduced [environment]: date=authored weather=authored +11:07:55.355 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression +11:07:55.355 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +11:07:55.355 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160> +11:07:55.355 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154> +11:07:55.355 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0 +11:07:55.355 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison +11:07:56.281 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US) +11:07:56.320 SCRIPT : ERR ORDINARY: local participant verified project=core phase=prison +11:07:56.320 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.391,7158.5> diff --git a/docs/mortar-activity-completion.md b/docs/mortar-activity-completion.md new file mode 100644 index 0000000..4bd09f8 --- /dev/null +++ b/docs/mortar-activity-completion.md @@ -0,0 +1,24 @@ +# Retaining the native mortar activity outcome + +The `11-19-15` refresh fixture produced eight fresh physical commits and eight actual native projectiles under the original order, with three accepted radio updates and 19 original shells remaining. The HQ journal then reported activity state `0` after the eighth shot, and the order eventually failed on its unchanged 120-second timeout. That run is not a qualified full-salvo completion. + +Installed vanilla source explains why polling the current action state alone is insufficient: + +- `scripts/Game/AI/Behavior/SCR_AIStaticArtilleryActivity.c`, `OnChildBehaviorArtilleryFired`: the native child event increments the activity's shot count and calls `Complete()` when its requested count is reached. +- `scripts/Game/AI/Behavior/SCR_AIStaticArtilleryBehavior.c`, `Internal_OnArtilleryFired` and the shooting-logic node: the native behavior increments its counter and invokes that child event. The successor still permits this notification only after a confirmed physical projectile. +- `scripts/Game/AI/Behavior/SCR_AIAction.c`, `OnComplete`: calls `OnActionCompleted()` and then invokes the public `m_OnActionCompleted` invoker with `this`. `OnFail` has the corresponding failure invoker. However, `OnActionDeselected()` unconditionally sets the current state to `EVALUATED`. +- `scripts/Game/generated/AI/EAIActionState.c`: `EVALUATED` is value zero. The installed defender spawner subscribes to this same completion invoker using `OnMoveFinished(SCR_AIActionBase action)`, confirming the callback argument type. + +The failed trace is consistent with completion followed by deselection before HQ's next poll. It did not itself record the native completion event, so that precise historical sequence remains an inference. The subsequent 112900 rerun records the actual native completion event. The fix follows the event contract regardless of the intervening state transitions. + +`ERR_MortarBattery` now subscribes to the exact newly constructed native activity's completion and failure invokers **before** adding the action. The listener captures its order ID and records only the first terminal event for that exact current activity/order while the battery and command remain active. It logs `MORTAR ACTIVITY EVENT` with the native terminal event, current state, captured order, physical order/total counts and commit flag. It neither cancels from inside the callback nor increments counts, creates another action, or calls native completion itself. + +On the next HQ update, the stored terminal event takes precedence over a later polled `EVALUATED` state. If no matching event exists, the existing polled terminal-state checks and 120-second timeout remain. Cancellation detaches both listeners before its own cleanup calls `Activity.Complete()`, so administrative/timeout/round cleanup cannot be recorded as natural success. A late callback from a canceled or replaced activity/order is ignored. The same detach/reset applies when a new order installs an activity. + +`tests/test_mortar_activity_completion.py` executes the actual subscription, callback ownership, terminal selection, cancellation and update bodies with invoker adapters. It covers completion/failure followed by deselection, exact-order and activity mismatches, stopped/closed command, listener removal before cleanup, first-terminal precedence, polling fallback and timeout despite eight physical shots when no native event occurred. A partial native completion leaves the physical counts partial; the fixture must still reject it. `tests/test_mortar_refresh.py` continues to run the actual scheduler/cancel/projectile control flow with the activity listener boundary delegated to the dedicated test. + +No firing-loop gate, freshness rule, shell count, fixture acceptance condition or deadline changed. Native compilation and a new clean full-salvo run must establish the outcome; source-local adapter tests are not engine or multiplayer evidence. + +## Native event rerun + +The [112900 refresh run](evidence/native-2026-09-19-112900-mortar-refresh/report.json) passes with 55 assertions and no captured errors. The exact activity emits its completion event after physical projectile eight; HQ closes the order as native `COMPLETED`, before the unchanged 120-second timeout. The fixture verifies 19 surviving original shells and a further 25 seconds without replay. This confirms the event-based handoff for the observed run. The earlier [111915 timeout failure](evidence/native-2026-09-19-111915-refresh-completion-refusal/report.json) remains retained; real multiplayer and interrupted native callbacks remain separate. diff --git a/docs/mortar-report-refresh.md b/docs/mortar-report-refresh.md new file mode 100644 index 0000000..bfae8fe --- /dev/null +++ b/docs/mortar-report-refresh.md @@ -0,0 +1,30 @@ +# Same-order mortar observation updates + +An active physical battery can now receive a newer observation for its existing target through HQ. HQ must first have received the observer's actual uplink; the mortar system reads `SupportContacts`, selects a strictly newer observation with a different positive message ID, and sends a separate `MORTAR UPDATE` downlink. The existing radio route must finish its actual carrier/hop checks before the battery can use the snapshot. The existing report ledger claims each update once, so an attempted update cannot later authorize another response using the same observation. + +Each update captures the exact gun, group and order ID. Only one update may be pending per battery. HQ checks for new updates every five seconds within its existing tick; pending routes advance each tick. There are no new timers, native activities, spawns or ammunition allocations. The initial order ID, initial source/radio IDs, original order deadline, shot count and eight-round limit do not change. The report retains its original observation time through both radio legs. The 60-second freshness bound and 120-second order timeout remain unchanged. + +Delivery can have three outcomes: + +- With no command for the next shell yet, the battery accepts the snapshot and the normal native aim node must solve it before firing. +- With a native aim command already in progress, the exact original solver recomputes the new report using the existing ballistic and friendly/settlement checks. It accepts the new report only if charge, gun position, impact, barrel target and flight time remain equivalent to the **original** command. The original geometry remains stored; successive small changes cannot accumulate through comparisons with previously accepted approximations. A changed solution cancels future fire instead of claiming that a different barrel command was executed. +- With a shell already committed to native inventory transfer, delivery waits. That shell retains its original report, geometry, airspace reservation and projectile attribution. Only after its native projectile callback clears the commit can the update be adopted for another shell. + +A failed downlink, absent route for a selected newer contact, expired update or changed physical ownership stops further loads. If a projectile is already committed, the rejection remains latched until that projectile is observed; it does not clear its commit flag or relabel it. A transaction belonging to an older order is discarded without cancelling the newer order. Round stop and normal cancellation clear the pending update. Receiving no newer observation never retimestamps the old one: normal expiry still cancels fire. + +`AimedAt` now records the original native barrel command time. `AimValidatedAt` records the latest successful equivalent ballistic check, including checks against a newly delivered observation. Only a real aim command sets both together. Revalidation and report adoption update only `AimValidatedAt`; projectile observation and cancellation clear both. Both native mortar fixture commit hooks check the original command timestamp and independently require validation within ten seconds. Their existing `aimAge` diagnostic now remains the age of the original command. + +The journal's normal `source`/`radio` prefix continues to identify the **initial order**. `UPDATE QUEUED`, `UPDATE RECEIVED`, and subsequent aim messages identify the newer accepted observation and update radio IDs. A refresh fixture must inspect those accepted report IDs and original observation timestamps; it must not mistake the initial prefix for the latest target report. + +`tests/test_mortar_refresh.py` executes the production constructor, ownership, eligibility, ledger-claim call, delivery advancement and aim-adoption methods against controlled radio/ballistic boundary results. It covers duplicate/older/future/wrong-target reports, pending and failed routes, lost/replaced gun or group, stale order, deferred commit, immutable deadline/count/timestamps, non-equivalent geometry, missing solver and cumulative tolerance drift. Existing aim-renewal and native-evidence policy tests cover the two timestamp meanings. These are source-policy tests, not native radio, aiming or multiplayer evidence. + +Native compilation is observed in the 11:09:55 expiry run; a real repeated-report delivery fixture remains pending. That run failed the expiry-evidence classification described below, so it does not qualify report refresh or the complete regression. The earlier immutable-report full-salvo attempt at `logs_2026-09-19_10-54-41` correctly produced two real projectiles before the original report expired. It is a partial-cancellation observation, not a completed salvo and not evidence for this new path. A future refresh fixture must retain the original expiry case separately, use explicitly disclosed new observations with distinct IDs/times through real uplink/downlink, and verify one unchanged order/activity, finite physical stock, fresh commit authorization and natural completion. No full-salvo, moving-target re-aim or multiplayer claim follows from this implementation alone. + + +## Supply refusal classification after expiry + +The 11:09:55 native expiry run recorded three real projectiles. The third shell was committed while the original observation was 59.653 seconds old and emitted after expiry; an already authorized native transfer may finish. At 61.009 seconds the next supply check correctly refused authorization, but ShootingLogic replaced its expired-report reason with the generic physical-ammunition failure. The expiry fixture therefore rejected the closure instead of crediting a proven expiry. That failed run remains failed evidence. + +ShootingLogic now captures one current timestamp, calls the existing `SupplyState(now)` first, and retains its PENDING/FAILED behavior. Only after FAILED does `ERR_MortarSystem.SupplyFailure` classify a missing/expired delivered report through `Latest`/`ContactFailure`; a still-fresh report retains the existing physical-ammunition reason. It then calls the unchanged deferred `Withhold` path. This changes the diagnostic classification, not authorization, inventory contents, native counters, cancellation timing or report freshness. Existing accepted transfers are still polled before the authorization check, remain reserved when unresolved and are never freed/retried by the helper. + +`tests/test_mortar_transactions.py` executes the actual helper, delivered-report lookup and contact-reason bodies for missing, expired, future/invalid and fresh reports, including the exact 60-second boundary. Integration checks retain supply polling and PENDING handling before failure classification. Existing actual Poll-body tests continue to cover ambiguous callbacks, invalidated/late completions and unresolved reservation retention. This narrow correction has source-regression coverage; its native expiry rerun is pending. diff --git a/docs/native-companion-packaging.md b/docs/native-companion-packaging.md new file mode 100644 index 0000000..2171c18 --- /dev/null +++ b/docs/native-companion-packaging.md @@ -0,0 +1,47 @@ +# Five-addon native packaging snapshot + +All five successor addons produced native package files in the bounded **11:17:31–11:18:40, 19 September 2026** packaging sequence. Each invocation reported `Packaging done. Result: 1`, `Packaging project successful` and native child exit zero, then emitted the same UI resource-leak errors reproduced by the empty-addon control. **Every runner result remains `validation-failed`; no package build or release is qualified.** `--continue-on-failure` deliberately allowed the diagnostic sequence to inspect every addon; it did not change any failure into success. + +The complete evidence is preserved in [package-2026-09-19-111731-all](evidence/package-2026-09-19-111731-all/package-report.json), with a separate [source/content/error comparison](evidence/package-2026-09-19-111731-all/review.json). The original temporary session is `/tmp/erri-native-package-all-20260919-1115`. No engine was launched while preparing this archival review. + +| Addon | Native start | PAK bytes | Verified PAK entries | Runner result | +| --- | --- | ---: | ---: | --- | +| Core | 11:17:31 | 194,081 | 107 | validation-failed | +| AI | 11:17:41 | 65,724 | 26 | validation-failed | +| Intel | 11:18:00 | 1,141 | 1 | validation-failed | +| Map | 11:18:20 | 5,751 | 5 | validation-failed | +| Chat | 11:18:40 | 14,469 | 8 | validation-failed | + +Core, AI, Intel, Map and Chat were invoked in dependency order, each against its private copied project, with `-wbSilent` and backend disabled. Each recorded native child exit and owned display/prefix cleanup completed. All outputs use their existing successor identities and depend on installed vanilla; no Workshop publication or identity replacement occurred. + +## Captured input and exact PAK comparison + +The 179-entry authored source maps in `authored-before.json`, `repository-after.json`, every project-specific `launch.json` and every `authored-after.json` are identical. Every archived authored source file was rehashed against that map. This establishes equality at the captured boundaries, not the impossibility of an unobserved transient mutation and restoration. + +`tools/pak_inventory.py` inspected all five PAKs read-only, validating the observed FORM/PAC1 structure, indexed data ranges, bounded decompression and actual decompressed content hashes. Across **147 entries**, each addon's complete PAK path/hash mapping exactly equals the corresponding captured authored files after excluding `.meta` files and the separate `addon.gproj`. No expected payload file is missing, no additional payload file appears and no content hash differs. Each separate output project descriptor also matches its captured authored source. The remaining 32 authored files are the five project descriptors and 27 `.meta` files; each project's omissions are listed explicitly in `review.json`. + +Full per-entry details are retained in `review/core-pak-inventory.json`, `ai-pak-inventory.json`, `intel-pak-inventory.json`, `map-pak-inventory.json` and `chat-pak-inventory.json`. The inspector implementation is archived alongside them and its SHA-256 is recorded. This proves structural/content identity for these exact bytes; it does not establish compiled platform-resource semantics, resource database correctness in the engine, gameplay or compatibility of the companion package closure. + +PAK SHA-256 values: + +- Core: `68b0f6888bee3fc97585fd663e265e12da934369ce835454995ef92a31eeb065` +- AI: `c37670234ac68d0ea71265365a29a5b0727685adc8db5423b132c96138ba8b98` +- Intel: `362b381f7ec0825613ca985d124c988072bcbf52af1c98b27d2bcaf9f755f404` +- Map: `be5b2966e695a6b144b57dec520e8d418eb93994d87c105c0f7d8e0034a3be67` +- Chat: `19989c1f41a5c53696b46b99f021070ed71b12168b64bd164b6b595456b3b506` + +## Shutdown-error comparison + +Each of the five raw consoles has **25 error lines: one resource-leak header and 24 distinct resource entries**. Removing only the leading timestamp and adjacent whitespace produces exactly the same sorted lines and counts as the [empty-addon control](native-packaging-control.md). The normalized set's SHA-256 is `0cb40e173c7a02f72123cfc568016556f05fe80457f06cabf6423cc6ce309c60` in every case. Severity, resource-path case, trailing counts and error text are preserved for comparison; archived logs remain byte-exact. + +Each project report's 51 aggregate error entries represent the 25 lines repeated in console/error logs plus the runner's `Nonempty native error.log` check. They are not 51 distinct leaked resources. The empty control establishes that these same failures do not require successor scripts/resources; it does not identify whether Workbench, Proton, the hidden display or their interaction causes them. No line is filtered, downgraded or waived. + +## Archived payload and remaining qualification + +The archive retains all 179 captured authored files, before/after inventories, all five launch/native-exit/environment records and reports, raw console/script/error logs, log-local resource databases, and **all fifteen runtime files** under `packages/{core,ai,intel,map,chat}`. Those `.gproj`, `.pak` and `.rdb` bytes total **292,361 bytes**. Compressed build caches, profile UI state/profile-local databases, source-adjacent generated databases and the installed-vanilla discovery symlinks are excluded and documented in the review. No installed vanilla package is copied. + +[archive-sha256.json](evidence/package-2026-09-19-111731-all/archive-sha256.json) hashes every retained evidence file other than itself. All 259 indexed files were re-read and verified after copying; the archive contains 260 files including this hash inventory. The runtime payload hashes also agree with each original project report. This archive does not substitute today's checkout for the launch source. + +The earlier [packed Core 110729 pass](evidence/packed-core-2026-09-19-110729/report.json) consumed a **different Core PAK**, whose hash begins `90b9be4f`; it cannot qualify this new Core PAK or the five-addon closure. A separate ordinary packed-only Chat startup with all five exact artifacts plus vanilla is still required. Full ordinary escape, manual input, multiplayer, FPS and clean packaging/release qualification remain separate. All reports retain their original failed/unqualified flags. + +When the parent copies this archive into the actual repository, Git's generated-file rules can ignore `.pak` files and profile subtrees. Explicitly force-add this exact successor-owned archive directory if committing it; do not broaden ignore rules or add installed vanilla assets. This review neither stages nor commits files and makes no acceptance-ledger change. diff --git a/docs/native-flight-input-diagnostics.md b/docs/native-flight-input-diagnostics.md index 455e7ef..dae7805 100644 --- a/docs/native-flight-input-diagnostics.md +++ b/docs/native-flight-input-diagnostics.md @@ -52,3 +52,11 @@ Four local source/runner checks pass without launching the engine or audio. The earlier observer compiled and exposed real input overwrites in 100422/101342; the revised before-write/final-write observer awaits its next source-bound native run. A native failure must remain a failure; these observations neither filter errors nor convert missing signals into zeros or successful flight evidence. + +With experimental `-errFlightActionInputs 1`, the observer also wraps the fixture's +owned `PreparePilotActions` once. The written collective/FRA snapshot is the +actual directional ActionManager readback; throttle is only a contemporaneous +native observation, not an injected throttle action. The before-write snapshot +still comes from native Apply and therefore shows the derived context after +normal collection. Diagnostic code adds no action or control writes. The base +fixture's selected writer and mandatory proof do not depend on this flag. diff --git a/docs/native-mortar-salvo.md b/docs/native-mortar-salvo.md new file mode 100644 index 0000000..2e56dde --- /dev/null +++ b/docs/native-mortar-salvo.md @@ -0,0 +1,60 @@ +# Native complete mortar salvo qualification + +`ERR_NativeMortarSalvoProbe` is a separate, opt-in WORKBENCH case for `errSmoke=1`, `errSmokeOutcome=mortar-salvo`. The earlier immutable-report source compiled and ran in [native-2026-09-19-105441-salvo-expiry-refusal](evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json): two actual committed projectiles were observed, then the original report expired and the full-salvo case correctly failed. That is partial firing/cancellation evidence, not eight-round completion. The new refresh variant described below and subsequent fixture changes still need their own native run. No acceptance item is marked passed. + +It waits for the existing authored mortar, the same four conscious crew and their real manpack uplink, then records 27 distinct physical HE inventory entities. It uses the existing bounded terrain survey, with no character or vehicle within the 400 m target square and production settlement/friendly exclusions applied to every configured salvo offset. An inert, fixture-owned vanilla intel folder is the report identity. Its stationary observation is explicitly synthetic; the fixture queues it once on the battery RTO's actual uplink, without injecting an HQ contact or invoking the battery's order methods. Normal HQ reception, scheduling, downlink, native artillery activity and firing remain in control. + +The test requires every configured round (`ERR_MortarSalvo.ROUNDS`, currently eight) to produce a distinct, nonnull native `OnWeaponFired` projectile. Each event must match the observed production commit boundary for the same source, order and sequential shot. Every commit still requires the original immutable observation within the production 60-second freshness window and an original native aim command with an independently recent equivalent validation (`AimValidatedAt`). No observation is refreshed to make eight rounds fit. Natural activity completion with fewer than eight launches, stale-report withholding, timeout, rejection or explicit Stop all fail this particular case. The separate expiry test remains the correct place to qualify withholding. If the real loading/aiming cycle cannot finish eight fresh commits within 60 seconds, that is an exposed behavior limit, not permission to relax freshness or claim completion. + +At natural completion the physical crew inventories must contain exactly 19 surviving original shells, with the battery's count agreeing. A replacement entity is never accepted as conserved ammunition. There must be eight native events, eight matching commits, eight production order/total shots and no pending load, route, report or committed shell. This verifies launch and inventory consumption; neither projectile impact nor hit accuracy is inferred. + +The original delivered report snapshot must remain ineligible for a second request. The fixture leaves the unchanged HQ contact and scheduler running for a further 25 seconds, exceeding the normal 20-second post-dispatch decision interval. Any additional command, load, projectile, shell or order fails. The final crew must still be the original four conscious actors. Cleanup removes only this fixture's report identity and stops its captured battery; it never deletes/recreates crew ammunition or attempts to retract an already committed native projectile. Cleanup is idempotent and must also run on the outer runner's timeout or mission Stop. Source errors remain errors. Initial readiness is bounded by 180 seconds; after queueing, the order is bounded by the production 120-second timeout plus 35 seconds, and the replay window has a 2-second scheduling allowance. + +This does not qualify actual enemy visual perception, donor-to-gunner resupply (the gunner can carry nine rounds), real impacts, multiplayer, performance or a second distinct report. It adds no production balance changes or resource assets. It reuses the successor's independently authored native evidence rules; all new hooks are gated by the active fixture singleton and preserve their superclass calls. + +## Original integration wiring + +Keep the three new files, then make narrow changes to `addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c`: + +1. Add `protected bool m_ERRTestMortarSalvo;` and `protected ref ERR_NativeMortarSalvoProbe m_ERRMortarSalvo;`. +2. In `EOnInit`, set `m_ERRTestMortarSalvo = outcome == "mortar-salvo";`, and give it the same 330000 ms outer deadline as mortar-fire. Existing player-death flags must remain unchanged. Add `if (m_ERRMortarSalvo) m_ERRMortarSalvo.Stop();` to the existing `ERR_StopHQPatrol` cleanup. +3. In the initial single-player PRISON branch after the existing contract/admin checks, mirror the mortar-fire branch's explicit test-only player protection, construct `m_ERRMortarSalvo = new ERR_NativeMortarSalvoProbe(this);`, set `m_ERRSmokeStep = 190;` and return. The probe never changes player health itself. +4. Add the bounded tick branch: + +```c +if (m_ERRSmokeStep == 190) +{ + int result = m_ERRMortarSalvo.Tick(now); + if (result < 0) { ERR_Check(false, "native complete mortar salvo fixture; inspect source diagnostics"); return; } + if (result == 1) { m_ERRSmokeStep = 191; Transition(ERR_Phase.DEFEAT); } + return; +} +``` + +5. Add the corresponding phase handler before generic defeat handling. Require `current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 191`, set `m_ERRSmokeDone = true`, remove the tick callback, call `ERR_StopHQPatrol()`, print `ERR SMOKE COMPLETE: native full configured mortar salvo, exact original ammunition and unchanged-report replay refusal; fixture reset requested`, then return. +6. Add `mortar-salvo` to `tools/headless_workbench.py` choices and the existing mortar-fire/expiry/transfer validation set requiring Chat, one round and timeout at least 400. Do not alter other outcomes. Add `test_native_mortar_salvo.py` to `tools/check.py`'s explicit regression list. + +Proposed native command after integration: `python3 tools/headless_workbench.py --project chat --smoke mortar-salvo --rounds 1 --timeout 400`. Retain all error capture and source manifest qualification. Archive partial/failed results honestly; an expiry pass cannot substitute for this case. + +Run the focused source check with `python3 tests/test_native_mortar_salvo.py`. It compiles the actual Enforce evidence method bodies as C++ with adapters and tests eight sequential commits/events, incomplete/extra events, changed report/order identity, stale report/aim, duplicate projectiles, missing shells, closed-step commits, early closure and Stop. Native API scheduling, callback ordering, inventory entities and actual launch remain for the real run. + + +## Separate `mortar-refresh` variant + +The same bounded fixture also accepts `errSmokeOutcome=mortar-refresh`. The original `mortar-salvo` behavior remains a single immutable observation. The new variant does not extend that observation: it explicitly creates distinct synthetic observations of the same stationary inert target, each with a new journal ID and its actual native creation time. The fixture captures the original physical RTO and queues each report only through that same carrier's existing HQ uplink. It never inserts an HQ contact, calls a production order/refresh method, edits an existing report timestamp or directly replaces `battery.Report`. + +A small record per observation stores its original ID/time and later the actual accepted snapshot. The fixture observes production `UPDATE QUEUED` and `UPDATE RECEIVED` audit boundaries: the former must expose a nonempty real HQ downlink with its own message ID; the latter must show that exact transaction delivered, attached to the captured gun/group/order, with no committed shell being relabelled. It pins the original native artillery activity and rejects recreation. Initial order delivery is separately observed through the existing real downlink. These hooks only record evidence and flag failures; they never cancel or change the production operation from inside its call. + +A subsequent observation is eligible only after the previous one was accepted, at least 20 native seconds after its creation, with no refresh transaction pending. Queueing ends after four of eight physical shots or 90 seconds of the original order, whichever comes first. The bounded record list permits at most eight observations. Every queued report must actually have been accepted before natural completion, and at least one physical commit must use a later accepted report. An unclaimed or undelivered final observation cannot be ignored to manufacture a replay pass. If real timing violates these gates, the fixture fails without pausing firing, forgiving the deadline or altering the report lifetime. + +Each commit binds the accepted recorded report ID and exact immutable observation time, checks the original command time and a validation within ten seconds, and captures that report association. Its subsequent physical projectile must retain that association even if newer observations are in transit. The original order ID/source, exact activity, physical gun/RTO/crew, eight launches, 27-to-19 original-shell inventory conservation, natural closure and all existing safety checks remain mandatory. Report updates do not renew the production 120-second order timeout or the fixture deadline. Completion requires no pending update. During the 25-second replay observation, **every** accepted report remains ineligible for a second order; the latest HQ contact is deliberately left intact. + +The new variant is still explicit synthetic-observation testing. It does not claim real enemy perception, impact accuracy, multiplayer delivery, moving-target retargeting or a completed native full salvo before a matching engine archive exists. The initial immutable-report expiry archive remains separate evidence and must not be relabelled as a refresh run. + +Root integration is intentionally outside this fixture change: accept `mortar-refresh` in the existing Chat mortar-salvo branch and runner choices with the same one-round/400-second constraints; identify the outcome accurately in the completion text. The class constructor selects the variant from that outcome. Add `test_native_mortar_refresh.py` to the explicit repository test list. Proposed native invocation after integration: `python3 tools/headless_workbench.py --project chat --smoke mortar-refresh --rounds 1 --timeout 400`. + +`tests/test_native_mortar_refresh.py` executes the actual observation records, cadence, production-audit observation, commit and closure gates using boundary adapters. It rejects changed identity/time/position/source, early or duplicate acceptance, missing downlinks, activity replacement, committed-shell report updates, unaccepted commits and unclaimed reports at replay. `tests/test_native_mortar_salvo.py` continues to exercise the original immutable variant's actual commit/event/completion gates. These source-local tests are not native qualification. + +## Successful native refreshed salvo + +[112900](evidence/native-2026-09-19-112900-mortar-refresh/report.json) completes with 55 assertions and zero captured errors. The original RTO sends observations M1/M7/M9/M11 using distinct actual observation times. Three updates traverse actual HQ downlinks; all eight fresh commitments and physical projectile callbacks retain one order/activity and consistent accepted report identity. The native activity event closes the order, 19 original shells remain, and a 25-second replay check passes. This uses a deliberately stationary inert target; impact accuracy, ordinary perception and multiplayer are not claimed. The earlier eight-shot timeout failure at 111915 exposed missed native completion polling and is preserved alongside the event-latch correction. diff --git a/docs/native-packaging-control.md b/docs/native-packaging-control.md new file mode 100644 index 0000000..dc11e49 --- /dev/null +++ b/docs/native-packaging-control.md @@ -0,0 +1,83 @@ +# Native packaging: successor and empty-addon control + +The empty-addon control reproduced the same native UI resource-leak errors as both successor Core packaging attempts. It demonstrates that these errors do not require successor scripts, mission resources or gameplay execution in this installed Workbench/Proton environment. It does not establish whether Workbench itself, Proton, the headless display, or their interaction causes the leaks. No error has been filtered or downgraded; all three archived attempts remain failed and unqualified. + +## Archived runs + +| Evidence directory under `docs/evidence/` | Input authored files | Silent flag | Native child exit | Native packer output | Runner result | +| --- | ---: | --- | ---: | --- | --- | +| [package-2026-09-19-104634](evidence/package-2026-09-19-104634/package-report.json) | 177 | absent | 0 | Result 1; project successful; 193,353-byte `data.pak` | `timeout` | +| [package-2026-09-19-105949-silent](evidence/package-2026-09-19-105949-silent/package-report.json) | 178 | `-wbSilent` | 0 | Result 1; project successful; 194,044-byte `data.pak` | `validation-failed` | +| [package-control-2026-09-19-110404](evidence/package-control-2026-09-19-110404/package-report.json) | 5 | `-wbSilent` | 0 | Result 1; project successful; no PAK for empty content | `validation-failed` | + +The first runner waited for the outer Gamescope process despite the recorded native zero exit, then reached its timeout. The later runner recorded `completion_observed=native-child-exited`, verified that the private Wine prefix was idle, and cleaned up the remaining owned display process. Their `launcher_exit_code=null` means the display had not naturally exited when observed; it is not a native exit failure or proof of a clean shutdown. All three reports record successful owned cleanup. Every console contains native errors and every native `error.log` is nonempty. + +These are not strictly identical-source A/B experiments: four authored paths differ between the first and silent snapshots (`ERR_NativeMortarSalvoProbe.c`, `ERR_NativeSmoke.c`, `ERR_NativePoweredFlightProbe.c`, and `ERR_Observer.c`). The command also uses the improved child-exit recorder on the latter runs. The useful result is reproduction with the successor payload removed, not a claim that silence alone was isolated or fixes shutdown. + +## Control contents and loaded paths + +The control's [authored-before.json](evidence/package-control-2026-09-19-110404/authored-before.json) contains exactly the five own `addons/{core,ai,chat,intel,map}/addon.gproj` descriptors. The [control-description.json](evidence/package-control-2026-09-19-110404/control-description.json) also inventories a `BUNDLE-README.md` in its preparatory bundle; that README is not in the native input's authored inventory. No successor `.c`, `.et`, `.conf`, world, composition or `.meta` payload was copied to the native control source. Own addon identities were retained solely for the private experiment. + +All three console `Loaded addons` sections name exactly: + +- Workbench's packed `./addons/core/core.gproj`, GUID `5614BBCCBB55ED1C`. +- Packed vanilla `profiles/core/addons/ArmaReforger/ArmaReforger.gproj`, GUID `58D0FB3206B6F859`, inside each private session's profile link. +- The private source `source/addons/core/addon.gproj`, GUID `2528466DE220D91C`. + +The other four successor descriptors are listed as **available**, not loaded. The sessions are `/tmp/erri-native-package-core-20260919-1046`, `/tmp/erri-native-package-core-20260919-1100-silent`, and `/tmp/erri-empty-package-control-20260919-1104`. Their captured commands use only these copied source/output/profile/cache locations, `ResourceManager`, `-packAddon`, `-noBackend`, `-noSound`, and `-disableCrashReporter`; none starts a mission. The console mount paths contain no original Escapists project or actual successor source checkout. + +The executable SHA-256 is identical in all three launch records: `7dd36ca1f662b0c13669a4f2f7f10e3c461c2906b021e742272d64b3ab7e9798`. The captured Proton launcher SHA-256 is `05116cb33e020b6ae6fd8578e7d59f082ffd5b4530d6ae7cdbe948ba96406332`. This pins the recorded executable/script, not every host library, Wine-prefix file or platform component. + +## Exact error comparison + +For each archived `console.log.txt`, select lines containing `(E):` or `(F):` and remove only the leading `HH:MM:SS.mmm` plus adjacent whitespace. Preserve severity, resource path case, counts and the remaining text. Each console has **25 error lines: one leak header plus 24 distinct resource entries**. The resulting sets and counts are identical across all three runs. The lexicographically sorted set joined with LF and a final LF has SHA-256 `0cb40e173c7a02f72123cfc568016556f05fe80457f06cabf6423cc6ce309c60`. + +The same native lines are repeated in each `error.log`; the aggregate runner `errors` list includes both files and its additional `Nonempty native error.log` check. Those duplicate representations must not be misreported as 48 distinct leaked resources. No successor-specific error appears in the compared native error set: + +```text +RESOURCES (E): ==== Resource leaks ==== +RESOURCES (E): UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.edds 1 +RESOURCES (E): UI/Imagesets/Panels/Outline/panels_roundedOutline_atlas.edds 1 +RESOURCES (E): UI/Imagesets/Panels/Shadow/panels_fadedBackground-16-100_atlas.edds 1 +RESOURCES (E): UI/Imagesets/Panels/panels_roundedCorners_atlas.edds 1 +RESOURCES (E): UI/Imagesets/WeaponInfo/panel_style_magazines.edds 1 +RESOURCES (E): UI/Imagesets/debugUI.edds 1 +RESOURCES (E): UI/Imagesets/default.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_move_camera_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_objective_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_place_geometry_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_place_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_raw_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_rotate_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_select_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_transform_disabled_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_transform_geometry_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_disabled_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_transform_snap_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_transform_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_wait_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/arrow_waypoint_uiuc.edds 1 +RESOURCES (E): UI/Textures/Cursor/cursors_atlas.edds 1 +RESOURCES (E): UI/Textures/WidgetLibrary/ScrollBarRectangles.edds 1 +RESOURCES (E): ui/fonts/robotomono_msdf_28.edds 1 +``` + +Normalization here serves comparison only. It does not alter any archived log, runner result, release check, or runtime acceptance rule. + +## Source integrity and PAK inspection + +For each run independently, the parsed maps in `authored-before.json`, `repository-after.json`, `evidence/core/authored-after.json`, and `evidence/core/launch.json`'s `authored` field are exactly equal. This verifies the recorded authored input and copied source at the measured boundaries; it does not prove that a transient mutation and restoration could never occur. All entries in each `archive-sha256.json` were rehashed successfully, and the corresponding archived files in STAGE and the actual successor repository were byte-identical when this comparison was prepared. + +The first Core PAK was independently re-read using `tools/pak_inventory.py` without extracting payload files. Its SHA-256 is `a071b5a7298543734bb72c72bb87c0dbfc447b3a176870299abd0a3def4fe623`. All **107 entries** have paths and decompressed content hashes exactly matching `addons/core/` in that run's archived launch source map. The source map's remaining Core paths are 22 `.meta` files and `addon.gproj`; the latter is a separate native package output with the matching SHA-256 `231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46`. This is source-byte and archive-structure evidence, not proof that all required resources were compiled correctly or that the resource database resolves them in the game. + +The silent PAK has a different recorded hash, `90b9be4f8799e6a60a0b12582f93634ceec3a1c01b816a8f4c7358d0a75e1ae9`, and is not interchangeable with the first source snapshot. No reproducible-build claim follows from these different inputs. The empty control produced only the project descriptor and an 81-byte resource database; its successful native packer marker is not evidence of a usable addon archive. + +## Qualification remains blocked + +The control narrows investigation to the common tool/environment shutdown path and removes the need to attribute these exact leaks to successor gameplay. It does not fix them, qualify either Core PAK, verify package resource semantics, prove native loading from packed-only addon dependencies, or validate multiplayer/performance acceptance. All three reports retain `candidate_created=false`, `native_consumption_verified=false`, and `release_qualified=false`. A subsequent clean build and explicit packed-only runtime consumption test are still required; this document introduces no exception to that gate. + +## Raw console hashes + +- [package-2026-09-19-104634 console](evidence/package-2026-09-19-104634/profiles/core/logs/logs_2026-09-19_10-46-34/console.log.txt): `544206ae74f74a508639a35990004082c075d369add867c0859f2c8397aecfdb`. +- [package-2026-09-19-105949-silent console](evidence/package-2026-09-19-105949-silent/profiles/core/logs/logs_2026-09-19_10-59-49/console.log.txt): `bc930e6874b0a6c055535c432c9ea1d22c70737813d31aa5fe31c167f9947036`. +- [package-control-2026-09-19-110404 console](evidence/package-control-2026-09-19-110404/profiles/core/logs/logs_2026-09-19_11-04-04/console.log.txt): `312aa588ce18762ac7ba8543f189e991094319181fa39633557088bdb772267f`. diff --git a/docs/native-packaging.md b/docs/native-packaging.md new file mode 100644 index 0000000..61af51e --- /dev/null +++ b/docs/native-packaging.md @@ -0,0 +1,126 @@ +# Private native addon packaging + +`tools/native_package.py` attempts the installed Workbench ResourceManager's real XPacker operation. It never publishes, changes addon identity, copies vanilla assets into the build input, or treats a development source ZIP as a PAK. A successful run produces **unqualified native package candidates**; resource contents, packed-only loading, gameplay and release acceptance remain separate. + +## First bounded attempt + +```sh +python3 tools/native_package.py --project core \ + --session /tmp/erri-native-package-core-NEW \ + --compat /tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX \ + --timeout 300 +``` + +Choose a new session name and an existing private cloned Tools prefix. The runner launches only when explicitly invoked; `--help` does not launch anything. `--project ai`, `intel` or `map` first packs Core, then the selected companion. `--project chat` builds Core, AI, Intel, Map, then Chat, one native invocation at a time. It stops at the first failed dependency. Timeout is 30–1800 seconds **per addon**, plus bounded owned-process/audio cleanup. It is not the overall five-addon limit. + +The session must be a nonexistent, normalized direct child of `/tmp`, with a simple ASCII filename. Traversal aliases and redirected prefix/lock paths are refused. Validated authored payload is collected by the existing source-bundle validator, then copied into `session/source/addons`. Workbench receives that copy's `.gproj`; it never receives the original or live successor project as its build target. Existing outputs, symlinks and unreviewed addon payload formats are refused. Generated native resource databases/cache files may appear in the private copy, but changes to captured authored files fail qualification of the attempt. + +The runner reuses the ordinary game's process guards/cleanup and the exact `.erri-workbench.lock` shared with other native runners. It refuses an active game or busy/unverifiable prefix, uses a headless Gamescope display, `-noSound`, a fresh muted sink, and routes/mutes only its own application or exclusively owned prefix streams. It never changes default audio devices, Steam's prefix, another mission, an existing editor or another process group. Backend communication and the crash reporter are disabled. It does not pass publishing, mission-play or original-mod flags. + +## Evidence and result + +The session retains source hashes, command/tool hashes, separate per-addon profiles and native logs, cache directories, package file hashes and `package-report.json`. Per-addon `evidence/NAME/authored-after.json` records copied authored bytes after owned cleanup; `repository-after.json` independently records the input repository after the sequence. Raw logs are hashed only after the native process has stopped. These are provenance snapshots, not tamper-proof history or proof against a modify-and-revert between observations. + +Exit status 0 requires every selected invocation to exit naturally with code 0 (the direct Proton/Wine child, plus Gamescope if it has already exited), its Wine prefix to become idle before cleanup, a nonempty native console log, no native error/fatal/script/VM/packing failure, no changed, removed or added authored source, successful owned cleanup and nonempty `.pak` files. A small private Python child recorder writes the exact Proton argument vector and exit status independently of Gamescope; missing, malformed or mismatched records fail. Installed Proton returns its Wine subprocess status through `sys.exit(rc)`, as inspected in `Session.run_proc`/`Session.run` and the `run` branch. Once the exact native child record exists and the Wine prefix is naturally idle, a lingering owned Gamescope display may be terminated as display cleanup. This is reported as `native-child-exited` and `display_cleanup_after_native_exit=true`, not a natural display exit. The three private Wine/Steam prefix overrides are applied only inside the recorder to its Proton child, so Gamescope itself cannot falsely keep the prefix-idle guard busy. A launcher exiting while Wine children remain cannot qualify, even if cleanup subsequently kills them. Raw `error.log`/`crash.log` content also fails. No errors are filtered to manufacture success. + +Even exit 0 means only `native-pack-candidate`. `release_qualified`, `package_contents_verified`, `native_consumption_verified` and `tool_completion_semantics_verified` remain **false**. The first native run still needs inspection of its actual completion message, package metadata/resources/platform layout and a subsequent load using packed successor addons plus vanilla only. Unknown completion behavior that never exits reaches the deadline and fails; do not promote partial output. PAK presence/hash is not a structural package parser. No run has been claimed from mocked tests. + +## Offline tests + +```sh +python3 tests/test_native_package.py +``` + +Twenty-four focused tests exercise validated copy boundaries, mutation detection, dependency order, no-overwrite and prefix locking, exact native flags, private stream targeting, error/timeout/orphaned-prefix rejection, output hashes and deliberately unqualified results. Process, audio and PAK output doubles are explicitly synthetic; these tests launch no native process and demonstrate no real package build. Add `test_native_package.py` to `tools/check.py`'s explicit list when integrating. + +## Installed interface audit + +Read-only, 2026-09-19. No Workbench/game process, display, network/publish operation or existing addon edit was performed. + +## Supported native entry point + +Stable installed Tools app **1874910**, Steam build **24870687**, contains `Workbench/ArmaReforgerWorkbenchSteamDiag.exe`. Its bundled official `docs/EnfusionScriptAPI/html/Page_CLI.html`, ResourceManager section (lines435–479), documents: + +- `-wbModule=ResourceManager` +- `-packAddon`: XPacker packages all data of the **current addon**. +- `-packAddonDir DIR`: output directory for PAKs. +- `-packAddonCacheDir DIR`: separate compressed/built-data cache. + +All three packing flags are explicitly public. Read-only strings from the installed executable also contain these exact flag names and `-packAddon CLI detected` / `-packAddonDir CLI detected`. There is no need to invent an XPacker executable or script packing method. Only Workbench and CrashReporter executables were found in this stable Tools tree. + +**Publishing is separate.** The same official section lists `-publishAddon` and its own output/cache/version/change-note options. None belongs in the private build command. Packaging does not grant release acceptance or publish a Workshop item. + +`-builddata PLATFORM TARGET [ADDON]` builds runtime resources into a directory; supported documented platforms include PC, PC_WB and HEADLESS. It is not documented as a PAK pack command. Do not mislabel successful builddata/source ZIP output as native packaging. + +## Exact project/dependency selection + +Use `-gproj` with the selected **copied** addon's existing addon.gproj. Do not change its ID/GUID or manufacture Workshop identity. Existing project graph: + +| Addon | ID | GUID | Dependencies (in addition to vanilla) | +|---|---|---|---| +| core | ERR_Core | 2528466DE220D91C | none | +| ai | ERR_Ai | 5192138CB9D5B911 | Core | +| intel | ERR_Intel | D31039C7C53E348A | Core | +| map | ERR_Map | 9AAEE9041D79809E | Core | +| chat | ERR_Chat | FA804F411BDDF2C6 | Core, AI, Intel, Map | + +Every project also depends on vanilla `58D0FB3206B6F859`. The installed Workbench core project is `core`, GUID `5614BBCCBB55ED1C`; it is engine tooling, not a successor dependency to copy into packages. All successor .meta GUIDs/dependencies are already validated by tools/check.py and tools/source_bundle.py. Supply `-addonsDir` pointing only at the private copied successor addon root, and the same isolated profile arrangement as the existing native runner for read-only vanilla dependency discovery. Run one selected addon per invocation in order Core, AI/Intel/Map, Chat. This avoids assuming packAddon bundles dependencies. + +## Safe private draft build command + +Create a fresh exclusive session `/tmp/erri-native-package-/` containing `source/addons/{core,ai,intel,map,chat}`, `profile`, `cache/`, `packages/`, and evidence. Populate source from the validated source-bundle schema, including authored source/meta only, not resourceDatabase caches/profiles/evidence. Workbench may generate caches/import data beside a project, so this copy—not STAGE, actual successor or original mods—must be its working project. The source copy should be hashed before launch and inspected afterward; generated outputs must stay in this session. + +For Core, the supported Workbench argument vector is: + +```text +ArmaReforgerWorkbenchSteamDiag.exe +-gproj Z:/tmp/erri-native-package-/source/addons/core/addon.gproj +-addonsDir Z:/tmp/erri-native-package-/source/addons +-profile Z:/tmp/erri-native-package-/profile +-logconsole +-noBackend +-disableCrashReporter +-wbModule=ResourceManager +-packAddon +-packAddonDir Z:/tmp/erri-native-package-/packages/core +-packAddonCacheDir Z:/tmp/erri-native-package-/cache/core +``` + +Wrap the vector in the existing `gamescope --backend headless ... -- run ...` mechanism, using a private cloned compat prefix, the existing prefix lock and private muted audio sink. No WorldEditor, mission load, play plugin or smoke flag is needed. The native runner already proves that this display isolation avoids the user's monitors; it does **not** yet prove this packaging command completed. + +The official help says `-wbSilent` initializes modules and exits without windows; it does not explicitly promise combination/order with the native pack operation. Do not rely on that combination to qualify output before observing it. The ResourceManager `-builddata` example omits `-run`, whereas general module help says `-run` opens the selected module. Start from the packing vector above inside the headless display and retain all raw output. Whether this operation exits itself, needs `-run`, or exposes a distinct completion marker requires one bounded native experiment; document any adjustment rather than assuming CLI behavior. `-exitAfter` is documented for a particular flow-map plugin, not as a universal Workbench packing option. + +The initial runner must require a clean native exit and nonempty actual .pak output, inspect package contents/resources/addon metadata, record hashes, and reject timeout/errors/partial output. An exit code alone or presence of an empty directory cannot establish success. Never terminate unrelated processes or overwrite a prior output. Follow-up ordinary/dedicated loading from **only packed successor outputs plus vanilla** remains separate package-consumption validation. No claim is made yet about exact generated platform directories, packer's default platform set, package metadata format, compression reproducibility, or platform resource compilation. + +## Installed script APIs, and their limits + +Extracted read-only from Tools `Workbench/addons/core/data.pak` into `/tmp/erri-workbench-reference`: + +- `scripts/GameLib/generated/WorkbenchAPI/Modules/ResourceManager.c`: native `RegisterResourceFile(string absFilePath, bool bBuildRuntimeResource)`, `RebuildResourceFile(string filePath, string configuration, bool selectFiles)`, `RebuildResourceFiles(notnull array filePaths, string configuration)`, `WaitForFile(string filePath, int maxTimeMs=1000)`. None is a whole-addon PAK API. +- `scripts/GameLib/generated/WorkbenchAPI/BuildResourceContext.c`: only `event bool IsWorking()`; this class is not a packer. +- `scripts/WorkbenchCommon/AddonBuildInfoTool.c`: actual `RunCommandline` reads `-addonPath` and `-ciInfoDst`, resolves only loaded addon roots using `GameProject.GetLoadedAddons`/GetAddonID and `$ID:` paths, and writes world build tags as JSON before Workbench.Exit(0). It does not build/pack. Its UI-only Run branch (under AddonBuildInfoTool_IN_UI) writes to every loaded addon root and should not be invoked. The CLI destination can remain in private evidence. + +The existing source_bundle is explicitly a development source handoff, not this native build. Native packaging can be attempted privately without a publishing credential, but whether this installed packer needs backend metadata for a never-published project is still untested; retain the backend-disabled failure if it demands that rather than contacting a service or changing addon identity. + +## Primary-source hashes (SHA-256) + +- `/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/docs/EnfusionScriptAPI/html/Page_CLI.html`: `b1fd25c1d02e3ac687bb310496f700acaf451f66d26c572afa9ac5fd343822d1` +- `/tmp/erri-workbench-reference/scripts/GameLib/generated/WorkbenchAPI/Modules/ResourceManager.c`: `c5d4174f2e8dc93b0664bdf0923cd676ab53a3e2cd831f2a9bc89effe0343dfe` +- `/tmp/erri-workbench-reference/scripts/GameLib/generated/WorkbenchAPI/BuildResourceContext.c`: `1a42c10153c80df75efd9581d8a63315bf042eadafce92b130c6a34666238516` +- `/tmp/erri-workbench-reference/scripts/WorkbenchCommon/AddonBuildInfoTool.c`: `332aa13076bedabf0fcb2d8747552284546d2f26737b6b6707f21e43e13e6e23` + +Self-review before first execution also verifies the command separator indexes refer to Proton and the Workbench executable before inserting the recorder wrapper. The captured authored subset of source_bundle.build exactly matches source_bundle.inventory (bundle README/manifest are excluded); both native-copy changes and changes to the input repository fail the attempt. The same validated inventory is reapplied to the copy so generated cache exclusions cannot hide newly added scripts/resources. + +## Explicit silent-Workbench experiment + +`--silent-workbench` adds only the officially documented `-wbSilent`; it is off by default. Use a fresh session, for example the same first-attempt command with `--silent-workbench` appended. The installed help promises initialization and exit without windows, but does not establish compatibility/order with `-packAddon`. This option is a bounded native experiment: successful packing markers, actual PAK output, exact native child exit and every existing error/source/cleanup gate still need to pass. It never filters GUI/resource errors. + +The first nonsilent Core attempt (session `/tmp/erri-native-package-core-20260919-1046`) reported packaging success and produced a structurally inspectable PAK, then emitted 24 native UI resource-leak errors. Its original runner waited for the outer display despite the native child record already reporting zero. The follow-up runner handles that completion distinction and the optional silent initialization, but neither change retroactively qualifies the earlier run. See [pak-inventory.md](pak-inventory.md) for the separate read-only structural inspection. + +## Diagnostic continuation across addons + +`--continue-on-failure` is explicit and defaults to false. It allows a requested dependency closure to produce diagnostic outputs even when an earlier addon has native validation errors, such as the shutdown leaks reproduced by the [empty-addon control](native-packaging-control.md). For example, add `--project chat --continue-on-failure` to a fresh private-session invocation to attempt Core, AI, Intel, Map and Chat in that order, using the same validated private source copy. Native commands still load source dependencies from that private copy; this does not validate consumption of an earlier failed PAK. + +Continuation requires safely observed native/process completion, confirmed owned cleanup, no runner error, an unchanged copied authored inventory, and a fresh idle-prefix check before the next addon. An unconfirmed cleanup, runner exception, busy/unverifiable prefix, changed source, timeout or interruption stops the sequence regardless of the option. It never restarts an addon, reuses another session's outputs, filters errors, or relaxes `candidate_ok`. + +Every completed attempt retains its full report and raw errors. The session report records `continue_on_failure`, `stopped_reason` and `skipped_projects`. Any failed attempt keeps `all_candidates_created=false` and the overall exit status nonzero even when later addons produce candidates; `release_qualified` remains false in every case. Without the option, the first failed candidate still stops the dependency sequence. Offline regressions exercise full ordered continuation with mixed results, default stop, unsafe cleanup/runner/source/completion stop, a prefix becoming busy between addons, and unchanged qualification rules. These mocked tests do not constitute native companion packaging evidence. diff --git a/docs/native-powered-flight.md b/docs/native-powered-flight.md index 6add7c5..94f1e4e 100644 --- a/docs/native-powered-flight.md +++ b/docs/native-powered-flight.md @@ -78,3 +78,51 @@ The staged correction keeps native `OnPrepareControls` only as an exact-owned pi After native RPM/fuel proof, a new at-most-three-second stage requests 0.05 collective with zero cyclic/anti-torque. Before any climb it requires fresh real apply callbacks and the existing `MainRotorCollective` signal to agree with the nonzero request on distinct fixture ticks spanning at least 500 ms. Missing signals or continued zero values fail; no signal is created or assigned. Engine, drift, height, tilt and callback freshness checks remain active in this stage. The proof does not depend on the optional diagnostics flag. All later physical hover and contact-landing checks remain required. The overall 240-second bound remains unchanged. Optional diagnostics now observe native input at the start of Apply before this callback's final writes, then capture the final immediate write readback. These two snapshots are explicitly labelled `beforeWrite`/`written`; neither is alone called downstream consumption proof. Existing rotor signals and the mandatory positive gate provide the later observation. The optional file no longer adds a second native OnApply override, preventing hook-chain ordering from obscuring the comparison. This revision has local source/policy checks only until its next native run. + +## Actor-local action experiment after 102235 + +The 10:22:35 run compiles the Apply-callback revision and again passes single-pilot seating, complete footprint and real engine/RPM/fuel checks. Its mandatory positive gate then fails: five distinct observations report requested collective 0.05 but existing rotor signal zero, with 15, 30, 45, 60 and 75 real writes. The next Apply callback sees native input reset to zero. This is no demonstration of consumed flight controls, hover or landing. The rotor signal is an authored animation input, not a documented thrust sensor or guaranteed exact transfer function; its refusal preserves this experiment's limits rather than proving scripting flight impossible. + +A separate experimental `-errFlightActionInputs 1` mode is now available. The default retains the failed Apply-context writer for comparison. The experiment uses the supplied, exact pilot-local `ActionManager` in `OnPrepareControls`, before native `super`, following installed `SCR_CharacterControllerComponent_Test.c:9–13`. It requires that manager to equal the actual pilot agent's manager and differ from the global InputManager; the global object is read only for rejection, never mutated. Shared/missing managers fail. Only this owned manager's `HelicopterContext` is briefly activated using the installed duration1 pattern. + +The exact configured actions are HelicopterCollectiveIncrease/Decrease, HelicopterCyclicForward/Back, HelicopterCyclicRight/Left and HelicopterAntiTorqueRight/Left. The fixture writes bounded nonnegative directional values and explicitly zeros the opposite action. Signed-to-collective encoding and control gains remain experimental; the config does not document final Direct-mode mapping. The selected mode is immutable during the run: the Apply writer returns immediately in action mode, and the action writer returns immediately in default mode. Both share one demand calculation; the integrator executes once per selected native callback. No engine, brake or autohover actions are injected. + +On Stop, only the same owned, unclaimed manager receives zeros for these eight actions. The short context activation expires without further refresh; the duration parameter's units are not claimed. Capture/life/seat/authority checks and the mandatory <=3s positive rotor-signal proof remain unchanged, as do all footprint, fuel, height, tilt, drift, hover and landing bounds. Optional diagnostics distinguish actual virtual-action readbacks from native input at Apply and the existing rotor signal. Action mode observes throttle but does not write it. This branch is source-checked only until native compilation and consumption are observed. + +The 104048 actor-manager test compiles but fails before engine start. The 104256 diagnostics show the exact owned manager's context is already active while ActivateContext returns false on four callbacks; requiring the undocumented return value incorrectly prevents all action writes. The revised path checks whether the context is already active, attempts activation only when inactive, and requires the observed active state. It never deactivates a preexisting native context. This corrects the fixture's activation assumption; action readback, native consumption and all physical bounds remain independently required. + +The 105226 motion run again takes off and fails at8.00134m drift after reaching6.8385m. Rearward velocity is already reversing before refusal. The next bounded experiment changes only outer-loop velocity damping from0.3 to0.6; position0.08, attitude0.8, angular damping0.3, cyclic0.15 and all physical limits remain unchanged. A simplified acceleration model suggests less overshoot, but native lag must be tested. Measured acceleration follows the fuselage-up estimate much more closely than the transformed static rotor axis in these samples; no hardcoded/native-axis trim is justified from that diagnostic alone. + +An installed-API/source review after105709 finds a concrete heading feedback bug: IEntity.GetAngles returns rotations aboutX/Y/Z, while GetYawPitchRoll returns named yaw/pitch/roll order. The fixture incorrectly read GetAngles()[0] as yaw in both capture and feedback. Both now use GetYawPitchRoll()[0], retaining action signs and all gains/bounds from the0.6 damping experiment. Vanilla SCR_HelicopterCinematicFlyComponent also uses GetAngles()[1] for yaw. Read-only desired-yaw/actual-yaw-pitch-roll telemetry accompanies the correction; native stabilization still must pass. + +The heading correction holds observed yaw near its1.45-degree target in the next native run, confirming that pitch was the wrong feedback field. Pitch still oscillates with native angular rate reaching0.14rad/s and saturated cyclic demand. The next single-gain experiment raises pitch/roll angular-rate damping0.3→1.2, preserving the0.6 outer velocity term, position/attitude gains, yaw controller, input caps and all physical limits. This is still test-only tuning; a valid outcome requires native hover and landing, not merely improved snapshots. + +## Explicit native-autohover fixture variant + +The WORKBENCH-only probe exposes `bool SetAutohoverMode(bool enabled)`. The smoke caller selects `true` immediately after constructing its probe and **before the first `Tick`**; there is no separate probe `Start` method. A false return fails the caller's fixture configuration. Default construction retains the manual mode, including angular damping 1.2. Configuration is frozen once ticking starts, an airframe exists, the fixture binds, or the probe stops/completes. The integrated runner's explicit `--flight-autohover` requires `--project core --smoke powered-flight --flight-action-inputs`; it passes `-errFlightAutohover 1` to that Core fixture. It is off by default. + +The API is grounded in installed `HelicopterControllerComponent.GetAutohoverEnabled()` and `SetAutohoverEnabled(bool)`. Vanilla `SCR_HelicopterHoverAction.SetState` calls that setter, and the stock Mi8 includes the action in its autopilot context. `SCR_BaseGameMode.OnPlayerDisconnected` also enables autohover on the server to help stop an occupied helicopter gracefully. Thus the call is a real per-vehicle native feature, not a simulated controller, obsolete helper or global player-input change. Vanilla's scripted `OnPrepareControls` sets collective preferences but does not itself reset autohover. + +After the original single pilot is physically in its exact primary seat and all authority/fuel/health gates pass, the selected variant captures the exact controller and its prior autohover state, enables it once, and requires actual getter readback. Failed enabling is not retried. Subsequent ticks and control callbacks require that same controller and enabled state; losing the setting fails the run rather than silently re-enabling it. Periodic `ERR POWERED AUTOHOVER` telemetry records mode selection, saved state, native state and controller identity. + +In this mode only, custom forward/right cyclic demands are explicitly zero. The chosen actor-action or Apply-input path still writes those neutral demands normally, leaving native autohover to supply its own lateral stabilization. Collective/altitude and yaw feedback, engine startup, rotor-signal consumption proof, finite fuel use, timeouts, 8 m drift/height/tilt bounds, actual 7–9 m five-second hover, and physical-contact landing requirements remain unchanged. Autohover must coexist with those controls in a real run; the installed script API does not reveal its gains, activation envelope, altitude behavior, AI ownership details or final input composition. An enabled bit alone cannot pass any flight milestone. + +Stop restores the captured autohover state only while the same controller belongs to the same aircraft, the same unclaimed fixture pilot still occupies the selected primary seat, and no player has claimed or boarded it. It does not change a captured, replaced or abandoned controller. Restoration is attempted once and logged; a getter mismatch emits an explicit native smoke failure. No engine shutdown in midair, force/velocity/transform correction, fuel/health write, crew replacement, or production-aircraft change is introduced. As before, failed physical actors remain owned by the fixture for diagnosis/reset. + +Offline tests execute the actual configuration/readback/restore methods against explicit controller doubles, including late configuration refusal, default no-write behavior, original true/false settings, rejected native enable/restore, changed ownership/controller, idempotent cleanup and neutral cyclic behavior. These do not compile Enforce or establish native autohover effectiveness. This variant requires its own retained native result before any takeoff/hover/landing claim, and does not qualify production route flying or multiplayer behavior. + + +The first native autohover trial (`112320`) compiled and confirmed the exact owned flag, but failed its unchanged pre-engine minimum-collective gate: the native controller changed the post-application collective to about -0.114 despite an action demand of zero. Its original autohover state was restored. This establishes that the native feature affects collective as well as lateral controls. The next staged variant therefore keeps autohover off through engine startup and the existing positive collective-consumption proof, then enables it immediately before the bounded climb. Native readiness is mandatory through flight and landing; no physical gate is relaxed. This delayed activation remains unverified until a separate native run. + +### Bounded signed actor-action experiment after 11:25:02 + +The archived manual `112502` run retained Direct mode (3), native collective and `MainRotorCollective` zero while climbing about 0.2 m/s; it exceeded the unchanged 18 m ceiling with horizontal drift below 8 m. This is physical evidence that zero did not arrest that climb, not proof of a particular blade-pitch or thrust mapping. The earlier `112320` autohover observation of negative collective used WorldY mode (5), so it does not establish negative Direct action consumption. + +Installed `Configs/System/chimeraInputCommon.conf:6152–6201` defines separate `HelicopterCollectiveIncrease` and `HelicopterCollectiveDecrease` actions, each limited to 1, with opposite input directions. The generated `Vehicle/CollectiveMode.c` and `Character/CharacterInputContext.c` expose the mode/input without documenting their transfer function. The fixture's old signed-to-unipolar conversion never exercised the decrease action. Its earlier interpretation of a clamped negative Apply write was superseded by evidence that native processing also overwrote positive Apply writes. + +The next staged actor-action variant retains zero during initial preparation and engine startup, and retains the existing positive 0.05 consumption test. Only after that test passes does stage 10 request increase=0/decrease=0.05, with zero cyclic/torque, on the exact owned AI action manager. Within three seconds it requires Direct mode, autohover off, a running engine, fresh callbacks, negative native input and the existing rotor signal agreeing near -0.05 on distinct ticks spanning 500 ms. Signal mismatch or a missing signal fails. Interrupted observation resets the interval. This proof does not depend on optional diagnostics and does not assign a signal. + +Only a successful negative test enables signed actor-action demand for flight stages 4–6; the legacy Apply branch retains its old encoding for comparison. Optional native autohover is enabled after both action-path proofs. Feedback gains, initial integrator value, single-aircraft/pilot allocation, overall timeout, footprint, fuel, drift, tilt, altitude, stable-hover and contact-landing requirements are unchanged. Negative signal consumption remains an experimental question until this revision runs natively; even a successful signal test alone proves neither hover nor landing. + + +Native113557 proves the signed-action hypothesis: both input and rotor signal hold -0.05, the same aircraft reaches a five-second 7–9m hover and lands with two seconds of ground stability. It then fails the immediate post-shutdown check. Inspection found stage7 returned neutral collective0 while the real rotors continued coasting; the next variant holds proven minimum pitch -1 during shutdown and records every landing predicate. No stability, geometry, timeout or damage limit changes. The failed run remains retained. diff --git a/docs/original-feature-coverage.json b/docs/original-feature-coverage.json index 7e91895..c9df7aa 100644 --- a/docs/original-feature-coverage.json +++ b/docs/original-feature-coverage.json @@ -36,7 +36,7 @@ "replacement_files": [ "addons/core/Scripts/Game/ERR/ERR_Observer.c" ], - "remaining": "Verify remote streaming, target changes, death/reconnect and camera presentation on real clients." + "remaining": "Spectator reason messages and survivor-cycling guidance are added and compile. Verify visible presentation, remote streaming, target changes and death/reconnect on real clients." }, { "id": "environment", @@ -171,7 +171,7 @@ "addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c", "addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c" ], - "remaining": "HQ alone coordinates physical forces. Complete support scheduling, mortar firing, aircraft, transport/rearming and losses without spawning responses." + "remaining": "HQ alone coordinates physical forces. Finite mortar firing, expiry and physical courier delivery have bounded native evidence; new report refresh compiles but remains unqualified. Actor-local flight controls and powered takeoff are demonstrated, but pitch oscillation still prevents hover/landing qualification. Complete full salvo/impact, operational HQ aircraft support, transport/rearming and losses without spawning responses." }, { "id": "ambient", @@ -477,7 +477,7 @@ "addons/core/Scripts/Game/ERR/ERR_AdminService.c", "addons/core/Scripts/Game/ERR/ERR_Settings.c" ], - "remaining": "Core administration/settings and saved environment changes pass local native checks, including two restart rounds. Complete ordinary startup/admission, remote authorization, player-facing pre-round setup and difficulty choices." + "remaining": "Core administration/settings and saved environment changes pass local native checks, including two restart rounds. Ordinary local startup/admission passes for loose Chat and an exact archived packed Core candidate; the latter predates current mortar edits and does not qualify packaging. Verify current-source startup, remote authorization, player-facing pre-round setup and difficulty choices." }, { "id": "mission", diff --git a/docs/original-feature-coverage.md b/docs/original-feature-coverage.md index 47c3c32..055655e 100644 --- a/docs/original-feature-coverage.md +++ b/docs/original-feature-coverage.md @@ -2,16 +2,16 @@ This tracks responsibilities suggested by the installed original’s 299 script paths. It is a filename-based inventory, not an audit of original implementation behavior. Each entry is assigned once in `original-feature-coverage.json`. No category is considered complete merely because some successor code exists. Runtime acceptance remains in `acceptance.json`. -The first release remains vanilla Everon, prison start and twelve players. Alternate starts and cosmetic parity are tracked as later work rather than silently omitted. First-release categories still contain unfinished work. +The first release remains vanilla Everon, prison start and twelve players. Alternate starts and cosmetic parity are tracked as later work rather than silently omitted. First-release categories still contain unfinished work. The archived packed Core startup passes artifact-bound consumption with only installed vanilla; packaging shutdown errors reproduce in an empty-addon control and remain unqualified. Current-source clean runtime and all seventeen release cases remain pending despite the earlier clean `7c53b4b` checkpoint. | Responsibility | State | Original scripts | Remaining work | | --- | --- | ---: | --- | | Helicopter-crash and hideout starts | pending (later) | 4 | Author separate layouts and progression rules after the prison release. | -| Spectators and follow cameras | partial (first-release) | 10 | Verify remote streaming, target changes, death/reconnect and camera presentation on real clients. | +| Spectators and follow cameras | partial (first-release) | 10 | Spectator reason messages and survivor-cycling guidance are added and compile. Verify visible presentation, remote streaming, target changes and death/reconnect on real clients. | | Time, weather, lights and night options | partial (first-release) | 10 | Local native clock, saved date/weather choices and two real restart rounds pass. Remote agreement, lighting and long-running day/night transitions still require validation. | | Voice, music, feedback and effects | pending (later) | 14 | Review which feedback is required for clear play; author replacements without importing original audio or UI assets. | | Health, unconsciousness and casualty handling | partial (first-release) | 11 | Local native blood-loss treatment, consumed supplies, consciousness recovery, ground casualty loading and vanilla door removal pass bounded fixtures. Verify ordinary input/animation, remote ownership, bleedout, interrupted treatment and flight with casualties. | -| Enemy coordination, support and threat assessment | partial (first-release) | 48 | HQ alone coordinates physical forces. Complete support scheduling, mortar firing, aircraft, transport/rearming and losses without spawning responses. | +| Enemy coordination, support and threat assessment | partial (first-release) | 48 | HQ alone coordinates physical forces. Finite mortar firing, expiry and physical courier delivery have bounded native evidence; new report refresh compiles but remains unqualified. Actor-local flight controls and powered takeoff are demonstrated, but pitch oscillation still prevents hover/landing qualification. Complete full salvo/impact, operational HQ aircraft support, transport/rearming and losses without spawning responses. | | Ambient patrols, vehicles and civilians | partial (first-release) | 16 | Two bounded physical patrol routes and HQ Search preemption/resumption pass local native checks. Qualify perception/report transit, wider population needs, losses and measured runtime cost without alert-driven population duplication. | | Faction, group and asset catalogs | partial (first-release) | 16 | Narrow successor vanilla catalogs compile and initialize without earlier vehicle-schema errors; preserve required faction, medical, item and radio behavior. Verify remote affiliation and full mission use. Alternative faction packs remain later scope. | | Prison layout, locks and initial equipment | partial (first-release) | 12 | Manual access, equipment for twelve players, layouts, threat balance and start placement need validation. | @@ -21,7 +21,7 @@ The first release remains vanilla Everon, prison start and twelve players. Alter | Usable vehicles, locks, alarms and navigation | partial (first-release) | 17 | Finite optional vanilla ground transport passes native parking, seats, engine, fuel depletion and loss checks. Manual driving/access, route navigation, repair, alarms and remote vehicle ownership remain validation/integration work. | | Locations, compositions and population ownership | partial (first-release) | 32 | Seven sites and bounded proximity/discovery events are implemented. Expand towns/checkpoints and turret population, validate authored static cover, loss retention, manual access and multiplayer cleanup. | | Player identity, spawning and reconnect | partial (first-release) | 14 | Native local slot reservations, final-assignment guards and owned pending cleanup pass. Real dedicated-server concurrent joins, preload races, reconnects, connection-ID reuse, spent lives, late arrivals and spectator streaming remain. | -| Mission setup, configuration and administration | partial (first-release) | 16 | Core administration/settings and saved environment changes pass local native checks, including two restart rounds. Complete ordinary startup/admission, remote authorization, player-facing pre-round setup and difficulty choices. | +| Mission setup, configuration and administration | partial (first-release) | 16 | Core administration/settings and saved environment changes pass local native checks, including two restart rounds. Ordinary local startup/admission passes for loose Chat and an exact archived packed Core candidate; the latter predates current mortar edits and does not qualify packaging. Verify current-source startup, remote authorization, player-facing pre-round setup and difficulty choices. | | Mission state, restart and base framework | partial (first-release) | 7 | Separate remaining objective/lifecycle policies, test mission failure reporting and multiplayer restart/cleanup. | | General helpers, editor labels and shared types | partial (review) | 23 | Use vanilla utilities or small independent helpers as each consumer is replaced. A filename match does not establish equivalent behavior. | diff --git a/docs/packed-core-startup.md b/docs/packed-core-startup.md new file mode 100644 index 0000000..e7377e5 --- /dev/null +++ b/docs/packed-core-startup.md @@ -0,0 +1,81 @@ +# Packed-only Core ordinary startup + +`tools/headless_game.py --packed-core ... --packed-session ... --project core` is an explicit, bounded consumption test for an **unqualified** native Core package candidate. It uses the installed regular `ArmaReforgerSteam.exe`, the existing private prefix lock, a headless Gamescope display and only its own muted audio sink. It never launches Workbench, modifies the candidate, loads a loose successor project, changes the original Escapists missions or publishes anything. + +This runner extension has passed source/unit checks; it has not yet launched the native packed test. A native package file's existence is not consumption evidence. The 2026-09-19 10:46 package attempt's shutdown/resource errors remain failed build evidence even if these bytes later run successfully. + +## Explicit invocation + +Choose a nonexistent direct `/tmp` child with the required prefix: + +```sh +python3 tools/headless_game.py --project core \ + --packed-core /tmp/erri-native-package-core-20260919-1046/packages/core \ + --packed-session /tmp/erri-packed-core-NEW \ + --compat /tmp/erri-headless-compat --timeout 180 +``` + +The runner requires exactly 15 seconds of continuous readiness (`--settle 15`, the default), refuses another settle value, and uses its existing bounded timeout/error-latching rules. Existing game/prefix process refusals and `.erri-workbench.lock` ownership remain unchanged. Do not pass `--profile`: this case owns a fresh `--packed-session/profile`. Reusing any session, including a failed one, is refused. Ordinary Core/Chat and vanilla-control invocations without these flags retain their existing commands, profiles and evidence format. + +Preflight requires a canonical, nonsymlink candidate directory containing exactly three nonempty regular files: `addon.gproj`, `data.pak`, `resourceDatabase.rdb`. The project must identify `ERR_Core` / `2528466DE220D91C`, with only vanilla `58D0FB3206B6F859` as its dependency. Extra files, directories, symlinks or changed identity fail. The strict project parser deliberately accepts the packer's existing simple project format, rather than trying to understand arbitrary project extensions. + +Under the existing prefix lock, the runner creates a byte-identical **copy**, not a link, at `session/input/addons/core`. Candidate and copy hashes must agree before launch and after cleanup. No source scripts, companion addons, build cache or packaging source directories are copied. The profile's only addon link is the existing read-only installed vanilla discovery link. The actual CLI selects `-addonsDir Z:/input/addons -addons 2528466DE220D91C`, plus the existing ordinary flags; it never references the source repository in its addon search paths. + +The package itself must supply the existing ordinary scenario launcher, explicit diagnostic `noSplash` behavior and normal single-player admission. No loose helper is injected. Read-only inspection found those scripts and the scenario/world in the current candidate PAK; its three helper script payloads match the packaging snapshot. This does not establish native compilation or startup. Explicit noSplash does not qualify the ordinary visible splash path, and the local-round roster key does not qualify remote authentication. + +## Native evidence and provenance + +Readiness requires the same Core header/systems, real local participant and PRISON transition as the ordinary runner, plus: + +- Native GameLib and Game modules without WORKBENCH/ENF_WB and no smoke fixture execution. +- The latest native `Loaded addons` block contains exactly engine Core (`5614BBCCBB55ED1C`), installed ArmaReforger and successor Core. Every observed loaded entry must use its expected installed or private-copy `.gproj` path, without duplicates or foreign identities. +- Native package mounts for both installed vanilla projects and exactly one PAK at the private Core copy. A loose `ERR_*` directory mount or any unexpected package mount fails. +- Core's native resource database path points to that same private copy. Logged addon search directories are limited to the private input parent, installed game addons and private profile addons. +- All raw engine/script failures remain failures and stay latched even if a later poll appears ready. Changed/deleted package inputs or unconfirmed cleanup prevent consumption success. + +Path matching normalizes native `Z:`/backslash spellings and trailing separators without accepting a different path. Missing evidence never becomes a pass. Initial/incomplete log output can remain pending; actual foreign paths or errors fail immediately under the ordinary failure policy. `--failure-grace` remains a bounded diagnostic drain and never turns a failed run into success. + +The fresh session contains `packed-input-provenance.json` captured before launch, the exact copied runtime payload, `packed-runner.json` and `packed-startup-report.json`. The provenance records candidate/copy paths, command, timestamp, launch ID, file sizes and SHA-256 for **all three** files. Native log sessions receive the identical manifest bytes, runner/startup reports and launcher output. After cleanup, the report binds the exact console hash, manifest hash, unchanged candidate/copy result and `packed_launch_id`. + +The dedicated verdict is `packed-core-started`, with `packed_only=true` and `packed_consumption_verified=true` only for a clean, settled, path-verified run with confirmed cleanup and unchanged inputs. `build_qualified` and `release_qualified` remain false. The existing source manifest excludes PAK/RDB files; packed mode therefore does **not** emit `launch-source-*` files or source-provenance claims. It must not be presented as a current source build qualification. + +## Integration and archival + +Files owned by this change are `tools/headless_game.py`, `tests/test_packed_core_game.py` and this document. Add `test_packed_core_game.py` to the explicit `tools/check.py` test list when integrating. Run it directly with `python3 tests/test_packed_core_game.py`; it covers exact payload validation, private copying, command separation, native path/module/error gates, input hash mutation, 15-second settling, latched errors and a mocked failed launch retaining evidence without source provenance. Existing ordinary and vanilla runner suites must also remain green. + +Keep the entire fresh packed session, including `input`, the provenance JSON and raw `profile/logs` directory. The existing `archive_native.py` expects source-launch provenance and is intentionally **not** taught to relabel this packed run. Do not use its legacy override: that would attach unrelated loose source hashes. A later packed-aware archive integration must preserve these artifact hashes and copied bytes, independently recheck native path/readiness evidence, and retain the separate packaging attempt verdict. Until then, link the private complete session as diagnostic evidence; do not add a passed release-ledger entry. + +## Complete packed Chat closure + +The separate explicit `--packed-addons` option accepts the parent directory containing exactly `core`, `ai`, `intel`, `map` and `chat`. It is mutually exclusive with `--packed-core`, requires `--project chat`, and owns a new canonical `/tmp/erri-packed-chat-` session. For an unqualified diagnostic candidate already produced by the packaging runner: + +```sh +python3 tools/headless_game.py --project chat \ + --packed-addons /tmp/erri-native-package-all-20260919-1115/packages \ + --packed-session /tmp/erri-packed-chat-NEW \ + --compat /tmp/erri-headless-compat --timeout 180 +``` + +Each of the five directories must contain exactly three nonempty regular files (`addon.gproj`, `data.pak`, `resourceDatabase.rdb`), with no symlinks, additional directories or loose scripts. The strict project parser requires the following identities and the exact dependency sets, rejecting missing, foreign and duplicate dependency declarations: + +| Folder | Project ID | GUID | Successor dependencies, in addition to vanilla `58D0FB3206B6F859` | +| --- | --- | --- | --- | +| core | ERR_Core | 2528466DE220D91C | none | +| ai | ERR_Ai | 5192138CB9D5B911 | Core | +| intel | ERR_Intel | D31039C7C53E348A | Core | +| map | ERR_Map | 9AAEE9041D79809E | Core | +| chat | ERR_Chat | FA804F411BDDF2C6 | Core, AI, Intel, Map | + +Under the existing prefix lock, all fifteen files are copied independently into `session/input/addons/`. The ordinary command selects only that parent addon directory and Chat GUID `FA804F411BDDF2C6`, and requests the existing packaged Chat scenario launcher. No source-based helper, original mod or loose dependency is inserted. The same profile isolation, muted hidden display, process ownership, 15-second readiness settling, raw error latch and cleanup rules apply. Reading the existing candidate with the new preflight found exactly fifteen valid artifacts totaling 292,361 bytes; that read-only inventory is not a native launch or package-consumption result. + +Readiness additionally requires the actual Chat header and local participant, exactly seven loaded addon identities (the two installed vanilla projects plus all five successors), all five private successor PAK mounts with count one, and every successor's resource database loaded from its matching private folder. Missing evidence remains pending; redirected, duplicate or foreign loaded identities, wrong mounts, loose successor directory mounts, extra addon search paths, foreign databases, native errors, or WORKBENCH definitions fail. A later correct loaded block cannot erase a previous contradictory entry. The ordinary build/phase markers alone cannot qualify the closure. + +Chat provenance uses **schema version 2**, kind `packed-chat-runtime-input`, `project: "chat"`, and `addon_order: ["core", "ai", "intel", "map", "chat"]`. `candidate_directory` and `runtime_directory` point to the respective five-folder parents. `artifacts` is an exact flat fifteen-entry map keyed by `core/addon.gproj`, `core/data.pak`, `core/resourceDatabase.rdb`, and the corresponding three paths for each companion. Every entry records bytes and SHA-256; candidate and copied payload are verified before launch and after cleanup. The manifest filename and seal/console bindings remain `packed-input-provenance.json` and the existing `packed_*` fields. + +Existing `--packed-core` calls and Core's **schema version 1** / `packed-core-runtime-input` manifest retain their original three-entry map and fields. Default helper calls still mean Core; `packed_payload_inventory(folder, project="chat")` explicitly validates a complete Chat closure. A clean, settled Chat run would return `packed-chat-started` and set `packed_consumption_verified=true`, while retaining `build_qualified=false` and `release_qualified=false`. These flags do not forgive packaging errors, establish current source parity, or qualify full gameplay, multiplayer or performance. + +The packed-aware `tools/archive_packed.py` integration preserves these separate artifact-based schemas; source-based `archive_native.py` and legacy overrides remain inappropriate for packed runs. The new offline `tests/test_packed_chat_game.py` covers the exact closure, identities/dependencies, safe copy/provenance, mutation of every one of the fifteen files, command separation, seven-addon/five-PAK/five-database evidence, raw failures and a mocked launch failure retaining artifact evidence. It must run alongside the existing Core, ordinary-game, vanilla-control and packed archive regressions. No native Chat consumption claim is made by these synthetic tests. + +## Native packed Chat consumption + +The [113315 ordinary run](evidence/packed-chat-2026-09-19-113315/report.json) passes with the exact fifteen runtime artifacts from [five-addon packaging 111731](native-companion-packaging.md). Loaded-addon, package-mount and resource-database paths identify only all five successor addons and installed vanilla, with no loose successor source. The native Game modules compile without Workbench, the scenario creates a real canonical prisoner and the 15-second ready interval completes with zero captured errors. All input hashes remain unchanged; owned cleanup is confirmed. The archive retains all fifteen artifact bytes and separate v2 packed provenance. This successful consumption check does not erase the packaging UI errors, qualify current later source changes, or establish manual play, multiplayer or release readiness. diff --git a/docs/packed-evidence.md b/docs/packed-evidence.md new file mode 100644 index 0000000..f1c49b3 --- /dev/null +++ b/docs/packed-evidence.md @@ -0,0 +1,43 @@ +# Archiving packed-only startup evidence + +`tools/archive_packed.py` archives a **stopped packed-Core ordinary startup session** separately from source-based Workbench evidence. It performs no native launch, process operation, package build, publication or acceptance-ledger update. Existing `archive_native.py` behavior is unchanged. + +```sh +python3 tools/archive_packed.py \ + /tmp/erri-packed-core-20260919-1102 \ + packed-core-2026-09-19-1102 +``` + +The first argument is the packed session root, not its nested native log directory. The second is a new, single ASCII filename component under this repository's `docs/evidence`; traversal, symlink redirects and overwrites are refused. Use the actual repository's tool when archiving into actual repository evidence; the staged tool writes only staged evidence. The command does not commit or force-add files itself. + +## What is checked + +Before creating the destination, the helper requires the original packed provenance schema, Core identity and three-artifact hash inventory. Runtime `.gproj`, `.pak` and `.rdb` bytes must still match the prelaunch manifest exactly. The root and native-session copies of provenance, runner report and raw startup report must agree. Snapshot/start/stop chronology, launch ID, manifest hash and exact sealed console hash must validate. Confirmed owned cleanup is required; active/unsealed sessions are refused. Missing or replaced package bytes cannot be reconstructed from today's sources and therefore cause refusal. + +The recorded native command is reconstructed and compared against the packed-only ordinary Core command: installed regular executable and Proton, hidden display, private copied addon directory and profile, Core GUID, explicit ordinary launcher/noSplash and existing nonbackend/muted diagnostic flags. Unexpected flags, loose-source paths or an external native log directory are refused. No source-launch manifest is accepted as substitute provenance. + +The helper independently calls `packed_evidence` on the sealed raw console using **recorded** runtime/profile/Steam paths, so loaded identities, PAK mounts, resource database, ordinary GameLib/Game defines, authored header, real participant and PRISON readiness are checked again. It does not trust a saved `ready` flag. Auxiliary script/error/crash/launcher logs are also retained and checked for actual error/fatal or runtime-failure patterns; warnings in `error.log` do not become invented errors. + +Success additionally requires the sealed runner's `packed-core-started` result, unchanged-input flag, clean polling latch, consumption flag, no input error and at least 15 seconds between start and stop. **The full continuous 15-second polling history was not recorded by the runner.** The archive independently recomputes native readiness but relies on the sealed runner verdict for continuous settling; it explicitly records this limit. A future parser correction cannot turn the first run's latched monitor failure into a pass. Nor can a current successful raw-log parse erase a failed runner result, package mutation, incomplete readiness or auxiliary error. + +The native alias `$profile:../addons/` is recognized only in addon-search-directory records and only as the recorded CLI profile's `addons` directory, consistent with the observed native `$profile:` mapping to `/profile`. Unknown aliases and traversal variants remain unresolved and fail. This correction leaves the earlier raw failure report intact. + +## Files and exit status + +The new archive contains: + +- `package/addon.gproj`, `package/data.pak`, `package/resourceDatabase.rdb`: byte-identical original runtime artifacts, rechecked after writing. +- `packed-input-provenance.json`, `runner.json.txt`, `raw-startup-report.json` and exact `console.log.txt`, plus available auxiliary raw logs. +- `report.json`: independently recomputed result, original runner failure latch, explicit qualification limits and hashes of the verifier implementations. +- `archive-kind.json`: distinct `packed-core-consumption` identity with build/release qualification false. +- `archive-sha256.json`: hashes of every preceding archived file, including the PAK and reports. + +A valid failed run is preserved and exits **1**. A verified packed startup exits **0**. Invalid provenance, unconfirmed cleanup, changed runtime bytes, unsafe paths or an existing destination are refused before creating the destination and exit through argparse. The tool never deletes or overwrites a prior archive. An I/O error during destination writing can leave a partial new directory; preserve that diagnosis and choose a new name after resolving the error. + +The repository ignores generated PAK/RDB files globally. When intentionally committing this evidence, explicitly include these **successor-owned** archived artifacts with `git add -f` using their exact archive paths, after normal review. The archiver neither stages files nor copies installed vanilla packages. Do not use the source archiver's legacy override or create `source-sha256.json` from the current checkout: that would misidentify the runtime payload. + +A packed startup pass still does not qualify the build process, visible splash/UI/input, complete escape, multiplayer, performance, publication or current-source release. Packaging attempts and current acceptance remain separate. Keep the original packaging report and any native shutdown errors as their own evidence. + +## Integration checks + +New files: `tools/archive_packed.py`, `tests/test_archive_packed.py`, this document. Add `test_archive_packed.py` to `tools/check.py`'s explicit test list. `python3 tests/test_archive_packed.py` exercises 17 archive-specific checks: exact-byte preservation, successful/failed verdicts, parser corrections retaining failure latches, native and auxiliary errors, forged ready reports, incomplete settling, mutated input/console, mismatched duplicate evidence, malformed metadata/commands, unsafe paths, cleanup and source-relabel refusals, no overwrite and symlink handling. These tests use temporary fixtures and never start an engine. diff --git a/docs/pak-inventory.md b/docs/pak-inventory.md new file mode 100644 index 0000000..8dcbaf9 --- /dev/null +++ b/docs/pak-inventory.md @@ -0,0 +1,38 @@ +# Read-only native PAK inventory + +`tools/pak_inventory.py` validates the observed Enfusion PAK container structure, bounded decompression and SHA-256 of every indexed file without extracting payloads. It does not verify that an entry is a valid prefab, compiled script, resource identity, platform binary or loadable scenario. A successful report always keeps `platform_or_resource_semantics_verified` and `release_qualified` false. + +```sh +python3 tools/pak_inventory.py /tmp/PRIVATE-SESSION/packages/core/data.pak \ + --output /tmp/NEW-pak-inventory.json +python3 tests/test_pak_inventory.py +``` + +The optional JSON report must not exist. Without it, JSON goes to stdout. Input is opened read-only, without following the final symlink; nonregular inputs such as FIFOs are refused without blocking. No extracted file or directory is created. Report hashes identify observed content, not publisher authenticity or authorship. + +## Observed format supported + +The format was inspected from installed stable Tools build 24870687, and the successor's first actual private Core packing candidate. This is a strict observed-format implementation, not a claim of an official universal PAK specification. + +- `FORM`, a big-endian 32-bit length equal to the complete file size minus eight, then `PAC1`. +- Exactly `HEAD`, `DATA`, `FILE` chunks, in that order. Each has a four-byte tag and big-endian 32-bit payload length; no guessed alignment padding or additional chunks. +- A 28-byte `HEAD` with prefix `03 00 01 00` and four trailing zero bytes. The intervening twenty bytes are opaque and preserved as hexadecimal, not interpreted as identities, checksums or platform claims. +- `FILE` begins with two zero bytes followed by a little-endian root child count. Tree nodes have an unsigned byte kind (0 directory, 1 file), unsigned byte UTF-8 component length and that name. A directory then has a little-endian 32-bit child count. A file then has a 24-byte descriptor: little-endian offset/stored size/expanded size, six observed zero bytes, compression flag/level, and four opaque trailing bytes. Those trailing bytes are **not** assumed to be CRCs. +- Observed compression tuples `(0,0)` and `(1,6)` mean raw and zlib respectively. Other flags, levels, reserved fields or versions fail as unsupported. The parser requires exact decompressed size, native zlib checksum/end-of-stream and absence of trailing or concatenated compressed streams. +- Every DATA byte must belong to exactly one indexed, contiguous file extent. Overlap, unindexed gaps, unindexed tails and deduplicated/sparse variants are refused rather than guessed. + +Paths reject traversal, separators inside components, drive syntax, NUL/control bytes, empty/dot names, trailing dot/space, Windows reserved device names, noncanonical Unicode normalization and case-insensitive collisions. Files and directories share the same collision namespace. + +## Bounds + +Default limits are 4 GiB archive, 32 MiB FILE metadata, 250,000 total tree nodes, depth 64, 1 GiB expanded data per file, 8 GiB aggregate expanded data and a 1024:1 expansion ratio. Metadata is validated before payload decompression. Expanded bytes are streamed in chunks of at most 1 MiB and never written to disk; malicious streams exceeding a smaller declared size are detected after at most that declared size plus one byte. The Python API exposes explicit positive `Limits` for callers needing smaller budgets. Directory depth cannot be raised above 128. The CLI deliberately uses the reviewed defaults. + +The file's size and nanosecond modification/change times are checked before and after inspection. This detects ordinary concurrent modification, not an adversarial modification/reversion with forged timestamps. Unknown format variants, malformed metadata, checksum errors, size overflow/bounds violations and excessive expansion fail closed. + +## Actual read-only observations + +The installed Workbench `addons/core/data.pak` was read and hashed: 1,064 files, 1,192 total tree nodes, 25,423,457 expanded bytes; archive SHA-256 `a2f2aee2b1043ebee24995581fc53fb5f3713195fda432e6c2b4c5acdcc64ea4`. Its payload was not extracted or copied into this repository. Installed game `addons/data/data.pak` and Workbench `shaders-dx12.pak` were inspected for structural metadata only; those observations also used HEAD 03000100 and the same descriptor flag pairs. + +The first successor Core candidate at `/tmp/erri-native-package-core-20260919-1046/packages/core/data.pak` passes this structural/content-hash inventory: 107 files, 122 total tree nodes, 605,769 expanded bytes; archive SHA-256 `a071b5a7298543734bb72c72bb87c0dbfc447b3a176870299abd0a3def4fe623`. Inventory report: `/tmp/erri-core-first-pak-inventory.json`. That build emitted 24 native UI resource-leak errors and its original runner remained waiting on the display wrapper. **This archive inventory does not clear those errors or qualify that packaging run.** Native packed-only loading is separate. + +Eleven focused tests use clearly synthetic archives: raw/compressed nested content, truncation at every byte, header/chunk/version errors, unsafe/colliding paths, descriptor flags/bounds/overlaps/gaps, zlib checksum/truncation/trailing streams, large streamed output, metadata and expansion limits, underspecified decompression bombs, FIFO/symlink refusal, no-overwrite JSON behavior and concurrent input mutation. They invoke no engine and fabricate no real build measurements. diff --git a/docs/spectator-guidance.md b/docs/spectator-guidance.md new file mode 100644 index 0000000..2a42fe0 --- /dev/null +++ b/docs/spectator-guidance.md @@ -0,0 +1,9 @@ +# Spectator reason and controls + +The local observer hint now explains the replicated reason for spectating: the player has used their round's life, joined after extraction began, or could not be spawned. It tells a spectator with a selected survivor about the existing `/esc spectate next` and `/esc spectate previous` commands. Those commands already use the ordinary nonadministrator path; the change does not grant administration, change spawn/identity policy or alter camera control. + +When the server has selected no survivor, the hint says that nobody is currently available to follow and that the view will follow a survivor when one becomes available. It omits ineffective cycling advice in that state. Availability is read from the replicated selected entity ID, not from whether that entity has finished streaming to this client, so streaming delay is not mistaken for an empty survivor set. + +The existing 250 ms observer monitor refreshes the twelve-second hint on first display, a reason change or a change between having/no selected survivor. Stable state does not repeat hints, and switching between two available survivors does not produce another hint. Closing the camera clears the shown flag. If the native hint manager is temporarily absent, the monitor retries without consuming the first display. There are no new timers, input bindings, RPCs, permission checks or server mutations. + +`tests/test_spectator_guidance.py` executes the actual message and refresh methods for every current reason, a fallback reason, both availability states and all prior/current refresh combinations. It also checks the existing monitoring/command boundaries: no extra timer, state recorded only after a hint exists, close/reopen reset, cycling handled before the admin transport and unchanged admin rejection. These are source-local policy and integration-contract checks. Native compilation, real hint rendering, actual chat input and remote target streaming still require their own tests. diff --git a/docs/validation.md b/docs/validation.md index 42c383d..c2299dd 100644 --- a/docs/validation.md +++ b/docs/validation.md @@ -331,3 +331,33 @@ For the six newly checked 091306/091641/092237/092512/092923/game093115 archives [102737 ordinary companion startup](evidence/game-2026-09-19-102737/report.json) runs the regular executable with all five successor addons and no Workbench defines or smoke fixture. The expected Chat header/MissionSystems initializes, preparation reaches PRISON, and the real sole local controller receives a living canonical prisoner. Fifteen seconds of stable readiness, zero captured errors, unchanged addon source bytes and owned cleanup are verified. The scoped diagnostic noSplash workaround and standalone round-local identity remain explicit; the separately archived vanilla control reproduces the initial splash error without this mod. No normal visible splash, input, full ordinary escape or multiplayer acceptance is inferred. [103025 checkpoint companion regression](evidence/native-2026-09-19-103025/report.json) repeats two complete companion-loaded escape/restart rounds, 96 native assertions and zero captured errors on the exact source shared with casualty regression 102037 and ordinary Chat startup 102737. Teardown diagnostics remain disabled, and the opt-in failed flight experiment is inactive. This source qualifies the development clean-runtime checkpoint; all seventeen release acceptance cases remain pending. A subsequent experimental actor-local flight-input branch must invalidate current-source qualification until separately tested. + +[104048 actor-local flight refusal](evidence/native-2026-09-19-104048-flight-action-refusal/report.json) compiles the optional upstream action path and proves the supplied manager is the exact pilot agent manager, distinct from the global manager, with HelicopterContext active. It fails before engine start with zero virtual writes. [104256 context diagnostics](evidence/native-2026-09-19-104256-flight-context-refusal/report.json) then records four callbacks where ActivateContext returns false while IsContextActive is true, with valid timestep/input/simulation. The fixture incorrectly required both activation return and active state; no meaning for that return was documented. The correction queries existing active state first, activates only when inactive, and requires observed active state before any writes. Native action consumption and physical flight remain separate mandatory gates. Both failures remain retained. + +[104438 consumed-input takeoff](evidence/native-2026-09-19-104438-flight-drift-refusal/report.json) proves the corrected actor-local action path reaches native collective/cyclic inputs and existing rotor signals. The mandatory0.05 collective gate agrees on distinct ticks; the same aircraft takes off using real thrust, reaches5.318m above its settled origin and consumes finite fuel. It then fails the unchanged8m horizontal-drift bound before stable hover or landing. This is meaningful native input/takeoff evidence, not a flight-controller acceptance or production HQ aircraft integration. Further work requires motion telemetry and controlled stabilization under the same physical bounds. + +[105226 flight motion diagnostic](evidence/native-2026-09-19-105226-flight-motion-refusal/report.json) repeats real input consumption and takeoff with read-only velocity, acceleration, angular-rate, basis and native rotor-axis observations. The same airframe reaches6.8385m and fails at8.00134m horizontal displacement; lateral velocity has already begun reversing. The native rotor-axis API is documented in local space but is not itself a measured thrust direction. No hardcoded rotor trim or safety-bound increase follows from this trace. Spectator guidance compiles in this Core run; ordinary hint rendering and input remain unqualified. + +[104634 first private native packaging attempt](evidence/package-2026-09-19-104634/package-report.json) copies validated authored Core source into a fresh private session. Workbench prints Packaging project successful and naturally returns0, producing data.pak, addon.gproj and resourceDatabase.rdb. However, native shutdown reports UI resource leaks and Gamescope remains alive until the original runner's300s deadline. Cleanup is confirmed and both captured repository/copied authored bytes remain unchanged; the attempt is a failure, not a release build. Independent read-only inventory finds107 packed entries byte-identical to all107 captured Core source files after metadata/project exclusion; this validates content correspondence, not packed-only engine loading or the noisy build. + +[105441 full-salvo refusal](evidence/native-2026-09-19-105441-salvo-expiry-refusal/report.json) compiles the complete eight-round observer and preserves the original27 physical HE shells. A single explicit inert-target observation travels through real uplink, HQ and downlink; the same battery commits and launches two distinct physical projectiles. Its immutable report then reaches60s age and firing correctly closes without a third launch. The strict full-salvo case fails, while the refusal remains consistent with stale-report policy. Audit confirms fresh later HQ contacts currently have no downlink path into an already active battery; implementing an explicit fresh-report update path is separate from weakening timestamps or inventing observations. + +[105709 flight damping experiment](evidence/native-2026-09-19-105709-flight-damping-refusal/report.json) increases only velocity damping0.3→0.6. It again consumes actual controls and fuel, and reaches roughly9m altitude. It later oscillates horizontally and exceeds the unchanged flight envelope; no stable5s hover or landing passes. Higher outer-loop damping alone is insufficient with the observed native attitude response. This remains opt-in WORKBENCH investigation, never a production aircraft controller. + +[105949 silent packaging attempt](evidence/package-2026-09-19-105949-silent/package-report.json) repeats native Core packing with documented-wbSilent, retaining actual successful packing messages and natural native exit0. The corrected runner now distinguishes native completion from its remaining owned display wrapper and confirms cleanup without a timeout. Native UI resource-leak errors still occur, so the attempt remains failed; silent initialization does not solve that environment issue. All captured source bytes remain unchanged. + +[110404 empty-addon packaging control](evidence/package-control-2026-09-19-110404/package-report.json) contains only the five owned project descriptors, with no successor scripts, worlds, compositions or UI resources. The same installed native packer naturally exits0 and repeats the UI resource-leak shutdown errors. Its private input repository remains unchanged and cleanup is confirmed. This isolates the shutdown symptom from successor payload content in this environment; it neither clears the earlier errors nor qualifies a build, mission, package consumption or release. + +[110127 first packed-only startup](evidence/packed-core-2026-09-19-110127-path-refusal/report.json) mounts only the expected packed successor/vanilla inputs with no native errors, but the runner rejects the engine's exact `$profile:../addons/` search alias and stops before readiness. The corrected verifier resolves only that literal alias to the captured private profile's addon directory and rejects traversal/other aliases; the failed run remains latched in its archive. + +[110729 packed-only ordinary Core startup](evidence/packed-core-2026-09-19-110729/report.json) passes after the verifier correction. The regular executable loads exactly engine Core, vanilla ArmaReforger and packed successor Core, with exact package/database paths, normal non-Workbench modules and no loose successor or original addon. The actual Core scenario/MissionSystems reaches PRISON, equips the real local canonical prisoner, and remains ready for15s with zero captured errors. All3runtimeartifact bytes and sealed console hashes are preserved in the independent archive; ownedcleanup isconfirmed. This proves consumption of that specific native package despite its separately retained packaging shutdown errors. It does not qualify current later source, manual gameplay, full escape, multiplayer or release. + +## 19 September — packaged closure and mortar completion + +The [five-addon packaging archive](native-companion-packaging.md) retains all authored inputs and fifteen runtime artifacts. All147 PAK entries match captured source, but all five native packer invocations retain the same UI shutdown errors as the empty control and remain unqualified. Packed Core ordinary startup110729 is a separate successful artifact-bound check. + +The fresh-report salvo initially fired all eight rounds but failed natural completion at 111915. Native activity terminal events can be followed by a reset polled state; the exact-activity/order event latch now preserves the terminal event and detaches before cancellation cleanup. The [112900 rerun](evidence/native-2026-09-19-112900-mortar-refresh/report.json) passes 55 assertions with zero captured errors, three delivered refreshes, eight actual launches, nineteen original shells remaining and 25 seconds without replay. The expiry classification failure110955 and immutable-report expiry105441 remain retained. + +Powered flight112320 refused before engine start because native autohover also changed collective. Manual angular damping112502 held horizontal drift below 8 metres but still exceeded the unchanged 18 metre height limit. Both failures are retained; hover/landing and operational HQ aircraft remain unqualified. + +The [113315 packed Chat ordinary startup](evidence/packed-chat-2026-09-19-113315/report.json) succeeds with all five 111731 PAKs, exact seven loaded addons including engine/vanilla, fifteen unchanged artifact files, canonical prisoner and 15 seconds ready; zero captured errors and owned cleanup confirmed. Its separate packed provenance does not qualify later loose-source edits or waive packaging shutdown errors. diff --git a/tests/test_archive_packed.py b/tests/test_archive_packed.py new file mode 100644 index 0000000..cb8f90d --- /dev/null +++ b/tests/test_archive_packed.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python3 +"""Packed archival verification without native execution or production writes.""" +import json +import shutil +from pathlib import Path +import sys +import unittest +sys.path.insert(0, str(Path(__file__).resolve().parents[1]/'tools')) +import archive_packed as archiver +import headless_game as runner +import test_packed_core_game as fixtures + + +class PackedArchiveTests(unittest.TestCase): + def setUp(self): + self.fixture=fixtures.PackedCoreTests();self.fixture.setUp() + self.session=self.fixture.session;self.root=self.fixture.root/'archive-repository';self.root.mkdir() + runner.prepare_packed(self.fixture.packed) + command=runner.command_for(Path('/unused'),self.fixture.steam,Path('/compat'),self.fixture.profile,'core',self.fixture.packed) + self.raw=runner.packed_snapshot(self.fixture.packed,command,self.fixture.profile) + self.meta=json.loads(self.raw) + self.native=self.fixture.profile/'logs/logs_2026-09-19_11-02-00';self.native.mkdir(parents=True) + (self.native/'console.log').write_text(self.fixture.content()) + self.report=runner.packed_seal(self.fixture.packed,self.raw,self.native) + self.report.update(started_unix=self.meta['captured_unix']+0.001,stopped_unix=self.meta['captured_unix']+30,result='packed-core-started',session=str(self.native),project='core',cleanup_confirmed=True,runner_error=None,failure_observed_during_polling=False,executable=command[16],dedicated_server=False,control_only=False,packed_consumption_verified=True) + # The command executable follows Proton/run; avoid an assumed path in fixtures. + self.report['executable']=command[command.index('--')+3] + self.startup={'ready':True,'failed':False,'packed_only':True} + self.write_reports() + def tearDown(self):self.fixture.tearDown() + def write_reports(self): + raw=archiver.encoded(self.report) + (self.session/'packed-runner.json').write_bytes(raw);(self.native/'runner.json').write_bytes(raw) + startup=archiver.encoded(self.startup) + (self.session/'packed-startup-report.json').write_bytes(startup);(self.native/'game-startup-report.json').write_bytes(startup) + (self.native/runner.PACKED_MANIFEST).write_bytes(self.raw) + def update_metadata(self): + self.raw=archiver.encoded(self.meta);(self.session/runner.PACKED_MANIFEST).write_bytes(self.raw) + self.report['packed_input_provenance_sha256']=archiver.digest(self.raw);self.write_reports() + def reseal_console(self,text): + raw=text.encode();(self.native/'console.log').write_bytes(raw);self.report['console_sha256']=archiver.digest(raw);self.write_reports() + def test_exact_artifacts_reports_and_hashes_retained_without_source_claim(self): + dest,status=archiver.archive(self.session,'packed-test',self.root);self.assertEqual(status,0) + self.assertEqual(runner.packed_inventory(dest/'package'),self.meta['artifacts']) + for name in runner.PACKED_FILES:self.assertEqual((dest/'package'/name).read_bytes(),(self.fixture.packed['input']/name).read_bytes()) + self.assertEqual((dest/runner.PACKED_MANIFEST).read_bytes(),self.raw) + hashes=json.loads((dest/'archive-sha256.json').read_text()) + for name,digest in hashes.items():self.assertEqual(archiver.digest((dest/name).read_bytes()),digest) + self.assertFalse((dest/'source-sha256.json').exists());self.assertFalse((dest/'source-provenance.json').exists()) + report=json.loads((dest/'report.json').read_text());self.assertTrue(report['packed_consumption_verified']);self.assertFalse(report['build_qualified']);self.assertFalse(report['release_qualified']) + def test_valid_failed_run_archives_nonzero_and_retains_raw_failure(self): + self.report.update(result='game-failed',packed_consumption_verified=False,failure_observed_during_polling=True) + self.startup={'ready':False,'packed_input_violations':['historical alias parser refusal']};self.write_reports() + dest,status=archiver.archive(self.session,'failed-run',self.root) + self.assertEqual(status,1);self.assertIn('historical alias parser refusal',(dest/'raw-startup-report.json').read_text()) + self.assertTrue(json.loads((dest/'report.json').read_text())['runner_failure_latched']) + def test_corrected_ready_parser_cannot_erase_latched_run_failure(self): + self.report.update(result='game-failed',packed_consumption_verified=False,failure_observed_during_polling=True);self.write_reports() + files,report=archiver.inspect(self.session) + self.assertFalse(report['packed_consumption_verified']);self.assertTrue(report['packed_loaded_paths_verified']) + def test_native_raw_error_overrides_claimed_success_and_is_retained(self): + self.reseal_console(self.fixture.content()+'00 SCRIPT (E): actual failure\n') + dest,status=archiver.archive(self.session,'error-run',self.root);self.assertEqual(status,1) + self.assertIn('actual failure',(dest/'console.log.txt').read_text()) + def test_auxiliary_errors_fail_but_warnings_do_not(self): + (self.native/'error.log').write_text('00 SCRIPT (W): warning\n') + self.assertTrue(archiver.inspect(self.session)[1]['packed_consumption_verified']) + (self.native/'error.log').write_text('00 SCRIPT (E): failure absent from console\n') + files,report=archiver.inspect(self.session);self.assertFalse(report['packed_consumption_verified']);self.assertTrue(report['auxiliary_native_failure']);self.assertIn('error.log.txt',files) + def test_forged_saved_ready_report_cannot_substitute_native_readiness(self): + self.reseal_console(self.fixture.content().replace('local participant verified','not ready')) + self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + def test_unchanged_flag_and_minimum_duration_required(self): + self.report['packed_inputs_unchanged_after_run']=False;self.write_reports() + self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + self.report['packed_inputs_unchanged_after_run']=True;self.report['stopped_unix']=self.report['started_unix']+14.9;self.write_reports() + self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + def test_tampered_payload_console_or_copy_is_refused_before_destination(self): + payload=self.fixture.packed['input']/'data.pak';original=payload.read_bytes();payload.write_bytes(b'changed') + with self.assertRaisesRegex(ValueError,'package bytes differ'):archiver.archive(self.session,'tampered',self.root) + self.assertFalse((self.root/'docs/evidence/tampered').exists());payload.write_bytes(original) + (self.native/'console.log').write_text('changed') + with self.assertRaisesRegex(ValueError,'console differs'):archiver.inspect(self.session) + def test_root_native_report_disagreement_refused(self): + (self.native/'runner.json').write_text('{}') + with self.assertRaisesRegex(ValueError,'copies disagree'):archiver.inspect(self.session) + def test_manifest_seal_mismatch_and_duplicate_keys_refused(self): + (self.session/runner.PACKED_MANIFEST).write_bytes(self.raw+b' ') + with self.assertRaisesRegex(ValueError,'binding differs'):archiver.inspect(self.session) + (self.session/runner.PACKED_MANIFEST).write_text('{"schema_version":1,"schema_version":1}') + with self.assertRaisesRegex(ValueError,'duplicate JSON key'):archiver.inspect(self.session) + def test_unexpected_command_loose_search_or_server_flag_refused(self): + self.meta['command'].extend(['-addonsDir','Z:/loose/successor/addons']);self.update_metadata() + with self.assertRaisesRegex(ValueError,'Recorded command differs'):archiver.inspect(self.session) + def test_recorded_native_session_escape_refused(self): + self.report['session']='/tmp/foreign/logs_foo';self.write_reports() + with self.assertRaisesRegex(ValueError,'escapes'):archiver.inspect(self.session) + def test_runtime_or_profile_redirection_refused(self): + self.meta['runtime_directory']='/tmp/foreign/core';self.update_metadata() + with self.assertRaisesRegex(ValueError,'do not belong'):archiver.inspect(self.session) + def test_cleanup_unknown_result_and_source_relabel_refused(self): + original=dict(self.report) + for key,value in [('cleanup_confirmed',False),('result','all good'),('source_provenance','launch_snapshot'),('build_qualified',True),('packed_only',False),('packed_inputs_unchanged_after_run',1)]: + self.report=dict(original);self.report[key]=value;self.write_reports() + with self.subTest(key=key),self.assertRaises(ValueError):archiver.inspect(self.session) + def test_canonical_names_no_overwrite_and_symlink_destination(self): + for name in ('../outside','nested/name','.','..','/absolute','bad name','_hidden'): + with self.subTest(name=name),self.assertRaises(ValueError):archiver.archive(self.session,name,self.root) + dest,status=archiver.archive(self.session,'once',self.root) + with self.assertRaisesRegex(ValueError,'overwrite'):archiver.archive(self.session,'once',self.root) + (self.root/'docs/evidence/redirect').symlink_to(dest,target_is_directory=True) + with self.assertRaises(ValueError):archiver.archive(self.session,'redirect',self.root) + def test_symlinked_evidence_refused(self): + path=self.native/'error.log';path.symlink_to(self.native/'console.log') + with self.assertRaisesRegex(ValueError,'symlinked'):archiver.inspect(self.session) + def test_timestamp_and_missing_hash_validation(self): + self.report['started_unix']=self.meta['captured_unix']-1;self.write_reports() + with self.assertRaisesRegex(ValueError,'chronology'):archiver.inspect(self.session) + +class PackedChatArchiveTests(unittest.TestCase): + # Reuse the existing Core fixture construction without inheriting/rerunning its + # tests. Convert the private payload to the runner's actual schema-2 closure. + write_reports=PackedArchiveTests.write_reports + update_metadata=PackedArchiveTests.update_metadata + reseal_console=PackedArchiveTests.reseal_console + def setUp(self): + base=PackedArchiveTests();base.setUp();self.__dict__.update(base.__dict__) + runtime=self.session/'input/addons';candidate=self.fixture.root/'chat-candidate';candidate.mkdir() + for project in archiver.ADDON_ORDER: + folder=runtime/project;folder.mkdir(exist_ok=True) + (folder/'addon.gproj').write_bytes((runner.ROOT/'addons'/project/'addon.gproj').read_bytes()) + (folder/'data.pak').write_bytes(('fixture-pak-'+project).encode()) + (folder/'resourceDatabase.rdb').write_bytes(('fixture-db-'+project).encode()) + shutil.copytree(folder,candidate/project) + self.packed={'project':'chat','input':runtime,'candidate':candidate,'session':self.session,'manifest':runner.packed_payload_inventory(runtime,'chat')} + command=runner.command_for(Path('/unused'),self.fixture.steam,Path('/compat'),self.fixture.profile,'chat',self.packed) + self.raw=runner.packed_snapshot(self.packed,command,self.fixture.profile);self.meta=json.loads(self.raw) + (self.native/'console.log').write_text(self.content()) + self.report=runner.packed_seal(self.packed,self.raw,self.native) + self.report.update(started_unix=self.meta['captured_unix']+0.001,stopped_unix=self.meta['captured_unix']+30,result='packed-chat-started',session=str(self.native),project='chat',cleanup_confirmed=True,runner_error=None,failure_observed_during_polling=False,executable=command[command.index('--')+3],dedicated_server=False,control_only=False,packed_consumption_verified=True) + self.startup={'ready':True,'failed':False,'packed_only':True};self.write_reports() + def tearDown(self):self.fixture.tearDown() + def content(self): + folder=self.session/'input/addons' + lines=[f"00 ENGINE : dir: '{folder}'", "00 ENGINE : dir: './addons'", "00 ENGINE : dir: '$profile:../addons/'", '00 ENGINE : Loaded addons:', "00 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'", "00 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859'"] + for project in archiver.ADDON_ORDER: + name,guid,deps=runner.PACKED_PROJECTS[project] + lines.append(f"00 ENGINE : gproj: '{folder/project}/addon.gproj' guid: '{guid}'") + lines.extend(["00 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core", "00 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger"]) + for i,project in enumerate(archiver.ADDON_ORDER): + name,guid,deps=runner.PACKED_PROJECTS[project] + lines.extend([f"00 ENGINE : FileSystem: Adding package '{folder/project}/' (pak count: 1) to filesystem under name {name}", f"00 RESOURCES : ResourceDB: loading cache (id={i} name={name} path={folder/project}/resourceDatabase.rdb)"]) + lines.extend(['00 SCRIPT : Module: GameLib; defines: "PLATFORM_WINDOWS"','00 SCRIPT : Module: Game; defines: "PLATFORM_WINDOWS"','00 SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems','00 SCRIPT : ERR ORDINARY: local participant verified project=chat phase=prison','00 SCRIPT : Rereintroduced [mission]: phase 0 -> 1']) + return '\n'.join(lines)+'\n' + def test_chat_preserves_all_fifteen_artifacts_and_schema(self): + destination,status=archiver.archive(self.session,'packed-chat',self.root);self.assertEqual(status,0) + self.assertEqual(runner.packed_payload_inventory(destination/'package','chat'),self.meta['artifacts']) + self.assertEqual(len(self.meta['artifacts']),15) + for name,info in self.meta['artifacts'].items():self.assertEqual(archiver.digest((destination/'package'/name).read_bytes()),info['sha256']) + kind=json.loads((destination/'archive-kind.json').read_text());self.assertEqual(kind['schema_version'],2);self.assertEqual(kind['kind'],'packed-chat-consumption');self.assertEqual(kind['addon_order'],archiver.ADDON_ORDER) + report=json.loads((destination/'report.json').read_text());self.assertTrue(report['packed_consumption_verified']);self.assertFalse(report['release_qualified']) + self.assertFalse((destination/'source-sha256.json').exists()) + def test_missing_extra_or_traversal_manifest_key_refused(self): + original=dict(self.meta['artifacts']) + for operation in ('missing','extra','traversal'): + self.meta['artifacts']=dict(original) + if operation=='missing':del self.meta['artifacts']['map/data.pak'] + elif operation=='extra':self.meta['artifacts']['foreign/data.pak']=original['map/data.pak'] + else:self.meta['artifacts']['../data.pak']=self.meta['artifacts'].pop('map/data.pak') + self.update_metadata() + with self.subTest(operation=operation),self.assertRaisesRegex(ValueError,'artifact set'):archiver.inspect(self.session) + def test_schema_kind_project_order_and_core_result_cannot_mix(self): + original=dict(self.meta) + for key,value in [('schema_version',1),('kind','packed-core-runtime-input'),('project','core'),('addon_order',['core','chat','ai','intel','map'])]: + self.meta=dict(original);self.meta[key]=value;self.update_metadata() + with self.subTest(key=key),self.assertRaises(ValueError):archiver.inspect(self.session) + self.meta=original;self.update_metadata();self.report['result']='packed-core-started';self.write_reports() + with self.assertRaisesRegex(ValueError,'result'):archiver.inspect(self.session) + def test_wrong_companion_identity_is_not_accepted_as_hash_manifest(self): + path=self.packed['input']/'ai/addon.gproj';path.write_bytes((self.packed['input']/'core/addon.gproj').read_bytes()) + data=path.read_bytes();self.meta['artifacts']['ai/addon.gproj']={'bytes':len(data),'sha256':archiver.digest(data)};self.update_metadata() + with self.assertRaises(ValueError):archiver.inspect(self.session) + def test_each_companion_loaded_mount_and_database_evidence_required(self): + for fragment in ("under name ERR_Ai", "name=ERR_Intel path=", "guid: '9AAEE9041D79809E'", 'header verified project=chat', 'local participant verified project=chat'): + self.reseal_console(self.content().replace(fragment,'missing')) + with self.subTest(fragment=fragment):self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + def test_redirected_companion_and_loose_extra_search_fail_native_review(self): + text=self.content().replace(str(self.packed['input']/'ai'),'Z:/loose/ai') + self.reseal_console(text) + self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + self.reseal_console(self.content()+"00 ENGINE : dir: '/loose/source/addons'\n") + self.assertFalse(archiver.inspect(self.session)[1]['packed_consumption_verified']) + def test_valid_failed_chat_run_archives_nonzero(self): + self.report.update(result='timeout',packed_consumption_verified=False);self.write_reports() + destination,status=archiver.archive(self.session,'failed-chat',self.root);self.assertEqual(status,1) + self.assertTrue((destination/'package/ai/data.pak').is_file()) + def test_recorded_command_cannot_select_core_or_an_external_addon_parent(self): + original=list(self.meta['command']) + for flag,value in [('-addons','2528466DE220D91C'),('-addonsDir','Z:/loose/addons')]: + self.meta['command']=list(original);self.meta['command'][self.meta['command'].index(flag)+1]=value;self.update_metadata() + with self.subTest(flag=flag),self.assertRaisesRegex(ValueError,'Recorded command differs'):archiver.inspect(self.session) + +if __name__=='__main__':unittest.main() diff --git a/tests/test_flight_action_runner.py b/tests/test_flight_action_runner.py new file mode 100644 index 0000000..ff49707 --- /dev/null +++ b/tests/test_flight_action_runner.py @@ -0,0 +1,34 @@ +"""The experimental input mode must refuse unrelated projects before any setup.""" +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest +ROOT=Path(__file__).resolve().parents[1] +class FlightActionRunner(unittest.TestCase): + def test_scope_refused_without_profile_or_process_setup(self): + for project,smoke in [('core','victory'),('chat','victory'),('chat','powered-flight')]: + with self.subTest(project=project,smoke=smoke),tempfile.TemporaryDirectory() as directory: + root=Path(directory) + result=subprocess.run([sys.executable,str(ROOT/'tools/headless_workbench.py'),'--compat',str(root/'prefix'),'--profile',str(root/'profile'),'--project',project,'--smoke',smoke,'--rounds','1','--timeout','420','--flight-action-inputs'],capture_output=True,text=True) + self.assertNotEqual(result.returncode,0) + self.assertIn('flight-action-inputs requires the Core powered-flight fixture',result.stderr) + self.assertEqual(list(root.iterdir()),[]) + def test_autohover_requires_explicit_action_input_fixture(self): + for project,smoke,extra in [('core','victory',[]),('chat','powered-flight',['--flight-action-inputs']),('core','powered-flight',[])]: + with self.subTest(project=project,smoke=smoke,extra=extra),tempfile.TemporaryDirectory() as directory: + root=Path(directory) + result=subprocess.run([sys.executable,str(ROOT/'tools/headless_workbench.py'),'--compat',str(root/'prefix'),'--profile',str(root/'profile'),'--project',project,'--smoke',smoke,'--rounds','1','--timeout','420','--flight-autohover',*extra],capture_output=True,text=True) + self.assertNotEqual(result.returncode,0) + self.assertIn('flight-autohover requires Core powered-flight with flight-action-inputs',result.stderr) + self.assertEqual(list(root.iterdir()),[]) + self.assertIn("if a.flight_autohover: command += ['-errFlightAutohover', '1']",(ROOT/'tools/headless_workbench.py').read_text()) + def test_valid_scope_still_requires_disposable_prefix(self): + with tempfile.TemporaryDirectory() as directory: + root=Path(directory) + result=subprocess.run([sys.executable,str(ROOT/'tools/headless_workbench.py'),'--compat',str(root/'prefix'),'--profile',str(root/'profile'),'--project','core','--smoke','powered-flight','--rounds','1','--timeout','420','--flight-action-inputs'],capture_output=True,text=True) + self.assertNotEqual(result.returncode,0) + self.assertIn('must be a disposable cloned prefix',result.stderr) + self.assertEqual(list(root.iterdir()),[]) + self.assertIn("if a.flight_action_inputs: command += ['-errFlightActionInputs', '1']",(ROOT/'tools/headless_workbench.py').read_text()) +if __name__=='__main__':unittest.main() diff --git a/tests/test_mortar_activity_completion.py b/tests/test_mortar_activity_completion.py new file mode 100644 index 0000000..2bb3377 --- /dev/null +++ b/tests/test_mortar_activity_completion.py @@ -0,0 +1,85 @@ +"""Execute actual activity terminal-event ownership, detach and Update methods. + +Invoker/engine boundaries are adapters; completion must still be observed natively. +""" +import re +from policy_harness import ROOT, body, run +p=ROOT/'addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c' +def adapt(signature): + s=body(p,signature).replace('protected ','').replace('null','nullptr') + s=s.replace('SCR_AIActionBase action','Action* action').replace('EAIActionState ', 'State ').replace('EAIActionState.', 'State::') + s=s.replace('ERR_MortarSupplyState ', 'Supply ').replace('ERR_MortarSupplyState.', 'Supply::').replace('ERR_MortarSalvo.', 'Salvo::') + s=s.replace('string reason', 'std::string reason') + for name in ['Activity','m_ObservedActivity','m_Transfer','m_Readiness']: + s=s.replace(name+'.',name+'->') + for name in ['OnActivityCompleted','OnActivityFailed']: + s=s.replace('.Insert('+name+')', '.Insert(this, &Battery::'+name+')').replace('.Remove('+name+')', '.Remove(this, &Battery::'+name+')') + s=re.sub(r'^.*(?:Audit|Trace)\([^\n]*$', ';', s, flags=re.M) + return s +methods='\n'.join(adapt(s) for s in ['protected void WatchActivity(', 'protected void DetachActivity(', 'protected void OnActivityCompleted(', 'protected void OnActivityFailed(', 'protected void ObserveActivityTerminal(', 'protected EAIActionState ActivityTerminal(', 'void Update(']) +cancel=adapt('void Cancel(') +# Capture the existing cancellation reason before testing its unchanged body. +cancel=cancel.replace('{','{\n lastCancel = reason;',1) +run(r''' +#include +#include +enum class State {EVALUATED,RUNNING,SUSPENDED,COMPLETED,FAILED}; +enum class Supply {FAILED=-1,PENDING,READY}; +struct Salvo {static constexpr float TIMEOUT_MS=120000;}; +struct Text:std::string {using std::string::string;bool IsEmpty(){return empty();}}; +struct Action;struct Battery; +struct Invoker {Battery* owner=nullptr;void(Battery::*callback)(Action*)=nullptr;int inserts=0,removes=0,calls=0; + void Insert(Battery* b,void(Battery::*f)(Action*)){owner=b;callback=f;inserts++;} + void Remove(Battery* b,void(Battery::*f)(Action*)){if(owner==b&&callback==f){owner=nullptr;callback=nullptr;removes++;}} + void Invoke(Action* a){if(owner&&callback){calls++;(owner->*callback)(a);}} +}; +struct Action {State state=State::RUNNING;Invoker m_OnActionCompleted,m_OnActionFailed;int completes=0; + State GetActionState(){return state;} + void Complete(){completes++;state=State::COMPLETED;m_OnActionCompleted.Invoke(this);state=State::EVALUATED;} + void Fail(){state=State::FAILED;m_OnActionFailed.Invoke(this);state=State::EVALUATED;} +}; +struct Transfer {int invalidates=0;void Invalidate(){invalidates++;}void Poll(float){}}; +struct Readiness {Supply Poll(float){return Supply::READY;}}; +struct Battery { + bool m_Stopped=false,CommandOpen=true,StartupActivated=true,operational=true,RefreshRejected=false,Released=false; + Action* Activity=nullptr;Action* m_ObservedActivity=nullptr;int OrderId=1,m_ObservedActivityOrder=0,OrderShots=8,TotalShots=8; + State m_ActivityTerminal=State::EVALUATED;float OrderedAt=0,AimedAt=100,AimValidatedAt=100; + Text SpawnFailure;std::string lastCancel;Readiness readiness;Readiness* m_Readiness=&readiness;Transfer transfer;Transfer* m_Transfer=&transfer; + void* RadioOrder=nullptr;void* PendingRadioReport=nullptr;void* PendingSupplyReport=nullptr;void* Refresh=nullptr;void* Report=this;void* AimSolver=this;void* AimSolution=this; + bool Operational(){return operational;}std::string OperationalReason(){return "physical crew unavailable";}void SpawnFailed(const char*){}void UpdateCrewDetail(float){}void FlushTraces(){} +'''+methods+cancel+r''' +}; +int main(){ + Action a;Battery b;b.Activity=&a;b.WatchActivity();assert(a.m_OnActionCompleted.inserts==1&&a.m_OnActionFailed.inserts==1); + a.Complete();assert(a.GetActionState()==State::EVALUATED&&b.m_ActivityTerminal==State::COMPLETED); + assert(b.CommandOpen&&b.Activity==&a&&a.completes==1); // no cancellation/reentrancy in callback + b.Update(100000);assert(!b.CommandOpen&&!b.Activity&&b.lastCancel=="native artillery activity COMPLETED (shot count is separate)"); + assert(a.m_OnActionCompleted.calls==1&&a.m_OnActionCompleted.removes==1&&a.m_OnActionFailed.removes==1); + assert(a.completes==2&&b.OrderShots==8&&b.TotalShots==8); // cleanup Complete cannot create a second observed event + Action f;Battery failed;failed.Activity=&f;failed.WatchActivity();f.Fail();failed.Update(100000); + assert(failed.lastCancel=="native artillery activity FAILED"&&f.m_OnActionFailed.calls==1&&f.m_OnActionCompleted.calls==0); + Action noEvent;Battery timeout;timeout.Activity=&noEvent;timeout.WatchActivity();noEvent.state=State::EVALUATED;timeout.Update(120001); + assert(timeout.lastCancel=="120s artillery salvo timeout"); // eight physical shots alone are not a completion event + Action early;Battery partial;partial.Activity=&early;partial.OrderShots=2;partial.TotalShots=2;partial.WatchActivity();early.Complete();partial.Update(50000); + assert(partial.OrderShots==2&&partial.TotalShots==2&&partial.lastCancel=="native artillery activity COMPLETED (shot count is separate)"); // fixture must still reject incomplete salvo + Action old,current;Battery replacement;replacement.Activity=&old;replacement.WatchActivity();replacement.Cancel("replace");replacement.OrderId=2;replacement.CommandOpen=true;replacement.Activity=¤t;replacement.WatchActivity(); + replacement.OnActivityCompleted(&old);assert(replacement.m_ActivityTerminal==State::EVALUATED&¤t.completes==0); + replacement.OrderId=3;replacement.OnActivityCompleted(¤t);assert(replacement.m_ActivityTerminal==State::EVALUATED); // captured order mismatch + replacement.OrderId=2;current.Complete();replacement.OrderId=3;assert(replacement.ActivityTerminal()==State::EVALUATED); // old latch cannot escape to another order + Action foreign;replacement.OrderId=2;replacement.DetachActivity();replacement.WatchActivity();replacement.OnActivityCompleted(&foreign);assert(replacement.m_ActivityTerminal==State::EVALUATED); + Action cancelled;Battery explicitCancel;explicitCancel.Activity=&cancelled;explicitCancel.WatchActivity();explicitCancel.Cancel("HQ stopped"); + assert(cancelled.m_OnActionCompleted.calls==0&&cancelled.m_OnActionCompleted.removes==1&&explicitCancel.m_ActivityTerminal==State::EVALUATED); + explicitCancel.OnActivityCompleted(&cancelled);assert(explicitCancel.m_ActivityTerminal==State::EVALUATED); + Action first;Battery precedence;precedence.Activity=&first;precedence.WatchActivity();first.Fail();precedence.OnActivityCompleted(&first);assert(precedence.ActivityTerminal()==State::FAILED); + Action stopped;Battery halted;halted.Activity=&stopped;halted.WatchActivity();halted.m_Stopped=true;stopped.Complete();assert(halted.m_ActivityTerminal==State::EVALUATED);halted.Update(120001);assert(halted.Activity==&stopped);halted.Cancel("stop cleanup"); + Action polled;Battery fallback;fallback.Activity=&polled;fallback.WatchActivity();polled.state=State::COMPLETED;fallback.Update(100000);assert(fallback.lastCancel=="native artillery activity COMPLETED (shot count is separate)"); +} +''') +order=body(p,'void Order(');cancel_source=body(p,'void Cancel(') +assert order.index('WatchActivity();') 10000' in system +assert 'now - battery.AimValidatedAt > 10000' in system assert 'battery.AimSolver.ERR_RevalidateAim(battery, this, report, now)' in system assert source.count('BallisticTable.GetAimHeightOfProjectileAltitudeFromSource(')==1 assert 'GetAmmoInitialSpeedCoefficients(ammo, coefficients)' in body(firing,'protected ERR_MortarAimSolution ERR_Solve(') diff --git a/tests/test_mortar_refresh.py b/tests/test_mortar_refresh.py new file mode 100644 index 0000000..bd969db --- /dev/null +++ b/tests/test_mortar_refresh.py @@ -0,0 +1,242 @@ +"""Execute production refresh/adoption methods against adversarial radio/solver outcomes. + +The real scheduler, refresh, cancellation and projectile-bookkeeping bodies run. +Native route/ballistic/crew-readiness operations, battery Update and initial-order +progression are boundary adapters; this is not native delivery, death or firing. +""" +import re +from policy_harness import ROOT, body, run +r=ROOT/'addons/ai/Scripts/Game/ERR' + +def cpp(path, signature): + code=body(r/path,signature).replace('protected ','') + for typ in ['ERR_MortarBattery','ERR_MortarSystem','ERR_HQReport','ERR_HQRoute','ERR_MortarRefresh','ERR_MortarAimSolution']: + code=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',code) + for name in ['battery','report','current','incoming','update','route','commanded','updated','system','m_HQ','newest','selected','target','m_Transfer','Activity']: + code=code.replace(name+'.',name+'->') + # Members are owning/weak script references, both represented as pointers. + for name in ['Route','Report','Refresh','AimSolver']: + code=code.replace('.'+name+'.','.'+name+'->').replace('->'+name+'.','->'+name+'->') + code=code.replace('Route.Advance','Route->Advance') + for name in ['ERR_MortarPrediction','ERR_MortarRefreshRules','ERR_MortarAimRules','ERR_MortarBattery']: + code=code.replace(name+'.',name+'::') + code=code.replace('null','nullptr').replace('IEntity gun;','IEntity gun=nullptr;').replace('ResourceName ammo;','std::string ammo;') + code=code.replace('string reason','std::string reason') + # Only journal formatting is inert; authorization/solver mutations are real bodies. + code=re.sub(r'^.*Audit\([^\n]*$', ';', code, flags=re.M) + code=code.replace('vector.Distance','vector::Distance').replace('Math.AbsFloat','std::fabs') + code=code.replace('array reports = {};','Items reports;') + code=re.sub(r'foreach \((ERR_MortarBattery|ERR_HQReport)\* (\w+) : (\w+)\)',r'for (\1* \2 : \3.values)',code) + code=re.sub(r'(ERR_MortarBattery|ERR_HQReport)\* (newest|selected|target);',r'\1* \2=nullptr;',code) + code=code.replace('Replication.IsServer()', 'Replication::IsServer()').replace('float.MAX','1e30f') + return code + +constructor=cpp('ERR_MortarRefresh.c','void ERR_MortarRefresh(').replace('void ERR_MortarRefresh(', 'ERR_MortarRefresh(') +newer=cpp('ERR_MortarRefresh.c','static bool Newer(') +owns=cpp('ERR_MortarRefresh.c','bool Owns(') +delivered=cpp('ERR_MortarRefresh.c','bool DeliveredFor(') +fresh=cpp('ERR_MortarPrediction.c','static bool Fresh(') +equivalent=cpp('ERR_MortarAimSolution.c','static bool Equivalent(') +matches=cpp('ERR_MortarAimSolution.c','bool Matches(') +can=cpp('ERR_MortarBattery.c','bool CanRefresh(') +begin=cpp('ERR_MortarBattery.c','bool BeginRefresh(') +reject=cpp('ERR_MortarBattery.c','void RejectRefresh(') +advance=cpp('ERR_MortarSystem.c','protected void AdvanceRefresh(') +adopt=cpp('ERR_MortarFiring.c','bool ERR_AdoptReport(') +cancel=cpp('ERR_MortarBattery.c','void Cancel(') +projectile=cpp('ERR_MortarBattery.c','void ObserveProjectile(') +queue_method=cpp('ERR_MortarSystem.c','protected void QueueRefreshes(') +tick=cpp('ERR_MortarSystem.c','void Tick(') +# Supply owners before methods that dereference them, without replacing method logic. +can=can.replace('bool CanRefresh(', 'bool ERR_MortarBattery::CanRefresh(') +begin=begin.replace('bool BeginRefresh(', 'bool ERR_MortarBattery::BeginRefresh(') +reject=reject.replace('void RejectRefresh(', 'void ERR_MortarBattery::RejectRefresh(') +advance=advance.replace('void AdvanceRefresh(', 'void ERR_MortarSystem::AdvanceRefresh(') +adopt=adopt.replace('bool ERR_AdoptReport(', 'bool Node::ERR_AdoptReport(') +cancel=cancel.replace('void Cancel(', 'void ERR_MortarBattery::Cancel(').replace('std::string reason = "cancel requested"','std::string reason') +projectile=projectile.replace('void ObserveProjectile(', 'void ERR_MortarBattery::ObserveProjectile(') +queue_method=queue_method.replace('void QueueRefreshes(', 'void ERR_MortarSystem::QueueRefreshes(') +tick=tick.replace('void Tick(', 'void ERR_MortarSystem::Tick(') +run(r''' +#include +#include +#include +#include +#include +struct vector {float x=0,y=0,z=0;static float Distance(vector a,vector b){return std::sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));}static float DistanceXZ(vector a,vector b){a.y=0;b.y=0;return Distance(a,b);}}; +using IEntity=void*; +templatestruct Items {std::vector values;void Insert(T t){values.push_back(t);}}; +struct Replication {static inline bool server=true;static bool IsServer(){return server;}}; +struct ERR_HQReport {IEntity Target=this;int MessageId=1;float ObservedAt=0;bool Distress=false;vector Position{};std::string TravelMode="foot";std::string Description(float){return "contact";}ERR_HQReport* Snapshot(){return new ERR_HQReport(*this);}}; +struct ERR_MortarPrediction {static constexpr float MAX_REPORT_AGE_MS=60000; +'''+fresh+r'''}; +struct ERR_MortarRefreshRules { +'''+newer+r'''}; +struct ERR_MortarAimRules { +'''+equivalent+r'''}; +struct ERR_MortarBattery;struct ERR_MortarSystem;struct ERR_MortarRefresh;struct ERR_MortarAimSolution;struct Node; +struct ERR_HQRoute {int MessageId=9,state=0,calls=0;int Advance(float,int){calls++;return state;}}; +struct HQ {Items contacts;ERR_HQRoute* nextRoute=nullptr;int downlinks=0;int Journal(){return 0;}void SupportContacts(Items& out,float){out=contacts;}ERR_HQRoute* Downlink(IEntity,const char*,std::string,int){downlinks++;return nextRoute;}}; +struct Ledger {std::set claimed;bool Available(int id,float,float){return !claimed.count(id);}bool Claim(int id,float,float){return claimed.insert(id).second;}}; +struct FakeActivity {int completions=0;void Complete(){completions++;}}; +struct Transfer {int invalidated=0;void Invalidate(){invalidated++;}}; +struct ERR_MortarBattery { + static inline std::string SHELL="HE"; + IEntity Gun=this,Group=this;int OrderId=1,OrderShots=0,TotalShots=0,RadioId=0;float OrderedAt=500,AimedAt=1000,AimValidatedAt=1000,NextOrder=0;vector Position{}; + bool m_Stopped=false,CommandOpen=true,RefreshRejected=false,Rejected=false,Released=false,operational=true,StartupActivated=true; + FakeActivity originalActivity;FakeActivity* Activity=&originalActivity;Transfer transfer;Transfer* m_Transfer=&transfer; + ERR_HQRoute* RadioOrder=nullptr;ERR_HQReport* PendingRadioReport=nullptr;ERR_HQReport* PendingSupplyReport=nullptr; + std::string LastFailure;ERR_HQReport* Report=nullptr;ERR_MortarRefresh* Refresh=nullptr;ERR_MortarAimSolution* AimSolution=nullptr;Node* AimSolver=nullptr;Ledger m_ReportLedger; + bool Operational(){return operational;} + bool CanRefresh(ERR_HQReport*,float);bool BeginRefresh(ERR_HQReport*,ERR_HQRoute*,float);void RejectRefresh(std::string); + void Cancel(std::string reason="cancel requested");void ObserveProjectile(IEntity,IEntity,bool);void FlushTraces(){}void DetachActivity(){} + void Update(float){}bool SupplyPending(){return false;}int CountShells(){return 27;} + bool CanRequest(ERR_HQReport*,float){return false;}bool BeginRequest(ERR_HQReport*,float){assert(false);return false;} +}; +struct ERR_MortarRefresh { + IEntity Gun=nullptr,Group=nullptr;int OrderId=0,RadioId=0;ERR_HQReport* Report=nullptr;ERR_HQRoute* Route=nullptr; +'''+constructor+owns+delivered+r'''}; +struct ERR_MortarAimSolution { + IEntity Gun=nullptr;ERR_HQReport* Report=nullptr;int OrderId=1,Shot=0,Charge=0;vector GunOrigin{},Impact{500,0,0},AimTarget{500,500,0};float FlightTime=30; +'''+matches+r'''}; +struct ERR_MortarSystem { + HQ hq;HQ* m_HQ=&hq;int failures=0; + Items m_Batteries;bool m_Stopped=false;float m_NextDecision=1e9f,m_NextRefreshDecision=0; + bool Withhold(ERR_MortarBattery* b,const char* why){b->Rejected=true;b->LastFailure=why;failures++;return false;} + void AdvanceRefresh(ERR_MortarBattery*,float); + void QueueRefreshes(float);void Tick(float);void AdvanceOrder(ERR_MortarBattery*,float){}bool OutsideSettlements(vector){return true;} +}; +struct Node { + static constexpr int PORT_ARTILLERY_ENTITY=1,PORT_AMMO_PREFAB=2; + IEntity portGun=nullptr;std::string portAmmo=ERR_MortarBattery::SHELL;ERR_MortarAimSolution* calculated=nullptr;int solves=0; + void GetVariableIn(int,IEntity& out){out=portGun;}void GetVariableIn(int,std::string& out){out=portAmmo;} + ERR_MortarAimSolution* ERR_Solve(ERR_MortarBattery*,ERR_MortarSystem*,ERR_HQReport*,float){solves++;return calculated;} + bool ERR_AdoptReport(ERR_MortarBattery*,ERR_MortarSystem*,ERR_HQReport*,float); +}; +'''+can+begin+reject+adopt+advance+cancel+projectile+queue_method+tick+r''' +struct F { + ERR_MortarBattery b;ERR_HQReport old,next;ERR_HQRoute route;ERR_MortarSystem system;ERR_MortarAimSolution original,solved;Node node; + F(){next=old;next.MessageId=2;next.ObservedAt=20000;b.Report=&old;original.Gun=b.Gun;original.Report=&old;solved=original;node.portGun=b.Gun;node.calculated=&solved;b.AimSolver=&node;system.m_Batteries.Insert(&b);} + bool queue(){return b.BeginRefresh(&next,&route,25000);} + void aim(){b.AimSolution=&original;} + void delivery(float now=26000){route.state=1;system.AdvanceRefresh(&b,now);} +}; +int main(){ + F good;assert(good.queue());assert(!good.queue());assert(good.b.m_ReportLedger.claimed.count(2)); + good.system.AdvanceRefresh(&good.b,25000);assert(good.b.Report==&good.old&&good.route.calls==1); // no instant HQ knowledge + good.delivery();assert(!good.b.Refresh&&!good.b.RefreshRejected&&good.b.Report->MessageId==2); + assert(good.b.Report->ObservedAt==20000&&good.b.OrderId==1&&good.b.OrderShots==0&&good.b.OrderedAt==500&&good.b.Activity); + assert(!good.queue());good.b.Report=&good.old;assert(!good.queue()); // claimed refresh cannot become replay after original restored + for(int fault=0;fault<10;fault++){ + F f; + if(fault==0)f.next.Target=&f; + if(fault==1)f.next.ObservedAt=0; + if(fault==2)f.next.ObservedAt=-1; + if(fault==3)f.next.ObservedAt=25001; + if(fault==4)f.next.MessageId=1; + if(fault==5)f.next.MessageId=0; + if(fault==6)f.next.Distress=true; + if(fault==7)f.next.TravelMode="aircraft"; + if(fault==8)f.b.CommandOpen=false; + if(fault==9)f.b.operational=false; + assert(!f.queue()&&f.b.m_ReportLedger.claimed.empty()); + } + F absent;assert(!absent.b.BeginRefresh(&absent.next,nullptr,25000)&&absent.b.m_ReportLedger.claimed.empty()); + F expired;assert(expired.queue());expired.delivery(80001);assert(expired.b.RefreshRejected&&expired.b.Report==&expired.old); + F failed;assert(failed.queue());failed.route.state=-1;failed.system.AdvanceRefresh(&failed.b,26000);assert(failed.b.RefreshRejected&&!failed.b.Refresh&&failed.b.Report==&failed.old); + F changed;assert(changed.queue());changed.b.Gun=&changed.old;changed.delivery();assert(changed.b.RefreshRejected); + F group;assert(group.queue());group.b.Group=&group.old;group.delivery();assert(group.b.RefreshRejected); + F stale;assert(stale.queue());stale.b.OrderId++;stale.delivery();assert(!stale.b.Refresh&&!stale.b.RefreshRejected&&stale.b.Report==&stale.old&&stale.route.calls==0); + F closed;assert(closed.queue());closed.b.CommandOpen=false;closed.delivery();assert(!closed.b.Refresh&&!closed.b.RefreshRejected&&closed.route.calls==0); + F committed;assert(committed.queue());committed.b.Released=true;committed.delivery(); + assert(committed.b.Refresh&&!committed.b.Refresh->Route&&committed.b.Report==&committed.old&&committed.b.Released); + committed.b.Released=false;committed.b.OrderShots=1;committed.system.AdvanceRefresh(&committed.b,27000); + assert(!committed.b.Refresh&&committed.b.Report->MessageId==2&&committed.b.OrderShots==1&&committed.b.OrderId==1); + F failInFlight;assert(failInFlight.queue());failInFlight.b.Released=true;failInFlight.route.state=-1;failInFlight.system.AdvanceRefresh(&failInFlight.b,26000); + assert(failInFlight.b.RefreshRejected&&failInFlight.b.Released&&failInFlight.b.CommandOpen&&failInFlight.b.Report==&failInFlight.old); // callback ownership retained; future load gate closes + F validAim;validAim.aim();assert(validAim.queue());validAim.delivery(); + assert(validAim.node.solves==1&&!validAim.b.RefreshRejected&&validAim.b.Report->MessageId==2&&validAim.original.Report==validAim.b.Report); + assert(validAim.b.AimedAt==1000&&validAim.b.AimValidatedAt==26000&&validAim.b.AimSolution==&validAim.original&&validAim.original.Impact.x==500); + for(int fault=0;fault<10;fault++){ + F f;f.aim();assert(f.queue()); + if(fault==0)f.solved.Impact.x+=.101f; + if(fault==1)f.solved.Charge++; + if(fault==2)f.solved.AimTarget.y+=.101f; + if(fault==3)f.solved.GunOrigin.y+=.051f; + if(fault==4)f.solved.FlightTime+=.051f; + if(fault==5)f.node.portGun=&f.old; + if(fault==6)f.node.portAmmo="other"; + if(fault==7)f.b.AimSolver=nullptr; + if(fault==8)f.node.calculated=nullptr; + if(fault==9)f.b.AimedAt=27000; + f.delivery();assert(f.b.RefreshRejected&&f.b.Report==&f.old&&f.original.Report==&f.old&&f.b.AimValidatedAt==1000); + } + F notDelivered;notDelivered.aim();assert(notDelivered.queue());assert(!notDelivered.node.ERR_AdoptReport(¬Delivered.b,¬Delivered.system,notDelivered.b.Refresh->Report,26000));assert(notDelivered.node.solves==0); + F creep;creep.aim();creep.solved.Impact.x+=.06f;assert(creep.queue());creep.delivery();assert(!creep.b.RefreshRejected); + creep.next.MessageId=3;creep.next.ObservedAt=22000;creep.solved.Impact.x+=.06f;assert(creep.queue());creep.delivery(27000); + assert(creep.b.RefreshRejected&&creep.original.Impact.x==500&&creep.b.Report->MessageId==2&&creep.b.AimedAt==1000); + // Execute the actual HQ tick, refresh scheduler, cancellation and projectile + // bookkeeping together. Native route/crew/ballistic operations remain stubs. + F repeated;repeated.system.hq.contacts.Insert(&repeated.next);repeated.system.hq.nextRoute=&repeated.route; + repeated.system.Tick(25000);assert(repeated.system.hq.downlinks==1&&repeated.b.Refresh&&repeated.route.calls==0); + repeated.system.Tick(25001);repeated.system.Tick(30000);assert(repeated.system.hq.downlinks==1&&repeated.route.calls==2); + repeated.route.state=1;repeated.system.Tick(30001);assert(!repeated.b.Refresh&&repeated.b.Report->MessageId==2); + repeated.system.Tick(35000);repeated.system.hq.contacts.Insert(&repeated.old);repeated.system.Tick(40000); + assert(repeated.system.hq.downlinks==1&&repeated.b.OrderId==1&&repeated.b.Activity==&repeated.b.originalActivity); + assert(repeated.b.m_ReportLedger.claimed.size()==1&&repeated.b.Report->ObservedAt==20000); + F snapshot;assert(snapshot.queue());snapshot.next.MessageId=99;snapshot.next.ObservedAt=24999; + snapshot.delivery();assert(snapshot.b.Report->MessageId==2&&snapshot.b.Report->ObservedAt==20000); // in-flight packet is immutable + F newest;ERR_HQReport later=newest.next;later.MessageId=3;later.ObservedAt=22000; + newest.system.hq.contacts.Insert(&newest.next);newest.system.hq.contacts.Insert(&later);newest.system.hq.nextRoute=&newest.route; + newest.system.Tick(25000);assert(newest.b.Refresh->Report->MessageId==3&&newest.b.m_ReportLedger.claimed.count(3)&&!newest.b.m_ReportLedger.claimed.count(2)); + F interrupted;assert(interrupted.queue());interrupted.b.Released=true; + interrupted.system.Tick(25000);interrupted.route.state=-1;interrupted.system.Tick(25001); + assert(interrupted.b.RefreshRejected&&interrupted.b.Released&&interrupted.b.CommandOpen&&interrupted.b.Report==&interrupted.old); + interrupted.system.Tick(25002);assert(interrupted.b.RefreshRejected&&interrupted.b.Released&&interrupted.route.calls==2); + interrupted.b.ObserveProjectile(&interrupted.next,nullptr,false); // actual physical-event bookkeeping, not native launch proof + assert(!interrupted.b.Released&&interrupted.b.OrderShots==1&&interrupted.b.TotalShots==1&&interrupted.b.Report==&interrupted.old); + interrupted.system.Tick(25003);assert(!interrupted.b.CommandOpen&&!interrupted.b.Activity&&!interrupted.b.Report&&!interrupted.b.RefreshRejected); + assert(interrupted.b.originalActivity.completions==1&&interrupted.b.transfer.invalidated==1&&interrupted.b.NextOrder==35003); + assert(interrupted.b.OrderShots==1&&interrupted.b.TotalShots==1&&interrupted.b.m_ReportLedger.claimed.count(2)); + F noRoute;noRoute.system.hq.contacts.Insert(&noRoute.next);noRoute.b.Released=true; + noRoute.system.Tick(25000);assert(noRoute.system.hq.downlinks==1&&noRoute.b.RefreshRejected&&noRoute.b.Released); + noRoute.system.Tick(30000);assert(noRoute.system.hq.downlinks==1&&noRoute.b.CommandOpen); // latch cannot reset while committed + F deliveredThenRadioDies;assert(deliveredThenRadioDies.queue());deliveredThenRadioDies.b.Released=true;deliveredThenRadioDies.route.state=1; + deliveredThenRadioDies.system.Tick(26000);assert(deliveredThenRadioDies.b.Refresh&&!deliveredThenRadioDies.b.Refresh->Route&&deliveredThenRadioDies.route.calls==1); + deliveredThenRadioDies.route.state=-1; // loss AFTER complete delivery cannot erase the packet already received + deliveredThenRadioDies.b.ObserveProjectile(&deliveredThenRadioDies.next,nullptr,false); + deliveredThenRadioDies.system.Tick(27000);assert(!deliveredThenRadioDies.b.RefreshRejected&&deliveredThenRadioDies.b.Report->MessageId==2&&deliveredThenRadioDies.route.calls==1); + assert(deliveredThenRadioDies.b.AimedAt==-1&&deliveredThenRadioDies.b.AimValidatedAt==-1&&deliveredThenRadioDies.b.OrderShots==1); + F expiresInFlight;assert(expiresInFlight.queue());expiresInFlight.b.Released=true;expiresInFlight.route.state=1; + expiresInFlight.system.Tick(26000);expiresInFlight.system.Tick(80001); + assert(expiresInFlight.b.RefreshRejected&&expiresInFlight.b.Released&&expiresInFlight.b.Report==&expiresInFlight.old); + expiresInFlight.b.ObserveProjectile(&expiresInFlight.next,nullptr,false);expiresInFlight.system.Tick(80002); + assert(!expiresInFlight.b.CommandOpen&&expiresInFlight.b.TotalShots==1&&expiresInFlight.b.OrderShots==1); + F crewLost;assert(crewLost.queue());crewLost.b.operational=false;crewLost.delivery(); + assert(crewLost.b.RefreshRejected&&crewLost.route.calls==0&&crewLost.b.Report==&crewLost.old); // readiness loss refuses before delivery + F cancelled;assert(cancelled.queue());ERR_MortarRefresh* cancelledPacket=cancelled.b.Refresh; + cancelled.b.Cancel("explicit cancellation");cancelled.route.state=1;cancelled.system.Tick(26000); + assert(!cancelled.b.Refresh&&!cancelled.b.Report&&cancelled.route.calls==0&&cancelled.b.m_ReportLedger.claimed.count(2)); + cancelled.b.OrderId=2;cancelled.b.CommandOpen=true;cancelled.b.Activity=&cancelled.b.originalActivity;cancelled.b.Report=&cancelled.next; + cancelled.b.Refresh=cancelledPacket;cancelled.system.AdvanceRefresh(&cancelled.b,27000); // delayed old-order transaction cannot hit replacement + assert(!cancelled.b.Refresh&&!cancelled.b.RefreshRejected&&cancelled.b.CommandOpen&&cancelled.b.OrderId==2&&cancelled.b.Report==&cancelled.next&&cancelled.route.calls==0); + F stopped;assert(stopped.queue());stopped.system.m_Stopped=true;stopped.system.Tick(26000);assert(stopped.route.calls==0&&stopped.b.Refresh); + stopped.system.m_Stopped=false;Replication::server=false;stopped.system.Tick(26000);assert(stopped.route.calls==0);Replication::server=true; +} +''') +# Boundaries not modeled as native C++ operations: real HQ route construction, +# projectile latch, immutable report timestamps, existing cadence and cleanup. +system=(r/'ERR_MortarSystem.c').read_text(); battery=(r/'ERR_MortarBattery.c').read_text() +queue=body(r/'ERR_MortarSystem.c','protected void QueueRefreshes(') +assert 'm_HQ.SupportContacts(reports, now)' in queue and 'm_HQ.Downlink(' in queue +assert 'new SCR_AIStaticArtilleryActivity' not in queue+begin+advance+adopt +assert 'ObservedAt =' not in queue+begin+advance+adopt +assert 'OrderId++' not in queue+begin+advance+adopt +assert 'OrderedAt =' not in queue+begin+advance+adopt +assert 'battery.RefreshRejected' in body(r/'ERR_MortarSystem.c','bool AllowShot(') +assert '(battery.Rejected || battery.RefreshRejected) && !battery.Released' in system +assert 'Refresh = null;' in body(r/'ERR_MortarBattery.c','void Cancel(') +assert 'AimValidatedAt = -1;' in body(r/'ERR_MortarBattery.c','void ObserveProjectile(') +assert 'battery.AimedAt = now;' not in body(r/'ERR_MortarFiring.c','bool ERR_AdoptReport(') +assert 'battery.AimSolution = updated' not in adopt +print('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') diff --git a/tests/test_mortar_transactions.py b/tests/test_mortar_transactions.py index 427c832..a4015e8 100644 --- a/tests/test_mortar_transactions.py +++ b/tests/test_mortar_transactions.py @@ -82,6 +82,32 @@ int main(){ assert(unauthorized.Poll(0)==S::FAILED && !unauthorized.m_Resolved); } ''') +# Execute the production classification helper and its actual delivered-report +# lookup. The freshness adapter supplies only the report/time boundary; no +# inventory retry, reservation release or native firing is modeled here. +system_path=r/'ERR_MortarSystem.c' +classification='\n'.join(body(system_path,signature) for signature in ['ERR_HQReport Latest(', 'string ContactFailure(', 'string SupplyFailure(']) +classification=classification.replace('ERR_HQReport Latest(', 'Report* Latest(').replace('ERR_MortarBattery battery','Battery* battery').replace('battery.Report','battery->Report').replace('ERR_MortarPrediction.Fresh','Prediction::Fresh').replace('return null;', 'return nullptr;').replace('string ', 'std::string ') +run('''#include +#include +struct Report {float observed=1000;bool valid=true;}; +struct Battery {struct Report* Report=nullptr;}; +struct Prediction {static bool Fresh(Report* report,float now){return report&&report->valid&&now>=report->observed&&now-report->observed<=60000;}}; +struct System { +'''+classification+'''}; +int main(){ + System system;Battery battery; + assert(system.SupplyFailure(&battery,20000)=="no delivered target report"); + Report report;battery.Report=&report; + assert(system.SupplyFailure(&battery,61000)=="next native load lacks confirmed physical gunner ammunition"); + assert(system.SupplyFailure(&battery,61001)=="delivered target report expired or invalid"); + assert(system.SupplyFailure(&battery,999)=="delivered target report expired or invalid"); + report.valid=false;assert(system.SupplyFailure(&battery,20000)=="delivered target report expired or invalid"); + report.valid=true;report.observed=20000; + assert(system.SupplyFailure(&battery,30000)=="next native load lacks confirmed physical gunner ammunition"); + assert(battery.Report==&report&&report.observed==20000); // classification cannot retimestamp or replace a report +} +''') # Source contract checks constrain integration that cannot run without the engine. b=battery.read_text();sys=(r/'ERR_MortarSystem.c').read_text();f=(r/'ERR_MortarFiring.c').read_text();rd=readiness.read_text();tr=transfer.read_text() update=body(battery,'void Update(float now)') @@ -96,6 +122,9 @@ assert 'm_AttemptedShells.Insert(item)' in b and 'm_AttemptedShells.Contains(ite assert 'm_Transfer.CapturedOrder() == OrderId' in b assert 'battery.PendingSupplyReport' in sys and 'supply == ERR_MortarSupplyState.PENDING) return;' in sys shoot=f[f.index('modded class SCR_AIStaticArtilleryBehavior_ShootingLogic'):] -assert shoot.index('battery.SupplyState(') values;bool Contains(Entity* p){return std::find(values.begin(),values.end(),p)!=values.end();}void Insert(Entity* p){values.push_back(p);}}; templatevoid PrintFormat(Args...args){} struct Probe { @@ -29,6 +29,10 @@ struct Probe { }; int main(){ using Rules=ERR_NativeMortarEvidenceRules; + assert(Rules::AimFresh(1000,19000,20000)); // old actual command, genuinely recent equivalent solve + assert(!Rules::AimFresh(-1,19000,20000));assert(!Rules::AimFresh(21000,21000,20000)); + assert(!Rules::AimFresh(19000,18000,20000));assert(!Rules::AimFresh(1000,20001,20000)); + assert(!Rules::AimFresh(1000,9999,20000));assert(Rules::AimFresh(1000,10000,20000)); assert(Rules::EventBound(true,1,1,0,0,60999,90000)); // original fresh commit survives delayed native emission assert(Rules::CommitFresh(1000,1000,61000));assert(!Rules::CommitFresh(1000,1000,61001)); assert(!Rules::CommitFresh(1100,1000,20000));assert(!Rules::CommitFresh(1000,1000,999)); @@ -43,7 +47,7 @@ int main(){ Probe nullEvent;nullEvent.m_Battery=&b;nullEvent.m_Gun=&gun;nullEvent.NativeProjectile(&gun,nullptr);assert(nullEvent.m_BadProjectile&&nullEvent.m_Events==0); Probe stoppedObserver;stoppedObserver.m_Battery=&b;stoppedObserver.m_Gun=&gun;stoppedObserver.m_Stopped=true;stoppedObserver.NativeCommit(&b,20000);stoppedObserver.NativeProjectile(&gun,&projectile);assert(stoppedObserver.m_Commits==0&&stoppedObserver.m_Events==0&&!stoppedObserver.m_BadProjectile); // Physical launch after report expiry is legitimate if its commit was fresh. - b=Battery();b.Report=&b.report;b.AimedAt=60500;Probe delayed;delayed.m_Battery=&b;delayed.m_Gun=&gun;delayed.m_Step=3; + b=Battery();b.Report=&b.report;b.AimedAt=60500;b.AimValidatedAt=60500;Probe delayed;delayed.m_Battery=&b;delayed.m_Gun=&gun;delayed.m_Step=3; delayed.NativeCommit(&b,60999);clockNow=62999;delayed.NativeProjectile(&gun,&projectile); assert(delayed.m_Events==1&&!delayed.m_BadProjectile); for(int fault=0;fault<10;++fault){ @@ -52,12 +56,12 @@ int main(){ if(fault==1)b.Released=false; if(fault==2)b.SourceId=8; if(fault==3)b.AimedAt=-1; - if(fault==4)b.AimedAt=9999; + if(fault==4)b.AimValidatedAt=9999; if(fault==5)b.FlightTime=0; if(fault==6)q.m_Step=2; if(fault==7)b.report.ObservedAt=1001; if(fault==8)b.OrderId=2; - if(fault==9){clockNow=61001;b.AimedAt=61000;} + if(fault==9){clockNow=61001;b.AimedAt=61000;b.AimValidatedAt=61000;} q.NativeCommit(&b,clockNow);assert(q.m_BadProjectile&&!q.m_CommitPending&&q.m_Commits==0); } b=Battery();b.Report=&b.report;clockNow=20000;Probe missing;missing.m_Battery=&b;missing.m_Gun=&gun; diff --git a/tests/test_native_mortar_refresh.py b/tests/test_native_mortar_refresh.py new file mode 100644 index 0000000..14b0d6a --- /dev/null +++ b/tests/test_native_mortar_refresh.py @@ -0,0 +1,105 @@ +"""Actual WORKBENCH refresh-fixture observation/acceptance policy, not native proof.""" +import re +from policy_harness import ROOT, body, run +p=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c' +base=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c' + +def adapt(s): + s=s.replace('protected ','').replace('null','nullptr').replace('string kind','std::string kind').replace('string reason, string failure','std::string reason, std::string failure') + for typ in ['ERR_HQReport','ERR_MortarBattery','ERR_NativeMortarRefreshRecord','ERR_MortarRefresh']: + s=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',s) + for name in ['battery','report','observation','record','initial','update','m_Battery']: + s=s.replace(name+'.',name+'->') + for name in ['Report','Route','Delivered']: + s=s.replace('.'+name+'.','.'+name+'->').replace('->'+name+'.','->'+name+'->') + s=s.replace('ERR_MortarSalvo.','ERR_MortarSalvo::').replace('ERR_MortarPrediction.','ERR_MortarPrediction::').replace('ERR_NativeMortarEvidenceRules.','ERR_NativeMortarEvidenceRules::').replace('vector.Distance','vector::Distance') + s=re.sub(r'foreach \(ERR_NativeMortarRefreshRecord\* (\w+) : m_Observations\)',r'for (ERR_NativeMortarRefreshRecord* \1 : m_Observations.values)',s) + s=s.replace('].ObservedAt',']->ObservedAt') + return s + +rules=adapt(body(p,'static bool QueueUpdate(')) +evidence='\n'.join(adapt(body(base,s)) for s in ['static bool CommitFresh(', 'static bool AimFresh(']) +matching=adapt(body(p,'bool Matches(')) +methods='\n'.join(adapt(body(p,s)) for s in ['protected ERR_NativeMortarRefreshRecord FindObservation(', 'protected bool AddObservation(', 'protected bool ReportKnown(', 'protected bool AllAccepted(', 'protected bool NoReportReplay(', 'void NativeAudit(', 'void NativeCommit(', 'void NativeClosing(']) +# A return type is a reference in Enforce, a pointer in this policy adapter. +methods=methods.replace('ERR_NativeMortarRefreshRecord FindObservation(', 'ERR_NativeMortarRefreshRecord* FindObservation(') +run(r''' +#include +#include +#include +#include +#include +using IEntity=void*;using SCR_AIGroup=void*; +struct vector {float x=0,y=0,z=0;float Length(){return std::sqrt(x*x+y*y+z*z);}static float Distance(vector a,vector b){return vector{a.x-b.x,a.y-b.y,a.z-b.z}.Length();}}; +struct ERR_MortarSalvo {static constexpr int ROUNDS=8;}; +struct ERR_MortarPrediction {static constexpr float MAX_REPORT_AGE_MS=60000;}; +struct Rules {'''+rules+r'''}; +struct ERR_NativeMortarEvidenceRules {'''+evidence+r'''}; +templatestruct Items {std::vector values;int Count(){return values.size();}bool IsEmpty(){return values.empty();}void Insert(T t){values.push_back(t);}T operator[](int n){return values[n];}}; +struct ERR_HQReport {int MessageId=1;float ObservedAt=0;IEntity Target=nullptr;SCR_AIGroup Source=nullptr;vector Position{},Velocity{};bool HasVelocity=true,Distress=false;ERR_HQReport* Snapshot(){return new ERR_HQReport(*this);}}; +struct Route {bool Downlink=true;int MessageId=3;Items Nodes;Route(){Nodes.Insert(1);}}; +struct ERR_MortarBattery; +struct ERR_MortarRefresh {IEntity Gun=nullptr,Group=nullptr;int OrderId=1,RadioId=3;ERR_HQReport* Report=nullptr;struct Route* Route=nullptr;bool Owns(ERR_MortarBattery*);}; +struct ERR_MortarBattery {IEntity Gun=this,Group=this,Activity=this;int SourceId=1,OrderId=1,OrderShots=0;bool Released=false,CommandOpen=true,RefreshRejected=false,stopped=false;float AimedAt=1000,AimValidatedAt=24000,FlightTime=20;ERR_HQReport* Report=nullptr;ERR_MortarRefresh* Refresh=nullptr;std::set claimed;bool Stopped(){return stopped;}bool CanRequest(ERR_HQReport* r,float){return !claimed.count(r->MessageId);}}; +bool ERR_MortarRefresh::Owns(ERR_MortarBattery* b){return b&&Gun==b->Gun&&Group==b->Group&&OrderId==b->OrderId;} +struct ERR_NativeMortarRefreshRecord {int MessageId=0;float ObservedAt=0;int DownlinkId=0;bool Accepted=false;ERR_HQReport* Delivered=nullptr; +'''+matching+r'''}; +templatevoid PrintFormat(Args... args){} +struct Probe { + bool m_RefreshCase=true,m_Stopped=false,m_SawDownlink=true,m_SawActivity=false,m_BadProjectile=false,m_CommitPending=false,m_ClosureSeen=false,m_ClosureComplete=false; + ERR_MortarBattery* m_Battery=nullptr;IEntity m_Target=this,m_Group=this,m_OriginalActivity=nullptr,m_OriginalRTO=this;vector m_Impact{}; + int m_Source=1,m_Order=1,m_UpdatesAccepted=0,m_UpdatedCommits=0,m_Commits=0,m_Step=1,m_CommitOrder=0,m_CommitShot=0,m_CommitSource=0,m_Events=0;float m_ObservedAt=0,m_CommittedAt=0,m_CommitObservedAt=0;std::string m_BadReason;ERR_HQReport* m_Delivered=nullptr; + Items m_Observations; +'''+methods+r'''}; +struct F { + Probe p;ERR_MortarBattery b;ERR_HQReport first,next;ERR_MortarRefresh update;Route route; + F(){p.m_Battery=&b;first.Target=p.m_Target;first.Source=p.m_Group;next=first;next.MessageId=2;next.ObservedAt=20000;b.Report=&first;b.claimed.insert(1);update.Gun=b.Gun;update.Group=b.Group;update.Report=&next;update.Route=&route;} + void initial(){assert(p.AddObservation(1,0));p.FindObservation(1)->DownlinkId=2;p.NativeAudit(&b,"AIM");assert(!p.m_BadProjectile);} + void queued(){assert(p.AddObservation(2,20000));b.Refresh=&update;b.claimed.insert(2);p.NativeAudit(&b,"UPDATE QUEUED");} + void accepted(){update.Route=nullptr;b.Report=&next;p.NativeAudit(&b,"UPDATE RECEIVED");b.Refresh=nullptr;} +}; +int main(){ + assert(Rules::QueueUpdate(true,false,0,0,1000,20000));assert(!Rules::QueueUpdate(true,false,0,0,1000,19999)); + assert(!Rules::QueueUpdate(false,false,0,0,1000,20000));assert(!Rules::QueueUpdate(true,true,0,0,1000,20000)); + assert(!Rules::QueueUpdate(true,false,4,0,1000,20000));assert(!Rules::QueueUpdate(true,false,0,0,1000,91000)); + assert(!Rules::QueueUpdate(true,false,0,0,22000,20000)); + F f;f.initial();assert(f.p.ReportKnown(&f.first));assert(!f.p.ReportKnown(&f.next));assert(!f.p.AllAccepted()); + assert(!f.p.AddObservation(1,1));assert(!f.p.AddObservation(2,0));assert(!f.p.AddObservation(0,100)); + f.queued();assert(!f.p.ReportKnown(&f.next)&&f.p.ReportKnown(&f.next,false));assert(!f.p.AllAccepted()); + f.accepted();assert(!f.p.m_BadProjectile&&f.p.ReportKnown(&f.next)&&f.p.m_UpdatesAccepted==1); + f.b.Released=true;f.p.NativeCommit(&f.b,25000);assert(!f.p.m_BadProjectile&&f.p.m_UpdatedCommits==1&&f.p.m_CommitSource==2&&f.p.m_CommitObservedAt==20000); + assert(f.p.AllAccepted()&&f.p.NoReportReplay(26000));f.b.claimed.erase(2);assert(!f.p.NoReportReplay(26000));f.b.claimed.insert(2); + f.b.OrderShots=8;f.p.m_Events=8;f.p.m_Commits=8;f.p.m_CommitPending=false;f.b.Released=false; + f.p.NativeClosing(&f.b,"native artillery activity COMPLETED (shot count is separate)","");assert(f.p.m_ClosureComplete&&!f.p.m_BadProjectile); + for(int fault=0;fault<7;fault++){ + F a;a.initial();a.queued(); + if(fault==0)a.update.OrderId=2; + if(fault==1)a.b.Activity=&a.next; + if(fault==2)a.next.ObservedAt=20001; + if(fault==3)a.next.Position.x=.02f; + if(fault==4)a.next.Target=&a.next; + if(fault==5)a.next.Source=&a.next; + if(fault==6)a.next.Velocity.x=1; + a.accepted();assert(a.p.m_BadProjectile&&!a.p.FindObservation(2)->Accepted); + } + F beforeRoute;beforeRoute.initial();beforeRoute.queued();beforeRoute.b.Report=&beforeRoute.next;beforeRoute.p.NativeAudit(&beforeRoute.b,"UPDATE RECEIVED");assert(beforeRoute.p.m_BadProjectile); + F committed;committed.initial();committed.queued();committed.b.Released=true;committed.accepted();assert(committed.p.m_BadProjectile); + F duplicate;duplicate.initial();duplicate.queued();duplicate.accepted();duplicate.b.Refresh=&duplicate.update;duplicate.p.NativeAudit(&duplicate.b,"UPDATE RECEIVED");assert(duplicate.p.m_BadProjectile&&duplicate.p.m_UpdatesAccepted==1); + F recreated;recreated.initial();recreated.p.NativeAudit(&recreated.b,"AIM");assert(recreated.p.m_BadProjectile); + F unaccepted;unaccepted.initial();unaccepted.queued();unaccepted.b.Report=&unaccepted.next;unaccepted.b.Released=true;unaccepted.p.NativeCommit(&unaccepted.b,25000);assert(unaccepted.p.m_BadProjectile&&unaccepted.p.m_Commits==0); + F extra;extra.initial();extra.queued();extra.accepted();extra.p.m_UpdatedCommits=1;assert(extra.p.AddObservation(3,40000));assert(!extra.p.AllAccepted()); + F ignored;ignored.p.m_RefreshCase=false;ignored.p.NativeAudit(&ignored.b,"AIM");assert(!ignored.p.m_BadProjectile);assert(ignored.p.ReportKnown(&ignored.first)); +} +''') +source=p.read_text();queue=body(p,'int ERR_QueueMortarRefreshReport(') +assert 'observedAt = GetGame().GetWorld().GetWorldTime()' in queue +assert 'm_Network.Route(radio)' in queue and 'unit.Radio != radio' in queue +assert 'unit.PendingReport = report; unit.Uplink = route;' in queue +assert 'm_Contacts.' not in queue and '.Order(' not in queue and 'BeginRefresh(' not in queue +assert 'report.ObservedAt = observedAt' in queue +assert 'outcome == "mortar-salvo" || outcome == "mortar-refresh"' in source +assert 'm_Battery.RadioOperator != m_OriginalRTO' in source +assert 'm_Battery.Report.MessageId != m_CommitSource' in body(p,'void NativeProjectile(') +assert 'ERR_NativeMortarSalvoRules.QueueUpdate(' in body(p,'int Tick(') +assert 'm_Battery.Report =' not in body(p,'int Tick(') +print('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') diff --git a/tests/test_native_mortar_salvo.py b/tests/test_native_mortar_salvo.py new file mode 100644 index 0000000..083560c --- /dev/null +++ b/tests/test_native_mortar_salvo.py @@ -0,0 +1,91 @@ +"""Execute the actual full-salvo evidence gates; this is not a native firing result.""" +from policy_harness import ROOT, body, run +p=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c' +base=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c' +rules='\n'.join(body(base, sig) for sig in ['static bool AimFresh(', 'static bool CommitFresh(', 'static bool EventBound(']) +rules=rules.replace('ERR_MortarPrediction.', 'ERR_MortarPrediction::') +complete=body(p,'static bool Complete(').replace('ERR_MortarSalvo.', 'ERR_MortarSalvo::') +methods='\n'.join(body(p,sig) for sig in ['void NativeCommit(', 'void NativeClosing(', 'void NativeProjectile(']) +for a,b in [('ERR_MortarBattery battery','Battery* battery'),('IEntity gun, IEntity projectile','Entity* gun, Entity* projectile'),('string reason, string failure','std::string reason, std::string failure'),('m_Battery.','m_Battery->'),('battery.','battery->'),('Report.','Report->'),('projectile.GetOrigin()','projectile->GetOrigin()'),('GetGame().GetWorld().GetWorldTime()','clockNow'),('ERR_NativeMortarEvidenceRules.','ERR_NativeMortarEvidenceRules::'),('ERR_MortarSalvo.','ERR_MortarSalvo::')]: methods=methods.replace(a,b) +run('''#include +#include +#include +#include +float clockNow=20000; +struct ERR_MortarPrediction {static constexpr float MAX_REPORT_AGE_MS=60000;}; +struct ERR_MortarSalvo {static constexpr int ROUNDS=8;}; +struct ERR_NativeMortarEvidenceRules {'''+rules+'''}; +struct Rules {'''+complete+'''}; +struct Entity {int GetOrigin(){return 0;}}; +struct Report {int MessageId=7;float ObservedAt=1000;}; +struct Battery {void* Activity=nullptr;void* Refresh=nullptr;bool RefreshRejected=false;bool CommandOpen=true,Released=true,stopped=false;int SourceId=7,OrderId=1,OrderShots=0;float AimedAt=19000,AimValidatedAt=19000,FlightTime=20;struct Report report;struct Report* Report=&report;bool Stopped(){return stopped;}}; +struct Items {std::vector values;bool Contains(Entity* p){return std::find(values.begin(),values.end(),p)!=values.end();}void Insert(Entity* p){values.push_back(p);}}; +templatevoid PrintFormat(Args...args){} +struct Probe { + void* m_OriginalActivity=nullptr;bool m_RefreshCase=false;int m_UpdatedCommits=0,m_CommitSource=0;float m_CommitObservedAt=0; + bool m_Stopped=false,m_BadProjectile=false,m_CommitPending=false,m_ClosureSeen=false,m_ClosureComplete=false; + Battery* m_Battery;Entity* m_Gun;Items m_Projectiles;int m_Events=0,m_Step=1,m_Source=7,m_Order=1,m_Commits=0,m_CommitOrder=0,m_CommitShot=0;float m_ObservedAt=1000,m_CommittedAt=0;std::string m_BadReason; + bool ReportKnown(Report* report){return report&&report->MessageId==m_Source&&report->ObservedAt==m_ObservedAt;} + bool AllAccepted(){return !m_RefreshCase;} +'''+methods+'''}; +int main(){ + assert(Rules::Complete(8,8,8,8,19,false)); + for(int count=0;count<8;count++)assert(!Rules::Complete(count,count,count,count,27-count,false)); + assert(!Rules::Complete(9,9,9,9,18,false)); + assert(!Rules::Complete(8,7,8,8,19,false)); + assert(!Rules::Complete(8,8,7,8,19,false)); + assert(!Rules::Complete(8,8,8,7,19,false)); + assert(!Rules::Complete(8,8,8,8,20,false)); + assert(!Rules::Complete(8,8,8,8,18,false)); + assert(!Rules::Complete(8,8,8,8,19,true)); + Entity gun,foreign,shots[9];Battery b;Probe p;p.m_Battery=&b;p.m_Gun=&gun; + p.NativeProjectile(&foreign,&shots[0]);assert(p.m_Events==0); + for(int i=0;i<8;i++){ + b.OrderShots=i;b.AimedAt=clockNow;b.AimValidatedAt=clockNow; + p.NativeCommit(&b,clockNow);assert(p.m_CommitPending&&!p.m_BadProjectile&&p.m_Commits==i+1); + clockNow+=500;p.NativeProjectile(&gun,&shots[i]);assert(p.m_Events==i+1&&!p.m_CommitPending&&!p.m_BadProjectile); + } + b.OrderShots=8;p.NativeClosing(&b,"native artillery activity COMPLETED (shot count is separate)",""); + assert(p.m_ClosureSeen&&p.m_ClosureComplete&&!p.m_BadProjectile); + p.NativeCommit(&b,clockNow);assert(p.m_BadProjectile&&p.m_Commits==8); // ninth commit forbidden + for(int fault=0;fault<11;fault++){ + Battery f;Probe q;q.m_Battery=&f;q.m_Gun=&gun;clockNow=20000; + if(fault==0)f.report.ObservedAt=1001; // retimestamped contact + if(fault==1)f.OrderId=2; + if(fault==2)f.SourceId=8; + if(fault==3)f.OrderShots=1; // skipped physical event + if(fault==4)q.m_Step=2; // post-completion replay + if(fault==5)q.m_CommitPending=true; + if(fault==6){clockNow=61001;f.AimedAt=61000;f.AimValidatedAt=61000;} + if(fault==7)f.AimValidatedAt=9999; + if(fault==8)f.Released=false; + if(fault==9)f.CommandOpen=false; + if(fault==10)f.FlightTime=0; + q.NativeCommit(&f,clockNow);assert(q.m_BadProjectile&&q.m_Commits==0); + } + Battery f;Probe q;q.m_Battery=&f;q.m_Gun=&gun;clockNow=20000; + q.NativeCommit(&f,clockNow);q.NativeProjectile(&gun,&shots[0]);q.NativeProjectile(&gun,&shots[0]);assert(q.m_BadProjectile&&q.m_Events==1); + for(int fault=0;fault<4;fault++){ + Battery f;Probe q;q.m_Battery=&f;q.m_Gun=&gun;q.m_Events=8;q.m_Commits=8;f.OrderShots=8; + std::string reason="native artillery activity COMPLETED (shot count is separate)"; + if(fault==0){q.m_Events=4;q.m_Commits=4;f.OrderShots=4;} + if(fault==1)reason="native aim or firing authorization rejected"; + if(fault==2)f.stopped=true; + if(fault==3)q.m_CommitPending=true; + q.NativeClosing(&f,reason,"delivered target report expired");assert(q.m_BadProjectile); + } + Battery stopped;Probe quiet;quiet.m_Battery=&stopped;quiet.m_Gun=&gun;quiet.m_Stopped=true; + quiet.NativeCommit(&stopped,20000);quiet.NativeProjectile(&gun,&shots[0]);quiet.NativeClosing(&stopped,"HQ stopped",""); + assert(!quiet.m_BadProjectile&&quiet.m_Events==0&&quiet.m_Commits==0&&!quiet.m_ClosureSeen); +} +''') +# Native hooks must count only real events and retain the existing superclass behavior. +s=p.read_text() +assert s.startswith('#ifdef WORKBENCH') and 'outcome == "mortar-salvo"' in s +assert 'super.OnWeaponFired(effectEntity, muzzle, projectileEntity);' in s +assert 'super.ReserveShellAirspace(now);' in s and 'super.Cancel(reason);' in s +assert 'm_StopUntil = now + 25000' in s +assert 'm_Battery.CanRequest(m_Delivered, now)' in s +assert 'm_Battery.Order(' not in s and 'm_Battery.BeginRequest(' not in s +assert 'm_Battery.Stop();' in body(p,'void Stop(') +print('PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events') diff --git a/tests/test_native_package.py b/tests/test_native_package.py new file mode 100644 index 0000000..e3c7555 --- /dev/null +++ b/tests/test_native_package.py @@ -0,0 +1,392 @@ +"""Offline packaging orchestration tests. Native child/audio are mocked, never launched.""" +import argparse +import hashlib +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile +import unittest +from unittest.mock import Mock, patch + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT/'tools')) +import native_package as n + + +class NativePackageTests(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory(prefix='erri-package-test-') + self.addCleanup(self.temp.cleanup) + self.home = Path(self.temp.name) + self.source = self.home/'original' + shutil.copytree(ROOT/'addons', self.source/'addons') + (self.source/'docs').mkdir() + for name in ('addons.json', 'vanilla-resources.json', 'acceptance.json'): + shutil.copy2(ROOT/'docs'/name, self.source/'docs'/name) + self.session = self.home/'session' + self.compat = self.home/'compat' + (self.compat/'pfx').mkdir(parents=True) + (self.compat/'pfx/system.reg').write_text('test only') + self.steam = self.home/'steam' + command = n.command_for(self.steam, self.session, 'core') + i = command.index('--') + for path in (Path(command[i+1]), Path(command[i+3]), self.steam/'steamapps/common/Arma Reforger/addons/data/ArmaReforger.gproj'): + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text('synthetic installed-file double; never executed') + + def test_closure_order(self): + self.assertEqual(n.project_order('core'), ['core']) + self.assertEqual(n.project_order('ai'), ['core', 'ai']) + self.assertEqual(n.project_order('chat'), ['core', 'ai', 'intel', 'map', 'chat']) + with self.assertRaises(ValueError): n.project_order('original') + + def test_supported_command_is_private_and_never_publishes_or_plays(self): + command = n.command_for(self.steam, self.session, 'core') + self.assertIn('-packAddon', command) + self.assertIn('-wbModule=ResourceManager', command) + self.assertIn('-noBackend', command) + self.assertIn('-disableCrashReporter', command) + self.assertEqual(command[command.index('--backend')+1], 'headless') + for flag in ('-gproj', '-addonsDir', '-profile', '-packAddonDir', '-packAddonCacheDir'): + self.assertTrue(command[command.index(flag)+1].startswith('Z:'+str(self.session))) + for flag in ('-publishAddon', '-wbSilent', '-plugin', '-errPlay', '-load', '-exitAfter'): + self.assertNotIn(flag, command) + + def test_copy_validated_payload_and_detect_changed_authored_bits(self): + before = n.inventory(self.source) + (self.source/'addons/core/resourceDatabase.rdb').write_text('generated') + authored = n.copy_payload(self.source, self.session) + self.assertEqual(authored, before) + self.assertFalse((self.session/'source/addons/core/resourceDatabase.rdb').exists()) + self.assertFalse((self.session/'source/docs').exists()) + self.assertTrue(n.copied_authored_unchanged(self.session/'source', authored)) + # Generated native cache changes do not excuse authored changes. + (self.session/'source/addons/core/resourceDatabase.rdb').write_text('new native cache') + self.assertTrue(n.copied_authored_unchanged(self.session/'source', authored)) + name = next(iter(authored)) + (self.session/'source'/name).write_text('changed') + self.assertFalse(n.copied_authored_unchanged(self.session/'source', authored)) + self.assertEqual(n.inventory(self.source), before) + + def test_invalid_source_refused_before_session_creation(self): + path = self.source/'addons/core/addon.gproj' + path.write_text(path.read_text().replace('ERR_Core', 'Original')) + with self.assertRaises(ValueError): n.copy_payload(self.source, self.session) + self.assertFalse(self.session.exists()) + + def test_session_never_reused_or_outside_tmp(self): + fresh = Path('/tmp')/('erri-fresh-'+self.home.name) + n.validate_session(self.source, self.steam, self.compat, fresh) + self.session.mkdir() + with self.assertRaises(ValueError): n.validate_session(self.source, self.steam, self.compat, self.session) + with self.assertRaises(ValueError): n.validate_session(self.source, self.steam, self.compat, Path('/home/not-allowed')) + with self.assertRaises(FileExistsError): n.copy_payload(self.source, self.session) + link = self.home/'link' + link.symlink_to(self.session, target_is_directory=True) + with self.assertRaises(ValueError): n.validate_session(self.source, self.steam, self.compat, link) + + def test_raw_native_failures_never_become_success(self): + path = self.home/'console.log' + for content in ['SCRIPT (E): compile failed', 'ENGINE (F): crash', 'Virtual Machine Exception', 'Packing failed', 'Can\'t compile "Game"']: + path.write_text(content) + logs, errors = n.log_evidence([path]) + self.assertTrue(errors, content) + self.assertFalse(n.candidate_ok(0, 'process-exited', True, True, logs, errors, {'data.pak': {'bytes': 50}})) + path = self.home/'error.log' + path.write_text('unexpected failure without a category prefix') + self.assertTrue(n.log_evidence([path])[1]) + + def test_success_requires_clean_exit_logs_cleanup_hashes_and_real_nonempty_file(self): + folder = self.home/'packages'; folder.mkdir() + self.assertFalse(n.candidate_ok(0, 'process-exited', True, True, ['log'], [], n.package_inventory(folder))) + (folder/'data.pak').write_bytes(b'') + self.assertFalse(n.candidate_ok(0, 'process-exited', True, True, ['log'], [], n.package_inventory(folder))) + (folder/'data.pak').write_bytes(b'SYNTHETIC TEST PACKAGE BYTES, NOT NATIVE') + packages = n.package_inventory(folder) + self.assertTrue(n.candidate_ok(0, 'process-exited', True, True, ['log'], [], packages)) + for args in [(1,'process-exited',True,True,['log']), (0,'timeout',True,True,['log']), + (0,'process-exited',False,True,['log']), (0,'process-exited',True,False,['log']), + (0,'process-exited',True,True,[])]: + self.assertFalse(n.candidate_ok(*args, [], packages)) + self.assertEqual(packages['data.pak']['sha256'], hashlib.sha256((folder/'data.pak').read_bytes()).hexdigest()) + (folder/'external.pak').symlink_to(self.source/'addons/core/addon.gproj') + with self.assertRaises(ValueError): n.package_inventory(folder) + + def native_double(self, authored, timeout=30, mutate=False, failure=None, native_code=0, write_status=True, launcher_code=0): + child = Mock(); child.poll.return_value = launcher_code + def spawn(*args, **kwargs): + self.assertNotIn('WINEPREFIX', kwargs['env']) + self.assertNotIn('STEAM_COMPAT_DATA_PATH', kwargs['env']) + # Explicitly fake outputs: never evidence for a real native build. + folder = self.session/'profiles/core/logs/logs_test'; folder.mkdir(parents=True) + (folder/'console.log').write_text('SYNTHETIC NATIVE PROCESS DOUBLE\n'+(failure or '')) + (self.session/'packages/core/data.pak').write_bytes(b'SYNTHETIC TEST ONLY') + if write_status: + native_command = n.command_for(self.steam, self.session, 'core') + native_command = native_command[native_command.index('--')+1:] + (self.session/'evidence/core/native-exit.json').write_text(json.dumps({'command': native_command, 'exit_code': native_code})) + if mutate: + (self.session/'source'/next(iter(authored))).write_text('changed authored byte') + return child + def check_output(args, **kwargs): + return '[]' if 'sink-inputs' in args else '987' + with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle'), \ + patch.object(n, 'cleanup') as cleanup, patch.object(n.subprocess, 'Popen', side_effect=spawn), \ + patch.object(n.subprocess, 'check_output', side_effect=check_output), patch.object(n.subprocess, 'run') as process: + result = n.run_project(self.steam, self.compat, self.session, 'core', timeout, authored) + cleanup.assert_called_once() + self.assertTrue(any(call.args[0] == ['pactl', 'unload-module', '987'] for call in process.call_args_list)) + return result + + def test_mock_process_candidate_keeps_all_qualification_pending(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored) + self.assertTrue(report['candidate_created']) + for key in ('release_qualified', 'package_contents_verified', 'native_consumption_verified', 'tool_completion_semantics_verified'): + self.assertFalse(report[key]) + self.assertIn('sha256', next(iter(report['logs'].values()))) + self.assertTrue((self.session/'evidence/core/launch.json').is_file()) + + def test_mock_process_authored_mutation_fails_after_clean_exit(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, mutate=True) + self.assertFalse(report['candidate_created']) + self.assertFalse(report['copied_authored_unchanged']) + + def test_mock_process_timeout_cleans_only_owned_child_and_cannot_qualify(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, timeout=0) + self.assertEqual(report['result'], 'timeout') + self.assertFalse(report['candidate_created']) + self.assertIsNone(report['launcher_exit_code']) + + def test_mock_process_native_error_with_output_still_fails(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, failure='ENGINE (E): synthetic failure') + self.assertFalse(report['candidate_created']) + self.assertTrue(report['errors']) + + + def test_orphaned_prefix_after_launcher_exit_cannot_qualify(self): + import itertools + authored = n.copy_payload(self.source, self.session) + child = Mock(); child.poll.return_value = 0 + probes = 0 + def idle(*args): + nonlocal probes + probes += 1 + if probes > 2: raise ValueError('synthetic owned prefix child remains') + with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle', side_effect=idle), \ + patch.object(n, 'cleanup') as cleanup, patch.object(n.subprocess, 'Popen', return_value=child), \ + patch.object(n.subprocess, 'check_output', side_effect=lambda args, **kw: '[]' if 'sink-inputs' in args else '987'), \ + patch.object(n.subprocess, 'run'), patch.object(n.time, 'monotonic', side_effect=itertools.count(0, 6)), patch.object(n.time, 'sleep'): + report = n.run_project(self.steam, self.compat, self.session, 'core', 100, authored) + cleanup.assert_called_once() + self.assertEqual(report['result'], 'native-or-launcher-exited-prefix-active') + self.assertFalse(report['candidate_created']) + + def test_audio_changes_only_fresh_application_or_owned_prefix(self): + streams = [{'index': 1, 'properties': {'application.id': 'own'}}, + {'index': 2, 'properties': {'application.id': 'user-music'}}] + with patch.object(n.subprocess, 'check_output', return_value=json.dumps(streams)), patch.object(n.subprocess, 'run') as run: + n.quiet_streams('own', 'private-sink', self.compat) + self.assertEqual([call.args[0] for call in run.call_args_list], + [['pactl', 'move-sink-input', '1', 'private-sink'], ['pactl', 'set-sink-input-mute', '1', '1']]) + + def test_orchestration_stops_after_first_failed_dependency_without_launch(self): + import uuid + import contextlib + import io + fresh = Path('/tmp')/('erri-package-orchestration-'+uuid.uuid4().hex) + self.addCleanup(lambda: shutil.rmtree(fresh, ignore_errors=True)) + args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh, project='chat', timeout=30) + with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle'), patch.object(n.shutil, 'which', return_value='/mock'), \ + patch.object(n, 'run_project', return_value={'candidate_created':False}) as run, patch.object(n.subprocess, 'Popen') as child, contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(n.run(args, self.source), 1) + run.assert_called_once() + self.assertEqual(run.call_args.args[3], 'core') + child.assert_not_called() + summary = json.loads((fresh/'package-report.json').read_text()) + self.assertFalse(summary['all_candidates_created']) + self.assertFalse(summary['published']) + self.assertTrue(summary['source_repository_unchanged']) + + def test_same_prefix_lock_refuses_without_creating_session(self): + import fcntl + import uuid + fresh = Path('/tmp')/('erri-package-lock-'+uuid.uuid4().hex) + args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh, project='core', timeout=30) + with (self.compat/'.erri-workbench.lock').open('a') as lock: + fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB) + with patch.object(n, 'assert_no_game'), patch.object(n.shutil, 'which', return_value='/mock'), patch.object(n, 'copy_payload') as copy: + with self.assertRaisesRegex(ValueError, 'owns the disposable prefix'): n.run(args, self.source) + copy.assert_not_called() + self.assertFalse(fresh.exists()) + + def orchestration_double(self, reports, continuation=True, idle=None): + import contextlib + import io + import uuid + fresh = Path('/tmp')/('erri-package-orchestration-'+uuid.uuid4().hex) + self.addCleanup(lambda: shutil.rmtree(fresh, ignore_errors=True)) + args = argparse.Namespace(steam=self.steam, compat=self.compat, session=fresh, + project='chat', timeout=30, continue_on_failure=continuation) + with patch.object(n, 'assert_no_game'), patch.object(n, 'assert_prefix_idle', side_effect=idle), \ + patch.object(n.shutil, 'which', return_value='/mock'), \ + patch.object(n, 'run_project', side_effect=reports) as run, \ + patch.object(n.subprocess, 'Popen') as child, contextlib.redirect_stdout(io.StringIO()): + code = n.run(args, self.source) + child.assert_not_called() + return code, json.loads((fresh/'package-report.json').read_text()), run.call_args_list + + @staticmethod + def completed_report(success=False, **changes): + report = {'candidate_created': success, 'cleanup_confirmed': True, + 'runner_error': None, 'copied_authored_unchanged': True, + 'completion_observed': 'native-child-exited', + 'errors': [] if success else ['RESOURCES (E): synthetic shutdown leak']} + report.update(changes) + return report + + def test_diagnostic_continuation_runs_full_closure_keeps_failures_and_nonzero(self): + reports = [self.completed_report(success=i not in (0, 2)) for i in range(5)] + code, summary, calls = self.orchestration_double(reports) + self.assertEqual([call.args[3] for call in calls], ['core', 'ai', 'intel', 'map', 'chat']) + self.assertEqual(len({str(call.args[2]) for call in calls}), 1) # one private copy/session + self.assertEqual(summary['projects'], reports) # raw failures retained + self.assertEqual(code, 1) + self.assertFalse(summary['all_candidates_created']) + self.assertFalse(summary['release_qualified']) + self.assertEqual(summary['skipped_projects'], []) + self.assertIsNone(summary['stopped_reason']) + + def test_default_stops_even_after_safely_completed_validation_failure(self): + code, summary, calls = self.orchestration_double([self.completed_report()], False) + self.assertEqual(code, 1) + self.assertEqual(len(calls), 1) + self.assertFalse(summary['continue_on_failure']) + self.assertEqual(summary['skipped_projects'], ['ai', 'intel', 'map', 'chat']) + self.assertIn('continuation not requested', summary['stopped_reason']) + + def test_continuation_cannot_override_cleanup_runner_source_or_completion_failure(self): + for change in [{'cleanup_confirmed': False}, {'runner_error': 'synthetic failure'}, + {'copied_authored_unchanged': False}, {'completion_observed': 'timeout'}, + {'completion_observed': 'interrupted'}, + {'completion_observed': 'native-or-launcher-exited-prefix-active'}]: + with self.subTest(change=change): + code, summary, calls = self.orchestration_double([self.completed_report(**change)]) + self.assertEqual(code, 1) + self.assertEqual(len(calls), 1) + self.assertTrue(summary['stopped_reason']) + self.assertEqual(len(summary['skipped_projects']), 4) + + def test_prefix_becoming_busy_between_addons_stops_before_next_launch(self): + # First probe owns idle prefix before copy; second is between addons. + code, summary, calls = self.orchestration_double( + [self.completed_report()], idle=[None, ValueError('synthetic prefix still active')]) + self.assertEqual(code, 1) + self.assertEqual(len(calls), 1) + self.assertIn('prefix not verifiably idle', summary['stopped_reason']) + + def test_all_clean_candidates_still_unqualified_and_flag_defaults_false(self): + code, summary, calls = self.orchestration_double([self.completed_report(True) for _ in range(5)]) + self.assertEqual(code, 0) + self.assertTrue(summary['all_candidates_created']) + self.assertFalse(summary['release_qualified']) + with patch.object(n, 'run', return_value=1) as run: + self.assertEqual(n.main(['--session', '/tmp/not-launched', '--compat', str(self.compat)]), 1) + self.assertFalse(run.call_args.args[0].continue_on_failure) + n.main(['--session', '/tmp/not-launched', '--compat', str(self.compat), '--continue-on-failure']) + self.assertTrue(run.call_args.args[0].continue_on_failure) + + + def test_prefix_symlink_and_traversal_refused(self): + fresh = Path('/tmp')/('erri-unused-'+self.home.name) + shutil.rmtree(self.compat/'pfx') + outside = self.home/'installed-prefix'; outside.mkdir() + (outside/'system.reg').write_text('must not mutate') + (self.compat/'pfx').symlink_to(outside, target_is_directory=True) + with self.assertRaisesRegex(ValueError, 'real pfx'): + n.validate_session(self.source, self.steam, self.compat, fresh) + (self.compat/'pfx').unlink(); (self.compat/'pfx').mkdir() + (self.compat/'pfx/system.reg').write_text('private') + (self.compat/'.erri-workbench.lock').symlink_to(outside/'system.reg') + with self.assertRaisesRegex(ValueError, 'lock must not'): + n.validate_session(self.source, self.steam, self.compat, fresh) + (self.compat/'.erri-workbench.lock').unlink() + with self.assertRaises(ValueError): + n.validate_session(self.source, self.steam, self.compat, self.home/'..'/fresh.name) + + def test_added_authored_file_is_not_mistaken_for_generated_cache(self): + authored = n.copy_payload(self.source, self.session) + (self.session/'source/addons/core/Scripts/Game/ERR/Injected.c').write_text('// synthetic new authored content') + self.assertFalse(n.copied_authored_unchanged(self.session/'source', authored)) + + def test_native_failure_not_masked_by_successful_gamescope_exit(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, native_code=7) + self.assertEqual(report['launcher_exit_code'], 0) + self.assertEqual(report['native_exit_code'], 7) + self.assertFalse(report['candidate_created']) + + def test_missing_direct_native_exit_cannot_qualify(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, write_status=False) + self.assertIsNone(report['native_exit_code']) + self.assertFalse(report['candidate_created']) + + def test_private_recorder_captures_actual_subprocess_status_without_shell(self): + script = self.home/'recorder.py'; script.write_text(n.CHILD_RECORDER) + output = self.home/'exit.json' + # Ordinary Python test child only. No Proton, Wine, game or engine. + command = [sys.executable, '-c', 'raise SystemExit(7)'] + environment = self.home/'native-env.json'; environment.write_text('{}') + completed = subprocess.run([sys.executable, str(script), str(output), str(environment), *command]) + self.assertEqual(completed.returncode, 7) + self.assertEqual(n.child_status(output, command), 7) + self.assertIsNone(n.child_status(output, ['different-command'])) + output.write_text('[]'); self.assertIsNone(n.child_status(output, command)) + output.write_text('{bad'); self.assertIsNone(n.child_status(output, command)) + + + def test_slow_observation_cannot_turn_expired_attempt_into_success(self): + authored = n.copy_payload(self.source, self.session) + clock = [0] + def slow_audio(*args): clock[0] = 31 + with patch.object(n.time, 'monotonic', side_effect=lambda: clock[0]), patch.object(n, 'quiet_streams', side_effect=slow_audio): + report = self.native_double(authored, timeout=30) + self.assertEqual(report['result'], 'timeout') + self.assertFalse(report['candidate_created']) + + + def test_naturally_exited_native_child_can_close_lingering_owned_display(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, launcher_code=None) + self.assertEqual(report['native_exit_code'], 0) + self.assertIsNone(report['launcher_exit_code']) + self.assertTrue(report['display_cleanup_after_native_exit']) + self.assertEqual(report['completion_observed'], 'native-child-exited') + self.assertTrue(report['candidate_created']) + self.assertFalse(report['release_qualified']) + env = json.loads((self.session/'evidence/core/native-prefix-environment.json').read_text()) + self.assertEqual(env['WINEPREFIX'], str(self.compat/'pfx')) + + def test_native_child_completion_does_not_hide_shutdown_errors(self): + authored = n.copy_payload(self.source, self.session) + report = self.native_double(authored, launcher_code=None, failure='RESOURCES (E): synthetic Resource leaks') + self.assertTrue(report['display_cleanup_after_native_exit']) + self.assertFalse(report['candidate_created']) + self.assertTrue(report['errors']) + + def test_wb_silent_is_explicit_and_preserves_packaging_and_error_policy(self): + ordinary = n.command_for(self.steam, self.session, 'core') + silent = n.command_for(self.steam, self.session, 'core', True) + self.assertEqual(silent, ordinary+['-wbSilent']) + self.assertIn('-packAddon', silent) + self.assertIn('-noBackend', silent) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_packed_chat_game.py b/tests/test_packed_chat_game.py new file mode 100644 index 0000000..d278951 --- /dev/null +++ b/tests/test_packed_chat_game.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python3 +"""Synthetic packed Chat closure evidence only; never launches an engine.""" +from pathlib import Path +import contextlib +import hashlib +import io +import json +import sys +import tempfile +from types import SimpleNamespace +import unittest +from unittest.mock import patch +sys.path.insert(0, str(Path(__file__).resolve().parents[1]/'tools')) +import headless_game as runner + + +class PackedChatTests(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory(prefix='erri-packed-chat-test-') + self.addCleanup(self.temp.cleanup) + self.root = Path(self.temp.name) + self.candidate = self.root/'packages'; self.candidate.mkdir() + for key, (name, guid, dependencies) in runner.PACKED_PROJECTS.items(): + folder = self.candidate/key; folder.mkdir() + deps = [runner.PACKED_BASE]+[runner.PACKED_PROJECTS[d][1] for d in dependencies] + project = f'GameProject {{ ID "{name}" GUID "{guid}" TITLE "Synthetic {key}" Dependencies {{ '+ ' '.join('"'+d+'"' for d in deps)+' } }\n' + (folder/'addon.gproj').write_text(project) + (folder/'data.pak').write_bytes(b'SYNTHETIC NOT NATIVE '+key.encode()) + (folder/'resourceDatabase.rdb').write_bytes(b'SYNTHETIC DATABASE '+key.encode()) + self.session_temp = tempfile.TemporaryDirectory(prefix='erri-packed-chat-session-') + self.addCleanup(self.session_temp.cleanup) + self.session = Path(self.session_temp.name); self.session.rmdir() + self.args = SimpleNamespace(packed_core=None, packed_addons=self.candidate, packed_session=self.session, + project='chat', profile=Path('/tmp/erri-game-profile'), settle=15) + self.packed = runner.packed_request(self.args) + self.steam = Path('/Steam'); self.profile = self.session/'profile' + + def content(self): + base = self.packed['input'] + text = f"""00 ENGINE : Addon dirs: +00 ENGINE : dir: '{base}' +00 ENGINE : dir: './addons' +00 ENGINE : dir: '{self.profile}/addons' +00 ENGINE : Loaded addons: +00 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +00 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +""" + for key, (_, guid, _) in runner.PACKED_PROJECTS.items(): + text += f"00 ENGINE : gproj: '{base/key}/addon.gproj' guid: '{guid}'\n" + text += "00 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core\n" + text += "00 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger\n" + for i, (key, (name, _, _)) in enumerate(runner.PACKED_PROJECTS.items()): + text += f"00 ENGINE : FileSystem: Adding package '{base/key}/' (pak count: 1) to filesystem under name {name}\n" + text += f"00 RESOURCES : ResourceDB: loading cache (id={i} name={name} path={base/key}/resourceDatabase.rdb)\n" + return text+'''00 SCRIPT : Module: GameLib; defines: "PLATFORM_WINDOWS" +00 SCRIPT : Module: Game; defines: "PLATFORM_WINDOWS" +00 SCRIPT : ERR ORDINARY: header verified project=chat systems=MissionSystems +00 SCRIPT : ERR ORDINARY: local participant verified project=chat phase=prison +00 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +''' + + def evidence(self, content=None): + return runner.packed_evidence(self.content() if content is None else content, self.packed, self.steam, self.profile) + + def test_exact_fifteen_artifacts_and_all_addon_identities_dependencies(self): + manifest = runner.packed_payload_inventory(self.candidate, 'chat') + self.assertEqual(set(manifest), {key+'/'+name for key in runner.PACKED_PROJECTS for name in runner.PACKED_FILES}) + for key in runner.PACKED_PROJECTS: + p = self.candidate/key/'addon.gproj'; original = p.read_text() + for bad in (original.replace('GUID "', 'GUID "FFFF'), original.replace('ID "ERR_', 'ID "Other_'), + original.replace('Dependencies {', 'Dependencies { "58D0FB3206B6F859"'), + original.replace('"58D0FB3206B6F859"', '"1111111111111111"')): + p.write_text(bad) + with self.subTest(key=key), self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + p.write_text(original) + chat = self.candidate/'chat/addon.gproj'; chat.write_text(chat.read_text().replace('"5192138CB9D5B911"', '')) + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + + def test_exact_folder_set_symlinks_traversal_extra_missing_empty_refused(self): + for folder in ('extra', 'Scripts'): + (self.candidate/folder).mkdir() + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + (self.candidate/folder).rmdir() + original = self.candidate/'map'; original.rename(self.root/'map') + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + original.symlink_to(self.root/'map', target_is_directory=True) + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + original.unlink(); (self.root/'map').rename(original) + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate/'..'/'packages', 'chat') + for key in runner.PACKED_PROJECTS: + for name in runner.PACKED_FILES: + p = self.candidate/key/name; original = p.read_bytes(); p.write_bytes(b'') + with self.subTest(key=key, name=name), self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + p.unlink(); p.symlink_to(self.root/'missing') + with self.assertRaises(ValueError): runner.packed_payload_inventory(self.candidate, 'chat') + p.unlink(); p.write_bytes(original) + + def test_request_requires_mutual_exclusion_chat_session_and_fixed_settle(self): + for key, value in [('packed_core', self.candidate/'core'), ('project', 'core'), ('packed_addons', None), + ('packed_session', None), ('settle', 14), ('profile', Path('/different')), + ('packed_session', Path('/tmp/erri-packed-core-wrong')), + ('packed_session', self.root/'erri-packed-chat-nested')]: + args = SimpleNamespace(**vars(self.args)); setattr(args, key, value) + with self.subTest(key=key), self.assertRaises(ValueError): runner.packed_request(args) + self.session.mkdir() + with self.assertRaises(ValueError): runner.packed_request(self.args) + + def test_private_copy_v2_provenance_and_each_of_fifteen_artifacts_sealed(self): + runner.prepare_packed(self.packed) + raw = runner.packed_snapshot(self.packed, ['synthetic'], self.profile); metadata = json.loads(raw) + self.assertEqual((metadata['schema_version'], metadata['kind'], metadata['project']), (2, 'packed-chat-runtime-input', 'chat')) + self.assertEqual(metadata['addon_order'], ['core', 'ai', 'intel', 'map', 'chat']) + self.assertEqual(metadata['artifacts'], self.packed['manifest']) + for name in metadata['artifacts']: + source = self.candidate/name; target = self.packed['input']/name + self.assertNotEqual(source.stat().st_ino, target.stat().st_ino) + self.assertEqual(hashlib.sha256(target.read_bytes()).hexdigest(), metadata['artifacts'][name]['sha256']) + original = target.read_bytes(); target.write_bytes(b'changed') + self.assertFalse(runner.packed_seal(self.packed, raw, None)['packed_inputs_unchanged_after_run']) + target.write_bytes(original) + self.assertTrue(runner.packed_seal(self.packed, raw, None)['packed_inputs_unchanged_after_run']) + (self.candidate/'intel/resourceDatabase.rdb').unlink() + self.assertFalse(runner.packed_seal(self.packed, raw, None)['packed_inputs_unchanged_after_run']) + + def test_candidate_changes_before_copy_and_before_launch_refused(self): + p = self.candidate/'ai/data.pak'; original = p.read_bytes(); p.write_bytes(b'changed') + with self.assertRaises(ValueError): runner.prepare_packed(self.packed) + p.write_bytes(original) + # Failed prepare owns its session; it is deliberately not reusable. + self.assertTrue(self.session.exists()) + with self.assertRaises(FileExistsError): runner.prepare_packed(self.packed) + + def test_command_selects_chat_from_private_closure_never_loose_source(self): + command = runner.command_for(Path('/forbidden-source'), self.steam, Path('/compat'), self.profile, 'chat', self.packed) + self.assertEqual(command[command.index('-addonsDir')+1], 'Z:'+str(self.packed['input'])) + self.assertEqual(command[command.index('-addons')+1], runner.PACKED_PROJECTS['chat'][1]) + self.assertEqual(command[command.index('-errOrdinaryScenario')+1], 'chat') + self.assertFalse(any('/forbidden-source' in arg or str(self.candidate) in arg for arg in command)) + with self.assertRaises(ValueError): runner.command_for(Path('/unused'), self.steam, Path('/compat'), self.profile, 'core', self.packed) + + def test_exact_seven_loaded_addons_and_five_mounts_databases_required(self): + self.assertTrue(self.evidence()['ready']) + self.assertFalse(self.evidence()['release_qualified']) + self.assertFalse(self.evidence()['build_qualified']) + source = self.content() + for key, (name, guid, _) in runner.PACKED_PROJECTS.items(): + for fragment in (f"gproj: '{self.packed['input']/key}/addon.gproj'", f'to filesystem under name {name}', f'name={name} path='): + broken = '\n'.join(line for line in source.splitlines() if fragment not in line)+'\n' + with self.subTest(key=key, fragment=fragment): self.assertFalse(self.evidence(broken)['ready']) + redirected = source.replace(str(self.packed['input']/key), '/foreign/'+key) + self.assertTrue(self.evidence(redirected)['failed']) + self.assertTrue(self.evidence(source+f"00 ENGINE : FileSystem: Adding relative directory '/loose/{key}' to filesystem under name {name}\n")['failed']) + self.assertTrue(self.evidence(source.replace(f'name={name} path=', f'name=ERR_Foreign path='))['failed']) + self.assertTrue(self.evidence(source.replace('(pak count: 1)', '(pak count: 2)'))['failed']) + self.assertFalse(self.evidence(source.replace('Loaded addons:', 'Available addons:'))['ready']) + self.assertFalse(self.evidence(source.replace('project=chat', 'project=core'))['ready']) + + def test_foreign_duplicate_errors_and_workbench_never_masked_by_later_good_block(self): + source = self.content(); guid = runner.PACKED_PROJECTS['ai'][1] + entry = next(line for line in source.splitlines() if "guid: '"+guid+"'" in line)+'\n' + for bad in (source.replace(entry, entry+entry), source.replace(entry, entry.replace(guid, '1111111111111111')), + source+'00 SCRIPT (E): synthetic error\n', source+'ERR SMOKE PASS: forbidden fixture\n', + source.replace('PLATFORM_WINDOWS', 'PLATFORM_WINDOWS,WORKBENCH')): + with self.subTest(bad=bad): + self.assertTrue(self.evidence(bad+source)['failed']) + self.assertFalse(self.evidence(bad+source)['ready']) + + def test_mocked_failed_launch_keeps_chat_artifacts_not_source_provenance(self): + steam = self.root/'steam'; compat = self.root/'compat' + (compat/'pfx').mkdir(parents=True); (compat/'pfx/system.reg').write_text('synthetic') + for relative in ['steamapps/common/Proton - Experimental/proton', 'steamapps/common/Arma Reforger/ArmaReforgerSteam.exe']: + p = steam/relative; p.parent.mkdir(parents=True, exist_ok=True); p.write_bytes(b'not executed') + args = SimpleNamespace(**vars(self.args), steam=steam, compat=compat, timeout=60, failure_grace=0) + with patch.object(runner, 'assert_no_game'), patch.object(runner, 'assert_prefix_idle'), patch.object(runner.shutil, 'which', return_value='/mock'), patch.object(runner.subprocess, 'check_output', return_value='11'), patch.object(runner.subprocess, 'run'), patch.object(runner.subprocess, 'Popen', side_effect=OSError('synthetic failed launch')), patch.object(runner, 'snapshot', side_effect=AssertionError('source snapshot forbidden')), patch.object(runner, 'seal_run', side_effect=AssertionError('source seal forbidden')), contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(runner.run(args), 1) + result = json.loads((self.session/'packed-runner.json').read_text()) + self.assertEqual(result['project'], 'chat'); self.assertEqual(result['result'], 'runner-failed') + self.assertFalse(result['packed_consumption_verified']); self.assertNotIn('launch_source_sha256', result) + metadata = json.loads((self.session/runner.PACKED_MANIFEST).read_text()) + self.assertEqual(metadata['schema_version'], 2); self.assertEqual(len(metadata['artifacts']), 15) + + +if __name__ == '__main__': unittest.main() diff --git a/tests/test_packed_core_game.py b/tests/test_packed_core_game.py new file mode 100644 index 0000000..1663673 --- /dev/null +++ b/tests/test_packed_core_game.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python3 +"""Packed input, path and provenance regression; never launches a native process.""" +from pathlib import Path +import contextlib +import hashlib +import io +import json +import shutil +import sys +import tempfile +from types import SimpleNamespace +import unittest +from unittest.mock import patch +sys.path.insert(0, str(Path(__file__).resolve().parents[1]/'tools')) +import headless_game as runner + +PROJECT = '''GameProject { + ID "ERR_Core" + GUID "2528466DE220D91C" + TITLE "Escapists Rereintroduced - Core" + Dependencies { "58D0FB3206B6F859" } +} +''' + +class PackedCoreTests(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory(prefix='erri-packed-core-test-') + self.root = Path(self.temp.name) + self.candidate = self.root/'candidate';self.candidate.mkdir() + for name,data in {'addon.gproj':PROJECT.encode(),'data.pak':b'fixture-package-bytes','resourceDatabase.rdb':b'fixture-database'}.items(): + (self.candidate/name).write_bytes(data) + self.session_temp = tempfile.TemporaryDirectory(prefix='erri-packed-core-session-') + self.session = Path(self.session_temp.name);self.session.rmdir() + self.args = SimpleNamespace(packed_core=self.candidate,packed_session=self.session,project='core',profile=Path('/tmp/erri-game-profile'),settle=15) + self.packed = runner.packed_request(self.args) + self.steam = Path('/Steam');self.profile=self.session/'profile' + def tearDown(self): + self.session_temp.cleanup();self.temp.cleanup() + def content(self): + core=self.packed['input'];game=self.steam/'steamapps/common/Arma Reforger' + return f'''00 ENGINE : Addon dirs: +00 ENGINE : dir: '{core.parent}' +00 ENGINE : dir: './addons' +00 ENGINE : dir: '{self.profile}/addons' +00 ENGINE : Loaded addons: +00 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +00 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +00 ENGINE : gproj: '{core}/addon.gproj' guid: '2528466DE220D91C' +00 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +00 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger +00 ENGINE : FileSystem: Adding package '{core}/' (pak count: 1) to filesystem under name ERR_Core +00 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path={core}/resourceDatabase.rdb) +00 SCRIPT : Module: GameLib; defines: "PLATFORM_WINDOWS" +00 SCRIPT : Module: Game; defines: "PLATFORM_WINDOWS" +00 SCRIPT : ERR ORDINARY: header verified project=core systems=MissionSystems +00 SCRIPT : ERR ORDINARY: local participant verified project=core phase=prison +00 SCRIPT : Rereintroduced [mission]: phase 0 -> 1 +''' + def evidence(self,content=None): + return runner.packed_evidence(self.content() if content is None else content,self.packed,self.steam,self.profile) + def test_exact_three_files_hash_pak_and_rdb(self): + inventory=runner.packed_inventory(self.candidate) + self.assertEqual(set(inventory),runner.PACKED_FILES) + self.assertEqual(inventory['data.pak']['sha256'],hashlib.sha256(b'fixture-package-bytes').hexdigest()) + before=inventory['resourceDatabase.rdb'];(self.candidate/'resourceDatabase.rdb').write_bytes(b'changed') + self.assertNotEqual(before,runner.packed_inventory(self.candidate)['resourceDatabase.rdb']) + def test_missing_extra_empty_and_symlink_refused(self): + for name in runner.PACKED_FILES: + with self.subTest(name=name): + p=self.candidate/name;data=p.read_bytes();p.unlink() + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate) + p.write_bytes(b'') + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate) + p.unlink();p.symlink_to(self.root/'absent') + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate) + p.unlink();p.write_bytes(data) + extra=self.candidate/'Scripts';extra.mkdir() + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate) + def test_wrong_guid_dependency_and_project_identity_refused(self): + for bad in (PROJECT.replace('2528466DE220D91C','FA804F411BDDF2C6'),PROJECT.replace('58D0FB3206B6F859','5192138CB9D5B911'),PROJECT.replace('ERR_Core','ERR_Chat'),PROJECT.replace('Dependencies {','Dependencies { "5192138CB9D5B911"')): + (self.candidate/'addon.gproj').write_text(bad) + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate) + def test_candidate_symlink_or_alias_refused(self): + alias=self.root/'alias';alias.symlink_to(self.candidate,target_is_directory=True) + with self.assertRaises(ValueError):runner.packed_inventory(alias) + with self.assertRaises(ValueError):runner.packed_inventory(self.candidate/'..'/'candidate') + def test_request_requires_new_core_session_and_canonical_settle(self): + for key,value in [('project','chat'),('packed_core',None),('packed_session',None),('settle',5),('profile',Path('/other')),('packed_session',Path('/tmp/unsafe')),('packed_session',self.root/'erri-packed-core-nested')]: + args=SimpleNamespace(**vars(self.args));setattr(args,key,value) + with self.subTest(key=key,value=value),self.assertRaises(ValueError):runner.packed_request(args) + self.session.mkdir() + with self.assertRaises(ValueError):runner.packed_request(self.args) + def test_ordinary_request_untouched(self): + self.assertIsNone(runner.packed_request(SimpleNamespace(project='core'))) + def test_copy_is_exclusive_regular_independent_and_exact(self): + runner.prepare_packed(self.packed) + self.assertEqual(runner.packed_inventory(self.packed['input']),self.packed['manifest']) + for name in runner.PACKED_FILES: + self.assertNotEqual((self.candidate/name).stat().st_ino,(self.packed['input']/name).stat().st_ino) + with self.assertRaises(FileExistsError):runner.prepare_packed(self.packed) + def test_changed_candidate_before_copy_refused(self): + (self.candidate/'data.pak').write_bytes(b'new') + with self.assertRaisesRegex(ValueError,'changed'):runner.prepare_packed(self.packed) + def test_command_only_private_input_never_repository(self): + command=runner.command_for(Path('/never-loose-repo'),self.steam,Path('/compat'),self.profile,'core',self.packed) + self.assertEqual(command[command.index('-addonsDir')+1],'Z:'+str(self.packed['input'].parent)) + self.assertEqual(command[command.index('-addons')+1],runner.PACKED_GUID) + self.assertNotIn('-gproj',command);self.assertNotIn('-server',command) + self.assertFalse(any('/never-loose-repo' in part or str(self.candidate) in part for part in command)) + for flag in ('-noSplash','-noBackend','-noSound','-errOrdinaryScenario'):self.assertIn(flag,command) + def test_exact_native_paths_modules_and_readiness_required(self): + report=self.evidence();self.assertTrue(report['ready']);self.assertTrue(report['packed_only']);self.assertFalse(report['failed']) + self.assertFalse(report['build_qualified']);self.assertFalse(report['release_qualified']) + for missing in ('Loaded addons:','FileSystem: Adding package','ResourceDB: loading cache','Module: GameLib;','local participant verified','header verified'): + with self.subTest(missing=missing):self.assertFalse(self.evidence(self.content().replace(missing,'missing'))['ready']) + def test_available_addons_cannot_substitute_loaded_evidence(self): + self.assertFalse(self.evidence(self.content().replace('Loaded addons:','Available addons:'))['ready']) + def test_redirected_same_guid_foreign_duplicate_or_loose_mount_fails(self): + source=self.content();entry=f"00 ENGINE : gproj: '{self.packed['input']}/addon.gproj' guid: '2528466DE220D91C'\n" + faults=[source.replace(entry,entry.replace(str(self.packed['input']),'/loose/core')),source.replace(entry,entry+entry),source.replace(entry,entry+"00 ENGINE : gproj: '/foreign/addon.gproj' guid: 'invalid'\n"),source.replace(entry,entry+"00 ENGINE : gproj: '/foreign/addon.gproj' guid: '5192138CB9D5B911'\n"),source+"00 ENGINE : FileSystem: Adding relative directory '/loose/core' to filesystem under name ERR_Core\n",source.replace('(pak count: 1)','(pak count: 2)'),source+"00 ENGINE : dir: '/loose/addons'\n",source.replace(f'path={self.packed["input"]}/resourceDatabase.rdb','path=/foreign/resourceDatabase.rdb')] + for content in faults: + with self.subTest(content=content):self.assertTrue(self.evidence(content)['failed']);self.assertFalse(self.evidence(content)['ready']) + def test_one_wrong_loaded_block_cannot_be_hidden_by_later_good_block(self): + bad=self.content().replace("guid: '2528466DE220D91C'","guid: '5192138CB9D5B911'") + self.assertTrue(self.evidence(bad+self.content())['failed']) + def test_exact_native_profile_addons_alias_only(self): + path=str(self.profile/'addons') + good=self.content().replace("dir: '"+path+"'", "dir: '$profile:../addons/'") + self.assertTrue(self.evidence(good)['ready']) + for alias in ('$profile:../../addons/', '$profile:../addons/../evil', '$other:../addons/', '$profile:../addons', '$profile:../addons//', '$profile:../addons/../../source'): + bad=self.content().replace("dir: '"+path+"'", "dir: '"+alias+"'") + with self.subTest(alias=alias):self.assertTrue(self.evidence(bad)['failed']) + def test_native_windows_path_and_trailing_slash_normalize(self): + content=self.content().replace(str(self.packed['input']),'Z:'+str(self.packed['input']).replace('/','\\')) + self.assertTrue(self.evidence(content)['ready']) + def test_raw_errors_fixture_and_workbench_fail(self): + for content in (self.content()+'00 SCRIPT (E): example failure\n',self.content()+'ERR SMOKE PASS: unexpected\n',self.content().replace('PLATFORM_WINDOWS','PLATFORM_WINDOWS,WORKBENCH')): + self.assertTrue(self.evidence(content)['failed']) + def test_canonical_ready_settle_and_error_latch(self): + monitor=runner.StartupMonitor(0,180,15,0) + self.assertIsNone(monitor.observe(self.evidence(),1));self.assertIsNone(monitor.observe(self.evidence(),15)) + self.assertEqual(monitor.observe(self.evidence(),16),'game-started') + bad=self.evidence(self.content()+'00 SCRIPT (E): late\n') + self.assertEqual(monitor.observe(bad,16.1),'game-failed') + self.assertTrue(monitor.annotate(self.evidence())['failed']) + def test_packed_manifest_seals_exact_copy_candidate_and_console(self): + runner.prepare_packed(self.packed) + raw=runner.packed_snapshot(self.packed,['native-command'],self.profile) + metadata=json.loads(raw);self.assertEqual(metadata['artifacts'],self.packed['manifest']) + self.assertEqual(metadata['schema_version'],1);self.assertEqual(metadata['kind'],'packed-core-runtime-input') + self.assertNotIn('project',metadata);self.assertNotIn('addon_order',metadata) + self.assertEqual((self.session/runner.PACKED_MANIFEST).read_bytes(),raw) + log=self.session/'log';log.mkdir();(log/'console.log').write_text(self.content()) + result=runner.packed_seal(self.packed,raw,log) + self.assertTrue(result['packed_inputs_unchanged_after_run']);self.assertEqual(result['console_sha256'],hashlib.sha256((log/'console.log').read_bytes()).hexdigest()) + self.assertNotIn('source_provenance',result);self.assertNotIn('source_unchanged_after_run',result) + (self.packed['input']/'data.pak').write_bytes(b'changed') + self.assertFalse(runner.packed_seal(self.packed,raw,log)['packed_inputs_unchanged_after_run']) + def test_missing_input_after_run_is_failure_evidence_not_exception(self): + runner.prepare_packed(self.packed);raw=runner.packed_snapshot(self.packed,[],self.profile) + (self.candidate/'resourceDatabase.rdb').unlink();result=runner.packed_seal(self.packed,raw,None) + self.assertFalse(result['packed_inputs_unchanged_after_run']);self.assertIsNotNone(result['packed_input_error']) + def test_changed_inputs_before_launch_refuse(self): + runner.prepare_packed(self.packed);(self.candidate/'data.pak').write_bytes(b'changed') + with self.assertRaises(ValueError):runner.packed_snapshot(self.packed,[],self.profile) + + def test_failed_native_launch_retains_packed_manifest_without_source_snapshot(self): + steam=self.root/'steam';compat=self.root/'compat';(compat/'pfx').mkdir(parents=True);(compat/'pfx/system.reg').write_text('test') + for relative in ['steamapps/common/Proton - Experimental/proton','steamapps/common/Arma Reforger/ArmaReforgerSteam.exe']: + file=steam/relative;file.parent.mkdir(parents=True,exist_ok=True);file.write_bytes(b'not executed') + args=SimpleNamespace(**vars(self.args),steam=steam,compat=compat,timeout=60,failure_grace=0) + with patch.object(runner,'assert_no_game'),patch.object(runner,'assert_prefix_idle'),patch.object(runner.shutil,'which',return_value='/mock/tool'),patch.object(runner.subprocess,'check_output',return_value='11'),patch.object(runner.subprocess,'run'),patch.object(runner.subprocess,'Popen',side_effect=OSError('explicit test launch failure')),patch.object(runner,'snapshot',side_effect=AssertionError('loose source provenance forbidden')),patch.object(runner,'seal_run',side_effect=AssertionError('loose source seal forbidden')),contextlib.redirect_stdout(io.StringIO()): + self.assertEqual(runner.run(args),1) + report=json.loads((self.session/'packed-runner.json').read_text()) + self.assertEqual(report['result'],'runner-failed');self.assertTrue(report['packed_only']);self.assertFalse(report['packed_consumption_verified']) + self.assertNotIn('launch_source_sha256',report);self.assertTrue((self.session/runner.PACKED_MANIFEST).is_file()) + self.assertTrue((self.session/'profile/addons/ArmaReforger').is_symlink()) + self.assertEqual(runner.packed_inventory(self.packed['input']),self.packed['manifest']) + +if __name__=='__main__':unittest.main() diff --git a/tests/test_pak_inventory.py b/tests/test_pak_inventory.py new file mode 100644 index 0000000..444da88 --- /dev/null +++ b/tests/test_pak_inventory.py @@ -0,0 +1,153 @@ +"""Synthetic malformed PAK tests; no engine, extracted assets or native-build claims.""" +from dataclasses import replace +import hashlib +import io +import json +import os +from pathlib import Path +import struct +import sys +import tempfile +import unittest +import zlib +from contextlib import redirect_stdout +from unittest.mock import patch + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT/'tools')) +import pak_inventory as p + + +def chunk(tag, data): return tag+struct.pack('>I', len(data))+data + +def entry(name=b'file.txt', offset=56, stored=3, expanded=3, flags=b'\0\0', reserved=b'\0'*6, kind=1): + return bytes([kind, len(name)])+name+struct.pack('I',len(body))+body + + +class PakTests(unittest.TestCase): + def setUp(self): + self.temp=tempfile.TemporaryDirectory(prefix='erri-pak-test-') + self.addCleanup(self.temp.cleanup) + self.home=Path(self.temp.name);self.path=self.home/'synthetic.pak' + + def inspect(self, data, limits=p.Limits()): + self.path.write_bytes(data) + return p.inventory(self.path, limits) + + def refused(self, data, limits=p.Limits()): + with self.assertRaises((p.PakError,OSError)): self.inspect(data,limits) + + def test_raw_and_compressed_nested_hashes_without_extraction(self): + text=b'synthetic text '*200 + compressed=zlib.compress(text) + tree=b'\0\0'+struct.pack('=0 && command<=1 && command>=previous); previous=command;} } ''') + demand=body(SOURCE,'protected bool ComputePilotDemand(') + self.assertIn('ERR_PoweredFlightRules.CollectiveCommand(collective, m_ActionInputs, m_Stage)',demand) pilot=body(SOURCE,'void ApplyPilot(') - self.assertLess(pilot.index('ERR_PoweredFlightRules.NativeCollective(collective)'),pilot.index('m_Input.SetVehicleCollective(collective)')) + self.assertLess(pilot.index('ComputePilotDemand('),pilot.index('m_Input.SetVehicleCollective(collective)')) self.assertIn('m_Input.GetVehicleCollective() == 0',SOURCE.read_text()) + def test_actual_signed_collective_encoding_and_negative_gate(self): + methods='\n'.join(body(SOURCE,key).replace('Math.','Math::') for key in ['static float ClampInput(', 'static float NativeCollective(', 'static float CollectiveCommand(', 'static bool NegativeCollectiveObserved(']) + run('#include \n#include \n#include \nstruct Math {static float Clamp(float x,float a,float b){return std::clamp(x,a,b);} static float AbsFloat(float x){return std::abs(x);}};\n'+methods+""" +int main(){ + for(int stage=0;stage<11;stage++)for(float demand: {-2.f,-1.f,-.05f,0.f,.5f,2.f}){ + assert(CollectiveCommand(demand,false,stage)==NativeCollective(demand)); + if(stage>=4&&stage<=6)assert(CollectiveCommand(demand,true,stage)==ClampInput(demand)); + else if(stage==9)assert(CollectiveCommand(demand,true,stage)==.05f); + else if(stage==10)assert(CollectiveCommand(demand,true,stage)==-.05f); + else if(stage==7)assert(CollectiveCommand(demand,true,stage)==-1); + else assert(CollectiveCommand(demand,true,stage)==0); + } + assert(NegativeCollectiveObserved(-.05f,-.05f)); + for(float bad: {0.f,.05f,-1.f,NAN})assert(!NegativeCollectiveObserved(-.05f,bad)); + assert(!NegativeCollectiveObserved(0,0));assert(!NegativeCollectiveObserved(.05f,.05f)); + assert(!NegativeCollectiveObserved(NAN,-.05f)); +} +""") + source=SOURCE.read_text();tick=body(SOURCE,'int Tick(') + gate=tick.split('if (m_Stage == 10)',1)[1].split('if (m_Stage == 4 ||',1)[0] + for required in ('now >= m_StageDeadline', 'm_Controller.GetCollectiveMode() == CollectiveMode.Direct', '!m_Controller.GetAutohoverEnabled()', 'm_ControlUpdates >= m_NegativeGateUpdates + 3', 'now - m_NegativeSignalSince < 500'): + self.assertIn(required,gate) + self.assertLess(gate.index('negativeIndex >= 0'),gate.index('GetSignalValue(negativeIndex)')) + self.assertLess(gate.index('now - m_NegativeSignalSince < 500'),gate.index('m_SignedCollectiveProven = true')) + self.assertLess(gate.index('m_SignedCollectiveProven = true'),gate.index('Check(BeginAutohover()')) + self.assertEqual(source.count('m_SignedCollectiveProven = true'),1) + self.assertIn('m_ActionInputs && m_Stage >= 4 && m_Stage <= 6 && !m_SignedCollectiveProven',body(SOURCE,'protected bool ComputePilotDemand(')) + self.assertIn('m_NegativeSignalSince = -1;',tick.split('now - m_PreviousTick > 1500',1)[1].split('\n',1)[0]) + def test_heading_uses_explicit_yaw_not_xyz_pitch(self): + source=SOURCE.read_text() + self.assertNotIn('m_Aircraft.GetAngles()[0]',source) + self.assertIn('m_Heading = m_Aircraft.GetYawPitchRoll()[0]',source) + self.assertIn('float headingError = m_Heading - m_Aircraft.GetYawPitchRoll()[0]',source) def test_control_and_flight_geometry_use_actual_world_pose(self): - for signature in ('void ApplyPilot(', 'protected void Diagnostic(', 'int Tick('): + for signature in ('protected bool ComputePilotDemand(', 'protected void Diagnostic(', 'int Tick('): method=body(SOURCE,signature) self.assertIn('m_Aircraft.GetWorldTransform(transform)',method) self.assertNotIn('m_Simulation.GetWorldTransform(transform)',method) @@ -140,6 +175,33 @@ int main(){ method=body(SOURCE,'static bool CollectiveObserved(').replace('Math.','Math::') run('#include \n#include \nstruct Math { static float AbsFloat(float x){return std::abs(x);} };\n'+method+''' int main(){assert(CollectiveObserved(.05f,.05f));assert(!CollectiveObserved(.05f,0));assert(!CollectiveObserved(0,0));assert(!CollectiveObserved(.05f,1));assert(!CollectiveObserved(.5f,.5f));assert(!CollectiveObserved(.05f,NAN));} +''') + def test_actor_action_mode_is_exclusive_owned_and_precedes_native_super(self): + source=SOURCE.read_text() + native=body(SOURCE,'override void OnPrepareControls(') + self.assertLess(native.index('probe.PreparePilotActions('),native.index('super.OnPrepareControls(')) + apply=body(SOURCE,'void ApplyPilot(') + self.assertLess(apply.index('if (m_ActionInputs) return;'),apply.index('ComputePilotDemand(')) + prepare=body(SOURCE,'void PreparePilotActions(') + self.assertIn('!m_ActionInputs || !m_Bound',prepare) + self.assertIn('controller != m_Character || owner != m_Pilot || !PoweredAuthority()',prepare) + self.assertLess(prepare.index('!OwnActionManager(am)'),prepare.index('am.ActivateContext(')) + self.assertNotIn('.SetVehicle',prepare) + ownership=body(SOURCE,'protected bool OwnActionManager(') + self.assertIn('am == m_PilotAgent.GetActionManager()',ownership) + self.assertIn('am != GetGame().GetInputManager()',ownership) + self.assertEqual(source.count('GetInputManager()'),1) + self.assertIn('System.GetCLIParam("errFlightActionInputs", actionInputs)',source) + for axis in ('HelicopterCollectiveIncrease', 'HelicopterCollectiveDecrease', 'HelicopterCyclicForward', 'HelicopterCyclicBack', 'HelicopterCyclicRight', 'HelicopterCyclicLeft', 'HelicopterAntiTorqueRight', 'HelicopterAntiTorqueLeft'): + self.assertIn('"'+axis+'"',prepare) + self.assertIn('"'+axis+'"',body(SOURCE,'void Stop()')) + stop=body(SOURCE,'void Stop()') + self.assertIn('ours && m_ActionInputs && OwnActionManager(m_OwnedActions)',stop) + self.assertIn('ours && !m_ActionInputs && m_Input',stop) + def test_actual_directional_action_writer_zeros_opposite_and_bounds_values(self): + method=body(SOURCE,'bool WriteActionPair(').replace('ActionManager am','ActionManager& am').replace('Math.','Math::') + run('#include \n#include \n#include \n#include \n#include \nusing string=std::string;\nstruct Math {static float Clamp(float x,float a,float b){return std::clamp(x,a,b);} static float AbsFloat(float x){return std::abs(x);}};\nstruct ActionManager {std::map values; void SetActionValue(string key,float value){values[key]=value;} float GetActionValue(string key){return values[key];}};\n'+method+''' +int main(){ActionManager owned; owned.values["back"]=1;assert(WriteActionPair(owned,"forward","back",.3f));assert(owned.values["forward"]==.3f&&owned.values["back"]==0);assert(WriteActionPair(owned,"forward","back",-.4f));assert(owned.values["forward"]==0&&owned.values["back"]==.4f);assert(WriteActionPair(owned,"forward","back",0));assert(owned.values["forward"]==0&&owned.values["back"]==0);assert(WriteActionPair(owned,"forward","back",4));assert(owned.values["forward"]==1&&owned.values["back"]==0);} ''') def test_stop_and_engine_shutdown_are_bounded(self): source=SOURCE.read_text();stop=body(SOURCE,'void Stop()') @@ -147,8 +209,89 @@ int main(){assert(CollectiveObserved(.05f,.05f));assert(!CollectiveObserved(.05f self.assertIn('s_Current = null',stop) self.assertNotIn('StopEngine',stop) # no engine kill on midair fail/capture self.assertNotIn('DeleteSpawned',stop) - self.assertIn('((m_Stage >= 4 && m_Stage <= 6) || m_Stage == 9) && !m_Controller.IsEngineOn()',source) + self.assertIn('((m_Stage >= 4 && m_Stage <= 6) || m_Stage == 9 || m_Stage == 10) && !m_Controller.IsEngineOn()',source) self.assertIn('m_Fuel.GetTotalFuel() < m_InitialFuel - 0.05',source) self.assertIn('m_Controller.StopEngine(false)',source) self.assertIn('ERR_PoweredFlightRules.Landed(m_Simulation.HasAnyGroundContact()',source) + def test_actual_autohover_configuration_readback_and_owned_restore(self): + methods='\n'.join(body(SOURCE,key) for key in ['bool SetAutohoverMode(', 'protected bool BeginAutohover(', 'protected bool AutohoverReady(', 'protected void RestoreAutohover(']) + methods=methods.replace('protected ', '').replace('m_Controller.', 'm_Controller->').replace(' = null;', ' = nullptr;').replace('LogLevel.', 'LogLevel::') + run(''' +#include +#include +template void PrintFormat(T...) {} +struct LogLevel {static const int ERROR=1;}; +int nativeErrors=0; +void Print(const char*,int){nativeErrors++;} +struct Controller { void* owner=nullptr; bool enabled=false, accept=true; int writes=0; + void* GetOwner(){return owner;} bool GetAutohoverEnabled(){return enabled;} + void SetAutohoverEnabled(bool value){writes++; if(accept)enabled=value;} +}; +struct Probe { + int m_Stage=1; + bool m_Started=false,m_Stopped=false,m_Complete=false,m_Bound=false; + bool m_AutohoverMode=false,m_AutohoverSaved=false,m_OriginalAutohover=false,authority=true; + void* m_Aircraft=nullptr; Controller* m_Controller=nullptr; Controller* m_AutohoverController=nullptr; + bool PoweredAuthority(){return authority;} +'''+methods+''' + void Bind(Controller& c){m_Controller=&c;m_Aircraft=c.owner;m_Bound=true;m_Started=true;} +}; +int main(){int airframe, foreign; + Controller c;c.owner=&airframe; + Probe manual;manual.Bind(c);assert(manual.BeginAutohover()&&manual.AutohoverReady()); + manual.RestoreAutohover(true);assert(c.writes==0); // default is observational + Probe selected;assert(selected.SetAutohoverMode(true));selected.Bind(c); + assert(!selected.SetAutohoverMode(false));assert(selected.BeginAutohover()); + assert(c.enabled&&c.writes==1&&selected.AutohoverReady()); + Probe waiting;waiting.SetAutohoverMode(true);waiting.Bind(c); + for(int stage: {2,3,9,10}){waiting.m_Stage=stage;assert(waiting.AutohoverReady());} + for(int stage: {1,4,5,6,7}){waiting.m_Stage=stage;assert(!waiting.AutohoverReady());} + assert(!selected.BeginAutohover()&&c.writes==1); // no retry or timestamp-like renewal + c.enabled=false;assert(!selected.AutohoverReady());c.enabled=true; + selected.RestoreAutohover(true);assert(!c.enabled&&c.writes==2); + selected.RestoreAutohover(true);assert(c.writes==2); // idempotent cleanup + Probe alreadyEnabled;c.enabled=true;assert(alreadyEnabled.SetAutohoverMode(true));alreadyEnabled.Bind(c); + assert(alreadyEnabled.BeginAutohover());alreadyEnabled.RestoreAutohover(true);assert(c.enabled); + Probe captured;assert(captured.SetAutohoverMode(true));captured.Bind(c);assert(captured.BeginAutohover()); + int before=c.writes;captured.RestoreAutohover(false);assert(c.writes==before&&c.enabled); + Probe refused;c.enabled=false;c.accept=false;assert(refused.SetAutohoverMode(true));refused.Bind(c); + assert(!refused.BeginAutohover()&&!refused.AutohoverReady());assert(!refused.BeginAutohover()); + c.accept=true;refused.RestoreAutohover(true);assert(!c.enabled); + Probe mismatch;assert(mismatch.SetAutohoverMode(true));mismatch.Bind(c);mismatch.m_Aircraft=&foreign; + before=c.writes;assert(!mismatch.BeginAutohover()&&c.writes==before); + Probe inactive;assert(inactive.SetAutohoverMode(true));inactive.Bind(c);inactive.authority=false; + assert(!inactive.BeginAutohover()&&c.writes==before); + Probe changed;assert(changed.SetAutohoverMode(true));changed.Bind(c);assert(changed.BeginAutohover()); + Controller other;other.owner=&airframe;changed.m_Controller=&other; + assert(!changed.AutohoverReady());before=c.writes;changed.RestoreAutohover(true); + assert(c.writes==before&&other.writes==0); + Probe restoreFailed;c.enabled=false;assert(restoreFailed.SetAutohoverMode(true));restoreFailed.Bind(c); + assert(restoreFailed.BeginAutohover());c.accept=false;restoreFailed.RestoreAutohover(true); + assert(nativeErrors==1&&c.enabled); // rejected restore is retained as native failure + for(int i=0;i<5;i++){Probe frozen;if(i==0){frozen.m_Started=true;}if(i==1){frozen.m_Stopped=true;} + if(i==2){frozen.m_Complete=true;}if(i==3){frozen.m_Bound=true;}if(i==4){frozen.m_Aircraft=&airframe;} + assert(!frozen.SetAutohoverMode(true));} +} +''') + def test_autohover_neutralizes_only_custom_cyclic_and_keeps_flight_gates(self): + neutral=body(SOURCE,'if (m_AutohoverMode)') + run('#include \nvoid controls(bool m_AutohoverMode,float& forward,float& aside){'+neutral+'''} +int main(){float f=.1f,r=-.15f;controls(false,f,r);assert(f==.1f&&r==-.15f); +controls(true,f,r);assert(f==0&&r==0);} +''') + demand=body(SOURCE,'protected bool ComputePilotDemand(') + self.assertIn('!AutohoverReady()',demand) + self.assertIn('- angular[0] * 1.2',demand) + self.assertIn('+ angular[2] * 1.2',demand) + self.assertIn('headingError * 0.01 - angular[1] * 0.3',demand) + tick=body(SOURCE,'int Tick(') + self.assertIn('!m_ReadbackOK || !AutohoverReady()',tick) + self.assertLess(tick.index('m_Bound = true'),tick.index('Check(BeginAutohover()')) + self.assertLess(tick.index('m_Controller.StartEngine()'),tick.index('Check(BeginAutohover()')) + self.assertLess(tick.index('positive collective persists in existing native rotor signal'),tick.index('Check(BeginAutohover()')) + self.assertIn('now - m_Stable >= 5000',tick) + stop=body(SOURCE,'void Stop()') + self.assertIn('m_Seat.GetOccupant() == m_Pilot',stop) + self.assertIn('CompartmentAccessComponent.GetVehicleIn(m_Pilot) == m_Aircraft',stop) + self.assertIn('RestoreAutohover(ownSeat)',stop) if __name__=='__main__': unittest.main() diff --git a/tests/test_spectator_guidance.py b/tests/test_spectator_guidance.py new file mode 100644 index 0000000..f4041b7 --- /dev/null +++ b/tests/test_spectator_guidance.py @@ -0,0 +1,46 @@ +"""Execute the actual spectator message/refresh policy; no native UI claim.""" +from policy_harness import ROOT,body,run +p=ROOT/'addons/core/Scripts/Game/ERR/ERR_Observer.c' +source=body(p,'static string Message(')+'\n'+body(p,'static bool Refresh(') +source=source.replace('ERR_ObserverReason.','ERR_ObserverReason::') +run('''#include +#include +using string=std::string; +namespace ERR_ObserverReason {enum {NONE,SPENT_LIFE,LATE_EXTRACTION,SPAWN_UNAVAILABLE};} +'''+source+''' +int main(){ + for(int reason=0;reason<5;reason++)for(bool available:{false,true}){ + auto message=Message(reason,available); + if(reason==0){assert(message.empty());continue;} + assert(message.find("next round")!=string::npos); + assert((message.find("/esc spectate next")!=string::npos)==available); + assert((message.find("/esc spectate previous")!=string::npos)==available); + assert((message.find("No survivor is currently available")!=string::npos)==!available); + assert((message.find("when one becomes available")!=string::npos)==!available); + } + assert(Message(1,true).find("life for this round has been used")!=string::npos); + assert(Message(2,true).find("Extraction has started")!=string::npos); + assert(Message(3,true).find("could not be spawned")!=string::npos); + for(bool shown:{false,true})for(int previous=0;previous<5;previous++)for(int reason=0;reason<5;reason++)for(bool oldAvailable:{false,true})for(bool available:{false,true}){ + bool expected=reason!=0&&(!shown||previous!=reason||oldAvailable!=available); + assert(Refresh(shown,previous,reason,oldAvailable,available)==expected); + } + // Stable monitoring must not repeat. Availability and reason changes do refresh. + assert(!Refresh(true,1,1,true,true));assert(Refresh(true,1,1,true,false)); + assert(Refresh(true,1,1,false,true));assert(Refresh(true,1,2,true,true)); + // Camera close/reopen resets shown; missing hint manager must not consume it. + assert(Refresh(false,1,1,true,true));assert(Refresh(false,1,1,false,false)); +} +''') +monitor=body(p,'protected void ERR_UpdateObserverClient(') +assert 'bool survivorAvailable = m_ERRObservedId != RplId.Invalid();' in monitor +assert 'if (!hints) return;' in monitor +assert monitor.index('if (!hints) return;') 0 + + + +def schema(metadata): + fields = {'schema_version', 'kind', 'launch_id', 'captured_unix', 'candidate_directory', 'runtime_directory', 'profile', 'command', 'artifacts', 'build_qualification'} + require(isinstance(metadata, dict), 'Invalid packed launch metadata object') + version = metadata.get('schema_version') + require(type(version) is int, 'Invalid packed schema version') + if version == 1: + require(set(metadata) == fields and metadata.get('kind') == 'packed-core-runtime-input', 'Invalid packed Core metadata fields/kind') + return 'core' + require(version == 2 and set(metadata) == fields | {'project', 'addon_order'} + and metadata.get('kind') == 'packed-chat-runtime-input' and metadata.get('project') == 'chat' + and metadata.get('addon_order') == ADDON_ORDER, 'Invalid packed Chat metadata fields/kind/dependency order') + return 'chat' + + +def payload_inventory(folder, project): + # Preserve the original Core schema and exact-three-file validation. Chat + # uses the runner's exact-five-addon closure validator, not an arbitrary tree. + if project == 'core': + return packed_inventory(folder) + return headless_game.packed_payload_inventory(folder, project) + +def inspect(session): + """Read and verify first; no writes and no engine/process operation.""" + session = Path(session) + require(session.is_absolute() and session == session.resolve() and session.is_dir(), 'Use the canonical stopped packed session directory') + raw = read(session/PACKED_MANIFEST) + metadata = strict_json(raw) + project = schema(metadata) + expected_result = 'packed-'+project+'-started' + require(metadata['build_qualification'] == 'unqualified candidate; packaging verdict is unchanged', 'Packed metadata cannot assert build qualification') + require(isinstance(metadata['launch_id'], str), 'Invalid packed launch ID') + try: + uuid.UUID(metadata['launch_id']) + except ValueError as error: + raise ValueError('Invalid packed launch UUID') from error + runtime = session/'input/addons/core' if project == 'core' else session/'input/addons' + profile = session/'profile' + require(metadata['runtime_directory'] == str(runtime) and metadata['profile'] == str(profile), 'Packed runtime/profile paths do not belong to this session') + candidate = metadata['candidate_directory'] + require(isinstance(candidate, str) and Path(candidate).is_absolute() and '..' not in Path(candidate).parts, 'Invalid recorded candidate path') + artifacts = metadata['artifacts'] + expected_files = PACKED_FILES if project == 'core' else {addon+'/'+name for addon in ADDON_ORDER for name in PACKED_FILES} + require(isinstance(artifacts, dict) and set(artifacts) == expected_files, 'Packed provenance must hash the exact complete runtime artifact set') + for name, info in artifacts.items(): + require(isinstance(info, dict) and set(info) == {'bytes', 'sha256'} and type(info['bytes']) is int and info['bytes'] > 0 + and isinstance(info['sha256'], str) and re.fullmatch('[0-9a-f]{64}', info['sha256']), 'Invalid packed artifact hash/size: '+name) + require(payload_inventory(runtime, project) == artifacts, 'Runtime package bytes differ from launch manifest; refusing replacement payload') + runner_raw = read(session/'packed-runner.json') + runner = strict_json(runner_raw) + require(isinstance(runner, dict), 'Invalid stopped runner report') + require(runner.get('packed_only') is True and runner.get('project') == project and runner.get('dedicated_server') is False and runner.get('control_only') is False, 'Runner is not the recorded packed-only ordinary project') + require(not any(key in runner for key in ('source_provenance', 'launch_source_sha256', 'launch_source_manifest', 'launch_source_metadata', 'source_unchanged_after_run', 'end_source_sha256')), 'Packed run cannot carry loose-source qualification') + require(runner.get('build_qualified') is False and runner.get('release_qualified') is False, 'Packed consumption cannot qualify a build or release') + require(runner.get('packed_input_provenance') == PACKED_MANIFEST and runner.get('packed_input_provenance_sha256') == digest(raw) and runner.get('packed_launch_id') == metadata['launch_id'], 'Runner packed manifest/launch binding differs') + require(runner.get('cleanup_confirmed') is True, 'Archive only after owned cleanup is confirmed') + require('packed_input_error' in runner and (runner['packed_input_error'] is None or isinstance(runner['packed_input_error'], str)), 'Missing/malformed packed input diagnostic') + require(type(runner.get('packed_inputs_unchanged_after_run')) is bool and type(runner.get('packed_consumption_verified')) is bool, 'Missing packed input/consumption verdicts') + require(type(runner.get('failure_observed_during_polling')) is bool, 'Missing polling failure latch') + allowed_results = (RESULTS - {'packed-core-started'}) | {expected_result} + require(isinstance(runner.get('result'), str) and runner['result'] in allowed_results, 'Unknown packed runner result') + require(timestamp(metadata['captured_unix']) and timestamp(runner.get('started_unix')) and timestamp(runner.get('stopped_unix')) + and metadata['captured_unix'] <= runner['started_unix'] <= runner['stopped_unix'], 'Invalid snapshot/start/stop chronology') + command = metadata['command'] + require(isinstance(command, list) and len(command) > 16 and all(isinstance(arg, str) for arg in command), 'Invalid recorded native command') + executable = runner.get('executable') + require(isinstance(executable, str) and Path(executable).is_absolute(), 'Invalid recorded executable') + exe = Path(executable) + require(exe.parts[-4:] == ('steamapps', 'common', 'Arma Reforger', 'ArmaReforgerSteam.exe'), 'Recorded executable is not installed ordinary Arma Reforger') + steam = exe.parents[3] + packed_context = {'input': runtime, 'project': project} + expected = command_for(Path('/unused-source'), steam, Path('/unused-prefix'), profile, project, packed_context) + require(command == expected, 'Recorded command differs from exact packed-only ordinary launch; unexpected flags/search roots') + native = runner.get('session') + require(isinstance(native, str), 'No sealed native log session was produced') + native = Path(native) + require(native.parent == profile/'logs' and re.fullmatch(r'logs_[A-Za-z0-9_-]+', native.name) and native == native.resolve(), 'Native log session escapes the recorded private profile') + require(read(native/PACKED_MANIFEST) == raw and read(native/'runner.json') == runner_raw, 'Native and root packed manifest/runner copies disagree') + startup_raw = read(session/'packed-startup-report.json') + require(read(native/'game-startup-report.json') == startup_raw, 'Native and root raw startup reports disagree') + require(isinstance(strict_json(startup_raw), dict), 'Invalid raw startup report') + console = read(native/'console.log') + require(runner.get('console_sha256') == digest(console), 'Raw console differs from stopped runner seal') + files = {PACKED_MANIFEST: raw, 'runner.json.txt': runner_raw, 'raw-startup-report.json': startup_raw, 'console.log.txt': console} + auxiliary = {} + for name in ('script.log', 'error.log', 'crash.log', 'headless-launch.log', 'rereintroduced-hq.log'): + if (native/name).exists() or (native/name).is_symlink(): + data = read(native/name) + files[name+'.txt'] = data + auxiliary[name] = analyze(data.decode(errors='replace'), name) + for name in sorted(expected_files): + data = read(runtime/name) + require(len(data) == artifacts[name]['bytes'] and digest(data) == artifacts[name]['sha256'], 'Packed artifact changed during archive read: '+name) + files['package/'+name] = data + # Recompute from the console, not the saved ready flag; auxiliary errors also + # remain failures. Warnings in error.log are not mislabeled as native errors. + evidence = packed_evidence(console.decode(errors='replace'), packed_context, steam, profile) + auxiliary_failed = any(report['engine_errors'] or report['script_or_runtime_failures'] or report['missing_end_screen'] for report in auxiliary.values()) + settled_claim = (runner['result'] == expected_result and runner['stopped_unix'] - runner['started_unix'] >= 15) + passed = (evidence['ready'] is True and not auxiliary_failed and settled_claim + and runner['packed_inputs_unchanged_after_run'] is True and runner.get('packed_input_error') is None + and runner['packed_consumption_verified'] is True and runner['failure_observed_during_polling'] is False and runner.get('runner_error') is None) + report = {**evidence, 'packed_consumption_verified': passed, 'archived_packed_input_verified': True, + 'runner_result': runner['result'], 'runner_failure_latched': runner['failure_observed_during_polling'], + 'packed_inputs_unchanged_after_run': runner['packed_inputs_unchanged_after_run'], + 'auxiliary_native_reports': auxiliary, 'auxiliary_native_failure': auxiliary_failed, + 'runner_settle_claim_consistent': settled_claim, + 'settle_evidence': 'Native readiness recomputed; 15-second continuous settling is the sealed runner verdict, not an independently recorded polling timeline.', + 'build_qualified': False, 'release_qualified': False, + 'qualification': 'packed-only ordinary startup consumption only; original package build verdict and current source acceptance remain separate'} + report['failed'] = not passed + report['ready'] = passed + report['verifier_sha256'] = {name: digest(read(Path(__file__).resolve().parent/name)) for name in ('archive_packed.py', 'headless_game.py', 'native_report.py')} + files['report.json'] = encoded(report) + archive_kind = {'schema_version': metadata['schema_version'], 'kind': 'packed-'+project+'-consumption', 'packed_launch_id': metadata['launch_id'], + 'build_qualified': False, 'release_qualified': False} + if project == 'chat': + archive_kind.update(project=project, addon_order=ADDON_ORDER) + files['archive-kind.json'] = encoded(archive_kind) + return files, report + + +def archive(session, name, root=ROOT): + require(isinstance(name, str) and re.fullmatch(r'[A-Za-z0-9][A-Za-z0-9_.-]{0,127}', name) is not None, 'Archive name must be one safe ASCII component') + root = Path(root) + evidence = root/'docs/evidence' + require(root == root.resolve() and evidence == evidence.resolve(), 'Evidence destination must not redirect through symlinks') + destination = evidence/name + require(not destination.exists() and not destination.is_symlink(), 'Evidence already exists; refusing overwrite') + files, report = inspect(session) + # No mutation until every provenance binding and artifact byte has passed. + destination.mkdir(parents=True, exist_ok=False) + for relative, data in files.items(): + target = destination/relative + target.parent.mkdir(parents=True, exist_ok=True) + with target.open('xb') as output: + output.write(data) + hashes = {name: digest(raw) for name, raw in sorted(files.items())} + with (destination/'archive-sha256.json').open('xb') as output: + output.write(encoded(hashes)) + metadata = strict_json(files[PACKED_MANIFEST]) + require(payload_inventory(destination/'package', schema(metadata)) == metadata['artifacts'], 'Archived packed payload verification failed') + return destination, 0 if report['packed_consumption_verified'] else 1 + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('session', type=Path, help='Stopped /tmp/erri-packed-core-* or erri-packed-chat-* session root, not its logs subdirectory') + parser.add_argument('name', help='New docs/evidence directory name; never overwritten') + args = parser.parse_args(argv) + try: + destination, status = archive(args.session, args.name) + except (OSError, ValueError) as error: + parser.error(str(error)) + print(f'Archived {destination}; packed consumption exit={status} (nonzero retains failed evidence)') + return status + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/check.py b/tools/check.py index 00cad02..d3fe7c5 100644 --- a/tools/check.py +++ b/tools/check.py @@ -59,7 +59,7 @@ def check(): assert set(mapped)==set(inventory['script_paths']), 'Original inventory has untracked or unknown entries' print(f'PASS: {len(mapped)} original script entries tracked across {len(feature_ids)} unfinished responsibilities') print(f'PASS: {len(ids)} isolated addons, acyclic dependencies, {len(resources)} unique resources, exact vanilla references') - for name in ['test_item_station_teardown.py', 'test_source_bundle.py', 'test_native_flight_footprint.py', 'test_native_flight_input_diagnostics.py', 'test_mortar_logistics.py', 'test_mortar_courier_storage.py','test_powered_flight_pad.py','test_prison_escape_policy.py','test_powered_flight_policy.py','test_native_local_admission_probe.py','test_mortar_report_ledger.py','test_dedicated_native.py','test_native_mortar_transfer.py','test_mortar_aim_renewal.py','test_dedicated_preflight.py','test_mortar_transactions.py','test_native_mortar_probe.py','test_diagnostic_no_splash.py','test_casualty_incapacitation.py','test_casualty_remove_probe.py','test_extraction_placement_policy.py','test_guard_cancellation_policy.py','test_casualty_ground_policy.py','test_casualty_reservation_death.py','test_casualty_loading_policy.py','test_initial_guard_policy.py','test_headless_game_runner.py','test_vanilla_game_control.py','test_archive_game_control.py','test_site_discovery_policy.py','test_faction_catalog_scope.py','test_mission_rules.py','test_admin_setting_policy.py', 'test_player_admission_policy.py','test_progression_identity.py','test_discovery_map_position.py','test_local_admission.py','test_prison_placement_policy.py', 'test_recovery_policy.py','test_time_policy.py','test_environment_policy.py','test_environment_restart_runner.py', 'test_inventory_enumeration_policy.py','test_radio_defence_policy.py','test_radio_feedback_policy.py','test_performance_comparison.py','test_release_check.py','test_settings_migration.py','hq_network_regression.py','helicopter_availability_regression.py','mortar_salvo_regression.py']: + for name in ['test_mortar_activity_completion.py', 'test_packed_chat_game.py', 'test_native_mortar_refresh.py', 'test_archive_packed.py', 'test_mortar_refresh.py', 'test_packed_core_game.py', 'test_pak_inventory.py', 'test_native_mortar_salvo.py', 'test_spectator_guidance.py', 'test_native_package.py', 'test_item_station_teardown.py', 'test_source_bundle.py', 'test_native_flight_footprint.py', 'test_native_flight_input_diagnostics.py', 'test_mortar_logistics.py', 'test_mortar_courier_storage.py','test_powered_flight_pad.py','test_prison_escape_policy.py','test_powered_flight_policy.py','test_flight_action_runner.py','test_native_local_admission_probe.py','test_mortar_report_ledger.py','test_dedicated_native.py','test_native_mortar_transfer.py','test_mortar_aim_renewal.py','test_dedicated_preflight.py','test_mortar_transactions.py','test_native_mortar_probe.py','test_diagnostic_no_splash.py','test_casualty_incapacitation.py','test_casualty_remove_probe.py','test_extraction_placement_policy.py','test_guard_cancellation_policy.py','test_casualty_ground_policy.py','test_casualty_reservation_death.py','test_casualty_loading_policy.py','test_initial_guard_policy.py','test_headless_game_runner.py','test_vanilla_game_control.py','test_archive_game_control.py','test_site_discovery_policy.py','test_faction_catalog_scope.py','test_mission_rules.py','test_admin_setting_policy.py', 'test_player_admission_policy.py','test_progression_identity.py','test_discovery_map_position.py','test_local_admission.py','test_prison_placement_policy.py', 'test_recovery_policy.py','test_time_policy.py','test_environment_policy.py','test_environment_restart_runner.py', 'test_inventory_enumeration_policy.py','test_radio_defence_policy.py','test_radio_feedback_policy.py','test_performance_comparison.py','test_release_check.py','test_settings_migration.py','hq_network_regression.py','helicopter_availability_regression.py','mortar_salvo_regression.py']: subprocess.run([sys.executable,str(ROOT/'tests'/name)],check=True) print('All repository checks passed. Native compilation and multiplayer tests are separate requirements.') if __name__=='__main__':check() diff --git a/tools/headless_game.py b/tools/headless_game.py index 2fcb10e..415d6e5 100644 --- a/tools/headless_game.py +++ b/tools/headless_game.py @@ -4,6 +4,7 @@ No Workbench plugin, scripted smoke fixture, Steam profile, or existing process """ import argparse import fcntl +import hashlib import json import os from pathlib import Path @@ -29,6 +30,227 @@ def refuse(message): raise ValueError(message) + +PACKED_FILES = {'addon.gproj', 'data.pak', 'resourceDatabase.rdb'} +PACKED_GUID = '2528466DE220D91C' +PACKED_MANIFEST = 'packed-input-provenance.json' +PACKED_BASE = '58D0FB3206B6F859' +PACKED_PROJECTS = { + 'core': ('ERR_Core', PACKED_GUID, ()), + 'ai': ('ERR_Ai', '5192138CB9D5B911', ('core',)), + 'intel': ('ERR_Intel', 'D31039C7C53E348A', ('core',)), + 'map': ('ERR_Map', '9AAEE9041D79809E', ('core',)), + 'chat': ('ERR_Chat', 'FA804F411BDDF2C6', ('core', 'ai', 'intel', 'map')), +} + + +def packed_inventory(folder, project='core'): + """Exact runtime payload, including files deliberately excluded by source manifests.""" + if project not in PACKED_PROJECTS: + refuse('Unknown packed addon project') + folder = Path(folder) + if folder.is_symlink() or not folder.is_dir() or folder != folder.resolve(): + refuse('Packed candidate must be a canonical real directory') + if {p.name for p in folder.iterdir()} != PACKED_FILES: + refuse('Packed addon requires exactly addon.gproj, data.pak and resourceDatabase.rdb') + result = {} + for name in sorted(PACKED_FILES): + path = folder/name + if path.is_symlink() or not path.is_file() or path.stat().st_size <= 0: + refuse('Packed input must be a nonempty regular file: '+name) + digest = hashlib.sha256() + with path.open('rb') as stream: + for chunk in iter(lambda: stream.read(1024*1024), b''): + digest.update(chunk) + result[name] = {'bytes': path.stat().st_size, 'sha256': digest.hexdigest()} + name, guid, dependencies = PACKED_PROJECTS[project] + text = (folder/'addon.gproj').read_text() + match = re.fullmatch(r'\s*GameProject\s*\{\s*ID\s+"'+name+r'"\s+GUID\s+"'+guid+r'"\s+TITLE\s+"[^"\r\n]+"\s+Dependencies\s*\{((?:\s*"[0-9A-F]{16}"\s*)+)\}\s*\}\s*', text) + actual = re.findall(r'"([0-9A-F]{16})"', match[1]) if match else [] + expected = {PACKED_BASE, *(PACKED_PROJECTS[key][1] for key in dependencies)} + if not match or set(actual) != expected or len(actual) != len(expected): + refuse('Packed project identity or exact declared dependencies do not match '+project) + return result + + +def packed_payload_inventory(folder, project='core'): + """Core keeps its v1 three-file map; Chat binds all fifteen closure artifacts.""" + if project == 'core': + return packed_inventory(folder) + if project != 'chat': + refuse('Packed runtime supports only Core or the complete Chat closure') + folder = Path(folder) + if folder.is_symlink() or not folder.is_dir() or folder != folder.resolve(): + refuse('Packed closure must be a canonical real directory') + if {p.name for p in folder.iterdir()} != set(PACKED_PROJECTS): + refuse('Packed Chat requires exactly core, ai, intel, map and chat directories') + return {project+'/'+name: record for project in PACKED_PROJECTS + for name, record in packed_inventory(folder/project, project).items()} + + +def packed_directories(packed): + if packed.get('project', 'core') == 'core': + return {'core': packed['input']} + if packed.get('project') != 'chat': + refuse('Unknown packed runtime project') + return {project: packed['input']/project for project in PACKED_PROJECTS} + + +def packed_request(a): + candidate, session = getattr(a, 'packed_core', None), getattr(a, 'packed_session', None) + addons = getattr(a, 'packed_addons', None) + if candidate is None and addons is None and session is None: + return None + if candidate is not None and addons is not None: + refuse('--packed-core and --packed-addons are mutually exclusive') + project = 'chat' if addons is not None else 'core' + candidate = addons if addons is not None else candidate + if candidate is None or session is None or a.project != project: + refuse('Packed input and --packed-session require their matching --project '+project) + if a.profile != Path('/tmp/erri-game-profile'): + refuse('Packed mode owns --packed-session/profile; do not supply --profile') + if a.settle != 15: + refuse('Packed mode requires the canonical 15-second readiness settling window') + session = Path(session) + if (not session.is_absolute() or session.parent != Path('/tmp') or session != session.resolve() + or not re.fullmatch('erri-packed-'+project+r'-[A-Za-z0-9_-]+', session.name) + or session.exists() or session.is_symlink()): + refuse('Packed session must be a new canonical /tmp/erri-packed-'+project+'- directory') + candidate = Path(candidate) + manifest = packed_payload_inventory(candidate, project) + target = session/'input/addons' if project == 'chat' else session/'input/addons/core' + return {'candidate': candidate, 'session': session, 'input': target, 'manifest': manifest, 'project': project} + + +def prepare_packed(packed): + """Called only while holding the ordinary runner's existing prefix lock.""" + packed['session'].mkdir(exist_ok=False) + target = packed['input'] + target.mkdir(parents=True, exist_ok=False) + project = packed.get('project', 'core') + if packed_payload_inventory(packed['candidate'], project) != packed['manifest']: + refuse('Packed candidate changed before private copy') + for name in sorted(packed['manifest']): + # Exclusive creation; never hardlink the candidate or redirect the copy. + (target/name).parent.mkdir(parents=True, exist_ok=True) + with (packed['candidate']/name).open('rb') as source, (target/name).open('xb') as output: + shutil.copyfileobj(source, output) + if packed_payload_inventory(target, project) != packed['manifest'] or packed_payload_inventory(packed['candidate'], project) != packed['manifest']: + refuse('Private packed copy or candidate changed during copy') + + +def packed_snapshot(packed, command, profile): + project = packed.get('project', 'core') + manifest = packed_payload_inventory(packed['input'], project) + if manifest != packed['manifest'] or packed_payload_inventory(packed['candidate'], project) != manifest: + refuse('Packed input changed before launch') + value = {'schema_version': 1, 'kind': 'packed-core-runtime-input', 'launch_id': str(uuid.uuid4()), + 'captured_unix': time.time(), 'candidate_directory': str(packed['candidate']), + 'runtime_directory': str(packed['input']), 'profile': str(profile), + 'command': list(command), 'artifacts': manifest, + 'build_qualification': 'unqualified candidate; packaging verdict is unchanged'} + if project == 'chat': + value.update(schema_version=2, kind='packed-chat-runtime-input', project='chat', addon_order=list(PACKED_PROJECTS)) + raw = (json.dumps(value, indent=2)+'\n').encode() + (packed['session']/PACKED_MANIFEST).write_bytes(raw) + return raw + + +def packed_seal(packed, raw, session): + """Fail closed on changed/deleted inputs, retaining a useful failure record.""" + metadata = json.loads(raw) + unchanged, error = False, None + try: + project = packed.get('project', 'core') + unchanged = (packed_payload_inventory(packed['input'], project) == metadata['artifacts'] + and packed_payload_inventory(packed['candidate'], project) == metadata['artifacts']) + except (OSError, ValueError) as caught: + error = str(caught) + console = session/'console.log' if session else None + return {'packed_only': True, 'packed_input_provenance': PACKED_MANIFEST, + 'packed_input_provenance_sha256': hashlib.sha256(raw).hexdigest(), + 'packed_launch_id': metadata['launch_id'], 'stopped_unix': time.time(), + 'packed_inputs_unchanged_after_run': unchanged, 'packed_input_error': error, + 'console_sha256': hashlib.sha256(console.read_bytes()).hexdigest() if console and console.is_file() else None, + 'build_qualified': False, 'release_qualified': False} + + +def native_path(value, game_root): + if value.startswith('$'): + return value # Unknown engine aliases must not normalize into allowed paths. + value = value.replace('\\', '/') + if value[:3].lower() == 'z:/': + value = value[2:] + if not value.startswith('/'): + value = str(game_root/value) + return os.path.normpath(value) + + +def packed_evidence(content, packed, steam, profile): + project = packed.get('project', 'core') + report = game_evidence(content, project) + directories = packed_directories(packed) + game_root = steam/'steamapps/common/Arma Reforger' + expected = {'5614BBCCBB55ED1C': str(game_root/'addons/core/core.gproj'), + '58D0FB3206B6F859': str(game_root/'addons/data/ArmaReforger.gproj')} + expected.update({PACKED_PROJECTS[key][1]: str(folder/'addon.gproj') for key, folder in directories.items()}) + blocks = re.findall(r"Loaded addons:\r?\n((?:[^\n]*ENGINE[^\n]*gproj:[^\n]*\n)+)", content) + complete = False + violations = [] + for block in blocks: + entries = re.findall(r"gproj: '([^']+)' guid: '([0-9A-Fa-f]{16})'", block) + if len(entries) != len(block.splitlines()): + violations.append('Malformed loaded addon entry') + seen = set() + for path, guid in entries: + guid = guid.upper() + if guid in seen or guid not in expected or native_path(path, game_root) != expected.get(guid): + violations.append('Unexpected, duplicate or redirected loaded addon: '+path+' '+guid) + seen.add(guid) + complete = seen == set(expected) + mounts = re.findall(r"FileSystem: Adding package '([^']+)' \(pak count: (\d+)\) to filesystem under name ([^\s]+)", content) + expected_mounts = {'core': str(game_root/'addons/core'), 'ArmaReforger': str(game_root/'addons/data')} + expected_databases = {PACKED_PROJECTS[key][0]: str(folder/'resourceDatabase.rdb') for key, folder in directories.items()} + expected_mounts.update({PACKED_PROJECTS[key][0]: str(folder) for key, folder in directories.items()}) + mounted = set() + for path, count, name in mounts: + if name not in expected_mounts or native_path(path, game_root) != expected_mounts.get(name) or int(count) < 1 or (name in expected_databases and int(count) != 1): + violations.append('Unexpected packed mount: '+path+' '+name) + else: + mounted.add(name) + for path, name in re.findall(r"FileSystem: Adding relative directory '([^']+)' to filesystem under name ([^\s]+)", content): + if name.startswith('ERR_'): + violations.append('Loose successor directory mount: '+path) + addon_root = packed['input'] if project == 'chat' else packed['input'].parent + allowed_dirs = {str(addon_root), str(game_root/'addons'), str(profile/'addons')} + dirs = re.findall(r"ENGINE\s*:\s*dir: '([^']+)'", content) + for path in dirs: + # Native $profile: maps to /profile, so this exact observed + # engine alias denotes /addons. No general alias/traversal + # expansion is accepted here or in loaded project/package paths. + resolved = str(profile/'addons') if path == '$profile:../addons/' else native_path(path, game_root) + if resolved not in allowed_dirs: + violations.append('Unexpected addon search directory: '+path) + database_paths = re.findall(r'ResourceDB: loading cache \(id=\d+ name=(ERR_[^\s]+) path=([^\r\n]+)\)', content) + databases = set() + for name, path in database_paths: + if name not in expected_databases or native_path(path, game_root) != expected_databases.get(name): + violations.append('Unexpected or redirected successor resource database: '+name+' '+path) + else: + databases.add(name) + database_ok = databases == set(expected_databases) + modules = re.findall(r'Module: (GameLib|Game);[^\n]*defines:\s*"([^"]*)"', content) + normal_modules = {name for name, flags in modules} == {'GameLib', 'Game'} and all(not {'WORKBENCH', 'ENF_WB'}.intersection(flags.split(',')) for _, flags in modules) + if any({'WORKBENCH', 'ENF_WB'}.intersection(flags.split(',')) for _, flags in modules): + violations.append('Workbench module defines in ordinary packed run') + path_proof = complete and mounted == set(expected_mounts) and database_ok and bool(dirs) + failed = report['failed'] or bool(violations) + return {**report, 'packed_only': True, 'packed_loaded_paths_verified': path_proof, + 'packed_input_violations': violations, 'packed_normal_modules': normal_modules, + 'failed': failed, 'ready': report['ready'] and path_proof and normal_modules and not failed, + 'build_qualified': False, 'release_qualified': False, + 'scope': 'packed-only '+project+' ordinary local startup; explicit noSplash; no packaging, visible UI, escape, multiplayer or release qualification'} + def assert_no_game(proc_root=Path('/proc')): """Read-only and fail closed; also recognizes Wine's truncated comm name.""" for proc in proc_root.iterdir(): @@ -123,14 +345,19 @@ def validate_paths(root, steam, compat, profile): refuse(f'Unexpected profile symlink: {path}') -def command_for(root, steam, compat, profile, project): +def command_for(root, steam, compat, profile, project, packed=None): if project not in {'core', 'chat', CONTROL}: refuse('Unsupported ordinary game project/control') command = ['gamescope', '--backend', 'headless', '-W', '1280', '-H', '720', '-w', '1280', '-h', '720', '-r', '30', '--', str(steam/'steamapps/common/Proton - Experimental/proton'), 'run', str(steam/'steamapps/common/Arma Reforger/ArmaReforgerSteam.exe')] - if project != CONTROL: + if packed is not None: + if project != packed.get('project', 'core') or project not in {'core', 'chat'}: + refuse('Packed input project does not match requested ordinary scenario') + addon_root = packed['input'] if project == 'chat' else packed['input'].parent + command += ['-addonsDir', 'Z:'+str(addon_root), '-addons', PACKED_PROJECTS[project][1]] + elif project != CONTROL: project_text = (root/'addons'/project/'addon.gproj').read_text() guid = re.search(r'\bGUID "([A-F0-9]{16})"', project_text)[1] command += ['-addonsDir', 'Z:'+str(root/'addons'), '-addons', guid] @@ -264,7 +491,9 @@ class StartupMonitor: def run(a): - steam, compat, profile = a.steam.resolve(), a.compat.resolve(), a.profile.resolve() + packed = packed_request(a) + steam, compat = a.steam.resolve(), a.compat.resolve() + profile = packed['session']/'profile' if packed else a.profile.resolve() if not 60 <= a.timeout <= 1800 or not 5 <= a.settle <= 120: refuse('Use timeout 60..1800 seconds and settle 5..120 seconds') if not 0 <= a.failure_grace <= 30: @@ -284,11 +513,11 @@ def run(a): except BlockingIOError: refuse('Another test runner owns this disposable prefix') assert_prefix_idle(compat) - return run_locked(a, steam, compat, profile) + return run_locked(a, steam, compat, profile, packed) -def run_locked(a, steam, compat, profile): - command = command_for(ROOT, steam, compat, profile, a.project) +def run_locked(a, steam, compat, profile, packed=None): + command = command_for(ROOT, steam, compat, profile, a.project, packed) separator = command.index("--") proton, executable = Path(command[separator+1]), Path(command[separator+3]) if not proton.is_file() or not executable.is_file(): @@ -297,6 +526,8 @@ def run_locked(a, steam, compat, profile): refuse('gamescope and pactl are required') # Refuse launcher/profile reuse; repeat immediately before any launch setup. assert_no_game() + if packed: + prepare_packed(packed) profile.mkdir(parents=True, exist_ok=True) marker = profile/PROFILE_MARKER if not marker.exists(): @@ -321,7 +552,8 @@ def run_locked(a, steam, compat, profile): sink_module = None child = None session = None - captured = snapshot(ROOT, command) + captured = None if packed else snapshot(ROOT, command) + packed_raw = packed_snapshot(packed, command, profile) if packed else None started = time.time() monitor = StartupMonitor(time.monotonic(), a.timeout, a.settle, a.failure_grace) result = 'timeout' @@ -356,10 +588,13 @@ def run_locked(a, steam, compat, profile): if candidates: if session is None: session = candidates[0] - persist(session, captured) + if packed: + (session/PACKED_MANIFEST).write_bytes(packed_raw) + else: + persist(session, captured) console = session/'console.log' content = console.read_text(errors='replace') if console.is_file() else '' - evidence = game_evidence(content, a.project) + evidence = packed_evidence(content, packed, steam, profile) if packed else game_evidence(content, a.project) outcome = monitor.observe(evidence, time.monotonic(), child.poll() is not None) if outcome is not None: result = outcome; break @@ -389,16 +624,28 @@ def run_locked(a, steam, compat, profile): subprocess.run(['pactl', 'unload-module', sink_module], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, timeout=5) except (OSError, subprocess.SubprocessError): pass # Never replace the user's audio defaults to compensate. - sealed = seal_run(ROOT, session, captured) if cleanup_ok and session and (session/'console.log').is_file() else {} - final = game_evidence((session/'console.log').read_text(errors='replace'), a.project) if session and (session/'console.log').is_file() else {} + if packed: + sealed = packed_seal(packed, packed_raw, session) + else: + sealed = seal_run(ROOT, session, captured) if cleanup_ok and session and (session/'console.log').is_file() else {} + content = (session/'console.log').read_text(errors='replace') if session and (session/'console.log').is_file() else '' + if packed: + final = packed_evidence(content, packed, steam, profile) + else: + final = game_evidence(content, a.project) if session and (session/'console.log').is_file() else {} final = monitor.annotate(final) if final.get('failed'): result = 'game-failed' - if sealed and not sealed['source_unchanged_after_run']: + if packed and not sealed['packed_inputs_unchanged_after_run']: + result = 'packed-input-changed' + if not packed and sealed and not sealed['source_unchanged_after_run']: result = 'source-changed' if a.project == CONTROL and result == 'game-started': result = 'vanilla-control-started' - summary = {**sealed, **bindings(captured), 'started_unix': started, 'result': result, + if packed and result == 'game-started': + result = 'packed-'+packed.get('project', 'core')+'-started' if final.get('ready') is True else 'packed-evidence-incomplete' + source_bindings = {} if packed else bindings(captured) + summary = {**sealed, **source_bindings, 'started_unix': started, 'result': result, 'session': str(session) if session else None, 'project': a.project, 'cleanup_confirmed': cleanup_ok, 'runner_error': runner_error, 'failure_grace_seconds': a.failure_grace, @@ -407,14 +654,19 @@ def run_locked(a, steam, compat, profile): 'executable': str(executable), 'dedicated_server': False, 'display': 'headless Gamescope', 'audio': '-noSound plus own silent sink', 'control_only': a.project == CONTROL, - 'source_manifest_scope': 'successor addon snapshot retained for provenance bookkeeping only; none loaded by vanilla control' if a.project == CONTROL else 'successor addon sources', + 'source_manifest_scope': 'none: packed input provenance is separate; loose source manifests cannot qualify this run' if packed else 'successor addon snapshot retained for provenance bookkeeping only; none loaded by vanilla control' if a.project == CONTROL else 'successor addon sources', 'scope': final.get('scope', 'ordinary game compile/startup; no scripted fixture, full escape or multiplayer acceptance')} + if packed: + summary['packed_consumption_verified'] = result == 'packed-'+packed.get('project', 'core')+'-started' and cleanup_ok and final.get('ready') is True and sealed['packed_inputs_unchanged_after_run'] + final['packed_consumption_verified'] = summary['packed_consumption_verified'] + (packed['session']/'packed-runner.json').write_text(json.dumps(summary, indent=2)+'\n') + (packed['session']/'packed-startup-report.json').write_text(json.dumps(final, indent=2)+'\n') if session: (session/'runner.json').write_text(json.dumps(summary, indent=2)+'\n') (session/'game-startup-report.json').write_text(json.dumps(final, indent=2)+'\n') shutil.copyfile(launch_log, session/'headless-launch.log') print(json.dumps(summary, indent=2), flush=True) - return 0 if result in {'game-started', 'vanilla-control-started'} else 1 + return 0 if result in {'game-started', 'vanilla-control-started', 'packed-core-started', 'packed-chat-started'} else 1 def main(): @@ -423,6 +675,10 @@ def main(): parser.add_argument('--compat', type=Path, required=True) parser.add_argument('--profile', type=Path, default=Path('/tmp/erri-game-profile')) parser.add_argument('--project', choices=['core', 'chat', CONTROL], default='core') + packed_options = parser.add_mutually_exclusive_group() + packed_options.add_argument('--packed-core', type=Path, help='Unqualified Core candidate directory containing exactly addon.gproj, data.pak and resourceDatabase.rdb') + packed_options.add_argument('--packed-addons', type=Path, help='Unqualified complete core/ai/intel/map/chat packed directories; requires --project chat') + parser.add_argument('--packed-session', type=Path, help='New /tmp/erri-packed-core- or erri-packed-chat- session; owns a fresh input copy and profile') parser.add_argument('--inspect-processes', action='store_true', help='Read-only process preflight report; never launch, lock, write a profile or configure audio') parser.add_argument('--timeout', type=int, default=180) parser.add_argument('--settle', type=int, default=15) diff --git a/tools/headless_workbench.py b/tools/headless_workbench.py index 19a1b16..0edf586 100644 --- a/tools/headless_workbench.py +++ b/tools/headless_workbench.py @@ -11,8 +11,10 @@ p = argparse.ArgumentParser(description=__doc__) p.add_argument('--steam', type=Path, default=Path.home()/'.local/share/Steam') p.add_argument('--compat', type=Path, required=True, help='Disposable cloned Proton compatdata directory outside Steam') p.add_argument('--profile', type=Path, required=True, help='Separate disposable successor Workbench profile') -p.add_argument('--smoke', choices=['mortar-courier', 'station-teardown', 'prison-breach', 'powered-flight', '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'], default='victory') +p.add_argument('--smoke', choices=['mortar-refresh', 'mortar-salvo', 'mortar-courier', 'station-teardown', 'prison-breach', 'powered-flight', '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'], default='victory') p.add_argument('--station-teardown-diagnostics', action='store_true', help='Opt-in bounded native deletion diagnostics; preserves all validation errors') +p.add_argument('--flight-autohover', action='store_true', help='Opt-in owned native helicopter autohover experiment; requires Core powered-flight and actor-local action inputs') +p.add_argument('--flight-action-inputs', action='store_true', help='Experimental exact-AI ActionManager inputs; Core powered-flight fixture only') p.add_argument('--flight-input-diagnostics', action='store_true', help='Opt-in read-only powered-flight input/application and native rotor signal observations') p.add_argument('--rounds', type=int, default=2) p.add_argument('--timeout', type=int, default=360) @@ -23,8 +25,10 @@ if not 1 <= a.rounds <= 10 or not 60 <= a.timeout <= 1800: p.error('Use 1..10 rounds and a 60..1800 second timeout') if a.smoke == 'mortar-courier' and (a.project != 'chat' or a.rounds != 1 or a.timeout < 500): p.error('mortar-courier requires --project chat --rounds 1 --timeout at least 500') -if a.smoke in {'mortar-expiry', 'mortar-transfer', 'mortar-fire'} and (a.project != 'chat' or a.rounds != 1 or a.timeout < 400): - p.error('mortar-expiry/mortar-transfer/mortar-fire requires --project chat --rounds 1 --timeout at least 400') +if a.smoke in {'mortar-refresh', 'mortar-salvo', 'mortar-expiry', 'mortar-transfer', 'mortar-fire'} and (a.project != 'chat' or a.rounds != 1 or a.timeout < 400): + p.error('mortar-refresh/mortar-salvo/mortar-expiry/mortar-transfer/mortar-fire requires --project chat --rounds 1 --timeout at least 400') +if a.flight_autohover and (a.project != 'core' or a.smoke != 'powered-flight' or not a.flight_action_inputs): p.error('flight-autohover requires Core powered-flight with flight-action-inputs') +if a.flight_action_inputs and (a.project != 'core' or a.smoke != 'powered-flight'): p.error('flight-action-inputs requires the Core powered-flight fixture') if a.smoke == 'powered-flight' and (a.project != 'core' or a.rounds != 1 or a.timeout < 420): p.error('powered-flight requires Core, one round, and at least 420 seconds') if a.smoke == 'station-teardown' and (a.project != 'core' or a.rounds != 1): p.error('station-teardown requires --project core --rounds 1') if a.smoke == 'environment-restart': @@ -63,6 +67,8 @@ for proc in Path('/proc').iterdir(): command = ['gamescope', '--backend', 'headless', '-W', '1280', '-H', '720', '-w', '1280', '-h', '720', '-r', '30', '--', str(proton), 'run', str(wb/'ArmaReforgerWorkbenchSteamDiag.exe'), '-gproj', 'Z:'+str(ROOT/'addons'/a.project/'addon.gproj'), '-addonsDir', 'Z:'+str(ROOT/'addons'), '-profile', profile_arg, '-logconsole', '-wbModule=WorldEditor', '-load', 'Worlds/ERR_Everon.ent', '-plugin=ERR_ValidateWorldPlugin', '-errPlay', '1', '-errSmoke', '1', '-errSmokeOutcome', a.smoke, '-noThrow', '-disableCrashReporter'] if a.station_teardown_diagnostics: command += ['-errStationTeardownDiag', '1'] if a.flight_input_diagnostics: command += ['-errFlightInputDiag', '1'] +if a.flight_action_inputs: command += ['-errFlightActionInputs', '1'] +if a.flight_autohover: command += ['-errFlightAutohover', '1'] if a.project == 'core': if a.smoke not in {'station-teardown', 'prison-breach', 'powered-flight', 'local-admission', 'victory', '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'}: p.error('Unsupported Core-only fixture') command[command.index('-plugin=ERR_ValidateWorldPlugin')] = '-plugin=ERR_ValidateBaseWorldPlugin' diff --git a/tools/native_package.py b/tools/native_package.py new file mode 100644 index 0000000..38da5e0 --- /dev/null +++ b/tools/native_package.py @@ -0,0 +1,406 @@ +#!/usr/bin/env python3 +"""Build unqualified native PAK candidates in a fresh private /tmp session. +Never publish. Native package contents and consumption remain separate checks. +""" +import argparse +import fcntl +import hashlib +import io +import json +import os +from pathlib import Path +import re +import shutil +import subprocess +import sys +import time +import uuid +import zipfile + +from source_bundle import build, inventory, PROJECTS +from headless_game import assert_no_game, assert_prefix_idle, cleanup +from native_report import analyze + +ROOT = Path(__file__).resolve().parents[1] +ORDER = tuple(PROJECTS) +# Record the direct Proton/Wine status independently of Gamescope's exit status. +# This helper lives only in the owned session and never interprets shell text. +CHILD_RECORDER = """import json, os, subprocess, sys +from pathlib import Path +command = sys.argv[3:] +environment = os.environ.copy() +environment.update(json.loads(Path(sys.argv[2]).read_text())) +code = subprocess.call(command, env=environment) +with Path(sys.argv[1]).open('x') as output: + json.dump({'command': command, 'exit_code': code}, output) +sys.exit(code) +""" + + +def digest(path): + h = hashlib.sha256() + with path.open('rb') as stream: + for block in iter(lambda: stream.read(1024 * 1024), b''): + h.update(block) + return h.hexdigest() + + +def save(path, value): + path.write_text(json.dumps(value, indent=2, sort_keys=True) + '\n') + + +def project_order(project): + if project not in PROJECTS: + raise ValueError('Unknown successor project') + needed = {project, *PROJECTS[project][2]} + return [name for name in ORDER if name in needed] + + +def validate_session(root, steam, compat, session): + if session.exists() or session.is_symlink(): + raise ValueError('--session must not already exist; outputs are never reused') + if session != session.resolve() or session.parent != Path('/tmp') or not re.fullmatch(r'[A-Za-z0-9][A-Za-z0-9_.-]{0,119}', session.name): + raise ValueError('--session must be a fresh direct child of /tmp') + if any(session.is_relative_to(p) or p.is_relative_to(session) for p in (root, steam, compat)): + raise ValueError('Session must be separate from source, Steam and prefix') + if (not compat.is_relative_to(Path('/tmp')) or compat.is_relative_to(root) + or compat.is_relative_to(steam) or (compat/'pfx').is_symlink() + or (compat/'pfx/system.reg').is_symlink() or not (compat/'pfx/system.reg').is_file()): + raise ValueError('--compat must be a disposable cloned prefix under /tmp, outside source and Steam, with a real pfx') + if (compat/'.erri-workbench.lock').is_symlink(): + raise ValueError('Disposable prefix lock must not be a symlink') + + +def copy_payload(root, session): + # Same reviewed authored schema, resource identities and dependency checks as + # source_bundle; no caches, original content, logs or vanilla bytes copied. + archive, manifest = build(root) + authored = {name: sha for name, sha in manifest['files'].items() if name.startswith('addons/')} + session.mkdir(mode=0o700) # atomic exclusive ownership; never exist_ok + source = session/'source' + with zipfile.ZipFile(io.BytesIO(archive)) as bundle: + for name, sha in authored.items(): + data = bundle.read(name) + if hashlib.sha256(data).hexdigest() != sha: + raise ValueError('Validated bundle hash mismatch') + destination = source/name + destination.parent.mkdir(parents=True, exist_ok=True) + with destination.open('xb') as output: + output.write(data) + save(session/'authored-before.json', authored) + return authored + + +def copied_authored_snapshot(source, authored): + result = {} + for name in authored: + path = source/name + result[name] = digest(path) if path.is_file() and not path.is_symlink() and path.resolve().is_relative_to(source.resolve()) else None + # The shared inventory rejects unreviewed additions and ignores only its + # explicit generated-cache schema. Added authored scripts/resources matter. + discovered = inventory(source) + for name, sha in discovered.items(): + if name not in result: + result[name] = sha + return result + + +def copied_authored_unchanged(source, authored): + return copied_authored_snapshot(source, authored) == authored + + +def command_for(steam, session, project, silent_workbench=False): + if project not in PROJECTS: + raise ValueError('Unknown successor project') + command = ['gamescope', '--backend', 'headless', '-W', '1280', '-H', '720', + '-w', '1280', '-h', '720', '-r', '30', '--', + str(steam/'steamapps/common/Proton - Experimental/proton'), 'run', + str(steam/'steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe'), + '-gproj', 'Z:'+str(session/'source/addons'/project/'addon.gproj'), + '-addonsDir', 'Z:'+str(session/'source/addons'), + '-profile', 'Z:'+str(session/'profiles'/project), + '-logconsole', '-noBackend', '-noSound', '-disableCrashReporter', + '-wbModule=ResourceManager', '-packAddon', + '-packAddonDir', 'Z:'+str(session/'packages'/project), + '-packAddonCacheDir', 'Z:'+str(session/'cache'/project)] + if silent_workbench: + command.append('-wbSilent') + return command + + + +def child_status(path, expected): + if path.is_symlink() or not path.is_file(): + return None + try: + record = json.loads(path.read_text()) + except (OSError, ValueError): + return None + if not isinstance(record, dict) or record.get('command') != expected or type(record.get('exit_code')) is not int: + return None + return record['exit_code'] + + +def log_evidence(paths): + records, failures = {}, [] + for path in sorted(paths): + if path.is_symlink() or not path.is_file(): + raise ValueError('Unexpected nonregular native log') + content = path.read_text(errors='replace') + report = analyze(content, path) + errors = report['engine_errors'] + report['script_or_runtime_failures'] + report['missing_end_screen'] + errors += [line.strip() for line in content.splitlines() + if re.search(r"can't compile|packing (?:has )?failed|packAddon.*failed|fatal error", line, re.I)] + if path.name in {'error.log', 'crash.log'} and content.strip(): + errors.append('Nonempty native '+path.name) + records[str(path)] = {'sha256': digest(path), 'bytes': path.stat().st_size, 'errors': errors} + failures.extend(errors) + return records, failures + + +def package_inventory(folder): + records = {} + if folder.is_symlink(): + raise ValueError('Native package root is a symlink') + if not folder.is_dir(): + return records + for path in folder.rglob('*'): + if path.is_symlink() or not (path.is_file() or path.is_dir()): + raise ValueError('Nonregular native package output') + if path.is_file(): + records[path.relative_to(folder).as_posix()] = {'bytes': path.stat().st_size, 'sha256': digest(path)} + return records + + +def candidate_ok(exit_code, result, cleanup_ok, unchanged, logs, errors, packages): + return (exit_code == 0 and result in {'process-exited', 'native-child-exited'} and cleanup_ok and unchanged + and bool(logs) and not errors + and any(name.lower().endswith('.pak') and info['bytes'] > 0 for name, info in packages.items()) + and all(info['bytes'] > 0 for name, info in packages.items() if name.lower().endswith('.pak'))) + + +def quiet_streams(application_id, sink, compat): + streams = json.loads(subprocess.check_output(['pactl', '-f', 'json', 'list', 'sink-inputs'], text=True, timeout=5)) + for stream in streams: + props = stream.get('properties', {}) + owned = props.get('application.id') == application_id + pid = str(props.get('application.process.id', '')) + if not owned and pid.isdigit(): + try: + owned = ('WINEPREFIX='+str(compat/'pfx')).encode() in (Path('/proc')/pid/'environ').read_bytes().split(b'\0') + except (FileNotFoundError, PermissionError, ProcessLookupError): + pass + if owned: + for args in [['move-sink-input', str(stream['index']), sink], ['set-sink-input-mute', str(stream['index']), '1']]: + subprocess.run(['pactl', *args], check=True, timeout=5, stdout=subprocess.DEVNULL) + + +def run_project(steam, compat, session, project, timeout, authored, silent_workbench=False): + command = command_for(steam, session, project, silent_workbench) + proton = Path(command[command.index('--')+1]) + executable = Path(command[command.index('--')+3]) + profile = session/'profiles'/project + (profile/'addons').mkdir(parents=True) + (profile/'addons/ArmaReforger').symlink_to(steam/'steamapps/common/Arma Reforger/addons/data', target_is_directory=True) + for name in ('packages', 'cache', 'evidence'): + (session/name/project).mkdir(parents=True) + evidence = session/'evidence'/project + separator = command.index('--') + native_command = command[separator+1:] + recorder = evidence/'native-child.py' + recorder.write_text(CHILD_RECORDER) + status_path = evidence/'native-exit.json' + environment_path = evidence/'native-prefix-environment.json' + prefix_environment = {'STEAM_COMPAT_DATA_PATH': str(compat), 'STEAM_COMPAT_CLIENT_INSTALL_PATH': str(steam), + 'WINEPREFIX': str(compat/'pfx')} + save(environment_path, prefix_environment) + command = command[:separator+1] + [sys.executable, str(recorder), str(status_path), str(environment_path), *native_command] + save(evidence/'launch.json', {'command': command, 'native_command': native_command, 'authored': authored, 'started_unix': time.time(), + 'executable_sha256': digest(executable), 'proton_sha256': digest(proton), + 'child_recorder_sha256': digest(recorder), 'native_environment_sha256': digest(environment_path), + 'silent_workbench_experiment': silent_workbench}) + run_id = uuid.uuid4().hex + sink, application_id = 'erri_pack_'+run_id, 'org.escapistsrereintroduced.pack.'+run_id + env = os.environ.copy() + env.update(prefix_environment) + env.update(PULSE_SINK=sink, PULSE_PROP='application.id='+application_id) + # Prefix-idle checks must not mistake a lingering display wrapper for Wine. + # Only the recorder's direct Proton child receives these three overrides. + display_env = {key: value for key, value in env.items() if key not in prefix_environment} + child = None + module = None + exit_code = None + result, cleanup_ok, runner_error = 'timeout', True, None + launch_log = evidence/'launch.log' + deadline = time.monotonic()+timeout + launcher_exited_at = None + try: + assert_no_game() + assert_prefix_idle(compat) + module = subprocess.check_output(['pactl', 'load-module', 'module-null-sink', 'sink_name='+sink], text=True, timeout=5).strip() + for args in [['set-sink-mute', sink, '1'], ['set-sink-volume', sink, '0%']]: + subprocess.run(['pactl', *args], check=True, timeout=5) + assert_prefix_idle(compat) + with launch_log.open('x') as output: + child = subprocess.Popen(command, cwd=executable.parent, env=display_env, stdout=output, + stderr=subprocess.STDOUT, start_new_session=True) + while time.monotonic() < deadline: + quiet_streams(application_id, sink, compat) + if time.monotonic() >= deadline: + break # audio/process observation must not extend the deadline + exit_code = child.poll() + recorded_native_exit = child_status(status_path, native_command) + if exit_code is not None or recorded_native_exit is not None: + # Gamescope exit alone cannot prove Workbench ended. + # Never qualify output completed by forcibly killing a child. + if launcher_exited_at is None: + launcher_exited_at = time.monotonic() + try: + assert_prefix_idle(compat) + if time.monotonic() >= deadline: + break + result = 'process-exited' if exit_code is not None else 'native-child-exited' + break + except ValueError: + if time.monotonic()-launcher_exited_at >= 10: + result = 'native-or-launcher-exited-prefix-active' + break + time.sleep(min(.5, max(0, deadline-time.monotonic()))) + except KeyboardInterrupt: + result = 'interrupted' + except (OSError, ValueError, subprocess.SubprocessError) as error: + result, runner_error = 'runner-failed', str(error) + finally: + if child is not None: + try: + # Reuse guarded ordinary runner cleanup, only after owning the + # shared prefix lock and proving that prefix was initially idle. + cleanup(child, proton, env) + assert_prefix_idle(compat) + except (OSError, ValueError, subprocess.SubprocessError) as error: + cleanup_ok, runner_error = False, str(error) + if module is not None: + try: + subprocess.run(['pactl', 'unload-module', module], check=True, timeout=5, stdout=subprocess.DEVNULL) + except (OSError, subprocess.SubprocessError) as error: + cleanup_ok, runner_error = False, str(error) + paths = list((profile/'logs').rglob('*.log')) + if launch_log.is_file(): + paths.append(launch_log) + try: + if any(not path.resolve().is_relative_to(session.resolve()) for path in paths): + raise ValueError('Native log escaped owned session') + logs, errors = log_evidence(paths) + packages = package_inventory(session/'packages'/project) + after = copied_authored_snapshot(session/'source', authored) + save(evidence/'authored-after.json', after) + unchanged = after == authored + except (OSError, ValueError) as error: + logs, packages, unchanged = {}, {}, False + errors = ['Output/evidence validation failed: '+str(error)] + native_logs = [name for name in logs if Path(name).name == 'console.log' and logs[name]['bytes'] > 0] + native_exit = child_status(status_path, native_command) + wrapper_ok = exit_code == 0 or (exit_code is None and result == 'native-child-exited') + candidate = wrapper_ok and candidate_ok(native_exit, result, cleanup_ok, unchanged, native_logs, errors, packages) + report = {'project': project, 'result': 'native-pack-candidate' if candidate else ('validation-failed' if result in {'process-exited', 'native-child-exited'} else result), + 'candidate_created': candidate, 'native_exit_code': native_exit, 'launcher_exit_code': exit_code, + 'completion_observed': result, 'display_cleanup_after_native_exit': result == 'native-child-exited', + 'silent_workbench_experiment': silent_workbench, + 'native_status_sha256': digest(status_path) if status_path.is_file() and not status_path.is_symlink() else None, + 'cleanup_confirmed': cleanup_ok, + 'copied_authored_unchanged': unchanged, 'runner_error': runner_error, + 'logs': logs, 'errors': errors, 'packages': packages, + 'package_contents_verified': False, 'native_consumption_verified': False, + 'tool_completion_semantics_verified': False, 'release_qualified': False, + 'qualification': 'PENDING: inspect native contents and load packed-only addon closure; no release claim'} + save(evidence/'report.json', report) + return report + + +def run(a, root=ROOT): + root, steam, compat = root.resolve(), a.steam.resolve(), a.compat.resolve() + session = a.session.absolute() # refuse existing symlinks before resolve + validate_session(root, steam, compat, session) + if not 30 <= a.timeout <= 1800: + raise ValueError('--timeout must be 30..1800 seconds per addon') + command = command_for(steam, session, a.project) + separator = command.index('--') + for path in (Path(command[separator+1]), Path(command[separator+3]), steam/'steamapps/common/Arma Reforger/addons/data/ArmaReforger.gproj'): + if not path.is_file(): + raise ValueError('Installed runtime dependency missing: '+str(path)) + if not shutil.which('gamescope') or not shutil.which('pactl'): + raise ValueError('gamescope and pactl required') + assert_no_game() + descriptor = os.open(compat/'.erri-workbench.lock', os.O_RDWR | os.O_CREAT | os.O_NOFOLLOW, 0o600) + with os.fdopen(descriptor, 'a') as lock: + try: + fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB) + except BlockingIOError: + raise ValueError('Another native runner owns the disposable prefix') + assert_prefix_idle(compat) + authored = copy_payload(root, session) + reports = [] + order = project_order(a.project) + continue_on_failure = getattr(a, 'continue_on_failure', False) + stopped_reason = None + for project in order: + report = run_project(steam, compat, session, project, a.timeout, authored, getattr(a, 'silent_workbench', False)) + reports.append(report) + # Diagnostic continuation never grants authority to reuse an unsafe + # prefix or a changed source copy. Timeout/interruption also stop. + if not report.get('cleanup_confirmed'): + stopped_reason = 'owned cleanup unconfirmed' + elif report.get('runner_error'): + stopped_reason = 'native runner error' + elif not report.get('copied_authored_unchanged'): + stopped_reason = 'copied authored source changed or unverifiable' + elif report.get('completion_observed') not in {'process-exited', 'native-child-exited'}: + stopped_reason = 'native completion not safely observed' + elif not report['candidate_created'] and not continue_on_failure: + stopped_reason = 'candidate failed; continuation not requested' + if stopped_reason: + break + if len(reports) < len(order): + try: + assert_prefix_idle(compat) + except (OSError, ValueError, subprocess.SubprocessError) as error: + stopped_reason = 'prefix not verifiably idle before next addon: '+str(error) + break + try: + original_after = inventory(root) + save(session/'repository-after.json', original_after) + original_unchanged = original_after == authored + except (OSError, ValueError): + original_unchanged = False + summary = {'kind': 'UNQUALIFIED NATIVE PACKAGE ATTEMPT', 'session': str(session), + 'project_order': order, 'projects': reports, + 'continue_on_failure': continue_on_failure, 'stopped_reason': stopped_reason, + 'skipped_projects': order[len(reports):], + 'source_repository_unchanged': original_unchanged, + 'release_qualified': False, 'published': False, + 'qualification': 'PENDING native contents inspection and packed-only consumption'} + summary['all_candidates_created'] = original_unchanged and stopped_reason is None and len(reports) == len(order) and all(r['candidate_created'] for r in reports) + save(session/'package-report.json', summary) + print(json.dumps(summary, indent=2)) + return 0 if summary['all_candidates_created'] else 1 + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--project', choices=PROJECTS, default='core', help='Build selected addon and its successor dependencies in order') + parser.add_argument('--session', type=Path, required=True, help='New direct child of /tmp; never overwritten') + parser.add_argument('--compat', type=Path, required=True, help='Idle disposable cloned Tools prefix under /tmp') + parser.add_argument('--steam', type=Path, default=Path.home()/'.local/share/Steam') + parser.add_argument('--timeout', type=int, default=300, help='30..1800 seconds per addon') + parser.add_argument('--silent-workbench', action='store_true', help='Opt-in documented -wbSilent experiment; packing compatibility still requires native evidence') + parser.add_argument('--continue-on-failure', action='store_true', help='Diagnostic only: continue completed, safely cleaned addon attempts after validation failures; any failure keeps overall exit nonzero and unqualified') + args = parser.parse_args(argv) + try: + return run(args) + except (ValueError, OSError, subprocess.SubprocessError) as error: + print(json.dumps({'result': 'refused-or-failed', 'error': str(error), 'release_qualified': False})) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/tools/pak_inventory.py b/tools/pak_inventory.py new file mode 100644 index 0000000..7d50f0c --- /dev/null +++ b/tools/pak_inventory.py @@ -0,0 +1,256 @@ +#!/usr/bin/env python3 +"""Read-only strict inventory of the observed Enfusion FORM/PAC1 PAK format. +Names, declared sizes and verified content hashes only; never extract payloads. +""" +import argparse +from dataclasses import dataclass +import hashlib +import json +import os +from pathlib import Path +import re +import stat +import struct +import unicodedata +import zlib + +BLOCK = 1024 * 1024 + + +class PakError(ValueError): + pass + + +@dataclass(frozen=True) +class Limits: + archive_bytes: int = 4 * 1024**3 + tree_bytes: int = 32 * 1024**2 + entries: int = 250000 # files plus directories + depth: int = 64 + entry_bytes: int = 1024**3 + total_bytes: int = 8 * 1024**3 + expansion_ratio: int = 1024 + + def validate(self): + if any(type(value) is not int or value <= 0 for value in vars(self).values()): + raise PakError('All limits must be positive integers') + if self.depth > 128: + raise PakError('Maximum supported tree depth is 128') + + +def exact(stream, count): + data = stream.read(count) + if len(data) != count: + raise PakError('Truncated archive') + return data + + +def component(raw): + try: + name = raw.decode('utf-8') + except UnicodeDecodeError as error: + raise PakError('Non-UTF-8 entry name') from error + if (not name or name in {'.', '..'} or any(char in name for char in '/\\:') + or any(ord(char) < 32 or ord(char) == 127 for char in name) + or name.endswith((' ', '.')) or unicodedata.normalize('NFC', name) != name + or re.fullmatch(r'(?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\..*)?', name, re.I)): + raise PakError('Unsafe or noncanonical entry name') + return name + + +def parse_tree(tree, data_start, data_end, limits): + if len(tree) < 6 or tree[:2] != b'\0\0': + raise PakError('Unsupported FILE root header') + offset = 6 + seen = set() + entries = [] + count_seen = 0 + total = 0 + + def take(size): + nonlocal offset + if offset + size > len(tree): + raise PakError('Truncated FILE entry') + result = tree[offset:offset+size] + offset += size + return result + + def walk(parent, count, depth): + nonlocal count_seen, total + if depth > limits.depth or count > limits.entries - count_seen: + raise PakError('Directory depth/count limit exceeded') + for _ in range(count): + count_seen += 1 + if count_seen > limits.entries: + raise PakError('Entry count limit exceeded') + kind, length = take(2) + name = component(take(length)) + path = parent + name + key = path.casefold() + if key in seen: + raise PakError('Duplicate or case-colliding file/directory path: '+path) + seen.add(key) + if kind == 0: + children = struct.unpack(' data_end or stored > data_end-start: + raise PakError('Payload outside DATA bounds: '+path) + if flags == (0, 0) and stored != size: + raise PakError('Raw payload stored/expanded size mismatch: '+path) + if flags == (1, 6) and stored == 0: + raise PakError('Empty compressed stream: '+path) + if size > limits.entry_bytes or size > max(1, stored)*limits.expansion_ratio: + raise PakError('Entry expansion/size limit exceeded: '+path) + total += size + if total > limits.total_bytes: + raise PakError('Aggregate expanded-data limit exceeded') + entries.append({'path': path, 'offset': start, 'stored_bytes': stored, + 'content_bytes': size, 'compression': 'zlib' if flags[0] else 'raw', + 'opaque_tail_hex': raw[20:24].hex()}) + else: + raise PakError('Unsupported FILE node kind') + + walk('', struct.unpack_from(' expected: + raise PakError('Expanded data exceeds declared size: '+entry['path']) + hasher.update(data) + + try: + while remaining: + data = exact(stream, min(BLOCK, remaining)) + remaining -= len(data) + if decoder is None: + accept(data) + continue + while data: + previous = data + output = decoder.decompress(data, min(BLOCK, expected-produced+1)) + accept(output) + if decoder.unused_data or (decoder.eof and remaining): + raise PakError('Trailing/concatenated compressed payload: '+entry['path']) + data = decoder.unconsumed_tail + if data == previous and not output: + raise PakError('Compressed decoder made no progress') + if decoder is not None: + while not decoder.eof: + output = decoder.decompress(b'', min(BLOCK, expected-produced+1)) + if not output: + break + accept(output) + if not decoder.eof or decoder.unused_data or decoder.unconsumed_tail: + raise PakError('Incomplete/extra compressed payload: '+entry['path']) + except zlib.error as error: + raise PakError('Invalid zlib stream: '+entry['path']) from error + if produced != expected: + raise PakError('Expanded size mismatch: '+entry['path']) + return hasher.hexdigest() + + +def inventory(path, limits=Limits()): + limits.validate() + path = Path(path) + descriptor = os.open(path, os.O_RDONLY | os.O_NONBLOCK | os.O_NOFOLLOW) + with os.fdopen(descriptor, 'rb') as stream: + before = os.fstat(stream.fileno()) + if not stat.S_ISREG(before.st_mode) or before.st_size > limits.archive_bytes: + raise PakError('Input must be a regular archive within its size limit') + header = exact(stream, 12) + if header[:4] != b'FORM' or header[8:] != b'PAC1' or struct.unpack_from('>I', header, 4)[0] != before.st_size-8: + raise PakError('Unsupported or inconsistent FORM/PAC1 header') + offset = 12 + chunks = {} + for expected in (b'HEAD', b'DATA', b'FILE'): + stream.seek(offset) + tag, size = struct.unpack('>4sI', exact(stream, 8)) + if tag != expected or size > before.st_size-offset-8: + raise PakError('Unsupported chunk order or out-of-bounds chunk') + chunks[tag] = (offset+8, size) + offset += 8+size + if offset != before.st_size: + raise PakError('Unknown trailing archive chunks/bytes') + start, size = chunks[b'HEAD'] + if size != 28: + raise PakError('Unsupported HEAD size') + stream.seek(start) + head = exact(stream, size) + if head[:4] != b'\x03\x00\x01\x00' or head[24:] != b'\0'*4: + raise PakError('Unsupported HEAD version/flags') + start, size = chunks[b'FILE'] + if size > limits.tree_bytes: + raise PakError('FILE metadata exceeds size limit') + stream.seek(start) + tree = exact(stream, size) + data_start, data_size = chunks[b'DATA'] + entries, expanded, nodes = parse_tree(tree, data_start, data_start+data_size, limits) + for entry in entries: + entry['sha256'] = content_hash(stream, entry) + stream.seek(0) + archive_hash = hashlib.sha256() + for block in iter(lambda: stream.read(BLOCK), b''): + archive_hash.update(block) + after = os.fstat(stream.fileno()) + if (before.st_size, before.st_mtime_ns, before.st_ctime_ns) != (after.st_size, after.st_mtime_ns, after.st_ctime_ns): + raise PakError('Archive changed during inspection') + return {'format': 'FORM/PAC1 observed HEAD 03000100', 'archive': str(path), + 'archive_bytes': before.st_size, 'archive_sha256': archive_hash.hexdigest(), + 'head_hex': head.hex(), 'entry_count': len(entries), 'tree_node_count': nodes, + 'expanded_bytes': expanded, 'entries': sorted(entries, key=lambda row: row['path']), + 'limits': vars(limits), 'structural_inventory_verified': True, + 'platform_or_resource_semantics_verified': False, 'release_qualified': False, + 'scope': 'Bounded structural/content-hash inspection only; no extraction, native load or gameplay proof'} + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('archive', type=Path) + parser.add_argument('--output', type=Path, help='New JSON report only; never overwritten') + args = parser.parse_args(argv) + try: + if args.output and (args.output.exists() or args.output.is_symlink()): + raise PakError('Output already exists; refusing overwrite') + report = inventory(args.archive) + text = json.dumps(report, indent=2, sort_keys=True)+'\n' + if args.output: + with args.output.open('x') as output: + output.write(text) + else: + print(text, end='') + return 0 + except (OSError, ValueError, struct.error) as error: + print(json.dumps({'structural_inventory_verified': False, 'error': str(error), 'release_qualified': False})) + return 1 + + +if __name__ == '__main__': + raise SystemExit(main())