Capture current mission, AI, map and administration development

Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
2026-10-13 22:52:53 +02:00
parent a951a96edc
commit 6a667d8deb
8104 changed files with 2124945 additions and 2061 deletions
@@ -0,0 +1,24 @@
{
"console.log.txt": "4d6d43a48ae1b9ad1b97e4be02567936612a4b34ae6c7efa110c2c4fa208456f",
"error.log.txt": "468b0aa241666eb5f87ffa9a71248275afd16b2a7c89fbdc4fa2ec9ab8c29c98",
"external-addons-inputs.json.txt": "e2ece5115931dcb1e5d490e9777f43fea2098df66dbb152acc481ce7a73a813d",
"fixture-inputs.json": "79b2829c8a7ce67176f098dd324c9311de1f8dc152dd55fc69f718b0895d8799",
"headless-launch.log.txt": "c67ad755c1490d769578b1b6197e357ccb3b60babe34b8fb8089c3c29cf97c13",
"launch-source-sha256.json": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc",
"launch-source.json": "cb26442767222d1868dfdea63258fa1c435eae7eccd4bf204440b0511c6cad40",
"relevant-source-matches.json": "fe08d764bf311e57e3c73aff35f627eb9cef866848e124f0f17c1af98785b858",
"report.json": "6470d9e94c43eb85b17764a7c74d864a8876e945971fb2d360bf3a274121d878",
"runner-output.log.txt": "94265b33cb2e0f3e86d86fcf04fd71723a717f6ce8662c5925e8ac0b77be823f",
"runner.json.txt": "b1de74767ffca13d8b114b38059cf5e4de0d8f2885bb4a5c4cf26c51de4638a2",
"script.log.txt": "394f89d18e16131ba6e0444df07ce2b0ccece6265c0adec93d96d0e448a60f9a",
"source/addons/core/Configs/ERR/ObserverInput.conf": "89928b57fdd6fa3ae837fb2daf55f627a62a98fd111ffdb55c2874f1e040afaf",
"source/addons/core/Configs/ERR/Tests/LegacySites.conf": "db318cbec1a5ed520bd2858ddb51baf76355d6ec5893e0503a44b1ea5dbfa9d5",
"source/addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "663f078609cfde3cad36cdc107e18d9a07788b9ca785675e85e552be330289aa",
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
"source/addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "2c4fab3c1b117ad42473b7772f0e349e8761367bcb26d0f7bb7d25d65f877299",
"source-provenance.json": "c1f270c1969af10bbfb78e1d661ce66873eb4c96f321df980a722a80c71c05f1",
"source-sha256.json": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc"
}
@@ -0,0 +1,484 @@
---------------------------------------------
Log Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02\console.log started at 2026-10-13 19:43:02 (2026-10-13 17:43:02 UTC)
19:43:02.002 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02' to filesystem under name logs
19:43:02.002 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-observer-chat-run-a01\profile' to filesystem under name profile
19:43:02.002 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
19:43:02.004 PROFILING : Workbench Create Engine took: 8.380800 ms
19:43:03.027 INIT : INIT : Workbench Init Engine
19:43:03.027 ENGINE : Initializing engine, version 192142
19:43:03.027 ENGINE : CLI Params: -gproj Z:/tmp/erri-observer-chat-source-a01/addons/core/addon.gproj -addonsDir Z:/tmp/erri-observer-chat-source-a01/addons -profile Z:/tmp/erri-observer-chat-run-a01 -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateBaseWorldPlugin -errPlay 1 -errBaseSmoke 1 -errSmokeOutcome unconscious-camera -noThrow -disableCrashReporter
19:43:03.039 ENGINE : Addon dirs:
19:43:03.039 ENGINE : dir: 'Z:/tmp/erri-observer-chat-source-a01/addons/core/'
19:43:03.039 ENGINE : dir: 'Z:/tmp/erri-observer-chat-source-a01/addons'
19:43:03.039 ENGINE : dir: './addons'
19:43:03.039 ENGINE : dir: 'Z:/tmp/erri-observer-chat-run-a01/addons'
19:43:03.039 ENGINE : Available addons:
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-source-a01/addons/core/addon.gproj' guid: '2528466DE220D91C'
19:43:03.039 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed)
19:43:03.039 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed)
19:43:03.040 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-observer-chat-source-a01\addons\core' to filesystem under name ERR_Core
19:43:03.041 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_65930CB4CD0237B2/' (pak count: 1) to filesystem under name Parachutes
19:43:03.042 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/' (pak count: 1) to filesystem under name WCS_BMP-1
19:43:03.043 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/' (pak count: 1) to filesystem under name WCS_SpaceCore
19:43:03.045 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/' (pak count: 1) to filesystem under name WCS_Armaments
19:43:03.050 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core
19:43:03.052 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02
19:43:03.057 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01
19:43:03.175 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-observer-chat-run-a01/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
19:43:03.178 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
19:43:03.178 ENGINE : CPU vendor : AuthenticAMD
19:43:03.178 ENGINE : CPU type : 2
19:43:03.178 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
19:43:03.178 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
19:43:03.178 ENGINE : CPU count logical : 16
19:43:03.178 ENGINE : CPU count physical : 8
19:43:03.178 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
19:43:03.178 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Core path=Z:\tmp\erri-observer-chat-source-a01\addons\core/resourceDatabase.rdb)
19:43:03.178 RESOURCES : ResourceDB: loading cache (id=1 name=Parachutes path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_65930CB4CD0237B2/resourceDatabase.rdb)
19:43:03.179 RESOURCES : ResourceDB: loading cache (id=2 name=WCS_BMP-1 path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/resourceDatabase.rdb)
19:43:03.179 RESOURCES : ResourceDB: loading cache (id=3 name=WCS_SpaceCore path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/resourceDatabase.rdb)
19:43:03.180 RESOURCES : ResourceDB: loading cache (id=4 name=WCS_Armaments path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/resourceDatabase.rdb)
19:43:03.182 RESOURCES : ResourceDB: loading cache (id=5 name=RHS_Core path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb)
19:43:03.193 RESOURCES : ResourceDB: loading cache (id=6 name=RHS_Content_02 path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb)
19:43:03.195 RESOURCES : ResourceDB: loading cache (id=7 name=RHS_Content_01 path=Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb)
19:43:03.202 RESOURCES : ResourceDB: loading cache (id=8 name=ArmaReforger path=Z:/tmp/erri-observer-chat-run-a01/addons/ArmaReforger/resourceDatabase.rdb)
19:43:03.353 RESOURCES : ResourceDB: loading cache (id=9 name=core path=./addons/core/resourceDatabase.rdb)
19:43:03.354 RESOURCES : ResourceDB: loading cache (id=10 name=profile path=Z:\tmp\erri-observer-chat-run-a01\profile/resourceDatabase.rdb)
19:43:03.354 RESOURCES : ResourceDB: loading cache (id=11 name=logs path=Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02/resourceDatabase.rdb)
19:43:03.523 RESOURCES : RESOURCES : ResourceDB: full scan
19:43:03.529 RESOURCES : RESOURCES : scanning...
19:43:03.529 RESOURCES : RESOURCES : scanning @"ERR_Core"
19:43:03.545 RESOURCES : RESOURCES : scanning @"Parachutes"
19:43:03.548 RESOURCES : RESOURCES : scanning @"WCS_BMP-1"
19:43:03.550 RESOURCES : RESOURCES : scanning @"WCS_SpaceCore"
19:43:03.553 RESOURCES : RESOURCES : scanning @"WCS_Armaments"
19:43:03.558 RESOURCES : RESOURCES : scanning @"RHS_Core"
19:43:03.570 RESOURCES : RESOURCES : scanning @"RHS_Content_02"
19:43:03.574 RESOURCES : RESOURCES : scanning @"RHS_Content_01"
19:43:03.582 RESOURCES : RESOURCES : scanning @"ArmaReforger"
19:43:03.824 RESOURCES : RESOURCES : scanning @"core"
19:43:03.828 RESOURCES : RESOURCES : scanning @"profile"
19:43:03.829 RESOURCES : RESOURCES : scanning @"logs"
19:43:03.829 RESOURCES : RESOURCES : processing meta-files...
19:43:03.921 RESOURCES : RESOURCES : processing files...
19:43:03.922 INIT : Workbench startup
19:43:03.922 INIT : Workbench Init Engine
19:43:03.922 RESOURCES : ResourceDB: full scan
19:43:03.922 RESOURCES : processing files...
19:43:03.922 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
19:43:03.934 RESOURCES : RESOURCES : processing folders...
19:43:03.943 RESOURCES : RESOURCES : creating GUID-item mapping...
19:43:03.961 RESOURCES : RESOURCES : building tree...
19:43:04.017 PROFILING : ResourceDB: full scan took: 494.795100 ms
19:43:04.018 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Core path=Z:\tmp\erri-observer-chat-source-a01\addons\core/resourceDatabase.rdb)
19:43:04.020 RESOURCES : ResourceDB: written 30589/30589 bytes
19:43:04.020 RESOURCES : ResourceDB: cache successfully saved
19:43:04.020 RESOURCES : ResourceDB: saving cache (id=10 name=profile path=Z:\tmp\erri-observer-chat-run-a01\profile/resourceDatabase.rdb)
19:43:04.022 RESOURCES : ResourceDB: written 51/51 bytes
19:43:04.022 RESOURCES : ResourceDB: cache successfully saved
19:43:04.022 RESOURCES : ResourceDB: saving cache (id=11 name=logs path=Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02/resourceDatabase.rdb)
19:43:04.023 RESOURCES : ResourceDB: written 208/208 bytes
19:43:04.023 RESOURCES : ResourceDB: cache successfully saved
19:43:04.023 ENGINE : GameProject load
19:43:04.023 ENGINE : Loaded addons:
19:43:04.023 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2'
19:43:04.023 ENGINE : gproj: 'Z:/tmp/erri-observer-chat-source-a01/addons/core/addon.gproj' guid: '2528466DE220D91C'
19:43:04.025 ENGINE : GameProject load
19:43:04.025 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/addon.gproj"
19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
19:43:04.025 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/addon.gproj"
19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
19:43:04.026 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
19:43:04.026 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
19:43:04.026 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
19:43:04.026 ENGINE : No Enfusion settings file loaded. Continuing with defaults
19:43:04.123 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
19:43:04.125 RENDER : Basic screen setup:
19:43:04.125 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
19:43:04.125 RENDER : MSAA : none
19:43:04.136 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
19:43:04.136 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
19:43:04.136 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
19:43:04.136 RENDER : * core clocks 2720 MHz, memory 1124 MHz
19:43:04.136 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
19:43:04.136 RENDER : AMD AGS correctly initialized
19:43:04.137 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
19:43:04.137 RENDER : Detected output devices:
19:43:04.137 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
19:43:04.137 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
19:43:04.137 RENDER : Concurrent frames limit 2
19:43:04.207 RENDER : DX12 device successfully created by AMD AGS library
19:43:04.207 RENDER : * user markers not supported in this version AMD SW
19:43:04.207 RENDER : Graphics device features
19:43:04.207 RENDER : Needed:
19:43:04.207 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
19:43:04.207 RENDER : Optional:
19:43:04.207 RENDER : * Allow tearing (VSYNC) : 1
19:43:04.207 RENDER : * 16 bits : 1
19:43:04.207 RENDER : * Resource heap tier : 3
19:43:04.207 RENDER : * Persistent heaps (DRED) : 1
19:43:04.207 RENDER : * DRED 1.2 is supported by compiler
19:43:04.228 RENDER : Main RT format setup.
19:43:04.228 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
19:43:04.228 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
19:43:04.229 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
19:43:04.253 PROFILING : Settings changed took: 0.017400 ms
19:43:04.577 AUDIO : Endpoint: Speakers (PulseAudio Output)
19:43:04.577 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
19:43:04.577 AUDIO : Audio client:
19:43:04.577 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
19:43:04.580 RENDER : RENDER : Reload shaders
19:43:04.580 RENDER : Enfusion shader version 13
19:43:04.580 INIT : INIT : ShaderListReload
19:43:04.580 PROFILING : ShaderListReload took: 0.000500 ms
19:43:04.714 AUDIO : Endpoint: Speakers (PulseAudio Output)
19:43:04.714 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
19:43:04.714 AUDIO : Audio client:
19:43:04.714 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
19:43:04.766 RENDER : Loaded 3752 newer shader binaries
19:43:04.767 PROFILING : Reload shaders took: 186.936100 ms
19:43:04.767 ENGINE : Initializing inputs.
19:43:04.778 NETWORK : Initializing networking.
19:43:04.778 NETWORK : Using new GameRplScheduler.
19:43:04.778 SCRIPT : SCRIPT : Initializing scripts
19:43:04.778 SCRIPT : SCRIPT : ScriptProjectManager init
19:43:06.004 PROFILING : ScriptProjectManager init took: 1225.163700 ms
19:43:06.032 PROFILING : Initializing scripts took: 1253.787700 ms
19:43:06.048 ENGINE : Enfusion engine successfully created.
19:43:06.048 PROFILING : Workbench Init Engine took: 3020.949700 ms
19:43:06.048 INIT : INIT : Workbench Create Game
19:43:06.057 GUI : Using default language (en_us)
19:43:06.057 GUI : Loading 'en_us' localization file.
19:43:06.057 INIT : INIT : Loading StringTable
19:43:06.081 PROFILING : Loading StringTable took: 23.923700 ms
19:43:06.081 SCRIPT : SCRIPT : Compiling GameLib scripts
19:43:06.124 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
19:43:06.124 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
19:43:06.125 PROFILING : Compiling GameLib scripts took: 43.397600 ms
19:43:06.125 SCRIPT : SCRIPT : Compiling Game scripts
19:43:06.856 INIT : Workbench Create Game
19:43:06.856 SCRIPT : Compiling Game scripts
19:43:06.856 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
19:43:07.668 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,360": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.682 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
19:43:07.720 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
19:43:07.864 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.874 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
19:43:07.937 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
19:43:07.963 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,296": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,308": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
19:43:08.014 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:08.044 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
19:43:08.409 SCRIPT : Module: WorkbenchGame; loaded 187x files; 658x classes; used 2755K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: b5662d84
19:43:08.417 SCRIPT : Module: Game; loaded 6767x files; 13999x classes; used 43384K 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,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: e0c21f88
19:43:08.467 PROFILING : Compiling Game scripts took: 2341.806700 ms
19:43:08.472 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
19:43:08.521 ENGINE : Game successfully created.
19:43:08.522 PROFILING : Workbench Create Game took: 2473.649200 ms
19:43:08.529 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/thumbnails
19:43:09.356 INIT : INIT : Workbench Reload Game
19:43:09.358 ENGINE : Game destroyed.
19:43:09.364 GUI : Using default language (en_us)
19:43:09.364 GUI : Loading 'en_us' localization file.
19:43:09.364 INIT : INIT : Loading StringTable
19:43:09.375 PROFILING : Loading StringTable took: 10.886900 ms
19:43:09.375 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
19:43:09.383 SCRIPT : Unable to register a script command due keyword duplicity: ban
19:43:09.383 SCRIPT : Unable to register a script command due keyword duplicity: kick
19:43:09.383 ENGINE : Game successfully created.
19:43:09.383 ENGINE : Game successfully initialized.
19:43:09.383 PROFILING : Workbench Reload Game took: 27.400500 ms
19:43:10.073 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
19:43:11.117 PROFILING : Entities load took: 1043.373100 ms
19:43:11.126 WORLD : WORLD : CreateEntities
19:43:11.131 WORLD : WORLD : NotifyBeforeEntitiesCreated
19:43:11.132 PROFILING : NotifyBeforeEntitiesCreated took: 0.002800 ms
19:43:11.132 WORLD : WORLD : Wait for preloading data
19:43:11.132 PROFILING : Wait for preloading data took: 0.002500 ms
19:43:11.250 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
19:43:11.250 PROFILING : PROFILING : Terrain load
19:43:12.804 PROFILING : Terrain load took: 1553.122800 ms
19:43:16.312 WORLD : CreateEntities
19:43:16.312 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"
19:43:16.312 ENTITY : CreateComponent 'ScriptedRadioComponent'
19:43:16.312 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
19:43:25.017 WORLD : WORLD : NotifyBeforeEntitiesInitialized
19:43:25.017 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005300 ms
19:43:25.417 WORLD : InitEntities 'world'
19:43:25.417 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
19:43:25.417 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used.
19:43:25.419 WORLD : WORLD : NotifyEntitiesInitialized
19:43:25.419 TERRAIN : TERRAIN : Initializing road networks...
19:43:25.422 PROFILING : Initializing road networks... took: 2.674800 ms
19:43:25.422 PROFILING : NotifyEntitiesInitialized took: 3.006000 ms
19:43:25.423 PROFILING : CreateEntities took: 14297.196900 ms
19:43:25.583 PROFILING : * WorldEditor: LoadWorld: 15525.592500 ms
19:43:26.974 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf)
19:43:26.974 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf)
19:43:26.976 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'...
19:43:26.976 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping...
19:43:27.065 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5
19:43:27.088 BACKEND : Attempting online Game Config instead.
19:43:27.090 PLATFORM (E): Steamworks: RequestCurrentStats failed
19:43:29.759 INIT : INIT : Workbench Reload Game
19:43:29.761 ENGINE : Game destroyed.
19:43:29.768 GUI : Using default language (en_us)
19:43:29.768 GUI : Loading 'en_us' localization file.
19:43:29.768 INIT : INIT : Loading StringTable
19:43:29.788 PROFILING : Loading StringTable took: 20.251100 ms
19:43:29.789 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
19:43:29.797 SCRIPT : Unable to register a script command due keyword duplicity: ban
19:43:29.797 SCRIPT : Unable to register a script command due keyword duplicity: kick
19:43:29.797 ENGINE : Game successfully created.
19:43:29.797 ENGINE : Game successfully initialized.
19:43:29.797 PROFILING : Workbench Reload Game took: 38.115900 ms
19:43:29.800 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
19:43:29.843 PLATFORM : Save data from container 'settings' have been loaded
19:43:29.934 PLATFORM : Save data from container 'sessions' have been loaded
19:43:30.030 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'.
19:43:30.032 RESOURCES : GetResourceObject @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT : Config load @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 RESOURCES : GetResourceObject @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT : Config load @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT (E): Unknown class 'SCR_ChatPanelManager' at offset 656(0x290)
19:43:30.037 WORLD : WORLD : Game::LoadEntities
19:43:30.037 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf"
19:43:30.038 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
19:43:30.038 WORLD : WORLD : CreateEntities
19:43:30.038 WORLD : WORLD : CreateEntities
19:43:30.038 WORLD : WORLD : NotifyBeforeEntitiesCreated
19:43:30.043 RESOURCES : Loaded mission headers from 10 addon(s)!
19:43:30.043 PROFILING : NotifyBeforeEntitiesCreated took: 4.841900 ms
19:43:30.043 WORLD : WORLD : Wait for preloading data
19:43:30.043 PROFILING : Wait for preloading data took: 0.000700 ms
19:43:30.372 WORLD : Game::LoadEntities
19:43:30.372 WORLD : CreateEntities
19:43:30.372 WORLD : CreateEntities
19:43:30.372 ENTITY : Create entity @"ENTITY:44860" ('PreloadManager1', BasePreloadManager) at <0.033000 0.000000 -0.021000> @"{104F8505FD1871EF}Prefabs/World/Game/PreloadManager.et"
19:43:30.372 ENTITY : SpawnEntityPrefab @"{6058AB54781A0C52}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_AMG.et"
19:43:30.372 ENTITY : Create entity @"ENTITY:1" ('SCR_ChimeraCharacter') at <0.000000 0.000000 0.000000> @"{6058AB54781A0C52}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_AMG.et"
19:43:30.372 ENTITY : CreateComponent 'ChimeraAIControlComponent'
19:43:30.372 RESOURCES : GetResourceObject @"{B4C861A6DA2F5E05}AI/AIAgents/SCR_ChimeraAIAgentFull.et"
19:43:30.372 WORLD : Entity prefab load @"{B4C861A6DA2F5E05}AI/AIAgents/SCR_ChimeraAIAgentFull.et"
19:43:30.372 WORLD (E): Unknown class 'SCR_AIGoalReaction_Suppress' at offset 3471(0xd8f)
19:43:34.030 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"
19:43:34.030 ENTITY : CreateComponent 'ScriptedRadioComponent'
19:43:34.030 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
19:43:35.360 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.360 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.360 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:39.644 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
19:43:39.644 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
19:43:39.644 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
19:43:39.644 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
19:43:39.645 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
19:43:39.738 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
19:43:39.738 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
19:43:40.182 WORLD : WORLD : NotifyBeforeEntitiesInitialized
19:43:40.182 PROFILING : NotifyBeforeEntitiesInitialized took: 0.051500 ms
19:43:42.054 WORLD : InitEntities 'world'
19:43:42.054 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
19:43:42.054 SCRIPT : Reintroduced [loading]: respawn animation and preparation display attached to Escape
19:43:42.068 WORLD : WORLD : NotifyEntitiesInitialized
19:43:42.068 TERRAIN : TERRAIN : Initializing road networks...
19:43:42.070 PROFILING : Initializing road networks... took: 2.569000 ms
19:43:42.070 DEFAULT : DEFAULT : WorldVolumesCollection
19:43:42.120 PROFILING : WorldVolumesCollection took: 49.290300 ms
19:43:42.120 INIT : INIT : SoundWorldInit
19:43:42.132 PROFILING : SoundWorldInit took: 12.735800 ms
19:43:42.132 PROFILING : NotifyEntitiesInitialized took: 64.789200 ms
19:43:42.132 PROFILING : CreateEntities took: 12093.040000 ms
19:43:42.133 PROFILING : CreateEntities took: 12093.205100 ms
19:43:42.133 WORLD : WORLD : Wait for preloading data around camera
19:43:42.133 PROFILING : Wait for preloading data around camera took: 0.000800 ms
19:43:42.133 WORLD : WORLD : EOnActivate
19:43:42.164 PROFILING : EOnActivate took: 30.894900 ms
19:43:42.164 PROFILING : Game::LoadEntities took: 12125.913200 ms
19:43:42.521 DEFAULT : Entered offline game state.
19:43:46.102 SCRIPT : Map load time: 2171ms
19:43:46.103 NETWORK : Player connected: connectionID=2147483646
19:43:46.104 NETWORK : ### Connecting player: connectionID=2147483646, Name=
19:43:46.104 NETWORK : ### Creating player: PlayerId=1, Name=jakub
19:43:46.106 RESOURCES : GetResourceObject @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.106 WORLD : Entity prefab load @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.107 RESOURCES : GetResourceObject @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
19:43:46.107 WORLD : Entity prefab load @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
19:43:46.107 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)
19:43:46.107 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)
19:43:46.110 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.110 ENTITY : Create entity @"ENTITY:4611686018427388386" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
19:43:46.110 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.110 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!
19:43:46.110 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!
19:43:46.112 SCRIPT (W): Can't open config file ""
19:43:46.117 WORLD : InitEntities 'world'
19:43:46.117 ENTITY : Init entity @"ENTITY:4611686018427388386" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.117 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
19:43:46.117 SCRIPT (W): Slot_WeaponInfo Has no Content!
19:43:46.117 SCRIPT (W): Slot_Chat Has no Content!
19:43:46.117 SCRIPT (W): Slot_VON Has no Content!
19:43:46.117 SCRIPT (W): Slot_AvailableActions Has no Content!
19:43:46.118 SCRIPT (W): Slot_Vehicle Has no Content!
19:43:46.118 SCRIPT (W): Slot_GameVersion Has no Content!
19:43:46.118 SCRIPT (W): Slot_Notifications Has no Content!
19:43:46.118 SCRIPT (W): Slot_Hints Has no Content!
19:43:46.129 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
19:43:46.130 ENTITY : Create entity @"ENTITY:4611686018427388389" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
19:43:46.130 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
19:43:46.130 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.
19:43:46.130 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.
19:43:46.131 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.
19:43:46.134 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000
19:43:46.134 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
19:43:46.135 NETWORK : Players connecting: 0
19:43:46.135 NETWORK : Players connected: 1 / 1
19:43:46.160 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Core/autosaves
19:43:46.162 PROFILING : Workbench startup took: 44212.202700 ms
19:43:46.263 WORLD : Frame start
19:43:46.263 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
19:43:46.277 WORLD : UpdateEntities
19:43:46.277 WORLD : Frame
19:43:46.277 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
19:43:46.434 WORLD : UpdateEntities
19:43:46.434 WORLD : PostFrame
19:43:46.434 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
19:43:46.434 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
19:43:46.435 SCRIPT (E): [Chat] SCR_ChatPanelManager is not found. Chat will not work.
19:43:46.470 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
19:43:46.470 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
19:43:46.470 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
19:43:46.470 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
19:43:46.475 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.625 RENDER : RENDER : ObjectsHeightMap::Build
19:43:46.625 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld
19:43:46.766 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 140.438500 ms
19:43:46.773 PROFILING : ObjectsHeightMap::Build took: 147.626100 ms
19:43:46.817 WORLD : UpdateEntities
19:43:46.818 WORLD : PostFrame
19:43:46.819 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance. Variable 'm_aMessages'
Class: 'SCR_ChatPanel'
Function: 'UpdateChatMessages'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateChatMessages
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnHUDResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnSlotUIResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function SetHeight
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function Resize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnUpdate
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
19:43:46.821 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.885 WORLD : UpdateEntities
19:43:46.885 WORLD : PostFrame
19:43:46.886 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
@@ -0,0 +1,215 @@
---------------------------------------------
Log Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02\error.log started at 2026-10-13 19:43:03 (2026-10-13 17:43:03 UTC)
19:43:03.922 INIT : Workbench startup
19:43:03.922 INIT : Workbench Init Engine
19:43:03.922 RESOURCES : ResourceDB: full scan
19:43:03.922 RESOURCES : processing files...
19:43:03.922 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
19:43:03.934 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
19:43:04.025 ENGINE : GameProject load
19:43:04.025 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_595F2BF2F44836FB/addon.gproj"
19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
19:43:04.025 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_629B2BA37EFFD577/addon.gproj"
19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
19:43:04.026 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
19:43:04.026 INIT : GameProject load project data @"Z:/tmp/erri-observer-chat-run-a01/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
19:43:06.856 INIT : Workbench Create Game
19:43:06.856 SCRIPT : Compiling Game scripts
19:43:06.856 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
19:43:07.668 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,360": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.682 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
19:43:07.720 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
19:43:07.864 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.874 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
19:43:07.937 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
19:43:07.963 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,296": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,308": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
19:43:08.014 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:08.044 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
19:43:16.312 WORLD : CreateEntities
19:43:16.312 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"
19:43:16.312 ENTITY : CreateComponent 'ScriptedRadioComponent'
19:43:16.312 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
19:43:27.090 PLATFORM (E): Steamworks: RequestCurrentStats failed
19:43:29.800 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
19:43:30.032 RESOURCES : GetResourceObject @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT : Config load @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 RESOURCES : GetResourceObject @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT : Config load @"{A9ACCDC72AD70995}Configs/Core/CoresManager.conf"
19:43:30.032 DEFAULT (E): Unknown class 'SCR_ChatPanelManager' at offset 656(0x290)
19:43:30.372 WORLD : Game::LoadEntities
19:43:30.372 WORLD : CreateEntities
19:43:30.372 WORLD : CreateEntities
19:43:30.372 ENTITY : Create entity @"ENTITY:44860" ('PreloadManager1', BasePreloadManager) at <0.033000 0.000000 -0.021000> @"{104F8505FD1871EF}Prefabs/World/Game/PreloadManager.et"
19:43:30.372 ENTITY : SpawnEntityPrefab @"{6058AB54781A0C52}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_AMG.et"
19:43:30.372 ENTITY : Create entity @"ENTITY:1" ('SCR_ChimeraCharacter') at <0.000000 0.000000 0.000000> @"{6058AB54781A0C52}Prefabs/Characters/Factions/BLUFOR/US_Army/Character_US_AMG.et"
19:43:30.372 ENTITY : CreateComponent 'ChimeraAIControlComponent'
19:43:30.372 RESOURCES : GetResourceObject @"{B4C861A6DA2F5E05}AI/AIAgents/SCR_ChimeraAIAgentFull.et"
19:43:30.372 WORLD : Entity prefab load @"{B4C861A6DA2F5E05}AI/AIAgents/SCR_ChimeraAIAgentFull.et"
19:43:30.372 WORLD (E): Unknown class 'SCR_AIGoalReaction_Suppress' at offset 3471(0xd8f)
19:43:34.030 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"
19:43:34.030 ENTITY : CreateComponent 'ScriptedRadioComponent'
19:43:34.030 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
19:43:35.360 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.360 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.360 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
19:43:35.360 ENTITY : CreateComponent 'Hierarchy'
19:43:35.360 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.365 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
19:43:35.365 ENTITY : CreateComponent 'Hierarchy'
19:43:35.365 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:35.369 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
19:43:35.369 ENTITY : CreateComponent 'Hierarchy'
19:43:35.369 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>')
19:43:39.644 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
19:43:39.644 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
19:43:39.644 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
19:43:39.644 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
19:43:39.645 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
19:43:39.645 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
19:43:39.738 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
19:43:39.738 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
19:43:39.738 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
19:43:46.106 RESOURCES : GetResourceObject @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.106 WORLD : Entity prefab load @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.107 RESOURCES : GetResourceObject @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
19:43:46.107 WORLD : Entity prefab load @"{6E2BB64764E3BE9B}Prefabs/Characters/Core/DefaultPlayerController.et"
19:43:46.107 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)
19:43:46.107 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)
19:43:46.110 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.110 ENTITY : Create entity @"ENTITY:4611686018427388386" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
19:43:46.110 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.110 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!
19:43:46.110 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!
19:43:46.112 SCRIPT (W): Can't open config file ""
19:43:46.117 WORLD : InitEntities 'world'
19:43:46.117 ENTITY : Init entity @"ENTITY:4611686018427388386" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
19:43:46.117 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
19:43:46.117 SCRIPT (W): Slot_WeaponInfo Has no Content!
19:43:46.117 SCRIPT (W): Slot_Chat Has no Content!
19:43:46.117 SCRIPT (W): Slot_VON Has no Content!
19:43:46.117 SCRIPT (W): Slot_AvailableActions Has no Content!
19:43:46.118 SCRIPT (W): Slot_Vehicle Has no Content!
19:43:46.118 SCRIPT (W): Slot_GameVersion Has no Content!
19:43:46.118 SCRIPT (W): Slot_Notifications Has no Content!
19:43:46.118 SCRIPT (W): Slot_Hints Has no Content!
19:43:46.129 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
19:43:46.130 ENTITY : Create entity @"ENTITY:4611686018427388389" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
19:43:46.130 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
19:43:46.130 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.
19:43:46.130 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.
19:43:46.131 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.
19:43:46.134 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
19:43:46.434 WORLD : UpdateEntities
19:43:46.434 WORLD : PostFrame
19:43:46.434 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
19:43:46.434 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
19:43:46.435 SCRIPT (E): [Chat] SCR_ChatPanelManager is not found. Chat will not work.
19:43:46.470 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
19:43:46.470 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
19:43:46.470 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
19:43:46.470 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
19:43:46.475 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.817 WORLD : UpdateEntities
19:43:46.818 WORLD : PostFrame
19:43:46.819 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance. Variable 'm_aMessages'
Class: 'SCR_ChatPanel'
Function: 'UpdateChatMessages'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateChatMessages
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnHUDResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnSlotUIResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function SetHeight
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function Resize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnUpdate
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
19:43:46.821 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.885 WORLD : UpdateEntities
19:43:46.885 WORLD : PostFrame
19:43:46.886 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
@@ -0,0 +1,851 @@
{
"1337C0DE5DABBEEF": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF",
"title": "RHS: Status Quo - Content Pack 01",
"version": "0.16.5236",
"files": {
"ServerData.json": {
"stat": [
42,
916830,
209,
1791217537263294562,
1791217537263294562
],
"sha256": "191c50eba8ec43670d1adf9c600b4eaa1eccce659b8572a4f10ead4e7abe612e"
},
"addon.gproj": {
"stat": [
42,
32064141,
335,
1791217514094252612,
1791217536463650049
],
"sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc"
},
"addon.gproj_0.16.5236_manifest.json": {
"stat": [
42,
32064122,
362,
1791217492996283583,
1791217492996283583
],
"sha256": "17b87e0976ac2da1032f1661a884f6d59b56c00823b2fcfdc2a698ea8bcc92cc"
},
"data.pak": {
"stat": [
42,
32064165,
1992950655,
1791217529019417115,
1791217536749658990
],
"sha256": "6f03d41961efe91af0060c0362c8a65c31d34c4f0ba173a4ddc8eb8ee965c4cb"
},
"data.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064123,
232639,
1791217493181289432,
1791217493181289432
],
"sha256": "e1b26dacd2d4054b748824f737693975b07bc9ff383b5e973a8915f58c01591e"
},
"data001.pak": {
"stat": [
42,
32064187,
1992538370,
1791217526882350163,
1791217537231674056
],
"sha256": "6426f25d25633e9d3e34fd064e56a02230f5c7b85176dd73d8914eeb772ef8c8"
},
"data001.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064126,
349868,
1791217493712306218,
1791217493712306218
],
"sha256": "027b0a089cf9c9b099ea8f06a4bfb025a383de718df13df71313089215655d12"
},
"data002.pak": {
"stat": [
42,
32064182,
1992467294,
1791217529310426228,
1791217537064668837
],
"sha256": "5596b2bf81be625ae76e4a22e2d802e730c9fe4ae127c7fa713dd002d45b899d"
},
"data002.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064125,
332026,
1791217493496299390,
1791217493496299390
],
"sha256": "a918a87020efea578db5698f03698d07b3b7f3ebb2c5804202766e6e6d2c8021"
},
"data003.pak": {
"stat": [
42,
32064138,
364877149,
1791217516523025099,
1791217536462650018
],
"sha256": "ba633b5025f357a37f74f2484b8cfe0d51a88b1e732fdf95d982e9d17b66828e"
},
"data003.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064121,
96448,
1791217492872279662,
1791217492872279662
],
"sha256": "ceca6220d153deaf4cd4ea9aecb4d1a9db63e4f4f950deb2acfc03cbe52ae431"
},
"meta": {
"stat": [
42,
911092,
8188,
1791217537260674963,
1791217537260674963
],
"sha256": "ab21fee89c49e2622f33c3f614b4a0b8671985a9d3bc138baaec92bb4574bb33"
},
"resourceDatabase.rdb": {
"stat": [
42,
32064190,
567385,
1791217514761969753,
1791217537232674088
],
"sha256": "a71a5e6639ad4c44787eed5916dc4e153886326382d05c20cef179fd8c532fcb"
},
"resourceDatabase.rdb_0.16.5236_manifest.json": {
"stat": [
42,
32064127,
368,
1791217493836310139,
1791217493836310139
],
"sha256": "d0a77a21db87a11b0a67e3adca189e4868c2f348d918fd04af6b8a6bb5b9fb31"
},
"thumbnail.png": {
"stat": [
42,
32064168,
18180,
1791217514094761493,
1791217536749658990
],
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
},
"thumbnail.png_0.16.5236_manifest.json": {
"stat": [
42,
32064124,
366,
1791217493307293415,
1791217493307293415
],
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
}
}
},
"595F2BF2F44836FB": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB",
"title": "RHS: Status Quo",
"version": "0.16.5237",
"files": {
"ServerData.json": {
"stat": [
42,
910012,
3022,
1791300979137534085,
1791300979137534085
],
"sha256": "94bcd198ec248f7e1317838378d902fe8e098d052a4cb9575a68029d8f3ae21a"
},
"addon.gproj": {
"stat": [
42,
32244359,
1101,
1791300968688283305,
1791300979087532885
],
"sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c"
},
"addon.gproj_0.16.5237_manifest.json": {
"stat": [
42,
32244348,
364,
1791300967569256451,
1791300967569256451
],
"sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8"
},
"data.pak": {
"stat": [
42,
32244356,
203465487,
1791300978292513803,
1791300979065532357
],
"sha256": "dcceaad42c6ac6ffaef277a2e7ec799a1b4f1d5c27e885d83728245c52a82e9e"
},
"data.pak_0.16.5237_manifest.json": {
"stat": [
42,
32244347,
1414398,
1791300967419252851,
1791300967419252851
],
"sha256": "973213b9295b25179f079ff0e01baa7f49418d1f24bedba331930177b6c60496"
},
"meta": {
"stat": [
42,
902077,
12538,
1791300979127533846,
1791300979127533846
],
"sha256": "ed3b16ddc9f244b323f44a6d059321db6d62717c61a87e60774de8d64a6929ae"
},
"resourceDatabase.rdb": {
"stat": [
42,
32244362,
826592,
1791300968575280593,
1791300979087532885
],
"sha256": "b7977b6dad5dcf8b140a860dc425184cc04ba24b310124184c6bad232109bc03"
},
"resourceDatabase.rdb_0.16.5237_manifest.json": {
"stat": [
42,
32244349,
368,
1791300967709259811,
1791300967709259811
],
"sha256": "0296f06bb84669527e3580aa4e2fc053ee27ee39a8c9bb1bd87762e9b7f8fdc7"
},
"thumbnail.png": {
"stat": [
42,
32244353,
18180,
1791300968572481488,
1791300978991147498
],
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
},
"thumbnail.png_0.16.5237_manifest.json": {
"stat": [
42,
32244346,
366,
1791300966985242436,
1791300966985242436
],
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
}
}
},
"5E389BB9F58B79A6": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6",
"title": "WCS_SpaceCore",
"version": "8.3.0",
"files": {
"ServerData.json": {
"stat": [
42,
919166,
197,
1791905536676880291,
1791905536676880291
],
"sha256": "7590c843333aec0f90fb2663dab5f0f764fac6baa96cda65038d15777e18b581"
},
"addon.gproj": {
"stat": [
42,
33588062,
2957,
1791905535812995569,
1791905536666241292
],
"sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34"
},
"addon.gproj_8.4.0_manifest.json": {
"stat": [
42,
33588053,
364,
1791905535321183833,
1791905535321183833
],
"sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21"
},
"data.pak": {
"stat": [
42,
33588059,
25392053,
1791905536569237148,
1791905536663241163
],
"sha256": "0e783e0179a90d2764361c1833824b64b0d0270a09716599ff593a318f0f14cd"
},
"data.pak_8.4.0_manifest.json": {
"stat": [
42,
33588052,
31209,
1791905535162177040,
1791905535162177040
],
"sha256": "6719a69faacb0cd291b816ff2f26ce87c54fdda3d3718897d64d143d97e887cf"
},
"meta": {
"stat": [
42,
918678,
2338,
1791905536675241676,
1791905536675241676
],
"sha256": "ac0338fc8260380e7b399b73e24b2c963420694a3fd9eaa0c0acf93baec938bd"
},
"resourceDatabase.rdb": {
"stat": [
42,
33588065,
23196,
1791905536041214598,
1791905536667241335
],
"sha256": "f8e7de8778bec66ba13e1ebe7f1ddb29667cc9738e0ccf3f977180ff7e05d449"
},
"resourceDatabase.rdb_8.4.0_manifest.json": {
"stat": [
42,
33588054,
366,
1791905535503191610,
1791905535503191610
],
"sha256": "730c5097d76cde9084a700a426f917569dda13b553dc88aaaf2ee876e3607fa1"
},
"thumbnail.png": {
"stat": [
42,
33588068,
689401,
1791905535814204899,
1791905536667241335
],
"sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1"
},
"thumbnail.png_8.4.0_manifest.json": {
"stat": [
42,
33588055,
368,
1791905535684199344,
1791905535684199344
],
"sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000"
}
}
},
"5E524E4FEECCA92B": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B",
"title": "WCS_BMP-1",
"version": "8.3.0",
"files": {
"ServerData.json": {
"stat": [
42,
918673,
193,
1791902411944955262,
1791902411944955262
],
"sha256": "66d9aadb7bc9f87ec89f252ab0fc418b3164108ea06ba4702a873ab98cd2bce3"
},
"addon.gproj": {
"stat": [
42,
33574555,
2900,
1791902410577627717,
1791902411894052339
],
"sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259"
},
"addon.gproj_8.4.0_manifest.json": {
"stat": [
42,
33574548,
364,
1791902409731031220,
1791902409731031220
],
"sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f"
},
"data.pak": {
"stat": [
42,
33574558,
120024479,
1791902411497121011,
1791902411928073379
],
"sha256": "7accd95e940856220f8e65f7b73c63385e73b5804da811761c7eeac9408abcb8"
},
"data.pak_8.4.0_manifest.json": {
"stat": [
42,
33574549,
29851,
1791902409891034290,
1791902409891034290
],
"sha256": "95ffd8ab723c92c027f847e552dae12fce3448ce2187ba5ef5e548f3e6a3fa0b"
},
"gallery0_776x436.jpg": {
"stat": [
42,
23106914,
64588,
1788720671481676966,
1788720671481676966
],
"sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097"
},
"gallery1_776x436.jpg": {
"stat": [
42,
23106915,
47808,
1788720671495639547,
1788720671495639547
],
"sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c"
},
"meta": {
"stat": [
42,
918496,
2928,
1791902411943073667,
1791902411943073667
],
"sha256": "dd115af27f420e89401e532ace686df8f13976d437bbcf6ba4f57af4ad9e73d0"
},
"resourceDatabase.rdb": {
"stat": [
42,
33574561,
19326,
1791902410661049065,
1791902411933073476
],
"sha256": "f0ad9d9f9339fd946be962e93543c696992b30159cc9d4cf7cadec5f87967d6e"
},
"resourceDatabase.rdb_8.4.0_manifest.json": {
"stat": [
42,
33574550,
366,
1791902410064037609,
1791902410064037609
],
"sha256": "f66140ac6ccf012f21e3ff1919b4981b3fd06c42f7efc53d666b70705dfe9b4a"
},
"thumbnail.png": {
"stat": [
42,
33574564,
708338,
1791902410579047492,
1791902411934073495
],
"sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038"
},
"thumbnail.png_8.4.0_manifest.json": {
"stat": [
42,
33574551,
368,
1791902410190040027,
1791902410190040027
],
"sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e"
}
}
},
"629B2BA37EFFD577": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577",
"title": "WCS_Armaments",
"version": "8.3.0",
"files": {
"ServerData.json": {
"stat": [
42,
920134,
197,
1791902409425068465,
1791902409425068465
],
"sha256": "6bddc06413108d624039e3ec7566ada8242b579a09b0bafe894877282e2a95f8"
},
"addon.gproj": {
"stat": [
42,
33574250,
2926,
1791902402861114545,
1791902409412025099
],
"sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1"
},
"addon.gproj_8.4.0_manifest.json": {
"stat": [
42,
33574239,
364,
1791902401264868815,
1791902401264868815
],
"sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f"
},
"data.pak": {
"stat": [
42,
33574247,
441631740,
1791902407839994936,
1791902409400024869
],
"sha256": "e18ab4bb3f390dd6116d8c7e686fe21349c6c993a77b7ea6361d4027d7683788"
},
"data.pak_8.4.0_manifest.json": {
"stat": [
42,
33574235,
298655,
1791902401137866379,
1791902401137866379
],
"sha256": "c0a4abb0dbd590b845af29dd9cd8c4b28beba961052138da894d57230e27c171"
},
"meta": {
"stat": [
42,
919170,
2505,
1791902409423025310,
1791902409423025310
],
"sha256": "7f3d6fb9d09d3f0a435eb10f711d63408fe7d0ec5b62f6723ee7da97d1e0c289"
},
"resourceDatabase.rdb": {
"stat": [
42,
33574256,
195796,
1791902403029902666,
1791902409414025137
],
"sha256": "92f6c40aeebab4c2148173ff61d4312340111a2e7b675b9e4bbced2814ed2154"
},
"resourceDatabase.rdb_8.4.0_manifest.json": {
"stat": [
42,
33574243,
368,
1791902401530873916,
1791902401530873916
],
"sha256": "65ecf9dae6a8b3c864965b392b83ea520bc1f2910b4fdc83c3cfe16282647454"
},
"thumbnail.png": {
"stat": [
42,
33574253,
689544,
1791902402861899444,
1791902409413025118
],
"sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd"
},
"thumbnail.png_8.4.0_manifest.json": {
"stat": [
42,
33574240,
368,
1791902401396871347,
1791902401396871347
],
"sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77"
}
}
},
"65930CB4CD0237B2": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2",
"title": "Parachute Framework",
"version": "1.2.0",
"files": {
"ServerData.json": {
"stat": [
42,
23608865,
764,
1788881939235881733,
1788881939235881733
],
"sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1"
},
"addon.gproj": {
"stat": [
42,
23608826,
124,
1788881938831871187,
1788881938831871187
],
"sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc"
},
"addon.gproj_1.2.0_manifest.json": {
"stat": [
42,
23608818,
362,
1788881938288857014,
1788881938288857014
],
"sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f"
},
"data.pak": {
"stat": [
42,
23608829,
5048302,
1788881939131386944,
1788881939131386944
],
"sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042"
},
"data.pak_1.2.0_manifest.json": {
"stat": [
42,
23608820,
4696,
1788881938426860616,
1788881938426860616
],
"sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb"
},
"meta": {
"stat": [
42,
23608819,
5088,
1788881955440304751,
1788881955440304751
],
"sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b"
},
"resourceDatabase.rdb": {
"stat": [
42,
23608835,
3188,
1788881939082877739,
1788881939082877739
],
"sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4"
},
"resourceDatabase.rdb_1.2.0_manifest.json": {
"stat": [
42,
23608822,
364,
1788881938690867507,
1788881938690867507
],
"sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883"
},
"thumbnail.png": {
"stat": [
42,
23608832,
2255011,
1788881939194880662,
1788881939194880662
],
"sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a"
},
"thumbnail.png_1.2.0_manifest.json": {
"stat": [
42,
23608821,
370,
1788881938560864114,
1788881938560864114
],
"sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768"
}
}
},
"BADC0DEDABBEDA5E": {
"path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E",
"title": "RHS: Status Quo - Content Pack 02",
"version": "0.16.5236",
"files": {
"ServerData.json": {
"stat": [
42,
911088,
209,
1791217577175957552,
1791217577175957552
],
"sha256": "344a5ceec8c8c98aad2ac5831febebd0facb93ddd02422ad24060ecd09bd9d7e"
},
"addon.gproj": {
"stat": [
42,
32064850,
336,
1791217562080448337,
1791217577146066199
],
"sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4"
},
"addon.gproj_0.16.5236_manifest.json": {
"stat": [
42,
32064829,
362,
1791217554184202802,
1791217554184202802
],
"sha256": "72d988d5881efdf7d8781b2dc978a0243e1a3d587ced56563299855724137232"
},
"data.pak": {
"stat": [
42,
32064844,
1992510440,
1791217570711716195,
1791217577146066199
],
"sha256": "b67a44100a378580fd85b20009cb3ec0080809c676a8b5a1cb742e9b38ecc6c6"
},
"data.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064827,
173766,
1791217553936195082,
1791217553936195082
],
"sha256": "993b2ae337e9ac1739ae8ec463059046d4c04478150741d2b2f7cc6bf69936f7"
},
"data001.pak": {
"stat": [
42,
32064836,
238642257,
1791217563390489027,
1791217577146066199
],
"sha256": "0fdef61ed28e54cf79586d11fcc06784e419df64e8a3a189f28bdc165a40b182"
},
"data001.pak_0.16.5236_manifest.json": {
"stat": [
42,
32064826,
29970,
1791217553778190164,
1791217553778190164
],
"sha256": "f2e6ba88d0c10dc3270ff36c0782ec18d3b556b9d66905b88c28674abfad4020"
},
"meta": {
"stat": [
42,
910016,
7720,
1791217577173916383,
1791217577173916383
],
"sha256": "f15f5ef2900d28a101f6a2e7ce9e59d97c12bcf22413b11d8f81915a95b1c0b1"
},
"resourceDatabase.rdb": {
"stat": [
42,
32064847,
113129,
1791217562363457128,
1791217577146066199
],
"sha256": "cd6d683ab9b1bcb46936e113311e9ea68875a4411e4341c9761d961544c544d1"
},
"resourceDatabase.rdb_0.16.5236_manifest.json": {
"stat": [
42,
32064828,
368,
1791217554060198943,
1791217554060198943
],
"sha256": "e0ff6ea4509dd43f625f774a23a9a829356ac2a8244d02199fa639684139f3f8"
},
"thumbnail.png": {
"stat": [
42,
32064853,
18180,
1791217562080448337,
1791217577146066199
],
"sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3"
},
"thumbnail.png_0.16.5236_manifest.json": {
"stat": [
42,
32064831,
366,
1791217554308206661,
1791217554308206661
],
"sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255"
}
}
}
}
@@ -0,0 +1,11 @@
{
"source_root": "/tmp/erri-observer-chat-source-a01",
"fixture": "unconscious-camera",
"setup_only_change": {
"path": "addons/core/Configs/ERR/Tests/LegacySites.conf",
"before": "Position 7000 0 7500",
"after": "Position 4776.55 0 11528.9",
"reason": "Previously surveyed flat pickup for the required two-transport US rescue fleet; no production configuration change."
},
"chat": "Real native panel, no OnUpdateChat, registered/no focus and unregistered/focused; empty native submit callback and scripted Enter state, no credentials or authentication attempt."
}
@@ -0,0 +1,146 @@
[gamescope] [Info] console: gamescope version 3.16.31 (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.legiongo2.oled.lua' (id: 7)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 8)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 9)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 10)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 11)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 12)
[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 <FK23>
> Using F23, ignoring XF86TouchpadOff
> Warning: Symbol map for key <FK23> redefined
> Using last definition for conflicting fields
> Warning: Symbol map for key <FK24> redefined
> Using last definition for conflicting fields
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: 45
[gamescope] [Info] vblank: Using timerfd.
fsync: up and running.
[Gamescope WSI] No application info given.
[Gamescope WSI] Executable name: explorer.exe
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: xalia.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587009
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: 12587009
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.
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: 12587009
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: 6
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating Gamescope surface: xid: 0x1c003a4
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1c003a4
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1c003a4
wayland surface res id: 13
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating swapchain for xid: 0x1c003a4 - 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: 0x1c003a4 swapchain: 0x5555876efd30 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x5555876efd30
[Gamescope WSI] Destroyed swapchain: 0x5555876efd30
[Gamescope WSI] Creating swapchain for xid: 0x1c003a4 - 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: 0x1c003a4 swapchain: 0x5555876efd30 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x5555876efd30
[Gamescope WSI] Destroyed swapchain: 0x5555876efd30
[Gamescope WSI] Creating swapchain for xid: 0x1c003a4 - 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: 0x1c003a4 swapchain: 0x555587680ef0 - imageCount: 4
[gamescope] [Info] launch: Primary child shut down!
@@ -0,0 +1,531 @@
{
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6",
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a",
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a",
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b",
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb",
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb",
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe",
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318",
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b",
"addons/core/Configs/ERR/AdminMenus.conf": "a7f889f260e43656136fc159342129e5f48748d28c426f65f9faac37b624cf94",
"addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1",
"addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c",
"addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800",
"addons/core/Configs/ERR/EveronSites.conf": "a66c30039c7141e5a0f22af21aa522728fe4aa5cde821158aea3b716d11457a1",
"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/ObserverInput.conf": "89928b57fdd6fa3ae837fb2daf55f627a62a98fd111ffdb55c2874f1e040afaf",
"addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4",
"addons/core/Configs/ERR/Tests/LegacySites.conf": "db318cbec1a5ed520bd2858ddb51baf76355d6ec5893e0503a44b1ea5dbfa9d5",
"addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3",
"addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3",
"addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8",
"addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18",
"addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5",
"addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604",
"addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4",
"addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02",
"addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c",
"addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69",
"addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
"addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
"addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571",
"addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89",
"addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "eec89d7d4b0a496a0b6666e687924de842f34997c68310d3654dbb84f69357de",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a",
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3",
"addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656",
"addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91",
"addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba",
"addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47",
"addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe",
"addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716",
"addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd",
"addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715",
"addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90",
"addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0",
"addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08",
"addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2",
"addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1",
"addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8",
"addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814",
"addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9",
"addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537",
"addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb",
"addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3",
"addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c",
"addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c",
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3",
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2",
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b",
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b",
"addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85",
"addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add",
"addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42",
"addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068",
"addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811",
"addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012",
"addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0",
"addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259",
"addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607",
"addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635",
"addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627",
"addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8",
"addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3",
"addons/core/Prefabs/ERR/TerrainTakeover.et": "6206fe2eb4e2c6c1a9e3ddf2898535ae08981c115adc6ddd926017ac20d4b535",
"addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c",
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "74d6866912c39243c6709876696d992886226da2c04a281f3f64b6c152eb5809",
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d",
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a",
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "980d30964845600a261693cc5c5553e1472e8e54867bdc06133ff5c7b36c9128",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "4eecaa2b27fb449807ade387a9c0c487e6f76c1d6bbaa8a0b2330ebe4cd5b69a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "7d78652c03dcdfbf8be8e13cbce2ee8ae745e08ccf1759cd6933e290840e8197",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "e86187d554436cf3fe074dce85cf7e4390cb044509a3a6a52614391f0cdbf9f4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0c2f4d31a2abc8f3f90bda20546543f2a1cf9306e9bf93351dda1883b990770e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "a49c71ff7ee54afb9af6a368e71d55df335fcc47526eeeb3acf3d9c15a9610d6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "60b9377f702ba2da6cb98d1742b4ee4fa9ed66ece9875d411537a51173d5585d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "0ad97b7dea562658d6e235116885bddac581ccb208284de34e2cfda0f2c90194",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69",
"addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "6e3c65e55b05cf205040c310b9086faa41b88582c7f9faf49c010afd59da5b07",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "9f69d8ede2a1c119025773da9165dfe1932074dcc7b5e314a957fc334127c0d4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "21ea6e585880101b3f7778c823c3dcd912e377e5ce4255632dd5dddadb77e3b6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce",
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "e271cddcf6eeafa26e5024e518b24e13c155c95d343a45c06da30e81e8b0c653",
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "33b81e7896387d4526538ed68c4421d2e43c1eff175eea45fedfe6c32d5632cb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "b22d75484cc671392f623fddd175882f9a430227247355f35c0aef4c68a7e0a2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273",
"addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "45281c83e3300b37f079351aaaf30b0bc345c6a47394f594f79d07fa0d4176d0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "1067487f8a9be4d7d3d9e4ab5d58fda05ab894d5f338c7d7612a92b641bcec4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "593e59664dbd7330b52674e5d4cc7b70db588cb75a1259ed808b74602501d541",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "8746e0059ddf4d4195c7ecf6ad9041618f95d3d76ce1779da641a2043ccde062",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "2d07b895cb74af58454605fb1c536a566733e3001a9375dd0677d5f274bf2a46",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "19fc19e22348e6213827f620f4fdb5dc26144ea2ce0032de773e79c1fb155a26",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "f5691373634d593148d9d8389ed3c20dd9004e45eca89db501f560ec070e46f1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "f24b1da233c5ced8cd119731a54cd922aa8e359f43a05016e2117310b66b966c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "29fe5ef97a3d22bfdae630adf1987324166bb72c91f7def3f0cf609bed09bd42",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "663f078609cfde3cad36cdc107e18d9a07788b9ca785675e85e552be330289aa",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "e49bab76a015ab545088af7e5eaa3cc45811907db4e5b1c5fa8c18afef34b62f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "a694b81494b46f339f0f614b3eec2faefe03a87c5537bd9a53ad12c9da5a1f25",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "4440e387b6a10076dd3d6921c924a9e0f098da593f9bae03bcdbb05c91127dc5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "a3c281892dd14d0ee2b4b58db3e9f60c0b7cffc22a77260c3f0b1f6f5551ab2e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "9df8ccf45fc2ed12f4b14d08270878696e8785760a3ae51fe032b6f3818fc0e6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "c36b9c38565dfbd13539d94b78b75b9f6132aabd9b86da251c3fb654fd5b2d3a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "a92f0c2b451a5d55f1f15e6749bad47442629f4914fefdee610ed7873deb6501",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "aa788e449ccee137cae7a804add3a1d4449bfa54a5f89191402d9de71a9e6089",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "349fa932b72443cca87ae17f48461e617b83efe512bde55ad81e740426f1a7b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "b0aa4fd3ce181a2663f1b9422fc4e24d3915dc468f609159514ab92b3cba35a4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "75ac61a9ba0d984a5c6d21ad6a020bb1562914ab09dafac8a80e822f0af77611",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "b765adafc2b6f24a4bbc3fd282a7ed78c0beb8f9333c931cea6cb959425458f0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "cad49abaeb57a54165e12c6f884cf460bf648eb4a41ac2d643d8132ac501a022",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "0a4b6b52486dfa5b6111d43333b6f8e43df8f2bd9a343c553ad2eb44fec3c96b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "1dcf35b57631132f1bdbd8630f81ce27ff83290b5c468073f3ed6cd19a34df29",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "270bf465808d23627a11e720c6632d4fea35d0c679e63aa64046ef8874d68ceb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "12c4a3d2415e7b43ca1e0419dfca14e0710898af55544e803ce87e4e60277cd2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "643a30b1370dc8ee14fd8c578415382b76831ba4eef6e311ed68d32630194a47",
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade",
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "77fc882820968cdb4b1f7bc28afa7e164b0e496cc0caabcdae1c532ea7b005bb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac3a54e6b82e7ab61a37536e8734ada1c68f9fa0e03bb42f0f4f6cc88058aede",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "458b84b3fb31c5a2bd1b7c3d65f25e0aeab91f5505ef0813231435c8a3c7d2b7",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "0f75141c603cdc8b5bc8804e21df10514167dbbb1770f9f64e18fd30c6fe2d13",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "c065d7e70f251b49664f0f5871295d60bbb88ba956adb1c4e06a100db193e0e0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "2c4fab3c1b117ad42473b7772f0e349e8761367bcb26d0f7bb7d25d65f877299",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779",
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "521dca2b30c53a4db0c0506eb5c547ba795ea64e9fe604a2138711d57110cd3a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "55765607da19b2ef111cb5594564f128275ba6b8cd0c0cdeaf66b7a6d956822f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc",
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99",
"addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "ee8e5f0483ad738f6254adcd66e71ad4872fd000c92f44405c4dcc0453a40308",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "1d75bde74a5a14aa3ccd422d1b87988b62b7eb8d3fd43f44f05d9e783cc40d2d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "57496b13cfb6222cb0415700f8b40c5dfe19c60737ee819373750ff6697f240e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "12ea8ba08753d1e6d38b237087c1209cd2f9574b53c3ff0f27c082bed029c9ea",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "d5864563517b9eab5db851808953f26dcee5ce9a60ac618bb5c15c4e49bc2ae1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "758990669bf73ea76f77acc60a5a24d3bf454aeeb5cbeacb0962e18e1a7be30a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "0b3fc27211318088847ba35b9e0cbc97f851ac2e357dd1dba08db083e203a94c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "f14a82a0a8608740a639fd28cb39ffad8f27574dd58cc94e99abc08f411153ab",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
"addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "b3d49f29bade17fe7cedb72fee1b8bfe9e7b873d6b414cd6e1b931cfb034125d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "a89cc3374f76583ebf56162e19270a68d157830b297dffaf6968fc94a793f228",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "4c6bf051081fff15736f9d6d33ba2937126edaf163944501dba076b306fbf5c1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "fce94d32837ddda05d68b8f0b19427194e0177c93e48e27e8193b2b07adbaf5d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "873ceecac98fc4e5299a91259910e6697a32049ed7782a232b159c143faa0398",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878",
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "d63ab5c547021aeb61d398b8a773afeedee4662d3ce15d9fd9d0e9e37262f8b7",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "6bbf3f30c410a6ec4e741f5d743a6727aee14ce8245a98ab1ca51f40917615ca",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "eb8b6bdaf64efa43759e31754a69c93e56273c376f89f6660e83cba480c98adf",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "e0f57c24e58401a6f0428af6aa9bbb0f2340c060b72e9a7324c6d7d91842e7a8",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "e6c6e20deecf0f4954ad21ce76e10b7f7649c47bea0bc4f3bdb95daf0ba04ed1",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2",
"addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65",
"addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c",
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871",
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7",
"addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21",
"addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f",
"addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d",
"addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453",
"addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660",
"addons/core/UI/layouts/ERR/AdminMenu.layout": "46c7073d83a587b1f0adfd0861695203ed7eeee43ad41f946af6a571e1004026",
"addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf",
"addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca",
"addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08",
"addons/core/UI/layouts/ERR/ContentRow.layout": "942e33bf2e08550446b40bcac31fb4504b7d8c717a42c196f54bf4025c72706c",
"addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6",
"addons/core/UI/layouts/ERR/ItemRow.layout": "6d364ce48158b90abd2185ca87ee27b095d0f7a5c8d59a0c65940e4be5488ac3",
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
"addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d",
"addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240",
"addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79",
"addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115",
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "826c524248d2a2551998b32ab963a1c40751f16308d52d472befa423f1797b39",
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175",
"addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4"
}
@@ -0,0 +1,45 @@
{
"schema_version": 1,
"launch_id": "25d8fa8c-3749-41d7-8925-cde955fe87c6",
"captured_unix": 1791913380.5060863,
"source_root": "/tmp/erri-observer-chat-source-a01",
"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:/tmp/erri-observer-chat-source-a01/addons/core/addon.gproj",
"-addonsDir",
"Z:/tmp/erri-observer-chat-source-a01/addons",
"-profile",
"Z:/tmp/erri-observer-chat-run-a01",
"-logconsole",
"-wbModule=WorldEditor",
"-load",
"Worlds/ERR_Everon.ent",
"-plugin=ERR_ValidateBaseWorldPlugin",
"-errPlay",
"1",
"-errBaseSmoke",
"1",
"-errSmokeOutcome",
"unconscious-camera",
"-noThrow",
"-disableCrashReporter"
],
"manifest_sha256": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc"
}
@@ -0,0 +1,50 @@
{
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": {
"launch_sha256": "663f078609cfde3cad36cdc107e18d9a07788b9ca785675e85e552be330289aa",
"archived_sha256": "663f078609cfde3cad36cdc107e18d9a07788b9ca785675e85e552be330289aa",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": false
},
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": {
"launch_sha256": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
"archived_sha256": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": {
"launch_sha256": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
"archived_sha256": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": {
"launch_sha256": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
"archived_sha256": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": {
"launch_sha256": "2c4fab3c1b117ad42473b7772f0e349e8761367bcb26d0f7bb7d25d65f877299",
"archived_sha256": "2c4fab3c1b117ad42473b7772f0e349e8761367bcb26d0f7bb7d25d65f877299",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Prefabs/ERR/SpectatorCamera.et": {
"launch_sha256": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
"archived_sha256": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Configs/ERR/ObserverInput.conf": {
"launch_sha256": "89928b57fdd6fa3ae837fb2daf55f627a62a98fd111ffdb55c2874f1e040afaf",
"archived_sha256": "89928b57fdd6fa3ae837fb2daf55f627a62a98fd111ffdb55c2874f1e040afaf",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": true
},
"addons/core/Configs/ERR/Tests/LegacySites.conf": {
"launch_sha256": "db318cbec1a5ed520bd2858ddb51baf76355d6ec5893e0503a44b1ea5dbfa9d5",
"archived_sha256": "db318cbec1a5ed520bd2858ddb51baf76355d6ec5893e0503a44b1ea5dbfa9d5",
"repository_exists_at_archive": true,
"repository_matches_launch_at_archive": false
}
}
@@ -0,0 +1,37 @@
{
"log": "docs/evidence/observer-chat-2026-10-13/a01/console.log.txt",
"smoke_completions": 0,
"assertions_passed": 0,
"script_or_runtime_failures": [
"19:43:46.435 SCRIPT (E): [Chat] SCR_ChatPanelManager is not found. Chat will not work.",
"19:43:46.475 SCRIPT (E): Virtual Machine Exception",
"19:43:46.819 SCRIPT (E): Virtual Machine Exception",
"19:43:46.821 SCRIPT (E): Virtual Machine Exception",
"19:43:46.886 SCRIPT (E): Virtual Machine Exception"
],
"engine_errors": [
"19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"",
"19:43:04.025 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"",
"19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"",
"19:43:04.026 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"",
"19:43:27.090 PLATFORM (E): Steamworks: RequestCurrentStats failed",
"19:43:30.032 DEFAULT (E): Unknown class 'SCR_ChatPanelManager' at offset 656(0x290)",
"19:43:30.372 WORLD (E): Unknown class 'SCR_AIGoalReaction_Suppress' at offset 3471(0xd8f)",
"19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)",
"19:43:39.644 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)",
"19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)",
"19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)",
"19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)",
"19:43:39.645 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)",
"19:43:39.738 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)",
"19:43:46.107 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)",
"19:43:46.107 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)",
"19:43:46.435 SCRIPT (E): [Chat] SCR_ChatPanelManager is not found. Chat will not work.",
"19:43:46.475 SCRIPT (E): Virtual Machine Exception",
"19:43:46.819 SCRIPT (E): Virtual Machine Exception",
"19:43:46.821 SCRIPT (E): Virtual Machine Exception",
"19:43:46.886 SCRIPT (E): Virtual Machine Exception"
],
"missing_end_screen": [],
"scope": "Local Workbench observer/chat fixture; read its assertion labels and source for the exact exercised paths. Native action injection and scripted widget operations do not qualify physical keyboard input, native administrator authentication, a remote client, or a dedicated multiplayer session."
}
@@ -0,0 +1,41 @@
Test audio routed to silent output and muted (stream 55225)
{
"stopped_unix": 1791913427.5826585,
"console_sha256": "4d6d43a48ae1b9ad1b97e4be02567936612a4b34ae6c7efa110c2c4fa208456f",
"end_source_sha256": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "25d8fa8c-3749-41d7-8925-cde955fe87c6",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc",
"external_addons_unchanged_after_run": true,
"external_addon_count": 7,
"external_addon_inputs": "external-addons-inputs.json",
"started_unix": 1791913380.506162,
"result": "test-failed",
"result_before_cleanup": "test-failed",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [],
"term_sent": [],
"kill_sent": [],
"cleared": true
}
}
},
"runner_error": null,
"session": "/tmp/erri-observer-chat-run-a01/logs/logs_2026-10-13_19-43-02",
"rounds_required": 1,
"project": "core",
"display": "headless Gamescope 1280x720/30Hz",
"dedicated_server": false,
"audio": "silent sink and per-test-stream mute"
}
@@ -0,0 +1,40 @@
{
"stopped_unix": 1791913427.5826585,
"console_sha256": "4d6d43a48ae1b9ad1b97e4be02567936612a4b34ae6c7efa110c2c4fa208456f",
"end_source_sha256": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "25d8fa8c-3749-41d7-8925-cde955fe87c6",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "7efdae0685cefbeae114a67965991103a43fdefd6fd4300dc8fb10a59fde50fc",
"external_addons_unchanged_after_run": true,
"external_addon_count": 7,
"external_addon_inputs": "external-addons-inputs.json",
"started_unix": 1791913380.506162,
"result": "test-failed",
"result_before_cleanup": "test-failed",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [],
"term_sent": [],
"kill_sent": [],
"cleared": true
}
}
},
"runner_error": null,
"session": "/tmp/erri-observer-chat-run-a01/logs/logs_2026-10-13_19-43-02",
"rounds_required": 1,
"project": "core",
"display": "headless Gamescope 1280x720/30Hz",
"dedicated_server": false,
"audio": "silent sink and per-test-stream mute"
}
@@ -0,0 +1,108 @@
---------------------------------------------
Log Z:\tmp\erri-observer-chat-run-a01\logs\logs_2026-10-13_19-43-02\script.log started at 2026-10-13 19:43:04 (2026-10-13 17:43:04 UTC)
19:43:04.778 SCRIPT : SCRIPT : Initializing scripts
19:43:04.778 SCRIPT : SCRIPT : ScriptProjectManager init
19:43:06.081 SCRIPT : SCRIPT : Compiling GameLib scripts
19:43:06.124 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
19:43:06.124 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
19:43:06.125 SCRIPT : SCRIPT : Compiling Game scripts
19:43:06.856 SCRIPT : Compiling Game scripts
19:43:06.856 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
19:43:07.342 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
19:43:07.668 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,360": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.682 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
19:43:07.720 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
19:43:07.841 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
19:43:07.864 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.874 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
19:43:07.935 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
19:43:07.937 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
19:43:07.963 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,296": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.983 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,308": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
19:43:07.984 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
19:43:08.014 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
19:43:08.044 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
19:43:08.409 SCRIPT : Module: WorkbenchGame; loaded 187x files; 658x classes; used 2755K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: b5662d84
19:43:08.417 SCRIPT : Module: Game; loaded 6767x files; 13999x classes; used 43384K 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,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: e0c21f88
19:43:09.383 SCRIPT : Unable to register a script command due keyword duplicity: ban
19:43:09.383 SCRIPT : Unable to register a script command due keyword duplicity: kick
19:43:25.417 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used.
19:43:27.065 SCRIPT : ERR SITE SURVEY: supply=6150/7050 elevationRange=0.625 min=202.875 max=203.5
19:43:29.797 SCRIPT : Unable to register a script command due keyword duplicity: ban
19:43:29.797 SCRIPT : Unable to register a script command due keyword duplicity: kick
19:43:42.054 SCRIPT : Reintroduced [loading]: respawn animation and preparation display attached to Escape
19:43:46.103 SCRIPT : Map load time: 2171ms
19:43:46.110 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!
19:43:46.110 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!
19:43:46.112 SCRIPT (W): Can't open config file ""
19:43:46.117 SCRIPT (W): Slot_WeaponInfo Has no Content!
19:43:46.117 SCRIPT (W): Slot_Chat Has no Content!
19:43:46.117 SCRIPT (W): Slot_VON Has no Content!
19:43:46.117 SCRIPT (W): Slot_AvailableActions Has no Content!
19:43:46.118 SCRIPT (W): Slot_Vehicle Has no Content!
19:43:46.118 SCRIPT (W): Slot_GameVersion Has no Content!
19:43:46.118 SCRIPT (W): Slot_Notifications Has no Content!
19:43:46.118 SCRIPT (W): Slot_Hints Has no Content!
19:43:46.130 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.
19:43:46.130 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.
19:43:46.131 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.
19:43:46.134 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
19:43:46.263 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
19:43:46.277 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
19:43:46.434 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
19:43:46.435 SCRIPT (E): [Chat] SCR_ChatPanelManager is not found. Chat will not work.
19:43:46.475 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.819 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance. Variable 'm_aMessages'
Class: 'SCR_ChatPanel'
Function: 'UpdateChatMessages'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateChatMessages
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnHUDResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnSlotUIResize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function SetHeight
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function Resize
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function ResizeGroup
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function OnUpdate
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
Scripts/Game/UI/Chat/SCR_ChatPanel.c:391 Function UpdateValues
19:43:46.821 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
19:43:46.886 SCRIPT (E): Virtual Machine Exception
Reason: NULL pointer to instance
Class: 'SCR_ChatPanel'
Function: 'OnUpdateChat'
Stack trace:
Scripts/Game/UI/Chat/SCR_ChatPanel.c:85 Function OnUpdateChat
Scripts/Game/UI/Chat/SCR_ChatHud.c:26 Function DisplayUpdate
Scripts/Game/UI/HUD/SCR_InfoDisplayExtended.c:578 Function UpdateValues
@@ -0,0 +1,4 @@
{
"schema_version": 1,
"kind": "launch_snapshot"
}
@@ -0,0 +1,531 @@
{
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6",
"addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a",
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a",
"addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b",
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb",
"addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb",
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f",
"addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe",
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318",
"addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78",
"addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7",
"addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b",
"addons/core/Configs/ERR/AdminMenus.conf": "a7f889f260e43656136fc159342129e5f48748d28c426f65f9faac37b624cf94",
"addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1",
"addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c",
"addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800",
"addons/core/Configs/ERR/EveronSites.conf": "a66c30039c7141e5a0f22af21aa522728fe4aa5cde821158aea3b716d11457a1",
"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/ObserverInput.conf": "89928b57fdd6fa3ae837fb2daf55f627a62a98fd111ffdb55c2874f1e040afaf",
"addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4",
"addons/core/Configs/ERR/Tests/LegacySites.conf": "db318cbec1a5ed520bd2858ddb51baf76355d6ec5893e0503a44b1ea5dbfa9d5",
"addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3",
"addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3",
"addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8",
"addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18",
"addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5",
"addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604",
"addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4",
"addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02",
"addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c",
"addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69",
"addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272",
"addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26",
"addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571",
"addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89",
"addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "eec89d7d4b0a496a0b6666e687924de842f34997c68310d3654dbb84f69357de",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a",
"addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3",
"addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656",
"addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91",
"addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba",
"addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47",
"addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe",
"addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716",
"addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd",
"addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715",
"addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90",
"addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0",
"addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08",
"addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2",
"addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1",
"addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8",
"addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814",
"addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9",
"addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537",
"addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb",
"addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3",
"addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c",
"addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c",
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3",
"addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2",
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b",
"addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b",
"addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85",
"addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add",
"addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42",
"addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068",
"addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811",
"addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012",
"addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0",
"addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259",
"addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607",
"addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635",
"addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627",
"addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8",
"addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3",
"addons/core/Prefabs/ERR/TerrainTakeover.et": "6206fe2eb4e2c6c1a9e3ddf2898535ae08981c115adc6ddd926017ac20d4b535",
"addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656",
"addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c",
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "74d6866912c39243c6709876696d992886226da2c04a281f3f64b6c152eb5809",
"addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d",
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a",
"addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "980d30964845600a261693cc5c5553e1472e8e54867bdc06133ff5c7b36c9128",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "4eecaa2b27fb449807ade387a9c0c487e6f76c1d6bbaa8a0b2330ebe4cd5b69a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "7d78652c03dcdfbf8be8e13cbce2ee8ae745e08ccf1759cd6933e290840e8197",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "e86187d554436cf3fe074dce85cf7e4390cb044509a3a6a52614391f0cdbf9f4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0c2f4d31a2abc8f3f90bda20546543f2a1cf9306e9bf93351dda1883b990770e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "a49c71ff7ee54afb9af6a368e71d55df335fcc47526eeeb3acf3d9c15a9610d6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923",
"addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "60b9377f702ba2da6cb98d1742b4ee4fa9ed66ece9875d411537a51173d5585d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "0ad97b7dea562658d6e235116885bddac581ccb208284de34e2cfda0f2c90194",
"addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69",
"addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "5fb23182223e7b951a63171959c8701ac439ec290755d7445b2768ccdde489c2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "6e3c65e55b05cf205040c310b9086faa41b88582c7f9faf49c010afd59da5b07",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "9f69d8ede2a1c119025773da9165dfe1932074dcc7b5e314a957fc334127c0d4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "21ea6e585880101b3f7778c823c3dcd912e377e5ce4255632dd5dddadb77e3b6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce",
"addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "e271cddcf6eeafa26e5024e518b24e13c155c95d343a45c06da30e81e8b0c653",
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "33b81e7896387d4526538ed68c4421d2e43c1eff175eea45fedfe6c32d5632cb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90",
"addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "b22d75484cc671392f623fddd175882f9a430227247355f35c0aef4c68a7e0a2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273",
"addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "45281c83e3300b37f079351aaaf30b0bc345c6a47394f594f79d07fa0d4176d0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "1067487f8a9be4d7d3d9e4ab5d58fda05ab894d5f338c7d7612a92b641bcec4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "593e59664dbd7330b52674e5d4cc7b70db588cb75a1259ed808b74602501d541",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "8746e0059ddf4d4195c7ecf6ad9041618f95d3d76ce1779da641a2043ccde062",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "2d07b895cb74af58454605fb1c536a566733e3001a9375dd0677d5f274bf2a46",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "19fc19e22348e6213827f620f4fdb5dc26144ea2ce0032de773e79c1fb155a26",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "f5691373634d593148d9d8389ed3c20dd9004e45eca89db501f560ec070e46f1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "f24b1da233c5ced8cd119731a54cd922aa8e359f43a05016e2117310b66b966c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577",
"addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "29fe5ef97a3d22bfdae630adf1987324166bb72c91f7def3f0cf609bed09bd42",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "663f078609cfde3cad36cdc107e18d9a07788b9ca785675e85e552be330289aa",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "e49bab76a015ab545088af7e5eaa3cc45811907db4e5b1c5fa8c18afef34b62f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "a694b81494b46f339f0f614b3eec2faefe03a87c5537bd9a53ad12c9da5a1f25",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "4440e387b6a10076dd3d6921c924a9e0f098da593f9bae03bcdbb05c91127dc5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "a3c281892dd14d0ee2b4b58db3e9f60c0b7cffc22a77260c3f0b1f6f5551ab2e",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "9df8ccf45fc2ed12f4b14d08270878696e8785760a3ae51fe032b6f3818fc0e6",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "c36b9c38565dfbd13539d94b78b75b9f6132aabd9b86da251c3fb654fd5b2d3a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "a92f0c2b451a5d55f1f15e6749bad47442629f4914fefdee610ed7873deb6501",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "aa788e449ccee137cae7a804add3a1d4449bfa54a5f89191402d9de71a9e6089",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "349fa932b72443cca87ae17f48461e617b83efe512bde55ad81e740426f1a7b5",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "b0aa4fd3ce181a2663f1b9422fc4e24d3915dc468f609159514ab92b3cba35a4",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "75ac61a9ba0d984a5c6d21ad6a020bb1562914ab09dafac8a80e822f0af77611",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "b765adafc2b6f24a4bbc3fd282a7ed78c0beb8f9333c931cea6cb959425458f0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "cad49abaeb57a54165e12c6f884cf460bf648eb4a41ac2d643d8132ac501a022",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "0a4b6b52486dfa5b6111d43333b6f8e43df8f2bd9a343c553ad2eb44fec3c96b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "1dcf35b57631132f1bdbd8630f81ce27ff83290b5c468073f3ed6cd19a34df29",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "270bf465808d23627a11e720c6632d4fea35d0c679e63aa64046ef8874d68ceb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "12c4a3d2415e7b43ca1e0419dfca14e0710898af55544e803ce87e4e60277cd2",
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "643a30b1370dc8ee14fd8c578415382b76831ba4eef6e311ed68d32630194a47",
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade",
"addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "77fc882820968cdb4b1f7bc28afa7e164b0e496cc0caabcdae1c532ea7b005bb",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac3a54e6b82e7ab61a37536e8734ada1c68f9fa0e03bb42f0f4f6cc88058aede",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "458b84b3fb31c5a2bd1b7c3d65f25e0aeab91f5505ef0813231435c8a3c7d2b7",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "0f75141c603cdc8b5bc8804e21df10514167dbbb1770f9f64e18fd30c6fe2d13",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "c065d7e70f251b49664f0f5871295d60bbb88ba956adb1c4e06a100db193e0e0",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132",
"addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "2c4fab3c1b117ad42473b7772f0e349e8761367bcb26d0f7bb7d25d65f877299",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1",
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779",
"addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f",
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "521dca2b30c53a4db0c0506eb5c547ba795ea64e9fe604a2138711d57110cd3a",
"addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "55765607da19b2ef111cb5594564f128275ba6b8cd0c0cdeaf66b7a6d956822f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc",
"addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99",
"addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "ee8e5f0483ad738f6254adcd66e71ad4872fd000c92f44405c4dcc0453a40308",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839",
"addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "1d75bde74a5a14aa3ccd422d1b87988b62b7eb8d3fd43f44f05d9e783cc40d2d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "57496b13cfb6222cb0415700f8b40c5dfe19c60737ee819373750ff6697f240e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "12ea8ba08753d1e6d38b237087c1209cd2f9574b53c3ff0f27c082bed029c9ea",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "d5864563517b9eab5db851808953f26dcee5ce9a60ac618bb5c15c4e49bc2ae1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "758990669bf73ea76f77acc60a5a24d3bf454aeeb5cbeacb0962e18e1a7be30a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "0b3fc27211318088847ba35b9e0cbc97f851ac2e357dd1dba08db083e203a94c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42",
"addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "f14a82a0a8608740a639fd28cb39ffad8f27574dd58cc94e99abc08f411153ab",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995",
"addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17",
"addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080",
"addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "b3d49f29bade17fe7cedb72fee1b8bfe9e7b873d6b414cd6e1b931cfb034125d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "a89cc3374f76583ebf56162e19270a68d157830b297dffaf6968fc94a793f228",
"addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a",
"addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "4c6bf051081fff15736f9d6d33ba2937126edaf163944501dba076b306fbf5c1",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "fce94d32837ddda05d68b8f0b19427194e0177c93e48e27e8193b2b07adbaf5d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "873ceecac98fc4e5299a91259910e6697a32049ed7782a232b159c143faa0398",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878",
"addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d",
"addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "d63ab5c547021aeb61d398b8a773afeedee4662d3ce15d9fd9d0e9e37262f8b7",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "6bbf3f30c410a6ec4e741f5d743a6727aee14ce8245a98ab1ca51f40917615ca",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "eb8b6bdaf64efa43759e31754a69c93e56273c376f89f6660e83cba480c98adf",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc",
"addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "e0f57c24e58401a6f0428af6aa9bbb0f2340c060b72e9a7324c6d7d91842e7a8",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "e6c6e20deecf0f4954ad21ce76e10b7f7649c47bea0bc4f3bdb95daf0ba04ed1",
"addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2",
"addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507",
"addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65",
"addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c",
"addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871",
"addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7",
"addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21",
"addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f",
"addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d",
"addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453",
"addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660",
"addons/core/UI/layouts/ERR/AdminMenu.layout": "46c7073d83a587b1f0adfd0861695203ed7eeee43ad41f946af6a571e1004026",
"addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf",
"addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca",
"addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08",
"addons/core/UI/layouts/ERR/ContentRow.layout": "942e33bf2e08550446b40bcac31fb4504b7d8c717a42c196f54bf4025c72706c",
"addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6",
"addons/core/UI/layouts/ERR/ItemRow.layout": "6d364ce48158b90abd2185ca87ee27b095d0f7a5c8d59a0c65940e4be5488ac3",
"addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b",
"addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d",
"addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240",
"addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79",
"addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115",
"addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6",
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "826c524248d2a2551998b32ab963a1c40751f16308d52d472befa423f1797b39",
"addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175",
"addons/core/addon.gproj": "73e973a1f1c5910393e16f86a3a40d792031bb2fa3fc7f4dd87a06a16c3e34a4"
}
@@ -0,0 +1,118 @@
ActionManager : "{795184CF9AD764DB}Configs/System/chimeraInputCommon.conf" {
Contexts {
ActionContext ERR_FieldMapContext {
Priority 60
Flags 0xa 0
Actions {
Action ERR_AtlasDigit0 {
InputSource InputSourceValue "{A7B19F416E541020}" {
Input "keyboard:KC_NUMPAD0"
}
}
Action ERR_AtlasDigit1 {
InputSource InputSourceValue "{A7B19F416E541021}" {
Input "keyboard:KC_NUMPAD1"
}
}
Action ERR_AtlasDigit2 {
InputSource InputSourceValue "{A7B19F416E541022}" {
Input "keyboard:KC_NUMPAD2"
}
}
Action ERR_AtlasDigit3 {
InputSource InputSourceValue "{A7B19F416E541023}" {
Input "keyboard:KC_NUMPAD3"
}
}
Action ERR_AtlasDigit4 {
InputSource InputSourceValue "{A7B19F416E541024}" {
Input "keyboard:KC_NUMPAD4"
}
}
Action ERR_AtlasDigit5 {
InputSource InputSourceValue "{A7B19F416E541025}" {
Input "keyboard:KC_NUMPAD5"
}
}
Action ERR_AtlasDigit6 {
InputSource InputSourceValue "{A7B19F416E541026}" {
Input "keyboard:KC_NUMPAD6"
}
}
Action ERR_AtlasDigit7 {
InputSource InputSourceValue "{A7B19F416E541027}" {
Input "keyboard:KC_NUMPAD7"
}
}
Action ERR_AtlasDigit8 {
InputSource InputSourceValue "{A7B19F416E541028}" {
Input "keyboard:KC_NUMPAD8"
}
}
Action ERR_AtlasDigit9 {
InputSource InputSourceValue "{A7B19F416E541029}" {
Input "keyboard:KC_NUMPAD9"
}
}
Action ERR_AtlasEnter {
InputSource InputSourceSum "{A7B19F416E54102B}" {
Sources {
InputSourceValue "{A7B19F416E54102A}" {
Input "keyboard:KC_NUMPADENTER"
}
InputSourceValue "{A7B19F416E54102C}" {
Input "keyboard:KC_RETURN"
}
}
}
}
Action ERR_FieldMapLeft {
InputSource InputSourceValue "{A7B19F416E541010}" {
Input "keyboard:KC_LEFT"
}
}
Action ERR_FieldMapRight {
InputSource InputSourceValue "{A7B19F416E541011}" {
Input "keyboard:KC_RIGHT"
}
}
Action ERR_FieldMapUp {
InputSource InputSourceValue "{A7B19F416E541012}" {
Input "keyboard:KC_UP"
}
}
Action ERR_FieldMapDown {
InputSource InputSourceValue "{A7B19F416E541013}" {
Input "keyboard:KC_DOWN"
}
}
}
}
ActionContext ERR_ObserverContext : "{C538807EEE48BED8}Configs/System/ActionContext/ManualCameraContext.conf" {
Actions {
Action ERR_ObserverPrevious {
InputSource InputSourceValue "{A7B19F416E541001}" {
Input "keyboard:KC_LEFT"
}
}
Action ERR_ObserverNext {
InputSource InputSourceValue "{A7B19F416E541002}" {
Input "keyboard:KC_RIGHT"
}
}
Action ERR_ObserverView {
InputSource InputSourceSum "{A7B19F416E541003}" {
Sources {
InputSourceValue "{A7B19F416E541004}" {
Input "keyboard:KC_RETURN"
}
InputSourceValue "{A7B19F416E541005}" {
Input "keyboard:KC_NUMPADENTER"
}
}
}
}
}
}
}
}
@@ -0,0 +1,152 @@
ERR_ScenarioDefinition {
MinimumRadioSources 2
Sites {
ERR_SiteDefinition {
Id "everon-prison-1"
RandomClear 1
Label "Prison"
Kind 0
Prefab "{BE6B8D56349038A6}Prefabs/ERR/Prison.et"
Position 6090 0 7160
Guarded 1
GuardOffset 35 0 0
Container "{D93480F29E73C1AB}Prefabs/ERR/PrisonBackpack.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"
AllowFactionPool 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 "{13772C903CB5E4F7}Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et" Count 1 }
ERR_SiteStock { Prefab "{554159A6740C3F3E}Prefabs/ERR/ObjectiveDocument.et" Count 2 TargetId "everon-radio-1" }
}
RevealOnEscape 1
}
ERR_SiteDefinition {
Id "everon-radio-1"
RandomClear 1
RootHeight 0.8
Label "Radio station"
DiscoverRadius 8
Kind 1
Prefab "{47D725F56A904ACE}Prefabs/ERR/RadioCamp.et"
Position 6500 0 7200
Props {
ERR_SiteProp { Prefab "{53506DCB398C7EBE}Prefabs/Props/Furniture/Table_01.et" Offset 0 0 0 }
ERR_SiteProp { Prefab "{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et" Offset -4 0 2 }
ERR_SiteProp { Prefab "{01AE5FD77A9A4C21}Prefabs/Structures/Military/Camps/TentSmallUS_01/TentSmallUS_01.et" Offset 4 0 3 }
ERR_SiteProp { Prefab "{CFFEB23FBEA00322}Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et" Offset -3 0 -4 }
ERR_SiteProp { Prefab "{CFFEB23FBEA00322}Prefabs/Props/Military/Sandbags/Sandbag_01_short_burlap.et" Offset 3 0 -4 }
}
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 4776.55 0 11528.9
Guarded 1
GuardOffset 30 0 0
}
ERR_SiteDefinition {
Id "everon-supply-2"
AllowFactionPool 1
Label "Western supply cache (vehicle maintenance)"
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 "{FA65287C19DE304B}Prefabs/ERR/Vehicles/SupplyUAZ.et"
Offset 0 0 -8
Heading 180
ClearanceRadius 4
MaximumTerrainRange 1
}
Stock {
ERR_SiteStock { Prefab "{C09C7C97EFA34909}Prefabs/ERR/Items/EmergencyRepairKit.et" Count 1 }
ERR_SiteStock { Prefab "{12D5AD21E383B768}Prefabs/Items/Fuel/Jerrycan_01/Jerrycan_01_item.et" Count 2 }
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 "{13772C903CB5E4F7}Prefabs/Items/Equipment/Maps/Map_Paper_01/PaperMap_01_folded.et" Count 1 }
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 }
}
}
}
}
@@ -0,0 +1,9 @@
ERR_ObserverCamera {
ID "634904BCEDA1A285"
m_bInputEnabled 1
m_sActionContext "ERR_ObserverContext"
m_bStartAtEntity 1
m_aComponents {
ERR_FollowSurvivorCameraComponent "{965C2E8B2339B926}" {}
}
}
@@ -0,0 +1,516 @@
enum ERR_ObserverReason
{
NONE,
SPENT_LIFE,
LATE_EXTRACTION,
SPAWN_UNAVAILABLE,
UNCONSCIOUS
}
class ERR_ObserverRules
{
static int Cycle(bool enabled, bool left, bool right, bool previousLeft, bool previousRight)
{
if (!enabled || left == right) return 0;
if (left && !previousLeft) return -1;
if (right && !previousRight) return 1;
return 0;
}
static bool Toggle(bool enabled, bool pressed, bool previous)
{
return enabled && pressed && !previous;
}
static bool Casualty(bool active, bool currentBody, bool alive, bool conscious)
{
return active && currentBody && alive && !conscious;
}
static bool View(int reason, bool active, bool alive, bool conscious)
{
if (!active || reason == ERR_ObserverReason.NONE) return false;
if (reason == ERR_ObserverReason.UNCONSCIOUS) return alive && !conscious;
return !alive;
}
}
// 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.";
else if (reason == ERR_ObserverReason.UNCONSCIOUS)
{
message = "You are unconscious. Your body remains where you fell and teammates can still treat you. Your view returns automatically when you wake up.";
if (!survivorAvailable) return message + " No conscious teammate is currently available; the camera stays near your body. Use camera look controls to orbit and zoom controls to change distance.";
}
if (!survivorAvailable)
return message + " No teammate or body is currently available to follow. Use camera look controls to orbit the last known position and zoom controls to change distance.";
return message + " Press Left / Right arrow to change teammate or body (or /esc spectate next / /esc spectate previous). Press Enter to switch between third-person and the living teammate's camera. Player view waits in third-person if no live camera stream is available. Use camera look controls to orbit and zoom controls to change distance in third-person.";
}
static bool Refresh(bool shown, int previousReason, int reason, bool previousAvailable, bool survivorAvailable)
{
return reason != ERR_ObserverReason.NONE && (!shown || previousReason != reason || previousAvailable != survivorAvailable);
}
}
class ERR_ObserverCameraClass : SCR_ManualCameraClass {}
modded class SCR_ChatPanelManager
{
bool ERR_HasOpenChatPanel()
{
foreach (SCR_ChatPanel panel : m_aChatPanels)
if (panel && panel.IsOpen()) return true;
return false;
}
}
class ERR_ObserverChatInput
{
static bool Capture()
{
SCR_ChatPanelManager manager = SCR_ChatPanelManager.GetInstance();
bool chatOpen = manager && manager.ERR_HasOpenChatPanel();
bool editing;
Widget focused = GetGame().GetWorkspace().GetFocusedWidget();
while (focused)
{
// A HUD stopping drawing can unregister a panel before its focused edit
// widget closes. Keep that still-open native panel's send action available.
SCR_ChatPanel panel = SCR_ChatPanel.Cast(focused.FindHandler(SCR_ChatPanel));
if (panel && panel.IsOpen()) chatOpen = true;
if (EditBoxWidget.Cast(focused)) editing = true;
focused = focused.GetParent();
}
InputManager input = GetGame().GetInputManager();
// IsOpen is immediate; vanilla refreshes ChatContext later in its HUD update.
// Renew only for an actual open chat, never for an unrelated password box.
if (chatOpen) input.ActivateContext("ChatContext", 1);
return chatOpen || editing || input.IsContextActive("ChatContext");
}
}
// Gate before SCR_ManualCamera activates its context: disabling only the follow
// component is too late, since the camera context can already consume chat keys.
class ERR_ObserverCamera : SCR_ManualCamera
{
override protected bool IsDisabledByMenu()
{
if (super.IsDisabledByMenu()) return true;
return ERR_ObserverChatInput.Capture();
}
}
// A local follow camera. It never possesses its target or offers free flight.
[BaseContainerProps(), SCR_BaseManualCameraComponentTitle()]
class ERR_FollowSurvivorCameraComponent : SCR_BaseManualCameraComponent
{
protected IEntity m_Target;
protected IEntity m_Vehicle;
protected float m_Yaw = 180;
protected float m_Pitch = 20;
protected float m_Distance = 5;
protected bool m_LeftDown, m_RightDown, m_EnterDown;
protected int m_InputResumeFrames;
protected bool m_PlayerView;
protected ref ERR_ObserverHeadVisibility m_ViewHead = new ERR_ObserverHeadVisibility();
protected float m_OrbitFov, m_OrbitNear;
protected ref ERR_ObserverScopeDisplay m_ScopeDisplay = new ERR_ObserverScopeDisplay();
protected ref ERR_ObserverPIPDisplay m_PIPDisplay = new ERR_ObserverPIPDisplay();
protected bool m_InputContextActive;
bool InputContextActive() { return m_InputContextActive; }
bool IsPlayerView() { return m_PlayerView; }
// Process one edge per press; menus still consume the state so holding a key
// while closing a menu cannot unexpectedly change the followed teammate.
void Input(bool enabled, bool left, bool right, bool enter)
{
// An inactive context reports zero even while a physical key is held. Let
// the reactivated context settle, then require release before accepting keys.
if (!enabled) m_InputResumeFrames = 2;
else if (m_InputResumeFrames > 0)
{
enabled = false;
if (m_InputResumeFrames > 1 || (!left && !right && !enter)) m_InputResumeFrames--;
}
SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());
int cycle = ERR_ObserverRules.Cycle(enabled, left, right, m_LeftDown, m_RightDown);
if (controller && cycle != 0) controller.ERR_CycleObserver(cycle);
if (ERR_ObserverRules.Toggle(enabled, enter, m_EnterDown)) m_PlayerView = !m_PlayerView;
m_LeftDown = left; m_RightDown = right; m_EnterDown = enter;
}
override bool EOnCameraInit()
{
m_OrbitFov = GetCameraEntity().GetVerticalFOV();
m_OrbitNear = GetCameraEntity().GetNearPlane();
return true;
}
override void EOnCameraExit() { m_PIPDisplay.Close(); m_ScopeDisplay.Close(); m_ViewHead.Restore(); }
override void EOnCameraFrame(SCR_ManualCameraParam param)
{
SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());
if (!controller || GetGame().GetCameraManager().CurrentCamera() != GetCameraEntity()) { m_PIPDisplay.Close(); m_ScopeDisplay.Close(); m_ViewHead.Restore(); return; }
m_InputContextActive = GetInputManager().IsContextActive("ERR_ObserverContext");
Input(param.isManualInputEnabled, GetInputManager().GetActionValue("ERR_ObserverPrevious") > 0.5, GetInputManager().GetActionValue("ERR_ObserverNext") > 0.5, GetInputManager().GetActionValue("ERR_ObserverView") > 0.5);
IEntity target = controller.ERR_ObservedEntity();
float fov, nearPlane;
if (m_PlayerView && controller.ERR_ReadPlayerView(target, param.timeSlice, param.transform, fov, nearPlane))
{
param.fov = fov; GetCameraEntity().SetNearPlane(nearPlane);
RplId scopeWeapon; vector scopeData;
controller.ERR_ReadScope(scopeWeapon, scopeData);
SCR_2DOpticsComponent optic = ERR_ObserverScope.Resolve(target, scopeWeapon, scopeData);
IEntity weapon;
if (optic)
{
RplComponent weaponRpl = RplComponent.Cast(Replication.FindItem(scopeWeapon));
if (weaponRpl) weapon = weaponRpl.GetEntity();
}
vector eye[4], geometry;
float eyeFov, eyeNear, pipFov, vignette;
// Read both timelines every camera frame, including the 2D fallback, so
// enabling PiP cannot resume an eye camera from a different time.
bool haveEye = controller.ERR_ReadPlayerEye(target, param.timeSlice, eye, eyeFov, eyeNear, pipFov, geometry, vignette);
bool pip = haveEye && param.isManualInputEnabled && optic && weapon;
if (pip) pip = m_PIPDisplay.Render(optic, param.transform, eye, fov, pipFov, scopeData, geometry, vignette);
if (pip)
{
m_ScopeDisplay.Close();
Math3D.MatrixCopy(eye, param.transform);
param.fov = eyeFov; GetCameraEntity().SetNearPlane(eyeNear);
}
else
{
m_PIPDisplay.Close();
if (!param.isManualInputEnabled || !optic || !weapon || !m_ScopeDisplay.RenderScope(optic, weapon, fov, scopeData)) m_ScopeDisplay.Close();
}
m_ViewHead.Update(target, param.transform[3]);
param.isDirty = true;
return;
}
// No estimated head camera: corpses, streaming gaps and expired samples use
// the stable follow view until an authenticated live camera stream arrives.
m_PIPDisplay.Close(); m_ScopeDisplay.Close();
m_ViewHead.Restore();
param.fov = m_OrbitFov; GetCameraEntity().SetNearPlane(m_OrbitNear);
vector aim = controller.ERR_ObserverAnchor() + "0 1.5 0";
IEntity exclude = target;
IEntity vehicle;
if (target)
{
vehicle = CompartmentAccessComponent.GetVehicleIn(target);
vector transform[4];
if (vehicle)
{
vehicle.GetWorldTransform(transform);
vector lower, upper;
vehicle.GetWorldBounds(lower, upper);
aim = (lower + upper) * 0.5;
exclude = vehicle;
}
else
{
target.GetWorldTransform(transform);
aim = transform[3] + "0 1.5 0";
if (!ERR_Actors.Alive(target)) aim = transform[3] + "0 0.4 0";
}
if (target != m_Target || vehicle != m_Vehicle)
{
vector angles = transform[2].VectorToAngles();
m_Yaw = angles[0] + 180; m_Pitch = 20; m_Distance = 5;
if (vehicle) m_Distance = 12;
m_Target = target; m_Vehicle = vehicle;
}
}
else
{
// A lone casualty, an all-down squad or an entity still streaming can have
// only an anchor. Keep orbit controls and forget the previous vehicle limits.
m_Target = null; m_Vehicle = null;
m_Distance = Math.Clamp(m_Distance, 2, 12);
}
if ((!m_PlayerView || !target || !ERR_Actors.Alive(target)) && param.isManualInputEnabled)
{
m_Yaw += GetInputManager().GetActionValue("ManualCameraRotateYaw") * 90 * param.timeSlice;
m_Pitch = Math.Clamp(m_Pitch - GetInputManager().GetActionValue("ManualCameraRotatePitch") * 90 * param.timeSlice, 5, 75);
float scale = Math.Clamp(1 + GetInputManager().GetActionValue("ManualCameraZoom") * 12 * param.timeSlice, 0.5, 1.5);
float minimum = 2, maximum = 12;
if (vehicle) { minimum = 6; maximum = 25; }
m_Distance = Math.Clamp(m_Distance * scale, minimum, maximum);
}
float yaw = m_Yaw * Math.DEG2RAD, pitch = m_Pitch * Math.DEG2RAD;
vector offset = Vector(Math.Sin(yaw) * Math.Cos(pitch), Math.Sin(pitch), Math.Cos(yaw) * Math.Cos(pitch));
vector position = aim + offset * m_Distance;
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 string m_ERRShownRecoveryStatus;
protected float m_ERRLastCycle = -1000;
protected IEntity m_ERRRecoveryBody;
protected float m_ERRRecoveryDeadline = -1;
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()) && reason != ERR_ObserverReason.UNCONSCIOUS) 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()) return;
ERR_GameMode mode = ERR_GameMode.Get();
IEntity body = GetControlledEntity();
bool casualty = mode && ERR_ObserverRules.Casualty(mode.Active(), mode.Players() && mode.Players().CurrentActor(body) != null, ERR_Actors.Alive(body), ERR_Actors.CanFight(body));
if (casualty && m_ERRObserverReason != ERR_ObserverReason.UNCONSCIOUS)
{
m_ERRObserverReason = ERR_ObserverReason.UNCONSCIOUS;
m_ERRObserverAnchor = body.GetOrigin();
}
if (m_ERRObserverReason == ERR_ObserverReason.UNCONSCIOUS && !ERR_Actors.Alive(body)) m_ERRObserverReason = ERR_ObserverReason.SPENT_LIFE;
// Death can leave the controller attached to its corpse, so entity-lost is
// not a reliable trigger (especially with the last/only player).
ERR_PlayerLife life;
if (mode && mode.Players()) life = mode.Players().Get(GetPlayerId());
if (mode && mode.Active() && life && life.UsedLife && life.Actor && !ERR_Actors.Alive(life.Actor) && !ERR_Actors.Alive(body) && m_ERRObserverReason == ERR_ObserverReason.NONE)
{
m_ERRObserverReason = ERR_ObserverReason.SPENT_LIFE;
m_ERRObserverAnchor = life.Actor.GetOrigin();
}
if (m_ERRObserverReason == ERR_ObserverReason.NONE) return;
if (!mode || !mode.Active() || (ERR_Actors.Alive(body) && !casualty) || (m_ERRObserverReason == ERR_ObserverReason.UNCONSCIOUS && !casualty))
{
m_ERRObserverReason = ERR_ObserverReason.NONE;
ERR_ReleaseObserved();
Replication.BumpMe();
return;
}
array<IEntity> survivors = {};
ERR_Actors.Players(survivors);
Faction friendly = mode.PlayerFaction();
for (int i = survivors.Count() - 1; i >= 0; i--)
if (survivors[i] == body || (casualty && !ERR_Actors.CanFight(survivors[i])) || !friendly || !mode.Players() || !mode.Players().CurrentActor(survivors[i]) || SCR_FactionManager.SGetFaction(survivors[i]) != friendly) survivors.RemoveOrdered(i);
// Dead teammates remain selectable alongside survivors, including our own body.
ERR_ObserverTargets.Bodies(mode, survivors);
int index = survivors.Find(m_ERRServerObserved);
if (index < 0)
{
if (life && life.Actor) index = survivors.Find(life.Actor);
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);
}
}
else if (casualty) m_ERRObserverAnchor = body.GetOrigin();
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()
{
if (!GetGame()) return;
if (this != GetGame().GetPlayerController())
{
// A replaced controller may retain its timer until native destruction.
// Release only its presentation; never restore its old body camera.
GetGame().GetCallqueue().Remove(ERR_UpdateObserverClient);
m_ERRObserverMonitor = false;
m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1;
ERR_CloseObserverCamera();
return;
}
ERR_GameMode mode = ERR_GameMode.Get();
ERR_UpdateRecoveryCamera(mode);
bool observe = mode && ERR_ObserverRules.View(m_ERRObserverReason, mode.Active(), ERR_Actors.Alive(GetControlledEntity()), ERR_Actors.CanFight(GetControlledEntity()));
if (!observe)
{
ERR_CloseObserverCamera();
return;
}
SCR_EditorManagerEntity editor = SCR_EditorManagerEntity.GetInstance();
if (editor && editor.IsOpened()) 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().SpawnEntityPrefabLocal(resource, GetGame().GetWorld(), params));
if (!m_ERRObserverCamera) return;
}
CameraManager manager = GetGame().GetCameraManager();
if (!manager) return;
// Native death/respawn camera changes can arrive after our camera is created.
if (manager.CurrentCamera() != m_ERRObserverCamera) manager.SetCamera(m_ERRObserverCamera);
if (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();
string recovery = mode.RecoveryStatus();
if (ERR_ObserverGuidance.Refresh(m_ERRObserverReady, m_ERRShownObserverReason, m_ERRObserverReason, m_ERRShownObserverAvailable, survivorAvailable) || m_ERRShownRecoveryStatus != recovery)
{
SCR_HintManagerComponent hints = SCR_HintManagerComponent.GetInstance();
if (!hints) return; // retry on the existing monitor; do not lose the first hint
string message = ERR_ObserverGuidance.Message(m_ERRObserverReason, survivorAvailable);
if (!recovery.IsEmpty()) message += "\n" + recovery;
if (!hints.ShowCustom(message, "Spectating", 12)) return;
m_ERRObserverReady = true;
m_ERRShownObserverReason = m_ERRObserverReason;
m_ERRShownObserverAvailable = survivorAvailable;
m_ERRShownRecoveryStatus = recovery;
}
}
// Track the actual local body even when an editor/other camera owns the view.
// Run once per recovery, with retries for asynchronous editor close/camera setup.
protected void ERR_UpdateRecoveryCamera(ERR_GameMode mode)
{
IEntity body = GetControlledEntity();
if (!mode || !mode.Active() || !ERR_Actors.Alive(body))
{ m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1; return; }
if (!ERR_Actors.CanFight(body))
{ m_ERRRecoveryBody = body; m_ERRRecoveryDeadline = -1; return; }
if (!m_ERRRecoveryBody) return;
if (body != m_ERRRecoveryBody)
{ m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1; return; }
float now = GetGame().GetWorld().GetWorldTime();
if (m_ERRRecoveryDeadline < 0) m_ERRRecoveryDeadline = now + 10000;
SCR_EditorManagerEntity editor = SCR_EditorManagerEntity.GetInstance();
if (editor && editor.IsOpened()) editor.Close(false);
CameraManager manager = GetGame().GetCameraManager();
CameraBase playerCamera = GetPlayerCamera();
if (manager && playerCamera) manager.SetCamera(playerCamera);
if ((manager && playerCamera && manager.CurrentCamera() == playerCamera && (!editor || !editor.IsOpened())) || now >= m_ERRRecoveryDeadline)
{
if (now >= m_ERRRecoveryDeadline) Print("Reintroduced [spectator]: recovery camera return timed out waiting for editor/camera; player body remains controlled", LogLevel.WARNING);
m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1;
}
}
protected void ERR_CloseObserverCamera()
{
m_ERRObserverReady = false;
m_ERRShownRecoveryStatus = "";
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();
}
}
}
@@ -0,0 +1,332 @@
// Camera poses are cosmetic, owner-sampled and relayed only to authorized
// spectators of that body. No client-supplied position affects gameplay.
class ERR_ObserverViewRules
{
// One unreliable packet contains both cameras, so loss/reordering cannot
// pair a new eye pose with an old aiming pose. Four vectors for ordinary/2D,
// nine for PiP: scope pose/lens, eye pose/lens, native lens geometry.
static bool Packet(array<vector> packet)
{
if (!packet || (packet.Count() != 4 && packet.Count() != 9)) return false;
if (!Sample(packet[0], packet[1], packet[2], packet[3][0], packet[3][1])) return false;
if (packet.Count() == 4) return packet[3][2] == 0;
if (!(packet[3][2] >= 0.01 && packet[3][2] <= 150)) return false;
if (!Sample(packet[4], packet[5], packet[6], packet[7][0], packet[7][1])) return false;
return packet[7][2] >= 0 && packet[7][2] <= 100 && Math.AbsFloat(packet[8][0]) <= 90 && Math.AbsFloat(packet[8][1]) <= 90 && packet[8][2] >= 0.001 && packet[8][2] <= 100;
}
// The body and camera arrive through independently timed replication streams.
// Keep the sampled world axes and world-axis eye offset together. Applying
// the proxy body's rotation to delayed body-local aim adds its yaw error to
// both aim and eye position, even when the owner's camera is steady.
static void Encode(vector body[4], vector view[4], out vector pose[4])
{
for (int axis = 0; axis < 3; axis++) pose[axis] = view[axis];
pose[3] = view[3] - body[3];
}
static void Decode(vector body[4], vector pose[4], out vector view[4])
{
for (int axis = 0; axis < 3; axis++) view[axis] = pose[axis];
view[3] = body[3] + pose[3];
}
static bool Sample(vector position, vector forward, vector up, float fov, float nearPlane)
{
// Negated bounded comparisons also reject NaN/infinity before matrix math.
if (!(position.LengthSq() <= 900) || !(fov >= 1 && fov <= 150) || !(nearPlane >= 0.005 && nearPlane <= 2)) return false;
if (!(forward.LengthSq() >= 0.9 && forward.LengthSq() <= 1.1) || !(up.LengthSq() >= 0.9 && up.LengthSq() <= 1.1)) return false;
return Math.AbsFloat(vector.Dot(forward, up)) <= 0.05;
}
static bool Fresh(float now, float received) { return received >= 0 && now >= received && now - received <= 350; }
}
// Keep actual sampled poses on a short timeline instead of restarting a blend
// on every packet arrival. Only presentation is delayed; possession is unchanged.
class ERR_ObserverViewSample
{
int Stamp;
vector Position, Forward, Up;
float Fov, Near;
float PipFov, Vignette;
vector Geometry;
}
class ERR_ObserverViewBuffer
{
protected RplId m_Target = RplId.Invalid();
protected int m_Stamp = -1;
protected RplId m_ScopeWeapon = RplId.Invalid();
protected vector m_ScopeData;
protected float m_Received = -1;
protected float m_Playback, m_ReadAt;
protected float m_PipFov, m_Vignette;
protected vector m_Geometry;
protected ref array<ref ERR_ObserverViewSample> m_Samples = {};
void Scope(out RplId weapon, out vector data) { weapon = m_ScopeWeapon; data = m_ScopeData; }
bool Accepts(RplId target, int stamp) { return target != m_Target || stamp > m_Stamp; }
float Playback() { return m_Playback; }
void Align(float playback, float now) { m_Playback = playback; m_ReadAt = now; }
void PIP(out float fov, out vector geometry, out float vignette)
{ fov = m_PipFov; geometry = m_Geometry; vignette = m_Vignette; }
void Clear()
{
m_Target = RplId.Invalid(); m_Stamp = -1; m_Received = -1;
m_ScopeWeapon = RplId.Invalid(); m_ScopeData = vector.Zero;
m_Samples.Clear();
m_PipFov = 0; m_Vignette = 0; m_Geometry = vector.Zero;
}
void Push(RplId target, int stamp, float now, vector position, vector forward, vector up, float fov, float nearPlane, RplId scopeWeapon, vector scopeData, float pipFov = 0, vector geometry = "0 0 0", float vignette = 0)
{
if (!ERR_ObserverScope.Valid(scopeWeapon, scopeData)) return;
if (!ERR_ObserverViewRules.Sample(position, forward, up, fov, nearPlane)) return;
if (target == m_Target && stamp <= m_Stamp) return;
if (target != m_Target || scopeWeapon != m_ScopeWeapon || scopeData[0] != m_ScopeData[0] || !ERR_ObserverViewRules.Fresh(now, m_Received))
{
m_Samples.Clear();
m_Playback = stamp - 100; m_ReadAt = now;
}
ERR_ObserverViewSample sample = new ERR_ObserverViewSample();
sample.Stamp = stamp; sample.Position = position; sample.Forward = forward; sample.Up = up;
sample.Fov = fov; sample.Near = nearPlane;
sample.PipFov = pipFov; sample.Geometry = geometry; sample.Vignette = vignette;
m_Samples.Insert(sample);
// Bounded even when first-person view is not being rendered.
while (m_Samples.Count() > 12) m_Samples.Remove(0);
m_ScopeWeapon = scopeWeapon; m_ScopeData = scopeData;
m_Target = target; m_Stamp = stamp; m_Received = now;
}
bool Read(RplId target, float now, float seconds, out vector local[4], out float fov, out float nearPlane)
{
if (target != m_Target || !ERR_ObserverViewRules.Fresh(now, m_Received) || m_Samples.IsEmpty()) return false;
// Use elapsed local time, not the number of reads or a packet's arrival time.
// No clock synchronization between clients is required: stamps are relative.
if (now - m_ReadAt > 250) m_Playback = m_Stamp - 100;
else m_Playback += Math.Max(0, now - m_ReadAt);
m_ReadAt = now;
// A long render stall resumes near live rather than replaying old movement.
if (m_Stamp - m_Playback > 250) m_Playback = m_Stamp - 100;
// Never extrapolate through walls or invent aim during a packet gap.
m_Playback = Math.Min(m_Playback, m_Stamp);
while (m_Samples.Count() > 2 && m_Samples[1].Stamp <= m_Playback) m_Samples.Remove(0);
ERR_ObserverViewSample start = m_Samples[0];
ERR_ObserverViewSample end = start;
if (m_Samples.Count() > 1) end = m_Samples[1];
float blend = 0;
if (end.Stamp > start.Stamp) blend = Math.Clamp((m_Playback - start.Stamp) / (end.Stamp - start.Stamp), 0, 1);
vector forward = vector.Lerp(start.Forward, end.Forward, blend);
vector up = vector.Lerp(start.Up, end.Up, blend);
if (forward.LengthSq() < 0.1 || up.LengthSq() < 0.1) { forward = end.Forward; up = end.Up; }
forward.Normalize(); up.Normalize();
if (Math.AbsFloat(vector.Dot(forward, up)) > 0.95) { forward = end.Forward; up = end.Up; }
Math3D.DirectionAndUpMatrix(forward, up, local);
local[3] = vector.Lerp(start.Position, end.Position, blend);
fov = Math.Lerp(start.Fov, end.Fov, blend); nearPlane = end.Near;
m_PipFov = Math.Lerp(start.PipFov, end.PipFov, blend);
m_Geometry = vector.Lerp(start.Geometry, end.Geometry, blend);
m_Vignette = Math.Lerp(start.Vignette, end.Vignette, blend);
return true;
}
}
modded class SCR_PlayerController
{
protected ref ERR_ObserverViewBuffer m_ERRViewBuffer = new ERR_ObserverViewBuffer();
protected ref ERR_ObserverViewBuffer m_ERREyeBuffer = new ERR_ObserverViewBuffer();
protected bool m_ERRHasPIP;
protected ref array<SCR_PlayerController> m_ERRViewWatchers = {};
protected float m_ERRViewServerRequestAt = -1000;
protected float m_ERRViewRequestAt = -1000, m_ERRViewLeaseUntil = -1;
protected float m_ERRViewPublishUntil = -1, m_ERRViewLeaseSent = -1000;
protected float m_ERRViewSendWait, m_ERRViewLastPacket = -1000;
protected int m_ERRViewSequence, m_ERRViewInputSequence;
protected IEntity m_ERRViewSourceBody;
bool ERR_ViewRecipient(IEntity target, float now)
{
ERR_GameMode mode = ERR_GameMode.Get();
return mode && mode.Active() && now <= m_ERRViewLeaseUntil && target && target == m_ERRServerObserved && ERR_Actors.CanFight(target) && mode.Players().CurrentActor(target) && SCR_FactionManager.SGetFaction(target) == mode.PlayerFaction() && GetGame().GetPlayerManager().GetPlayerController(GetPlayerId()) == this && ERR_ObserverRules.View(m_ERRObserverReason, true, ERR_Actors.Alive(GetControlledEntity()), ERR_Actors.CanFight(GetControlledEntity()));
}
void ERR_ReadScope(out RplId weapon, out vector data) { m_ERRViewBuffer.Scope(weapon, data); }
bool ERR_ReadPlayerEye(IEntity target, float seconds, out vector transform[4], out float fov, out float nearPlane, out float pipFov, out vector geometry, out float vignette)
{
if (!m_ERRHasPIP || this != GetGame().GetPlayerController() || !target || !ERR_Actors.CanFight(target)) return false;
vector pose[4], world[4];
float now = GetGame().GetWorld().GetWorldTime();
// Use the exact aiming playhead even after a streamed optic temporarily
// fails resolution and this eye buffer is not read for several frames.
m_ERREyeBuffer.Align(m_ERRViewBuffer.Playback(), now);
if (!m_ERREyeBuffer.Read(m_ERRObservedId, now, seconds, pose, fov, nearPlane)) return false;
target.GetWorldTransform(world); ERR_ObserverViewRules.Decode(world, pose, transform);
m_ERRViewBuffer.PIP(pipFov, geometry, vignette);
return true;
}
bool ERR_ReadPlayerView(IEntity target, float seconds, out vector transform[4], out float fov, out float nearPlane)
{
if (this != GetGame().GetPlayerController() || !target || !ERR_Actors.CanFight(target)) return false;
float now = GetGame().GetWorld().GetWorldTime();
if (now - m_ERRViewRequestAt >= 500)
{ m_ERRViewRequestAt = now; Rpc(ERR_RequestPlayerView); }
vector pose[4], world[4];
if (!m_ERRViewBuffer.Read(m_ERRObservedId, now, seconds, pose, fov, nearPlane)) return false;
RplId scopeWeapon; vector scopeData;
m_ERRViewBuffer.Scope(scopeWeapon, scopeData);
if (scopeWeapon != RplId.Invalid() && !ERR_ObserverScope.Resolve(target, scopeWeapon, scopeData)) return false;
target.GetWorldTransform(world);
ERR_ObserverViewRules.Decode(world, pose, transform);
return true;
}
[RplRpc(RplChannel.Reliable, RplRcver.Server)]
protected void ERR_RequestPlayerView()
{
if (!Replication.IsServer()) return;
float now = GetGame().GetWorld().GetWorldTime();
if (now - m_ERRViewServerRequestAt < 250) return;
m_ERRViewServerRequestAt = now;
// A lease grants no observer rights; all existing server selection/roster
// checks still apply, both here and when each sample is forwarded.
m_ERRViewLeaseUntil = now + 1500;
if (!ERR_ViewRecipient(m_ERRServerObserved, now)) return;
ERR_PlayerLife life = ERR_GameMode.Get().Players().CurrentActor(m_ERRServerObserved);
SCR_PlayerController source = SCR_PlayerController.Cast(GetGame().GetPlayerManager().GetPlayerController(life.ConnectionId));
if (source) source.ERR_AddViewWatcher(this, now);
}
void ERR_AddViewWatcher(SCR_PlayerController watcher, float now)
{
if (!Replication.IsServer() || !watcher) return;
for (int i = m_ERRViewWatchers.Count() - 1; i >= 0; i--)
if (!m_ERRViewWatchers[i] || !m_ERRViewWatchers[i].ERR_ViewRecipient(GetControlledEntity(), now)) m_ERRViewWatchers.Remove(i);
if (!m_ERRViewWatchers.Contains(watcher) && m_ERRViewWatchers.Count() < 64) m_ERRViewWatchers.Insert(watcher);
if (now - m_ERRViewLeaseSent < 250) return;
m_ERRViewLeaseSent = now;
Rpc(ERR_EnableViewPublisher);
}
[RplRpc(RplChannel.Reliable, RplRcver.Owner)]
protected void ERR_EnableViewPublisher()
{
if (this == GetGame().GetPlayerController()) m_ERRViewPublishUntil = GetGame().GetWorld().GetWorldTime() + 2000;
}
void ERR_PublishPlayerView(float seconds)
{
if (this != GetGame().GetPlayerController() || System.IsConsoleApp()) return;
float now = GetGame().GetWorld().GetWorldTime();
if (now > m_ERRViewPublishUntil) return;
m_ERRViewSendWait += seconds;
if (m_ERRViewSendWait < 0.05) return;
m_ERRViewSendWait = 0;
ERR_GameMode mode = ERR_GameMode.Get();
IEntity actor = GetControlledEntity();
PlayerCamera camera = GetPlayerCamera();
CameraManager manager = GetGame().GetCameraManager();
if (!mode || !mode.Active() || !ERR_Actors.CanFight(actor) || !camera || !manager || manager.CurrentCamera() != camera) return;
vector world[4], view[4], pose[4], eye[4];
actor.GetWorldTransform(world);
camera.GetWorldCameraTransform(view);
float fov = camera.GetVerticalFOV(), nearPlane = camera.GetNearPlane();
float eyeFov = fov;
ERR_ObserverViewRules.Encode(world, view, eye);
RplId scopeWeapon; vector scopeData;
ERR_ObserverScope.Sample(actor, view, fov, scopeWeapon, scopeData);
ERR_ObserverViewRules.Encode(world, view, pose);
if (!ERR_ObserverViewRules.Sample(pose[3], pose[2], pose[1], fov, nearPlane)) return;
array<vector> packet = {pose[3], pose[2], pose[1], Vector(fov, nearPlane, 0)};
SCR_2DPIPSightsComponent pip = SCR_2DPIPSightsComponent.Cast(ERR_ObserverScope.Resolve(actor, scopeWeapon, scopeData));
if (pip && pip.IsPIPEnabled() && pip.GetPIPCamera())
{
packet[3] = Vector(fov, nearPlane, pip.GetPIPCamera().GetVerticalFOV());
packet.Insert(eye[3]); packet.Insert(eye[2]); packet.Insert(eye[1]);
packet.Insert(Vector(eyeFov, nearPlane, pip.ERR_ObserverPIPVignette(actor, camera))); packet.Insert(pip.ERR_ObserverPIPGeometry());
if (!ERR_ObserverViewRules.Packet(packet))
{
// An unusual addon lens must not suppress an otherwise valid 2D view.
packet.Resize(4); packet[3] = Vector(fov, nearPlane, 0);
}
}
if (!ERR_ObserverViewRules.Packet(packet)) return;
Rpc(ERR_SubmitPlayerView, ++m_ERRViewSequence, packet, scopeWeapon, scopeData);
}
[RplRpc(RplChannel.Unreliable, RplRcver.Server)]
protected void ERR_SubmitPlayerView(int sequence, array<vector> packet, RplId scopeWeapon, vector scopeData)
{
if (!Replication.IsServer() || !ERR_ObserverScope.Valid(scopeWeapon, scopeData) || !ERR_ObserverViewRules.Packet(packet)) return;
if (packet.Count() == 9 && scopeWeapon == RplId.Invalid()) return;
ERR_GameMode mode = ERR_GameMode.Get();
IEntity actor = GetControlledEntity();
if (!mode || !mode.Active() || !ERR_Actors.CanFight(actor)) return;
ERR_PlayerLife life = mode.Players().CurrentActor(actor);
if (!life || GetGame().GetPlayerManager().GetPlayerController(life.ConnectionId) != this) return;
float now = GetGame().GetWorld().GetWorldTime();
if (actor != m_ERRViewSourceBody) { m_ERRViewSourceBody = actor; m_ERRViewInputSequence = 0; }
if (sequence <= m_ERRViewInputSequence || now - m_ERRViewLastPacket < 35) return;
m_ERRViewInputSequence = sequence; m_ERRViewLastPacket = now;
RplComponent component = RplComponent.Cast(actor.FindComponent(RplComponent));
if (!component) return;
for (int i = m_ERRViewWatchers.Count() - 1; i >= 0; i--)
{
SCR_PlayerController watcher = m_ERRViewWatchers[i];
if (!watcher || !watcher.ERR_ViewRecipient(actor, now)) { m_ERRViewWatchers.Remove(i); continue; }
watcher.ERR_DeliverPlayerView(component.Id(), now, packet, scopeWeapon, scopeData);
}
}
void ERR_DeliverPlayerView(RplId target, int stamp, array<vector> packet, RplId scopeWeapon, vector scopeData)
{
Rpc(ERR_ReceivePlayerViewPacket, target, stamp, packet, scopeWeapon, scopeData);
}
[RplRpc(RplChannel.Unreliable, RplRcver.Owner)]
protected void ERR_ReceivePlayerViewPacket(RplId target, int stamp, array<vector> packet, RplId scopeWeapon, vector scopeData)
{
ERR_ReceivePlayerView(target, stamp, packet, scopeWeapon, scopeData);
}
protected void ERR_ReceivePlayerView(RplId target, int stamp, array<vector> packet, RplId scopeWeapon, vector scopeData)
{
ERR_GameMode mode = ERR_GameMode.Get();
if (this != GetGame().GetPlayerController() || target == RplId.Invalid() || target != m_ERRObservedId || !mode || !ERR_ObserverRules.View(m_ERRObserverReason, mode.Active(), ERR_Actors.Alive(GetControlledEntity()), ERR_Actors.CanFight(GetControlledEntity()))) return;
if (!ERR_ObserverViewRules.Packet(packet) || !ERR_ObserverScope.Valid(scopeWeapon, scopeData)) return;
if (packet.Count() == 9 && scopeWeapon == RplId.Invalid()) return;
// Reject before updating either stream or PiP metadata.
if (!m_ERRViewBuffer.Accepts(target, stamp)) return;
float now = GetGame().GetWorld().GetWorldTime();
bool pip = packet.Count() == 9;
if (pip != m_ERRHasPIP) { m_ERRViewBuffer.Clear(); m_ERREyeBuffer.Clear(); }
vector geometry; float vignette;
if (pip) { geometry = packet[8]; vignette = packet[7][2]; }
m_ERRViewBuffer.Push(target, stamp, now, packet[0], packet[1], packet[2], packet[3][0], packet[3][1], scopeWeapon, scopeData, packet[3][2], geometry, vignette);
m_ERRHasPIP = pip;
if (pip)
{
m_ERREyeBuffer.Push(target, stamp, now, packet[4], packet[5], packet[6], packet[7][0], packet[7][1], scopeWeapon, scopeData);
}
else m_ERREyeBuffer.Clear();
}
}
modded class ArmaReforgerScripted
{
override void OnUpdate(BaseWorld world, float timeslice)
{
super.OnUpdate(world, timeslice);
SCR_PlayerController controller = SCR_PlayerController.Cast(GetPlayerController());
if (controller) controller.ERR_PublishPlayerView(timeslice);
}
}
// Use the game's own head/helmet fade rather than moving the camera ahead of
// the face. Changes are local and reversed when the observer stops using them.
class ERR_ObserverHeadVisibility
{
protected SCR_ChimeraCharacter m_Character;
protected SCR_CharacterCameraHandlerComponent m_Handler;
protected int m_Previous, m_Applied;
void Update(IEntity target, vector cameraPosition)
{
if (target != m_Character)
{
Restore();
m_Character = SCR_ChimeraCharacter.Cast(target);
if (!m_Character || !m_Character.GetCharacterController()) return;
m_Handler = SCR_CharacterCameraHandlerComponent.Cast(m_Character.GetCharacterController().GetCameraHandlerComponent());
m_Previous = m_Character.m_fFaceAlphaTest;
}
if (!m_Handler || !m_Character.GetAnimation()) return;
m_Handler.UpdateHeadVisibility(cameraPosition);
m_Applied = m_Character.m_fFaceAlphaTest;
}
void Restore()
{
if (m_Handler && m_Character && m_Character.m_fFaceAlphaTest == m_Applied) m_Handler.OnAlphatestChange(m_Previous);
m_Character = null; m_Handler = null;
}
void ~ERR_ObserverHeadVisibility() { Restore(); }
}
@@ -0,0 +1,19 @@
// Corpses lose their player-controller association. The round roster, not the
// current controller list, is the authority for which bodies belong to players.
class ERR_ObserverTargets
{
static void Bodies(ERR_GameMode mode, array<IEntity> targets)
{
if (!mode || !mode.Players() || !mode.PlayerFaction()) return;
array<ref ERR_PlayerLife> lives = {};
mode.Players().Participants(lives);
foreach (ERR_PlayerLife life : lives)
{
if (!life || !life.UsedLife || life.AccountId.IsNull() || !life.Actor || ERR_Actors.Alive(life.Actor)) continue;
// Native death cleanup can drop affiliation as well as controller ownership.
Faction faction = SCR_FactionManager.SGetFaction(life.Actor);
if ((faction && faction != mode.PlayerFaction()) || targets.Contains(life.Actor)) continue;
targets.Insert(life.Actor);
}
}
}
@@ -0,0 +1,165 @@
// Player-only casualty protection. Damage still wounds; healing remains native.
class ERR_PlayerMedicalRules
{
static float AllowedDamage(float damage, float health, float maximum, float destroyedThreshold)
{
if (damage <= 0) return damage;
float floor = maximum * Math.Clamp(destroyedThreshold + 0.01, 0.01, 1);
return Math.Min(damage, Math.Max(0, health - floor));
}
}
modded class SCR_CharacterDamageManagerComponent
{
protected bool m_ERRRevivablePlayer;
protected bool m_ERRKnockoutPending;
void ERR_EnableCasualtyProtection()
{
if (!Replication.IsServer()) return;
m_ERRRevivablePlayer = true;
SetPermitUnconsciousness(true, true);
SetRegenScale(0.25, true);
}
bool ERR_IsRevivablePlayer() { return m_ERRRevivablePlayer; }
// Queue outside hitzone callbacks: changing another hitzone in them can re-enter
// the native damage pipeline. The lethal damage itself is clamped synchronously.
void ERR_RequestKnockout()
{
if (!Replication.IsServer() || !m_ERRRevivablePlayer || m_ERRKnockoutPending) return;
CharacterControllerComponent controller = CharacterControllerComponent.Cast(GetOwner().FindComponent(CharacterControllerComponent));
if (controller && controller.IsUnconscious()) return;
m_ERRKnockoutPending = true;
GetGame().GetCallqueue().CallLater(ERR_ApplyKnockout, 0, false);
}
protected void ERR_ApplyKnockout()
{
m_ERRKnockoutPending = false;
if (!m_ERRRevivablePlayer || !ERR_Actors.Alive(GetOwner())) return;
ForceUnconsciousness();
ERR_HQ.Event("PLAYER CASUALTY", "Lethal injury prevented; prisoner remains alive and can receive medical treatment.");
}
override void Kill(notnull Instigator instigator)
{
if (!m_ERRRevivablePlayer) { super.Kill(instigator); return; }
ERR_RequestKnockout();
}
#ifdef WORKBENCH
// Explicit terminal-lifecycle fixture only. Ordinary Kill retains casualty protection.
// This helper belongs in the same modded class so super bypasses our Kill override.
bool ERR_ForceFatalLossForTest(notnull Instigator instigator, IEntity expectedActor)
{
string enabled;
if (!Replication.IsServer() || !System.GetCLIParam("errSmoke", enabled) || enabled != "1") return false;
IEntity actor = GetOwner();
ERR_GameMode mode = ERR_GameMode.Get();
if (!expectedActor || actor != expectedActor || !ERR_Actors.Alive(actor) || !mode || !mode.Active() || !mode.Players() || !mode.Players().CurrentActor(actor)) return false;
// Vanilla Kill uses HandleDamage, so the ordinary hitzone cap also applies.
// Disable it for this exact terminal fixture actor through deferred processing.
m_ERRRevivablePlayer = false;
super.Kill(instigator);
return true;
}
#endif
// Include delayed but viable native regeneration when deciding team defeat.
// A stopped/zero-rate effect or an actively bleeding casualty cannot self-rescue.
bool ERR_CanRecoverNaturally()
{
if (!m_ERRRevivablePlayer || IsBleeding()) return false;
array<ref SCR_PersistentDamageEffect> effects = GetAllPersistentEffectsOfType(SCR_PassiveHitZoneRegenDamageEffect, true);
foreach (SCR_PersistentDamageEffect effect : effects)
{
DotDamageEffect dot = DotDamageEffect.Cast(effect);
if (!dot || dot.GetDamageType() != EDamageType.REGENERATION || dot.GetDPS() >= 0) continue;
HitZone zone = dot.GetAffectedHitZone();
if (!zone || zone.GetHealthScaled() >= 1) continue;
if (zone == GetBloodHitZone()) return true;
if (zone == GetResilienceHitZone() && GetResilienceRegenScale() > 0) return true;
}
return false;
}
// A player always retains a living, treatable body.
override protected bool IsIndefinitelyUnconscious(bool onlyPlayers = true)
{
if (m_ERRRevivablePlayer) return false;
return super.IsIndefinitelyUnconscious(onlyPlayers);
}
override float GetResilienceRegenScale()
{
if (m_ERRRevivablePlayer && IsBleeding()) return 0;
return super.GetResilienceRegenScale();
}
bool ERR_TreatmentInProgress()
{
if (m_aBeingHealedGroup && !m_aBeingHealedGroup.IsEmpty()) return true;
array<ref SCR_PersistentDamageEffect> effects = GetAllPersistentEffectsOfType(SCR_DotDamageEffect, true);
foreach (SCR_PersistentDamageEffect effect : effects)
{
DotDamageEffect dot = DotDamageEffect.Cast(effect);
// Includes saline and epinephrine; passive regeneration is evaluated separately.
if (dot && dot.GetDamageType() == EDamageType.HEALING && dot.GetDPS() < 0) return true;
}
return false;
}
}
modded class SCR_HitZone
{
protected bool m_ERRWoundQuery;
// Native bleeding evaluates the hit again after health has been deducted.
// Its severity must retain armour/reductions, but not the remaining-life cap.
float ERR_ComputeWoundDamage(notnull BaseDamageContext context)
{
bool previous = m_ERRWoundQuery;
m_ERRWoundQuery = true;
float damage = ComputeEffectiveDamage(context, false);
m_ERRWoundQuery = previous;
return damage;
}
override float ComputeEffectiveDamage(notnull BaseDamageContext damageContext, bool isDOT)
{
float damage = super.ComputeEffectiveDamage(damageContext, isDOT);
if (m_ERRWoundQuery || !Replication.IsServer() || damage <= 0 || SCR_CharacterResilienceHitZone.Cast(this)) return damage;
SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());
if (!manager || !manager.ERR_IsRevivablePlayer()) return damage;
float allowed = ERR_PlayerMedicalRules.AllowedDamage(damage, GetHealth(), GetMaxHealth(), GetDamageStateThreshold(EDamageState.DESTROYED));
if (allowed < damage) manager.ERR_RequestKnockout();
return allowed;
}
}
modded class SCR_CharacterDamageManagerEvaluator
{
// Preserve the native critical threshold for bullets, fragments, collisions,
// melee and critical explosions. Ordinary damage and blood loss stay capped.
override private void CriticalThresholdTryCauseBleeding(SCR_InstantDamageEffect effect, ExtendedDamageManagerComponent dmgManager)
{
SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(dmgManager);
if (!Replication.IsServer() || !manager || !manager.ERR_IsRevivablePlayer())
{
super.CriticalThresholdTryCauseBleeding(effect, dmgManager);
return;
}
SCR_CharacterHitZone zone = SCR_CharacterHitZone.Cast(effect.GetAffectedHitZone());
if (!zone) return;
vector hit[3];
SCR_DamageContext context = new SCR_DamageContext(effect.GetDamageType(), effect.GetTotalDamage(), hit, dmgManager.GetOwner(), zone, effect.GetInstigator(), null, -1, -1);
if (zone.ERR_ComputeWoundDamage(context) < zone.GetCriticalHealthThreshold()) return;
manager.AddBleedingEffectOnHitZone(zone);
}
}
// Native resilience ignores the per-character regeneration setting. Apply the
// same slow rate here, only to passive recovery; injected medicine keeps its DPS.
modded class SCR_CharacterResilienceHitZone
{
override float CalculatePassiveRegenDPS(bool considerRegenScale = true)
{
float rate = super.CalculatePassiveRegenDPS(considerRegenScale);
SCR_CharacterDamageManagerComponent manager = SCR_CharacterDamageManagerComponent.Cast(GetHitZoneContainer());
if (considerRegenScale && manager && manager.ERR_IsRevivablePlayer()) return rate * 0.25;
return rate;
}
}
@@ -0,0 +1,343 @@
#ifdef WORKBENCH
// The input handoff fixture uses the real native panel and camera gate. It
// never submits text, handles passwords or changes administrator privileges.
modded class SCR_ChatPanel
{
bool ERR_ProbeSubmitEmptyChat()
{
string outcome;
if (!System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "unconscious-camera" || !IsOpen() || !m_Widgets.m_MessageEditBox || !m_Widgets.m_MessageEditBox.GetText().IsEmpty()) return false;
Callback_OnSendMessageAction();
return !IsOpen();
}
}
modded class ERR_ObserverCamera
{
bool ERR_ProbeChatInputDisabled()
{
string outcome;
if (!System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "unconscious-camera" || GetGame().GetCameraManager().CurrentCamera() != this) return false;
return IsDisabledByMenu();
}
}
// The local native runner has one real player. A physical stand-in tests camera
// tracking; canonical multiplayer target selection is tested separately.
modded class SCR_PlayerController
{
protected IEntity m_ERRCameraProbeTarget;
protected bool m_ERRProbeViewMissing;
protected ref ERR_ObserverViewBuffer m_ERRProbeViewBuffer = new ERR_ObserverViewBuffer();
void ERR_ProbeMissingView(bool missing) { m_ERRProbeViewMissing = missing; }
override bool ERR_ReadPlayerView(IEntity target, float seconds, out vector transform[4], out float fov, out float nearPlane)
{
string outcome;
if (!m_ERRCameraProbeTarget || target != m_ERRCameraProbeTarget || !System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "unconscious-camera") return super.ERR_ReadPlayerView(target, seconds, transform, fov, nearPlane);
RplComponent component = RplComponent.Cast(target.FindComponent(RplComponent));
if (!component) return false;
float now = GetGame().GetWorld().GetWorldTime();
if (!m_ERRProbeViewMissing) m_ERRProbeViewBuffer.Push(component.Id(), now, now, "0 1.6 0", "0 0 1", "0 1 0", 45, 0.0125, RplId.Invalid(), vector.Zero);
vector local[4], world[4];
if (!m_ERRProbeViewBuffer.Read(component.Id(), now, seconds, local, fov, nearPlane)) return false;
target.GetWorldTransform(world); Math3D.MatrixMultiply4(world, local, transform);
return true;
}
string ERR_ProbeAcceptedRecoveryStatus() { return m_ERRShownRecoveryStatus; }
void ERR_ProbeCameraTarget(IEntity target) { m_ERRCameraProbeTarget = target; }
override IEntity ERR_ObservedEntity()
{
string outcome;
if (m_ERRCameraProbeTarget && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "unconscious-camera") return m_ERRCameraProbeTarget;
return super.ERR_ObservedEntity();
}
ERR_FollowSurvivorCameraComponent ERR_ProbeFollowComponent()
{
if (!m_ERRObserverCamera) return null;
return ERR_FollowSurvivorCameraComponent.Cast(m_ERRObserverCamera.FindCameraComponent(ERR_FollowSurvivorCameraComponent));
}
bool ERR_ProbeCameraActive()
{
return m_ERRObserverCamera && GetGame().GetCameraManager().CurrentCamera() == m_ERRObserverCamera;
}
// Exercise native action values and the production frame method, not physical
// mouse delivery. Restore actions synchronously; the next real frame applies
// the orbit state retained by the ordinary follow component.
bool ERR_ProbeOrbitFrame(float yaw, float pitch, float zoom, bool enabled, out vector transform[4])
{
string outcome;
if (!System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "unconscious-camera" || this != GetGame().GetPlayerController() || !ERR_ProbeCameraActive() || ERR_ObservedEntity()) return false;
ERR_FollowSurvivorCameraComponent follow = ERR_ProbeFollowComponent();
InputManager input = GetGame().GetInputManager();
if (!follow || !input) return false;
float savedYaw = input.GetActionValue("ManualCameraRotateYaw");
float savedPitch = input.GetActionValue("ManualCameraRotatePitch");
float savedZoom = input.GetActionValue("ManualCameraZoom");
input.SetActionValue("ManualCameraRotateYaw", yaw);
input.SetActionValue("ManualCameraRotatePitch", pitch);
input.SetActionValue("ManualCameraZoom", zoom);
bool supplied = Math.AbsFloat(input.GetActionValue("ManualCameraRotateYaw") - yaw) < 0.001 && Math.AbsFloat(input.GetActionValue("ManualCameraRotatePitch") - pitch) < 0.001 && Math.AbsFloat(input.GetActionValue("ManualCameraZoom") - zoom) < 0.001;
vector original[4]; m_ERRObserverCamera.GetWorldTransform(original);
SCR_ManualCameraParam param = new SCR_ManualCameraParam(original, 0.1, m_ERRObserverCamera.GetWorld(), m_ERRObserverCamera.GetVerticalFOV(), enabled, vector.Zero, 0);
if (supplied) follow.EOnCameraFrame(param);
input.SetActionValue("ManualCameraRotateYaw", savedYaw);
input.SetActionValue("ManualCameraRotatePitch", savedPitch);
input.SetActionValue("ManualCameraZoom", savedZoom);
Math3D.MatrixCopy(param.transform, transform);
return supplied && param.isDirty;
}
}
modded class ERR_GameMode
{
protected int m_ERRCameraStage = -2;
protected int m_ERRCameraDeadline;
protected IEntity m_ERRCameraWeapon;
protected float m_ERRCameraWait;
protected IEntity m_ERRCameraBody, m_ERRCameraTarget;
protected SCR_CharacterDamageManagerComponent m_ERRCameraDamage;
protected SCR_ManualCamera m_ERRCameraOther;
protected vector m_ERRCameraPoseOffset;
protected vector m_ERRCameraOrbitPose[4];
protected int m_ERRCameraHeadAlpha;
protected Widget m_ERRCameraChatRoot;
protected SCR_ChatPanel m_ERRCameraChatPanel;
protected override void EOnInit(IEntity owner)
{
super.EOnInit(owner);
string outcome;
if (SCR_Global.IsEditMode() || !Replication.IsServer() || !System.GetCLIParam("errSmokeOutcome", outcome) || outcome != "unconscious-camera") return;
m_ERRCameraDeadline = System.GetTickCount() + 180000;
GetGame().GetCallqueue().CallLater(ERR_CameraProbeTick, 500, true);
}
protected bool ERR_CameraCheck(bool ok, string message)
{
if (ok) { Print("ERR SMOKE PASS: unconscious camera " + message); return true; }
Print("ERR SMOKE FAIL: unconscious camera " + message, LogLevel.ERROR);
ERR_CameraCloseChat();
GetGame().GetCallqueue().Remove(ERR_CameraProbeTick); return false;
}
protected void ERR_CameraCloseChat()
{
if (m_ERRCameraChatPanel) m_ERRCameraChatPanel.Internal_Close();
if (m_ERRCameraChatRoot) m_ERRCameraChatRoot.RemoveFromHierarchy();
m_ERRCameraChatPanel = null; m_ERRCameraChatRoot = null;
}
protected bool ERR_CameraOpenChat(SCR_PlayerController pc, bool unregister)
{
InputManager input = GetGame().GetInputManager();
SCR_ChatPanelManager manager = SCR_ChatPanelManager.GetInstance();
if (!ERR_CameraCheck(manager && !input.IsContextActive("ChatContext"), "chat fixture begins after native ChatContext expired")) return false;
m_ERRCameraChatRoot = GetGame().GetWorkspace().CreateWidgets("{28C54D576A8997CF}UI/layouts/HUD/Chat/ChatPanel.layout");
if (m_ERRCameraChatRoot) m_ERRCameraChatPanel = SCR_ChatPanel.Cast(m_ERRCameraChatRoot.FindHandler(SCR_ChatPanel));
if (!ERR_CameraCheck(m_ERRCameraChatPanel != null, "real native chat panel layout and handlers created")) return false;
manager.OpenChatPanel(m_ERRCameraChatPanel);
if (unregister)
{
manager.Unregister(m_ERRCameraChatPanel);
GetGame().GetWorkspace().SetFocusedWidget(m_ERRCameraChatRoot.FindAnyWidget("m_MessageEditBox"));
}
else GetGame().GetWorkspace().SetFocusedWidget(null);
bool hasFocus = GetGame().GetWorkspace().GetFocusedWidget() != null;
if (!ERR_CameraCheck(m_ERRCameraChatPanel.IsOpen() && hasFocus == unregister && !input.IsContextActive("ChatContext"), "native chat open state precedes context activation with expected focus")) return false;
ERR_ObserverCamera camera = ERR_ObserverCamera.Cast(GetGame().GetCameraManager().CurrentCamera());
if (!ERR_CameraCheck(camera && camera.ERR_ProbeChatInputDisabled(), "actual observer gate yields to open chat before native context resolution")) return false;
PrintFormat("ERR CAMERA CHAT: unregistered=%1 immediateChatContext=%2", unregister, input.IsContextActive("ChatContext"));
ERR_FollowSurvivorCameraComponent follow = pc.ERR_ProbeFollowComponent();
bool view = follow.IsPlayerView();
follow.Input(!camera.ERR_ProbeChatInputDisabled(), false, false, true);
if (!ERR_CameraCheck(follow.IsPlayerView() == view, "Enter state through actual chat gate does not switch observer view")) return false;
return true;
}
protected bool ERR_CameraSubmitChat(SCR_PlayerController pc)
{
InputManager input = GetGame().GetInputManager();
ERR_FollowSurvivorCameraComponent follow = pc.ERR_ProbeFollowComponent();
if (!ERR_CameraCheck(m_ERRCameraChatPanel && m_ERRCameraChatPanel.IsOpen() && input.IsContextActive("ChatContext") && !follow.InputContextActive() && !follow.IsPlayerView(), "subsequent native frames keep chat active and observer controls inactive without HUD updates")) return false;
if (!ERR_CameraCheck(m_ERRCameraChatPanel.ERR_ProbeSubmitEmptyChat() && !follow.IsPlayerView(), "vanilla empty submission callback closes chat without changing camera view")) return false;
ERR_CameraCloseChat();
return true;
}
protected void ERR_CameraKnockout()
{
m_ERRCameraDamage.ForceUnconsciousness();
array<ref SCR_PersistentDamageEffect> effects = m_ERRCameraDamage.GetAllPersistentEffectsOfType(SCR_PassiveHitZoneRegenDamageEffect);
foreach (SCR_PersistentDamageEffect effect : effects) m_ERRCameraDamage.TerminateDamageEffect(effect);
m_ERRCameraDamage.SetGroupIsBeingHealed(ECharacterHitZoneGroup.RIGHTARM, true);
}
protected bool ERR_CameraNoTargetOrbit(SCR_PlayerController pc)
{
vector body = m_ERRCameraBody.GetOrigin();
vector baseline[4], yaw[4], pitch[4], zoom[4], blocked[4];
if (!ERR_CameraCheck(pc.ERR_ProbeOrbitFrame(0, 0, 0, true, baseline), "no-target frame accepts native orbit action values")) return false;
if (!ERR_CameraCheck(pc.ERR_ProbeOrbitFrame(1, 0, 0, true, yaw) && vector.Distance(baseline[2], yaw[2]) > 0.05, "no-target yaw action changes production camera direction")) return false;
if (!ERR_CameraCheck(pc.ERR_ProbeOrbitFrame(0, -1, 0, true, pitch) && Math.AbsFloat(yaw[2][1] - pitch[2][1]) > 0.03, "no-target pitch action changes production camera elevation")) return false;
vector aim = pc.ERR_ObserverAnchor() + "0 1.5 0";
if (!ERR_CameraCheck(pc.ERR_ProbeOrbitFrame(0, 0, -1, true, zoom) && vector.Distance(zoom[3], aim) < vector.Distance(pitch[3], aim) - 0.05, "no-target zoom action moves production camera closer to casualty anchor")) return false;
if (!ERR_CameraCheck(pc.ERR_ProbeOrbitFrame(1, -1, -1, false, blocked) && vector.Distance(zoom[3], blocked[3]) < 0.001 && vector.Distance(zoom[2], blocked[2]) < 0.001, "disabled no-target input preserves camera pose")) return false;
if (!ERR_CameraCheck(vector.Distance(body, m_ERRCameraBody.GetOrigin()) < 0.001 && pc.GetControlledEntity() == m_ERRCameraBody && !pc.ERR_ObservedEntity(), "no-target orbit leaves casualty and possession unchanged")) return false;
Math3D.MatrixCopy(zoom, m_ERRCameraOrbitPose);
Print("ERR CAMERA ORBIT: native action/frame regression; physical mouse delivery and multiplayer are not tested");
return true;
}
protected void ERR_CameraProbeTick()
{
if (System.GetTickCount() >= m_ERRCameraDeadline || !PreparationError().IsEmpty()) { ERR_CameraCheck(false, "deadline/preparation " + PreparationError()); return; }
if (!Active()) return;
SCR_PlayerController pc = SCR_PlayerController.Cast(GetGame().GetPlayerController());
if (!pc || !pc.GetControlledEntity()) return;
float now = GetWorld().GetWorldTime();
if (now < m_ERRCameraWait) return;
if (m_ERRCameraStage == -2)
{
if (!ERR_CameraCheck(Settings().Get("keepWeaponOnUnconscious") == 1, "weapon retention defaults to enabled")) return;
m_ERRCameraBody = pc.GetControlledEntity();
InventoryStorageManagerComponent inventory = InventoryStorageManagerComponent.Cast(m_ERRCameraBody.FindComponent(InventoryStorageManagerComponent));
m_ERRCameraWeapon = ERR_Actors.Spawn("{FA5C25BF66A53DCF}Prefabs/Weapons/Rifles/AK74/Rifle_AK74.et", m_ERRCameraBody.GetOrigin()); Own(m_ERRCameraWeapon);
if (!ERR_CameraCheck(m_ERRCameraWeapon && inventory && inventory.TryInsertItem(m_ERRCameraWeapon, EStoragePurpose.PURPOSE_WEAPON_PROXY), "one physical rifle granted to the player")) return;
m_ERRCameraStage = -1; m_ERRCameraWait = now + 1500; return;
}
SCR_CharacterControllerComponent character = SCR_CharacterControllerComponent.Cast(m_ERRCameraBody.FindComponent(SCR_CharacterControllerComponent));
InventoryStorageManagerComponent playerInventory = character.GetInventoryStorageManager();
if (m_ERRCameraStage == -1)
{
BaseWeaponComponent weapon = BaseWeaponComponent.Cast(m_ERRCameraWeapon.FindComponent(BaseWeaponComponent));
if (!ERR_CameraCheck(playerInventory.Contains(m_ERRCameraWeapon) && character.SelectWeapon(weapon), "rifle selected with native equip animation")) return;
m_ERRCameraStage = 0; m_ERRCameraWait = now + 2000; return;
}
if (m_ERRCameraStage == 0)
{
if (!ERR_CameraCheck(character.GetWeaponManagerComponent().GetCurrentWeapon() && character.GetWeaponManagerComponent().GetCurrentWeapon().GetOwner() == m_ERRCameraWeapon, "original rifle actually in hand before knockout")) return;
m_ERRCameraBody = pc.GetControlledEntity();
m_ERRCameraDamage = SCR_CharacterDamageManagerComponent.Cast(m_ERRCameraBody.FindComponent(SCR_CharacterDamageManagerComponent));
if (!ERR_CameraCheck(m_ERRCameraDamage && m_ERRCameraDamage.ERR_IsRevivablePlayer(), "admitted player retains treatable body")) return;
ERR_CameraKnockout(); m_ERRCameraStage = 1; m_ERRCameraWait = now + 3000; return;
}
if (m_ERRCameraStage == 1)
{
if (!ERR_CameraCheck(pc.ERR_ObserverState() == ERR_ObserverReason.UNCONSCIOUS && pc.ERR_ProbeCameraActive(), "native knockout automatically opens the manual third-person camera")) return;
if (!ERR_CameraCheck(pc.GetControlledEntity() == m_ERRCameraBody && ERR_Actors.Alive(m_ERRCameraBody) && !ERR_Actors.CanFight(m_ERRCameraBody), "possession and living unconscious body unchanged")) return;
if (!ERR_CameraCheck(!pc.ERR_ObservedEntity() && vector.DistanceXZ(pc.ERR_ObserverAnchor(), m_ERRCameraBody.GetOrigin()) < 1, "no teammate falls back to the casualty body")) return;
if (!ERR_CameraCheck(playerInventory.Contains(m_ERRCameraWeapon), "enabled retention keeps the exact rifle with the unconscious player")) return;
if (!ERR_CameraCheck(!RecoveryStatus().IsEmpty() && RecoveryStatus().Contains("Treatment or natural recovery") && pc.ERR_ProbeAcceptedRecoveryStatus() == RecoveryStatus(), "accepted observer hint contains the current ongoing recovery status")) return;
if (!ERR_CameraNoTargetOrbit(pc)) return;
m_ERRCameraStage = 11; m_ERRCameraWait = now + 500; return;
}
if (m_ERRCameraStage == 11)
{
vector applied[4]; GetGame().GetCameraManager().CurrentCamera().GetWorldTransform(applied);
if (!ERR_CameraCheck(pc.ERR_ProbeCameraActive() && vector.Distance(applied[2], m_ERRCameraOrbitPose[2]) < 0.01, "native camera applies and retains no-target orbit direction on subsequent frames")) return;
if (!ERR_CameraOpenChat(pc, false)) return;
m_ERRCameraStage = 111; m_ERRCameraWait = now + 500; return;
}
if (m_ERRCameraStage == 111)
{
if (!ERR_CameraSubmitChat(pc)) return;
m_ERRCameraStage = 112; m_ERRCameraWait = now + 500; return;
}
if (m_ERRCameraStage == 112)
{
if (!ERR_CameraOpenChat(pc, true)) return;
m_ERRCameraStage = 113; m_ERRCameraWait = now + 500; return;
}
if (m_ERRCameraStage == 113)
{
if (!ERR_CameraSubmitChat(pc)) return;
m_ERRCameraStage = 114; m_ERRCameraWait = now + 500; return;
}
if (m_ERRCameraStage == 114)
{
if (!ERR_CameraCheck(pc.ERR_ProbeCameraActive() && pc.ERR_ProbeFollowComponent().InputContextActive() && !GetGame().GetInputManager().IsContextActive("ChatContext") && !pc.ERR_ProbeFollowComponent().IsPlayerView(), "closing native chat restores observer controls without an Enter toggle")) return;
Print("ERR CAMERA CHAT: real native panel lifecycle and empty submission callback; simulated Enter state, not physical keyboard or administrator authentication proof");
vector point = ERR_Actors.Ground(m_ERRCameraBody.GetOrigin() + "25 0 25");
m_ERRCameraTarget = ERR_Actors.Spawn(Factions().PrisonerPrefab, point); Own(m_ERRCameraTarget);
if (!ERR_CameraCheck(m_ERRCameraTarget != null, "physical follow-target stand-in created")) return;
pc.ERR_ProbeCameraTarget(m_ERRCameraTarget);
m_ERRCameraStage = 2; m_ERRCameraWait = now + 1500; return;
}
if (m_ERRCameraStage == 2)
{
vector camera = GetGame().GetCameraManager().CurrentCamera().GetOrigin();
PrintFormat("ERR CAMERA TRACK: camera=%1 target=%2 body=%3 active=%4 conscious=%5 reason=%6", camera, m_ERRCameraTarget.GetOrigin(), m_ERRCameraBody.GetOrigin(), pc.ERR_ProbeCameraActive(), ERR_Actors.CanFight(m_ERRCameraBody), pc.ERR_ObserverState());
if (!ERR_CameraCheck(vector.Distance(camera, m_ERRCameraTarget.GetOrigin()) < 13 && vector.Distance(camera, m_ERRCameraBody.GetOrigin()) > 15, "camera follows target in 3D without moving the casualty")) return;
m_ERRCameraTarget.SetOrigin(ERR_Actors.Ground(m_ERRCameraTarget.GetOrigin() + "15 0 0"));
m_ERRCameraStage = 3; m_ERRCameraWait = now + 1500; return;
}
if (m_ERRCameraStage == 3)
{
if (!ERR_CameraCheck(vector.Distance(GetGame().GetCameraManager().CurrentCamera().GetOrigin(), m_ERRCameraTarget.GetOrigin()) < 13, "camera tracks a moving target")) return;
InputManager input = GetGame().GetInputManager();
ERR_FollowSurvivorCameraComponent follow = pc.ERR_ProbeFollowComponent();
if (!ERR_CameraCheck(follow != null, "follow component exists")) return;
ResourceName configuredInput;
GameProject.GetModuleConfig("InputManagerSettings").Get("Default", configuredInput);
PrintFormat("ERR CAMERA INPUT: default=%1 context=%2 previous=%3 next=%4 view=%5 orbit=%6", configuredInput, input.IsContextActive("ERR_ObserverContext"), input.IsActionActive("ERR_ObserverPrevious"), input.IsActionActive("ERR_ObserverNext"), input.IsActionActive("ERR_ObserverView"), input.IsActionActive("ManualCameraRotateYaw"));
for (int inputIndex = 0; inputIndex < input.GetActionCount(); inputIndex++)
{
string inputName = input.GetActionName(inputIndex);
if (inputName.Contains("Observer") || inputName == "ManualCameraRotateYaw") Print("ERR CAMERA INPUT REGISTERED: " + inputName);
}
if (!ERR_CameraCheck(follow.InputContextActive() && input.IsActionActive("ERR_ObserverPrevious") && input.IsActionActive("ERR_ObserverNext") && input.IsActionActive("ERR_ObserverView") && input.IsActionActive("ManualCameraRotateYaw"), "dedicated arrow/Enter actions and inherited orbit inputs loaded and active")) return;
m_ERRCameraHeadAlpha = SCR_ChimeraCharacter.Cast(m_ERRCameraTarget).m_fFaceAlphaTest;
follow.Input(true, false, false, true);
if (!ERR_CameraCheck(follow.IsPlayerView(), "Enter handler selects player view")) return;
follow.Input(true, false, false, true);
if (!ERR_CameraCheck(follow.IsPlayerView(), "held Enter does not toggle again")) return;
follow.Input(true, false, false, false);
m_ERRCameraStage = 30; m_ERRCameraWait = now + 1000; return;
}
if (m_ERRCameraStage == 30)
{
vector expected[4];
if (!ERR_CameraCheck(vector.Distance(GetGame().GetCameraManager().CurrentCamera().GetOrigin(), m_ERRCameraTarget.CoordToParent("0 1.6 0")) < 0.1, "native camera follows supplied player-view pose")) return;
if (!ERR_CameraCheck(Math.AbsFloat(GetGame().GetCameraManager().CurrentCamera().GetVerticalFOV() - 45) < 0.1, "player-view field of view follows the supplied zoom")) return;
System.MakeScreenshot("$logs:err-observer-player-view");
m_ERRCameraPoseOffset = GetGame().GetCameraManager().CurrentCamera().GetOrigin() - m_ERRCameraTarget.GetOrigin();
pc.ERR_ProbeMissingView(true);
m_ERRCameraTarget.SetOrigin(m_ERRCameraTarget.GetOrigin() + "5 0 0");
m_ERRCameraStage = 301; m_ERRCameraWait = now + 1500; return;
}
if (m_ERRCameraStage == 301)
{
vector relative = GetGame().GetCameraManager().CurrentCamera().GetOrigin() - m_ERRCameraTarget.GetOrigin();
if (!ERR_CameraCheck(pc.ERR_ProbeFollowComponent().IsPlayerView() && vector.Distance(GetGame().GetCameraManager().CurrentCamera().GetOrigin(), m_ERRCameraTarget.GetOrigin()) > 2, "expired view stream uses stable follow camera while preserving player-view selection")) return;
pc.ERR_ProbeMissingView(false);
m_ERRCameraStage = 302; m_ERRCameraWait = now + 1000; return;
}
if (m_ERRCameraStage == 302)
{
vector expected[4];
if (!ERR_CameraCheck(vector.Distance(GetGame().GetCameraManager().CurrentCamera().GetOrigin(), m_ERRCameraTarget.CoordToParent("0 1.6 0")) < 0.1, "fresh supplied camera pose resumes after stream interruption")) return;
pc.ERR_ProbeFollowComponent().Input(true, false, false, true);
pc.ERR_ProbeFollowComponent().Input(true, false, false, false);
m_ERRCameraStage = 31; m_ERRCameraWait = now + 1000; return;
}
if (m_ERRCameraStage == 31)
{
if (!ERR_CameraCheck(!pc.ERR_ProbeFollowComponent().IsPlayerView() && vector.Distance(GetGame().GetCameraManager().CurrentCamera().GetOrigin(), m_ERRCameraTarget.GetOrigin()) > 2, "second Enter restores orbit view")) return;
if (!ERR_CameraCheck(SCR_ChimeraCharacter.Cast(m_ERRCameraTarget).m_fFaceAlphaTest == m_ERRCameraHeadAlpha, "leaving player view restores the target head visibility")) return;
System.MakeScreenshot("$logs:err-observer-orbit-view");
Resource otherResource = Resource.Load("{EB1210AAE1BB8F54}Prefabs/ERR/SpectatorCamera.et");
m_ERRCameraOther = SCR_ManualCamera.Cast(GetGame().SpawnEntityPrefab(otherResource, GetWorld()));
if (!ERR_CameraCheck(m_ERRCameraOther && GetGame().GetCameraManager().CurrentCamera() == m_ERRCameraOther && !pc.ERR_ProbeCameraActive(), "separate manual camera takes over before recovery")) return;
pc.ERR_ProbeCameraTarget(null); ERR_Actors.DeleteSpawned(m_ERRCameraTarget); m_ERRCameraTarget = null;
m_ERRCameraDamage.SetGroupIsBeingHealed(ECharacterHitZoneGroup.RIGHTARM, false);
m_ERRCameraDamage.FullHeal(); m_ERRCameraStage = 4; m_ERRCameraWait = now + 4000; return;
}
if (m_ERRCameraStage == 4)
{
if (!ERR_CameraCheck(ERR_Actors.CanFight(m_ERRCameraBody) && pc.GetControlledEntity() == m_ERRCameraBody && pc.ERR_ObserverState() == ERR_ObserverReason.NONE && !pc.ERR_HasObserverCamera(), "native healing closes spectator and retains the original conscious player")) return;
if (!ERR_CameraCheck(GetGame().GetCameraManager().CurrentCamera() == pc.GetPlayerCamera(), "normal player camera restored")) return;
if (!ERR_CameraCheck(pc.ERR_ProbeAcceptedRecoveryStatus().IsEmpty(), "awakening clears the accepted observer recovery-status cache")) return;
if (m_ERRCameraOther) { m_ERRCameraOther.Terminate(); delete m_ERRCameraOther; m_ERRCameraOther = null; }
if (!ERR_CameraCheck(character.GetWeaponManagerComponent().GetCurrentWeapon() && character.GetWeaponManagerComponent().GetCurrentWeapon().GetOwner() == m_ERRCameraWeapon, "revival equips the same rifle without ground pickup")) return;
if (!ERR_CameraCheck(Settings().Set("keepWeaponOnUnconscious", 0), "retention disabled through persistent setting")) return;
ERR_CameraKnockout(); m_ERRCameraStage = 5; m_ERRCameraWait = now + 3000; return;
}
if (!ERR_CameraCheck(pc.ERR_ProbeCameraActive(), "second knockout reopens camera without stale target")) return;
if (!ERR_CameraCheck(!playerInventory.Contains(m_ERRCameraWeapon), "disabled retention leaves normal native weapon drop on ground")) return;
m_ERRCameraDamage.SetGroupIsBeingHealed(ECharacterHitZoneGroup.RIGHTARM, false);
m_ERRCameraDamage.FullHeal();
GetGame().GetCallqueue().Remove(ERR_CameraProbeTick);
Print("ERR SMOKE COMPLETE: unconscious spectator camera, physical tracking, retained treatment body, recovery and repeated knockout; target stand-in, not multiplayer proof");
}
}
#endif
@@ -0,0 +1,205 @@
#!/usr/bin/env python3
"""Archive explicitly selected, stopped observer/chat native runs.
Usage: python3 docs/evidence/observer-chat-2026-10-13/archive.py a01 [a02 ...]
Inputs are /tmp/erri-observer-chat-source-TAG and /tmp/erri-observer-chat-run-TAG.
Existing per-run evidence is immutable. Every selected run must have stopped with
confirmed cleanup and unchanged launch sources before any archive is created.
This script does not launch an engine, submit chat, or contact a server.
"""
import argparse
from collections import Counter
import hashlib
import json
from pathlib import Path
import re
import sys
HERE = Path(__file__).resolve().parent
ROOT = HERE.parents[2]
sys.path.insert(0, str(ROOT / "tools"))
from native_provenance import archive_source, encoded, read_launch
from native_report import analyze
RELEVANT = (
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c",
"addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c",
"addons/core/Prefabs/ERR/SpectatorCamera.et",
"addons/core/Configs/ERR/ObserverInput.conf",
"addons/core/Configs/ERR/Tests/LegacySites.conf",
)
LOGS = (
"console.log", "script.log", "error.log", "runner.json",
"external-addons-inputs.json", "headless-launch.log",
)
SCOPE = (
"Local Workbench observer/chat fixture; read its assertion labels and source "
"for the exact exercised paths. Native action injection and scripted widget "
"operations do not qualify physical keyboard input, native administrator "
"authentication, a remote client, or a dedicated multiplayer session."
)
def digest(path):
return hashlib.sha256(path.read_bytes()).hexdigest()
def require(condition, message):
if not condition:
raise ValueError(message)
def write_new(path, data):
path.parent.mkdir(parents=True, exist_ok=True)
with path.open("xb") as stream:
stream.write(data)
require(path.read_bytes() == data, f"Archive copy differs: {path}")
def copy(source, destination):
require(source.is_file() and not source.is_symlink(), f"Missing or symlinked input: {source}")
write_new(destination, source.read_bytes())
def preflight(tag):
profile = Path("/tmp/erri-observer-chat-run-" + tag)
source = Path("/tmp/erri-observer-chat-source-" + tag)
sessions = list((profile / "logs").glob("logs_*"))
require(len(sessions) == 1, f"Expected one native session in {profile}")
session = sessions[0]
manifest, metadata, runner = read_launch(session)
require(runner.get("cleanup_confirmed") is True, f"Cleanup is not confirmed: {tag}")
require(runner.get("cleanup_report", {}).get("idle_verified") is True,
f"Disposable profile idle state is not confirmed: {tag}")
require(runner.get("external_addons_unchanged_after_run") is True,
f"External addon stability is not confirmed: {tag}")
manifest_bytes, provenance, launched = archive_source(session, source)
require(launched and metadata["source_root"] == str(source), f"Launch source root differs: {tag}")
for name in RELEVANT:
require(digest(source / name) == manifest.get(name), f"Relevant source differs from launch: {name}")
for name in LOGS:
path = session / name
require(path.is_file() and not path.is_symlink(), f"Missing or symlinked native log: {path}")
require(not (HERE / tag).exists(), f"Refusing to overwrite archived run: {tag}")
return profile, source, session, manifest, manifest_bytes, provenance, runner
def archive(tag, prepared):
profile, source, session, manifest, manifest_bytes, provenance, runner = prepared
destination = HERE / tag
destination.mkdir(exist_ok=False)
for name in LOGS:
copy(session / name, destination / (name + ".txt"))
for name in ("launch-source-sha256.json", "launch-source.json"):
copy(session / name, destination / name)
write_new(destination / "source-sha256.json", manifest_bytes)
write_new(destination / "source-provenance.json", encoded(provenance))
matches = {}
for name in RELEVANT:
copy(source / name, destination / "source" / name)
current = ROOT / name
matches[name] = {
"launch_sha256": manifest[name],
"archived_sha256": digest(destination / "source" / name),
"repository_exists_at_archive": current.is_file(),
"repository_matches_launch_at_archive": current.is_file() and digest(current) == manifest[name],
}
write_new(destination / "relevant-source-matches.json", encoded(matches))
for capture in sorted([*session.glob("err-*.png"), *session.glob("err-*.bmp")]):
copy(capture, destination / capture.name)
for name in ("fixture-inputs.json", "production-sources.json"):
if (profile / name).exists():
copy(profile / name, destination / name)
runner_output = Path("/tmp/erri-observer-chat-" + tag + "-runner.log")
if runner_output.exists():
copy(runner_output, destination / "runner-output.log.txt")
report = analyze((destination / "console.log.txt").read_text(errors="replace"),
str((destination / "console.log.txt").relative_to(ROOT)))
report["scope"] = SCOPE
write_new(destination / "report.json", encoded(report))
hashes = {str(path.relative_to(destination)): digest(path)
for path in sorted(destination.rglob("*")) if path.is_file()}
write_new(destination / "artifact-sha256.json", encoded(hashes))
print(f"Archived {tag}: {runner['result']}; {report['assertions_passed']} assertions; cleanup verified")
def normalized(errors):
return Counter(re.sub(r"\s+", " ", re.sub(r"^\d\d:\d\d:\d\d\.\d+\s+", "", line))
for line in errors)
def summarize():
runs, manifests, errors = {}, {}, {}
folders = sorted((path for path in HERE.iterdir()
if path.is_dir() and re.fullmatch(r"a[0-9]{2,}", path.name)),
key=lambda path: int(path.name[1:]))
for folder in folders:
manifest, metadata, runner = read_launch(folder, "runner.json.txt", "console.log.txt")
hashes = json.loads((folder / "artifact-sha256.json").read_text())
for name, expected in hashes.items():
require(digest(folder / name) == expected, f"Archived artifact differs: {folder.name}/{name}")
require((folder / "source-sha256.json").read_bytes() ==
(folder / "launch-source-sha256.json").read_bytes(),
f"Archived and launch manifests differ: {folder.name}")
report = json.loads((folder / "report.json").read_text())
manifests[folder.name] = manifest
errors[folder.name] = normalized(report["engine_errors"])
runs[folder.name] = {
"launch_id": metadata["launch_id"],
"runner_result": runner["result"],
"cleanup_confirmed": runner["cleanup_confirmed"],
"idle_verified": runner["cleanup_report"]["idle_verified"],
"external_addons_unchanged_after_run": runner["external_addons_unchanged_after_run"],
"assertions_passed": report["assertions_passed"],
"smoke_completions": report["smoke_completions"],
"script_or_runtime_failure_count": len(report["script_or_runtime_failures"]),
"engine_error_count": len(report["engine_errors"]),
"artifact_manifest_sha256": digest(folder / "artifact-sha256.json"),
}
changes, comparisons = {}, {}
tags = list(manifests)
for previous, current in zip(tags, tags[1:]):
one, two = manifests[previous], manifests[current]
key = previous + "_to_" + current
changes[key] = sorted(name for name in set(one) | set(two) if one.get(name) != two.get(name))
comparisons[key] = {
"new_signatures": sorted(set(errors[current]) - set(errors[previous])),
"removed_signatures": sorted(set(errors[previous]) - set(errors[current])),
"additional_occurrences": dict(errors[current] - errors[previous]),
}
report = {
"scope": SCOPE,
"runs": runs,
"changed_launch_sources": changes,
"engine_error_comparison": comparisons,
"provenance": (
"Original pre-launch manifest, stopped console binding, unchanged frozen addon bytes, "
"confirmed cleanup/idle state and unchanged external addon inputs are verified. "
"Per-run artifact hashes bind copied raw logs, relevant sources, reports and captures. "
"Current repository comparisons describe archive time only."
),
}
(HERE / "run-summary.json").write_bytes(encoded(report))
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("runs", nargs="+", help="Stopped run tags to append, such as a01 a02")
args = parser.parse_args()
if len(set(args.runs)) != len(args.runs):
parser.error("Run tags must be unique")
for tag in args.runs:
if not re.fullmatch(r"a[0-9]{2,}", tag):
parser.error("Expected a run tag such as a01")
# Validate all selected runs before creating any archive; running sessions fail here.
prepared = [(tag, preflight(tag)) for tag in args.runs]
for tag, inputs in prepared:
archive(tag, inputs)
summarize()
if __name__ == "__main__":
main()
@@ -0,0 +1,488 @@
enum ERR_ObserverReason
{
NONE,
SPENT_LIFE,
LATE_EXTRACTION,
SPAWN_UNAVAILABLE,
UNCONSCIOUS
}
class ERR_ObserverRules
{
static int Cycle(bool enabled, bool left, bool right, bool previousLeft, bool previousRight)
{
if (!enabled || left == right) return 0;
if (left && !previousLeft) return -1;
if (right && !previousRight) return 1;
return 0;
}
static bool Toggle(bool enabled, bool pressed, bool previous)
{
return enabled && pressed && !previous;
}
static bool Casualty(bool active, bool currentBody, bool alive, bool conscious)
{
return active && currentBody && alive && !conscious;
}
static bool View(int reason, bool active, bool alive, bool conscious)
{
if (!active || reason == ERR_ObserverReason.NONE) return false;
if (reason == ERR_ObserverReason.UNCONSCIOUS) return alive && !conscious;
return !alive;
}
}
// 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.";
else if (reason == ERR_ObserverReason.UNCONSCIOUS)
{
message = "You are unconscious. Your body remains where you fell and teammates can still treat you. Your view returns automatically when you wake up.";
if (!survivorAvailable) return message + " No conscious teammate is currently available; the camera stays near your body. Use camera look controls to orbit and zoom controls to change distance.";
}
if (!survivorAvailable)
return message + " No teammate or body is currently available to follow. Use camera look controls to orbit the last known position and zoom controls to change distance.";
return message + " Press Left / Right arrow to change teammate or body (or /esc spectate next / /esc spectate previous). Press Enter to switch between third-person and the living teammate's camera. Player view waits in third-person if no live camera stream is available. Use camera look controls to orbit and zoom controls to change distance in third-person.";
}
static bool Refresh(bool shown, int previousReason, int reason, bool previousAvailable, bool survivorAvailable)
{
return reason != ERR_ObserverReason.NONE && (!shown || previousReason != reason || previousAvailable != survivorAvailable);
}
}
class ERR_ObserverCameraClass : SCR_ManualCameraClass {}
// Gate before SCR_ManualCamera activates its context: disabling only the follow
// component is too late, since the camera context can already consume chat keys.
class ERR_ObserverCamera : SCR_ManualCamera
{
override protected bool IsDisabledByMenu()
{
if (super.IsDisabledByMenu()) return true;
if (GetGame().GetInputManager().IsContextActive("ChatContext")) return true;
Widget focused = GetGame().GetWorkspace().GetFocusedWidget();
while (focused)
{
if (EditBoxWidget.Cast(focused)) return true;
focused = focused.GetParent();
}
return false;
}
}
// A local follow camera. It never possesses its target or offers free flight.
[BaseContainerProps(), SCR_BaseManualCameraComponentTitle()]
class ERR_FollowSurvivorCameraComponent : SCR_BaseManualCameraComponent
{
protected IEntity m_Target;
protected IEntity m_Vehicle;
protected float m_Yaw = 180;
protected float m_Pitch = 20;
protected float m_Distance = 5;
protected bool m_LeftDown, m_RightDown, m_EnterDown;
protected int m_InputResumeFrames;
protected bool m_PlayerView;
protected ref ERR_ObserverHeadVisibility m_ViewHead = new ERR_ObserverHeadVisibility();
protected float m_OrbitFov, m_OrbitNear;
protected ref ERR_ObserverScopeDisplay m_ScopeDisplay = new ERR_ObserverScopeDisplay();
protected ref ERR_ObserverPIPDisplay m_PIPDisplay = new ERR_ObserverPIPDisplay();
protected bool m_InputContextActive;
bool InputContextActive() { return m_InputContextActive; }
bool IsPlayerView() { return m_PlayerView; }
// Process one edge per press; menus still consume the state so holding a key
// while closing a menu cannot unexpectedly change the followed teammate.
void Input(bool enabled, bool left, bool right, bool enter)
{
// An inactive context reports zero even while a physical key is held. Let
// the reactivated context settle, then require release before accepting keys.
if (!enabled) m_InputResumeFrames = 2;
else if (m_InputResumeFrames > 0)
{
enabled = false;
if (m_InputResumeFrames > 1 || (!left && !right && !enter)) m_InputResumeFrames--;
}
SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());
int cycle = ERR_ObserverRules.Cycle(enabled, left, right, m_LeftDown, m_RightDown);
if (controller && cycle != 0) controller.ERR_CycleObserver(cycle);
if (ERR_ObserverRules.Toggle(enabled, enter, m_EnterDown)) m_PlayerView = !m_PlayerView;
m_LeftDown = left; m_RightDown = right; m_EnterDown = enter;
}
override bool EOnCameraInit()
{
m_OrbitFov = GetCameraEntity().GetVerticalFOV();
m_OrbitNear = GetCameraEntity().GetNearPlane();
return true;
}
override void EOnCameraExit() { m_PIPDisplay.Close(); m_ScopeDisplay.Close(); m_ViewHead.Restore(); }
override void EOnCameraFrame(SCR_ManualCameraParam param)
{
SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());
if (!controller || GetGame().GetCameraManager().CurrentCamera() != GetCameraEntity()) { m_PIPDisplay.Close(); m_ScopeDisplay.Close(); m_ViewHead.Restore(); return; }
m_InputContextActive = GetInputManager().IsContextActive("ERR_ObserverContext");
Input(param.isManualInputEnabled, GetInputManager().GetActionValue("ERR_ObserverPrevious") > 0.5, GetInputManager().GetActionValue("ERR_ObserverNext") > 0.5, GetInputManager().GetActionValue("ERR_ObserverView") > 0.5);
IEntity target = controller.ERR_ObservedEntity();
float fov, nearPlane;
if (m_PlayerView && controller.ERR_ReadPlayerView(target, param.timeSlice, param.transform, fov, nearPlane))
{
param.fov = fov; GetCameraEntity().SetNearPlane(nearPlane);
RplId scopeWeapon; vector scopeData;
controller.ERR_ReadScope(scopeWeapon, scopeData);
SCR_2DOpticsComponent optic = ERR_ObserverScope.Resolve(target, scopeWeapon, scopeData);
IEntity weapon;
if (optic)
{
RplComponent weaponRpl = RplComponent.Cast(Replication.FindItem(scopeWeapon));
if (weaponRpl) weapon = weaponRpl.GetEntity();
}
vector eye[4], geometry;
float eyeFov, eyeNear, pipFov, vignette;
// Read both timelines every camera frame, including the 2D fallback, so
// enabling PiP cannot resume an eye camera from a different time.
bool haveEye = controller.ERR_ReadPlayerEye(target, param.timeSlice, eye, eyeFov, eyeNear, pipFov, geometry, vignette);
bool pip = haveEye && param.isManualInputEnabled && optic && weapon;
if (pip) pip = m_PIPDisplay.Render(optic, param.transform, eye, fov, pipFov, scopeData, geometry, vignette);
if (pip)
{
m_ScopeDisplay.Close();
Math3D.MatrixCopy(eye, param.transform);
param.fov = eyeFov; GetCameraEntity().SetNearPlane(eyeNear);
}
else
{
m_PIPDisplay.Close();
if (!param.isManualInputEnabled || !optic || !weapon || !m_ScopeDisplay.RenderScope(optic, weapon, fov, scopeData)) m_ScopeDisplay.Close();
}
m_ViewHead.Update(target, param.transform[3]);
param.isDirty = true;
return;
}
// No estimated head camera: corpses, streaming gaps and expired samples use
// the stable follow view until an authenticated live camera stream arrives.
m_PIPDisplay.Close(); m_ScopeDisplay.Close();
m_ViewHead.Restore();
param.fov = m_OrbitFov; GetCameraEntity().SetNearPlane(m_OrbitNear);
vector aim = controller.ERR_ObserverAnchor() + "0 1.5 0";
IEntity exclude = target;
IEntity vehicle;
if (target)
{
vehicle = CompartmentAccessComponent.GetVehicleIn(target);
vector transform[4];
if (vehicle)
{
vehicle.GetWorldTransform(transform);
vector lower, upper;
vehicle.GetWorldBounds(lower, upper);
aim = (lower + upper) * 0.5;
exclude = vehicle;
}
else
{
target.GetWorldTransform(transform);
aim = transform[3] + "0 1.5 0";
if (!ERR_Actors.Alive(target)) aim = transform[3] + "0 0.4 0";
}
if (target != m_Target || vehicle != m_Vehicle)
{
vector angles = transform[2].VectorToAngles();
m_Yaw = angles[0] + 180; m_Pitch = 20; m_Distance = 5;
if (vehicle) m_Distance = 12;
m_Target = target; m_Vehicle = vehicle;
}
}
else
{
// A lone casualty, an all-down squad or an entity still streaming can have
// only an anchor. Keep orbit controls and forget the previous vehicle limits.
m_Target = null; m_Vehicle = null;
m_Distance = Math.Clamp(m_Distance, 2, 12);
}
if ((!m_PlayerView || !target || !ERR_Actors.Alive(target)) && param.isManualInputEnabled)
{
m_Yaw += GetInputManager().GetActionValue("ManualCameraRotateYaw") * 90 * param.timeSlice;
m_Pitch = Math.Clamp(m_Pitch - GetInputManager().GetActionValue("ManualCameraRotatePitch") * 90 * param.timeSlice, 5, 75);
float scale = Math.Clamp(1 + GetInputManager().GetActionValue("ManualCameraZoom") * 12 * param.timeSlice, 0.5, 1.5);
float minimum = 2, maximum = 12;
if (vehicle) { minimum = 6; maximum = 25; }
m_Distance = Math.Clamp(m_Distance * scale, minimum, maximum);
}
float yaw = m_Yaw * Math.DEG2RAD, pitch = m_Pitch * Math.DEG2RAD;
vector offset = Vector(Math.Sin(yaw) * Math.Cos(pitch), Math.Sin(pitch), Math.Cos(yaw) * Math.Cos(pitch));
vector position = aim + offset * m_Distance;
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 string m_ERRShownRecoveryStatus;
protected float m_ERRLastCycle = -1000;
protected IEntity m_ERRRecoveryBody;
protected float m_ERRRecoveryDeadline = -1;
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()) && reason != ERR_ObserverReason.UNCONSCIOUS) 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()) return;
ERR_GameMode mode = ERR_GameMode.Get();
IEntity body = GetControlledEntity();
bool casualty = mode && ERR_ObserverRules.Casualty(mode.Active(), mode.Players() && mode.Players().CurrentActor(body) != null, ERR_Actors.Alive(body), ERR_Actors.CanFight(body));
if (casualty && m_ERRObserverReason != ERR_ObserverReason.UNCONSCIOUS)
{
m_ERRObserverReason = ERR_ObserverReason.UNCONSCIOUS;
m_ERRObserverAnchor = body.GetOrigin();
}
if (m_ERRObserverReason == ERR_ObserverReason.UNCONSCIOUS && !ERR_Actors.Alive(body)) m_ERRObserverReason = ERR_ObserverReason.SPENT_LIFE;
// Death can leave the controller attached to its corpse, so entity-lost is
// not a reliable trigger (especially with the last/only player).
ERR_PlayerLife life;
if (mode && mode.Players()) life = mode.Players().Get(GetPlayerId());
if (mode && mode.Active() && life && life.UsedLife && life.Actor && !ERR_Actors.Alive(life.Actor) && !ERR_Actors.Alive(body) && m_ERRObserverReason == ERR_ObserverReason.NONE)
{
m_ERRObserverReason = ERR_ObserverReason.SPENT_LIFE;
m_ERRObserverAnchor = life.Actor.GetOrigin();
}
if (m_ERRObserverReason == ERR_ObserverReason.NONE) return;
if (!mode || !mode.Active() || (ERR_Actors.Alive(body) && !casualty) || (m_ERRObserverReason == ERR_ObserverReason.UNCONSCIOUS && !casualty))
{
m_ERRObserverReason = ERR_ObserverReason.NONE;
ERR_ReleaseObserved();
Replication.BumpMe();
return;
}
array<IEntity> survivors = {};
ERR_Actors.Players(survivors);
Faction friendly = mode.PlayerFaction();
for (int i = survivors.Count() - 1; i >= 0; i--)
if (survivors[i] == body || (casualty && !ERR_Actors.CanFight(survivors[i])) || !friendly || !mode.Players() || !mode.Players().CurrentActor(survivors[i]) || SCR_FactionManager.SGetFaction(survivors[i]) != friendly) survivors.RemoveOrdered(i);
// Dead teammates remain selectable alongside survivors, including our own body.
ERR_ObserverTargets.Bodies(mode, survivors);
int index = survivors.Find(m_ERRServerObserved);
if (index < 0)
{
if (life && life.Actor) index = survivors.Find(life.Actor);
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);
}
}
else if (casualty) m_ERRObserverAnchor = body.GetOrigin();
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()
{
if (!GetGame()) return;
if (this != GetGame().GetPlayerController())
{
// A replaced controller may retain its timer until native destruction.
// Release only its presentation; never restore its old body camera.
GetGame().GetCallqueue().Remove(ERR_UpdateObserverClient);
m_ERRObserverMonitor = false;
m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1;
ERR_CloseObserverCamera();
return;
}
ERR_GameMode mode = ERR_GameMode.Get();
ERR_UpdateRecoveryCamera(mode);
bool observe = mode && ERR_ObserverRules.View(m_ERRObserverReason, mode.Active(), ERR_Actors.Alive(GetControlledEntity()), ERR_Actors.CanFight(GetControlledEntity()));
if (!observe)
{
ERR_CloseObserverCamera();
return;
}
SCR_EditorManagerEntity editor = SCR_EditorManagerEntity.GetInstance();
if (editor && editor.IsOpened()) 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().SpawnEntityPrefabLocal(resource, GetGame().GetWorld(), params));
if (!m_ERRObserverCamera) return;
}
CameraManager manager = GetGame().GetCameraManager();
if (!manager) return;
// Native death/respawn camera changes can arrive after our camera is created.
if (manager.CurrentCamera() != m_ERRObserverCamera) manager.SetCamera(m_ERRObserverCamera);
if (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();
string recovery = mode.RecoveryStatus();
if (ERR_ObserverGuidance.Refresh(m_ERRObserverReady, m_ERRShownObserverReason, m_ERRObserverReason, m_ERRShownObserverAvailable, survivorAvailable) || m_ERRShownRecoveryStatus != recovery)
{
SCR_HintManagerComponent hints = SCR_HintManagerComponent.GetInstance();
if (!hints) return; // retry on the existing monitor; do not lose the first hint
string message = ERR_ObserverGuidance.Message(m_ERRObserverReason, survivorAvailable);
if (!recovery.IsEmpty()) message += "\n" + recovery;
if (!hints.ShowCustom(message, "Spectating", 12)) return;
m_ERRObserverReady = true;
m_ERRShownObserverReason = m_ERRObserverReason;
m_ERRShownObserverAvailable = survivorAvailable;
m_ERRShownRecoveryStatus = recovery;
}
}
// Track the actual local body even when an editor/other camera owns the view.
// Run once per recovery, with retries for asynchronous editor close/camera setup.
protected void ERR_UpdateRecoveryCamera(ERR_GameMode mode)
{
IEntity body = GetControlledEntity();
if (!mode || !mode.Active() || !ERR_Actors.Alive(body))
{ m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1; return; }
if (!ERR_Actors.CanFight(body))
{ m_ERRRecoveryBody = body; m_ERRRecoveryDeadline = -1; return; }
if (!m_ERRRecoveryBody) return;
if (body != m_ERRRecoveryBody)
{ m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1; return; }
float now = GetGame().GetWorld().GetWorldTime();
if (m_ERRRecoveryDeadline < 0) m_ERRRecoveryDeadline = now + 10000;
SCR_EditorManagerEntity editor = SCR_EditorManagerEntity.GetInstance();
if (editor && editor.IsOpened()) editor.Close(false);
CameraManager manager = GetGame().GetCameraManager();
CameraBase playerCamera = GetPlayerCamera();
if (manager && playerCamera) manager.SetCamera(playerCamera);
if ((manager && playerCamera && manager.CurrentCamera() == playerCamera && (!editor || !editor.IsOpened())) || now >= m_ERRRecoveryDeadline)
{
if (now >= m_ERRRecoveryDeadline) Print("Reintroduced [spectator]: recovery camera return timed out waiting for editor/camera; player body remains controlled", LogLevel.WARNING);
m_ERRRecoveryBody = null; m_ERRRecoveryDeadline = -1;
}
}
protected void ERR_CloseObserverCamera()
{
m_ERRObserverReady = false;
m_ERRShownRecoveryStatus = "";
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();
}
}
}
@@ -0,0 +1,121 @@
"""Execute production input dispatch and recovery with native camera/editor doubles."""
from policy_harness import ROOT,body,run
p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c'
s=body(p,'protected void ERR_UpdateRecoveryCamera(').replace('protected ','').replace('ERR_GameMode mode','ERR_GameMode* mode').replace('null','nullptr')
for name in ('ERR_Actors','SCR_EditorManagerEntity','LogLevel'):
s=s.replace(name+'.',name+'::')
for name in ('SCR_EditorManagerEntity','CameraManager','CameraBase'):
s=s.replace(name+' ',name+'* ')
for name in ('mode','editor','manager'):
s=s.replace(name+'.',name+'->')
s=s.replace('GetGame().','GetGame()->').replace('GetWorld().','GetWorld()->')
run(r'''#include <cassert>
struct Actor {bool alive=true,conscious=true;};using IEntity=Actor*;
struct ERR_Actors {static bool Alive(IEntity a){return a&&a->alive;}static bool CanFight(IEntity a){return Alive(a)&&a->conscious;}};
struct ERR_GameMode {bool active=true;bool Active(){return active;}};
struct SCR_EditorManagerEntity {bool opened=false,canClose=true;int closes=0;static SCR_EditorManagerEntity* current;static SCR_EditorManagerEntity* GetInstance(){return current;}bool IsOpened(){return opened;}void Close(bool){closes++;if(canClose)opened=false;}} editor;
SCR_EditorManagerEntity* SCR_EditorManagerEntity::current=&editor;
struct CameraBase{} player,other;
struct CameraManager {CameraBase* current=&other;int sets=0;void SetCamera(CameraBase* c){current=c;sets++;}CameraBase* CurrentCamera(){return current;}} manager;
struct World {float now=0;float GetWorldTime(){return now;}} world;
struct Game {World* GetWorld(){return &world;}CameraManager* GetCameraManager(){return &manager;}} game;
Game* GetGame(){return &game;}namespace LogLevel {enum{WARNING};}int warnings=0;void Print(const char*,int){warnings++;}
struct Controller {
IEntity controlled=nullptr,m_ERRRecoveryBody=nullptr;float m_ERRRecoveryDeadline=-1;CameraBase* camera=&player;
IEntity GetControlledEntity(){return controlled;}CameraBase* GetPlayerCamera(){return camera;}
'''+s+r'''
};
int main(){
ERR_GameMode mode;Actor body,replacement;Controller c;c.controlled=&body;
// Healthy admins retain their camera: restoration belongs only to recovery.
c.ERR_UpdateRecoveryCamera(&mode);assert(manager.sets==0&&editor.closes==0);
body.conscious=false;c.ERR_UpdateRecoveryCamera(&mode);assert(c.m_ERRRecoveryBody==&body&&manager.sets==0);
// Recovery works with NO observer-camera instance and a different active camera.
editor.opened=true;body.conscious=true;c.ERR_UpdateRecoveryCamera(&mode);
assert(editor.closes==1&&!editor.opened&&manager.current==&player&&!c.m_ERRRecoveryBody);
manager.current=&other;c.ERR_UpdateRecoveryCamera(&mode);assert(manager.current==&other); // no permanent camera lock
// An asynchronously closing editor retains the pending recovery; next tick completes.
body.conscious=false;c.ERR_UpdateRecoveryCamera(&mode);body.conscious=true;editor.opened=true;editor.canClose=false;
c.ERR_UpdateRecoveryCamera(&mode);assert(c.m_ERRRecoveryBody==&body);
editor.canClose=true;c.ERR_UpdateRecoveryCamera(&mode);assert(!c.m_ERRRecoveryBody&&manager.current==&player);
// Wait for late camera creation, then return once.
body.conscious=false;c.ERR_UpdateRecoveryCamera(&mode);body.conscious=true;c.camera=nullptr;
c.ERR_UpdateRecoveryCamera(&mode);assert(c.m_ERRRecoveryBody==&body);
c.camera=&player;c.ERR_UpdateRecoveryCamera(&mode);assert(!c.m_ERRRecoveryBody);
// Refused editor close is bounded, warning instead of permanently stealing input.
body.conscious=false;c.ERR_UpdateRecoveryCamera(&mode);body.conscious=true;editor.opened=true;editor.canClose=false;
c.ERR_UpdateRecoveryCamera(&mode);world.now=10001;c.ERR_UpdateRecoveryCamera(&mode);assert(!c.m_ERRRecoveryBody&&warnings==1);
editor.opened=false;editor.canClose=true;
// Changed possession / stopped round must not return a stale casualty's camera.
body.conscious=false;c.ERR_UpdateRecoveryCamera(&mode);c.controlled=&replacement;int before=manager.sets;
c.ERR_UpdateRecoveryCamera(&mode);assert(!c.m_ERRRecoveryBody&&manager.sets==before);
c.controlled=&body;c.ERR_UpdateRecoveryCamera(&mode);mode.active=false;body.conscious=true;
c.ERR_UpdateRecoveryCamera(&mode);assert(!c.m_ERRRecoveryBody&&manager.sets==before);
}
''')
input_body=body(p,'void Input(').replace('SCR_PlayerController controller = SCR_PlayerController.Cast(GetGame().GetPlayerController());','SCR_PlayerController* controller = &pc;').replace('controller.','controller->').replace('ERR_ObserverRules.','ERR_ObserverRules::')
run(r'''#include <cassert>
struct ERR_ObserverRules {
'''+body(p,'static int Cycle(')+body(p,'static bool Toggle(')+r'''
};
struct SCR_PlayerController {int calls=0,direction=0;void ERR_CycleObserver(int d){calls++;direction=d;}} pc;
struct Follow {bool m_LeftDown=false,m_RightDown=false,m_EnterDown=false,m_PlayerView=false;int m_InputResumeFrames=0;
'''+input_body+r'''
};
int main(){
Follow f;f.Input(true,true,false,false);assert(pc.calls==1&&pc.direction==-1);
f.Input(true,true,false,false);assert(pc.calls==1);
f.Input(true,false,false,false);f.Input(true,false,true,false);assert(pc.calls==2&&pc.direction==1);
f.Input(true,true,true,false);assert(pc.calls==2);
f.Input(false,false,false,true);f.Input(true,false,false,true);assert(!f.m_PlayerView); // menu-held Enter
f.Input(true,false,false,false);f.Input(true,false,false,true);assert(f.m_PlayerView);
f.Input(true,false,false,true);assert(f.m_PlayerView);
f.Input(true,false,false,false);f.Input(true,false,false,true);assert(!f.m_PlayerView);
// Inactive chat context masks held keys as zero; submission must not become
// a new camera press when the context resumes (including its first zero frame).
f.Input(false,false,false,false);
f.Input(true,false,false,false);
f.Input(true,false,false,true);assert(!f.m_PlayerView);
f.Input(true,false,false,true);assert(!f.m_PlayerView);
f.Input(true,false,false,false);
f.Input(true,false,false,true);assert(f.m_PlayerView);
int before=pc.calls;
f.Input(false,false,false,false);
f.Input(true,false,false,false);
f.Input(true,true,false,false);f.Input(true,true,false,false);assert(pc.calls==before);
f.Input(true,false,false,false);f.Input(true,true,false,false);assert(pc.calls==before+1);
}
''')
# Execute the actual pre-activation gate with UI/native state doubled.
gate=body(p,'override protected bool IsDisabledByMenu(')
gate=gate.replace('override protected ', '').replace('super.', 'Base::')
gate=gate.replace('GetGame().', 'GetGame()->').replace('GetInputManager().', 'GetInputManager()->').replace('GetWorkspace().', 'GetWorkspace()->')
gate=gate.replace('Widget focused', 'Widget* focused').replace('EditBoxWidget.Cast', 'EditBoxWidget::Cast').replace('focused.GetParent()', 'focused->GetParent()')
run(r'''#include <cassert>
struct Widget {Widget*parent=nullptr;bool edit=false;Widget*GetParent(){return parent;}};
struct EditBoxWidget {static Widget*Cast(Widget*w){return w&&w->edit?w:nullptr;}};
struct Inputs {bool chat=false;bool IsContextActive(const char*){return chat;}} inputs;
struct Workspace {Widget*focus=nullptr;Widget*GetFocusedWidget(){return focus;}} workspace;
struct Game {Inputs*GetInputManager(){return &inputs;}Workspace*GetWorkspace(){return &workspace;}} game;
Game*GetGame(){return &game;}
struct Base {bool menu=false;bool IsDisabledByMenu(){return menu;}};
struct Camera:Base {
'''+gate+r'''
};
int main(){
Camera c;assert(!c.IsDisabledByMenu());
c.menu=true;assert(c.IsDisabledByMenu());c.menu=false;
inputs.chat=true;assert(c.IsDisabledByMenu());inputs.chat=false;
Widget edit,child,ordinary;edit.edit=true;child.parent=&edit;
workspace.focus=&edit;assert(c.IsDisabledByMenu());
workspace.focus=&child;assert(c.IsDisabledByMenu());
workspace.focus=&ordinary;assert(!c.IsDisabledByMenu());
workspace.focus=nullptr;assert(!c.IsDisabledByMenu());
}
''')
assert (ROOT/'addons/core/Prefabs/ERR/SpectatorCamera.et').read_text().startswith('ERR_ObserverCamera {')
config=(ROOT/'addons/core/Configs/ERR/ObserverInput.conf').read_text()
for key in ('KC_LEFT','KC_RIGHT','KC_RETURN','KC_NUMPADENTER'): assert f'keyboard:{key}' in config
assert 'chimeraInputCommon.conf' in config and 'ActionContext/ManualCameraContext.conf' in config
assert 'Debug.KeyState' not in p.read_text()
print('PASS: actual input dispatch, one press per edge, menu-held suppression; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round')
@@ -0,0 +1,20 @@
{
"scope": "Local Workbench observer/chat fixture; read its assertion labels and source for the exact exercised paths. Native action injection and scripted widget operations do not qualify physical keyboard input, native administrator authentication, a remote client, or a dedicated multiplayer session.",
"runs": {
"a01": {
"launch_id": "25d8fa8c-3749-41d7-8925-cde955fe87c6",
"runner_result": "test-failed",
"cleanup_confirmed": true,
"idle_verified": true,
"external_addons_unchanged_after_run": true,
"assertions_passed": 0,
"smoke_completions": 0,
"script_or_runtime_failure_count": 5,
"engine_error_count": 21,
"artifact_manifest_sha256": "cc5d94bc17db07d7c7aeab8fc0176242c52e61d0dfb37c177ccaa94ffbaed604"
}
},
"changed_launch_sources": {},
"engine_error_comparison": {},
"provenance": "Original pre-launch manifest, stopped console binding, unchanged frozen addon bytes, confirmed cleanup/idle state and unchanged external addon inputs are verified. Per-run artifact hashes bind copied raw logs, relevant sources, reports and captures. Current repository comparisons describe archive time only."
}