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,11 @@
--- /tmp/erri-hunt-before/ERR_HunterOpeningPlan.c 2026-10-04 12:52:07.062328521 +0200
+++ addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c 2026-10-04 12:52:07.128448341 +0200
@@ -74,7 +74,7 @@
else if (m_Scanned == 64)
{
m_Done = true;
- ERR_HQ.Event("HUNTER OPENING FAILED", "no three safe, widely separated road starts in 64 candidates; unsafe spawns withheld");
+ ERR_HQ.Event("HUNTER OPENING FALLBACK", "no three safe, widely separated road starts in 64 candidates; deployment will use checked roads near friendly objectives");
}
}
}
@@ -0,0 +1,46 @@
--- /tmp/erri-hunt-before/ERR_HunterService.c 2026-10-04 12:52:07.062255262 +0200
+++ addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c 2026-10-04 12:52:07.173449725 +0200
@@ -131,13 +131,17 @@
ERR_ConvoyPlacement placement = new ERR_ConvoyPlacement();
if (m_Hunters.Count() < 3)
{
- if (!m_Opening || !m_Opening.Ready()) return false;
- int slot = m_Hunters.Count();
- vector openingPosition = m_Opening.Positions[slot];
- vector openingAngles = m_Opening.Angles[slot];
- if (!ERR_HunterOpeningPlan.AwayFromPlayers(openingPosition, players) || !placement.Clear(openingPosition, openingAngles[0]))
- { ERR_HQ.Event("HUNTER WAIT", "reserved opening road occupied; no unsafe spawn"); return false; }
- return SpawnHunter(hq, now, openingPosition, openingAngles, "prison-opening");
+ if (!m_Opening || !m_Opening.Done()) return false;
+ if (m_Opening.Ready())
+ {
+ int slot = m_Hunters.Count();
+ vector openingPosition = m_Opening.Positions[slot];
+ vector openingAngles = m_Opening.Angles[slot];
+ if (ERR_HunterOpeningPlan.AwayFromPlayers(openingPosition, players) && placement.Clear(openingPosition, openingAngles[0]))
+ return SpawnHunter(hq, now, openingPosition, openingAngles, "prison-opening");
+ }
+ // Coastlines and sparse road networks may never admit three opposing
+ // bearings. A completed/occupied opening plan must not lock out all patrols.
}
for (int i = 0; i < m_Mode.Sites().Count(); i++)
{
@@ -147,11 +151,15 @@
vector position, angles;
vector seed = site.Definition.Position + Vector(Math.RandomFloat(-200, 200), 0, Math.RandomFloat(-200, 200));
if (!ERR_SupplyConvoySystem.ApproachDirected(seed, position, angles) || !placement.Clear(position, angles[0])) continue;
- bool nearPlayer;
- foreach (IEntity player : players) if (player && vector.DistanceXZ(player.GetOrigin(), position) < 400) nearPlayer = true;
- if (nearPlayer) continue;
+ if (!ERR_HunterOpeningPlan.AwayFromPlayers(position, players)) continue;
+ if (m_Hunters.Count() < 3 && vector.DistanceXZ(position, m_Opening.Center) < 600) continue;
+ bool occupied;
+ foreach (ERR_HunterVehicle deployed : m_Hunters)
+ if (!deployed.Released && deployed.Entity && vector.DistanceXZ(position, deployed.Entity.GetOrigin()) < 100) occupied = true;
+ if (occupied) continue;
return SpawnHunter(hq, now, position, angles, site.Definition.Id);
}
+ m_NextSpawn = now + 10000;
ERR_HQ.Event("HUNTER WAIT", "deployment deferred: friendly road obstructed, occupied, budget full or players within 400m");
return false;
}
@@ -0,0 +1,117 @@
--- /tmp/erri-hunt-before/ERR_SupplyConvoyTactics.c 2026-10-04 12:52:07.062390760 +0200
+++ addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c 2026-10-04 12:57:40.250476502 +0200
@@ -8,6 +8,9 @@
bool Registered;
bool Released;
vector OrderedContact;
+ vector SearchPosition;
+ int SearchStep;
+ bool SearchPlanned;
ref ERR_ConvoyBoardingProgress BoardingProgress;
float BoardingRetryAt;
void Clear()
@@ -202,6 +205,7 @@
protected vector m_Left;
protected float m_LastContact = -1;
protected float m_NextOrders;
+ protected float m_NextSearch;
protected vector m_LastOrderContact;
protected bool m_OrdersIssued;
protected float m_BoardDeadline;
@@ -280,7 +284,7 @@
// Only production native observations or a delivered HQ snapshot may call this.
void Report(vector position, float observed, float now)
{
- if (m_Stopped || !ERR_ForceRules.Finite(now) || !ERR_ForceRules.Finite(observed) || !ERR_ForceRules.FiniteVector(position) || observed < 0 || observed > now || now - observed > 60000 || observed < m_LastContact) return;
+ if (m_Stopped || !ERR_ForceRules.Finite(now) || !ERR_ForceRules.Finite(observed) || !ERR_ForceRules.FiniteVector(position) || observed < 0 || observed > now || now - observed > 60000 || observed <= m_LastContact) return;
m_LastContact = observed;
if (m_State != 1) Start(position, now);
else if (vector.DistanceXZ(position, m_Contact) > 40 && now >= m_NextOrders) { m_Contact = position; Orders(false, now); }
@@ -299,19 +303,58 @@
}
protected void Flank(int index, bool dismount)
{
+ PlanFlank(index, dismount, 0);
+ }
+ protected bool PlanFlank(int index, bool dismount, int step)
+ {
ERR_SupplyTeam team = m_Task.Teams[index];
- if (team.Released || !team.Living()) return;
+ if (team.Released || !team.Living() || step < 0 || step > 2) return false;
// Preserve an in-progress native all-member dismount across contact refreshes.
- if (!team.Aboard(m_Task.Vehicles[2].Entity, false) && SCR_BoardingWaypoint.Cast(team.Group.GetCurrentWaypoint())) return;
- team.Clear(); team.OrderedContact = m_Contact;
- if (dismount && !team.Aboard(m_Task.Vehicles[2].Entity, false)) team.Add(Board(m_Task.Vehicles[2].Entity, false));
+ if (!team.Aboard(m_Task.Vehicles[2].Entity, false) && SCR_BoardingWaypoint.Cast(team.Group.GetCurrentWaypoint())) return false;
float side = 1; if (index == 1) side = -1;
+ vector desired = m_Contact + m_Left * (70 * side);
+ if (step == 1) desired = m_Contact + m_Forward * 100 + m_Left * (140 * side);
+ if (step == 2) desired = m_Contact + m_Forward * 160 + m_Left * (50 * side);
vector approach, sector;
- if (!FootPosition(team, m_Contact - m_Forward * 80 + m_Left * (110 * side), approach) || !FootPosition(team, m_Contact + m_Left * (70 * side), sector)) return;
- team.Add(Move(approach, 15));
+ if (!FootPosition(team, desired, sector)) return false;
+ approach = sector;
+ if (step == 0 && !FootPosition(team, m_Contact - m_Forward * 80 + m_Left * (110 * side), approach)) return false;
+ AIWaypoint move = Move(approach, 15);
AIWaypoint search = AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.SearchWaypoint(), sector));
- if (search) search.SetCompletionRadius(30);
+ AIWaypoint exit;
+ bool needsExit = dismount && !team.Aboard(m_Task.Vehicles[2].Entity, false);
+ if (needsExit) exit = Board(m_Task.Vehicles[2].Entity, false);
+ // Failed placement/allocation must not erase the team's working orders.
+ if (!move || !search || (needsExit && !exit))
+ {
+ if (move) SCR_EntityHelper.DeleteEntityAndChildren(move);
+ if (search) SCR_EntityHelper.DeleteEntityAndChildren(search);
+ if (exit) SCR_EntityHelper.DeleteEntityAndChildren(exit);
+ return false;
+ }
+ team.Clear(); team.OrderedContact = m_Contact;
+ team.SearchPosition = sector; team.SearchStep = step; team.SearchPlanned = true;
+ team.Add(exit); team.Add(move);
+ search.SetCompletionRadius(30);
team.Add(search);
+ ERR_HQ.Event("CONVOY HUNT", string.Format("%1 team %2: search step %3/3 at %4 from last observed contact; formation suspended", m_Task.Receipt.SourceId, index + 1, step + 1, sector));
+ return true;
+ }
+ protected void ContinueSearch(float now)
+ {
+ if (now < m_NextSearch) return;
+ m_NextSearch = now + 45000;
+ for (int i = 0; i < m_Task.Teams.Count(); i++)
+ {
+ ERR_SupplyTeam team = m_Task.Teams[i];
+ if (team.Released || !team.Living() || !team.Aboard(m_Task.Vehicles[2].Entity, false)) continue;
+ // Retry refused initial orders, but never replace a team still travelling.
+ if (!team.SearchPlanned || vector.DistanceXZ(team.OrderedContact, m_Contact) > 40) { PlanFlank(i, false, 0); continue; }
+ if (team.SearchStep >= 2) continue;
+ IEntity leader = team.Group.GetLeaderEntity();
+ if (!leader || vector.DistanceXZ(leader.GetOrigin(), team.SearchPosition) > 45) continue;
+ PlanFlank(i, false, team.SearchStep + 1);
+ }
}
protected bool SupportPosition(int index, vector desired, out vector position)
{
@@ -381,6 +424,8 @@
if (intercept.InterceptToken != 0) return;
}
Clear(); m_State = 1; m_Contact = contact; m_TruckWithdrawn = false; m_OrdersIssued = false;
+ m_NextSearch = now + 45000;
+ foreach (ERR_SupplyTeam team : m_Task.Teams) { team.SearchPlanned = false; team.SearchStep = 0; }
if (m_Task.Column) m_Task.Column.Reset(now);
m_Task.Waiting = false;
vector origin;
@@ -493,7 +538,11 @@
}
}
if (found && now >= m_NextOrders) Orders(!InfantryAboard(false), now);
- if (now - m_LastContact >= 60000)
+ // Search only remembered positions. Real new sightings can redirect the
+ // teams; silence gives them time to reach and sweep both flanks, not a
+ // one-minute dash followed by forced reboarding.
+ if (!found && now - m_LastContact < 180000) ContinueSearch(now);
+ if (now - m_LastContact >= 180000)
{
Clear();
if (!Usable(2)) { foreach (ERR_SupplyTeam lost : m_Task.Teams) lost.Release(m_Mode); Finish(now); return false; }
@@ -0,0 +1,23 @@
check: /tmp/err-policy-8z2ugh5p/check.cpp:63: int main(): Assertion `s.StartHunter(&hq,100)&&s.source=="outpost"&&s.chosen.x==1000' failed.
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
File "<frozen runpy>", line 294, in run_path
File "<frozen runpy>", line 98, in _run_module_code
File "<frozen runpy>", line 88, in _run_code
File "tests/test_hunter_fallback.py", line 16, in <module>
run(r'''
~~~^^^^^
#include <cassert>
^^^^^^^^^^^^^^^^^^
...<49 lines>...
}
^
''')
^^^^
File "/home/jakub/devel/escapistsrereintroduced/tests/policy_harness.py", line 14, in run
subprocess.run([str(p/'check')],check=True)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/subprocess.py", line 578, in run
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/tmp/err-policy-8z2ugh5p/check']' died with <Signals.SIGABRT: 6>.
@@ -0,0 +1,591 @@
---------------------------------------------
Log /tmp/erri-hunt-native/run2/profile/logs/logs_2026-10-04_13-02-49/console.log started at 2026-10-04 13:02:49 (2026-10-04 11:02:49 UTC)
13:02:49.180 ENGINE : FileSystem: Adding relative directory '/tmp/erri-hunt-native/run2/profile/logs/logs_2026-10-04_13-02-49' to filesystem under name logs
13:02:49.180 ENGINE : FileSystem: Adding relative directory '/tmp/erri-hunt-native/run2/profile/profile' to filesystem under name profile
13:02:49.180 ENGINE : FileSystem: Current working directory: '/tmp/runtime/'
13:02:49.181 ENGINE : Initializing engine, version 192142
13:02:49.181 ENGINE : CLI Params: -server {469880DFE1B48F95}Missions/Nogova_TerrainTest.conf -addonsDir /tmp/erri-hunt-native/run2/addons -addons 2528466DE220D91C,70C981A53E02B64F -profile /tmp/erri-hunt-native/run2/profile -noBackend -noSound -bindIP 127.0.0.1 -bindPort 2001 -maxFPS 30 -logconsole -noSplash -noThrow -disableCrashReporter
13:02:49.183 ENGINE : Addon dirs:
13:02:49.183 ENGINE : dir: '/tmp/erri-hunt-native/run2/addons'
13:02:49.183 ENGINE : dir: './addons'
13:02:49.183 ENGINE : dir: '/tmp/erri-hunt-native/run2/profile/addons'
13:02:49.183 ENGINE : Available addons:
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/Nogova/addon.gproj' guid: '70C981A53E02B64F'
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERR_Core/addon.gproj' guid: '2528466DE220D91C'
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed)
13:02:49.183 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed)
13:02:49.183 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
13:02:49.183 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
13:02:49.183 ENGINE : FileSystem: Adding relative directory '/home/jakub/devel/gabreta/addons/NogovaReforger' to filesystem under name NogovaReforger
13:02:49.183 ENGINE : FileSystem: Adding relative directory '/tmp/erri-hunt-native/run2/source' to filesystem under name ERR_Core
13:02:49.184 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_65930CB4CD0237B2/' (pak count: 1) to filesystem under name Parachutes
13:02:49.184 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_5E524E4FEECCA92B/' (pak count: 1) to filesystem under name WCS_BMP-1
13:02:49.184 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_5E389BB9F58B79A6/' (pak count: 1) to filesystem under name WCS_SpaceCore
13:02:49.186 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_629B2BA37EFFD577/' (pak count: 1) to filesystem under name WCS_Armaments
13:02:49.190 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core
13:02:49.191 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02
13:02:49.194 ENGINE : FileSystem: Adding package '/tmp/erri-hunt-native/run2/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01
13:02:49.286 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger
13:02:49.288 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
13:02:49.288 ENGINE : CPU vendor : AuthenticAMD
13:02:49.288 ENGINE : CPU type : 2
13:02:49.288 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
13:02:49.288 ENGINE : CPU cache info : Unknown cache
13:02:49.288 ENGINE : CPU count logical : 16
13:02:49.288 ENGINE : CPU count physical : 8
13:02:49.288 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
13:02:49.288 RESOURCES : ResourceDB: loading cache (id=0 name=NogovaReforger path=/home/jakub/devel/gabreta/addons/NogovaReforger/resourceDatabase.rdb)
13:02:49.298 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Core path=/tmp/erri-hunt-native/run2/source/resourceDatabase.rdb)
13:02:49.298 RESOURCES : ResourceDB: loading cache (id=2 name=Parachutes path=/tmp/erri-hunt-native/run2/addons/ERRI_65930CB4CD0237B2/resourceDatabase.rdb)
13:02:49.298 RESOURCES : ResourceDB: loading cache (id=3 name=WCS_BMP-1 path=/tmp/erri-hunt-native/run2/addons/ERRI_5E524E4FEECCA92B/resourceDatabase.rdb)
13:02:49.298 RESOURCES : ResourceDB: loading cache (id=4 name=WCS_SpaceCore path=/tmp/erri-hunt-native/run2/addons/ERRI_5E389BB9F58B79A6/resourceDatabase.rdb)
13:02:49.299 RESOURCES : ResourceDB: loading cache (id=5 name=WCS_Armaments path=/tmp/erri-hunt-native/run2/addons/ERRI_629B2BA37EFFD577/resourceDatabase.rdb)
13:02:49.300 RESOURCES : ResourceDB: loading cache (id=6 name=RHS_Core path=/tmp/erri-hunt-native/run2/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb)
13:02:49.310 RESOURCES : ResourceDB: loading cache (id=7 name=RHS_Content_02 path=/tmp/erri-hunt-native/run2/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb)
13:02:49.311 RESOURCES : ResourceDB: loading cache (id=8 name=RHS_Content_01 path=/tmp/erri-hunt-native/run2/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb)
13:02:49.316 RESOURCES : ResourceDB: loading cache (id=9 name=ArmaReforger path=./addons/data/resourceDatabase.rdb)
13:02:49.438 RESOURCES : ResourceDB: loading cache (id=10 name=core path=./addons/core/resourceDatabase.rdb)
13:02:49.439 RESOURCES : ResourceDB: loading cache (id=11 name=profile path=/tmp/erri-hunt-native/run2/profile/profile/resourceDatabase.rdb)
13:02:49.439 RESOURCES : ResourceDB: loading cache (id=12 name=logs path=/tmp/erri-hunt-native/run2/profile/logs/logs_2026-10-04_13-02-49/resourceDatabase.rdb)
13:02:49.618 ENGINE : GameProject load
13:02:49.618 ENGINE : Loaded addons:
13:02:49.618 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
13:02:49.618 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/ERR_Core/addon.gproj' guid: '2528466DE220D91C'
13:02:49.618 ENGINE : gproj: '/tmp/erri-hunt-native/run2/addons/Nogova/addon.gproj' guid: '70C981A53E02B64F'
13:02:49.619 ENGINE : GameProject load
13:02:49.619 INIT : GameProject load project data @"/tmp/erri-hunt-native/run2/addons/ERRI_595F2BF2F44836FB/addon.gproj"
13:02:49.619 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
13:02:49.619 INIT : GameProject load project data @"/tmp/erri-hunt-native/run2/addons/ERRI_629B2BA37EFFD577/addon.gproj"
13:02:49.619 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
13:02:49.619 INIT : GameProject load project data @"/tmp/erri-hunt-native/run2/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
13:02:49.619 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
13:02:49.619 INIT : GameProject load project data @"/tmp/erri-hunt-native/run2/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
13:02:49.619 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
13:02:49.619 ENGINE : Loading custom engine user config '$profile:.save/settings/ReforgerEngineSettings.conf'
13:02:49.619 ENGINE : No Enfusion settings file loaded. Continuing with defaults
13:02:49.619 RENDER : Basic screen setup:
13:02:49.619 RENDER : Back buffer width x height: 0x0
13:02:49.619 RENDER : Back buffer format : TEXFMT_UNKNOWN (0)
13:02:49.619 RENDER : MSAA : none
13:02:49.619 RENDER : GPU_DUMMY (0xFFFF) (Enfusion dummy render) with 1 GPU detected, VRAM 128MB (fast 128MB), shared 128MB, driver version Unknown version
13:02:49.619 RENDER : Detected output devices:
13:02:49.619 RENDER : * 1 device/s connected to Dummy:
13:02:49.619 RENDER : Dummy output (Dummy device for our dummy render.), 1920x1080 (offset 0x0), 60Hz
13:02:49.619 RENDER : Concurrent frames limit 2
13:02:49.620 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=7
13:02:49.631 PROFILING : Settings changed took: 0.017000 ms
13:02:49.633 ENGINE : Initializing inputs.
13:02:49.641 NETWORK : Initializing networking.
13:02:49.641 NETWORK : Using new GameRplScheduler.
13:02:49.641 SCRIPT : SCRIPT : Initializing scripts
13:02:49.642 SCRIPT : SCRIPT : ScriptProjectManager init
13:02:49.642 PROFILING : ScriptProjectManager init took: 0.008000 ms
13:02:49.659 PROFILING : Initializing scripts took: 16.997000 ms
13:02:49.659 BACKEND : Backend Services are disabled.
13:02:49.659 ENGINE : Enfusion engine successfully created.
13:02:49.660 GUI : Using default language (en_us)
13:02:49.660 GUI : Loading 'en_us' localization file.
13:02:49.660 INIT : INIT : Loading StringTable
13:02:49.684 PROFILING : Loading StringTable took: 23.762000 ms
13:02:49.684 SCRIPT : SCRIPT : Compiling GameLib scripts
13:02:49.712 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 654K of static memory; defines: "PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
13:02:49.712 PROFILING : Compiling GameLib scripts took: 28.345000 ms
13:02:49.712 SCRIPT : SCRIPT : Compiling Game scripts
13:02:50.293 SCRIPT : Compiling Game scripts
13:02:50.293 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
13:02:50.660 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
13:02:50.660 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
13:02:50.942 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,359": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
13:02:50.954 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
13:02:50.984 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
13:02:51.126 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
13:02:51.126 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
13:02:51.126 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
13:02:51.126 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
13:02:51.149 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ZProfileProbe.c,18": Variable 'moved' is not used
13:02:51.156 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
13:02:51.207 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete
13:02:51.216 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
13:02:51.216 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
13:02:51.218 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
13:02:51.260 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
13:02:51.260 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
13:02:51.261 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
13:02:51.261 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
13:02:51.311 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
13:02:51.488 SCRIPT : Module: Game; loaded 6645x files; 13286x classes; used 32680K of static memory; defines: "PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS"; CRC32: 98b49db0
13:02:51.508 PROFILING : Compiling Game scripts took: 1795.674000 ms
13:02:51.508 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
13:02:51.533 ENGINE : Game successfully created.
13:02:51.544 PLATFORM : Save data from container 'settings' have been loaded
13:02:51.643 PLATFORM : Save data from container 'sessions' have been loaded
13:02:51.643 PLATFORM : System language differs from the saved one - using new language {new: 'en_us'; old: ''}
13:02:51.643 PLATFORM : Save data transaction to 'settings' started.
13:02:51.643 NETWORK : Starting local multiplayer server using command line args.
13:02:51.742 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{469880DFE1B48F95}Missions/Nogova_TerrainTest.conf'.
13:02:51.744 WORLD : WORLD : Entities load '$NogovaReforger:Worlds/Nogova/Nogova_Test.ent'
13:02:52.107 PROFILING : Entities load took: 363.291000 ms
13:02:56.025 WORLD : WORLD : Game::LoadEntities
13:02:56.025 WORLD : WORLD : Initializing world systems
13:02:56.026 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
13:02:56.026 WORLD : WORLD : CreateEntities
13:02:56.026 WORLD : WORLD : CreateEntities
13:02:56.026 WORLD : WORLD : NotifyBeforeEntitiesCreated
13:02:56.028 RESOURCES : Loaded mission headers from 11 addon(s)!
13:02:56.028 PROFILING : NotifyBeforeEntitiesCreated took: 1.423000 ms
13:02:56.028 WORLD : WORLD : Wait for preloading data
13:02:56.028 PROFILING : Wait for preloading data took: 0.000000 ms
13:02:56.029 ENTITY : Create entity @"ENTITY:2" ('Nogova', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{221ABC927C672E4E}Prefabs/World/DefaultWorld/GenericTerrain_Default.et"
13:02:56.029 PROFILING : PROFILING : Terrain load
13:02:56.035 PROFILING : Terrain load took: 6.579000 ms
13:03:01.720 WORLD : Game::LoadEntities
13:03:01.720 WORLD : CreateEntities
13:03:01.720 WORLD : CreateEntities
13:03:01.720 ENTITY : Create entity @"ENTITY:2305843009213693954" ('NGR_Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{589540B35EBA8CDC}Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et"
13:03:01.720 RESOURCES : GetResourceObject @"{5168FEA3054D6D15}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB_MERDC.et"
13:03:01.720 WORLD : Entity prefab load @"{5168FEA3054D6D15}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB_MERDC.et"
13:03:01.720 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
13:03:01.720 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
13:03:01.720 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
13:03:01.720 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
13:03:01.805 RESOURCES : GetResourceObject @"{F7B9B434FCFF00B3}Prefabs/Vehicles/Wheeled/Conflict_Variants/BRDM2_Conflict.et"
13:03:01.805 WORLD : Entity prefab load @"{F7B9B434FCFF00B3}Prefabs/Vehicles/Wheeled/Conflict_Variants/BRDM2_Conflict.et"
13:03:01.805 RESOURCES : GetResourceObject @"{254289B9C09904AB}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2.et"
13:03:01.805 WORLD : Entity prefab load @"{254289B9C09904AB}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2.et"
13:03:01.805 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
13:03:01.805 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
13:03:01.805 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
13:03:01.805 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
13:03:01.805 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
13:03:01.805 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
13:03:01.806 RESOURCES : GetResourceObject @"{BD75A18920BD1278}Prefabs/Vehicles/Wheeled/Conflict_Variants/BTR70_Conflict.et"
13:03:01.806 WORLD : Entity prefab load @"{BD75A18920BD1278}Prefabs/Vehicles/Wheeled/Conflict_Variants/BTR70_Conflict.et"
13:03:01.806 RESOURCES : GetResourceObject @"{C012BB3488BEA0C2}Prefabs/Vehicles/Wheeled/BTR70/BTR70.et"
13:03:01.806 WORLD : Entity prefab load @"{C012BB3488BEA0C2}Prefabs/Vehicles/Wheeled/BTR70/BTR70.et"
13:03:01.806 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
13:03:01.806 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
13:03:01.806 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
13:03:01.806 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
13:03:01.806 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
13:03:01.806 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
13:03:01.806 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
13:03:01.806 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
13:03:01.873 WORLD : WORLD : NotifyBeforeEntitiesInitialized
13:03:01.873 PROFILING : NotifyBeforeEntitiesInitialized took: 0.033000 ms
13:03:01.873 WORLD : InitEntities 'world'
13:03:01.873 ENTITY : Init entity @"ENTITY:18" ('NGR_Map', SCR_MapEntity) at <6400.000000 0.000000 6400.000000> @"{731564B66F91B107}Prefabs/World/Game/MapEntity.et"
13:03:01.873 SCRIPT (W): SCR_MapEntity: Cannot get the size from terrain. Using default.
13:03:01.877 ENTITY : Init entity @"ENTITY:2305843009213693953" ('NGR_TestMode', NGR_TestGameMode) at <0.000000 0.000000 0.000000> @"{592F3093A2B876C1}Prefabs/NGR/TestGameMode.et"
13:03:01.877 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
13:03:01.878 WORLD : WORLD : NotifyEntitiesInitialized
13:03:01.878 TERRAIN : TERRAIN : Initializing road networks...
13:03:01.878 PROFILING : Initializing road networks... took: 0.090000 ms
13:03:01.879 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used.
13:03:01.927 SCRIPT : Reintroduced [terrain selection]: discovered 46 playable scenario headers; truncated=0
13:03:01.938 SCRIPT : Reintroduced [terrain takeover]: enabled; configured airports=0
13:03:01.938 DEFAULT : DEFAULT : WorldVolumesCollection
13:03:01.947 PROFILING : WorldVolumesCollection took: 8.971000 ms
13:03:01.947 PROFILING : NotifyEntitiesInitialized took: 69.100000 ms
13:03:01.947 PROFILING : CreateEntities took: 5920.430000 ms
13:03:01.947 PROFILING : CreateEntities took: 5920.437000 ms
13:03:01.947 WORLD : WORLD : EOnActivate
13:03:01.953 PROFILING : EOnActivate took: 6.239000 ms
13:03:01.953 PROFILING : Game::LoadEntities took: 5927.894000 ms
13:03:02.056 NETWORK : Starting RPL server, listening on address 0.0.0.0:2001, fastValidation=false
13:03:02.378 DEFAULT : Entered online game state.
13:03:02.454 PROFILING : Settings changed took: 0.137000 ms
13:03:03.090 SCRIPT : Map load time: 23ms
13:03:03.100 WORLD : Frame start
13:03:03.100 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
13:03:03.102 WORLD : UpdateEntities
13:03:03.102 WORLD : Frame
13:03:03.102 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
13:03:03.369 SCRIPT : Reintroduced [terrain takeover]: stopping original scenario; preserving radio manager
13:03:03.370 SCRIPT : Reintroduced [terrain takeover]: native registrations cleared
13:03:03.602 ENTITY : SpawnEntityPrefab @"{9D182739ABEF405C}Prefabs/ERR/TerrainTakeover.et"
13:03:03.602 WORLD : InitEntities 'world'
13:03:03.602 ENTITY : Init entity @"ENTITY:4611686018427387909" ('ERR_TerrainTakeoverMode') at <0.000000 0.000000 0.000000> @"{9D182739ABEF405C}Prefabs/ERR/TerrainTakeover.et"
13:03:03.602 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
13:03:03.608 SCRIPT : Reintroduced [terrain takeover]: Game Master player and admin events attached to Escape
13:03:03.608 RESOURCES (E): Wrong GUID/name for resource @"{0000000000000000}$NogovaReforger:Worlds/Nogova/Nogova_Test.ent" in property "<missing-def>"
13:03:03.608 SCRIPT (W): Can't open config file "Worlds/Nogova/Nogova_Test.ent"
13:03:03.608 SCRIPT : Reintroduced [terrain presentation]: mission=Co10 Escape Reintroduced - Nogova; source scenario={469880DFE1B48F95}Missions/Nogova_TerrainTest.conf
13:03:03.608 SCRIPT : Reintroduced [terrain takeover]: Escape started on selected scenario
13:03:03.608 WORLD : UpdateEntities
13:03:03.608 WORLD : Frame
13:03:03.608 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
13:03:03.609 WORLD : UpdateEntities
13:03:03.609 DEFAULT (E): Previously set BaseChatEntity doesn't match the one that is getting unregistered!
13:03:03.609 DEFAULT (E): oldEntity: @"ENTITY:4611686018427387913" ('Chat', ScriptedChatEntity) at <-318.967010 54.514000 1.838000> @"Chat"
13:03:03.609 DEFAULT (E): newEntity: @"ENTITY:2305843009213693958" ('NGR_Chat', ScriptedChatEntity) at <-318.967010 54.514000 1.838000> @"{F69BC912AC8236F9}Prefabs/MP/ScriptedChatEntity.et"
13:03:03.609 DEFAULT (E): Previously set PerceptionManager doesn't match the one that is getting unregistered!
13:03:03.609 DEFAULT (E): oldEntity: @"ENTITY:4611686018427387910" ('Perception', PerceptionManager) at <1893.353027 387.072998 5056.824219> @"Perception"
13:03:03.609 DEFAULT (E): newEntity: @"ENTITY:2305843009213693956" ('NGR_Perception', PerceptionManager) at <1893.353027 387.072998 5056.824219> @"{028DAEAD63E056BE}Prefabs/World/Game/PerceptionManager.et"
13:03:03.609 DEFAULT (E): Previously set FactionManager doesn't match the one that is getting unregistered!
13:03:03.609 DEFAULT (E): oldEntity: @"ENTITY:4611686018427387911" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"Factions"
13:03:03.609 DEFAULT (E): newEntity: @"ENTITY:2305843009213693954" ('NGR_Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{589540B35EBA8CDC}Prefabs/MP/Managers/Factions/FactionManager_USxUSSR.et"
13:03:03.609 SCRIPT : Reintroduced [terrain takeover]: completed original loadout unregister
13:03:03.609 DEFAULT (E): Previously set BaseGameMode doesn't match the one that is getting unregistered!
13:03:03.609 DEFAULT (E): oldEntity: @"ENTITY:4611686018427387909" ('ERR_TerrainTakeoverMode') at <0.000000 0.000000 0.000000> @"{9D182739ABEF405C}Prefabs/ERR/TerrainTakeover.et"
13:03:03.609 DEFAULT (E): newEntity: @"ENTITY:2305843009213693953" ('NGR_TestMode', NGR_TestGameMode) at <0.000000 0.000000 0.000000> @"{592F3093A2B876C1}Prefabs/NGR/TestGameMode.et"
13:03:04.970 SCRIPT : Co10 Escape Reintroduced factions: players=US enemy=USSR independent=FIA
13:03:05.171 SCRIPT : Reintroduced [terrain]: bounds=<-2000,-500,-2000>..<14800,2000,14800> spacing=600 sites=16; native terrain/navmesh placement, no authored fallback
13:03:26.336 SCRIPT : Co10 Escape Reintroduced [AI / air recon]: airport search finished; airports=0
13:03:26.336 SCRIPT : Reintroduced [terrain]: no airport infrastructure found; surveying a clear helicopter extraction landing zone
13:03:28.471 SCRIPT : Reintroduced [terrain site]: id=everon-extraction-1 position=<4419.55,20.3356,3254.84> heading=228.786 attempts=1011
13:03:29.003 SCRIPT : Reintroduced [terrain site]: id=everon-prison-1 position=<1760.28,20.6076,4983.57> heading=17.1612 attempts=39
13:03:30.070 SCRIPT : Reintroduced [terrain site]: id=everon-radio-1 position=<3585.21,134.561,8823.83> heading=229.874 attempts=696
13:03:30.869 SCRIPT : Reintroduced [terrain site]: id=everon-supply-1 position=<6965.81,109.989,4064.23> heading=141.069 attempts=452
13:03:31.403 SCRIPT : Reintroduced [terrain site]: id=everon-medical-1 position=<9840.41,107.592,4782.5> heading=316.504 attempts=32
13:03:31.936 SCRIPT : Reintroduced [terrain site]: id=everon-medical-2 position=<4714.79,21.8635,4918.41> heading=91.8815 attempts=42
13:03:32.737 SCRIPT : Reintroduced [terrain site]: id=everon-medical-3 position=<5371.98,22.7153,5739> heading=177.292 attempts=413
13:03:33.536 SCRIPT : Reintroduced [terrain site]: id=everon-mortar-1 position=<1765.87,20.3616,4039.29> heading=102.121 attempts=587
13:03:34.069 SCRIPT : Reintroduced [terrain site]: id=everon-mortar-2 position=<10136.7,111.906,5336.34> heading=271.843 attempts=395
13:03:34.336 SCRIPT : Reintroduced [terrain site]: id=everon-mortar-3 position=<4773.33,25.0964,5842.85> heading=163.284 attempts=13
13:03:34.603 SCRIPT : Reintroduced [terrain site]: id=everon-mortar-4 position=<6636.96,114.989,6140.64> heading=163.449 attempts=184
13:03:35.137 SCRIPT : Reintroduced [terrain site]: id=everon-outpost-1 position=<1437.54,19.3719,6347.82> heading=111.745 attempts=149
13:03:35.937 SCRIPT : Reintroduced [terrain site]: id=everon-camp-2 position=<3152.01,30.5193,4618.58> heading=337.367 attempts=528
13:03:37.270 SCRIPT : Reintroduced [terrain site]: id=everon-camp-3 position=<4116.66,29.1814,4348.79> heading=16.6997 attempts=983
13:03:38.603 SCRIPT : Reintroduced [terrain site]: id=everon-camp-4 position=<1179.96,11.8659,9531.41> heading=263.57 attempts=813
13:03:39.936 SCRIPT : Reintroduced [terrain site]: id=everon-camp-5 position=<7432.1,8.05325,1055.75> heading=272.381 attempts=1023
13:03:39.945 SCRIPT : Reintroduced [sites]: authored everon-prison-1 at <1760.28,20.8161,4983.57>
13:03:39.952 SCRIPT : Reintroduced [sites]: authored everon-supply-1 at <6965.81,110.069,4064.23>
13:03:39.953 ENTITY : SpawnEntityPrefab @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
13:03:39.953 ENTITY : Create entity @"ENTITY:4611686018427388046" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <3588.196777 134.939911 8817.193359> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
13:03:39.953 ENTITY : CreateComponent 'ScriptedRadioComponent'
13:03:39.953 DEFAULT (W): BaseRadioComponent does not have any transceiver. (Entity: @"ENTITY:4611686018427388046" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <3588.196777 134.939911 8817.193359> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"). Only printing this message once. There're possibly more nodes with this requirement.
13:03:39.955 SCRIPT : Reintroduced [sites]: authored everon-radio-1 at <3585.21,134.889,8823.83>
13:03:39.975 SCRIPT : Reintroduced [sites]: authored everon-extraction-1 at <4419.55,20.5873,3254.84>
13:03:39.981 SCRIPT : Reintroduced [sites]: authored everon-medical-1 at <9840.41,107.828,4782.5>
13:03:39.985 SCRIPT : Reintroduced [sites]: authored everon-outpost-1 at <1437.54,19.7406,6347.82>
13:03:39.985 SCRIPT : Reintroduced [sites]: authored everon-mortar-1 at <1765.87,20.5271,4039.29>
13:03:39.985 SCRIPT : Reintroduced [sites]: authored everon-mortar-2 at <10136.7,112.283,5336.34>
13:03:39.985 SCRIPT : Reintroduced [sites]: authored everon-mortar-3 at <4773.33,25.3585,5842.85>
13:03:39.985 SCRIPT : Reintroduced [sites]: authored everon-mortar-4 at <6636.96,115.069,6140.64>
13:03:39.988 SCRIPT : Reintroduced [sites]: authored everon-medical-2 at <4714.79,22.0112,4918.41>
13:03:39.990 SCRIPT : Reintroduced [sites]: authored everon-medical-3 at <5371.98,23.0831,5739>
13:03:39.993 SCRIPT : Reintroduced [sites]: authored everon-camp-2 at <3152.01,30.8693,4618.58>
13:03:39.996 SCRIPT : Reintroduced [sites]: authored everon-camp-3 at <4116.66,29.4185,4348.79>
13:03:39.998 SCRIPT : Reintroduced [sites]: authored everon-camp-4 at <1179.96,12.218,9531.41>
13:03:40.000 SCRIPT : Reintroduced [sites]: authored everon-camp-5 at <7432.1,8.33575,1055.75>
13:03:40.000 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4419.55,20.5873,3254.84> up=1
13:03:40.000 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
13:03:40.000 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=5488.79
13:03:40.000 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.55,20.8839,3257.1>
13:03:40.000 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.55,20.5839,3257.1> terrainY=20.5027 tireTerrainGap=0.0812149
13:03:40.000 SCRIPT : ERR GEAR SUPPORT: center=<4419.55,20.8839,3257.1> radius=0.3 bottom=<4419.55,20.5839,3257.1> fraction=0.823668 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.0812073
13:03:40.000 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.27,21.352,3252.81>
13:03:40.000 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.27,20.902,3252.81> terrainY=20.4487 tireTerrainGap=0.453384
13:03:40.000 SCRIPT : ERR GEAR SUPPORT: center=<4417.27,21.352,3252.81> radius=0.45 bottom=<4417.27,20.902,3252.81> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
13:03:40.000 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.82,21.3521,3252.81>
13:03:40.000 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.82,20.9021,3252.81> terrainY=20.5056 tireTerrainGap=0.396463
13:03:40.000 SCRIPT : ERR GEAR SUPPORT: center=<4421.82,21.3521,3252.81> radius=0.45 bottom=<4421.82,20.9021,3252.81> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=0 conscious=0 nativeComplete=0
13:03:40.000 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=0 conscious=0 nativeComplete=0
13:03:40.469 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=1 conscious=1 nativeComplete=0
13:03:40.469 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=1 conscious=1 nativeComplete=0
13:03:40.469 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
13:03:40.469 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
13:03:41.003 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=2 conscious=2 nativeComplete=0
13:03:41.003 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=2 conscious=2 nativeComplete=0
13:03:41.003 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:41.003 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:41.269 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4419.52,20.2843,3254.82> up=0.997337
13:03:41.269 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.192378 angularSpeed=0.125611
13:03:41.269 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.75
13:03:41.269 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.5,20.8159,3257.04>
13:03:41.269 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.5,20.5159,3257.04> terrainY=20.5015 tireTerrainGap=0.0143318
13:03:41.269 SCRIPT : ERR GEAR SUPPORT: center=<4419.5,20.8159,3257.04> radius=0.3 bottom=<4419.5,20.5159,3257.04> fraction=0.5197 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.0143337
13:03:41.269 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.26,20.8924,3252.71>
13:03:41.269 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.26,20.4424,3252.71> terrainY=20.448 tireTerrainGap=-0.00562286
13:03:41.269 SCRIPT : ERR GEAR SUPPORT: center=<4417.26,20.8924,3252.71> radius=0.45 bottom=<4417.26,20.4424,3252.71> fraction=0.428938 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00563431
13:03:41.269 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.81,20.9501,3252.75>
13:03:41.269 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.81,20.5001,3252.75> terrainY=20.5052 tireTerrainGap=-0.00510025
13:03:41.269 SCRIPT : ERR GEAR SUPPORT: center=<4421.81,20.9501,3252.75> radius=0.45 bottom=<4421.81,20.5001,3252.75> fraction=0.431346 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00510406
13:03:41.269 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:41.536 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
13:03:41.536 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
13:03:41.536 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:41.536 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:42.069 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:42.069 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:42.069 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:42.069 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:42.335 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.51,20.3721,3254.81> up=0.995917
13:03:42.335 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.114888 angularSpeed=0.0692358
13:03:42.335 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.74
13:03:42.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.48,20.8044,3257.04>
13:03:42.335 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.48,20.5044,3257.04> terrainY=20.5013 tireTerrainGap=0.00314522
13:03:42.335 SCRIPT : ERR GEAR SUPPORT: center=<4419.48,20.8044,3257.04> radius=0.3 bottom=<4419.48,20.5044,3257.04> fraction=0.468785 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00313377
13:03:42.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.25,20.8894,3252.69>
13:03:42.335 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.25,20.4394,3252.69> terrainY=20.4479 tireTerrainGap=-0.00848579
13:03:42.335 SCRIPT : ERR GEAR SUPPORT: center=<4417.25,20.8894,3252.69> radius=0.45 bottom=<4417.25,20.4394,3252.69> fraction=0.41594 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00849342
13:03:42.335 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.81,20.9473,3252.75>
13:03:42.335 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.81,20.4973,3252.75> terrainY=20.5051 tireTerrainGap=-0.00774574
13:03:42.335 SCRIPT : ERR GEAR SUPPORT: center=<4421.81,20.9473,3252.75> radius=0.45 bottom=<4421.81,20.4973,3252.75> fraction=0.419329 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00774765
13:03:42.335 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:42.602 SCRIPT : Reintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
13:03:42.602 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=3 physical=3 conscious=3 nativeComplete=1
13:03:42.602 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=3 conscious=3 nativeComplete=0
13:03:42.603 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
13:03:42.603 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:43.136 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
13:03:43.136 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:43.136 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:43.136 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:43.416 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.48,20.3527,3254.77> up=0.995718
13:03:43.416 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.056031 angularSpeed=0.0646128
13:03:43.417 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.69
13:03:43.417 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.42,20.8043,3257>
13:03:43.417 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.42,20.5043,3257> terrainY=20.5001 tireTerrainGap=0.00416183
13:03:43.417 SCRIPT : ERR GEAR SUPPORT: center=<4419.42,20.8043,3257> radius=0.3 bottom=<4419.42,20.5043,3257> fraction=0.473432 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00415611
13:03:43.417 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.24,20.8941,3252.63>
13:03:43.417 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.24,20.4441,3252.63> terrainY=20.4474 tireTerrainGap=-0.00321579
13:03:43.417 SCRIPT : ERR GEAR SUPPORT: center=<4417.24,20.8941,3252.63> radius=0.45 bottom=<4417.24,20.4441,3252.63> fraction=0.439913 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.0032196
13:03:43.417 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.79,20.9516,3252.73>
13:03:43.417 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.79,20.5016,3252.73> terrainY=20.5047 tireTerrainGap=-0.00318336
13:03:43.417 SCRIPT : ERR GEAR SUPPORT: center=<4421.79,20.9516,3252.73> radius=0.45 bottom=<4421.79,20.5016,3252.73> fraction=0.440017 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00319672
13:03:43.417 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:43.417 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:43.417 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:43.417 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:43.417 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:43.952 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:43.952 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:43.952 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:43.952 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:44.469 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:44.469 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:44.469 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:44.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:44.469 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:44.469 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:44.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:44.469 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:44.469 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:44.469 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:44.469 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:44.469 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:44.469 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:44.469 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=4 conscious=4 nativeComplete=0
13:03:44.469 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
13:03:44.469 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
13:03:44.469 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:45.036 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:45.036 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:45.036 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:45.036 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:45.569 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:45.569 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:45.569 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:45.569 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:45.569 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:45.569 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:45.569 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:45.569 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:45.569 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:45.569 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:45.569 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:45.569 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:45.569 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:45.569 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:45.570 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=1 conscious=1 nativeComplete=0
13:03:45.570 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=1 conscious=1 nativeComplete=0
13:03:45.570 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:46.102 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:46.102 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:46.102 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:46.102 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:46.636 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:46.636 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:46.636 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:46.636 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:46.636 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:46.636 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:46.636 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:46.636 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:46.636 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:46.636 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:46.636 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:46.636 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:46.636 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:46.636 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=5 conscious=5 nativeComplete=1
13:03:46.636 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
13:03:46.636 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
13:03:46.636 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:47.169 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:47.169 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:47.169 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:47.169 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:47.702 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:47.702 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:47.702 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:47.702 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:47.702 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:47.702 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:47.702 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:47.702 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:47.702 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:47.702 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:47.702 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:47.702 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:47.702 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:47.703 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=2 conscious=2 nativeComplete=0
13:03:47.703 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=2 conscious=2 nativeComplete=1
13:03:47.703 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:47.703 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:48.235 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
13:03:48.235 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
13:03:48.236 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:48.236 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:48.769 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:48.769 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:48.769 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:48.769 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:48.769 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:48.769 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:48.769 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:48.769 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:48.769 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:48.769 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:48.769 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:48.769 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:48.769 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:48.769 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:48.769 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:48.770 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=3 conscious=3 nativeComplete=0
13:03:49.836 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4419.47,20.3568,3254.74> up=0.995975
13:03:49.836 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
13:03:49.836 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=5488.67
13:03:49.836 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4419.41,20.8013,3256.97>
13:03:49.836 SCRIPT : ERR GEAR TERRAIN: bottom=<4419.41,20.5013,3256.97> terrainY=20.4997 tireTerrainGap=0.00163078
13:03:49.836 SCRIPT : ERR GEAR SUPPORT: center=<4419.41,20.8013,3256.97> radius=0.3 bottom=<4419.41,20.5013,3256.97> fraction=0.461952 normal=<-0.0149979,0.999859,-0.00749895> self=0 dynamic=0 supported=1 gap=0.00162888
13:03:49.836 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4417.23,20.8942,3252.6>
13:03:49.836 SCRIPT : ERR GEAR TERRAIN: bottom=<4417.23,20.4442,3252.6> terrainY=20.4471 tireTerrainGap=-0.0029335
13:03:49.836 SCRIPT : ERR GEAR SUPPORT: center=<4417.23,20.8942,3252.6> radius=0.45 bottom=<4417.23,20.4442,3252.6> fraction=0.441179 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00294113
13:03:49.836 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4421.78,20.9517,3252.7>
13:03:49.836 SCRIPT : ERR GEAR TERRAIN: bottom=<4421.78,20.5017,3252.7> terrainY=20.5045 tireTerrainGap=-0.00283241
13:03:49.836 SCRIPT : ERR GEAR SUPPORT: center=<4421.78,20.9517,3252.7> radius=0.45 bottom=<4421.78,20.5017,3252.7> fraction=0.441647 normal=<-0.0124989,0.999909,-0.00499955> self=0 dynamic=0 supported=1 gap=-0.00283813
13:03:49.836 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
13:03:49.837 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=4 conscious=4 nativeComplete=1
13:03:49.837 SCRIPT : Reintroduced [sites]: transport parking=<6965.81,110.069,4052.23> radius=4 terrainRange=0.216827 obstructed=0 clear=1
13:03:49.858 SCRIPT : Reintroduced [sites]: 16 sites and 240 physical stock items ready
13:03:49.859 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=1 position=<5369.72,173.601,7440.98> heading=180
13:03:49.859 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=2 position=<10204.4,441.465,9924.04> heading=45
13:03:49.860 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=3 position=<3065.05,224.229,8975.56> heading=225
13:03:49.862 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=4 position=<5774.39,275.466,9743.11> heading=90
13:03:49.863 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=5 position=<9142.22,464.208,8947.53> heading=90
13:03:49.864 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=6 position=<11575.8,216.249,11781.2> heading=225
13:03:50.103 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=7 position=<2367.32,102.006,4748.45> heading=90
13:03:50.105 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=8 position=<10561.1,173.81,11217> heading=0
13:03:50.105 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=9 position=<9845.04,161.55,3078.81> heading=315
13:03:50.106 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=10 position=<2084.46,96.7362,7306.43> heading=90
13:04:01.569 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-1 faction=USSR group=<0x0000000042B1C1F0> SCR_AIGroup position=<5369.72,173.641,7440.98> living=1
13:04:01.569 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5369.72,173.601,7440.98> backpack magazines=40
13:04:02.102 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-2 faction=USSR group=<0x00000000447E8C60> SCR_AIGroup position=<10204.4,441.469,9924.04> living=1
13:04:02.102 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10204.4,441.465,9924.04> backpack magazines=40
13:04:02.102 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-3 faction=USSR group=<0x00000000447FFE30> SCR_AIGroup position=<3065.05,224.166,8975.56> living=1
13:04:02.102 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<3065.05,224.229,8975.56> backpack magazines=40
13:04:02.636 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-4 faction=USSR group=<0x0000000044B42360> SCR_AIGroup position=<5774.39,275.442,9743.11> living=1
13:04:02.636 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5774.39,275.466,9743.11> backpack magazines=40
13:04:02.636 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-5 faction=USSR group=<0x00000000443A86D0> SCR_AIGroup position=<9142.22,464.108,8947.53> living=1
13:04:02.636 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9142.22,464.208,8947.53> backpack magazines=40
13:04:03.170 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-6 faction=USSR group=<0x00000000443B1020> SCR_AIGroup position=<11575.8,216.271,11781.2> living=1
13:04:03.170 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<11575.8,216.249,11781.2> backpack magazines=40
13:04:03.170 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-7 faction=USSR group=<0x0000000044C54190> SCR_AIGroup position=<2367.32,101.994,4748.45> living=1
13:04:03.170 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<2367.32,102.006,4748.45> backpack magazines=40
13:04:03.702 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-8 faction=USSR group=<0x0000000044E2B560> SCR_AIGroup position=<10561.1,173.75,11217> living=1
13:04:03.702 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10561.1,173.81,11217> backpack magazines=40
13:04:03.702 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-9 faction=USSR group=<0x0000000044E44A20> SCR_AIGroup position=<9845.04,161.45,3078.81> living=1
13:04:03.702 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9845.04,161.55,3078.81> backpack magazines=40
13:04:04.236 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-10 faction=USSR group=<0x000000004501A560> SCR_AIGroup position=<2084.46,96.6362,7306.43> living=1
13:04:04.236 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<2084.46,96.7362,7306.43> backpack magazines=40
13:04:04.236 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-1 location=<1765.87,20.5271,4039.29> authored=<1765.87,20.3616,4039.29>
13:04:04.240 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-2 location=<10136.7,112.283,5336.34> authored=<10136.7,111.906,5336.34>
13:04:04.242 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-3 location=<4773.33,25.3585,5842.85> authored=<4773.33,25.0964,5842.85>
13:04:04.245 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-4 location=<6636.96,115.069,6140.64> authored=<6636.96,114.989,6140.64>
13:04:04.249 SCRIPT : Reintroduced [environment]: date=authored weather=authored
13:04:04.249 SCRIPT : Reintroduced [time]: started at 14:00 with 1x progression
13:04:04.249 SCRIPT : Reintroduced [mission]: phase 0 -> 1
13:04:04.249 SCRIPT : Reintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<1760.28,20.6076,4983.57>
13:04:04.249 SCRIPT : Reintroduced [prison]: gate candidate raw= resolved={67F17696FF278AE0}Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et lock=1 door=1 position=<1757.89,20.6076,4978.09>
13:04:04.249 SCRIPT : Reintroduced [prison]: one intact successor lock in owned prison
13:04:04.249 SCRIPT : Reintroduced [mission]: phase 1 -> 2
13:04:04.251 SCRIPT : ERR HUNT FIXTURE: opening exhausted with no three-way layout
13:04:05.305 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-1 faction=USSR group=<0x000000004552E9B0> SCR_AIGroup position=<3091.73,135.216,8365.91> living=3
13:04:06.236 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-prison-1 faction=USSR group=<0x000000003D2694D0> SCR_AIGroup position=<1793.72,21.194,4973.24> living=3
13:04:06.236 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-supply-1 faction=FIA group=<0x000000003D2626C0> SCR_AIGroup position=<6951.81,109.969,4052.92> living=5
13:04:06.237 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-radio-1 faction=USSR group=<0x000000003D4C5E20> SCR_AIGroup position=<3566.67,134.423,8844.72> living=6
13:04:06.238 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-extraction-1 faction=USSR group=<0x000000003D45F6C0> SCR_AIGroup position=<4399.78,20.4741,3277.41> living=6
13:04:06.238 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1 faction=USSR group=<0x000000003D99A680> SCR_AIGroup position=<9849.11,107.721,4790.76> living=4
13:04:06.238 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-1-responders faction=USSR group=<0x000000003D9A9AD0> SCR_AIGroup position=<9831.7,107.927,4774.24> living=2
13:04:06.239 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1 faction=USSR group=<0x000000003DB379F0> SCR_AIGroup position=<1433.09,19.4923,6336.68> living=4
13:04:06.239 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-outpost-1-responders faction=USSR group=<0x000000003DB33D80> SCR_AIGroup position=<1441.98,19.8874,6358.97> living=2
13:04:06.240 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2 faction=USSR group=<0x000000003DB6EFA0> SCR_AIGroup position=<4714.4,21.9973,4906.42> living=4
13:04:06.240 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-2-responders faction=USSR group=<0x000000003DB85A20> SCR_AIGroup position=<4715.19,21.9288,4930.41> living=2
13:04:06.241 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3 faction=USSR group=<0x000000003DCBB7A0> SCR_AIGroup position=<5359.99,22.678,5738.43> living=4
13:04:06.241 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-medical-3-responders faction=USSR group=<0x000000003DCC46F0> SCR_AIGroup position=<5383.96,23.3283,5739.57> living=2
13:04:06.241 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2 faction=USSR group=<0x000000003D950300> SCR_AIGroup position=<3163.09,30.7941,4623.2> living=4
13:04:06.242 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-2-responders faction=USSR group=<0x000000003DD06770> SCR_AIGroup position=<3140.94,30.9412,4613.97> living=2
13:04:06.242 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3 faction=USSR group=<0x000000003DD3B250> SCR_AIGroup position=<4128.16,29.6083,4345.34> living=4
13:04:06.242 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-3-responders faction=USSR group=<0x000000003DD52A60> SCR_AIGroup position=<4105.17,29.2327,4352.24> living=2
13:04:06.243 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4 faction=USSR group=<0x000000003DD78780> SCR_AIGroup position=<1178.62,12.1185,9543.34> living=4
13:04:06.243 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-4-responders faction=USSR group=<0x000000003DD90170> SCR_AIGroup position=<1181.3,12.1889,9519.49> living=2
13:04:06.243 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5 faction=USSR group=<0x000000003DDB5F50> SCR_AIGroup position=<7440,8.49152,1067.74> living=4
13:04:06.244 SCRIPT : Reintroduced [SPAWN GROUP]: source=everon-camp-5-responders faction=USSR group=<0x000000003DDCD7D0> SCR_AIGroup position=<7431.6,8.10981,1043.76> living=2
13:04:06.298 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-2 faction=USSR group=<0x00000000466DE4A0> SCR_AIGroup position=<4259.67,31.2113,4392.38> living=3
13:04:07.311 SCRIPT : Reintroduced [SPAWN GROUP]: source=aggression-uaz-3 faction=USSR group=<0x0000000046FD65E0> SCR_AIGroup position=<4217.73,30.9216,4233.79> living=3
13:04:07.313 SCRIPT : ERR HUNT PASS: three independent fallback UAZs physically spawned, crewed, registered and radio-equipped on Nogova
13:04:14.312 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-1 faction=USSR group=<0x00000000454B3450> SCR_AIGroup position=<1765.87,20.4431,4043.29> living=4
13:04:14.312 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-2 faction=USSR group=<0x00000000430BFE30> SCR_AIGroup position=<10136.7,112.17,5340.34> living=4
13:04:14.313 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-3 faction=USSR group=<0x00000000454EDCB0> SCR_AIGroup position=<4773.33,25.3813,5846.85> living=4
13:04:14.314 SCRIPT : Reintroduced [SPAWN GROUP]: source=formation-4 faction=USSR group=<0x000000004550AC70> SCR_AIGroup position=<6636.96,114.985,6144.64> living=4
13:04:40.636 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-0 faction=USSR group=<0x0000000047CBCB30> SCR_AIGroup position=<4225.71,32.5224,4272.17> living=2
13:04:40.637 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-1 faction=USSR group=<0x0000000047F2D5A0> SCR_AIGroup position=<4234.22,32.6368,4306.07> living=1
13:04:40.637 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-2 faction=USSR group=<0x00000000484546A0> SCR_AIGroup position=<4241.28,32.0985,4340.33> living=1
13:04:40.638 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-3 faction=USSR group=<0x0000000048918320> SCR_AIGroup position=<4252.76,31.737,4373.39> living=2
13:04:40.639 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-4 faction=USSR group=<0x0000000048E744A0> SCR_AIGroup position=<4265.18,31.4947,4406.11> living=3
13:04:40.639 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-5 faction=USSR group=<0x00000000497A5A30> SCR_AIGroup position=<4281.13,32.3148,4437.22> living=2
13:04:40.640 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-6 faction=USSR group=<0x0000000048531B20> SCR_AIGroup position=<4241.28,32.0985,4340.33> living=7
13:04:40.641 SCRIPT : Reintroduced [SPAWN GROUP]: source=supply-convoy-1-vehicle-7 faction=USSR group=<0x00000000489CD850> SCR_AIGroup position=<4241.28,32.0985,4340.33> living=7
13:04:40.656 SCRIPT : ERR HUNT FIXTURE: one synthetic convoy contact; no claim of organic perception
13:04:52.273 SCRIPT : ERR HUNT PASS: fallback patrol drives natively; hunter=0 distance=25.2756 waypoint=<9656.22,109.08,4676.16>
13:04:56.672 SCRIPT : ERR HUNT PASS: both real convoy infantry teams dismounted with native flank/search orders
13:04:56.672 SCRIPT : ERR HUNT COMPLETE
@@ -0,0 +1,77 @@
// Private fixture forces the observed opening-plan failure; production owns all
// fallback placement, real vehicle/crew spawning, registration and routing.
modded class ERR_HunterOpeningPlan
{
override void Step(array<IEntity> players)
{
if (m_Done) return;
m_Scanned = 64; m_Done = true;
Print("ERR HUNT FIXTURE: opening exhausted with no three-way layout");
}
}
modded class ERR_HunterService
{
protected ref array<vector> m_ERRStarts = {};
bool ERR_CheckPhysicalHunters()
{
if (m_Hunters.Count() != 3) return false;
int ready; bool moved;
foreach (ERR_HunterVehicle unit : m_Hunters)
{
if (!unit.Registered || unit.Released || !unit.CrewValid(m_Mode) || VehicleRadioCapability(unit.Driver) != 2) return false;
ready++;
}
if (m_ERRStarts.IsEmpty())
{
foreach (ERR_HunterVehicle first : m_Hunters) m_ERRStarts.Insert(first.Entity.GetOrigin());
Print("ERR HUNT PASS: three independent fallback UAZs physically spawned, crewed, registered and radio-equipped on Nogova");
}
for (int i=0; i<m_Hunters.Count(); i++)
{
ERR_HunterVehicle hunter=m_Hunters[i];
float distance=vector.DistanceXZ(m_ERRStarts[i],hunter.Entity.GetOrigin());
if(distance>25 && hunter.Waypoint)
{
PrintFormat("ERR HUNT PASS: fallback patrol drives natively; hunter=%1 distance=%2 waypoint=%3",i,distance,hunter.Waypoint.GetOrigin());
return true;
}
}
return false;
}
}
modded class ArmaReforgerScripted
{
protected float m_ERRHuntStart=-1, m_ERRHuntNext;
protected bool m_ERRHuntDone, m_ERRHunterPassed, m_ERRFlankPassed, m_ERRContact;
protected ERR_SupplyConvoyTask m_ERRConvoy;
override void OnUpdate(BaseWorld world,float timeslice)
{
super.OnUpdate(world,timeslice);
ERR_GameMode mode=ERR_GameMode.Get();
if(m_ERRHuntDone || !world || !Replication.IsServer() || !mode || !mode.Active())return;
float now=world.GetWorldTime();
if(m_ERRHuntStart<0) {m_ERRHuntStart=now;mode.Transition(ERR_Phase.RADIO_SEARCH);}
if(now<m_ERRHuntNext)return;m_ERRHuntNext=now+1000;
ERR_HQ hq=ERR_HQ.Get();if(!hq || !hq.Hunters())return;
// Playerless fixture: normal mission deliberately skips tactical Tick without players.
hq.Tick(now);
if(!m_ERRHunterPassed && hq.Hunters().ERR_CheckPhysicalHunters()) m_ERRHunterPassed=true;
if(!m_ERRConvoy && hq.Convoys().Count()>0) m_ERRConvoy=ERR_SupplyConvoyTask.Cast(hq.Convoys().At(0));
if(m_ERRConvoy && m_ERRConvoy.Tactics && !m_ERRContact)
{
m_ERRContact=true;
vector contact=m_ERRConvoy.Vehicles[2].Entity.GetOrigin()+"0 0 200";
m_ERRConvoy.Tactics.Report(contact,now,now);
Print("ERR HUNT FIXTURE: one synthetic convoy contact; no claim of organic perception");
}
if(m_ERRContact && !m_ERRFlankPassed)
{
bool ready=true;
foreach(ERR_SupplyTeam team:m_ERRConvoy.Teams)
if(!team.SearchPlanned || !team.Aboard(m_ERRConvoy.Vehicles[2].Entity,false) || team.Released)ready=false;
if(ready){m_ERRFlankPassed=true;Print("ERR HUNT PASS: both real convoy infantry teams dismounted with native flank/search orders");}
}
if(m_ERRHunterPassed && m_ERRFlankPassed){m_ERRHuntDone=true;Print("ERR HUNT COMPLETE");}
if(now-m_ERRHuntStart>210000) {m_ERRHuntDone=true;Print("ERR HUNT FAIL: fixture deadline",LogLevel.ERROR);Print("ERR HUNT COMPLETE");}
}
}
@@ -0,0 +1,35 @@
#33 t=60.9s M0 HUNTER TEAM crew=3 including one medic; soldier={2DB452B3EC386B92}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et medic={8CA70597606992EC}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et [session=1791111783-1]
#34 t=60.9s M0 HUNTER CREW aggression-uaz-1: original driver ordered to walk to the vehicle and board [session=1791111783-1]
#35 t=60.9s M0 HUNTER SPAWN aggression-uaz-1 identified bodies=0 aggression=0/30 allowance=3/15 base=everon-radio-1 position=<3091.73,135.216,8365.91> crew=3 [session=1791111783-1]
#39 t=62s M0 HUNTER TEAM crew=3 including one medic; soldier={2DB452B3EC386B92}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et medic={8CA70597606992EC}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et [session=1791111783-1]
#40 t=62s M0 HUNTER CREW aggression-uaz-2: original driver ordered to walk to the vehicle and board [session=1791111783-1]
#41 t=62s M0 HUNTER SPAWN aggression-uaz-2 identified bodies=0 aggression=0/30 allowance=3/15 base=everon-camp-3 position=<4259.67,31.2113,4392.38> crew=3 [session=1791111783-1]
#42 t=62s M0 HUNTER CREW aggression-uaz-1: driver seated and conscious; patrol can continue [session=1791111783-1]
#48 t=62s M0 HUNTER READY aggression-uaz-1 full response crew and medic seated; physical vehicle HQ radio stocked; fire at will; radio registration active [session=1791111783-1]
#139 t=63s M0 HUNTER TEAM crew=3 including one medic; soldier={2DB452B3EC386B92}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF.et medic={8CA70597606992EC}Prefabs/Characters/Factions/OPFOR/USSR_Army/Spetsnaz/Character_USSR_SF_Medic.et [session=1791111783-1]
#140 t=63s M0 HUNTER CREW aggression-uaz-3: original driver ordered to walk to the vehicle and board [session=1791111783-1]
#141 t=63s M0 HUNTER SPAWN aggression-uaz-3 identified bodies=0 aggression=0/30 allowance=3/15 base=everon-camp-3 position=<4217.73,30.9216,4233.79> crew=3 [session=1791111783-1]
#142 t=63s M0 HUNTER MOVEMENT aggression-uaz-1 position=<3091.78,135.158,8365.95> speed=0.00881536m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
#143 t=63s M0 HUNTER CREW aggression-uaz-2: driver seated and conscious; patrol can continue [session=1791111783-1]
#149 t=63s M0 HUNTER READY aggression-uaz-2 full response crew and medic seated; physical vehicle HQ radio stocked; fire at will; radio registration active [session=1791111783-1]
#152 t=64s M0 HUNTER MOVEMENT aggression-uaz-2 position=<4259.67,31.139,4392.39> speed=0.00566812m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
#153 t=64s M0 HUNTER CREW aggression-uaz-3: driver seated and conscious; patrol can continue [session=1791111783-1]
#159 t=64s M0 HUNTER READY aggression-uaz-3 full response crew and medic seated; physical vehicle HQ radio stocked; fire at will; radio registration active [session=1791111783-1]
#160 t=65s M0 HUNTER MOVEMENT aggression-uaz-3 position=<4217.76,30.8551,4233.79> speed=0.00749984m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
#583 t=93.5s M0 HUNTER MOVEMENT aggression-uaz-1 position=<3091.78,135.158,8365.95> speed=0m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
[13:04:36] HQ order queued; units have not received it yet. HUNTER from report M0; aggression-uaz-1 road patrol between friendly objectives destination=<9656.22, 109.08, 4676.16> (event 584, message 54)
#584 t=93.5s M54 ORDER QUEUED HUNTER from report M0; aggression-uaz-1 road patrol between friendly objectives destination=<9656.22, 109.08, 4676.16> [session=1791111783-1]
#586 t=94.5s M0 HUNTER MOVEMENT aggression-uaz-2 position=<4259.67,31.139,4392.39> speed=0m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
[13:04:37] HQ order queued; units have not received it yet. HUNTER from report M0; aggression-uaz-2 road patrol between friendly objectives destination=<4705.58, 21.9583, 4995.51> (event 587, message 55)
#587 t=94.5s M55 ORDER QUEUED HUNTER from report M0; aggression-uaz-2 road patrol between friendly objectives destination=<4705.58, 21.9583, 4995.51> [session=1791111783-1]
#590 t=95.5s M0 HUNTER ORDER aggression-uaz-1 radio delivered; destination=<9656.22, 109.08, 4676.16> [session=1791111783-1]
#591 t=95.5s M0 HUNTER MOVEMENT aggression-uaz-3 position=<4217.76,30.8551,4233.79> speed=0m/s delivered destination=<0,0,0> travelling=0 combat=0 no progress=0s replans=0 [session=1791111783-1]
[13:04:38] HQ order queued; units have not received it yet. HUNTER from report M0; aggression-uaz-3 road patrol between friendly objectives destination=<4705.58, 21.9583, 4995.51> (event 592, message 56)
#592 t=95.5s M56 ORDER QUEUED HUNTER from report M0; aggression-uaz-3 road patrol between friendly objectives destination=<4705.58, 21.9583, 4995.51> [session=1791111783-1]
#603 t=96.6s M0 HUNTER ORDER aggression-uaz-2 radio delivered; destination=<4705.58, 21.9583, 4995.51> [session=1791111783-1]
#650 t=97.1s M0 CONVOY HUNT supply-convoy-1 team 1: search step 1/3 at <4176.02,45.5398,4515.11> from last observed contact; formation suspended [session=1791111783-1]
#651 t=97.1s M0 CONVOY HUNT supply-convoy-1 team 2: search step 1/3 at <4306.62,33.725,4565.54> from last observed contact; formation suspended [session=1791111783-1]
#652 t=97.1s M0 CONVOY COMBAT supply-convoy-1: infantry flank left/right; escorts cover; troop truck holds for dismount [session=1791111783-1]
#654 t=97.6s M0 HUNTER ORDER aggression-uaz-3 radio delivered; destination=<4705.58, 21.9583, 4995.51> [session=1791111783-1]
#683 t=107.3s M0 CONVOY HUNT supply-convoy-1 team 1: search step 1/3 at <4176.02,45.5398,4515.11> from last observed contact; formation suspended [session=1791111783-1]
#684 t=107.3s M0 CONVOY HUNT supply-convoy-1 team 2: search step 1/3 at <4306.62,33.725,4565.54> from last observed contact; formation suspended [session=1791111783-1]
@@ -0,0 +1,37 @@
from pathlib import Path
import os,sys,json,shutil,subprocess,time,signal
ROOT=Path('/home/jakub/devel/escapistsrereintroduced');sys.path.insert(0,str(ROOT/'tools'))
from external_addons import policy,prepare_profile
from source_manifest import addon_manifest
from dedicated_native import PROBE
base=Path('/tmp/erri-hunt-native');base.mkdir(exist_ok=True)
run=base/sys.argv[1];run.mkdir();source=run/'source';source.mkdir()
for rel in addon_manifest(ROOT):
dest=source/Path(rel).relative_to('addons/core');dest.parent.mkdir(parents=True,exist_ok=True);shutil.copy2(ROOT/rel,dest)
shutil.copy2('/tmp/erri-takeover-pair-source32/resourceDatabase.rdb',source/'resourceDatabase.rdb')
shutil.copy2('/tmp/erri-hunt-probe.c',source/'Scripts/Game/ERR/00_Core/ERR_ZProfileProbe.c')
addons=run/'addons';addons.mkdir();steam=Path.home()/'.local/share/Steam'
prepare_profile(addons,steam/'steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons',policy(ROOT),run/'external-cache.json');(addons/'ERR_Core').symlink_to(source,target_is_directory=True)
(addons/'Nogova').symlink_to('/home/jakub/devel/gabreta/addons/NogovaReforger',target_is_directory=True)
profile=run/'profile/profile';profile.mkdir(parents=True)
(run/'network.py').write_text(PROBE)
runtime=Path('/tmp/erri-takeover-dedicated-runtime')
engine=['/tmp/runtime/ArmaReforgerServer','-server','{469880DFE1B48F95}Missions/Nogova_TerrainTest.conf','-addonsDir',str(addons),'-addons','2528466DE220D91C,70C981A53E02B64F','-profile',str(run/'profile'),'-noBackend','-noSound','-bindIP','127.0.0.1','-bindPort','2001','-maxFPS','30','-logconsole','-noSplash','-noThrow','-disableCrashReporter']
cmd=['bwrap','--unshare-net','--unshare-pid','--unshare-ipc','--unshare-uts','--die-with-parent','--cap-drop','ALL','--ro-bind','/','/','--tmpfs','/tmp','--ro-bind',str(runtime),'/tmp/runtime','--bind',str(run),str(run),'--proc','/proc','--dev','/dev','--chdir','/tmp/runtime','python',str(run/'network.py'),os.readlink('/proc/self/ns/net')]+engine
with (run/'stdout.log').open('w') as log:
p=subprocess.Popen(cmd,stdout=log,stderr=subprocess.STDOUT,start_new_session=True)
reason='timeout';start=time.monotonic()
try:
while time.monotonic()-start<340:
files=sorted((run/'profile/logs').glob('logs_*/console.log'));text=files[-1].read_text(errors='replace') if files else ''
if 'ERR HUNT COMPLETE' in text:reason='complete';break
if "Can't compile" in text:reason='compile-failed';break
if p.poll() is not None:reason='exit';break
time.sleep(.3)
finally:
if p.poll() is None:
os.killpg(p.pid,signal.SIGTERM)
try:p.wait(timeout=8)
except subprocess.TimeoutExpired:os.killpg(p.pid,signal.SIGKILL);p.wait()
(run/'result.json').write_text(json.dumps({'reason':reason,'exit':p.returncode}));print(reason)
print('\n'.join(line for line in text.splitlines() if 'ERR HUNT' in line or 'SCRIPT (E)' in line))
@@ -0,0 +1,57 @@
{
"date": "2026-10-04",
"scope": "Terrain-independent hunter deployment and bounded convoy infantry search",
"live_observations": {
"terrain": "Nogova",
"successful_session": "logs_2026-10-04_10-14-52 first round: three HUNTER SPAWN/READY events",
"failed_sessions": [
"logs_2026-10-03_21-45-05 two rounds",
"logs_2026-10-04_10-14-52 second round"
],
"failure": "Exhausted three-way opening scan left Ready false, permanently preventing initial deployment"
},
"changes": [
"Allow exhausted or occupied opening plans to use checked objective roads, retaining player/center clearance and finite allowance",
"Three-minute quiet search with two arrival-gated opposing sweeps, at most once per 45 seconds",
"Create replacement flank waypoints before clearing existing orders; ignore replayed contact timestamps"
],
"tests": {
"native": {
"result": "passed",
"run": "/tmp/erri-hunt-native/run2",
"terrain": "Nogova",
"fixture": "Forced exhausted opening with zero reserved positions; manually ticks HQ because the isolated server has no players; injects one synthetic convoy contact",
"assertions": [
"13:04:07.313 SCRIPT : ERR HUNT PASS: three independent fallback UAZs physically spawned, crewed, registered and radio-equipped on Nogova",
"13:04:52.273 SCRIPT : ERR HUNT PASS: fallback patrol drives natively; hunter=0 distance=25.2756 waypoint=<9656.22,109.08,4676.16>",
"13:04:56.672 SCRIPT : ERR HUNT PASS: both real convoy infantry teams dismounted with native flank/search orders"
],
"script_errors": 0,
"limitations": "Shows real fallback spawn, radio registration, native patrol movement and convoy dismount/orders; additional search sweeps and quiet expiry are covered by policy tests, not this short native run. Other resource/terrain warnings remain.",
"cleanup": {
"reason": "complete",
"exit": -15
}
},
"suite": {
"result": "passed",
"registered_programs": 314
},
"negative_control": "Original StartHunter compiles and fails on the exhausted-opening fallback assertion",
"initial_native_attempt": "run1 compiled but timed out because the private playerless fixture did not tick tactical HQ; corrected only in the fixture for run2"
},
"limitations": [
"No live server mutation or Workshop publishing",
"No claim of qualification on every terrain or organic player combat"
],
"source_sha256": {
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "5c54caa2412e9b4e453bd9290d2198a22955b2abe316ba938ae2004db088c28e",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "4737ed0a34bccf6a2807ce9faab842e591f61d3e288932b474b75cfd6db9afe3",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "bcf6dfda46bc1488a5a0ac1165af3ff750b0fd5568d09d4fc7a0aa591d0ee801"
},
"authored_scope": [
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c"
]
}
@@ -0,0 +1,760 @@
PASS: exhausted/blocked terrain opening falls back to checked objective roads; bounds, player clearance, separation, force cap and retry delay retained
PASS: opposing native flank orders are transactional; arrived teams sweep twice, travelling/boarding teams retain orders, failed redirects retry and replayed contacts are ignored
PASS: expired-report approach, arrival-only search, completion, newer/older/replayed reports, visual priority, interrupted search and bounded travel
PASS: nearest reported idle team, blocked teams, guards, active/pending orders, combat, radio routes, stale status and distance limit
PASS: six editor listeners transferred idempotently, unrelated handlers retained, authority guard and lifecycle ordering
PASS: shared config transaction rejects client writes, preserves first-save/prior/fallback state across open, write, backup, partial-copy, readback and mismatch failures
PASS: actual Save/Commit preserves semantically valid backup across unrelated menu edits and repairs; unknown fields/default sections retained; actual terrain parser; other parsers, catalog and disk doubled
....
----------------------------------------------------------------------
Ran 4 tests in 0.001s
OK
PASS: actual objective overlay lifecycle preserves separate ownership, late readiness/reopen, data refresh, pan/zoom/culling, supported sibling/shared-frame parents, coordinate offsets, native task-clear isolation and terminal cleanup; native rendering remains unverified
PASS: actual map element initializes each widget, retries missing widgets, updates position and changes only stale text/icon data; no native image-load claim
PASS: actual native fixture root/config ownership and idempotent cleanup preserve foreign map, selector excludes ordinary route, fixed budgets/screenshots/UGC boundaries retained; native operations not executed
PASS: actual full Inspect rejects canvas parenting, wrong active container/canvas, omitted origin offset, wrong rendered box and stale coordinates; differing origins and DPI accepted
PASS: actual long-warning phases retain visible label through1500ms checkpoint then restore radio before close; synthetic marker separated from unmoved player
PASS: actual Center places marker100screenpx left of pan center at both fixture zooms without altering disclosed coordinates
PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected
PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup
PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering
PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it
PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup
PASS: actual protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim
PASS: actual full planner selection/commit body, 360 equivalence scenarios, orders/reservations/cooldowns identical; one128-unit scan vs >10000 repeated unit visits; no FPS claim
PASS: actual observer monitor/recovery/cleanup rejects retained old controller, preserves new camera/editor/hints/timer, restarts once and retains normal recovery; native effects modeled from SDK, no runtime claim
PASS: former chat controller releases only its own callbacks and preserves replacement menu; current-owner stop/scope and repeated teardown remain intact
PASS: wrong observer fixture selector rejected before runtime/profile setup; no engine launched
PASS: actual depot mixed-roster worker/item selection, ownership/refusal and radio/planning/two-leg state transitions, fixed deadline, late proof quarantine, finite import and no adoption after Stop
PASS: actual depot HQ lifecycle, existing planner priority, server/mode/owner gates, idempotent polling and owner replacement
PASS: actual HQ mine/magazine claim separation, real demand methods, exact token cleanup and original authority gates; native availability doubled
PASS: actual full magazine/inert-PMN4 depot leaf, exact custody, isolated callbacks, finite reservation, false/unknown and Stop quarantine, once-only delivery and caps; native movement unqualified
PASS: actual mine/magazine provenance and separated finite mine imports; actual authored identity capture, READY-only detached provenance, same shared stock admission, completed exact two-leg proof, lifetime caps and Stop no late adoption
PASS: actual crash geometry, detached definition setup, frozen server choice and guarded phase policy; integration/source ordering checked
PASS: actual GameMode readiness admission and common full-footprint survey require crash authorization and both surveyed areas
PASS: actual start defaults/parse/save, failure retention and authorized command wiring; current/next feedback, aliases and no random choice; native UI and core mode freezing are separate
PASS: actual immutable measured footprint/root/attachment matching, bounds/transforms, moving geometry, seated-body and cargo reciprocity, finite hierarchy caps; native geometry doubled
PASS: actual BMP singleton geometry and typed current order; one survey, full straight segment, width, known history, reservations, settlement/clearance and work caps; placement/footprint tested separately
PASS: actual five random-radius diagnostic wrappers, disabled transparency, cached opt-in, exact zero and exclusion branch, native arguments/returns/outarg preservation, single superclass call and shared16-log cap
PASS: zero-radius trace disabled by default, scoped before setup, exact opt-in emission; no native launch
PASS: complete actual supply-travel probe, immutable 6+2 formations and 25 actors, admission/travel deadlines, six observed native-boundary moves, stop/ownership/partial-substitution refusals
PASS: actual distinct supply-travel hook, fixed420s selector, original observer protection/restoration, failure/terminal cleanup and no legacy convoy setup
PASS: actual supply-travel selector requires Chat, one round and480s; existing outcomes unaffected; no native launch
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
[--external-addons EXTERNAL_ADDONS]
--compat COMPAT --profile PROFILE
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
[--trace-random-radius]
[--maintenance-refuel]
[--mounted-swap-eligibility]
[--mounted-bmp] [--mine-stock]
[--mounted-courier]
[--mounted-intercept] [--convoy-cover]
[--field-terrain-audit]
[--field-service-cancel]
[--route-service-cancel]
[--station-teardown-diagnostics]
[--flight-autohover]
[--flight-action-inputs]
[--flight-input-diagnostics]
[--recon-takeover-only]
[--body-recovery-only]
[--rounds ROUNDS] [--timeout TIMEOUT]
[--project {core,chat}]
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
[--external-addons EXTERNAL_ADDONS]
--compat COMPAT --profile PROFILE
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
[--trace-random-radius]
[--maintenance-refuel]
[--mounted-swap-eligibility]
[--mounted-bmp] [--mine-stock]
[--mounted-courier]
[--mounted-intercept] [--convoy-cover]
[--field-terrain-audit]
[--field-service-cancel]
[--route-service-cancel]
[--station-teardown-diagnostics]
[--flight-autohover]
[--flight-action-inputs]
[--flight-input-diagnostics]
[--recon-takeover-only]
[--body-recovery-only]
[--rounds ROUNDS] [--timeout TIMEOUT]
[--project {core,chat}]
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
[--external-addons EXTERNAL_ADDONS]
--compat COMPAT --profile PROFILE
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
[--trace-random-radius]
[--maintenance-refuel]
[--mounted-swap-eligibility]
[--mounted-bmp] [--mine-stock]
[--mounted-courier]
[--mounted-intercept] [--convoy-cover]
[--field-terrain-audit]
[--field-service-cancel]
[--route-service-cancel]
[--station-teardown-diagnostics]
[--flight-autohover]
[--flight-action-inputs]
[--flight-input-diagnostics]
[--recon-takeover-only]
[--body-recovery-only]
[--rounds ROUNDS] [--timeout TIMEOUT]
[--project {core,chat}]
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
[--external-addons EXTERNAL_ADDONS]
--compat COMPAT --profile PROFILE
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
[--trace-random-radius]
[--maintenance-refuel]
[--mounted-swap-eligibility]
[--mounted-bmp] [--mine-stock]
[--mounted-courier]
[--mounted-intercept] [--convoy-cover]
[--field-terrain-audit]
[--field-service-cancel]
[--route-service-cancel]
[--station-teardown-diagnostics]
[--flight-autohover]
[--flight-action-inputs]
[--flight-input-diagnostics]
[--recon-takeover-only]
[--body-recovery-only]
[--rounds ROUNDS] [--timeout TIMEOUT]
[--project {core,chat}]
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
[--external-addons EXTERNAL_ADDONS]
--compat COMPAT --profile PROFILE
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
[--trace-random-radius]
[--maintenance-refuel]
[--mounted-swap-eligibility]
[--mounted-bmp] [--mine-stock]
[--mounted-courier]
[--mounted-intercept] [--convoy-cover]
[--field-terrain-audit]
[--field-service-cancel]
[--route-service-cancel]
[--station-teardown-diagnostics]
[--flight-autohover]
[--flight-action-inputs]
[--flight-input-diagnostics]
[--recon-takeover-only]
[--body-recovery-only]
[--rounds ROUNDS] [--timeout TIMEOUT]
[--project {core,chat}]
test_native_mounted_intercept.py: error: --mounted-intercept and --convoy-cover are mutually exclusive
PASS: actual native interception witness requires real radio cursor/lineage, original actor identities, fixed movement/hold/expiry/resume and immutable deadline; no movement/delivery injection
PASS: actual CLI rejects wrong mode/project/rounds/899s/conflict before runtime; valid flag and terminal branch identify synthetic-observation qualification
PASS: visible base hook and actual fixture override delegate once; delivery proof uses retained pre-super route only on successful production transition
actual mounted HQ dispatch planning, radio, ownership and lifecycle checks passed
PASS: actual mounted intercept eligibility/order chronology, fixed destinations, native road selection bounds, width, segment heading, clearance and settlement delegation; no native driving claim
PASS: actual paired arc geometry,40m/80m spacing, separate original polylines, both-position validation and128road/4096segment budget; no native driving proof
PASS: actual typed original BMP singleton, loss/footprint/custody guards and native cancellation, UAZ-only pair admission, rollback, native allocation/revocation boundaries, per-member ownership, hold and expiry
PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start
PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed
PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked
PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown
PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested
PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel
PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries
PASS: infantry combat gate precedes radio delivery and preserves non-task transports
PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once
PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards
PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols
PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved
PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness
PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention
PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings
PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary
PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons
PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained
PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates
PASS: native-route retry preserves delivered target, limits attempts and suspends during combat
PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend
PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait
PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access
PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation
PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles
PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link
PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it
PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence
PASS: actual player-entry hook latches original hunter capture before native callbacks; both release layers cancel ownership without new entities/refund; bounded current-owner guards and prior-release policy
PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception
PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound
PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay
PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release
PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules
PASS: production cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished
PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves
PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata
PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz
PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension
PASS: actual helicopter delay applies resolved Random values, preserves countdown on save failure, and leaves active flights running
PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills
PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun
PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries
PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance
PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget
PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion
PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions
PASS: real sampling handles absent airports and extraction clearance preserves geometry/navigation/flatness while selecting the correct aircraft survey
PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection
PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height
PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring
PASS: automatic default, explicit header/CLI opt-out, editor/authored-mode guards, optional airport override precedence and fresh-round saving guard
PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring
PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior
PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently
PASS: standalone old faction delegates collected once, with null/deleted owners ignored
PASS: actual terrain takeover startup skips mode-less/menu worlds, always forwards super, retains eligible/unsupported/authored/client/editor semantics
PASS: native name callback preserves authored modes, opt-outs and failures; terrain suffix follows world changes, cached resolution and confirmed takeover metadata restores on cleanup without changing scenario resource or overwriting later titles
PASS: actual terrain parent traversal, Armenhof/Nogova names, Everon alias, missing-resource fallback, empty names and bounded cycles/depth
PASS: saved terrain GUIDs, defaults, restart persistence, clearing, backup recovery, corrupt-file preservation, write failures, and client write denial
PASS: startup terrain capture protects client/editor/menu worlds, default behavior, same-map loads and reload-loop recovery
PASS: actual transition waits for native startup, disconnects without bans, requires an empty session, retains every loaded mod, bounds waiting and consumes requests once
PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools
PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved
PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback
PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history
PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell
PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup
PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work
PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine
PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop
PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts
PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture
PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal
PASS: actual Compatible and bounded stock preflight before report/claim consumption, later compatible truck, launcher controls, convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration
PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines
PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths
PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged
PASS: actual patrol fixture leaves prison before responder HQ proof, followed by separate permanent-patrol observation
PASS: exact patrol-hq finite responder preparation and native search-radius receipt verification
PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest
PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved
PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
PASS: actual designated zero/one original carrier selection, settled startup, shared finite claims, no refund after submission
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
PASS: actual finite PMN4 designated-zero/one entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound
PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup
PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim
PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle
PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status
PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation
PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed
..................
----------------------------------------------------------------------
Ran 18 tests in 0.269s
OK
PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit
PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested
PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation
PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state.
PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending.
PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready.
PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified.
PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification.
PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified.
PASS: actual optional candidate barrier, exact callback/custody proof and unchanged mine/primary snapshots; no native transfer claim
Native finite mine-stock runner: parser, scope, exclusions and command pass
PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector
PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound
PASS: actual BMP capture requires complete armed exact original resource; pinned delivery/slot checks and isolated CLI flag
PASS: actual opt-in pre-unlock isolation refuses wrong mode/phase/flag and existing hunters; no baseline service changes
PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict
PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts
PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation
PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified
PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification
PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified.
PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused
Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed
PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation
PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
HQ convoy delivered-report planning and downlink regressions passed
PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown
PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts
PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation
PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal
PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup
PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification.
PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns
PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get
PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects
PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds
test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok
test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok
test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok
test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok
test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok
test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok
test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok
----------------------------------------------------------------------
Ran 7 tests in 0.066s
OK
PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports
PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses
.................
----------------------------------------------------------------------
Ran 17 tests in 3.726s
OK
PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions
PASS: actual new measured ClearFootprint 25/441 sample grids, measured extents/height, water/invalid world/terrain/trace refusal plus legacy filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset
PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties
PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry
PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment
PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation
PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all12 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact19 bodies without capacity shrinking
PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation
PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement
PASS: actual convoy/team Release retains original active survivors and HQ identity, rejects takeover/terminal/unknown roster, preserves exact logistics quarantine and normal eligibility
PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact19-body composition, source reuse, mode/client guards and no consumed receipt refunds
PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release
PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities
PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal
PASS: actual combat start releases only exact intercept claims before owning route/orders; foreign claim defers combat takeover
PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim
PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity
PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning
PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup
PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze
PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery
PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves
PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death
PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation
PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles
PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles
PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression
PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown
PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology
PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries
PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine
PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs
PASS: actual engineer native group-envelope admission and phase cancellation, preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested
PASS: actual mine selector respects road and settlement flank safety; native boundaries doubled
PASS: actual HQ and post ledger: second delivered post, one query/tick,2 active/32 jobs,4 consumed lifetime attempts, no-stock/query refusal consumption, pending old job and original identity constraints
PASS: actual mine post ledger immutable history, strict chronology/evidence, aliases, >160m separation, detached sites and finite4/32 consumed attempts
PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership
PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup
PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts
PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning
PASS: actual finite45..110 radius and both ordinary search queue snapshot expressions
PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions
..........
----------------------------------------------------------------------
Ran 10 tests in 0.203s
OK
PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks
.....
----------------------------------------------------------------------
Ran 5 tests in 0.417s
OK
PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring
PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded
PASS: actual menu command routing covers all sixteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets
PASS: explicit weapon retention buttons use the same ready/authorized server command path
PASS: item editor, preset controls and dynamic item-row layout are structurally valid
PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations
PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation
PASS: actual summaries preserve queued/delivered meaning, clear counts and IDs; raw records, legacy display, cursor gaps and RPC limits remain intact
PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths
PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode
PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded
PASS: actual reroll snapshot, authority, cancellation, ownership, accepted operations, quarantine, bounded work and stop methods; no native runtime claim
PASS: production Intel feedback coalescing, rough secrecy, rate limit, bounded dedupe, local/remote delivery and round cleanup; native UI/RPC not exercised
PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering
PASS: actual action denial/clearing, server request failure, single submitted-result feedback, current rescuer identity and terminal/stop suppression; native UI/RPC pending
PASS: actual physical denial precedence and transport-seat occupancy/reservation/access/lock checks
PASS: actual initial admission exhaustion and ServerTick grace; new/pending/empty/controller/life guards, normal death preserved
......................
----------------------------------------------------------------------
Ran 22 tests in 0.250s
OK
......................
----------------------------------------------------------------------
Ran 22 tests in 24.308s
OK
..................
----------------------------------------------------------------------
Ran 18 tests in 2.886s
OK
.........
----------------------------------------------------------------------
Ran 9 tests in 2.227s
OK
...............
----------------------------------------------------------------------
Ran 15 tests in 1.043s
OK
PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement
PASS: actual opt-in terrain audit records one fixed1681-point grid, preserves original survey refusal/success and exact no-allocation scope; malformed heights stop without retry; no native data acquired
....
----------------------------------------------------------------------
Ran 4 tests in 0.596s
OK
PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested
PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification
PASS: actual QualifyField preserves original identity/footprint/time, orders complete surveys before issuance, and refuses failed stages/moved body/expired or changed world; native boundaries faked
PASS: WORKBENCH first-refusal diagnostics preserve ordinary predicates, query order/count/budget and opt-in scope; no native logging run
PASS: actual field startup delegation, immutable lease/target, braking/settling/cancel transitions, early abort, callback scope, physical terminal policy and shared landing demand; native boundaries faked
PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture
PASS: actual Core maintenance/default/tick/stop methods; empty/populated authority, terminal reentry, no tactical resume or new scheduler; native boundaries substituted
PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded cross-kind order history and typed field/route construction; native boundaries faked
PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers
.....
----------------------------------------------------------------------
Ran 5 tests in 0.607s
OK
......................
----------------------------------------------------------------------
Ran 22 tests in 0.182s
OK
................
----------------------------------------------------------------------
Ran 16 tests in 10.089s
OK
......
----------------------------------------------------------------------
Ran 6 tests in 0.017s
OK
PASS: actual production bridge lookup, lease/world/mode/seat/capture guards, no allocation, native super ordering and read-only fixture hooks
...............
----------------------------------------------------------------------
Ran 15 tests in 0.051s
OK
.............
----------------------------------------------------------------------
Ran 13 tests in 4.700s
OK
PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry
..............................
----------------------------------------------------------------------
Ran 30 tests in 0.396s
OK
..............
----------------------------------------------------------------------
Ran 14 tests in 0.184s
OK
.........
----------------------------------------------------------------------
Ran 9 tests in 0.101s
OK
PASS: actual gate observer binds native registered action/context and current life, reads accumulated progress, refuses stale bindings and never revives outside original bounds
PASS: actual read-only look observer methods enforce explicit scope, pinned native camera/body/identity, normalized pose, terminal cancellation and original sample/time bounds
...........
----------------------------------------------------------------------
Ran 11 tests in 0.065s
OK
.......................
----------------------------------------------------------------------
Ran 23 tests in 0.032s
OK
PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending
........
----------------------------------------------------------------------
Ran 8 tests in 0.011s
OK
PASS: actual inventory adapter scope, grid placement, sole compatible host, refresh reuse, rollback, foreign hierarchy refusal and exactly-once native delegation; native compatibility pending
.................................................................................
----------------------------------------------------------------------
Ran 81 tests in 0.515s
OK
......
----------------------------------------------------------------------
Ran 6 tests in 0.067s
OK
.................
----------------------------------------------------------------------
Ran 17 tests in 0.005s
OK
...........
----------------------------------------------------------------------
Ran 11 tests in 0.085s
OK
.........
----------------------------------------------------------------------
Ran 9 tests in 0.311s
OK
PASS: actual observer nonce, admission pins, baseline/menu sequencing, snapshots, bounded clocks/samples, cleanup and one-attempt latch; native untested
PASS: actual corridor caps/height/hold and whole-rectangle survey bounds, terrain refusal, native trace refusal and exact certificate lineage; native route unqualified
PASS: actual route entry, fixed corridor/target, hover hold, cancellation landing freeze, shared lease/capture/deadline gate and unchanged native startup/tick sequence
PASS: finite opt-in route fixture, original native input order, meaningful physical-arrival evidence and guarded cleanup; no native launch
PASS: actual Chat route step result dispatch and scoped completion/cleanup wiring; six real early-parser refusal paths leave no prefix/profile output
PASS: actual retained-service fixture entry, immutable controller/token/deadline/count bindings, observer getter and cleanup ownership ordering; native route validation pending
PASS: actual measured cancellation gate, one-shot retained service Stop, no premature drain, immutable lease, fresh real controller readback and separate physical cancellation result policy
PASS: actual rough-intel objective selection, exact precedence, source grid dimensions and unchanged other-phase dispatch; native UI pending
.................................
----------------------------------------------------------------------
Ran 33 tests in 0.130s
OK
...............
----------------------------------------------------------------------
Ran 15 tests in 0.029s
OK
PASS: actual preparation status scope, persistent updates, spinner restoration, placeholder replacement/deletion/destruction, native observation persistence/timeout; rendering remains native-pending
PASS: actual guide ownership and scoped timer cancellation, current-controller preservation/reacquisition, hint retry/dedup and observer boundaries; native UI not exercised
PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards
....
----------------------------------------------------------------------
Ran 4 tests in 1.280s
OK
PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape
...........
----------------------------------------------------------------------
Ran 11 tests in 0.100s
OK
PASS: actual immutable target, bounded autohover demand, drift refusal, five-second hold and unchanged qualification/deadline
PASS: actual admission attempt budget bounds blocked/missing prerequisites; preparation, spent life and async pending remain protected
PASS: delayed admission retry retains controller ownership across same-account recycled connection IDs
PASS: actual scene deadline overrides delayed native preload only for rejection; late completion cannot assign, ordinary verified admission preserved
PASS: actual action permission matrix unchanged; useful phase/intel/consciousness denials, stale reason cleared, native door denial preserved; no native UI claim
.....
----------------------------------------------------------------------
Ran 5 tests in 0.198s
OK
PASS: actual aircraft cancellation/stage rules, ground-only completion, expiry/capture faults, input ownership and no physical shortcuts
PASS: actual exact-instance single-use qualification, native-clock staleness/movement refusal, footprint bounds and ownership-safe ground/fault cleanup
PASS: actual optional screenshot helper flag/identity/world/life revalidation, one queued attempt, delayed capture and mission/world cleanup; no native image/presentation claim
PASS: actual yard diagnostic exact registered prison ownership, eight native-bound corner projections, no root-sibling escape, bounded duplicate/deep/wide hierarchy traversal; native projection/mask still unmeasured
PASS: actual CurrentActor, SpawnPosition and observer-selection methods reject pending/unregistered/replaced/recycled/foreign/dead bodies; canonical selection/cycling, unconscious following and prison/geometry fallback preserved; native boundaries adapted
PASS: actual native-map fixture ownership, cleanup and callback evidence fail closed; native execution remains separate
PASS: actual shared-map callbacks bind exact map/config/root, preserve replacement UI/camera, defer focus, and remove only owned delayed work
PASS: actual Intel/HQ methods and one-shot qualified readiness handoff deliver late actors once; duplicate readiness, accepted spawn, pickup/drop, death and original negative rolls do not mint assignments
PASS: Workbench-only read accessor rejects unknown/nonserver identities; Chat observes all distinct ready crew before existing shell-depletion mutation
PASS: actual native-event latch survives deselection, requires exact activity/order, detaches before cleanup, preserves failure/timeout and never infers completion from physical shot count
.........
----------------------------------------------------------------------
Ran 9 tests in 0.102s
OK
PASS: actual refresh-fixture gates pin immutable observations/actual downlinks/original activity, reject unaccepted or relabelled commits, stop queueing early and require all queued contacts claimed before replay
..........................
----------------------------------------------------------------------
Ran 26 tests in 0.194s
OK
PASS: actual refresh scheduler/delivery/cancellation/projectile methods reject interrupted or replayed reports, retain committed ownership, preserve immutable snapshots/aim geometry and isolate stopped or replaced orders; native radio/crew behavior remains separate
.....................
----------------------------------------------------------------------
Ran 21 tests in 0.032s
OK
...........
----------------------------------------------------------------------
Ran 11 tests in 0.032s
OK
PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events
PASS: actual reason/availability guidance and refresh matrix; no-target copy omits cycling, hint retry retained, existing command/admin paths unchanged; native UI pending
PASS: actual client camera policy closes immediately on healing or mission end; late unconscious metadata cannot keep the view active
PASS: actual input dispatch, one press per edge, menu-held suppression; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round
PASS: first-person pose survives missing samples without drift, follows body motion/rotation, resumes fresh pose and cannot leak between targets
................usage: test_native_package.py [-h] [--project {core}] --session SESSION
--compat COMPAT [--steam STEAM]
[--timeout TIMEOUT]
[--external-addons EXTERNAL_ADDONS]
[--silent-workbench | --exit-after-init]
[--continue-on-failure]
test_native_package.py: error: argument --exit-after-init: not allowed with argument --silent-workbench
................................
----------------------------------------------------------------------
Ran 48 tests in 13.046s
OK
.......
----------------------------------------------------------------------
Ran 7 tests in 0.253s
OK
..............
----------------------------------------------------------------------
Ran 14 tests in 2.421s
OK
....
----------------------------------------------------------------------
Ran 4 tests in 0.346s
OK
....
----------------------------------------------------------------------
Ran 4 tests in 0.055s
OK
PASS: actual finite-courier age, token, exact ownership/callback and delivered-status admission reject stale, replayed, captured, canceled and ambiguous work
PASS: actual native-gun ownership gate rejects player/foreign/replaced/dead occupant, faction change, missing seat and missing registry
PASS: four-battery courier selection preserves pending trip/report/transfer identity, skips unavailable crews, and selects the next depleted battery without new stock
PASS: 64 bounded distinct storage candidates; native gates, five-store barrier and finite-stock ownership retained; native placement pending
PASS: 128 coarse+80 local refinement+169 airport grid candidates retain all native clearance gates; real terrain untested
PASS: actual prison registration/crossing policies reject missing/duplicate/destroyed initial gate, incomplete ownership/scan, outside-only body, jumps and stale samples; physical exit independent of later gate damage
PASS: actual prison door execution blocks direct AI/UI bypass while locked and delegates unchanged native action once after unlock and permission approval
..................
----------------------------------------------------------------------
Ran 18 tests in 1.923s
OK
.....
----------------------------------------------------------------------
Ran 5 tests in 1.136s
OK
PASS: native local-admission snapshot rejects changed life/key/body/participant/pending state; authentication is not simulated
PASS: actual mortar report ledger prevents duplicate response after cancellation, expiry and interleaved reports; native scheduler separate
.........
----------------------------------------------------------------------
Ran 9 tests in 0.012s
OK
....
----------------------------------------------------------------------
Ran 4 tests in 0.147s
OK
PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested
........
----------------------------------------------------------------------
Ran 8 tests in 0.012s
OK
PASS: actual startup/generation/ownership/timeout/callback policies and native-counter wait; integration preserves one-shot allocation and pending-crew cancellation
PASS: rapid mortar cycle counts eight physical rounds once and waits for native completion without a ninth aim or shell
PASS: actual probe binds native events to fresh immutable commits, permits delayed emission, rejects unrelated expiry closure and premature stop
PASS: actual noSplash Load body requires both explicit diagnostic and noSplash, preserves vanilla otherwise, and handles repeated Load/reload
PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths
PASS: actual safe-exit boundary policy, native action/door selection, stop/cache cleanup, separate old mechanism and opt-in runner contracts
PASS: actual one-shot deadline/stability policies and preparation ownership, fuel, cleanup integration contracts
PASS: pending-only cancellation retires copied instance intent, preserves physical/control actors, and stops once
PASS: actual short-cast hit, upward support normal, no self support and no dynamic support
PASS: actual committed-ticket structure preserves reservation after death, rejects missing bodies/seats and ends at observation expiry
PASS: actual pending callback expires an empty-server reservation once, preserves its full lease, and cancels on completion/Stop
PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries
PASS: requested guard population requires complete physical conscious membership before deadline
......................................
----------------------------------------------------------------------
Ran 38 tests in 0.018s
OK
..........
----------------------------------------------------------------------
Ran 10 tests in 0.002s
OK
.....
----------------------------------------------------------------------
Ran 5 tests in 0.937s
OK
PASS: authored radio/optional-site bounds and physical horizontal/vertical boundaries
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
PASS: all phase transitions, terminal states, defence boundaries, stale/future observations, intel discovery
PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries
PASS: player admission phase/life/identity/controller matrix, preload displacement limits, pending reservation overlap and owner exclusion
PASS: actual gate and pre-inventory document guards reject noncanonical/faction/life/disconnect/server mismatches; canonical reconnect and unconscious carried intel preserved
PASS: WB-only native fault injection restores both body mutations before checks/returns and requires eligible held-document negative/positive proof; runtime pending
PASS: actual discovery coordinates disclose stable 500m cell center until identified, then exact point, including negative/boundary coordinates
PASS: actual local admission context/selection/latch, same-round late identity, replacement/mode failure, fresh round and untouched network path
PASS: prison search packs 16 unique 3m-spaced inside-wall centers, prioritizes inner/edge positions and never bypasses clearance
PASS: physical body occupancy rejects overlap, permits diagonal neighboring slots, and excludes own body and unrelated broad-phase bounds
PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams
PASS: actual native-probe lifecycle/counters with doubled boundaries; fixed deadline, exact seven sources, true forwarding, async close, no late updates and selector wiring
PASS: actual one-argument adapter, explicit refresh, native initialization flag, duplicate/blood ownership, rebind/detach/destruction and foreign-mode transparency
PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing
PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap
PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat
PASS: every minute round-trips, malformed clocks rejected, defaults limited to added keys, progression bounds and day duration aligned
PASS: native settings policy matches calendar boundaries 1900-2050, date/profile parsing is strict, authored defaults preserve old worlds
PASS: view-distance bounds, default, save failures, command parsing, temporary ownership, server/platform limits and lifecycle wiring
.....
----------------------------------------------------------------------
Ran 5 tests in 0.573s
OK
.
----------------------------------------------------------------------
Ran 1 test in 0.352s
OK
PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary
PASS: actual radio feedback policy, initial wait, interruption persistence, resumption and terminal/new-round reset
...............
----------------------------------------------------------------------
Ran 15 tests in 2.175s
OK
..............................................
----------------------------------------------------------------------
Ran 46 tests in 0.846s
OK
PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned
PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults
PASS: real-carrier shortest-hop paths, 500m boundary, three-hop cap, no-manpack failure, three-second originating-call interruption, unchanged downlink hop timing, completed-hop survival, interrupted final uplink, radio loss, capture, motion, timeout, reset and network bounds
PASS: migrated aircraft availability policy (controller migration still pending)
PASS: migrated salvo offsets are deterministic, spread and bounded (native firing and complete salvo qualification are separate)
PASS: 37 prefabs have unique saved root entity IDs
PASS: 299 original script entries tracked across 18 unfinished responsibilities
PASS: 1 isolated addons, acyclic dependencies, 60 unique resources, exact vanilla/authorized external references
All repository checks passed. Native compilation and multiplayer tests are separate requirements.
@@ -0,0 +1,2 @@
PASS: opposing native flank orders are transactional; arrived teams sweep twice, travelling/boarding teams retain orders, failed redirects retry and replayed contacts are ignored
PASS: exhausted/blocked terrain opening falls back to checked objective roads; bounds, player clearance, separation, force cap and retry delay retained