Add typed field-flight prototype and preserve native qualification failures

This commit is contained in:
2026-09-19 21:01:20 +02:00
parent 83ea247e62
commit 61e165ef5b
91 changed files with 40570 additions and 85 deletions
@@ -0,0 +1,90 @@
// Experimental single immutable100m field only. No route tiling or fallback.
// Inherits the original exact-instance, single-use, two-second claim contract.
class ERR_AircraftFieldEnvelope : ERR_AircraftFlightEnvelope
{
static const int MAX_TERRAIN_NODES = 4096;
protected vector m_Destination;
vector Destination() { return m_Destination; }
bool Contains(vector position, float upright) { return ERR_AircraftFieldRules.Contains(m_Home, m_Destination, position, upright); }
static bool FinitePoint(vector point)
{
for (int axis = 0; axis < 3; axis++)
if (!(Math.AbsFloat(point[axis]) <= 1000000)) return false;
return true;
}
static int TerrainColumns(float distance)
{
if (!ERR_AircraftFieldRules.Length(distance)) return 0;
return Math.Ceil((distance + 80) / 2);
}
static bool TerrainBudget(int columns, int rows)
{
if (columns < 1 || rows < 1 || columns >= MAX_TERRAIN_NODES || rows >= MAX_TERRAIN_NODES) return false;
return (columns + 1) * (rows + 1) <= MAX_TERRAIN_NODES;
}
static bool Survey(vector start, vector end, array<IEntity> excluded = null)
{
if (!GetGame() || !GetGame().GetWorld() || !FinitePoint(start) || !FinitePoint(end)) return false;
float distance = vector.DistanceXZ(start, end);
int columns = TerrainColumns(distance), rows = 40;
if (!TerrainBudget(columns, rows) || !(start[1] >= 2) || !(Math.AbsFloat(end[1] - start[1]) <= 0.3)) return false;
vector along = end - start; along[1] = 0; along = along * (1 / distance);
vector across = Vector(-along[2], 0, along[0]);
float span = distance + 80;
// Route-aligned grid includes40m beyond both ends and each side, enclosing
// every allowed centre (8m cap) plus the measured complete footprint/margin.
// <=2m along either grid axis, <=4096 total; all nodes must pass before traces.
for (int x = 0; x <= columns; x++)
for (int z = 0; z <= rows; z++)
{
vector sample = start + along * (-40 + span * x / columns) + across * (-40 + 80 * z / rows);
if (!(Math.AbsFloat(SCR_TerrainHelper.GetTerrainY(sample) - start[1]) <= 0.3)) return false;
}
vector lower, upper;
for (int axis = 0; axis < 3; axis++)
{
lower[axis] = Math.Min(start[axis], end[axis]);
upper[axis] = Math.Max(start[axis], end[axis]);
}
vector centre = (lower + upper) * 0.5; centre[1] = start[1];
vector half = (upper - lower) * 0.5;
half[0] = half[0] + 40; half[2] = half[2] + 40;
// AABB encloses the entire finite segment expanded40m, including endpoint
// caps. A failed whole-volume trace never becomes a partly qualified leg.
TraceBox corridor = new TraceBox();
corridor.Start = centre + "0 3 0"; corridor.End = centre + "0 60 0";
corridor.Mins = Vector(-half[0], -1, -half[2]); corridor.Maxs = Vector(half[0], 1, half[2]);
corridor.Flags = TraceFlags.ENTS | TraceFlags.WORLD; corridor.ExcludeArray = excluded;
if (!(GetGame().GetWorld().TraceMove(corridor, null) >= 1)) return false;
TraceBox low = new TraceBox(); low.Start = centre + "0 0.5 0"; low.End = centre + "0 3 0";
low.Mins = Vector(-half[0], -0.2, -half[2]); low.Maxs = Vector(half[0], 0.2, half[2]);
low.Flags = TraceFlags.ENTS; low.ExcludeArray = excluded;
return GetGame().GetWorld().TraceMove(low, null) >= 1;
}
static ERR_AircraftFieldEnvelope QualifyField(ERR_GameMode mode, Vehicle aircraft, IEntity pilot, vector destination)
{
if (!GetGame() || !GetGame().GetWorld() || !FinitePoint(destination)) return null;
BaseWorld world = GetGame().GetWorld();
float began = world.GetWorldTime();
// Reuse complete native model/rotor measurement, exact vanilla airframe,
// original occupied pilot seat and grounded qualification. Never synthesize it.
ERR_AircraftFlightEnvelope point = ERR_AircraftFlightEnvelope.Qualify(mode, aircraft, pilot);
if (!point) return null;
vector start = ERR_Actors.Ground(point.Home());
vector end = ERR_Actors.Ground(destination);
if (!FinitePoint(start) || !FinitePoint(end) || !ERR_AircraftFieldRules.Length(vector.DistanceXZ(start, end)) || !(end[1] >= 2) || !(Math.AbsFloat(end[1] - start[1]) <= 0.3)) return null;
array<IEntity> excluded = {};
if (!Hierarchy(aircraft, excluded) || !Hierarchy(pilot, excluded)) return null;
if (!ClearColumn(aircraft, pilot, end) || !Survey(start, end, excluded)) return null;
if (!GetGame() || GetGame().GetWorld() != world || !mode || mode != ERR_GameMode.Get() || !mode.Active()) return null;
float now = world.GetWorldTime();
if (!(now >= began && now - began <= 2000) || !aircraft || !pilot || aircraft.GetWorld() != world || pilot.GetWorld() != world || vector.Distance(aircraft.GetOrigin(), point.Home()) > 0.1) return null;
ERR_AircraftFieldEnvelope record = new ERR_AircraftFieldEnvelope();
record.m_Mode = mode; record.m_Aircraft = aircraft; record.m_Pilot = pilot;
record.m_Home = point.Home(); record.m_Radius = point.Radius();
record.m_Destination = end; record.m_Destination[1] = record.m_Home[1];
// Survey work consumes the original admission lifetime; it cannot renew it.
record.m_QualifiedAt = began;
return record;
}
}
@@ -0,0 +1,231 @@
// Unqualified 100m field-route prototype. No allocation, HQ dispatch or service
// integration. The shared base registry/bridge remains the sole input owner.
class ERR_AircraftFieldFlight : ERR_AircraftFlight
{
protected ref ERR_AircraftFieldEnvelope m_Field;
protected int m_FieldPhase; // 0 startup, 1 cruise, 2 braking, 3 slow settling
protected vector m_FieldReference;
protected vector m_FieldIntegral;
protected float m_FieldBrakeSpeed;
protected vector m_FieldLandingPoint;
protected bool m_FieldStopFrozen;
protected bool m_FieldArrived;
protected float m_FieldLowSince = -1;
int FieldPhase() { return m_FieldPhase; }
bool Arrived() { return m_FieldArrived; }
vector LandingPoint() { return m_FieldLandingPoint; }
vector ReferenceVelocity() { return m_FieldReference; }
vector IntegralDemand() { return m_FieldIntegral; }
vector Destination() { vector result = "0 0 0"; if (m_Field) result = m_Field.Destination(); return result; }
// Candidate native fuel quantities, not a demonstrated range/reserve model.
protected bool FuelAdmission(Vehicle aircraft)
{
if (!aircraft) return false;
FuelManagerComponent fuel = FuelManagerComponent.Cast(aircraft.FindComponent(FuelManagerComponent));
return fuel && fuel.HasFuel() && fuel.GetTotalFuel() >= 50;
}
bool StartField(ERR_GameMode mode, Vehicle aircraft, SCR_AIGroup group, IEntity pilot, PilotCompartmentSlot seat, ERR_AircraftFieldEnvelope field, int token, float deadline)
{
if (m_StartAttempted || m_Field || !field || !ERR_AircraftFieldRules.Length(vector.DistanceXZ(field.Home(), field.Destination()))) return false;
if (!ERR_AircraftFieldRules.LeaseAdmitted(Now(), deadline) || !FuelAdmission(aircraft)) return false;
m_Field = field; m_TranslationRequested = true;
vector home = field.Home();
m_TranslationTarget = field.Destination(); m_TranslationTarget[1] = home[1] + 8;
m_FieldLandingPoint = field.Home();
return super.Start(mode, aircraft, group, pilot, seat, field, token, deadline);
}
override bool Start(ERR_GameMode mode, Vehicle aircraft, SCR_AIGroup group, IEntity pilot, PilotCompartmentSlot seat, ERR_AircraftFlightEnvelope qualification, int token, float deadline) { return false; }
override bool StartTranslation(ERR_GameMode mode, Vehicle aircraft, SCR_AIGroup group, IEntity pilot, PilotCompartmentSlot seat, ERR_AircraftFlightEnvelope qualification, int token, float deadline, vector target) { return false; }
protected bool FieldContains(vector position, float upright)
{
if (!m_Field || !m_Field.Contains(position, upright)) return false;
if (m_FieldPhase == 0) return vector.DistanceXZ(position, m_Home) < 8;
return true;
}
protected override bool Grounded()
{
if (!super.Grounded()) return false;
if (m_State == ERR_AircraftFlightState.LANDING || m_State == ERR_AircraftFlightState.SHUTDOWN)
return vector.DistanceXZ(m_Aircraft.GetOrigin(), m_FieldLandingPoint) <= 0.75;
return true;
}
// A normal arrival and an airborne cancellation both brake before descent.
// Once selected, the landing centre and braking deadline cannot be renewed.
protected bool BeginFieldBrake(float now)
{
if (m_FieldStopFrozen) return true;
if (!Owns() || !m_Field || !Healthy()) { Fail("field braking ownership or capability unavailable"); return false; }
vector point = m_Field.Destination();
if (m_Cancelled)
{
point = m_Aircraft.GetOrigin();
vector velocity = m_Simulation.GetVelocity(); velocity[1] = 0;
float speed = velocity.Length();
if (speed >= 0.25) point = point + velocity * (ERR_AircraftFieldRules.BrakingReserve(speed) / speed);
}
point[1] = m_Home[1];
if (!m_Field.Contains(point, 1)) { Fail("field stopping centre outside original qualified corridor"); return false; }
// Cancel can arrive while airborne during the signed collective checks,
// before shared startup enables autohover. Match the base landing handshake.
m_Controller.SetAutohoverEnabled(true);
if (!m_Controller.GetAutohoverEnabled()) { Fail("native field braking autohover enable refused"); return false; }
m_FieldLandingPoint = point; m_FieldStopFrozen = true;
// Begin reducing the reference at entry, before the modeled reserve boundary.
// This one frozen ceiling cannot increase on another cancellation or tick.
m_FieldBrakeSpeed = m_FieldReference.Length() * 0.9;
m_FieldPhase = 2; m_State = ERR_AircraftFlightState.TRANSLATING;
m_FieldLowSince = -1; m_Stable = -1;
// Includes braking, two low-speed seconds and five seconds of final hold.
m_StageDeadline = Math.Min(m_Deadline, now + 45000);
PrintFormat("ERR AIRCRAFT FIELD BRAKE: token=%1 cancelled=%2 centre=%3 deadline=%4 originalDeadline=%5", m_Token, m_Cancelled, point, m_StageDeadline, m_Deadline);
return true;
}
protected override bool Landing(float now)
{
if (!Owns() || !m_Field) { Relinquish("field landing lost original ownership"); return false; }
if (m_Cancelled)
{
if (m_FieldPhase != 3) return BeginFieldBrake(now);
if (m_Stable < 0 || now - m_Stable < 5000) return true; // retain the current settle/hold budget
}
if (!m_FieldStopFrozen || m_FieldPhase != 3 || m_Stable < 0 || now - m_Stable < 5000) { Fail("field descent requires observed braking and destination hold"); return false; }
if (!super.Landing(now)) return false;
m_StageDeadline = Math.Min(m_Deadline, now + 25000);
return true;
}
protected override bool BeginTranslation(float now, vector position)
{
if (!m_Field || !m_TranslationRequested || m_TranslationStarted || m_State != ERR_AircraftFlightState.CLIMB) { Cancel("field stage ownership refused"); return false; }
SignalsManagerComponent signals = m_Controller.GetSignalsManager();
if (!signals || signals.FindSignal("MainRotorCyclicForward") < 0 || signals.FindSignal("MainRotorCyclicAside") < 0 || !m_Controller.GetAutohoverEnabled()) { Cancel("native field cyclic signals unavailable"); return false; }
m_TranslationOrigin = position; m_TranslationDistance = vector.DistanceXZ(position, m_Field.Destination());
m_TranslationStarted = true; m_State = ERR_AircraftFlightState.TRANSLATING; m_FieldPhase = 1;
m_FieldReference = "0 0 0"; m_FieldIntegral = "0 0 0"; m_Stable = -1;
m_StageDeadline = Math.Min(m_Deadline, now + 160000);
PrintFormat("ERR AIRCRAFT FIELD BEGIN: token=%1 home=%2 destination=%3 actualOrigin=%4 deadline=%5", m_Token, m_Home, m_Field.Destination(), position, m_Deadline);
return true;
}
protected override bool ControlLease()
{
if (!Lease()) return false;
if (!Owns()) { Relinquish("field callback lost original ownership"); return false; }
float now = Now();
if (now < 0 || now >= m_Deadline || now >= m_StageDeadline) { Fail("bounded field stage expired"); return false; }
if (!Healthy() || !m_Readback) { Fail("field capability or native input readback lost"); return false; }
vector transform[4]; m_Aircraft.GetWorldTransform(transform);
if (!FieldContains(transform[3], transform[1][1]) || !ERR_AircraftFieldRules.SpeedAllowed(m_Simulation.GetVelocity())) { Fail("qualified field position, attitude or speed exceeded"); return false; }
return true;
}
protected vector FieldDemand(vector position, vector velocity, float dt)
{
vector target = m_Field.Destination(); if (m_FieldStopFrozen) target = m_FieldLandingPoint;
if (m_FieldPhase == 3 || m_State == ERR_AircraftFlightState.LANDING) return ERR_AircraftTranslationRules.Demand(target, position, velocity);
vector direction = target - position; direction[1] = 0;
float remaining = direction.Length(); float targetSpeed = 2;
if (m_FieldPhase == 2) targetSpeed = ERR_AircraftFieldRules.ApproachSpeed(remaining, Math.Min(m_FieldReference.Length(), m_FieldBrakeSpeed));
vector desired;
if (remaining > 0.001) desired = direction * (targetSpeed / remaining);
m_FieldReference = ERR_AircraftFieldRules.RampReference(m_FieldReference, desired, dt);
vector nextIntegral;
vector demand = ERR_AircraftFieldRules.VelocityDemand(m_FieldReference, velocity, m_FieldIntegral, dt, nextIntegral);
m_FieldIntegral = nextIntegral;
return demand;
}
override void PrepareActions(CharacterControllerComponent controller, IEntity owner, ActionManager actions, float dt)
{
if (m_State != ERR_AircraftFlightState.TRANSLATING && m_State != ERR_AircraftFlightState.LANDING) { super.PrepareActions(controller, owner, actions, dt); return; }
if (!Lease() || controller != m_Character || owner != m_Pilot || actions != m_Actions || !ControlLease()) return;
if (!m_Readback || !ERR_AircraftFieldRules.ValidStep(dt) || dt > 0.2) return;
if (!actions.IsContextActive("HelicopterContext")) actions.ActivateContext("HelicopterContext", 1);
if (!actions.IsContextActive("HelicopterContext")) { m_Readback = false; return; }
if (!m_Controller.GetAutohoverEnabled()) { Fail("native field autohover lost"); return; }
vector position = m_Aircraft.GetOrigin(); vector velocity = m_Simulation.GetVelocity();
float height = position[1] - m_Home[1];
float error = ERR_AircraftFlightRules.Vertical(height, m_State == ERR_AircraftFlightState.LANDING) - velocity[1];
m_Collective = Math.Clamp(m_Collective + error * dt * 0.12, -0.95, 0.8);
float collective = Math.Clamp(m_Collective + error * 0.12, -1, 0.9);
float headingError = m_Heading - m_Aircraft.GetYawPitchRoll()[0];
while (headingError > 180) headingError -= 360;
while (headingError < -180) headingError += 360;
vector angular = m_Simulation.GetAngularVelocityLocal();
float torque = Math.Clamp(headingError * 0.01 - angular[1] * 0.3, -0.3, 0.3);
vector transform[4]; m_Aircraft.GetWorldTransform(transform);
vector demand = FieldDemand(transform[3], m_Simulation.GetVelocity(), dt);
float limit = 0.08; if (m_FieldPhase == 3 || m_State == ERR_AircraftFlightState.LANDING) limit = 0.03;
float forward = Math.Clamp(vector.Dot(demand, transform[2]), -limit, limit);
float aside = Math.Clamp(vector.Dot(demand, transform[0]), -limit, limit);
if (m_State == ERR_AircraftFlightState.LANDING && Grounded()) { collective = -1; forward = 0; aside = 0; }
bool a = Pair("HelicopterCollectiveIncrease", "HelicopterCollectiveDecrease", collective);
bool b = Pair("HelicopterCyclicForward", "HelicopterCyclicBack", forward);
bool c = Pair("HelicopterCyclicRight", "HelicopterCyclicLeft", aside);
bool d = Pair("HelicopterAntiTorqueRight", "HelicopterAntiTorqueLeft", torque);
m_Readback = a && b && c && d; m_ActionUpdates++; m_LastControl = Now();
if (m_State == ERR_AircraftFlightState.TRANSLATING) m_TranslationUpdates++;
}
protected override void CheckTranslation(float now, vector position, float height, float speed, float upright)
{
if (!m_Field || !m_Controller.GetAutohoverEnabled()) { Fail("field route or autohover unavailable"); return; }
vector velocity = m_Simulation.GetVelocity(); float horizontal = ERR_AircraftFieldRules.HorizontalSpeed(velocity);
if (m_FieldPhase == 1)
{
if (ERR_AircraftFieldRules.ShouldBrake(vector.DistanceXZ(position, m_Field.Destination()), horizontal)) BeginFieldBrake(now);
return;
}
if (m_FieldPhase == 2)
{
if (!(horizontal < 0.25)) m_FieldLowSince = -1;
else if (m_FieldLowSince < 0) m_FieldLowSince = now;
if (!ERR_AircraftFieldRules.LowSpeedHeld(horizontal, m_FieldLowSince, now)) return;
m_FieldPhase = 3; m_FieldReference = "0 0 0"; m_FieldIntegral = "0 0 0"; m_Stable = -1;
// No new deadline: slow positioning/hold belongs to the same braking budget.
}
bool held = m_FieldPhase == 3 && !m_Simulation.HasAnyGroundContact() && ERR_AircraftFlightRules.Hover(height, speed, velocity[1], upright) && horizontal < 0.25 && vector.DistanceXZ(position, m_FieldLandingPoint) <= 0.75;
if (!held) { m_Stable = -1; return; }
if (m_Stable < 0) m_Stable = now;
if (now - m_Stable < 5000) return;
if (!m_Cancelled) { m_FieldArrived = true; m_TranslationProven = true; }
Landing(now);
}
override void Tick()
{
if (!ControlLease()) return;
float now = Now();
// The owner must continue Tick even with no players. Do not transition an
// inherited startup callback into a field phase halfway through native input.
// 86.5s soft threshold reserves the 85s phase budget plus the maximum
// accepted 1.5s observation gap. Hard stage/original deadlines never move.
bool reserveAbort = ERR_AircraftFieldRules.AbortDue(now + 1500, m_Deadline);
bool fuelAbort = !m_Fuel || !(m_Fuel.GetTotalFuel() > 20);
if (!m_Cancelled && !m_FieldArrived && m_State != ERR_AircraftFlightState.LANDING && m_State != ERR_AircraftFlightState.SHUTDOWN && (reserveAbort || fuelAbort))
{
string reason = "field remaining lease reserved for braking and landing";
if (fuelAbort) reason = "field candidate low-fuel reserve reached";
Cancel(reason);
if (Finished()) return;
}
// The stock-independent shared startup includes native signed collective
// consumption, engine/fuel proof and five-second hover without duplication.
if (m_State != ERR_AircraftFlightState.TRANSLATING && m_State != ERR_AircraftFlightState.LANDING && m_State != ERR_AircraftFlightState.SHUTDOWN) { super.Tick(); return; }
if (m_LastTick >= 0 && (now < m_LastTick || now - m_LastTick > 1500)) { m_Stable = -1; m_FieldLowSince = -1; }
m_LastTick = now;
if (m_LastControl < 0 || now - m_LastControl > 1000) { Fail("field pilot callback stopped"); return; }
if (m_State != ERR_AircraftFlightState.SHUTDOWN && !m_Controller.IsEngineOn()) { Fail("field running engine lost"); return; }
vector transform[4]; m_Aircraft.GetWorldTransform(transform);
if (m_State == ERR_AircraftFlightState.TRANSLATING) { CheckTranslation(now, transform[3], transform[3][1] - m_Home[1], m_Simulation.GetVelocity().Length(), transform[1][1]); return; }
if (m_State == ERR_AircraftFlightState.LANDING)
{
if (!m_Controller.GetAutohoverEnabled()) { Fail("field landing autohover lost"); return; }
if (!Grounded()) m_Stable = -1;
else if (m_Stable < 0) m_Stable = now;
if (m_Stable >= 0 && now - m_Stable >= 2000) Shutdown(now);
return;
}
if (m_State == ERR_AircraftFlightState.SHUTDOWN && !m_Controller.IsEngineOn())
{
if (!Grounded()) { Fail("field engine-off physical ground check failed"); return; }
if (m_Cancelled) m_State = ERR_AircraftFlightState.CANCELLED;
else m_State = ERR_AircraftFlightState.COMPLETE;
Release(true); RecordState();
}
}
}
@@ -0,0 +1,112 @@
// Candidate 100m field experiment only. BrakingReserve is an admission
// hypothesis, not measured stopping performance or an emergency-landing promise.
class ERR_AircraftFieldRules
{
static bool Length(float distance) { return distance >= 99.95 && distance <= 100.05; }
static bool FiniteVector(vector value)
{
return Math.AbsFloat(value[0]) <= 1000000 && Math.AbsFloat(value[1]) <= 1000000 && Math.AbsFloat(value[2]) <= 1000000;
}
static float HorizontalSpeed(vector velocity)
{
velocity[1] = 0;
return velocity.Length();
}
static bool SpeedAllowed(vector velocity) { return FiniteVector(velocity) && HorizontalSpeed(velocity) <= 2.5; }
static bool ValidStep(float dt) { return dt > 0 && dt <= 0.5; }
static float RampSpeed(float current, float target, float dt)
{
if (!(current >= 0 && current <= 2)) return 0;
if (!(target >= 0 && target <= 2) || !ValidStep(dt)) return current;
return current + Math.Clamp(target - current, -0.2 * dt, 0.2 * dt);
}
static vector CapHorizontal(vector value, float limit)
{
value[1] = 0;
float magnitude = value.Length();
if (magnitude > limit) value = value * (limit / magnitude);
return value;
}
// Slew the complete horizontal vector: changing bearing cannot bypass the
// acceleration velocityReference cap through an instantaneous sign/direction change.
static vector RampReference(vector current, vector desired, float dt)
{
if (!FiniteVector(current)) return "0 0 0";
current = CapHorizontal(current, 2);
if (!FiniteVector(desired) || !ValidStep(dt)) return current;
desired = CapHorizontal(desired, 2);
return CapHorizontal(current + CapHorizontal(desired - current, 0.2 * dt), 2);
}
// Remaining target distance includes permitted takeoff/corridor drift; its
// 120m arithmetic bound grants no authority beyond Contains/Length.
// Invert the entire candidate stopping reserve (including1s latency and3m
// margin), not just its deceleration term. Caller also freezes a0.9 entry-speed
// cap to begin reducing the velocityReference immediately, then slews the vector.
// The assumed0.15m/s² physical deceleration still requires native measurement.
static float ApproachSpeed(float remaining, float current)
{
if (!(remaining >= 0 && remaining <= 120) || !(current >= 0 && current <= 2)) return 0;
float reservedSpeed = (Math.Sqrt(0.09 + 1.2 * Math.Max(0, remaining - 3)) - 0.3) * 0.5;
return Math.Min(current, Math.Max(0, reservedSpeed));
}
// Integral units are (m/s)*seconds; nextIntegral is caller-owned state.
// Horizontal demand is world-space; the exact-owner controller converts it
// to the native airframe basis. The caller resets state at phase transitions.
static vector VelocityDemand(vector velocityReference, vector velocity, vector integral, float dt, out vector nextIntegral)
{
nextIntegral = "0 0 0";
if (!FiniteVector(velocityReference) || !FiniteVector(velocity) || !FiniteVector(integral) || !ValidStep(dt)) return "0 0 0";
velocityReference = CapHorizontal(velocityReference, 2);
velocity[1] = 0;
integral = CapHorizontal(integral, 4);
vector error = velocityReference - velocity;
vector candidate = CapHorizontal(integral + error * dt, 4);
vector proposed = error * 0.10 + candidate * 0.02;
// Freeze only integration which pushes an already saturated vector outward.
// Opposing error can unwind stored demand while the output remains capped.
nextIntegral = candidate;
if (proposed.Length() > 0.08 && vector.Dot(proposed, error) > 0) nextIntegral = integral;
return CapHorizontal(error * 0.10 + nextIntegral * 0.02, 0.08);
}
static float BrakingReserve(float speed)
{
if (!(speed >= 0 && speed <= 2.5)) return 1000000;
return speed * speed / 0.30 + speed + 3;
}
static bool ShouldBrake(float remaining, float speed)
{
if (!(remaining >= 0 && remaining <= 120) || !(speed >= 0 && speed <= 2.5)) return true;
return remaining <= Math.Max(25, BrakingReserve(speed));
}
// Admit only the full experimental lease, with <=1s dispatch allowance.
// Never recompute a deadline from these checks or renew the original lease.
static bool LeaseAdmitted(float now, float deadline)
{
return now >= 0 && deadline - now >= 239000 && deadline - now <= 240000;
}
static bool AbortDue(float now, float deadline)
{
if (!(now >= 0 && deadline > now && deadline - now <= 240000)) return true;
return deadline - now <= 85000;
}
// 'since' is the caller's continuous low-speed observation start, in ms.
// The caller clears it whenever actual horizontal speed is >=0.25m/s.
static bool LowSpeedHeld(float speed, float since, float now)
{
return speed >= 0 && speed < 0.25 && since >= 0 && now >= since && now - since >= 2000;
}
static vector Nearest(vector start, vector end, vector point)
{
vector leg = end - start; leg[1] = 0;
vector offset = point - start; offset[1] = 0;
float squared = vector.Dot(leg, leg);
if (!(squared > 0)) return start;
return start + leg * Math.Clamp(vector.Dot(offset, leg) / squared, 0, 1);
}
static bool Contains(vector start, vector end, vector point, float upright)
{
if (!FiniteVector(start) || !FiniteVector(end) || !FiniteVector(point) || !Length(vector.DistanceXZ(start, end))) return false;
float height = point[1] - start[1];
return height >= -3 && height <= 18 && upright >= 0.85 && upright <= 1.01 && vector.DistanceXZ(point, Nearest(start, end, point)) < 8;
}
}
@@ -6,7 +6,7 @@ class ERR_AircraftServiceEntry
SCR_AIGroup Group;
IEntity Pilot;
PilotCompartmentSlot Seat;
ref ERR_AircraftRouteFlight Flight;
ref ERR_AircraftFlight Flight;
int Token;
float Deadline;
vector Destination;
@@ -89,18 +89,45 @@ class ERR_AircraftService
if (!Context() || m_Stopping || !entry || entry.Pending || entry.Retired || s_Retainers.Get(aircraft) != this) return false;
return PhysicalReady(entry);
}
bool StartRoute(Vehicle aircraft, ERR_AircraftRouteEnvelope qualification, int token, float deadline)
// Both explicit kinds share one attempt history and physical reservation.
protected ERR_AircraftServiceEntry BeginAttempt(Vehicle aircraft, int token, float deadline)
{
if (!Context() || m_Stopping || !qualification || token <= 0 || m_UsedTokens.Contains(token) || m_UsedTokens.Count() >= MAX_ORDERS || !Ready(aircraft)) return false;
if (!Context() || m_Stopping || token <= 0 || m_UsedTokens.Contains(token) || m_UsedTokens.Count() >= MAX_ORDERS || !Ready(aircraft)) return null;
float now = m_World.GetWorldTime();
if (!ERR_AircraftFlightRules.Deadline(now, deadline)) return false;
if (!ERR_AircraftFlightRules.Deadline(now, deadline)) return null;
ERR_AircraftServiceEntry entry = Find(aircraft);
// Commit the attempt before calling the native-backed controller. No retry of
// this token, including a partially initialized or conflicting Start refusal.
m_UsedTokens.Insert(token); entry.Token = token; entry.Deadline = deadline;
entry.Destination = qualification.Destination(); entry.CancelRequested = false;
entry.Flight = new ERR_AircraftRouteFlight(); entry.Pending = true;
bool started = entry.Flight.StartRoute(m_Mode, entry.Aircraft, entry.Group, entry.Pilot, entry.Seat, qualification, token, deadline);
entry.CancelRequested = false;
return entry;
}
bool StartRoute(Vehicle aircraft, ERR_AircraftRouteEnvelope qualification, int token, float deadline)
{
if (!qualification) return false;
ERR_AircraftServiceEntry entry = BeginAttempt(aircraft, token, deadline);
if (!entry) return false;
entry.Destination = qualification.Destination();
ERR_AircraftRouteFlight flight = new ERR_AircraftRouteFlight();
entry.Flight = flight; entry.Pending = true;
bool started = flight.StartRoute(m_Mode, entry.Aircraft, entry.Group, entry.Pilot, entry.Seat, qualification, token, deadline);
return RecordStart(entry, started);
}
// This explicit prototype entry point accepts only a field certificate and
// constructs its known controller. No arbitrary caller-owned flight is adopted.
bool StartField(Vehicle aircraft, ERR_AircraftFieldEnvelope qualification, int token, float deadline)
{
if (!qualification) return false;
ERR_AircraftServiceEntry entry = BeginAttempt(aircraft, token, deadline);
if (!entry) return false;
entry.Destination = qualification.Destination();
ERR_AircraftFieldFlight flight = new ERR_AircraftFieldFlight();
entry.Flight = flight; entry.Pending = true;
bool started = flight.StartField(m_Mode, entry.Aircraft, entry.Group, entry.Pilot, entry.Seat, qualification, token, deadline);
return RecordStart(entry, started);
}
protected bool RecordStart(ERR_AircraftServiceEntry entry, bool started)
{
if (!started)
{
entry.Retired = true; entry.Reason = "flight start refused; no automatic retry or replacement";
@@ -0,0 +1,424 @@
#ifdef WORKBENCH
// Separate opt-in experimental100m field fixture; original aircraft outcomes unchanged.
// Full terrain/clearance refusal is retained; no operational dispatch is installed.
modded class ERR_AircraftFieldFlight
{
float ERR_NativeFieldStageDeadline() { return m_StageDeadline; }
int ERR_NativeFieldActionUpdates() { return m_ActionUpdates; }
int ERR_NativeFieldHelicopterUpdates() { return m_HelicopterUpdates; }
bool ERR_NativeFieldFreshReadback(float now) { return m_Readback && m_LastControl >= 0 && now >= m_LastControl && now - m_LastControl <= 1000; }
vector ERR_NativeFieldInputDemand()
{
vector result;
if (m_Actions) result = Vector(m_Actions.GetActionValue("HelicopterCyclicRight") - m_Actions.GetActionValue("HelicopterCyclicLeft"), 0, m_Actions.GetActionValue("HelicopterCyclicForward") - m_Actions.GetActionValue("HelicopterCyclicBack"));
return result;
}
protected override bool BeginFieldBrake(float now)
{
bool alreadyFrozen = m_FieldStopFrozen;
bool result = super.BeginFieldBrake(now);
ERR_NativeAircraftFieldProbe probe = ERR_NativeAircraftFieldProbe.Current();
if (result && !alreadyFrozen && probe && m_Aircraft && m_Simulation) probe.BrakeBegan(this, now, m_Aircraft.GetOrigin(), m_Simulation.GetVelocity());
return result;
}
protected override void CheckTranslation(float now, vector position, float height, float speed, float upright)
{
int oldPhase = m_FieldPhase;
super.CheckTranslation(now, position, height, speed, upright);
ERR_NativeAircraftFieldProbe probe = ERR_NativeAircraftFieldProbe.Current();
if (oldPhase == 2 && m_FieldPhase == 3 && probe && m_Aircraft && m_Simulation) probe.BrakeStopped(this, now, m_Aircraft.GetOrigin(), m_Simulation.GetVelocity());
}
}
// Read-only fixture access to the service's exact retained controller.
modded class ERR_AircraftService
{
ERR_AircraftFieldFlight ERR_NativeOriginalFieldFlight(Vehicle aircraft)
{
ERR_AircraftFieldFlight result;
ERR_AircraftServiceEntry entry = Find(aircraft);
if (entry) result = ERR_AircraftFieldFlight.Cast(entry.Flight);
return result;
}
}
modded class SCR_CharacterControllerComponent
{
override void OnPrepareControls(IEntity owner, ActionManager am, float dt, bool player)
{
ERR_NativeAircraftFieldProbe probe = ERR_NativeAircraftFieldProbe.Current();
if (probe && !player) probe.PrepareActions(this, owner, am, dt);
super.OnPrepareControls(owner, am, dt, player);
}
}
modded class SCR_HelicopterControllerComponent
{
protected override event void OnPrepareControls()
{
super.OnPrepareControls();
ERR_NativeAircraftFieldProbe probe = ERR_NativeAircraftFieldProbe.Current();
if (probe) probe.PrepareHelicopter(this);
}
}
class ERR_NativeAircraftFieldRules
{
static bool Cruise(float alongSpeed, float horizontal, bool contact, int phase)
{
return phase == 1 && !contact && alongSpeed >= 1 && horizontal >= 1 && horizontal <= 2.5;
}
static bool Braking(float reserve, float sampledTravel, float displacement, float lowSince, float now, float horizontal)
{
return reserve >= 3 && reserve <= 26.334 && sampledTravel >= 0 && sampledTravel <= reserve && displacement >= 0 && displacement <= reserve && horizontal >= 0 && horizontal < 0.25 && lowSince >= 0 && now - lowSince >= 2000;
}
static bool Terminal(bool cancellation, int state, int stops, bool arrived, bool cruiseHeld, bool endpointHeld, bool braking, float displacement, float targetError)
{
if (!braking || !(targetError >= 0 && targetError <= 0.75)) return false;
if (cancellation) return state == ERR_AircraftFlightState.CANCELLED && stops == 1 && !arrived;
return state == ERR_AircraftFlightState.COMPLETE && stops == 0 && arrived && cruiseHeld && endpointHeld && displacement >= 99.25 && displacement <= 100.8;
}
static bool PhysicalFinish(bool originalOccupancy, bool landed, bool engineOff, float fuelUsed, int wakes, int starts, int controllerStarts, int pilotHooks, int helicopterHooks)
{
return originalOccupancy && landed && engineOff && fuelUsed > 0.05 && fuelUsed < 1000000 && wakes == 1 && starts == 1 && controllerStarts == 1 && pilotHooks > 100 && helicopterHooks > 100;
}
static bool CanDispose(bool context, bool noPlayers, bool sameFaction, bool groupUnchanged, bool pilotUnchanged)
{
return context && noPlayers && sameFaction && groupUnchanged && pilotUnchanged;
}
}
class ERR_NativeAircraftFieldProbe
{
protected static ERR_NativeAircraftFieldProbe s_Current;
protected ERR_GameMode m_Mode;
protected Vehicle m_Aircraft;
protected SCR_AIGroup m_Group;
protected IEntity m_Pilot;
protected PilotCompartmentSlot m_Seat;
protected HelicopterControllerComponent m_Controller;
protected VehicleHelicopterSimulation m_Simulation;
protected FuelManagerComponent m_Fuel;
protected ref ERR_AircraftFieldEnvelope m_Envelope;
protected ref ERR_AircraftFieldFlight m_Flight;
protected ref ERR_AircraftService m_Service;
protected float m_Deadline;
protected float m_StageDeadline;
protected float m_Stable = -1;
protected float m_LastTick = -1;
protected float m_NextLog;
protected float m_InitialFuel;
protected float m_ControlDeadline;
protected int m_CancelCount;
protected bool m_CancelFixture;
protected float m_CancelAt = -1;
protected float m_LandingStable = -1;
protected int m_CancelActionUpdates;
protected int m_CancelHelicopterUpdates;
protected bool m_ContinuedAirborneControl;
protected bool m_LandingHeld;
protected vector m_CancelLandingPoint;
protected bool m_TranslationHeld;
protected float m_TranslationStable = -1;
protected vector m_Pad;
protected vector m_Destination;
protected float m_CruiseSince = -1;
protected bool m_CruiseHeld;
protected bool m_BrakeObserved;
protected bool m_BrakeStopped;
protected bool m_BrakePassed;
protected string m_ObservationFailure;
protected vector m_BrakeOrigin;
protected vector m_BrakeLandingPoint;
protected vector m_BrakePrevious;
protected float m_BrakeReserve;
protected float m_BrakeSampledTravel;
protected float m_BrakeLowSince = -1;
protected float m_BrakeAt;
protected float m_BrakeStageDeadline;
protected int m_Step;
protected int m_Wakes;
protected int m_ControllerStarts;
protected int m_EngineStarts;
protected int m_PilotHooks;
protected int m_HelicopterHooks;
protected bool m_LastEngine;
protected bool m_AllocationRequested;
protected bool m_PilotRequested;
protected bool m_Stopped;
protected bool m_Complete;
static const int ORDER_TOKEN = 771101;
static const ResourceName AIRCRAFT = "{DF5CCB7C0FF049F4}Prefabs/Vehicles/Helicopters/Mi8MT/Mi8MT_unarmed_transport.et";
static const ResourceName GROUP = "{000CD338713F2B5A}Prefabs/AI/Groups/Group_Base.et";
static const ResourceName PILOT = "{86E565387A634103}Prefabs/Characters/Campaign/Final/OPFOR/USSR_Army/Regular/Campaign_USSR_Player_MortarCrew.et";
static bool Enabled()
{
string enabled, outcome;
return Replication.IsServer() && System.GetCLIParam("errSmoke", enabled) && enabled == "1" && System.GetCLIParam("errSmokeOutcome", outcome) && outcome == "aircraft-field";
}
static ERR_NativeAircraftFieldProbe Current() { return s_Current; }
void ERR_NativeAircraftFieldProbe(ERR_GameMode mode)
{
m_Mode = mode;
if (!GetGame() || !GetGame().GetWorld() || !Enabled() || s_Current) { m_Stopped = true; return; }
string cancellation; m_CancelFixture = System.GetCLIParam("errSmokeFieldServiceCancel", cancellation) && cancellation == "1";
m_Deadline = GetGame().GetWorld().GetWorldTime() + 300000;
s_Current = this;
}
protected bool Check(bool passed, string detail)
{
string outcome = "aircraft-field";
if (passed) { Print("ERR SMOKE PASS: " + outcome + " " + detail); return true; }
Print("ERR SMOKE FAIL: " + outcome + " " + detail, LogLevel.ERROR); Stop(); return false;
}
protected bool NoPlayers()
{
if (!GetGame() || !GetGame().GetPlayerManager()) return false;
if (m_Group && m_Group.GetPlayerCount(true) > 0) return false;
array<int> players = {}; GetGame().GetPlayerManager().GetPlayers(players);
foreach (int id : players)
{
IEntity actor = GetGame().GetPlayerManager().GetPlayerControlledEntity(id);
if (actor && (actor == m_Pilot || actor == m_Aircraft || (m_Aircraft && CompartmentAccessComponent.GetVehicleIn(actor) == m_Aircraft))) return false;
}
return true;
}
protected bool OriginalOccupancy()
{
if (!m_Pilot || !m_Group || !m_Aircraft || !m_Controller || !m_Seat || !NoPlayers()) return false;
if (m_Group.GetAgentsCount() != 1 || ERR_Actors.Group(m_Pilot) != m_Group || !ERR_Actors.CanFight(m_Pilot)) return false;
return m_Seat.GetOccupant() == m_Pilot && m_Controller.GetPilotCompartmentSlot() == m_Seat && CompartmentAccessComponent.GetVehicleIn(m_Pilot) == m_Aircraft;
}
void PrepareActions(CharacterControllerComponent controller, IEntity owner, ActionManager am, float dt)
{
if (m_Stopped || !m_Flight || owner != m_Pilot) return;
// Observation only: the production bridge owns the sole control dispatch.
m_PilotHooks++;
}
void PrepareHelicopter(HelicopterControllerComponent controller)
{
if (m_Stopped || !m_Flight || controller != m_Controller) return;
// Observation only: super-chain order cannot cause a second control write.
m_HelicopterHooks++;
}
protected bool FindPad(out vector result)
{
// This exact airport start was observed in the twenty-metre fixture. The
// longer corridor still requires its own complete survey; there is no search.
vector candidate = ERR_Actors.Ground("4850.953 0 11787.412");
vector destination = ERR_Actors.Ground(candidate + "100 0 0");
if (!ERR_AircraftFieldEnvelope.Survey(candidate, destination)) return false;
PrintFormat("ERR AIRCRAFT FIELD FIXTURE CORRIDOR: singleStart=%1 destination=%2; fixed100m complete survey passed", candidate, destination);
result = candidate; m_Destination = destination; return true;
}
protected bool ReadyComponents()
{
m_Controller = HelicopterControllerComponent.Cast(m_Aircraft.FindComponent(HelicopterControllerComponent));
if (!m_Controller) return false;
m_Simulation = m_Controller.GetSimulation();
m_Fuel = FuelManagerComponent.Cast(m_Aircraft.FindComponent(FuelManagerComponent));
if (!m_Simulation || !m_Simulation.IsValid() || !m_Fuel || !m_Fuel.HasFuel()) return false;
BaseCompartmentManagerComponent manager = BaseCompartmentManagerComponent.Cast(m_Aircraft.FindComponent(BaseCompartmentManagerComponent));
if (!manager) return false;
array<BaseCompartmentSlot> slots = {}; manager.GetCompartments(slots);
if (slots.Count() > 64) return false;
foreach (BaseCompartmentSlot slot : slots)
{
PilotCompartmentSlot pilotSlot = PilotCompartmentSlot.Cast(slot);
if (!pilotSlot || pilotSlot.GetOwner() != m_Aircraft || pilotSlot.GetVehicle() != m_Aircraft || pilotSlot.GetCompartmentName() != "PilotCompartment") continue;
if (pilotSlot.GetType() != ECompartmentType.PILOT) continue;
if (pilotSlot.GetOccupant() || pilotSlot.IsReserved() || pilotSlot.IsGetInLocked() || !pilotSlot.IsCompartmentAccessible()) continue;
m_Seat = pilotSlot; return true;
}
return false;
}
protected bool RetainedIdentity()
{
return m_Service && m_Flight && m_Service.ERR_NativeOriginalFieldFlight(m_Aircraft) == m_Flight && m_Service.RegisteredCount() == 1 && m_Service.AttemptedOrders() == 1 && m_Service.OrderToken(m_Aircraft) == ORDER_TOKEN && m_Service.OrderDeadline(m_Aircraft) == m_ControlDeadline;
}
protected bool StartRetainedField()
{
if (m_Service || m_Flight) return Check(false, "one retained aircraft service only");
m_Service = new ERR_AircraftService(m_Mode);
if (!Check(m_Service.Register(m_Aircraft, m_Group, m_Pilot, m_Seat) && m_Service.RegisteredCount() == 1 && m_Service.Ready(m_Aircraft), "retention service registers one exact physical aircraft, original pilot/group/seat and current readiness")) return false;
m_ControllerStarts++;
bool started = m_Service.StartField(m_Aircraft, m_Envelope, ORDER_TOKEN, m_ControlDeadline);
m_Flight = m_Service.ERR_NativeOriginalFieldFlight(m_Aircraft);
return Check(started && RetainedIdentity() && m_Service.Pending(m_Aircraft), "actual controller accepts one qualified original pilot/aircraft order through retention service");
}
protected bool StopRetainedField(float now)
{
if (m_CancelCount != 0 || !RetainedIdentity() || m_Service.Stopping()) return Check(false, "one explicit retained field service stop only");
m_CancelCount = 1; m_CancelAt = now;
m_CancelActionUpdates = m_Flight.ERR_NativeFieldActionUpdates();
m_CancelHelicopterUpdates = m_Flight.ERR_NativeFieldHelicopterUpdates();
m_Service.Stop(); m_CancelLandingPoint = m_Flight.LandingPoint();
return Check(RetainedIdentity() && m_Service.Stopping() && m_Service.Pending(m_Aircraft) && !m_Service.Drained() && !m_Service.Ready(m_Aircraft) && m_Flight.State() == ERR_AircraftFlightState.TRANSLATING && m_Flight.FieldPhase() == 2 && m_Flight.ERR_NativeControlDeadline() == m_ControlDeadline && m_Envelope.Contains(m_CancelLandingPoint, 1), "service Stop retains airborne braking, original controller and frozen qualified point under same lease");
}
protected void Diagnostic(float now)
{
if (!m_Flight || !m_Aircraft || !m_Simulation || !m_Envelope || now < m_NextLog) return;
m_NextLog = now + 1000;
vector position = m_Aircraft.GetOrigin(); vector velocity = m_Simulation.GetVelocity();
PrintFormat("ERR AIRCRAFT FIELD MOTION: now=%1 state=%2 phase=%3 position=%4 velocity=%5 refVelocity=%6 integral=%7 observedLocalInput=%8 fuel=%9", now, m_Flight.State(), m_Flight.FieldPhase(), position, velocity, m_Flight.ReferenceVelocity(), m_Flight.IntegralDemand(), m_Flight.ERR_NativeFieldInputDemand(), m_Fuel.GetTotalFuel());
PrintFormat("ERR AIRCRAFT FIELD LEASE: token=%1 originalDeadline=%2 stageDeadline=%3 actions=%4 helicopter=%5 contact=%6 engine=%7 targetError=%8", m_Flight.OrderToken(), m_ControlDeadline, m_Flight.ERR_NativeFieldStageDeadline(), m_Flight.ERR_NativeFieldActionUpdates(), m_Flight.ERR_NativeFieldHelicopterUpdates(), m_Simulation.HasAnyGroundContact(), m_Controller.IsEngineOn(), vector.DistanceXZ(position, m_Flight.LandingPoint()));
}
void BrakeBegan(ERR_AircraftFieldFlight flight, float now, vector position, vector velocity)
{
if (m_Stopped || flight != m_Flight) return;
if (m_BrakeObserved) { m_ObservationFailure = "production brake event occurs exactly once"; return; }
m_BrakeObserved = true; m_BrakeAt = now;
m_BrakeOrigin = position; m_BrakePrevious = position;
m_BrakeReserve = ERR_AircraftFieldRules.BrakingReserve(ERR_AircraftFieldRules.HorizontalSpeed(velocity));
m_BrakeStageDeadline = flight.ERR_NativeFieldStageDeadline(); m_BrakeLandingPoint = flight.LandingPoint();
PrintFormat("ERR AIRCRAFT FIELD BRAKE OBSERVED: now=%1 position=%2 velocity=%3 declaredHypothesisReserve=%4 stageDeadline=%5 originalDeadline=%6", now, position, velocity, m_BrakeReserve, m_BrakeStageDeadline, m_ControlDeadline);
}
void BrakeStopped(ERR_AircraftFieldFlight flight, float now, vector position, vector velocity)
{
if (m_Stopped || flight != m_Flight) return;
if (!m_BrakeObserved || m_BrakeStopped) { m_ObservationFailure = "one actual low-speed braking transition after original brake event"; return; }
m_BrakeStopped = true;
m_BrakeSampledTravel += vector.DistanceXZ(position, m_BrakePrevious);
m_BrakePrevious = position;
float displacement = vector.DistanceXZ(position, m_BrakeOrigin);
m_BrakePassed = ERR_NativeAircraftFieldRules.Braking(m_BrakeReserve, m_BrakeSampledTravel, displacement, m_BrakeLowSince, now, ERR_AircraftFieldRules.HorizontalSpeed(velocity));
PrintFormat("ERR AIRCRAFT FIELD STOP OBSERVED: now=%1 position=%2 sampledTravel=%3 displacement=%4 declaredReserve=%5 lowSince=%6 passed=%7", now, position, m_BrakeSampledTravel, displacement, m_BrakeReserve, m_BrakeLowSince, m_BrakePassed);
if (!m_BrakePassed) m_ObservationFailure = "observed braking exceeded declared reserve or lacked independent two-second low-speed observations";
}
int Tick(float now)
{
if (m_Complete) return 1;
if (m_Stopped) return -1;
if (!Enabled() || !m_Mode || m_Mode != ERR_GameMode.Get() || !m_Mode.Active() || now >= m_Deadline) { Check(false, "active exact mission and bounded300-second fixture"); return -1; }
if (!NoPlayers()) { Check(false, "fixture remains unclaimed by any human"); return -1; }
if (m_LastTick >= 0 && (now < m_LastTick || now - m_LastTick > 1500)) { m_Stable = -1; m_TranslationStable = -1; m_LandingStable = -1; m_CruiseSince = -1; m_BrakeLowSince = -1; }
m_LastTick = now;
if (m_Step == 0)
{
if (!m_Mode.ExtractionVehicle()) return 0;
if (!Check(!m_AllocationRequested && FindPad(m_Pad), "independent qualified candidate found before one finite allocation")) return -1;
m_AllocationRequested = true;
m_Aircraft = Vehicle.Cast(ERR_Actors.Spawn(AIRCRAFT, m_Pad));
m_Group = SCR_AIGroup.Cast(ERR_Actors.Spawn(GROUP, m_Pad + "20 0 0"));
if (!Check(m_Aircraft && m_Group && m_Group.InitFactionKey("USSR") && m_Group.GetFaction() == m_Mode.EnemyFaction(), "one finite native Mi8 and memberless enemy group created")) return -1;
m_Group.SetPermanentLOD(0); m_Group.ActivateAI();
m_Step = 1; m_StageDeadline = now + 30000; return 0;
}
if (!m_Aircraft || !m_Group || !ERR_Actors.Alive(m_Aircraft)) { Check(false, "original airframe and group survive without replacement"); return -1; }
if (m_Step == 1)
{
if (now >= m_StageDeadline) { Check(false, "real components and original pilot initialize within30seconds"); return -1; }
if (!ReadyComponents()) return 0;
if (!Check(!m_PilotRequested && m_Group.GetAgentsCount() == 0, "one original native pilot request only")) return -1;
m_PilotRequested = true; AIGroup originalGroup = m_Group;
m_Pilot = m_Seat.SpawnCharacterInCompartment(PILOT, originalGroup, GROUP);
AIControlComponent control; if (m_Pilot) control = AIControlComponent.Cast(m_Pilot.FindComponent(AIControlComponent));
AIAgent agent; if (control) agent = control.GetControlAIAgent();
if (!Check(m_Pilot && originalGroup == m_Group && agent, "pilot seated by native mechanism in original group")) return -1;
agent.SetPermanentLOD(0); agent.ActivateAI(); m_Step = 2; return 0;
}
Diagnostic(now);
if (m_Step == 2)
{
if (now >= m_StageDeadline) { Check(false, "actual initial seating and native ground settling within30seconds"); return -1; }
if (!OriginalOccupancy()) { m_Stable = -1; return 0; }
Physics physics = m_Aircraft.GetPhysics();
if (!physics || !physics.IsDynamic()) return 0;
if (m_Wakes == 0) { m_Wakes = 1; physics.SetActive(ActiveState.ACTIVE); m_Stable = -1; return 0; }
if (!m_Simulation.HasAnyGroundContact() || !ERR_CasualtyLoadingRules.AircraftReady(m_Aircraft)) { m_Stable = -1; return 0; }
if (m_Stable < 0) m_Stable = now;
if (now - m_Stable < 1000) return 0;
if (!Check(!m_Controller.IsEngineOn(), "post-spawn qualification precedes native engine start")) return -1;
m_Envelope = ERR_AircraftFieldEnvelope.QualifyField(m_Mode, m_Aircraft, m_Pilot, m_Destination);
if (!Check(m_Envelope != null, "actual full corridor, both pads and complete native rotor/model footprint issue exact route qualification")) return -1;
m_InitialFuel = m_Fuel.GetTotalFuel();
m_ControlDeadline = Math.Min(m_Deadline, now + 240000);
if (!StartRetainedField()) return -1;
m_Step = 3; return 0;
}
if (m_Step == 3)
{
if (!RetainedIdentity() || !OriginalOccupancy()) { Check(false, "service and exact original airframe/pilot/group/seat retained"); return -1; }
if (m_Flight.ERR_NativeControlDeadline() != m_ControlDeadline || m_Flight.Destination() != m_Envelope.Destination()) { Check(false, "original endpoint/token/deadline never change"); return -1; }
if (m_BrakeObserved)
{
if (m_Flight.LandingPoint() != m_BrakeLandingPoint) { Check(false, "first production braking point remains immutable"); return -1; }
if (m_Flight.State() == ERR_AircraftFlightState.TRANSLATING && m_Flight.ERR_NativeFieldStageDeadline() != m_BrakeStageDeadline) { Check(false, "braking and settling never renew their stage deadline"); return -1; }
}
bool engine = m_Controller.IsEngineOn(); if (engine && !m_LastEngine) m_EngineStarts++; m_LastEngine = engine;
vector transform[4]; m_Aircraft.GetWorldTransform(transform);
vector position = transform[3]; vector velocity = m_Simulation.GetVelocity();
vector home = m_Envelope.Home(); vector leg = m_Envelope.Destination() - home; leg[1] = 0;
float alongSpeed = vector.Dot(velocity, leg * (1 / leg.Length()));
float horizontal = ERR_AircraftFieldRules.HorizontalSpeed(velocity);
bool contact = m_Simulation.HasAnyGroundContact(); float height = position[1] - home[1];
bool cruise = ERR_NativeAircraftFieldRules.Cruise(alongSpeed, horizontal, contact, m_Flight.FieldPhase());
if (!cruise) m_CruiseSince = -1;
else if (m_CruiseSince < 0) m_CruiseSince = now;
if (m_CruiseSince >= 0 && now - m_CruiseSince >= 10000) m_CruiseHeld = true;
if (m_CancelFixture && m_CancelCount == 0 && m_CruiseSince >= 0 && now - m_CruiseSince >= 1000)
if (!StopRetainedField(now)) return -1;
if (m_BrakeObserved && !m_BrakeStopped)
{
m_BrakeSampledTravel += vector.DistanceXZ(position, m_BrakePrevious); m_BrakePrevious = position;
if (!(horizontal < 0.25)) m_BrakeLowSince = -1;
else if (m_BrakeLowSince < 0) m_BrakeLowSince = now;
}
bool held = !contact && ERR_AircraftFlightRules.Hover(height, velocity.Length(), velocity[1], transform[1][1]) && horizontal < 0.25 && vector.DistanceXZ(position, m_Envelope.Destination()) <= 0.75;
if (!held) m_TranslationStable = -1;
else if (m_TranslationStable < 0) m_TranslationStable = now;
if (m_TranslationStable >= 0 && now - m_TranslationStable >= 5000) m_TranslationHeld = true;
bool landed = ERR_AircraftFlightRules.Landed(contact, height, velocity.Length(), m_Simulation.GetAngularVelocity().Length(), transform[1][1]) && vector.DistanceXZ(position, m_Flight.LandingPoint()) <= 0.75;
if (!landed) m_LandingStable = -1;
else if (m_LandingStable < 0) m_LandingStable = now;
if (m_CancelCount == 1)
{
if (!m_Service.Stopping() || m_Service.Ready(m_Aircraft) || m_Flight.LandingPoint() != m_CancelLandingPoint || !m_Envelope.Contains(m_CancelLandingPoint, 1)) { Check(false, "cancelled order retains frozen qualified point and no new admission"); return -1; }
if (!m_Flight.Finished() && (!m_Service.Pending(m_Aircraft) || m_Service.Drained())) { Check(false, "nonterminal cancellation stays pending"); return -1; }
if (!contact && height > 1 && m_Flight.ERR_NativeFieldActionUpdates() > m_CancelActionUpdates + 10 && m_Flight.ERR_NativeFieldHelicopterUpdates() > m_CancelHelicopterUpdates + 10 && m_Flight.ERR_NativeFieldFreshReadback(now)) m_ContinuedAirborneControl = true;
}
m_Service.Tick();
if (!m_ObservationFailure.IsEmpty()) { Check(false, m_ObservationFailure); return -1; } // outside production callback stack
if (m_Flight.State() == ERR_AircraftFlightState.LANDING && !m_BrakePassed) { Check(false, "no descent before qualified observed braking"); return -1; }
if (m_Flight.State() == ERR_AircraftFlightState.SHUTDOWN)
{
if (!m_LandingHeld && !Check(landed && m_LandingStable >= 0 && now - m_LandingStable >= 2000, "shutdown follows two independently observed stable grounded seconds")) return -1;
m_LandingHeld = true;
}
if (!m_Flight.Finished()) return 0;
float targetError = vector.DistanceXZ(position, m_Flight.LandingPoint());
float displacement = vector.DistanceXZ(position, home);
bool complete = ERR_NativeAircraftFieldRules.Terminal(m_CancelFixture, m_Flight.State(), m_CancelCount, m_Flight.Arrived(), m_CruiseHeld, m_TranslationHeld, m_BrakePassed, displacement, targetError);
complete = complete && m_LandingHeld && ERR_NativeAircraftFieldRules.PhysicalFinish(OriginalOccupancy(), landed, !m_Controller.IsEngineOn(), m_InitialFuel - m_Fuel.GetTotalFuel(), m_Wakes, m_EngineStarts, m_ControllerStarts, m_PilotHooks, m_HelicopterHooks);
if (m_CancelFixture) complete = complete && m_ContinuedAirborneControl && m_Service.Stopping();
PrintFormat("ERR AIRCRAFT FIELD RESULT: state=%1 cancellation=%2 displacement=%3 targetError=%4 cruise10s=%5 endpoint5s=%6 braking=%7 grounded2s=%8 fuelUsed=%9", m_Flight.State(), m_CancelFixture, displacement, targetError, m_CruiseHeld, m_TranslationHeld, m_BrakePassed, m_LandingHeld, m_InitialFuel - m_Fuel.GetTotalFuel());
if (!Check(complete, "original physical aircraft completes exact field outcome, measured motion/braking, grounded engine-off and finite fuel use")) return -1;
if (!Check(RetainedIdentity() && m_Service.Drained() && !m_Service.Pending(m_Aircraft) && !m_Service.Retired(m_Aircraft), "one original retained flight drains only after actual terminal observation")) return -1;
m_Complete = true; Stop(); return 1;
}
return 0;
}
void Stop()
{
if (m_Stopped) return;
m_Stopped = true;
if (s_Current == this) s_Current = null;
if (m_Service && !m_Service.Stopping()) m_Service.Stop();
// End-of-test disposal is not successful flight or a production cancellation.
// These assets are fixture-owned only, never registered with mission cleanup.
// Retain service/controller through guarded disposal; then observe ownership
// loss before releasing their references. No direct second Cancel or Tick.
bool context = GetGame() && GetGame().GetWorld() && GetGame().GetPlayerManager() && m_Mode && m_Mode == ERR_GameMode.Get();
bool faction = context && (!m_Group || (!m_PilotRequested && m_Group.GetAgentsCount() == 0 && !m_Group.GetFaction()) || m_Group.GetFaction() == m_Mode.EnemyFaction()) && (!m_Aircraft || SCR_FactionManager.SGetFaction(m_Aircraft) == m_Mode.EnemyFaction());
bool groupUnchanged = context && (!m_Group || m_Group.GetAgentsCount() == 0 || (m_Group.GetAgentsCount() == 1 && m_Pilot && ERR_Actors.Group(m_Pilot) == m_Group));
bool pilotUnchanged = context && (!m_Pilot || (m_Group && ERR_Actors.Group(m_Pilot) == m_Group && !ERR_Actors.Player(m_Pilot)));
if (ERR_NativeAircraftFieldRules.CanDispose(context, NoPlayers(), faction, groupUnchanged, pilotUnchanged))
{
ERR_Actors.DeleteSpawned(m_Group); ERR_Actors.DeleteSpawned(m_Pilot); ERR_Actors.DeleteSpawned(m_Aircraft);
}
else Print("ERR AIRCRAFT FIELD FIXTURE CLEANUP: ownership changed; captured entities preserved");
if (m_Service) m_Service.Tick();
m_Flight = null;
m_Service = null;
m_Envelope = null;
}
void ~ERR_NativeAircraftFieldProbe() { Stop(); }
}
#endif
@@ -13,9 +13,10 @@ modded class ERR_AircraftService
{
ERR_AircraftRouteFlight ERR_NativeOriginalFlight(Vehicle aircraft)
{
ERR_AircraftRouteFlight flight = null;
ERR_AircraftServiceEntry entry = Find(aircraft);
if (entry) return entry.Flight;
return null;
if (entry) flight = ERR_AircraftRouteFlight.Cast(entry.Flight);
return flight;
}
}
modded class SCR_CharacterControllerComponent
+32 -1
View File
@@ -19,6 +19,8 @@ modded class ERR_GameMode
protected bool m_ERRTestMortar;
protected bool m_ERRTestMortarFire;
protected bool m_ERRTestMapOwnership;
protected bool m_ERRTestAircraftField;
protected ref ERR_NativeAircraftFieldProbe m_ERRAircraftField;
protected bool m_ERRTestAircraftRoute;
protected ref ERR_NativeAircraftRouteProbe m_ERRAircraftRoute;
protected bool m_ERRTestAircraftControl;
@@ -49,6 +51,7 @@ modded class ERR_GameMode
m_ERRTestHQResponse = outcome == "hq-response";
m_ERRTestMortar = outcome == "mortar-inventory";
m_ERRTestMapOwnership = outcome == "map-ownership";
m_ERRTestAircraftField = outcome == "aircraft-field";
m_ERRTestAircraftRoute = outcome == "aircraft-route";
m_ERRTestAircraftCancel = outcome == "aircraft-cancel";
m_ERRTestAircraftTranslate = outcome == "aircraft-translate";
@@ -60,7 +63,7 @@ modded class ERR_GameMode
m_ERRTestPatrolHQ = outcome == "patrol-hq";
m_ERRTestPlayerDeath = outcome == "player-death" || m_ERRTestRadioNetwork || m_ERRTestHQResponse || m_ERRTestMortar;
m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 150000;
if (m_ERRTestAircraftControl || m_ERRTestAircraftRoute) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;
if (m_ERRTestAircraftControl || m_ERRTestAircraftRoute || m_ERRTestAircraftField) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;
if (m_ERRTestMortarCourier) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 450000;
if (m_ERRTestMortarTransfer) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;
if (m_ERRTestMortarSalvo) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;
@@ -86,6 +89,7 @@ modded class ERR_GameMode
if (m_ERRMapOwnership) m_ERRMapOwnership.Stop();
if (m_ERRAircraftControl) m_ERRAircraftControl.Stop();
if (m_ERRAircraftRoute) m_ERRAircraftRoute.Stop();
if (m_ERRAircraftField) m_ERRAircraftField.Stop();
if (m_ERRHQResponseProof) m_ERRHQResponseProof.Stop();
if (m_ERRMortarSalvo) m_ERRMortarSalvo.Stop();
if (m_ERRMortarCourier) m_ERRMortarCourier.Stop();
@@ -126,6 +130,19 @@ modded class ERR_GameMode
protected void ERR_SmokePhase(ERR_Phase previous, ERR_Phase current)
{
if (m_ERRSmokeDone || !ERR_MissionRules.Terminal(current)) return;
if (m_ERRTestAircraftField)
{
if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 241, "actual aircraft field fixture completed before explicit reset")) return;
m_ERRSmokeDone = true;
GetGame().GetCallqueue().Remove(ERR_SmokeTick);
ERR_StopHQPatrol();
string fieldCancel;
string fieldResult = "actual immutable100m field route, measured cruise/braking, destination hold and contact landing; bounded prototype, not HQ support";
if (System.GetCLIParam("errSmokeFieldServiceCancel", fieldCancel) && fieldCancel == "1")
fieldResult = "actual moving field service Stop retains control through braking, frozen-point contact landing and engine shutdown; no destination arrival or HQ support claim";
Print("ERR SMOKE COMPLETE: " + fieldResult);
return;
}
if (m_ERRTestAircraftRoute)
{
if (!ERR_Check(current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 231, "actual aircraft route completed before explicit fixture reset")) return;
@@ -259,6 +276,13 @@ modded class ERR_GameMode
if (m_ERRSmokeDone) return;
if (now > m_ERRSmokeDeadline) { ERR_Check(false, "timeout at step " + m_ERRSmokeStep.ToString()); return; }
if (now < m_ERRSmokeWait) return;
if (m_ERRSmokeStep == 240)
{
int result = m_ERRAircraftField.Tick(now);
if (result < 0) { ERR_Check(false, "native actual aircraft field fixture"); return; }
if (result == 1) { m_ERRSmokeStep = 241; Transition(ERR_Phase.DEFEAT); }
return;
}
if (m_ERRSmokeStep == 230)
{
int result = m_ERRAircraftRoute.Tick(now);
@@ -333,6 +357,13 @@ modded class ERR_GameMode
if (players.Count() != 1 || Phase() != ERR_Phase.PRISON) return;
m_ERRSmokePlayer = players[0];
if (!ERR_CheckRoster() || !ERR_NativeContractsProbe.Run(this, m_ERRSmokePlayer) || !ERR_CheckCompanionCommands()) return;
if (m_ERRTestAircraftField)
{
DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false);
m_ERRAircraftField = new ERR_NativeAircraftFieldProbe(this);
m_ERRSmokeStep = 240;
return;
}
if (m_ERRTestAircraftRoute)
{
DamageManagerComponent.Cast(m_ERRSmokePlayer.FindComponent(DamageManagerComponent)).EnableDamageHandling(false);
@@ -37,6 +37,8 @@ class ERR_OrdinaryGateObserver
protected int m_Previous;
protected int m_Index;
protected bool m_Stopped;
protected bool m_HeldAction;
protected int m_ObservedPhase = -1;
protected static bool Enabled(string nonce)
{
@@ -64,6 +66,8 @@ class ERR_OrdinaryGateObserver
s_Request.m_Nonce = nonce; s_Request.m_Start = started; s_Request.m_Previous = started;
if (mode && mode.Players()) s_Request.m_Life = mode.Players().CurrentActor(actor);
if (s_Request.m_Life) s_Request.m_Account = s_Request.m_Life.AccountId;
if (!ERR_OrdinaryInputObserverRules.HeldScope(nonce, s_Request.m_HeldAction))
{ s_Request.Cancel(index, now, "held-option-binding-lost"); return; }
if (!s_Request.BindGate()) { s_Request.Cancel(index, now, "original-prison-lock-unavailable"); return; }
}
s_Request.Observe(mode, world, controller, actor, nonce, started, index, now);
@@ -95,7 +99,7 @@ class ERR_OrdinaryGateObserver
protected bool Context()
{
if (!GetGame() || !m_Mode || !m_World || !m_Controller || !m_Actor || !m_Life || !m_Gate || !m_Manager || !m_Lock || !m_Context || !m_Door || !m_Handler) return false;
if (m_Mode != ERR_GameMode.Get() || !m_Mode.Active() || (m_Mode.Phase() != ERR_Phase.PRISON && m_Mode.Phase() != ERR_Phase.RADIO_SEARCH)) return false;
if (m_Mode != ERR_GameMode.Get() || !m_Mode.Active()) return false;
if (GetGame().GetWorld() != m_World || m_Mode.GetWorld() != m_World || m_Actor.GetWorld() != m_World || m_Gate.GetWorld() != m_World) return false;
if (GetGame().GetPlayerController() != m_Controller || m_Controller.GetControlledEntity() != m_Actor || m_Handler.GetControlledEntity() != m_Actor) return false;
PlayerManager players = GetGame().GetPlayerManager();
@@ -106,6 +110,11 @@ class ERR_OrdinaryGateObserver
if (m_Gate.FindComponent(BaseActionsManagerComponent) != m_Manager || m_Gate.FindComponent(BaseDoorComponent) != m_Door || m_Controller.FindComponent(SCR_InteractionHandlerComponent) != m_Handler) return false;
if (m_Manager.GetContext("SCR_DoorUserAction") != m_Context || m_Manager.FindAction(m_Lock.GetActionID()) != m_Lock || m_Lock.GetOwner() != m_Gate || m_Lock.GetActionDuration() != 4) return false;
if (!GetGame().GetInputManager() || !GetGame().GetMenuManager() || GetGame().GetMenuManager().GetTopMenu()) return false;
bool held;
if (!ERR_OrdinaryInputObserverRules.HeldScope(m_Nonce, held) || held != m_HeldAction) return false;
int phase = m_Mode.Phase();
if (!ERR_OrdinaryInputObserverRules.PhaseAllowed(phase, m_ObservedPhase, held, true)) return false;
m_ObservedPhase = phase;
return true;
}
@@ -24,6 +24,26 @@ class ERR_OrdinaryInputObserverRules
for (int i = 0; i < nonce.Length(); i++) if (!allowed.Contains(nonce[i])) return false;
return true;
}
// A held-action observer is only a same-run phase extension, never input.
static bool HeldScope(string nonce, out bool held)
{
held = false;
string requested, input, look, gate;
if (!System.GetCLIParam("errOrdinaryHeldAction", requested)) return true;
if (System.IsConsoleApp() || !Replication.IsServer() || RplSession.Mode() != RplMode.None || requested != nonce || !Nonce(nonce)
|| !System.GetCLIParam("errOrdinaryInputObserve", input) || input != nonce
|| !System.GetCLIParam("errOrdinaryLookObserve", look) || look != nonce
|| !System.GetCLIParam("errOrdinaryGateObserve", gate) || gate != nonce) return false;
held = true;
return true;
}
static bool PhaseAllowed(int phase, int previous, bool held, bool legacyGate = false)
{
if (previous < 0) return phase == ERR_Phase.PRISON;
if (!held) return phase == ERR_Phase.PRISON || (legacyGate && phase == ERR_Phase.RADIO_SEARCH);
if (previous == ERR_Phase.PRISON) return phase == ERR_Phase.PRISON || phase == ERR_Phase.RADIO_SEARCH;
return previous == ERR_Phase.RADIO_SEARCH && phase == ERR_Phase.RADIO_SEARCH;
}
static bool Within(int start, int previous, int now, int samples)
{
return now >= start && now >= previous && now - start < 45000 && samples < 450;
@@ -46,6 +66,8 @@ class ERR_OrdinaryInputObserver : Managed
protected UUID m_Account;
protected int m_PlayerId;
protected string m_Nonce;
protected bool m_HeldAction;
protected int m_ObservedPhase = -1;
protected bool m_Screenshots;
protected bool m_Finished;
protected bool m_Ready;
@@ -88,6 +110,10 @@ class ERR_OrdinaryInputObserver : Managed
request.m_Character = CharacterControllerComponent.Cast(actor.FindComponent(CharacterControllerComponent));
request.m_Life = life; request.m_Account = life.AccountId;
request.m_PlayerId = controller.GetPlayerId(); request.m_Nonce = nonce;
if (!ERR_OrdinaryInputObserverRules.HeldScope(nonce, request.m_HeldAction)) return;
// Once a held run has an admitted life, invalid initial context is terminal.
// A later PRISON phase or replacement admission cannot restart its evidence.
if (request.m_HeldAction) s_Attempted = true;
if (!request.Valid()) return;
string screenshots;
request.m_Screenshots = System.GetCLIParam("errOrdinaryInputScreenshots", screenshots) && screenshots == "1";
@@ -102,14 +128,21 @@ class ERR_OrdinaryInputObserver : Managed
{
string nonce;
if (!Enabled(nonce) || nonce != m_Nonce || !GetGame() || !m_Mode || m_Mode != ERR_GameMode.Get()) return false;
if (!m_World || GetGame().GetWorld() != m_World || m_Mode.GetWorld() != m_World || !m_Mode.Active() || m_Mode.Phase() != ERR_Phase.PRISON) return false;
if (!m_World || GetGame().GetWorld() != m_World || m_Mode.GetWorld() != m_World || !m_Mode.Active()) return false;
if (!m_Controller || m_Controller != GetGame().GetPlayerController() || m_Controller.GetPlayerId() != m_PlayerId || m_PlayerId <= 0) return false;
PlayerManager manager = GetGame().GetPlayerManager();
if (!manager || manager.GetPlayerController(m_PlayerId) != m_Controller || manager.GetPlayerControlledEntity(m_PlayerId) != m_Actor || m_Controller.GetControlledEntity() != m_Actor) return false;
if (!ERR_Actors.CanFight(m_Actor) || m_Actor.GetWorld() != m_World || !m_Mode.Players()) return false;
if (!m_Character || m_Actor.FindComponent(CharacterControllerComponent) != m_Character || m_Character.IsUnconscious()) return false;
ERR_PlayerLife current = m_Mode.Players().CurrentActor(m_Actor);
return current && current == m_Life && current.AccountId == m_Account;
if (!current || current != m_Life || current.AccountId != m_Account) return false;
bool held;
if (!ERR_OrdinaryInputObserverRules.HeldScope(m_Nonce, held) || held != m_HeldAction) return false;
if (held && (CompartmentAccessComponent.GetVehicleIn(m_Actor) || !GetGame().GetMenuManager() || GetGame().GetMenuManager().GetTopMenu())) return false;
int phase = m_Mode.Phase();
if (!ERR_OrdinaryInputObserverRules.PhaseAllowed(phase, m_ObservedPhase, held)) return false;
m_ObservedPhase = phase;
return true;
}
protected void Record(string detail)
{
@@ -17,6 +17,8 @@ class ERR_OrdinaryLookObserver
protected int m_Previous;
protected int m_Index;
protected bool m_Stopped;
protected bool m_HeldAction;
protected int m_ObservedPhase = -1;
protected static bool Enabled(string nonce)
{
@@ -45,6 +47,8 @@ class ERR_OrdinaryLookObserver
if (controller) s_Request.m_Camera = controller.GetPlayerCamera();
if (mode && mode.Players()) s_Request.m_Life = mode.Players().CurrentActor(actor);
if (s_Request.m_Life) s_Request.m_Account = s_Request.m_Life.AccountId;
if (!ERR_OrdinaryInputObserverRules.HeldScope(nonce, s_Request.m_HeldAction))
{ s_Request.Cancel(index, now, "held-option-binding-lost"); return; }
}
s_Request.Observe(mode, world, controller, actor, nonce, started, index, now);
}
@@ -60,7 +64,7 @@ class ERR_OrdinaryLookObserver
protected bool Context()
{
if (!GetGame() || !m_Mode || !m_World || !m_Controller || !m_Actor || !m_Camera || !m_Life) return false;
if (m_Mode != ERR_GameMode.Get() || !m_Mode.Active() || m_Mode.Phase() != ERR_Phase.PRISON) return false;
if (m_Mode != ERR_GameMode.Get() || !m_Mode.Active()) return false;
if (GetGame().GetWorld() != m_World || m_Mode.GetWorld() != m_World || m_Actor.GetWorld() != m_World || m_Camera.GetWorld() != m_World) return false;
if (GetGame().GetPlayerController() != m_Controller || m_Controller.GetControlledEntity() != m_Actor || m_Controller.GetPlayerCamera() != m_Camera) return false;
PlayerManager manager = GetGame().GetPlayerManager();
@@ -70,6 +74,12 @@ class ERR_OrdinaryLookObserver
CameraManager cameras = GetGame().GetCameraManager();
if (!cameras || cameras.CurrentCamera() != m_Camera) return false;
if (!GetGame().GetInputManager() || !GetGame().GetMenuManager() || GetGame().GetMenuManager().GetTopMenu()) return false;
bool held;
if (!ERR_OrdinaryInputObserverRules.HeldScope(m_Nonce, held) || held != m_HeldAction) return false;
if (held && CompartmentAccessComponent.GetVehicleIn(m_Actor)) return false;
int phase = m_Mode.Phase();
if (!ERR_OrdinaryInputObserverRules.PhaseAllowed(phase, m_ObservedPhase, held)) return false;
m_ObservedPhase = phase;
return true;
}
+11 -5
View File
@@ -91,8 +91,8 @@
]
},
"clean_native_runtime": {
"status": "passed",
"scope": "Current197-file source: retained-service normal20m route40assertions and actual airborneStop42assertions, zero errors/unchanged source/verifiedcleanup. Stop preserves originalcontroller/token/deadline and freshnativecontrol through frozen-point contactlanding, engineoff andCANCELLED/drained. No HQaircraft, ordinaryescape, multiplayer, repeatedreliability orFPS qualification.",
"status": "pending",
"scope": "Current201-file source compiles in Workbench, but the new100m field fixture refuses the fixed corridor before allocation; no current successful integrated runtime completion. Previous200-file shared-map and197-file route/Stop passes remain historical. Held-action phase observers compile; no held-F or100m flight qualification.",
"evidence": [
"docs/evidence/native-2026-09-19-065351/report.json",
"docs/evidence/native-2026-09-19-065351/console.log.txt",
@@ -205,10 +205,16 @@
"docs/evidence/native-2026-09-19-202253-retained-aircraft-route/runner.json.txt",
"docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/report.json",
"docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/source-sha256.json",
"docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/runner.json.txt"
"docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/runner.json.txt",
"docs/evidence/native-2026-09-19-204500-field-compile-map/report.json",
"docs/evidence/native-2026-09-19-204500-field-compile-map/source-sha256.json",
"docs/evidence/native-2026-09-19-204500-field-compile-map/runner.json.txt",
"docs/evidence/native-2026-09-19-205734-field-survey-refusal/report.json",
"docs/evidence/native-2026-09-19-205734-field-survey-refusal/console.log.txt",
"docs/evidence/native-2026-09-19-205734-field-survey-refusal/source-sha256.json"
],
"source_manifest": "docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/source-sha256.json",
"native_report": "docs/evidence/native-2026-09-19-202706-retained-aircraft-stop/report.json"
"source_manifest": "docs/evidence/native-2026-09-19-204500-field-compile-map/source-sha256.json",
"native_report": "docs/evidence/native-2026-09-19-204500-field-compile-map/report.json"
},
"scripted_helicopter_loss_and_restart": {
"status": "passed",
+20
View File
@@ -102,3 +102,23 @@ SHA-256 of the exact local files read for the main API and controller findings.
| `actual successor: addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c` | `1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9` |
| `actual successor: addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c` | `e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511` |
| `staged successor: addons/ai/Scripts/Game/ERR/ERR_AircraftService.c` | `bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549` |
## Dormant implementation checkpoint
The three new FieldRules, FieldEnvelope and FieldFlight classes now implement the
bounded prototype and pass source-method regressions and independent review.
They have no normal-mission, HQ, retained-service or native-fixture entrypoint.
Native compilation and100m physical flight remain pending at this checkpoint.
Braking uses a frozen90% entry-reference ceiling and the inverse full modeled
stopping reserve, with unchanged vector slew. Candidate fuel admission is50native
units and low-fuel abort20units; neither establishes reserve adequacy or units as
litres. The softabort begins at86.5s remaining to reserve85s phases plus the
maximum1.5s caller cadence. Phase3 cancellation retains settling control, and
pre-CLIMB airborne cancellation now enables/reads back autohover before entering
braking. Both issues were found before integration and covered through the actual
inherited Cancel path. No prior native flight archive qualifies this prototype.
## First integrated native attempt,20:57
The typed service and optional Chat field fixture compile in Enfusion at the201-file snapshot. The fixed airport corridor4850.953→4950.953X fails its original complete survey before fixture allocation ([full evidence](evidence/native-2026-09-19-205734-field-survey-refusal/report.json)). No fallback point or aircraft is allocated. First-refusal diagnostics must identify the failed original predicate before changing route geometry or attempting flight. The stopping reserve remains a hypothesis: source review also identifies that approach travel can exceed the instantaneous reserve because the controller continues positioning after braking entry. Keep the strict measured check and resolve against explicit policy and actual telemetry.
+7 -1
View File
@@ -10,6 +10,12 @@ Each group, pilot and seat can appear only once in a service. A separate weak se
`StartRoute(aircraft, qualification, positiveToken, absoluteDeadline)` requires a registered, currently ready original asset and a caller-supplied `ERR_AircraftRouteEnvelope`. The controller performs the existing single qualification claim; the service never calls `Claim` or constructs a substitute qualification. The original 18–20.05 m range, terrain/clearance checks, finite fuel, native callback proof, flight bounds and deadline limits are unchanged.
`StartField(aircraft, qualification, positiveToken, absoluteDeadline)` is a separate, unqualified prototype entry point accepting only `ERR_AircraftFieldEnvelope`. It constructs only `ERR_AircraftFieldFlight`, retaining it through the common `ERR_AircraftFlight` base. No caller-supplied controller is accepted. The existing `StartRoute` still constructs its exact original route class and preserves its admission and failure behavior. Neither entry point is connected to HQ or ordinary scenario activation here.
Both kinds share the same four-asset reservation limit, 128-attempt history, `BeginAttempt` bookkeeping and start-result handling. A token attempted through one kind cannot be replayed through the other, including on a different aircraft. A pending or retired asset cannot switch kinds to bypass its state. Each controller alone validates and claims its typed certificate. Field-specific refusal, including its stricter lease or 50-native-unit fuel admission, retires the attempted asset and burns the recorded token just like a route-controller refusal; it does not trigger a fallback controller or retry. Basic null-certificate/common-admission refusals still consume no attempt.
The field controller's 100 m geometry, candidate PI/braking response, initial fuel quantity and 20-unit low-fuel abort reserve remain **unqualified physical behavior**. These quantities are not a demonstrated range model or an asserted unit of litres. The prior twenty-metre native archives above do not qualify this typed-service change or a field flight. See [the field plan](aircraft-field-route-plan.md). The allocating owner still must retain and tick the service until terminal; common-base storage does not weaken that requirement.
An accepted start attempt records its immutable token, absolute deadline and destination before calling the controller. Attempted tokens cannot be reused on any aircraft in that service, even after successful completion or a native start refusal. History is bounded to 128 attempts per service/round; exhaustion refuses additional work without dropping replay protection. Basic refusals before a ready, valid-deadline attempt consume no token. The future HQ owner must issue globally unique order tokens and must not reconstruct services to replay an old order.
If controller startup refuses after the attempt is recorded, that asset is conservatively retired for the service's lifetime. This includes a stale/already-used qualification or an external flight conflict. The service does not automatically retry, replace the pilot or mint a second order. An unexpected refusal after a nonterminal lease was established retains that flight and requests cancellation until its terminal result can be observed.
@@ -30,7 +36,7 @@ Retired entries continue to count toward the four registered assets. The service
## Verification and next integration
`python tests/test_aircraft_service.py` executes the actual service context, registration, readiness gate, start, cancellation, Tick, Stop and observation methods with fake physical/controller boundaries. It checks the four-asset limit, cross-service conflicts, duplicate tuple members, immutable tokens/destination/deadline, one delegated claim, repeated cancellation, retained airborne work, final physical readiness, capture/terminal retirement, partial-start failure and the 128-attempt replay bound. The test also checks the actual native-readiness call sites and absence of spawning, deletion, physics/input writes and scheduling. These checks are not native flight or multiplayer evidence.
`python tests/test_aircraft_service.py` executes the actual service context, registration, readiness gate, start, cancellation, Tick, Stop and observation methods with fake physical/controller boundaries. It checks the four-asset limit, cross-service conflicts, duplicate tuple members, immutable tokens/destination/deadline, one delegated claim, repeated cancellation, retained airborne work, final physical readiness, capture/terminal retirement, partial-start failure and the 128-attempt replay bound. The typed integration adds actual-method checks for known controller construction, cross-kind token replay refusal, mixed-kind attempt-budget exhaustion, field partial-start failures, and retained cancellation/Stop across both kinds. The WORKBENCH route observer casts the retained base reference back to its exact route subtype and returns null for a field flight, preventing route evidence from being relabeled. The test also checks the actual native-readiness call sites and absence of spawning, deletion, physics/input writes and scheduling. These checks are not native flight or multiplayer evidence.
The bounded native normal-route follow-up now registers the fixture's one finite aircraft/pilot after its usual physical readiness gate, then runs the same qualified20m route through this service. The separate cancellation run keeps the service alive after Stop and verifies actual continued airborne callbacks, contact landing, unchanged token/deadline, and Drained only at completion. Test refusal and capture without claiming a successful return. Production HQ radio delivery, asset authoring, empty-server scheduling and useful field-length routes remain separate work.
+5 -3
View File
@@ -1,10 +1,12 @@
# Current development status
Updated **19 September 2026, 20:27**. The new [finite aircraft retention service](aircraft-service.md) now passes its [first native route](evidence/native-2026-09-19-202253-retained-aircraft-route/report.json):40assertions, actual destination hold/contact landing/engine shutdown, zero captured errors, unchanged197-file source and verified cleanup. The first compiler failure remains archived; four status getters were corrected. The default-inert [command maintenance hook](aircraft-hq-integration-plan.md) compiles in this checkpoint and has offline lifecycle coverage; the [airborne service Stop](evidence/native-2026-09-19-202706-retained-aircraft-stop/report.json) also passes42native assertions through retained control, frozen-point landing and engine shutdown. Actual empty-server maintenance and operational HQ aircraft remain separate qualification.
Updated **19 September 2026, 20:59**. All repository checks pass after integrating the typed aircraft service, opt-in100m fixture and read-only held-action observer phase extension. The [first native100m trial](evidence/native-2026-09-19-205734-field-survey-refusal/report.json) compiles the201-file snapshot but refuses its fixed corridor before any test aircraft allocation. Its failure is retained; clearance diagnosis comes next. The current clean-runtime development gate is pending again. No100m flight, braking adequacy, operational HQ aircraft or held-F completion is established.
The explicit one-wheel prison selection path and independent raw-log validators are implemented and pass offline checks. Two native attempts remain failed before reaching selection: [201104](evidence/game-2026-09-19-201104-selection-look-timeout/runner.json.txt) exceeded the unchanged0.35-degree camera-return threshold; [201352](evidence/game-2026-09-19-201352-selection-owner-refusal/runner.json.txt) refused changed private window/process identity. Neither sent a wheel or F. The [documented exit-after-init packaging control](evidence/package-control-2026-09-19-201532-exit-after-init/review.json) reproduced the same25shutdown errors with an empty addon. Its original cleanup failure remains recorded alongside separate exact-prefix cleanup; packaging now uses the shared narrow cleanup adapter.
The [coarse prison approach trial](evidence/game-2026-09-19-205021-coarse-selection-refusal/runner.json.txt) physically completes approach and facing, then refuses selection with1.457s remaining against its unchanged1.5s admission requirement. All attempted keyboard presses were paired with releases; no wheel or F was sent. Approach took25.605s and facing5.824s. These partial observations do not turn the failed overall trial into a pass.
**All seventeen first-release acceptance cases remain pending.** The ordinary held lock action/full escape, real multiplayer, improved FPS and clean native packaging remain unqualified. Aircraft HQ activation also needs authored enemy aircraft/destinations and a useful field-length controller; the proven route remains approximately20m.
The earlier [finite aircraft service route](evidence/native-2026-09-19-202253-retained-aircraft-route/report.json) passes40native assertions and [airborne service Stop](evidence/native-2026-09-19-202706-retained-aircraft-stop/report.json) passes42, both at their197-file snapshot through retained physical control, contact landing and engine shutdown. The [200-file map regression](evidence/native-2026-09-19-204500-field-compile-map/report.json) passes58assertions. Subsequent typed-service and observer changes need their own successful integrated runtime evidence.
**All seventeen first-release acceptance cases remain pending.** The ordinary held lock action/full escape, real multiplayer, improved FPS and clean native packaging remain unqualified. The [empty-addon exit-after-init control](evidence/package-control-2026-09-19-201532-exit-after-init/review.json) still reproduces25shutdown errors. Tests remain hidden and muted, with separate profiles and guarded cleanup; original missions remain untouched.
The [route gain comparison](evidence/route-comparison-2026-09-19-192238/comparison.json) measures one native20m route per gain: translation through arrival hold improved155.365→69.293seconds, and final target error improved0.130→0.099m. The candidate passed38assertions, physical contact landing and engine shutdown. This is an isolated flight-controller result, not an FPS comparison or operational HQ air support; the production callback bridge has separate native evidence, while retained-service qualification and longer routes remain pending.
@@ -0,0 +1,42 @@
from pathlib import Path
import sys,json,hashlib,statistics,time,re,math
root=Path('/home/jakub/devel/escapistsrereintroduced'); archive=root/'docs/evidence/game-2026-09-19-205021-coarse-selection-refusal';out=Path('/tmp/erri-coarse-selection-audit')
sys.path.insert(0,str(root/'tools'))
from ordinary_gate_choices import join_choice_snapshots
from ordinary_look_evidence import validate_look_evidence
from prison_approach_evidence import validate_approach_evidence
from prison_alignment_evidence import validate_facing_evidence
from prison_action_selection_evidence import validate_selection_evidence
from ordinary_gate_evidence import validate_gate_geometry
h=json.loads((archive/'input-proof.json.txt').read_text()); text=(archive/'console.log.txt').read_text();r=json.loads((archive/'runner.json.txt').read_text());nonce=h['nonce'];a=h['approach_proof'];f=h['facing_proof'];s=h['action_selection_proof'];l=h['look_proof'];data=join_choice_snapshots(text,nonce);frames=data['snapshots']
def digest(p):return hashlib.sha256(p.read_bytes()).hexdigest()
def stats(v):return {'count':len(v),'minimum':min(v),'median':statistics.median(v),'maximum':max(v),'sum':sum(v)}
sourcehash={k:v for group in ('approach_module_sha256','alignment_module_sha256','selection_module_sha256') for k,v in h[group].items()};sourcehash['headless_input_proof.py']=h['helper_sha256'];sourcehash['headless_display_probe.py']=h['ownership_helper_sha256']
bindings={k:{'recorded_sha256':v,'actual_sha256':digest(root/'tools'/k),'matches':digest(root/'tools'/k)==v} for k,v in sourcehash.items()}
assert all(v['matches'] for v in bindings.values()),bindings
validations={
'look':validate_look_evidence(text,nonce,l,a['events'][:2]),
'approach':validate_approach_evidence(text,nonce,l,a),
'facing':validate_facing_evidence(text,nonce,l,a,f),
'selection':validate_selection_evidence(text,nonce,l,a,f,s)}
queued=int(re.findall(r'ERR INPUT OBSERVE: run='+nonce+r' sample=0 real=(\d+) world=[^ ]+ QUEUED',text)[0]); ready=data['ready']['real_ms'];ready_host=a['deadline_monotonic']-35
original_end=ready_host+(45000-(ready-queued))/1000-.5
motions=[]
for name,proof in [('approach',a),('facing',f)]:
receipts={x['sample']:x['received_monotonic'] for x in proof['samples']}
for m in proof['motions']:
before=frames[m['after_sample']];after=frames[m['response_sample']];yaw=lambda x:math.degrees(math.atan2(x[0],x[2]));turn=(yaw(after['look']['direction'])-yaw(before['look']['direction'])+180)%360-180
motions.append({'stage':name,**m,'native_turn_degrees':turn,'before_receipt_to_dispatch_s':m['monotonic']-receipts[m['after_sample']],'dispatch_to_response_receipt_s':receipts[m['response_sample']]-m['monotonic'],'native_span_ms':after['real_ms']-before['real_ms']})
events=h['events'];holds=[events[i+1]['monotonic']-events[i]['monotonic'] for i in range(0,len(events),2)];releaseguards=[g['returned_monotonic']-g['entered_monotonic'] for t in a['release_timings'] for g in t['guards']]
metrics={'queued_real_ms':queued,'ready_real_ms':ready,'ready_host':ready_host,'raw_original_end_ms':queued+45000,'conservative_original_end_host':original_end,'look_duration_s':l['finished_monotonic']-l['started_monotonic'],'approach_duration_s':a['finished_monotonic']-a['started_monotonic'],'approach_first_turn_through_first_W_s':events[0]['monotonic']-a['motions'][0]['monotonic'],'approach_final_distance_m':validations['approach']['final_distance_metres'],'approach_path_m':validations['approach']['path_metres'],'approach_pulses':len(holds),'approach_yaw_requests':len(a['motions']),'holds_s':stats(holds),'release_guards_s':stats(releaseguards),'total_release_guard_s':sum(releaseguards),'actual_release_over_guard_s':sum(holds)-sum(releaseguards),'largest_stop_m':max(t['distance'] for t in a['stops']),'facing_wrapper_started_host':f['deadline_monotonic']-8,'facing_prerequisite_before_module_s':f['started_monotonic']-(f['deadline_monotonic']-8),'facing_duration_s':f['finished_monotonic']-f['started_monotonic'],'facing_yaw_requests':len(f['motions']),'facing_finish_to_selection_start_s':s['started_monotonic']-f['finished_monotonic'],'selection_initial_read_s':s['finished_monotonic']-s['started_monotonic'],'shared_deadline_host':f['deadline_monotonic'],'remaining_at_facing_end_s':f['deadline_monotonic']-f['finished_monotonic'],'remaining_at_selection_entry_s':f['deadline_monotonic']-s['started_monotonic'],'remaining_at_refusal_s':f['deadline_monotonic']-s['finished_monotonic'],'shortfall_to_1_5_admission_s':1.5-(f['deadline_monotonic']-s['finished_monotonic']),'unused_original_time_beyond_stage_s':original_end-f['deadline_monotonic'],'raw_original_ms_remaining_at_facing_last_sample':queued+45000-frames[f['final_sample']]['real_ms'],'facing_final_pair':f['facing_samples'],'facing_last_response_sample':f['motions'][-1]['response_sample'],'facing_last_response_receipt_to_finish_s':f['finished_monotonic']-next(x['received_monotonic'] for x in f['samples'] if x['sample']==f['motions'][-1]['response_sample'])}
# Timing here is a separate offline replay, not the archived runtime latency.
functions={'join_choice_snapshots':lambda:join_choice_snapshots(text,nonce),'validate_gate_geometry':lambda:validate_gate_geometry(text,nonce,data['ready']['sample'],max(frames)),'validate_approach_evidence':lambda:validate_approach_evidence(text,nonce,l,a),'validate_facing_evidence':lambda:validate_facing_evidence(text,nonce,l,a,f)}
bench={}
for name,fn in functions.items():
times=[]
for _ in range(7):
start=time.perf_counter();fn();times.append(time.perf_counter()-start)
bench[name]=stats(times)
result={'scope':'Read-only diagnosis of archived local coarse approach/facing refusal; no input/runtime/source changes, no selection or held-action qualification','archive':str(archive),'nonce':nonce,'artifact_hashes':{p.name:digest(p) for p in archive.iterdir() if p.is_file() and p.suffix!='.bmp'},'tool_source_bindings':bindings,'independent_raw_validation':validations,'metrics':metrics,'motions':motions,'offline_replay_seconds_not_native_timings':bench,'input_end':{'keys':[e['key'] for e in events],'wheel_events':h['wheel_events'],'paired_release_errors':h['paired_release_errors'],'wheel_release_errors':h['wheel_release_errors'],'held_key':h['unconfirmed_held_key'],'held_button':h['unconfirmed_held_button'],'all_attempted_presses_released':h['all_attempted_presses_released'],'runner_result':r['result'],'runner_cleanup_confirmed':r['cleanup_confirmed'],'helper_supervision_error':h.get('supervision_error')}}
(out/'diagnostic.json').write_text(json.dumps(result,indent=2)+'\n')
print(json.dumps({'metrics':metrics,'validation':{k:v.get('verified') for k,v in validations.items()},'offline_benchmark':bench,'source_bindings_match':all(x['matches'] for x in bindings.values())},indent=2))
@@ -0,0 +1,435 @@
{
"scope": "Read-only diagnosis of archived local coarse approach/facing refusal; no input/runtime/source changes, no selection or held-action qualification",
"archive": "/home/jakub/devel/escapistsrereintroduced/docs/evidence/game-2026-09-19-205021-coarse-selection-refusal",
"nonce": "ce06dd0073694c469d53956617d51bdf",
"artifact_hashes": {
"console.log.txt": "19f664515ff2ad37fd31faf7f71d319672809e9f21900a223dfa55b416e9c9cf",
"script.log.txt": "cc0436cd1f083c3ef05dca13f1ed4f020944e1dc17a2de55153e728dc9efd69c",
"error.log.txt": "4f6c4fa0f54fa4e46af4c1380bd184d74f707a7c6efbfd76f66fb80742df1dc7",
"rereintroduced-hq.log.txt": "8db452edc8255b731774e105ba7ebbe4d6e9965ca2ee497051a9c7953bc82c66",
"headless-launch.log.txt": "82b9b6c857b929110f34f0db1927587784def0d6d026e1745f5c5f04057802f0",
"runner.json.txt": "b198bd8329760be145fb34ef472f5ac8dc7be4f0588263dd6c3235362fc6970f",
"game-startup-report.json.txt": "d427c1cbbc33b900d52091bd80ebc7b354061922fc7a6e8d2dade7317432895c",
"display-ownership.json.txt": "ca694fe7db29ea5e96a541c9e5b708c3f4a05ff434eb3e52a051042775077f77",
"input-proof.json.txt": "23a1ed5fad7b15408ff37dc0dd0b8713be7825a096e3449f05b80c338b77cd62",
"source-sha256.json": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"source-provenance.json": "c1f270c1969af10bbfb78e1d661ce66873eb4c96f321df980a722a80c71c05f1",
"launch-source-sha256.json": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"launch-source.json": "a4d5aa3fcbcdcc47f6f46626b468535cc24867f888a50e8bb12385fcec4428ce",
"report.json": "14115e1fca0855bf31e20e65ee2130b71a9e2aa3f9daf6ec6f703b718f2ab180"
},
"tool_source_bindings": {
"prison_approach_proof.py": {
"recorded_sha256": "fcd2936fa5a67ba6a970c56e8e4d04cc76bff6ffc6087ac95085716fb5fa673f",
"actual_sha256": "fcd2936fa5a67ba6a970c56e8e4d04cc76bff6ffc6087ac95085716fb5fa673f",
"matches": true
},
"ordinary_gate_evidence.py": {
"recorded_sha256": "5f02596c92b945b28081d861e466f01897875489e673bf0feafa6e4ebdae1708",
"actual_sha256": "5f02596c92b945b28081d861e466f01897875489e673bf0feafa6e4ebdae1708",
"matches": true
},
"ordinary_look_evidence.py": {
"recorded_sha256": "3b6a0415352295e15e988ff78659e81981001e1ee03430a5b4c2df1518dd9a31",
"actual_sha256": "3b6a0415352295e15e988ff78659e81981001e1ee03430a5b4c2df1518dd9a31",
"matches": true
},
"prison_approach_evidence.py": {
"recorded_sha256": "12f1618b16f845d987ba928c8d95f2d448bc6a600fb76f8870b2ae8fd4a660cb",
"actual_sha256": "12f1618b16f845d987ba928c8d95f2d448bc6a600fb76f8870b2ae8fd4a660cb",
"matches": true
},
"prison_alignment_proof.py": {
"recorded_sha256": "605cb374d42dec637934188b8f69492e924787c309139ee3dd6233ae073e4063",
"actual_sha256": "605cb374d42dec637934188b8f69492e924787c309139ee3dd6233ae073e4063",
"matches": true
},
"prison_alignment_evidence.py": {
"recorded_sha256": "e6c3bdae65a216ae5db7b2a18f7b2f5e347b0998ec55845d7c263d2909dc64f7",
"actual_sha256": "e6c3bdae65a216ae5db7b2a18f7b2f5e347b0998ec55845d7c263d2909dc64f7",
"matches": true
},
"ordinary_gate_choices.py": {
"recorded_sha256": "59a0055d44f2f5b27c530406e5cbd46847357285d2d260d08e5c34cc53b7a795",
"actual_sha256": "59a0055d44f2f5b27c530406e5cbd46847357285d2d260d08e5c34cc53b7a795",
"matches": true
},
"prison_action_selection_proof.py": {
"recorded_sha256": "00d397bf9b13405a2612678ec866f09d452acb4079f2072eb97c79a7fdf650da",
"actual_sha256": "00d397bf9b13405a2612678ec866f09d452acb4079f2072eb97c79a7fdf650da",
"matches": true
},
"prison_action_selection_evidence.py": {
"recorded_sha256": "bd38768efb724076444a88406cddceade4cb3492b1c88fe17e4feca3684529f5",
"actual_sha256": "bd38768efb724076444a88406cddceade4cb3492b1c88fe17e4feca3684529f5",
"matches": true
},
"headless_input_proof.py": {
"recorded_sha256": "8530fc61dac15fe09e558f9866d33b512d0357d5369f8ec652be0e5582ea3b8f",
"actual_sha256": "8530fc61dac15fe09e558f9866d33b512d0357d5369f8ec652be0e5582ea3b8f",
"matches": true
},
"headless_display_probe.py": {
"recorded_sha256": "4ec3851835474eb4d8b84fc74c20d08567d92906ce832643d911f1d062abf0bd",
"actual_sha256": "4ec3851835474eb4d8b84fc74c20d08567d92906ce832643d911f1d062abf0bd",
"matches": true
}
},
"independent_raw_validation": {
"look": {
"verified": true,
"errors": [],
"scope": "two fixed relative mouse requests with native camera yaw response and return; stationary body; no visual, aiming, multiplayer or general input qualification",
"baseline_samples": [
25,
26
],
"response_sample": 35,
"return_sample": 43,
"baseline_yaw_delta_degrees": 0.0,
"response_yaw_degrees": 1.7573359632885115,
"return_yaw_degrees": -0.026015146900135733,
"native_duration_ms": 2031,
"motion_count": 2,
"keyboard_order_verified": true
},
"approach": {
"verified": true,
"errors": [],
"scope": "one private ordinary-input approach to the interior prison gate waypoint; no unlock, escape, visual, multiplayer or FPS qualification",
"held_action_verified": false,
"escape_verified": false,
"profile": "coarse",
"first_sample": 47,
"last_sample": 272,
"native_duration_ms": 25467,
"path_metres": 4.5739295536078455,
"target": [
6092.77,
211.444,
7155.5
],
"final_distance_metres": 0.676239602508427,
"pulse_count": 15,
"turn_count": 7,
"geometry": {
"verified": true,
"errors": [],
"scope": "same-session native gate/input/camera telemetry and stable prison/lock geometry only; no approach, held-action completion, visual or multiplayer qualification",
"approach_verified": false,
"held_action_verified": false,
"start_sample": 47,
"end_sample": 272,
"native_duration_ms": 25467,
"snapshot_count": 226,
"geometry_max_drift_metres": 0.0,
"prison": [
6090.0,
211.444,
7160.0
],
"gate": [
6090.0,
211.344,
7154.0
],
"context": [
6092.77,
213.226,
7154.0
],
"radius": 2.0,
"gate_forward": [
0.0,
0.0,
1.0
],
"initial_context_distance_metres": 6.469450981343299,
"final_context_distance_metres": 2.7679205190902723
}
},
"facing": {
"verified": true,
"errors": [],
"scope": "stationary yaw facing the original gate with exact disabled door and available lock diagnostics; lock selection, held action and escape remain unverified",
"held_action_verified": false,
"escape_verified": false,
"lock_selection_verified": false,
"first_sample": 272,
"last_sample": 323,
"turn_count": 4,
"native_duration_ms": 6000,
"final_yaw_error_degrees": 0.6123750700397466,
"facing_samples": [
322,
323
]
},
"selection": {
"verified": false,
"errors": [
"selection did not complete under exact nonce without extra input"
],
"scope": "one guarded private wheel pair and native selection of the original prison lock after verified approach/facing; no F hold, unlock, exit or multiplayer qualification",
"held_action_verified": false,
"escape_verified": false
}
},
"metrics": {
"queued_real_ms": 30453,
"ready_real_ms": 32719,
"ready_host": 820514.195862484,
"raw_original_end_ms": 75453,
"conservative_original_end_host": 820556.4298624841,
"look_duration_s": 2.559277907013893,
"approach_duration_s": 25.60461599996779,
"approach_first_turn_through_first_W_s": 5.956018910976127,
"approach_final_distance_m": 0.676239602508427,
"approach_path_m": 4.5739295536078455,
"approach_pulses": 15,
"approach_yaw_requests": 7,
"holds_s": {
"count": 15,
"minimum": 0.19054808898363262,
"median": 0.1954068309860304,
"maximum": 0.2074798799585551,
"sum": 2.945522066554986
},
"release_guards_s": {
"count": 15,
"minimum": 0.19048968993593007,
"median": 0.19536762195639312,
"maximum": 0.20743700093589723,
"sum": 2.944871062063612
},
"total_release_guard_s": 2.944871062063612,
"actual_release_over_guard_s": 0.0006510044913738966,
"largest_stop_m": 0.43829214001670064,
"facing_wrapper_started_host": 820542.866666449,
"facing_prerequisite_before_module_s": 0.15752315195277333,
"facing_duration_s": 5.824266928015277,
"facing_yaw_requests": 4,
"facing_finish_to_selection_start_s": 0.27541963499970734,
"selection_initial_read_s": 0.2856277449754998,
"shared_deadline_host": 820550.866666449,
"remaining_at_facing_end_s": 2.01820992003195,
"remaining_at_selection_entry_s": 1.7427902850322425,
"remaining_at_refusal_s": 1.4571625400567427,
"shortfall_to_1_5_admission_s": 0.04283745994325727,
"unused_original_time_beyond_stage_s": 5.56319603510201,
"raw_original_ms_remaining_at_facing_last_sample": 8168,
"facing_final_pair": [
322,
323
],
"facing_last_response_sample": 320,
"facing_last_response_receipt_to_finish_s": 0.34708530991338193
},
"motions": [
{
"stage": "approach",
"dx": 341,
"dy": 0,
"monotonic": 820518.497399937,
"after_sample": 54,
"response_sample": 60,
"native_turn_degrees": 25.643902930191132,
"before_receipt_to_dispatch_s": 0.39629169506952167,
"dispatch_to_response_receipt_s": 0.4164421010063961,
"native_span_ms": 700
},
{
"stage": "approach",
"dx": 341,
"dy": 0,
"monotonic": 820519.522170431,
"after_sample": 62,
"response_sample": 70,
"native_turn_degrees": 26.4583592407501,
"before_receipt_to_dispatch_s": 0.39604878902900964,
"dispatch_to_response_receipt_s": 0.4280811380594969,
"native_span_ms": 900
},
{
"stage": "approach",
"dx": 341,
"dy": 0,
"monotonic": 820520.572737873,
"after_sample": 72,
"response_sample": 78,
"native_turn_degrees": 26.700881879664365,
"before_receipt_to_dispatch_s": 0.4093965779757127,
"dispatch_to_response_receipt_s": 0.42311287007760257,
"native_span_ms": 733
},
{
"stage": "approach",
"dx": 341,
"dy": 0,
"monotonic": 820521.615695336,
"after_sample": 80,
"response_sample": 88,
"native_turn_degrees": 26.824306620040772,
"before_receipt_to_dispatch_s": 0.407363394042477,
"dispatch_to_response_receipt_s": 0.43050858203787357,
"native_span_ms": 867
},
{
"stage": "approach",
"dx": 200,
"dy": 0,
"monotonic": 820522.650648577,
"after_sample": 89,
"response_sample": 97,
"native_turn_degrees": 15.108903862000403,
"before_receipt_to_dispatch_s": 0.39425166801083833,
"dispatch_to_response_receipt_s": 0.4525398960104212,
"native_span_ms": 898
},
{
"stage": "approach",
"dx": 45,
"dy": 0,
"monotonic": 820523.740309086,
"after_sample": 99,
"response_sample": 107,
"native_turn_degrees": 3.4696216165246483,
"before_receipt_to_dispatch_s": 0.4120595670538023,
"dispatch_to_response_receipt_s": 0.46701870998367667,
"native_span_ms": 866
},
{
"stage": "approach",
"dx": 33,
"dy": 0,
"monotonic": 820537.319254032,
"after_sample": 219,
"response_sample": 227,
"native_turn_degrees": 2.7455479541940804,
"before_receipt_to_dispatch_s": 0.42555468797218055,
"dispatch_to_response_receipt_s": 0.47311301599256694,
"native_span_ms": 867
},
{
"stage": "facing",
"dx": 128,
"dy": 0,
"monotonic": 820543.973141197,
"after_sample": 278,
"response_sample": 284,
"native_turn_degrees": 10.260641687863767,
"before_receipt_to_dispatch_s": 0.4740198829676956,
"dispatch_to_response_receipt_s": 0.202212834963575,
"native_span_ms": 667
},
{
"stage": "facing",
"dx": 128,
"dy": 0,
"monotonic": 820544.91196243,
"after_sample": 286,
"response_sample": 294,
"native_turn_degrees": 10.703148333470523,
"before_receipt_to_dispatch_s": 0.469738899031654,
"dispatch_to_response_receipt_s": 0.5037237229989842,
"native_span_ms": 1000
},
{
"stage": "facing",
"dx": 128,
"dy": 0,
"monotonic": 820546.163581055,
"after_sample": 296,
"response_sample": 310,
"native_turn_degrees": 10.010158948301068,
"before_receipt_to_dispatch_s": 0.47138093097601086,
"dispatch_to_response_receipt_s": 1.0812573919538409,
"native_span_ms": 1567
},
{
"stage": "facing",
"dx": 51,
"dy": 0,
"monotonic": 820547.994536107,
"after_sample": 312,
"response_sample": 320,
"native_turn_degrees": 4.081253970741187,
"before_receipt_to_dispatch_s": 0.4826455160509795,
"dispatch_to_response_receipt_s": 0.5068351119989529,
"native_span_ms": 967
}
],
"offline_replay_seconds_not_native_timings": {
"join_choice_snapshots": {
"count": 7,
"minimum": 0.03783283696975559,
"median": 0.04051079694181681,
"maximum": 0.0408189290901646,
"sum": 0.27835581090766937
},
"validate_gate_geometry": {
"count": 7,
"minimum": 0.036523447022773325,
"median": 0.037821937003172934,
"maximum": 0.03948510903865099,
"sum": 0.26564939005766064
},
"validate_approach_evidence": {
"count": 7,
"minimum": 0.08901217998936772,
"median": 0.09373382106423378,
"maximum": 0.10571677796542645,
"sum": 0.6610238321591169
},
"validate_facing_evidence": {
"count": 7,
"minimum": 0.1799939649645239,
"median": 0.18100794102065265,
"maximum": 0.2001678440719843,
"sum": 1.2925933171063662
}
},
"input_end": {
"keys": [
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W",
"W"
],
"wheel_events": [],
"paired_release_errors": [],
"wheel_release_errors": [],
"held_key": null,
"held_button": null,
"all_attempted_presses_released": true,
"runner_result": "input-exercise-failed",
"runner_cleanup_confirmed": true,
"helper_supervision_error": "Private input worker exited unsuccessfully"
}
}
@@ -0,0 +1,40 @@
# Archived coarse approach: selection refused safely
Read-only audit of `docs/evidence/game-2026-09-19-205021-coarse-selection-refusal`, nonce `ce06dd0073694c469d53956617d51bdf`. `diagnostic.json` records archive hashes, exact matching helper/module hashes, raw validator outcomes and reproducible timing calculations. `analyze.py` reparses preserved console bytes; its small offline parser benchmark is explicitly separate from native runtime timing. No source, input or runtime changes were made.
The independent raw look, approach and facing validators pass. Selection does not pass: no wheel event occurred. The native startup report has no script/runtime or engine errors, while the outer runner correctly records `input-exercise-failed` and confirmed containment cleanup. The helper's worker-failure/supervision record is retained; successful approach/facing do not make the requested selection trial successful.
## Measured cost and refusal
| Interval or observation | Archived measurement |
|---|---:|
| Look calibration | 2.559s |
| Coarse approach | 25.605s; 7 mouse requests, 15 W pairs |
| First approach turn through first W | 5.956s |
| Physical path / final target error | 4.574m / 0.676m |
| W holds min / median / max | 190.548 / 195.407 / 207.480ms |
| Sum of W holds / their release guards | 2.945522s / 2.944871s |
| Largest complete physical stop | 0.4383m |
| Facing prerequisite before module entry | 0.1575s |
| Facing module | 5.8243s; 4 mouse requests |
| Remaining shared lease at facing completion | 2.0182s |
| Facing completion through selection module entry | 0.2754s |
| Selection initial guarded read | 0.2856s |
| Remaining lease at wheel admission check | **1.45716s** |
| Shortfall against unchanged 1.5s admission | **42.84ms** |
The fifteen release guards account for all but0.651ms of aggregate actual W-held duration. This run therefore does not support shortening a wait or removing a release ownership check. All W pairs were released; there is no held key/button uncertainty, paired-release error, wheel input, F input or gate operation.
The bottleneck is the separate frozen **8-second facing→selection lease**, not the45-second native observation clock. That stage expires at host820550.866666. The conservative original observation deadline is820556.429862, but using its additional5.563s would renew the forbidden stage lease. At facing's last native sample323, real67285ms, the raw QUEUED30453ms+45000ms lifetime had8.168s left. None of this authorizes a longer selection attempt or a held-F attempt.
## Narrow candidate: do not drain an already accepted facing pair twice
`tools/prison_alignment_proof.py`, `_perform_alignment` completion branch around lines171–181, first finds a valid stable pair, then unconditionally calls `read()` again and recomputes that pair. Every `read()` already performs the full live ownership guard, idle check, ordered complete-history consumption, stationary/geometry/action checks, sample freshness and immutable deadline checks. On this run the last turn was acknowledged at sample320; **319/320 already meet the native facing condition**: consecutive100ms, identical yaw161.9807°, original context and lock permission true, and original disabled door selected. Their handle-bearing errors were0.5392°/0.2516°. The next drain advanced to321–323, which remained equally valid. Sample320's receipt through final completion consumed0.3471s; that span includes processing and the redundant final guarded read, so it is not an exact guard-only measurement.
A bounded future change could let **facing-only** return the already accepted pair after `require_idle()` and explicit final freshness/deadline checks. Strict alignment's default path can remain unchanged. This is not an input operation and need not authorize anything new: retain the subsequent independent raw facing validation, selection's full guarded initial read, and every live guard/pointer/idle check immediately before wheel-down/up. Selection must still consume all intervening samples starting at the earlier facing-final index, preserving original receipts and refusing body movement, changed identity/context/permission, pressed/progress input, stale evidence or lost focus before any wheel event. Do not discard or relabel any later raw records.
The expected saving is one existing observation guard plus one complete-history parse, plausibly a few tenths of a second here; **43ms is only the admission deficit, not a promised execution margin**. Native timing could vary, and wheel delivery/confirmation/acknowledgement must still finish within the same old deadline. No lease,1.5s admission, pointer bound, turn bound or input capability should change. A regression should prove an already fresh pair returns without an extra observation drain, while stale/expired/non-idle pairs refuse and a changed next selection sample blocks input. Re-run the full independent raw chain. A future native run must retain refusal if this is still insufficient.
An alternative is parse-result reuse keyed to exact immutable console content within one observer call. The current `Observer.approach_data()` separately runs `join_choice_snapshots` and `validate_gate_geometry` (which reparses); `validate_facing_evidence` also independently revalidates the prior route. Seven offline replays measured medians40.5ms/37.8ms for the first two functions and181.0ms for complete facing validation. Those numbers are diagnostic CPU measurements on current hardware, not attribution of the historical runtime. Broad caching would require careful immutable-prefix/receipt/source binding and is a larger change than removing the redundant no-input completion drain. Do not remove independent validation or any input guard to recover time.
This report establishes a concrete source-supported optimization candidate only. It does not qualify lock selection, F hold, opening, passage through the gate, multiplayer or FPS.
@@ -0,0 +1,14 @@
{
"analyze.py": {
"bytes": 6791,
"sha256": "c1b31a1dca3d69d3858673483af7795da4037d668db53765acf2ccf1dfb516e8"
},
"diagnostic.json": {
"bytes": 15118,
"sha256": "abb486a28b93cc5ad0912ca117d2a7dcf94cfb5fe8f043b17a4c9ac766c4c572"
},
"review.md": {
"bytes": 5966,
"sha256": "676228c77fe715715aa2bb3f7196f0b3758aa968627ccf1219178a4401448a6f"
}
}
@@ -0,0 +1,12 @@
# Offline actual-rule calculation only: assumes instantaneous reference tracking.
# This is deliberately NOT an engine/physics measurement or benchmark.
import runpy,sys,types,tempfile,subprocess,contextlib,io
from pathlib import Path
root=Path('/tmp/erri-next-build');captured=[]
sys.modules['policy_harness']=types.SimpleNamespace(ROOT=root,run=captured.append)
with contextlib.redirect_stdout(io.StringIO()):
runpy.run_path(str(root/'tests/test_aircraft_field_rules.py'))
code=captured[0].split('int main(){',1)[0]
code+='#include <cstdio>\nint main(){for(float v:{1.0f,1.5f,2.0f}){float remaining=25, elapsed=0, low=-1;vector ref={v,0,0};float cap=.9f*v;while(elapsed<100){float target=Rules::ApproachSpeed(remaining,std::min(ref.Length(),cap));ref=Rules::RampReference(ref,{target,0,0},.01f);remaining-=ref[0]*.01f;elapsed+=.01f;if(ref.Length()<.25f){if(low<0)low=elapsed;if(elapsed-low>=2)break;}else low=-1;}std::printf("initial_v=%.2f reserve=%.6f travel=%.6f time=%.3f final_remaining=%.6f final_speed=%.6f\\n",v,Rules::BrakingReserve(v),25-remaining,elapsed,remaining,ref.Length());}}\n'
with tempfile.TemporaryDirectory(prefix='erri-field-model-') as d:
p=Path(d);(p/'model.cpp').write_text(code);subprocess.run(['g++','-std=c++17',str(p/'model.cpp'),'-o',str(p/'model')],check=True);r=subprocess.run([str(p/'model')],capture_output=True,text=True,check=True);print(r.stdout);Path('/tmp/erri-field-idealized-stop.txt').write_text('IDEALIZED ACTUAL-RULE CALCULATION; NOT NATIVE MEASUREMENTS\n'+r.stdout)
@@ -0,0 +1,4 @@
IDEALIZED ACTUAL-RULE CALCULATION; NOT NATIVE MEASUREMENTS
initial_v=1.00 reserve=7.333333 travel=21.876759 time=28.041 final_remaining=3.123242 final_speed=0.094451
initial_v=1.50 reserve=12.000000 travel=21.876585 time=21.780 final_remaining=3.123415 final_speed=0.094557
initial_v=2.00 reserve=18.333332 travel=21.876722 time=19.480 final_remaining=3.123278 final_speed=0.094473
@@ -0,0 +1,35 @@
# Field-flight operational audit — read-only, before first100m trial
Scope: staged production `ERR_AircraftFieldFlight.c`, `ERR_AircraftFieldRules.c`, existing native20m log, and field fixture evidence contract. No engine, display, gameplay, source or fixture changes were made. The following offline calculation executes actual pure rule bodies inside an explicitly idealized reference-following model; it is neither native measurement nor a performance benchmark.
## Actionable mismatch: approach travel versus immediate stopping reserve
`ERR_AircraftFieldFlight.CheckTranslation` enters braking at25m or the speed-derived reserve. `BeginFieldBrake` freezes the normal landing target at the destination and caps the prior reference speed by0.9. `FieldDemand` then continues toward that destination using `ApproachSpeed(remaining,min(current,cap))`. The inverse-reserve schedule correctly includes the1s latency and3m margin, but it intentionally keeps advancing until roughly3m remains; it does not request an immediate stop within the reserve measured at the beginning of that phase.
The fixture's read-only `BrakeBegan` records that initial reserve and `BrakeStopped` rejects sampled path or displacement exceeding it. This is a stronger immediate-stopping contract. The two contracts disagree even with instantaneous, perfectly followed velocity references. `/tmp/erri_field_idealized_stop.py` extracts and compiles the actual Rules bodies, integrates at0.01s with actual vector slew and frozen0.9 cap, and stops after two seconds below0.25m/s. `/tmp/erri-field-idealized-stop.txt` records its explicitly non-native results:
| Initial actual/reference speed | Declared immediate reserve | Idealized phase travel | Idealized elapsed |
|---|---:|---:|---:|
|1.0m/s|7.333m|21.877m|28.041s|
|1.5m/s|12.000m|21.877m|21.780s|
|2.0m/s|18.333m|21.877m|19.480s|
These values are analytical counterexamples to the joint policy contract, not predictions of actual Mi8 stopping. Native overshoot, lag, autohover and integral history can change them. A successful endpoint arrival does not cure the evidence mismatch.
Smallest next decision: retain the strict fixture and make production explicitly stop within its declared initial reserve (e.g. a genuine immediate zero-reference braking phase), accepting that slow positioning afterward may exceed the unchanged45s phase budget. Alternatively, deliberately design separate bounded approach and stopping phases with the stopping point/reserve declared before the actual stop command, then independently review its measurement contract. Do not merely relabel the current25m point, increase the reserve to the observed travel, or remove the failed stopping criterion after a trial.
## Other reviewed behavior and limits
- Field-demand signs and airframe projection follow the existing independently authored route controller: world desired-minus-actual velocity, then projections onto actual forward/right basis and nonnegative opposing action pairs. The20m native run202706 moved along positiveX using this path. I found no source-backed sign inversion. This does not establish stability of the new0.08 cap, integral gain0.02 or higher velocity.
- Integral suppression when saturated and outward, vector0.2m/s² reference slew, native actual-speed2.5m/s refusal, and reset before slow-position/landing are present. The autohover transfer function and physical deceleration remain unidentified. Integral lag/oscillation is a native risk, not a proven defect from source alone.
- The immutable original deadline remains inherited. Owner Tick begins reserve cancellation by86.5s remaining, and braking/settling45s, landing25s and shutdown15s remain individually clamped by that original deadline. This covers the85s allocation only while the expected owner cadence holds; arbitrary scheduling stalls cannot guarantee the reserve. Native callbacks still refuse hard expiry.
- Early airborne POSITIVE/NEGATIVE cancellation now enables and reads back autohover before committing braking. Mid-settle cancellation retains the original point and deadline. No public base Start/StartTranslation shortcut admits a field flight.
- Preflight50 and abort20 native fuel units are explicit candidate thresholds. They are not a measured endurance model. The existing20m native cancellation202706 completed roughly74s after initial control admission and16.67s after serviceStop; this does not establish higher-speed100m fuel or stopping requirements.
- No additional source-proven operational defect was found in this pass. Native geometry/survey refusal, actual control consumption, cruise speed, braking, landing and finite fuel remain pending. The fixed airport corridor may refuse before allocation.
## Exact source identities read
- FieldFlight: `e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba`
- FieldRules: `395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae`
- NativeFieldProbe: `d2d2dd65e202672f285ed9afb7ee0247da31b8eb29e0fc3091ccb846f49236e8`
- Installed/current20m evidence read: `/tmp/erri-workbench-profile/logs/logs_2026-09-19_20-27-06/console.log` (read only).
@@ -0,0 +1,5 @@
{
"idealized_model.py": "c8d773414f4a337f243d9e306bffa8a03107fe6c65805715b13208f192a10669",
"idealized_result.txt": "280d54f198e724e5c4d0fe7a4eb789d392c6746fe298eb0ac28ec23e48214718",
"review.md": "dcd4fd6cba34b92eebdf00924542537eefd189052031b8b8db46702207b4fe8c"
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,565 @@
{
"schema": 1,
"kind": "headless-display-read-only",
"binding": {
"display": ":2",
"gamescope": {
"pid": 1074649,
"start": 82047958,
"uid": 1000
},
"xwayland": {
"pid": 1074672,
"start": 82047963,
"uid": 1000
},
"sockets": [
{
"path": "/tmp/.X11-unix/X2",
"inode": 68966519
},
{
"path": "@/tmp/.X11-unix/X2",
"inode": 68966518
}
],
"relationship": {
"mode": "shared-listeners",
"checks": {
"start_not_older_than_gamescope": true,
"wrapper_run_nonce_valid": true,
"xwayland_prefix_matches": true,
"gamescope_prefix_matches": true,
"xwayland_run_nonce_matches": true,
"gamescope_run_nonce_matches": true,
"xwayland_holds_all_display_listeners": true,
"gamescope_holds_all_display_listeners": true,
"same_listener_inodes": true,
"listener_inodes": [
68966519,
68966518
],
"process_identities_stable": true
}
}
},
"owned_game_window_verified": true,
"input_target_verified": true,
"read_only": true,
"input_sent": false,
"release_qualified": false,
"scope": "Read-only private X11 process/window ownership; no input or gameplay proof",
"helper_sha256": "4ec3851835474eb4d8b84fc74c20d08567d92906ce832643d911f1d062abf0bd",
"wrapper": {
"pid": 1074726,
"start": 82047991,
"uid": 1000
},
"command": [
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"-addonsDir",
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
"-addons",
"FA804F411BDDF2C6",
"-profile",
"Z:/tmp/erri-game-profile",
"-errOrdinaryScenario",
"chat",
"-noSplash",
"-noBackend",
"-noSound",
"-noThrow",
"-disableCrashReporter",
"-logconsole",
"-errOrdinaryInputObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryInputScreenshots",
"1",
"-errOrdinaryLookObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryGateObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryGateChoices",
"ce06dd0073694c469d53956617d51bdf"
],
"prefix": "/tmp/erri-headless-compat/pfx",
"profile": "/tmp/erri-game-profile",
"game_executable": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"report": "/tmp/erri-game-profile/display-ownership-ce06dd0073694c469d53956617d51bdf.json",
"query_attempts": 4,
"successful_queries": 4,
"first_window_count": 0,
"last_window_count": 12,
"first_query_error": null,
"last_query_error": null,
"last_query_status": "ok",
"owned_windows": [
{
"window": 29360129,
"pid": 1074875,
"server_pid": 1074875,
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
},
"title": "Arma Reforger",
"process": {
"pid": 1074875,
"start": 82048134,
"uid": 1000
}
}
],
"input_target": {
"window": 29360129,
"verified": true,
"reason": "owned-mapped-existing-focus",
"geometry": {
"window": 29360129,
"root": 1020,
"map_state": 2,
"window_class": 1,
"x": 0,
"y": 0,
"width": 2560,
"height": 720,
"root_width": 2560,
"root_height": 720,
"clipped_bounds": [
0,
0,
2560,
720
]
},
"focus_window": 29360129,
"focus_revert_to": 0,
"focus_chain": [
29360129
],
"focused_clipped_bounds": [
0,
0,
2560,
720
]
},
"input_target_observations": [
{
"window": 29360129,
"verified": true,
"reason": "owned-mapped-existing-focus",
"geometry": {
"window": 29360129,
"root": 1020,
"map_state": 2,
"window_class": 1,
"x": 0,
"y": 0,
"width": 2560,
"height": 720,
"root_width": 2560,
"root_height": 720,
"clipped_bounds": [
0,
0,
2560,
720
]
},
"focus_window": 29360129,
"focus_revert_to": 0,
"focus_chain": [
29360129
],
"focused_clipped_bounds": [
0,
0,
2560,
720
]
}
],
"input_target_limit": 16,
"window_count": 12,
"window_diagnostic_limit": 16,
"window_diagnostics": [
{
"window": 29360129,
"pid": 1074875,
"server_pid": 1074875,
"rejection_stage": "checks-passed",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": true,
"argv0_class": "exact-wine-z-game",
"argv0_case_insensitive_exact": true,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": true,
"argv0_class": "exact-wine-z-game",
"argv0_case_insensitive_exact": true,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 25165827,
"pid": 1074870,
"server_pid": 1074870,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 25165825,
"pid": 1074870,
"server_pid": 1074870,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 25165826,
"pid": 1074870,
"server_pid": 1074870,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 16777218,
"pid": 1074867,
"server_pid": 1074867,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 16777217,
"pid": 1074867,
"server_pid": 1074867,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291463,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291462,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291461,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291460,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291459,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
},
{
"window": 6291458,
"pid": 1074838,
"server_pid": 1074838,
"rejection_stage": "game-executable-mismatch",
"property_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"server_process": {
"readable": true,
"same_user": true,
"game_executable_match": false,
"argv0_class": "other-windows-executable",
"argv0_case_insensitive_exact": false,
"prefix_matches": true,
"display_matches": true,
"process_stable": true
},
"xres_query": {
"status": 0,
"count": 1,
"mask": 2
}
}
],
"unverified_window_count": 11,
"observation_finished": true
}
@@ -0,0 +1,81 @@
---------------------------------------------
Log Z:\tmp\erri-game-profile\logs\logs_2026-09-19_20-50-21\error.log started at 2026-09-19 20:50:23 (2026-09-19 18:50:23 UTC)
20:50:23.302 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
20:50:24.568 SCRIPT : Compiling Game scripts
20:50:24.568 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:50:24.568 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:50:24.809 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:24.821 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:50:24.847 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:50:24.945 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:50:24.945 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:50:24.946 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:50:24.946 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:50:24.983 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:50:25.028 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete
20:50:25.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:50:25.040 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:50:25.042 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:50:25.083 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:25.084 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:25.085 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:50:25.085 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:50:25.131 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:50:26.289 DEFAULT (W): No GameMode present in the world, using fallback logic!
20:50:28.541 SCRIPT : Compiling Game scripts
20:50:28.541 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:50:28.541 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:50:28.789 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:28.799 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:50:28.826 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:50:28.921 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:50:28.921 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:50:28.921 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:50:28.921 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:50:28.957 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:50:28.999 SCRIPT (W): @"Scripts/Game/ERR/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete
20:50:29.012 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:50:29.012 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:50:29.013 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:50:29.054 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:29.054 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:50:29.055 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:50:29.055 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:50:29.102 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:50:36.073 WORLD : Game::LoadEntities
20:50:36.073 WORLD : CreateEntities
20:50:36.073 WORLD : CreateEntities
20:50:36.073 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:50:36.073 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:50:36.073 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:50:42.541 WORLD : InitEntities 'world'
20:50:42.541 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:50:42.541 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:50:43.489 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:50:43.489 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
20:50:43.489 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:50:43.489 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:50:43.489 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:50:43.491 SCRIPT (W): Can't open config file ""
20:50:43.491 SCRIPT (W): Cannot update game blocklist. Backend is offline.
20:50:43.492 WORLD : InitEntities 'world'
20:50:43.492 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:50:43.492 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
20:50:43.492 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:50:43.492 SCRIPT (W): Slot_Chat Has no Content!
20:50:43.492 SCRIPT (W): Slot_VON Has no Content!
20:50:43.492 SCRIPT (W): Slot_AvailableActions Has no Content!
20:50:43.492 SCRIPT (W): Slot_Vehicle Has no Content!
20:50:43.492 SCRIPT (W): Slot_GameVersion Has no Content!
20:50:43.492 SCRIPT (W): Slot_Notifications Has no Content!
20:50:43.492 SCRIPT (W): Slot_Hints Has no Content!
20:50:43.503 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:50:43.693 WORLD : UpdateEntities
20:50:43.693 WORLD : PostFrame
20:50:43.693 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
20:50:43.693 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:50:43.742 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:50:43.742 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:50:43.742 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
20:50:43.742 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
@@ -0,0 +1,81 @@
{
"log": "console.log",
"smoke_completions": 0,
"assertions_passed": 0,
"script_or_runtime_failures": [],
"engine_errors": [],
"missing_end_screen": [],
"scope": "ordinary game startup with an explicitly requested bounded private input experiment; see input_exercise for sent-input and native-proof results; no full escape, multiplayer or FPS qualification",
"local_participant_verified": true,
"scenario_header_verified": true,
"verified_header_projects": [
"chat"
],
"game_module_defines": [
"PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG",
"PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"
],
"workbench_undefined": true,
"normal_mission_ready": true,
"unexpected_smoke_fixture": false,
"failed": false,
"ready": true,
"failure_observed_during_polling": false,
"input_observation": {
"nonce": "ce06dd0073694c469d53956617d51bdf",
"read_only": true,
"input_sent": false,
"sampler_complete": false,
"queued": true,
"ready": true,
"finished": false,
"cancelled": false,
"sample_count": 329,
"record_count": 332,
"inventory_open_observed": false,
"inventory_close_observed": false,
"capture_requests": [
"baseline"
],
"movement": {
"action_observed": false,
"physical_motion_observed": false,
"released_input_observed": false,
"max_horizontal_displacement": 0.0
},
"transitions": [
{
"sample": 0,
"real_ms": 30453,
"world_ms": 7684.52,
"event": "QUEUED"
},
{
"sample": 20,
"real_ms": 32719,
"world_ms": 9938.07,
"event": "READY"
},
{
"sample": 22,
"real_ms": 33039,
"world_ms": 10238.3,
"event": "CAPTURE_REQUEST baseline"
}
],
"errors": [
"missing/duplicate/misordered FINISHED"
],
"scope": "native read-only sampler lifecycle only; no generated input, movement success, inventory usability, screenshot file verification, manual playtest or multiplayer claim"
},
"input_exercise": {
"requested": true,
"verified": false,
"input_sent": true,
"gameplay_qualified": false,
"scope": "bounded private keyboard delivery plus native movement/inventory observations; no full escape or multiplayer qualification",
"sha256": "23a1ed5fad7b15408ff37dc0dd0b8713be7825a096e3449f05b80c338b77cd62",
"archive_file": "input-proof.json",
"error": "Private input sequence did not complete with confirmed paired release"
}
}
@@ -0,0 +1,140 @@
[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11)
[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist
[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0)
[gamescope] [Info] vulkan: physical device supports DRM format modifiers
[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend
[gamescope] [Info] vulkan: supported DRM formats for sampling usage:
[gamescope] [Info] vulkan: AR24 (0x34325241)
[gamescope] [Info] vulkan: XR24 (0x34325258)
[gamescope] [Info] vulkan: AB24 (0x34324241)
[gamescope] [Info] vulkan: XB24 (0x34324258)
[gamescope] [Info] vulkan: RG16 (0x36314752)
[gamescope] [Info] vulkan: NV12 (0x3231564E)
[gamescope] [Info] vulkan: AB4H (0x48344241)
[gamescope] [Info] vulkan: XB4H (0x48344258)
[gamescope] [Info] vulkan: AB48 (0x38344241)
[gamescope] [Info] vulkan: XB48 (0x38344258)
[gamescope] [Info] vulkan: AB30 (0x30334241)
[gamescope] [Info] vulkan: XB30 (0x30334258)
[gamescope] [Info] vulkan: AR30 (0x30335241)
[gamescope] [Info] vulkan: XR30 (0x30335258)
[gamescope] [Info] wlserver: Using explicit sync when available
[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info] wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple symbols for level 1/group 1 on key <FK23>
> Using F23, ignoring XF86TouchpadOff
> Warning: Symbol map for key <FK23> redefined
> Using last definition for conflicting fields
> Warning: Symbol map for key <FK24> redefined
> Using last definition for conflicting fields
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff
> Warning: Could not resolve keysym XF86ActionOnSelection
> Warning: Could not resolve keysym XF86ContextualInsert
> Warning: Could not resolve keysym XF86ContextualQuery
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info] pipewire: stream state changed: connecting
[gamescope] [Info] pipewire: stream state changed: paused
[gamescope] [Info] pipewire: stream available on node ID: 127
[gamescope] [Info] vblank: Using timerfd.
fsync: up and running.
[Gamescope WSI] No application info given.
[Gamescope WSI] Executable name: explorer.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: xalia.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: xalia.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported maximum keycode 709, clipping.
> X11 cannot support keycodes above 255.
> Warning: Virtual modifier Hyper multiply defined
> Using 0, ignoring 0
> Warning: Virtual modifier ScrollLock multiply defined
> Using 0, ignoring 0
Errors from xkbcomp are not fatal to the X server
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerSteam.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: ArmaReforgerSteam.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: (null)
applicationVersion: 0
pEngineName: (null)
engineVersion: 0
apiVersion: 4198400
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerSteam.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: (null)
applicationVersion: 0
pEngineName: (null)
engineVersion: 0
apiVersion: 4198400
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerSteam.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
[Gamescope WSI] Creating Gamescope surface: xid: 0x1a00030
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1a00030
[Gamescope WSI] Surface state:
steam app id: 1874880
window xid: 0x1a00030
wayland surface res id: 5
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true
[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f522c1815c0 - imageCount: 3
[Gamescope WSI] Destroying swapchain: 0x7f522c1815c0
[Gamescope WSI] Destroyed swapchain: 0x7f522c1815c0
[Gamescope WSI] Creating swapchain for xid: 0x1a00030 - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_R8G8B8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: true
[Gamescope WSI] Created swapchain for xid: 0x1a00030 swapchain: 0x7f522c1815c0 - imageCount: 3
[xwayland ei] Unhandled event EI_EVENT_SYNC (91)
[gamescope] [Error] gamescope_ei: Unhandled libei event!
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,86 @@
{
"schema_version": 1,
"launch_id": "3b7fb6b5-f969-4a89-8aed-b496bc1c0ff2",
"captured_unix": 1789843819.1819909,
"source_root": "/home/jakub/devel/escapistsrereintroduced",
"command": [
"gamescope",
"--backend",
"headless",
"-W",
"2560",
"-H",
"720",
"-w",
"2560",
"-h",
"720",
"-r",
"30",
"--",
"/usr/bin/python3",
"/home/jakub/devel/escapistsrereintroduced/tools/headless_input_proof.py",
"--enable-private-keyboard-proof",
"--host-display",
":1",
"--prefix",
"/tmp/erri-headless-compat/pfx",
"--profile",
"/tmp/erri-game-profile",
"--game-executable",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"--report",
"/tmp/erri-game-profile/input-proof-ce06dd0073694c469d53956617d51bdf.json",
"--nonce",
"ce06dd0073694c469d53956617d51bdf",
"--enable-private-look-proof",
"--enable-private-approach-proof",
"--enable-private-coarse-approach-proof",
"--enable-private-alignment-proof",
"--enable-private-selection-proof",
"--",
"/usr/bin/python3",
"/home/jakub/devel/escapistsrereintroduced/tools/headless_display_probe.py",
"--host-display",
":1",
"--prefix",
"/tmp/erri-headless-compat/pfx",
"--profile",
"/tmp/erri-game-profile",
"--game-executable",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"--report",
"/tmp/erri-game-profile/display-ownership-ce06dd0073694c469d53956617d51bdf.json",
"--observe-seconds",
"30",
"--",
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"-addonsDir",
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
"-addons",
"FA804F411BDDF2C6",
"-profile",
"Z:/tmp/erri-game-profile",
"-errOrdinaryScenario",
"chat",
"-noSplash",
"-noBackend",
"-noSound",
"-noThrow",
"-disableCrashReporter",
"-logconsole",
"-errOrdinaryInputObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryInputScreenshots",
"1",
"-errOrdinaryLookObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryGateObserve",
"ce06dd0073694c469d53956617d51bdf",
"-errOrdinaryGateChoices",
"ce06dd0073694c469d53956617d51bdf"
],
"manifest_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715"
}
@@ -0,0 +1,24 @@
{
"log": "docs/evidence/game-2026-09-19-205021-coarse-selection-refusal/console.log.txt",
"smoke_completions": 0,
"assertions_passed": 0,
"script_or_runtime_failures": [],
"engine_errors": [],
"missing_end_screen": [],
"scope": "ordinary local game startup only; no player input, full escape, multiplayer or FPS proof",
"local_participant_verified": true,
"scenario_header_verified": true,
"verified_header_projects": [
"chat"
],
"game_module_defines": [
"PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG",
"PLATFORM_WINDOWS,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"
],
"workbench_undefined": true,
"normal_mission_ready": true,
"unexpected_smoke_fixture": false,
"failed": false,
"ready": true,
"control_metadata_consistent": true
}
@@ -0,0 +1,10 @@
#1 t=7s M0 REGISTER group 1 [session=1789843842-1]
#2 t=7s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789843842-1]
#3 t=7.6s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789843842-1]
#4 t=9s M0 REGISTER group 2 [session=1789843842-1]
#5 t=9s M0 REGISTER group 3 [session=1789843842-1]
#6 t=9s M0 REGISTER group 4 [session=1789843842-1]
#7 t=9s M0 REGISTER group 5 [session=1789843842-1]
#8 t=9s M0 REGISTER group 6 [session=1789843842-1]
#9 t=9s M0 REGISTER group 7 [session=1789843842-1]
#10 t=18.8s M0 MORTAR CREW READY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; four original physical members, one manpack, 27 confirmed HE; new shell requests=27; allocation permanently closed [session=1789843842-1]
@@ -0,0 +1,125 @@
{
"stopped_unix": 1789843903.193932,
"console_sha256": "19f664515ff2ad37fd31faf7f71d319672809e9f21900a223dfa55b416e9c9cf",
"end_source_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "3b7fb6b5-f969-4a89-8aed-b496bc1c0ff2",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"started_unix": 1789843819.182105,
"result": "input-exercise-failed",
"session": "/tmp/erri-game-profile/logs/logs_2026-09-19_20-50-21",
"project": "chat",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [
{
"pid": 1074819,
"ppid": 1670,
"state": "S",
"exebasename": "wine64-preloader",
"start_ticks": 82048059,
"role": "adopted-winedevice"
}
],
"term_sent": [
1074819
],
"kill_sent": [
1074819
],
"cleared": true
}
}
},
"runner_error": null,
"failure_grace_seconds": 0,
"failure_observed_during_polling": false,
"first_failure_elapsed_seconds": null,
"executable": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/ArmaReforgerSteam.exe",
"dedicated_server": false,
"display": "headless Gamescope",
"private_viewport": {
"width": 2560,
"height": 720
},
"audio": "-noSound plus own silent sink",
"control_only": false,
"source_manifest_scope": "successor addon sources",
"scope": "ordinary game startup with an explicitly requested bounded private input experiment; see input_exercise for sent-input and native-proof results; no full escape, multiplayer or FPS qualification",
"input_observation": {
"nonce": "ce06dd0073694c469d53956617d51bdf",
"read_only": true,
"input_sent": false,
"sampler_complete": false,
"queued": true,
"ready": true,
"finished": false,
"cancelled": false,
"sample_count": 329,
"record_count": 332,
"inventory_open_observed": false,
"inventory_close_observed": false,
"capture_requests": [
"baseline"
],
"movement": {
"action_observed": false,
"physical_motion_observed": false,
"released_input_observed": false,
"max_horizontal_displacement": 0.0
},
"transitions": [
{
"sample": 0,
"real_ms": 30453,
"world_ms": 7684.52,
"event": "QUEUED"
},
{
"sample": 20,
"real_ms": 32719,
"world_ms": 9938.07,
"event": "READY"
},
{
"sample": 22,
"real_ms": 33039,
"world_ms": 10238.3,
"event": "CAPTURE_REQUEST baseline"
}
],
"errors": [
"missing/duplicate/misordered FINISHED"
],
"scope": "native read-only sampler lifecycle only; no generated input, movement success, inventory usability, screenshot file verification, manual playtest or multiplayer claim"
},
"input_exercise": {
"requested": true,
"verified": false,
"input_sent": true,
"gameplay_qualified": false,
"scope": "bounded private keyboard delivery plus native movement/inventory observations; no full escape or multiplayer qualification",
"sha256": "23a1ed5fad7b15408ff37dc0dd0b8713be7825a096e3449f05b80c338b77cd62",
"archive_file": "input-proof.json",
"error": "Private input sequence did not complete with confirmed paired release"
},
"display_ownership": {
"requested": true,
"verified": true,
"read_only": true,
"input_sent": false,
"sha256": "ca694fe7db29ea5e96a541c9e5b708c3f4a05ff434eb3e52a051042775077f77",
"archive_file": "display-ownership.json"
},
"startup_result_before_display_check": "input-exercise-failed"
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,4 @@
{
"schema_version": 1,
"kind": "launch_snapshot"
}
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,174 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33\console.log started at 2026-09-19 20:43:33 (2026-09-19 18:43:33 UTC)
20:43:33.155 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33' to filesystem under name logs
20:43:33.155 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile
20:43:33.155 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
20:43:33.157 PROFILING : Workbench Create Engine took: 10.115000 ms
20:43:34.198 INIT : INIT : Workbench Init Engine
20:43:34.199 ENGINE : Initializing engine, version 192142
20:43:34.199 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome map-ownership -noThrow -disableCrashReporter
20:43:34.208 ENGINE : Addon dirs:
20:43:34.208 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/'
20:43:34.208 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons'
20:43:34.208 ENGINE : dir: './addons'
20:43:34.208 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons'
20:43:34.208 ENGINE : Available addons:
20:43:34.208 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:43:34.208 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:43:34.208 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:43:34.208 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:43:34.208 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:43:34.208 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
20:43:34.208 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
20:43:34.208 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat
20:43:34.208 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map
20:43:34.208 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel
20:43:34.208 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai
20:43:34.208 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core
20:43:34.327 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
20:43:34.331 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
20:43:34.331 ENGINE : CPU vendor : AuthenticAMD
20:43:34.331 ENGINE : CPU type : 2
20:43:34.331 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
20:43:34.331 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
20:43:34.331 ENGINE : CPU count logical : 16
20:43:34.331 ENGINE : CPU count physical : 8
20:43:34.331 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
20:43:34.331 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:43:34.332 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:43:34.332 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:43:34.332 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:43:34.333 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:43:34.333 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb)
20:43:34.478 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb)
20:43:34.479 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:43:34.479 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33/resourceDatabase.rdb)
20:43:34.628 RESOURCES : RESOURCES : ResourceDB: full scan
20:43:34.633 RESOURCES : RESOURCES : scanning...
20:43:34.633 RESOURCES : RESOURCES : scanning @"ERR_Chat"
20:43:34.634 RESOURCES : RESOURCES : scanning @"ERR_Map"
20:43:34.636 RESOURCES : RESOURCES : scanning @"ERR_Intel"
20:43:34.636 RESOURCES : RESOURCES : scanning @"ERR_Ai"
20:43:34.637 RESOURCES : RESOURCES : scanning @"ERR_Core"
20:43:34.641 RESOURCES : RESOURCES : scanning @"ArmaReforger"
20:43:34.791 RESOURCES : RESOURCES : scanning @"core"
20:43:34.799 RESOURCES : RESOURCES : scanning @"profile"
20:43:34.799 RESOURCES : RESOURCES : scanning @"logs"
20:43:34.800 RESOURCES : RESOURCES : processing meta-files...
20:43:34.880 RESOURCES : RESOURCES : processing files...
20:43:34.892 INIT : Workbench startup
20:43:34.892 INIT : Workbench Init Engine
20:43:34.892 RESOURCES : ResourceDB: full scan
20:43:34.892 RESOURCES : processing files...
20:43:34.892 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:43:34.892 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:43:34.892 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:43:34.892 RESOURCES : RESOURCES : processing folders...
20:43:34.899 RESOURCES : RESOURCES : creating GUID-item mapping...
20:43:34.918 RESOURCES : RESOURCES : building tree...
20:43:34.992 PROFILING : ResourceDB: full scan took: 363.764400 ms
20:43:34.993 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:43:34.995 RESOURCES : ResourceDB: written 804/804 bytes
20:43:34.995 RESOURCES : ResourceDB: cache successfully saved
20:43:34.995 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:43:34.996 RESOURCES : ResourceDB: written 819/819 bytes
20:43:34.996 RESOURCES : ResourceDB: cache successfully saved
20:43:34.997 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:43:34.998 RESOURCES : ResourceDB: written 227/227 bytes
20:43:34.998 RESOURCES : ResourceDB: cache successfully saved
20:43:34.998 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:43:35.000 RESOURCES : ResourceDB: written 2403/2403 bytes
20:43:35.000 RESOURCES : ResourceDB: cache successfully saved
20:43:35.000 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:43:35.002 RESOURCES : ResourceDB: written 7443/7443 bytes
20:43:35.002 RESOURCES : ResourceDB: cache successfully saved
20:43:35.002 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:43:35.004 RESOURCES : ResourceDB: written 206/206 bytes
20:43:35.004 RESOURCES : ResourceDB: cache successfully saved
20:43:35.004 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33/resourceDatabase.rdb)
20:43:35.005 RESOURCES : ResourceDB: written 162/162 bytes
20:43:35.005 RESOURCES : ResourceDB: cache successfully saved
20:43:35.006 ENGINE : GameProject load
20:43:35.006 ENGINE : Loaded addons:
20:43:35.006 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
20:43:35.006 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
20:43:35.006 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:43:35.006 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:43:35.006 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:43:35.006 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:43:35.006 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:43:35.009 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
20:43:35.009 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf"
20:43:35.009 ENGINE : Engine user settings config loaded
20:43:35.009 PROFILING : Settings changed took: 0.001800 ms
20:43:35.119 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
20:43:35.120 RENDER : Basic screen setup:
20:43:35.120 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
20:43:35.120 RENDER : MSAA : none
20:43:35.136 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
20:43:35.136 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
20:43:35.136 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
20:43:35.136 RENDER : * core clocks 2720 MHz, memory 1124 MHz
20:43:35.136 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
20:43:35.136 RENDER : AMD AGS correctly initialized
20:43:35.137 RENDER : GPU_ATI (0x1002) (AMD Radeon RX 6950 XT (RADV NAVI21)) with 1 GPU detected, VRAM 16128MB (fast 0MB), shared 64362MB, driver version 99.19.02-230831a-396538C-AMD-Software-Adrenalin-Edition
20:43:35.137 RENDER : Detected output devices:
20:43:35.137 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
20:43:35.137 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
20:43:35.137 RENDER : Concurrent frames limit 2
20:43:35.217 RENDER : DX12 device successfully created by AMD AGS library
20:43:35.217 RENDER : * user markers not supported in this version AMD SW
20:43:35.217 RENDER : Graphics device features
20:43:35.217 RENDER : Needed:
20:43:35.217 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
20:43:35.217 RENDER : Optional:
20:43:35.217 RENDER : * Allow tearing (VSYNC) : 1
20:43:35.217 RENDER : * 16 bits : 1
20:43:35.217 RENDER : * Resource heap tier : 3
20:43:35.217 RENDER : * Persistent heaps (DRED) : 1
20:43:35.217 RENDER : * DRED 1.2 is supported by compiler
20:43:35.243 RENDER : Main RT format setup.
20:43:35.243 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
20:43:35.243 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
20:43:35.245 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
20:43:35.277 PROFILING : Settings changed took: 0.018500 ms
20:43:36.288 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:43:36.288 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:43:36.289 AUDIO : Audio client:
20:43:36.289 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:43:36.293 RENDER : RENDER : Reload shaders
20:43:36.293 RENDER : Enfusion shader version 13
20:43:36.293 INIT : INIT : ShaderListReload
20:43:36.293 PROFILING : ShaderListReload took: 0.000400 ms
20:43:36.438 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:43:36.438 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:43:36.438 AUDIO : Audio client:
20:43:36.438 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:43:36.684 RENDER : Loaded 3752 newer shader binaries
20:43:36.684 PROFILING : Reload shaders took: 391.868200 ms
20:43:36.684 ENGINE : Initializing inputs.
20:43:36.699 NETWORK : Initializing networking.
20:43:36.699 NETWORK : Using new GameRplScheduler.
20:43:36.699 SCRIPT : SCRIPT : Initializing scripts
20:43:36.699 SCRIPT : SCRIPT : ScriptProjectManager init
20:43:38.892 PROFILING : ScriptProjectManager init took: 2192.115100 ms
20:43:38.990 PROFILING : Initializing scripts took: 2290.280300 ms
20:43:39.007 ENGINE : Enfusion engine successfully created.
20:43:39.007 PROFILING : Workbench Init Engine took: 4808.551500 ms
20:43:39.007 INIT : INIT : Workbench Create Game
20:43:39.019 GUI : Using default language (en_us)
20:43:39.019 GUI : Loading 'en_us' localization file.
20:43:39.019 INIT : INIT : Loading StringTable
20:43:39.042 PROFILING : Loading StringTable took: 23.354800 ms
20:43:39.042 SCRIPT : SCRIPT : Compiling GameLib scripts
20:43:39.111 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:43:39.112 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:43:39.112 PROFILING : Compiling GameLib scripts took: 70.118000 ms
20:43:39.112 SCRIPT : SCRIPT : Compiling Game scripts
20:43:40.207 INIT : Workbench Create Game
20:43:40.207 SCRIPT : Compiling Game scripts
20:43:40.207 SCRIPT (E): @"Scripts/Game/ERR/ERR_AircraftFieldRules.c,55": Expected name, not a keyword 'reference'
20:43:40.425 SCRIPT (E): Can't compile "Game" script module!
Scripts/Game/ERR/ERR_AircraftFieldRules.c(55): Expected name, not a keyword 'reference'
@@ -0,0 +1,16 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33\error.log started at 2026-09-19 20:43:34 (2026-09-19 18:43:34 UTC)
20:43:34.892 INIT : Workbench startup
20:43:34.892 INIT : Workbench Init Engine
20:43:34.892 RESOURCES : ResourceDB: full scan
20:43:34.892 RESOURCES : processing files...
20:43:34.892 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:43:34.892 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:43:34.892 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:43:40.207 INIT : Workbench Create Game
20:43:40.207 SCRIPT : Compiling Game scripts
20:43:40.207 SCRIPT (E): @"Scripts/Game/ERR/ERR_AircraftFieldRules.c,55": Expected name, not a keyword 'reference'
20:43:40.425 SCRIPT (E): Can't compile "Game" script module!
Scripts/Game/ERR/ERR_AircraftFieldRules.c(55): Expected name, not a keyword 'reference'
@@ -0,0 +1,131 @@
[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11)
[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist
[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0)
[gamescope] [Info] vulkan: physical device supports DRM format modifiers
[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend
[gamescope] [Info] vulkan: supported DRM formats for sampling usage:
[gamescope] [Info] vulkan: AR24 (0x34325241)
[gamescope] [Info] vulkan: XR24 (0x34325258)
[gamescope] [Info] vulkan: AB24 (0x34324241)
[gamescope] [Info] vulkan: XB24 (0x34324258)
[gamescope] [Info] vulkan: RG16 (0x36314752)
[gamescope] [Info] vulkan: NV12 (0x3231564E)
[gamescope] [Info] vulkan: AB4H (0x48344241)
[gamescope] [Info] vulkan: XB4H (0x48344258)
[gamescope] [Info] vulkan: AB48 (0x38344241)
[gamescope] [Info] vulkan: XB48 (0x38344258)
[gamescope] [Info] vulkan: AB30 (0x30334241)
[gamescope] [Info] vulkan: XB30 (0x30334258)
[gamescope] [Info] vulkan: AR30 (0x30335241)
[gamescope] [Info] vulkan: XR30 (0x30335258)
[gamescope] [Info] wlserver: Using explicit sync when available
[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info] wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple symbols for level 1/group 1 on key <FK23>
> Using F23, ignoring XF86TouchpadOff
> Warning: Symbol map for key <FK23> redefined
> Using last definition for conflicting fields
> Warning: Symbol map for key <FK24> redefined
> Using last definition for conflicting fields
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff
> Warning: Could not resolve keysym XF86ActionOnSelection
> Warning: Could not resolve keysym XF86ContextualInsert
> Warning: Could not resolve keysym XF86ContextualQuery
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info] pipewire: stream state changed: connecting
[gamescope] [Info] pipewire: stream state changed: paused
[gamescope] [Info] pipewire: stream available on node ID: 149
[gamescope] [Info] vblank: Using timerfd.
fsync: up and running.
[Gamescope WSI] No application info given.
[Gamescope WSI] Executable name: explorer.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: xalia.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: xalia.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 1
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported maximum keycode 709, clipping.
> X11 cannot support keycodes above 255.
> Warning: Virtual modifier Hyper multiply defined
> Using 0, ignoring 0
> Warning: Virtual modifier ScrollLock multiply defined
> Using 0, ignoring 0
Errors from xkbcomp are not fatal to the X server
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1a001a4
wayland surface res id: 5
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[gamescope] [Info] launch: Primary child shut down!
(EE) failed to read Wayland events: Broken pipe
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "b7496c17dbac1bfcf628929e75c6d9932da24b4897aaa995d06945c6c1111dc1",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,45 @@
{
"schema_version": 1,
"launch_id": "9e875758-3d76-4d91-91bf-a474a3e0e991",
"captured_unix": 1789843411.3532362,
"source_root": "/home/jakub/devel/escapistsrereintroduced",
"command": [
"gamescope",
"--backend",
"headless",
"-W",
"1280",
"-H",
"720",
"-w",
"1280",
"-h",
"720",
"-r",
"30",
"--",
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe",
"-gproj",
"Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj",
"-addonsDir",
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
"-profile",
"Z:/tmp/erri-workbench-profile",
"-logconsole",
"-wbModule=WorldEditor",
"-load",
"Worlds/ERR_Everon.ent",
"-plugin=ERR_ValidateWorldPlugin",
"-errPlay",
"1",
"-errSmoke",
"1",
"-errSmokeOutcome",
"map-ownership",
"-noThrow",
"-disableCrashReporter"
],
"manifest_sha256": "3f31e2a8c4095fb4ab9d80cbd31b46a6827d118c83dbef8fbcf364d65de235f3"
}
@@ -0,0 +1,15 @@
{
"log": "docs/evidence/native-2026-09-19-204333-field-keyword-compile-failure/console.log.txt",
"smoke_completions": 0,
"assertions_passed": 0,
"script_or_runtime_failures": [
"20:43:40.207 SCRIPT (E): @\"Scripts/Game/ERR/ERR_AircraftFieldRules.c,55\": Expected name, not a keyword 'reference'",
"20:43:40.425 SCRIPT (E): Can't compile \"Game\" script module!"
],
"engine_errors": [
"20:43:40.207 SCRIPT (E): @\"Scripts/Game/ERR/ERR_AircraftFieldRules.c,55\": Expected name, not a keyword 'reference'",
"20:43:40.425 SCRIPT (E): Can't compile \"Game\" script module!"
],
"missing_end_screen": [],
"scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim"
}
@@ -0,0 +1,37 @@
{
"stopped_unix": 1789843420.945068,
"console_sha256": "077354a8e177a13353ea722d6ad21c17271c76733b222e6c7572e226ab8a999c",
"end_source_sha256": "3f31e2a8c4095fb4ab9d80cbd31b46a6827d118c83dbef8fbcf364d65de235f3",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "9e875758-3d76-4d91-91bf-a474a3e0e991",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "3f31e2a8c4095fb4ab9d80cbd31b46a6827d118c83dbef8fbcf364d65de235f3",
"started_unix": 1789843411.3533027,
"result": "test-failed",
"result_before_cleanup": "test-failed",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [],
"term_sent": [],
"kill_sent": [],
"cleared": true
}
}
},
"runner_error": null,
"session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_20-43-33",
"rounds_required": 1,
"project": "chat",
"display": "headless Gamescope 1280x720/30Hz",
"dedicated_server": false,
"audio": "silent sink and per-test-stream mute"
}
@@ -0,0 +1,14 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-43-33\script.log started at 2026-09-19 20:43:36 (2026-09-19 18:43:36 UTC)
20:43:36.699 SCRIPT : SCRIPT : Initializing scripts
20:43:36.699 SCRIPT : SCRIPT : ScriptProjectManager init
20:43:39.042 SCRIPT : SCRIPT : Compiling GameLib scripts
20:43:39.111 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:43:39.112 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:43:39.112 SCRIPT : SCRIPT : Compiling Game scripts
20:43:40.207 SCRIPT : Compiling Game scripts
20:43:40.207 SCRIPT (E): @"Scripts/Game/ERR/ERR_AircraftFieldRules.c,55": Expected name, not a keyword 'reference'
20:43:40.425 SCRIPT (E): Can't compile "Game" script module!
Scripts/Game/ERR/ERR_AircraftFieldRules.c(55): Expected name, not a keyword 'reference'
@@ -0,0 +1,4 @@
{
"schema_version": 1,
"kind": "launch_snapshot"
}
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "b7496c17dbac1bfcf628929e75c6d9932da24b4897aaa995d06945c6c1111dc1",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,637 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00\console.log started at 2026-09-19 20:45:00 (2026-09-19 18:45:00 UTC)
20:45:00.225 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00' to filesystem under name logs
20:45:00.225 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile
20:45:00.225 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
20:45:00.226 PROFILING : Workbench Create Engine took: 9.789900 ms
20:45:01.260 INIT : INIT : Workbench Init Engine
20:45:01.260 ENGINE : Initializing engine, version 192142
20:45:01.260 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome map-ownership -noThrow -disableCrashReporter
20:45:01.269 ENGINE : Addon dirs:
20:45:01.269 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/'
20:45:01.269 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons'
20:45:01.269 ENGINE : dir: './addons'
20:45:01.269 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons'
20:45:01.269 ENGINE : Available addons:
20:45:01.269 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:45:01.269 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:45:01.269 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:45:01.269 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:45:01.269 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:45:01.269 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
20:45:01.269 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
20:45:01.269 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat
20:45:01.269 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map
20:45:01.269 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel
20:45:01.270 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai
20:45:01.270 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core
20:45:01.383 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
20:45:01.386 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
20:45:01.386 ENGINE : CPU vendor : AuthenticAMD
20:45:01.386 ENGINE : CPU type : 2
20:45:01.386 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
20:45:01.386 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
20:45:01.386 ENGINE : CPU count logical : 16
20:45:01.386 ENGINE : CPU count physical : 8
20:45:01.386 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
20:45:01.386 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:45:01.387 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:45:01.388 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:45:01.388 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:45:01.388 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:45:01.389 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb)
20:45:01.525 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb)
20:45:01.526 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:45:01.527 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00/resourceDatabase.rdb)
20:45:01.675 RESOURCES : RESOURCES : ResourceDB: full scan
20:45:01.679 RESOURCES : RESOURCES : scanning...
20:45:01.679 RESOURCES : RESOURCES : scanning @"ERR_Chat"
20:45:01.681 RESOURCES : RESOURCES : scanning @"ERR_Map"
20:45:01.683 RESOURCES : RESOURCES : scanning @"ERR_Intel"
20:45:01.684 RESOURCES : RESOURCES : scanning @"ERR_Ai"
20:45:01.686 RESOURCES : RESOURCES : scanning @"ERR_Core"
20:45:01.692 RESOURCES : RESOURCES : scanning @"ArmaReforger"
20:45:01.858 RESOURCES : RESOURCES : scanning @"core"
20:45:01.866 RESOURCES : RESOURCES : scanning @"profile"
20:45:01.866 RESOURCES : RESOURCES : scanning @"logs"
20:45:01.867 RESOURCES : RESOURCES : processing meta-files...
20:45:01.959 RESOURCES : RESOURCES : processing files...
20:45:01.976 INIT : Workbench startup
20:45:01.976 INIT : Workbench Init Engine
20:45:01.976 RESOURCES : ResourceDB: full scan
20:45:01.976 RESOURCES : processing files...
20:45:01.976 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:45:01.976 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:45:01.976 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:45:01.976 RESOURCES : RESOURCES : processing folders...
20:45:01.985 RESOURCES : RESOURCES : creating GUID-item mapping...
20:45:02.005 RESOURCES : RESOURCES : building tree...
20:45:02.068 PROFILING : ResourceDB: full scan took: 393.588900 ms
20:45:02.069 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:45:02.071 RESOURCES : ResourceDB: written 804/804 bytes
20:45:02.071 RESOURCES : ResourceDB: cache successfully saved
20:45:02.071 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:45:02.073 RESOURCES : ResourceDB: written 819/819 bytes
20:45:02.073 RESOURCES : ResourceDB: cache successfully saved
20:45:02.073 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:45:02.074 RESOURCES : ResourceDB: written 227/227 bytes
20:45:02.074 RESOURCES : ResourceDB: cache successfully saved
20:45:02.075 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:45:02.077 RESOURCES : ResourceDB: written 2403/2403 bytes
20:45:02.077 RESOURCES : ResourceDB: cache successfully saved
20:45:02.077 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:45:02.079 RESOURCES : ResourceDB: written 7443/7443 bytes
20:45:02.079 RESOURCES : ResourceDB: cache successfully saved
20:45:02.079 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:45:02.081 RESOURCES : ResourceDB: written 206/206 bytes
20:45:02.081 RESOURCES : ResourceDB: cache successfully saved
20:45:02.081 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00/resourceDatabase.rdb)
20:45:02.082 RESOURCES : ResourceDB: written 162/162 bytes
20:45:02.082 RESOURCES : ResourceDB: cache successfully saved
20:45:02.083 ENGINE : GameProject load
20:45:02.083 ENGINE : Loaded addons:
20:45:02.083 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
20:45:02.083 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
20:45:02.083 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:45:02.083 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:45:02.083 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:45:02.083 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:45:02.083 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:45:02.086 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
20:45:02.087 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf"
20:45:02.087 ENGINE : Engine user settings config loaded
20:45:02.087 PROFILING : Settings changed took: 0.003100 ms
20:45:02.194 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
20:45:02.195 RENDER : Basic screen setup:
20:45:02.196 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
20:45:02.196 RENDER : MSAA : none
20:45:02.209 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
20:45:02.209 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
20:45:02.209 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
20:45:02.209 RENDER : * core clocks 2720 MHz, memory 1124 MHz
20:45:02.209 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
20:45:02.209 RENDER : AMD AGS correctly initialized
20:45:02.210 RENDER : GPU_ATI (0x1002) (AMD Radeon RX 6950 XT (RADV NAVI21)) with 1 GPU detected, VRAM 16128MB (fast 0MB), shared 64362MB, driver version 99.19.02-230831a-396538C-AMD-Software-Adrenalin-Edition
20:45:02.210 RENDER : Detected output devices:
20:45:02.210 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
20:45:02.210 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
20:45:02.210 RENDER : Concurrent frames limit 2
20:45:02.287 RENDER : DX12 device successfully created by AMD AGS library
20:45:02.287 RENDER : * user markers not supported in this version AMD SW
20:45:02.287 RENDER : Graphics device features
20:45:02.287 RENDER : Needed:
20:45:02.287 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
20:45:02.287 RENDER : Optional:
20:45:02.287 RENDER : * Allow tearing (VSYNC) : 1
20:45:02.287 RENDER : * 16 bits : 1
20:45:02.287 RENDER : * Resource heap tier : 3
20:45:02.287 RENDER : * Persistent heaps (DRED) : 1
20:45:02.287 RENDER : * DRED 1.2 is supported by compiler
20:45:02.312 RENDER : Main RT format setup.
20:45:02.312 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
20:45:02.312 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
20:45:02.314 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
20:45:02.345 PROFILING : Settings changed took: 0.018100 ms
20:45:03.280 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:45:03.280 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:45:03.280 AUDIO : Audio client:
20:45:03.280 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:45:03.283 RENDER : RENDER : Reload shaders
20:45:03.284 RENDER : Enfusion shader version 13
20:45:03.284 INIT : INIT : ShaderListReload
20:45:03.284 PROFILING : ShaderListReload took: 0.000400 ms
20:45:03.425 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:45:03.425 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:45:03.425 AUDIO : Audio client:
20:45:03.425 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:45:03.638 RENDER : Loaded 3752 newer shader binaries
20:45:03.638 PROFILING : Reload shaders took: 354.350000 ms
20:45:03.638 ENGINE : Initializing inputs.
20:45:03.654 NETWORK : Initializing networking.
20:45:03.654 NETWORK : Using new GameRplScheduler.
20:45:03.654 SCRIPT : SCRIPT : Initializing scripts
20:45:03.654 SCRIPT : SCRIPT : ScriptProjectManager init
20:45:05.851 PROFILING : ScriptProjectManager init took: 2197.101000 ms
20:45:05.941 PROFILING : Initializing scripts took: 2287.132600 ms
20:45:05.959 ENGINE : Enfusion engine successfully created.
20:45:05.959 PROFILING : Workbench Init Engine took: 4698.269300 ms
20:45:05.959 INIT : INIT : Workbench Create Game
20:45:05.970 GUI : Using default language (en_us)
20:45:05.970 GUI : Loading 'en_us' localization file.
20:45:05.970 INIT : INIT : Loading StringTable
20:45:05.996 PROFILING : Loading StringTable took: 26.017500 ms
20:45:05.996 SCRIPT : SCRIPT : Compiling GameLib scripts
20:45:06.063 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:45:06.063 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:45:06.064 PROFILING : Compiling GameLib scripts took: 68.166400 ms
20:45:06.064 SCRIPT : SCRIPT : Compiling Game scripts
20:45:07.410 INIT : Workbench Create Game
20:45:07.410 SCRIPT : Compiling Game scripts
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:45:07.597 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.715 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:45:07.747 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:45:07.897 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:45:07.958 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:45:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:08.057 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:45:08.325 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e
20:45:08.332 SCRIPT : Module: Game; loaded 5795x files; 11407x classes; used 33761K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 8f2f1458
20:45:08.373 PROFILING : Compiling Game scripts took: 2309.000500 ms
20:45:08.379 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:45:08.420 ENGINE : Game successfully created.
20:45:08.421 PROFILING : Workbench Create Game took: 2461.914200 ms
20:45:08.429 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails
20:45:09.256 INIT : INIT : Workbench Reload Game
20:45:09.258 ENGINE : Game destroyed.
20:45:09.264 GUI : Using default language (en_us)
20:45:09.264 GUI : Loading 'en_us' localization file.
20:45:09.264 INIT : INIT : Loading StringTable
20:45:09.273 PROFILING : Loading StringTable took: 9.428800 ms
20:45:09.273 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:45:09.281 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:45:09.281 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:45:09.281 ENGINE : Game successfully created.
20:45:09.281 ENGINE : Game successfully initialized.
20:45:09.281 PROFILING : Workbench Reload Game took: 24.336100 ms
20:45:10.008 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
20:45:11.114 PROFILING : Entities load took: 1105.216000 ms
20:45:11.126 WORLD : WORLD : CreateEntities
20:45:11.131 WORLD : WORLD : NotifyBeforeEntitiesCreated
20:45:11.131 PROFILING : NotifyBeforeEntitiesCreated took: 0.004800 ms
20:45:11.131 WORLD : WORLD : Wait for preloading data
20:45:11.132 PROFILING : Wait for preloading data took: 0.003400 ms
20:45:11.256 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
20:45:11.256 PROFILING : PROFILING : Terrain load
20:45:13.291 PROFILING : Terrain load took: 2035.211300 ms
20:45:17.395 WORLD : CreateEntities
20:45:17.396 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:45:17.396 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:45:17.396 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:45:28.262 WORLD : WORLD : NotifyBeforeEntitiesInitialized
20:45:28.262 PROFILING : NotifyBeforeEntitiesInitialized took: 0.004800 ms
20:45:28.686 WORLD : WORLD : NotifyEntitiesInitialized
20:45:28.686 TERRAIN : TERRAIN : Initializing road networks...
20:45:28.692 PROFILING : Initializing road networks... took: 5.291200 ms
20:45:28.692 PROFILING : NotifyEntitiesInitialized took: 6.094400 ms
20:45:28.693 PROFILING : CreateEntities took: 17566.054600 ms
20:45:28.868 PROFILING : * WorldEditor: LoadWorld: 18866.941000 ms
20:45:30.380 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf)
20:45:30.380 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf)
20:45:30.381 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'...
20:45:30.382 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping...
20:45:30.472 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
20:45:30.472 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
20:45:30.474 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
20:45:30.474 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
20:45:30.474 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
20:45:30.499 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
20:45:30.522 BACKEND : Attempting online Game Config instead.
20:45:33.740 INIT : INIT : Workbench Reload Game
20:45:33.742 ENGINE : Game destroyed.
20:45:33.749 GUI : Using default language (en_us)
20:45:33.749 GUI : Loading 'en_us' localization file.
20:45:33.749 INIT : INIT : Loading StringTable
20:45:33.770 PROFILING : Loading StringTable took: 20.049600 ms
20:45:33.770 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:45:33.777 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:45:33.777 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:45:33.777 ENGINE : Game successfully created.
20:45:33.778 ENGINE : Game successfully initialized.
20:45:33.778 PROFILING : Workbench Reload Game took: 37.425900 ms
20:45:33.780 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
20:45:33.838 PLATFORM : Save data from container 'settings' have been loaded
20:45:33.927 PLATFORM : Save data from container 'sessions' have been loaded
20:45:33.928 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf"
20:45:33.928 ENGINE : Game user settings config loaded
20:45:34.025 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'.
20:45:34.031 WORLD : WORLD : Game::LoadEntities
20:45:34.031 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf"
20:45:34.034 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
20:45:34.034 WORLD : WORLD : CreateEntities
20:45:34.034 WORLD : WORLD : CreateEntities
20:45:34.034 WORLD : WORLD : NotifyBeforeEntitiesCreated
20:45:34.046 RESOURCES : Loaded mission headers from 7 addon(s)!
20:45:34.046 PROFILING : NotifyBeforeEntitiesCreated took: 12.777500 ms
20:45:34.046 WORLD : WORLD : Wait for preloading data
20:45:34.046 PROFILING : Wait for preloading data took: 0.000600 ms
20:45:38.835 WORLD : Game::LoadEntities
20:45:38.835 WORLD : CreateEntities
20:45:38.835 WORLD : CreateEntities
20:45:38.835 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:45:38.835 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:45:38.835 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:45:40.323 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
20:45:40.323 ENTITY : CreateComponent 'Hierarchy'
20:45:40.323 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
20:45:40.324 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
20:45:40.324 ENTITY : CreateComponent 'Hierarchy'
20:45:40.324 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
20:45:40.324 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
20:45:40.324 ENTITY : CreateComponent 'Hierarchy'
20:45:40.324 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
20:45:45.703 WORLD : WORLD : NotifyBeforeEntitiesInitialized
20:45:45.703 PROFILING : NotifyBeforeEntitiesInitialized took: 0.067600 ms
20:45:47.656 WORLD : InitEntities 'world'
20:45:47.656 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:45:47.656 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:45:47.681 WORLD : InitEntities 'world'
20:45:47.681 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:45:47.681 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
20:45:47.682 WORLD : WORLD : NotifyEntitiesInitialized
20:45:47.682 TERRAIN : TERRAIN : Initializing road networks...
20:45:47.685 PROFILING : Initializing road networks... took: 3.067800 ms
20:45:47.685 DEFAULT : DEFAULT : WorldVolumesCollection
20:45:47.740 PROFILING : WorldVolumesCollection took: 54.477400 ms
20:45:47.740 INIT : INIT : SoundWorldInit
20:45:47.754 PROFILING : SoundWorldInit took: 14.392300 ms
20:45:47.754 PROFILING : NotifyEntitiesInitialized took: 72.213800 ms
20:45:47.754 PROFILING : CreateEntities took: 13720.447800 ms
20:45:47.755 PROFILING : CreateEntities took: 13720.631300 ms
20:45:47.755 WORLD : WORLD : Wait for preloading data around camera
20:45:47.755 PROFILING : Wait for preloading data around camera took: 0.001300 ms
20:45:47.755 WORLD : WORLD : EOnActivate
20:45:47.789 PROFILING : EOnActivate took: 33.313000 ms
20:45:47.789 PROFILING : Game::LoadEntities took: 13757.082400 ms
20:45:48.127 DEFAULT : Entered offline game state.
20:45:48.231 NETWORK : Player connected: connectionID=2147483646
20:45:48.231 NETWORK : ### Connecting player: connectionID=2147483646, Name=
20:45:48.232 NETWORK : ### Creating player: PlayerId=1, Name=jakub
20:45:48.237 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.237 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
20:45:48.237 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:45:48.239 SCRIPT (W): Can't open config file ""
20:45:48.245 WORLD : InitEntities 'world'
20:45:48.246 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.246 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
20:45:48.246 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:45:48.246 SCRIPT (W): Slot_Chat Has no Content!
20:45:48.246 SCRIPT (W): Slot_VON Has no Content!
20:45:48.246 SCRIPT (W): Slot_AvailableActions Has no Content!
20:45:48.246 SCRIPT (W): Slot_Vehicle Has no Content!
20:45:48.246 SCRIPT (W): Slot_GameVersion Has no Content!
20:45:48.246 SCRIPT (W): Slot_Notifications Has no Content!
20:45:48.247 SCRIPT (W): Slot_Hints Has no Content!
20:45:48.257 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:45:48.258 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
20:45:48.258 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.261 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000
20:45:48.262 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:45:48.262 NETWORK : Players connecting: 0
20:45:48.262 NETWORK : Players connected: 1 / 1
20:45:48.291 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves
20:45:48.293 PROFILING : Workbench startup took: 48128.882400 ms
20:45:48.315 WORLD : Frame start
20:45:48.315 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
20:45:48.328 WORLD : UpdateEntities
20:45:48.328 WORLD : Frame
20:45:48.328 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
20:45:48.502 WORLD : UpdateEntities
20:45:48.502 WORLD : PostFrame
20:45:48.502 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
20:45:48.502 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:45:48.548 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:45:48.548 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:45:48.548 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
20:45:48.548 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
20:45:48.686 RENDER : RENDER : ObjectsHeightMap::Build
20:45:48.686 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld
20:45:48.838 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 151.355000 ms
20:45:48.846 PROFILING : ObjectsHeightMap::Build took: 159.256400 ms
20:45:50.017 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1
20:45:50.037 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160>
20:45:50.038 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
20:45:50.064 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
20:45:50.066 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200>
20:45:50.113 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500>
20:45:50.113 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1
20:45:50.119 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1
20:45:50.166 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220>
20:45:50.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1
20:45:50.168 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400>
20:45:50.168 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1
20:45:50.172 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1
20:45:50.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1
20:45:50.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1
20:45:50.175 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300>
20:45:50.175 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1
20:45:50.175 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
20:45:50.175 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5
20:45:50.175 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25>
20:45:50.175 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944
20:45:50.176 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.176 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97>
20:45:50.176 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717
20:45:50.176 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.177 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97>
20:45:50.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156
20:45:50.177 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.177 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.177 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.952 WORLD : UpdateEntities
20:45:50.952 WORLD : AfterPostSimulate
20:45:50.952 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5299,7499.7> up=0.995681
20:45:51.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827
20:45:51.282 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:51.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6149,7501.97>
20:45:51.282 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3149,7501.97> terrainY=63.3165 tireTerrainGap=-0.00158691
20:45:51.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6149,7501.97> radius=0.3 bottom=<7012.07,63.3149,7501.97> fraction=0.447619 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00152206
20:45:51.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6021,7497.71>
20:45:51.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1521,7497.71> terrainY=64.1556 tireTerrainGap=-0.003479
20:45:51.283 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6021,7497.71> radius=0.45 bottom=<7009.88,64.1521,7497.71> fraction=0.438833 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00345612
20:45:51.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2638,7497.74>
20:45:51.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8138,7497.74> terrainY=63.8179 tireTerrainGap=-0.00411606
20:45:51.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2638,7497.74> radius=0.45 bottom=<7014.42,63.8138,7497.74> fraction=0.435833 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00411606
20:45:51.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:51.532 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:51.532 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:51.533 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.533 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5337,7499.71> up=0.994319
20:45:52.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0928744 angularSpeed=0.0708118
20:45:52.282 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:52.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6199,7501.98>
20:45:52.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3199,7501.98> terrainY=63.3146 tireTerrainGap=0.00521469
20:45:52.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6199,7501.98> radius=0.3 bottom=<7012.07,63.3199,7501.98> fraction=0.4787 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00531387
20:45:52.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6025,7497.71>
20:45:52.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1525,7497.71> terrainY=64.149 tireTerrainGap=0.00347137
20:45:52.283 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6025,7497.71> radius=0.45 bottom=<7009.93,64.1525,7497.71> fraction=0.470258 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00345612
20:45:52.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2651,7497.78>
20:45:52.284 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8151,7497.78> terrainY=63.8155 tireTerrainGap=-0.000370026
20:45:52.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2651,7497.78> radius=0.45 bottom=<7014.47,63.8151,7497.78> fraction=0.452778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000389099
20:45:52.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:52.786 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.043 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.296 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5337,7499.74> up=0.994167
20:45:53.296 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0481593 angularSpeed=0.0275044
20:45:53.296 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:53.296 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6146,7502.01>
20:45:53.296 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3146,7502.01> terrainY=63.3116 tireTerrainGap=0.00296783
20:45:53.297 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6146,7502.01> radius=0.3 bottom=<7012.08,63.3146,7502.01> fraction=0.468002 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00296021
20:45:53.297 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5944,7497.72>
20:45:53.297 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1444,7497.72> terrainY=64.1429 tireTerrainGap=0.0015564
20:45:53.297 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5944,7497.72> radius=0.45 bottom=<7009.97,64.1444,7497.72> fraction=0.461582 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00154877
20:45:53.297 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.82>
20:45:53.297 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.82> terrainY=63.8129 tireTerrainGap=-0.00250626
20:45:53.298 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.82> radius=0.45 bottom=<7014.51,63.8104,7497.82> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914
20:45:53.298 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:54.056 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:54.310 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144
20:45:54.310 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:45:54.310 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:54.310 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:45:54.311 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465
20:45:54.311 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465
20:45:54.311 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73>
20:45:54.311 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059
20:45:54.311 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059
20:45:54.312 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84>
20:45:54.312 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405
20:45:54.312 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601
20:45:54.312 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.566 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:55.068 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.320 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144
20:45:55.321 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:45:55.321 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:55.321 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:45:55.321 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465
20:45:55.321 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465
20:45:55.322 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73>
20:45:55.322 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059
20:45:55.322 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059
20:45:55.322 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84>
20:45:55.322 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405
20:45:55.323 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601
20:45:55.323 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:55.572 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.573 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready
20:45:55.586 SCRIPT : Rereintroduced [environment]: date=authored weather=authored
20:45:55.587 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression
20:45:55.587 SCRIPT : Rereintroduced [mission]: phase 0 -> 1
20:45:55.587 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160>
20:45:55.588 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154>
20:45:55.588 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0
20:45:55.588 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison
20:45:56.528 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
20:45:56.569 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5>
20:45:56.748 SCRIPT : ERR SMOKE PASS: new identity may enter prison
20:45:56.748 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
20:45:56.748 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
20:45:56.748 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
20:45:56.748 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
20:45:56.748 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
20:45:56.753 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
20:45:56.753 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
20:45:56.754 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
20:45:56.754 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
20:45:56.757 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
20:45:57.253 SCRIPT : ERR SMOKE PASS: shared map ownership fixture starts only with closed map and actual local character camera
20:45:57.253 SCRIPT : ERR SMOKE PASS: shared map ownership owned replacement native map layout created
20:45:57.254 SCRIPT : ERR SMOKE PASS: shared map ownership two separate real successor map prefabs spawned without inventory changes
20:45:58.262 SCRIPT : ERR SMOKE PASS: shared map ownership both fixture entities survive until native component initialization
20:45:58.262 SCRIPT : ERR SMOKE PASS: shared map ownership both native map components initialize actual render roots
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership actual owned prefab captures its native plain-map root
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership capture config belongs to exact fixture component
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership requested distinct/reused native configuration identity established
20:45:58.272 SCRIPT : ERR SMOKE PASS: shared map ownership actual replacement root is current native map
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership replacement remains open after native open-complete event
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership actual stale center callback cannot pan or retarget replacement zoom
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership stale camera-restore method executes but native-write authorization is denied
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership both real delayed production callbacks ran exactly once
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership real delayed center and finish leave replacement view unchanged
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership actual finish, stop and vanilla mode-clear preserve replacement and do not request camera restore
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership actual owned prefab captures its native plain-map root
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership capture config belongs to exact fixture component
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership requested distinct/reused native configuration identity established
20:46:00.788 SCRIPT : ERR SMOKE PASS: shared map ownership actual replacement root is current native map
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership replacement remains open after native open-complete event
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership actual stale center callback cannot pan or retarget replacement zoom
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership stale camera-restore method executes but native-write authorization is denied
20:46:03.303 SCRIPT : ERR SMOKE PASS: shared map ownership both real delayed production callbacks ran exactly once
20:46:03.304 SCRIPT : ERR SMOKE PASS: shared map ownership real delayed center and finish leave replacement view unchanged
20:46:03.304 SCRIPT : ERR SMOKE PASS: shared map ownership actual finish, stop and vanilla mode-clear preserve replacement and do not request camera restore
20:46:03.304 SCRIPT : ERR MAP DELETE: afterSuper slot=2 released=1 captureCallbacks=0 spareCallbacks=1
20:46:03.304 SCRIPT : ERR MAP DELETE: afterSuper slot=1 released=1 captureCallbacks=1 spareCallbacks=1
20:46:03.305 SCRIPT : ERR MAP DELETE: request returned captureEntity=0 spareEntity=0 captureComponent=1 spareComponent=1 captureCallbacks=1 spareCallbacks=1 cleanupFailed=0
20:46:03.804 SCRIPT : ERR MAP DELETE: completed on later tick captureEntity=0 spareEntity=0 captureComponent=0 spareComponent=0 captureCallbacks=1 spareCallbacks=1 cleanupFailed=0
20:46:03.805 SCRIPT : ERR SMOKE PASS: shared map ownership actual prefab deletion runs successor and vanilla superclass cleanup
20:46:03.805 SCRIPT : ERR SMOKE PASS: shared map ownership spare and interrupted map deletion preserve replacement without restore calls
20:46:05.326 SCRIPT : ERR SMOKE PASS: shared map ownership replacement survives delayed native callback window after both deletions
20:46:05.326 SCRIPT : ERR SMOKE PASS: shared map ownership owned UI removed; camera render flag has no native getter and is not claimed as measured
20:46:05.326 SCRIPT : Rereintroduced [mission]: phase 1 -> 6
20:46:05.326 SCRIPT : ERR SMOKE PASS: native map ownership probe cleaned up before explicit reset
20:46:05.327 SCRIPT : ERR SMOKE COMPLETE: native replacement map/config/root ownership and spare deletion; camera authorization observed, render flag not measured
20:46:05.437 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME
20:46:05.439 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
20:46:05.440 SCRIPT (W): Slot_Chat Has no Content!
20:46:05.440 SCRIPT (W): Slot_VON Has no Content!
20:46:05.440 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:05.440 SCRIPT (W): Slot_Notifications Has no Content!
20:46:07.486 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
20:46:07.486 SCRIPT : -- Stack trace --
20:46:07.486 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
20:46:07.486 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
20:46:07.487 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15
20:46:07.487 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
20:46:07.487 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
20:46:07.487 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
20:46:07.487 SCRIPT : -----------------
20:46:07.487 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
20:46:07.487 SCRIPT : -- Stack trace --
20:46:07.487 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
20:46:07.487 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
20:46:07.488 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21
20:46:07.488 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
20:46:07.488 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
20:46:07.488 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
20:46:07.488 SCRIPT : -----------------
20:46:07.490 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
20:46:07.490 SCRIPT (W): Slot_Chat Has no Content!
20:46:07.490 SCRIPT (W): Slot_VON Has no Content!
20:46:07.490 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:07.490 SCRIPT (W): Slot_Notifications Has no Content!
@@ -0,0 +1,118 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00\error.log started at 2026-09-19 20:45:01 (2026-09-19 18:45:01 UTC)
20:45:01.976 INIT : Workbench startup
20:45:01.976 INIT : Workbench Init Engine
20:45:01.976 RESOURCES : ResourceDB: full scan
20:45:01.976 RESOURCES : processing files...
20:45:01.976 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:45:01.976 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:45:01.976 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:45:07.410 INIT : Workbench Create Game
20:45:07.410 SCRIPT : Compiling Game scripts
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:45:07.597 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.715 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:45:07.747 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:45:07.897 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:45:07.958 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:45:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:08.057 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:45:17.395 WORLD : CreateEntities
20:45:17.395 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:45:17.396 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:45:17.396 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:45:33.780 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
20:45:38.835 WORLD : Game::LoadEntities
20:45:38.835 WORLD : CreateEntities
20:45:38.835 WORLD : CreateEntities
20:45:38.835 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:45:38.835 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:45:38.835 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:45:40.323 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
20:45:40.323 ENTITY : CreateComponent 'Hierarchy'
20:45:40.323 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
20:45:40.324 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
20:45:40.324 ENTITY : CreateComponent 'Hierarchy'
20:45:40.324 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
20:45:40.324 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
20:45:40.324 ENTITY : CreateComponent 'Hierarchy'
20:45:40.324 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
20:45:40.328 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
20:45:40.328 ENTITY : CreateComponent 'Hierarchy'
20:45:40.328 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
20:45:40.332 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
20:45:40.332 ENTITY : CreateComponent 'Hierarchy'
20:45:40.332 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
20:45:47.656 WORLD : InitEntities 'world'
20:45:47.656 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:45:47.656 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:45:48.237 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.237 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
20:45:48.237 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:45:48.239 SCRIPT (W): Can't open config file ""
20:45:48.245 WORLD : InitEntities 'world'
20:45:48.246 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:45:48.246 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
20:45:48.246 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:45:48.246 SCRIPT (W): Slot_Chat Has no Content!
20:45:48.246 SCRIPT (W): Slot_VON Has no Content!
20:45:48.246 SCRIPT (W): Slot_AvailableActions Has no Content!
20:45:48.246 SCRIPT (W): Slot_Vehicle Has no Content!
20:45:48.246 SCRIPT (W): Slot_GameVersion Has no Content!
20:45:48.246 SCRIPT (W): Slot_Notifications Has no Content!
20:45:48.247 SCRIPT (W): Slot_Hints Has no Content!
20:45:48.257 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:45:48.258 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
20:45:48.258 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.262 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:45:48.502 WORLD : UpdateEntities
20:45:48.502 WORLD : PostFrame
20:45:48.502 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
20:45:48.502 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:45:48.548 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:45:48.548 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:45:48.548 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
20:45:48.548 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
20:45:50.952 WORLD : UpdateEntities
20:45:50.952 WORLD : AfterPostSimulate
20:45:50.952 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found
20:46:05.439 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
20:46:05.440 SCRIPT (W): Slot_Chat Has no Content!
20:46:05.440 SCRIPT (W): Slot_VON Has no Content!
20:46:05.440 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:05.440 SCRIPT (W): Slot_Notifications Has no Content!
20:46:07.486 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
20:46:07.487 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
20:46:07.490 GUI : WidgetManager: CrateWidgets @"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout"
20:46:07.490 SCRIPT (W): Slot_Chat Has no Content!
20:46:07.490 SCRIPT (W): Slot_VON Has no Content!
20:46:07.490 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:07.490 SCRIPT (W): Slot_Notifications Has no Content!
@@ -0,0 +1,150 @@
[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11)
[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist
[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0)
[gamescope] [Info] vulkan: physical device supports DRM format modifiers
[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend
[gamescope] [Info] vulkan: supported DRM formats for sampling usage:
[gamescope] [Info] vulkan: AR24 (0x34325241)
[gamescope] [Info] vulkan: XR24 (0x34325258)
[gamescope] [Info] vulkan: AB24 (0x34324241)
[gamescope] [Info] vulkan: XB24 (0x34324258)
[gamescope] [Info] vulkan: RG16 (0x36314752)
[gamescope] [Info] vulkan: NV12 (0x3231564E)
[gamescope] [Info] vulkan: AB4H (0x48344241)
[gamescope] [Info] vulkan: XB4H (0x48344258)
[gamescope] [Info] vulkan: AB48 (0x38344241)
[gamescope] [Info] vulkan: XB48 (0x38344258)
[gamescope] [Info] vulkan: AB30 (0x30334241)
[gamescope] [Info] vulkan: XB30 (0x30334258)
[gamescope] [Info] vulkan: AR30 (0x30335241)
[gamescope] [Info] vulkan: XR30 (0x30335258)
[gamescope] [Info] wlserver: Using explicit sync when available
[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info] wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple symbols for level 1/group 1 on key <FK23>
> Using F23, ignoring XF86TouchpadOff
> Warning: Symbol map for key <FK23> redefined
> Using last definition for conflicting fields
> Warning: Symbol map for key <FK24> redefined
> Using last definition for conflicting fields
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff
> Warning: Could not resolve keysym XF86ActionOnSelection
> Warning: Could not resolve keysym XF86ContextualInsert
> Warning: Could not resolve keysym XF86ContextualQuery
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info] pipewire: stream state changed: connecting
[gamescope] [Info] pipewire: stream state changed: paused
[gamescope] [Info] pipewire: stream available on node ID: 64
[gamescope] [Info] vblank: Using timerfd.
fsync: up and running.
[Gamescope WSI] No application info given.
[Gamescope WSI] Executable name: explorer.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: xalia.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: xalia.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 1
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported maximum keycode 709, clipping.
> X11 cannot support keycodes above 255.
> Warning: Virtual modifier Hyper multiply defined
> Using 0, ignoring 0
> Warning: Virtual modifier ScrollLock multiply defined
> Using 0, ignoring 0
Errors from xkbcomp are not fatal to the X server
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
[Gamescope WSI] Creating Gamescope surface: xid: 0x1c001a4
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1c001a4
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1c001a4
wayland surface res id: 5
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating Gamescope surface: xid: 0x1c0039a
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1c0039a
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1c0039a
wayland surface res id: 10
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55555a0cf410 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x55555a0cf410
[Gamescope WSI] Destroyed swapchain: 0x55555a0cf410
[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55555a0cf410 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x55555a0cf410
[Gamescope WSI] Destroyed swapchain: 0x55555a0cf410
[Gamescope WSI] Creating swapchain for xid: 0x1c0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1c0039a swapchain: 0x55555a0ef340 - imageCount: 4
[gamescope] [Error] xwm: X11 I/O error! This is fatal. Aborting...
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,45 @@
{
"schema_version": 1,
"launch_id": "bc29fa1b-3778-4de3-b053-1881b6b93567",
"captured_unix": 1789843498.564853,
"source_root": "/home/jakub/devel/escapistsrereintroduced",
"command": [
"gamescope",
"--backend",
"headless",
"-W",
"1280",
"-H",
"720",
"-w",
"1280",
"-h",
"720",
"-r",
"30",
"--",
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe",
"-gproj",
"Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj",
"-addonsDir",
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
"-profile",
"Z:/tmp/erri-workbench-profile",
"-logconsole",
"-wbModule=WorldEditor",
"-load",
"Worlds/ERR_Everon.ent",
"-plugin=ERR_ValidateWorldPlugin",
"-errPlay",
"1",
"-errSmoke",
"1",
"-errSmokeOutcome",
"map-ownership",
"-noThrow",
"-disableCrashReporter"
],
"manifest_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715"
}
@@ -0,0 +1,9 @@
{
"log": "docs/evidence/native-2026-09-19-204500-field-compile-map/console.log.txt",
"smoke_completions": 1,
"assertions_passed": 58,
"script_or_runtime_failures": [],
"engine_errors": [],
"missing_end_screen": [],
"scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim"
}
@@ -0,0 +1,10 @@
#1 t=6.7s M0 REGISTER group 1 [session=1789843547-1]
#2 t=6.7s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789843547-1]
#3 t=7.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789843547-1]
#4 t=8.8s M0 REGISTER group 2 [session=1789843547-1]
#5 t=8.8s M0 REGISTER group 3 [session=1789843547-1]
#6 t=8.8s M0 REGISTER group 4 [session=1789843547-1]
#7 t=8.8s M0 REGISTER group 5 [session=1789843547-1]
#8 t=8.8s M0 REGISTER group 6 [session=1789843547-1]
#9 t=8.8s M0 REGISTER group 7 [session=1789843547-1]
#10 t=16.5s M0 STOP HQ stopped; tactical orders released [session=1789843547-1]
@@ -0,0 +1,37 @@
{
"stopped_unix": 1789843572.2355468,
"console_sha256": "eded183cf577679d22afa3aec20b2ae29de9422e2697ff013b5cfad19f779851",
"end_source_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "bc29fa1b-3778-4de3-b053-1881b6b93567",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "9d8168a101d52df79a76b53dce0829cff501a0fb7478b88a3652d7fe34364715",
"started_unix": 1789843498.5649207,
"result": "smoke-completed",
"result_before_cleanup": "smoke-completed",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [],
"term_sent": [],
"kill_sent": [],
"cleared": true
}
}
},
"runner_error": null,
"session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_20-45-00",
"rounds_required": 1,
"project": "chat",
"display": "headless Gamescope 1280x720/30Hz",
"dedicated_server": false,
"audio": "silent sink and per-test-stream mute"
}
@@ -0,0 +1,318 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-45-00\script.log started at 2026-09-19 20:45:03 (2026-09-19 18:45:03 UTC)
20:45:03.654 SCRIPT : SCRIPT : Initializing scripts
20:45:03.654 SCRIPT : SCRIPT : ScriptProjectManager init
20:45:05.996 SCRIPT : SCRIPT : Compiling GameLib scripts
20:45:06.063 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:45:06.063 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:45:06.064 SCRIPT : SCRIPT : Compiling Game scripts
20:45:07.410 SCRIPT : Compiling Game scripts
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:45:07.410 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:45:07.597 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.715 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:45:07.747 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:45:07.864 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:45:07.897 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:45:07.957 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:45:07.958 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.998 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:45:07.999 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:45:08.031 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:45:08.057 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:45:08.325 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e
20:45:08.332 SCRIPT : Module: Game; loaded 5795x files; 11407x classes; used 33761K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 8f2f1458
20:45:09.281 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:45:09.281 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:45:30.472 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
20:45:30.472 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
20:45:30.473 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
20:45:30.473 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
20:45:30.474 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
20:45:30.474 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
20:45:30.474 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
20:45:30.474 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
20:45:30.475 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
20:45:30.475 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
20:45:30.499 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
20:45:33.777 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:45:33.777 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:45:47.656 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:45:47.681 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:45:48.238 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:45:48.239 SCRIPT (W): Can't open config file ""
20:45:48.246 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:45:48.246 SCRIPT (W): Slot_Chat Has no Content!
20:45:48.246 SCRIPT (W): Slot_VON Has no Content!
20:45:48.246 SCRIPT (W): Slot_AvailableActions Has no Content!
20:45:48.246 SCRIPT (W): Slot_Vehicle Has no Content!
20:45:48.246 SCRIPT (W): Slot_GameVersion Has no Content!
20:45:48.246 SCRIPT (W): Slot_Notifications Has no Content!
20:45:48.247 SCRIPT (W): Slot_Hints Has no Content!
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.258 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:45:48.262 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:45:48.315 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
20:45:48.328 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
20:45:48.502 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:45:50.017 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1
20:45:50.037 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160>
20:45:50.038 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
20:45:50.064 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
20:45:50.066 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200>
20:45:50.113 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500>
20:45:50.113 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1
20:45:50.119 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1
20:45:50.166 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220>
20:45:50.166 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1
20:45:50.168 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400>
20:45:50.168 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1
20:45:50.172 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1
20:45:50.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1
20:45:50.173 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1
20:45:50.175 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300>
20:45:50.175 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1
20:45:50.175 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
20:45:50.175 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5
20:45:50.175 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25>
20:45:50.175 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944
20:45:50.176 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.176 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97>
20:45:50.176 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717
20:45:50.176 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.177 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97>
20:45:50.177 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156
20:45:50.177 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:45:50.177 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.177 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:50.178 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.032 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5299,7499.7> up=0.995681
20:45:51.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.315805 angularSpeed=0.0413827
20:45:51.282 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:51.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6149,7501.97>
20:45:51.282 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3149,7501.97> terrainY=63.3165 tireTerrainGap=-0.00158691
20:45:51.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6149,7501.97> radius=0.3 bottom=<7012.07,63.3149,7501.97> fraction=0.447619 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.00152206
20:45:51.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6021,7497.71>
20:45:51.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1521,7497.71> terrainY=64.1556 tireTerrainGap=-0.003479
20:45:51.283 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6021,7497.71> radius=0.45 bottom=<7009.88,64.1521,7497.71> fraction=0.438833 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00345612
20:45:51.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2638,7497.74>
20:45:51.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8138,7497.74> terrainY=63.8179 tireTerrainGap=-0.00411606
20:45:51.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2638,7497.74> radius=0.45 bottom=<7014.42,63.8138,7497.74> fraction=0.435833 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00411606
20:45:51.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:51.532 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:51.532 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:51.533 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:51.533 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.032 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5337,7499.71> up=0.994319
20:45:52.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0928744 angularSpeed=0.0708118
20:45:52.282 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:52.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6199,7501.98>
20:45:52.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3199,7501.98> terrainY=63.3146 tireTerrainGap=0.00521469
20:45:52.283 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6199,7501.98> radius=0.3 bottom=<7012.07,63.3199,7501.98> fraction=0.4787 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00531387
20:45:52.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6025,7497.71>
20:45:52.283 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1525,7497.71> terrainY=64.149 tireTerrainGap=0.00347137
20:45:52.283 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6025,7497.71> radius=0.45 bottom=<7009.93,64.1525,7497.71> fraction=0.470258 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00345612
20:45:52.283 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2651,7497.78>
20:45:52.284 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8151,7497.78> terrainY=63.8155 tireTerrainGap=-0.000370026
20:45:52.284 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2651,7497.78> radius=0.45 bottom=<7014.47,63.8151,7497.78> fraction=0.452778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.000389099
20:45:52.284 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:45:52.533 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:52.786 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.042 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.043 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0
20:45:53.296 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5337,7499.74> up=0.994167
20:45:53.296 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0481593 angularSpeed=0.0275044
20:45:53.296 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:53.296 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6146,7502.01>
20:45:53.296 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3146,7502.01> terrainY=63.3116 tireTerrainGap=0.00296783
20:45:53.297 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6146,7502.01> radius=0.3 bottom=<7012.08,63.3146,7502.01> fraction=0.468002 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00296021
20:45:53.297 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5944,7497.72>
20:45:53.297 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1444,7497.72> terrainY=64.1429 tireTerrainGap=0.0015564
20:45:53.297 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5944,7497.72> radius=0.45 bottom=<7009.97,64.1444,7497.72> fraction=0.461582 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00154877
20:45:53.297 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2604,7497.82>
20:45:53.297 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8104,7497.82> terrainY=63.8129 tireTerrainGap=-0.00250626
20:45:53.298 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2604,7497.82> radius=0.45 bottom=<7014.51,63.8104,7497.82> fraction=0.443056 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00252914
20:45:53.298 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:53.550 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:54.056 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.057 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:45:54.310 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144
20:45:54.310 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:45:54.310 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:54.310 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:45:54.311 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465
20:45:54.311 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465
20:45:54.311 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73>
20:45:54.311 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059
20:45:54.311 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059
20:45:54.312 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84>
20:45:54.312 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405
20:45:54.312 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601
20:45:54.312 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.565 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:54.566 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:45:55.068 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.069 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.320 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.529,7499.75> up=0.994144
20:45:55.321 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:45:55.321 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:45:55.321 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:45:55.321 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00167465
20:45:55.321 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.462159 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00167465
20:45:55.322 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.594,7497.73>
20:45:55.322 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.144,7497.73> terrainY=64.1414 tireTerrainGap=0.00254059
20:45:55.322 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.594,7497.73> radius=0.45 bottom=<7009.97,64.144,7497.73> fraction=0.466068 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00254059
20:45:55.322 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.84>
20:45:55.322 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.84> terrainY=63.8122 tireTerrainGap=-0.00193405
20:45:55.323 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.84> radius=0.45 bottom=<7014.51,63.8103,7497.84> fraction=0.445556 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00197601
20:45:55.323 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:45:55.572 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:45:55.573 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready
20:45:55.586 SCRIPT : Rereintroduced [environment]: date=authored weather=authored
20:45:55.587 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression
20:45:55.587 SCRIPT : Rereintroduced [mission]: phase 0 -> 1
20:45:55.587 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160>
20:45:55.588 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154>
20:45:55.588 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0
20:45:55.588 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison
20:45:56.528 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
20:45:56.569 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5>
20:45:56.748 SCRIPT : ERR SMOKE PASS: new identity may enter prison
20:45:56.748 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
20:45:56.748 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
20:45:56.748 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
20:45:56.748 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
20:45:56.748 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
20:45:56.749 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
20:45:56.750 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
20:45:56.753 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
20:45:56.753 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
20:45:56.754 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
20:45:56.754 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
20:45:56.757 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
20:45:56.757 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
20:45:56.758 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
20:45:57.253 SCRIPT : ERR SMOKE PASS: shared map ownership fixture starts only with closed map and actual local character camera
20:45:57.253 SCRIPT : ERR SMOKE PASS: shared map ownership owned replacement native map layout created
20:45:57.254 SCRIPT : ERR SMOKE PASS: shared map ownership two separate real successor map prefabs spawned without inventory changes
20:45:58.262 SCRIPT : ERR SMOKE PASS: shared map ownership both fixture entities survive until native component initialization
20:45:58.262 SCRIPT : ERR SMOKE PASS: shared map ownership both native map components initialize actual render roots
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership actual owned prefab captures its native plain-map root
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership capture config belongs to exact fixture component
20:45:58.270 SCRIPT : ERR SMOKE PASS: shared map ownership requested distinct/reused native configuration identity established
20:45:58.272 SCRIPT : ERR SMOKE PASS: shared map ownership actual replacement root is current native map
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership replacement remains open after native open-complete event
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership actual stale center callback cannot pan or retarget replacement zoom
20:45:59.772 SCRIPT : ERR SMOKE PASS: shared map ownership stale camera-restore method executes but native-write authorization is denied
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership both real delayed production callbacks ran exactly once
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership real delayed center and finish leave replacement view unchanged
20:46:00.785 SCRIPT : ERR SMOKE PASS: shared map ownership actual finish, stop and vanilla mode-clear preserve replacement and do not request camera restore
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership actual owned prefab captures its native plain-map root
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership capture config belongs to exact fixture component
20:46:00.787 SCRIPT : ERR SMOKE PASS: shared map ownership requested distinct/reused native configuration identity established
20:46:00.788 SCRIPT : ERR SMOKE PASS: shared map ownership actual replacement root is current native map
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership replacement remains open after native open-complete event
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership actual stale center callback cannot pan or retarget replacement zoom
20:46:02.297 SCRIPT : ERR SMOKE PASS: shared map ownership stale camera-restore method executes but native-write authorization is denied
20:46:03.303 SCRIPT : ERR SMOKE PASS: shared map ownership both real delayed production callbacks ran exactly once
20:46:03.304 SCRIPT : ERR SMOKE PASS: shared map ownership real delayed center and finish leave replacement view unchanged
20:46:03.304 SCRIPT : ERR SMOKE PASS: shared map ownership actual finish, stop and vanilla mode-clear preserve replacement and do not request camera restore
20:46:03.304 SCRIPT : ERR MAP DELETE: afterSuper slot=2 released=1 captureCallbacks=0 spareCallbacks=1
20:46:03.304 SCRIPT : ERR MAP DELETE: afterSuper slot=1 released=1 captureCallbacks=1 spareCallbacks=1
20:46:03.305 SCRIPT : ERR MAP DELETE: request returned captureEntity=0 spareEntity=0 captureComponent=1 spareComponent=1 captureCallbacks=1 spareCallbacks=1 cleanupFailed=0
20:46:03.804 SCRIPT : ERR MAP DELETE: completed on later tick captureEntity=0 spareEntity=0 captureComponent=0 spareComponent=0 captureCallbacks=1 spareCallbacks=1 cleanupFailed=0
20:46:03.805 SCRIPT : ERR SMOKE PASS: shared map ownership actual prefab deletion runs successor and vanilla superclass cleanup
20:46:03.805 SCRIPT : ERR SMOKE PASS: shared map ownership spare and interrupted map deletion preserve replacement without restore calls
20:46:05.326 SCRIPT : ERR SMOKE PASS: shared map ownership replacement survives delayed native callback window after both deletions
20:46:05.326 SCRIPT : ERR SMOKE PASS: shared map ownership owned UI removed; camera render flag has no native getter and is not claimed as measured
20:46:05.326 SCRIPT : Rereintroduced [mission]: phase 1 -> 6
20:46:05.327 SCRIPT : ERR SMOKE PASS: native map ownership probe cleaned up before explicit reset
20:46:05.327 SCRIPT : ERR SMOKE COMPLETE: native replacement map/config/root ownership and spare deletion; camera authorization observed, render flag not measured
20:46:05.437 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = POSTGAME
20:46:05.440 SCRIPT (W): Slot_Chat Has no Content!
20:46:05.440 SCRIPT (W): Slot_VON Has no Content!
20:46:05.440 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:05.440 SCRIPT (W): Slot_Notifications Has no Content!
20:46:07.486 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent Back
20:46:07.486 SCRIPT : -- Stack trace --
20:46:07.486 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
20:46:07.486 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
20:46:07.487 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 15
20:46:07.487 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
20:46:07.487 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
20:46:07.487 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
20:46:07.487 SCRIPT : -----------------
20:46:07.487 SCRIPT (W): SCR_ScriptedWidgetComponent.GetComponent: widget not found: SCR_InputButtonComponent ChatButton
20:46:07.487 SCRIPT : -- Stack trace --
20:46:07.487 SCRIPT : GetComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_ScriptedWidgetComponent.c : 43
20:46:07.487 SCRIPT : GetInputButtonComponent() Scripts/Game/UI/Components/WidgetLibrary/SCR_InputButton/SCR_InputButtonComponent.c : 1214
20:46:07.488 SCRIPT : OnMenuOpen() Scripts/Game/UI/GameOverScreen/SCR_GameOverScreenInput.c : 21
20:46:07.488 SCRIPT : OpenGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 447
20:46:07.488 SCRIPT : ShowGameOverScreen() Scripts/Game/GameOverScreen/SCR_GameOverScreenManagerComponent.c : 177
20:46:07.488 SCRIPT : OnUpdate() Scripts/Game/game.c : 885
20:46:07.488 SCRIPT : -----------------
20:46:07.490 SCRIPT (W): Slot_Chat Has no Content!
20:46:07.490 SCRIPT (W): Slot_VON Has no Content!
20:46:07.490 SCRIPT (W): Slot_GameVersion Has no Content!
20:46:07.490 SCRIPT (W): Slot_Notifications Has no Content!
@@ -0,0 +1,4 @@
{
"schema_version": 1,
"kind": "launch_snapshot"
}
@@ -0,0 +1,202 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "bf52361c9d07b2c632d6ad755cbca76683f5ad4a8208e6eec690c367efa44549",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "61d224bfecfd0701206bab4f8446394ba0b8b2e27eb0f17b81d1b6a741c25f28",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "cb4ae42bad04045fe15ec80e9c612a4453e18d9ee6f628e4461de9b97e6b7cda",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "c8305745807e74f2a3e42ffc15ee8f49e64ae89fed18113cb2edd61f07aa5a66",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "116c890146f27c36dc2e0cf5f4e85a273347a8b1eb53619756f0ed820343c76d",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "fae1c8ae518cac21ea73e53a57212d85537a493128ed79a0ec2a1cdf3d32bb81",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,574 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34\console.log started at 2026-09-19 20:57:34 (2026-09-19 18:57:34 UTC)
20:57:34.514 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34' to filesystem under name logs
20:57:34.514 ENGINE : FileSystem: Adding relative directory 'Z:\tmp\erri-workbench-profile\profile' to filesystem under name profile
20:57:34.514 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\'
20:57:34.516 PROFILING : Workbench Create Engine took: 10.339300 ms
20:57:35.552 INIT : INIT : Workbench Init Engine
20:57:35.552 ENGINE : Initializing engine, version 192142
20:57:35.552 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/addons -profile Z:/tmp/erri-workbench-profile -logconsole -wbModule WorldEditor -load Worlds/ERR_Everon.ent -plugin ERR_ValidateWorldPlugin -errPlay 1 -errSmoke 1 -errSmokeOutcome aircraft-field -noThrow -disableCrashReporter
20:57:35.560 ENGINE : Addon dirs:
20:57:35.560 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/'
20:57:35.560 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/addons'
20:57:35.560 ENGINE : dir: './addons'
20:57:35.560 ENGINE : dir: 'Z:/tmp/erri-workbench-profile/addons'
20:57:35.560 ENGINE : Available addons:
20:57:35.560 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:57:35.560 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:57:35.560 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:57:35.560 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:57:35.560 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:57:35.560 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
20:57:35.560 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
20:57:35.560 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\chat' to filesystem under name ERR_Chat
20:57:35.561 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\map' to filesystem under name ERR_Map
20:57:35.561 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\intel' to filesystem under name ERR_Intel
20:57:35.561 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\ai' to filesystem under name ERR_Ai
20:57:35.561 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\addons\core' to filesystem under name ERR_Core
20:57:35.677 ENGINE : FileSystem: Adding package 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/' (pak count: 14) to filesystem under name ArmaReforger
20:57:35.680 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
20:57:35.680 ENGINE : CPU vendor : AuthenticAMD
20:57:35.680 ENGINE : CPU type : 2
20:57:35.680 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
20:57:35.680 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB]
20:57:35.680 ENGINE : CPU count logical : 16
20:57:35.680 ENGINE : CPU count physical : 8
20:57:35.680 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
20:57:35.680 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:57:35.681 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:57:35.681 RESOURCES : ResourceDB: loading cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:57:35.681 RESOURCES : ResourceDB: loading cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:57:35.682 RESOURCES : ResourceDB: loading cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:57:35.686 RESOURCES : ResourceDB: loading cache (id=5 name=ArmaReforger path=Z:/tmp/erri-workbench-profile/addons/ArmaReforger/resourceDatabase.rdb)
20:57:35.833 RESOURCES : ResourceDB: loading cache (id=6 name=core path=./addons/core/resourceDatabase.rdb)
20:57:35.835 RESOURCES : ResourceDB: loading cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:57:35.835 RESOURCES : ResourceDB: loading cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34/resourceDatabase.rdb)
20:57:35.984 RESOURCES : RESOURCES : ResourceDB: full scan
20:57:35.989 RESOURCES : RESOURCES : scanning...
20:57:35.989 RESOURCES : RESOURCES : scanning @"ERR_Chat"
20:57:35.990 RESOURCES : RESOURCES : scanning @"ERR_Map"
20:57:35.992 RESOURCES : RESOURCES : scanning @"ERR_Intel"
20:57:35.993 RESOURCES : RESOURCES : scanning @"ERR_Ai"
20:57:35.994 RESOURCES : RESOURCES : scanning @"ERR_Core"
20:57:35.998 RESOURCES : RESOURCES : scanning @"ArmaReforger"
20:57:36.136 RESOURCES : RESOURCES : scanning @"core"
20:57:36.140 RESOURCES : RESOURCES : scanning @"profile"
20:57:36.141 RESOURCES : RESOURCES : scanning @"logs"
20:57:36.141 RESOURCES : RESOURCES : processing meta-files...
20:57:36.209 RESOURCES : RESOURCES : processing files...
20:57:36.220 INIT : Workbench startup
20:57:36.220 INIT : Workbench Init Engine
20:57:36.220 RESOURCES : ResourceDB: full scan
20:57:36.220 RESOURCES : processing files...
20:57:36.220 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:57:36.220 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:57:36.220 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:57:36.220 RESOURCES : RESOURCES : processing folders...
20:57:36.228 RESOURCES : RESOURCES : creating GUID-item mapping...
20:57:36.242 RESOURCES : RESOURCES : building tree...
20:57:36.297 PROFILING : ResourceDB: full scan took: 313.329600 ms
20:57:36.298 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_Chat path=Z:\home\jakub\devel\escapistsrereintroduced\addons\chat/resourceDatabase.rdb)
20:57:36.300 RESOURCES : ResourceDB: written 804/804 bytes
20:57:36.300 RESOURCES : ResourceDB: cache successfully saved
20:57:36.300 RESOURCES : ResourceDB: saving cache (id=1 name=ERR_Map path=Z:\home\jakub\devel\escapistsrereintroduced\addons\map/resourceDatabase.rdb)
20:57:36.302 RESOURCES : ResourceDB: written 819/819 bytes
20:57:36.302 RESOURCES : ResourceDB: cache successfully saved
20:57:36.302 RESOURCES : ResourceDB: saving cache (id=2 name=ERR_Intel path=Z:\home\jakub\devel\escapistsrereintroduced\addons\intel/resourceDatabase.rdb)
20:57:36.304 RESOURCES : ResourceDB: written 227/227 bytes
20:57:36.304 RESOURCES : ResourceDB: cache successfully saved
20:57:36.304 RESOURCES : ResourceDB: saving cache (id=3 name=ERR_Ai path=Z:\home\jakub\devel\escapistsrereintroduced\addons\ai/resourceDatabase.rdb)
20:57:36.306 RESOURCES : ResourceDB: written 2469/2469 bytes
20:57:36.306 RESOURCES : ResourceDB: cache successfully saved
20:57:36.306 RESOURCES : ResourceDB: saving cache (id=4 name=ERR_Core path=Z:\home\jakub\devel\escapistsrereintroduced\addons\core/resourceDatabase.rdb)
20:57:36.308 RESOURCES : ResourceDB: written 7443/7443 bytes
20:57:36.308 RESOURCES : ResourceDB: cache successfully saved
20:57:36.308 RESOURCES : ResourceDB: saving cache (id=7 name=profile path=Z:\tmp\erri-workbench-profile\profile/resourceDatabase.rdb)
20:57:36.310 RESOURCES : ResourceDB: written 206/206 bytes
20:57:36.310 RESOURCES : ResourceDB: cache successfully saved
20:57:36.310 RESOURCES : ResourceDB: saving cache (id=8 name=logs path=Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34/resourceDatabase.rdb)
20:57:36.312 RESOURCES : ResourceDB: written 162/162 bytes
20:57:36.312 RESOURCES : ResourceDB: cache successfully saved
20:57:36.312 ENGINE : GameProject load
20:57:36.312 ENGINE : Loaded addons:
20:57:36.312 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
20:57:36.312 ENGINE : gproj: 'Z:/tmp/erri-workbench-profile/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
20:57:36.312 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/core/addon.gproj' guid: '2528466DE220D91C'
20:57:36.312 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/ai/addon.gproj' guid: '5192138CB9D5B911'
20:57:36.312 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/intel/addon.gproj' guid: 'D31039C7C53E348A'
20:57:36.312 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/map/addon.gproj' guid: '9AAEE9041D79809E'
20:57:36.312 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj' guid: 'FA804F411BDDF2C6'
20:57:36.315 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf'
20:57:36.315 INIT : GameProject engine user settings load @"$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf"
20:57:36.315 ENGINE : Engine user settings config loaded
20:57:36.315 PROFILING : Settings changed took: 0.001900 ms
20:57:36.421 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0
20:57:36.423 RENDER : Basic screen setup:
20:57:36.423 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29)
20:57:36.423 RENDER : MSAA : none
20:57:36.437 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0
20:57:36.437 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device)
20:57:36.437 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs
20:57:36.437 RENDER : * core clocks 2720 MHz, memory 1124 MHz
20:57:36.437 RENDER : * TFlops 27.9, memory bandwidth (562.0 GB/s)
20:57:36.437 RENDER : AMD AGS correctly initialized
20:57:36.437 RENDER : GPU_ATI (0x1002) (AMD Radeon RX 6950 XT (RADV NAVI21)) with 1 GPU detected, VRAM 16128MB (fast 0MB), shared 64362MB, driver version 99.19.02-230831a-396538C-AMD-Software-Adrenalin-Edition
20:57:36.437 RENDER : Detected output devices:
20:57:36.437 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21):
20:57:36.437 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz
20:57:36.437 RENDER : Concurrent frames limit 2
20:57:36.514 RENDER : DX12 device successfully created by AMD AGS library
20:57:36.514 RENDER : * user markers not supported in this version AMD SW
20:57:36.514 RENDER : Graphics device features
20:57:36.514 RENDER : Needed:
20:57:36.514 RENDER : * Highest supported shader model: 6.8 (6.0 needed)
20:57:36.514 RENDER : Optional:
20:57:36.514 RENDER : * Allow tearing (VSYNC) : 1
20:57:36.514 RENDER : * 16 bits : 1
20:57:36.514 RENDER : * Resource heap tier : 3
20:57:36.514 RENDER : * Persistent heaps (DRED) : 1
20:57:36.514 RENDER : * DRED 1.2 is supported by compiler
20:57:36.538 RENDER : Main RT format setup.
20:57:36.538 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26)
20:57:36.538 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10)
20:57:36.540 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16
20:57:36.569 PROFILING : Settings changed took: 0.015900 ms
20:57:37.556 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:57:37.556 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:57:37.556 AUDIO : Audio client:
20:57:37.556 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:57:37.560 RENDER : RENDER : Reload shaders
20:57:37.561 RENDER : Enfusion shader version 13
20:57:37.561 INIT : INIT : ShaderListReload
20:57:37.561 PROFILING : ShaderListReload took: 0.000600 ms
20:57:37.701 AUDIO : Endpoint: Speakers (PulseAudio Output)
20:57:37.702 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Avg. bytes: 384kB, Sample bits: 32, Block align: 8B
20:57:37.702 AUDIO : Audio client:
20:57:37.703 AUDIO : Format: Channels: 2, Sample rate: 48kHz, Buffer size: 1536B, Frame: 512
20:57:37.984 RENDER : Loaded 3752 newer shader binaries
20:57:37.985 PROFILING : Reload shaders took: 424.380700 ms
20:57:37.985 ENGINE : Initializing inputs.
20:57:37.998 NETWORK : Initializing networking.
20:57:37.998 NETWORK : Using new GameRplScheduler.
20:57:37.998 SCRIPT : SCRIPT : Initializing scripts
20:57:37.998 SCRIPT : SCRIPT : ScriptProjectManager init
20:57:40.279 PROFILING : ScriptProjectManager init took: 2280.352800 ms
20:57:40.369 PROFILING : Initializing scripts took: 2370.484200 ms
20:57:40.388 ENGINE : Enfusion engine successfully created.
20:57:40.388 PROFILING : Workbench Init Engine took: 4836.082800 ms
20:57:40.388 INIT : INIT : Workbench Create Game
20:57:40.402 GUI : Using default language (en_us)
20:57:40.402 GUI : Loading 'en_us' localization file.
20:57:40.402 INIT : INIT : Loading StringTable
20:57:40.426 PROFILING : Loading StringTable took: 23.652000 ms
20:57:40.426 SCRIPT : SCRIPT : Compiling GameLib scripts
20:57:40.496 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:57:40.496 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:57:40.497 PROFILING : Compiling GameLib scripts took: 71.295600 ms
20:57:40.497 SCRIPT : SCRIPT : Compiling Game scripts
20:57:41.817 INIT : Workbench Create Game
20:57:41.817 SCRIPT : Compiling Game scripts
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:57:42.001 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.106 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:57:42.138 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:57:42.290 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:57:42.371 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:57:42.474 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.507 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:57:42.789 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e
20:57:42.796 SCRIPT : Module: Game; loaded 5796x files; 11413x classes; used 33797K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 76ed3b1e
20:57:42.837 PROFILING : Compiling Game scripts took: 2339.925600 ms
20:57:42.843 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:57:42.881 ENGINE : Game successfully created.
20:57:42.882 PROFILING : Workbench Create Game took: 2494.294500 ms
20:57:42.892 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/thumbnails
20:57:43.725 INIT : INIT : Workbench Reload Game
20:57:43.727 ENGINE : Game destroyed.
20:57:43.733 GUI : Using default language (en_us)
20:57:43.733 GUI : Loading 'en_us' localization file.
20:57:43.733 INIT : INIT : Loading StringTable
20:57:43.742 PROFILING : Loading StringTable took: 9.192400 ms
20:57:43.743 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:57:43.749 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:57:43.750 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:57:43.750 ENGINE : Game successfully created.
20:57:43.750 ENGINE : Game successfully initialized.
20:57:43.750 PROFILING : Workbench Reload Game took: 24.427400 ms
20:57:44.442 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
20:57:45.475 PROFILING : Entities load took: 1032.527200 ms
20:57:45.486 WORLD : WORLD : CreateEntities
20:57:45.492 WORLD : WORLD : NotifyBeforeEntitiesCreated
20:57:45.492 PROFILING : NotifyBeforeEntitiesCreated took: 0.004600 ms
20:57:45.492 WORLD : WORLD : Wait for preloading data
20:57:45.492 PROFILING : Wait for preloading data took: 0.004000 ms
20:57:45.606 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
20:57:45.606 PROFILING : PROFILING : Terrain load
20:57:47.666 PROFILING : Terrain load took: 2059.615700 ms
20:57:51.851 WORLD : CreateEntities
20:57:51.852 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:57:51.852 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:57:51.852 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:58:02.880 WORLD : WORLD : NotifyBeforeEntitiesInitialized
20:58:02.880 PROFILING : NotifyBeforeEntitiesInitialized took: 0.005400 ms
20:58:03.325 WORLD : WORLD : NotifyEntitiesInitialized
20:58:03.325 TERRAIN : TERRAIN : Initializing road networks...
20:58:03.327 PROFILING : Initializing road networks... took: 2.248100 ms
20:58:03.328 PROFILING : NotifyEntitiesInitialized took: 2.627100 ms
20:58:03.328 PROFILING : CreateEntities took: 17841.250800 ms
20:58:03.521 PROFILING : * WorldEditor: LoadWorld: 19084.299100 ms
20:58:05.041 TERRAIN : Loading tile map config (worlds/Eden/Eden/tileMap.conf)
20:58:05.041 TERRAIN : Loading minimap config (worlds/Eden/Eden/miniMap.conf)
20:58:05.044 TERRAIN : The default minimap texture ('worlds/Eden/EdenRasterized.edds') not found. Trying 'worlds/Eden/Eden.edds'...
20:58:05.044 TERRAIN : The default minimap texture ('worlds/Eden/Eden.edds') not found. Skipping...
20:58:05.137 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
20:58:05.138 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
20:58:05.138 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
20:58:05.162 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
20:58:05.185 BACKEND : Attempting online Game Config instead.
20:58:08.585 INIT : INIT : Workbench Reload Game
20:58:08.587 ENGINE : Game destroyed.
20:58:08.594 GUI : Using default language (en_us)
20:58:08.594 GUI : Loading 'en_us' localization file.
20:58:08.595 INIT : INIT : Loading StringTable
20:58:08.614 PROFILING : Loading StringTable took: 18.855900 ms
20:58:08.614 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
20:58:08.622 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:58:08.622 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:58:08.622 ENGINE : Game successfully created.
20:58:08.622 ENGINE : Game successfully initialized.
20:58:08.622 PROFILING : Workbench Reload Game took: 37.505500 ms
20:58:08.625 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
20:58:08.675 PLATFORM : Save data from container 'settings' have been loaded
20:58:08.766 PLATFORM : Save data from container 'sessions' have been loaded
20:58:08.767 PLATFORM : GameProject user settings load from profile @"ReforgerGameSettings.conf"
20:58:08.767 ENGINE : Game user settings config loaded
20:58:08.864 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{B6C516F86302C679}Worlds/ERR_Everon.ent'.
20:58:08.871 WORLD : WORLD : Game::LoadEntities
20:58:08.871 WORLD : WORLD : Initializing world systems @"{1C60D2EDA2B468B8}Configs/Systems/BaseGameModeSystems.conf"
20:58:08.872 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
20:58:08.872 WORLD : WORLD : CreateEntities
20:58:08.872 WORLD : WORLD : CreateEntities
20:58:08.872 WORLD : WORLD : NotifyBeforeEntitiesCreated
20:58:08.886 RESOURCES : Loaded mission headers from 7 addon(s)!
20:58:08.886 PROFILING : NotifyBeforeEntitiesCreated took: 13.970900 ms
20:58:08.886 WORLD : WORLD : Wait for preloading data
20:58:08.886 PROFILING : Wait for preloading data took: 0.000800 ms
20:58:13.662 WORLD : Game::LoadEntities
20:58:13.662 WORLD : CreateEntities
20:58:13.662 WORLD : CreateEntities
20:58:13.662 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:58:13.662 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:58:13.662 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:58:15.116 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
20:58:15.116 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
20:58:15.116 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
20:58:15.121 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
20:58:15.121 ENTITY : CreateComponent 'Hierarchy'
20:58:15.121 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
20:58:15.122 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
20:58:15.122 ENTITY : CreateComponent 'Hierarchy'
20:58:15.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
20:58:15.122 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
20:58:15.122 ENTITY : CreateComponent 'Hierarchy'
20:58:15.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
20:58:15.126 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
20:58:15.126 ENTITY : CreateComponent 'Hierarchy'
20:58:15.126 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
20:58:15.126 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
20:58:15.127 ENTITY : CreateComponent 'Hierarchy'
20:58:15.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
20:58:15.127 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
20:58:15.127 ENTITY : CreateComponent 'Hierarchy'
20:58:15.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
20:58:20.634 WORLD : WORLD : NotifyBeforeEntitiesInitialized
20:58:20.634 PROFILING : NotifyBeforeEntitiesInitialized took: 0.050600 ms
20:58:22.684 WORLD : InitEntities 'world'
20:58:22.684 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:58:22.684 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:58:22.713 WORLD : InitEntities 'world'
20:58:22.713 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:58:22.713 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
20:58:22.713 WORLD : WORLD : NotifyEntitiesInitialized
20:58:22.713 TERRAIN : TERRAIN : Initializing road networks...
20:58:22.716 PROFILING : Initializing road networks... took: 2.323900 ms
20:58:22.716 DEFAULT : DEFAULT : WorldVolumesCollection
20:58:22.772 PROFILING : WorldVolumesCollection took: 56.482400 ms
20:58:22.772 INIT : INIT : SoundWorldInit
20:58:22.789 PROFILING : SoundWorldInit took: 16.777600 ms
20:58:22.789 PROFILING : NotifyEntitiesInitialized took: 75.809000 ms
20:58:22.789 PROFILING : CreateEntities took: 13916.716400 ms
20:58:22.789 PROFILING : CreateEntities took: 13916.976200 ms
20:58:22.790 WORLD : WORLD : Wait for preloading data around camera
20:58:22.790 PROFILING : Wait for preloading data around camera took: 0.001000 ms
20:58:22.790 WORLD : WORLD : EOnActivate
20:58:22.823 PROFILING : EOnActivate took: 32.867200 ms
20:58:22.823 PROFILING : Game::LoadEntities took: 13952.051500 ms
20:58:23.115 DEFAULT : Entered offline game state.
20:58:23.218 NETWORK : Player connected: connectionID=2147483646
20:58:23.218 NETWORK : ### Connecting player: connectionID=2147483646, Name=
20:58:23.219 NETWORK : ### Creating player: PlayerId=1, Name=jakub
20:58:23.223 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.224 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
20:58:23.224 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:58:23.226 SCRIPT (W): Can't open config file ""
20:58:23.233 WORLD : InitEntities 'world'
20:58:23.233 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.233 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
20:58:23.233 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:58:23.233 SCRIPT (W): Slot_Chat Has no Content!
20:58:23.233 SCRIPT (W): Slot_VON Has no Content!
20:58:23.234 SCRIPT (W): Slot_AvailableActions Has no Content!
20:58:23.234 SCRIPT (W): Slot_Vehicle Has no Content!
20:58:23.234 SCRIPT (W): Slot_GameVersion Has no Content!
20:58:23.234 SCRIPT (W): Slot_Notifications Has no Content!
20:58:23.234 SCRIPT (W): Slot_Hints Has no Content!
20:58:23.246 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:58:23.246 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
20:58:23.246 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.250 NETWORK : ### Updating player: PlayerId=1, Name=jakub, rplIdentity=0xFFFFFFFE, IdentityId=00000000-0000-0000-0000-000000000000
20:58:23.250 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:58:23.251 NETWORK : Players connecting: 0
20:58:23.251 NETWORK : Players connected: 1 / 1
20:58:23.278 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_Chat/autosaves
20:58:23.280 PROFILING : Workbench startup took: 48830.109200 ms
20:58:23.302 WORLD : Frame start
20:58:23.303 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
20:58:23.318 WORLD : UpdateEntities
20:58:23.319 WORLD : Frame
20:58:23.319 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
20:58:23.505 WORLD : UpdateEntities
20:58:23.505 WORLD : PostFrame
20:58:23.506 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
20:58:23.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:58:23.550 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:58:23.550 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:58:23.550 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
20:58:23.550 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
20:58:23.694 RENDER : RENDER : ObjectsHeightMap::Build
20:58:23.695 RENDER : RENDER : MeshOccupancyGridManager::GenerateAllForWorld
20:58:23.853 PROFILING : MeshOccupancyGridManager::GenerateAllForWorld took: 158.377200 ms
20:58:23.862 PROFILING : ObjectsHeightMap::Build took: 167.041000 ms
20:58:25.036 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1
20:58:25.060 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160>
20:58:25.061 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
20:58:25.090 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
20:58:25.092 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200>
20:58:25.142 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500>
20:58:25.143 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1
20:58:25.148 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1
20:58:25.194 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220>
20:58:25.194 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1
20:58:25.196 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400>
20:58:25.196 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1
20:58:25.199 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1
20:58:25.201 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1
20:58:25.201 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1
20:58:25.202 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300>
20:58:25.203 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1
20:58:25.203 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
20:58:25.203 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5
20:58:25.203 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25>
20:58:25.203 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944
20:58:25.204 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.204 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97>
20:58:25.204 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717
20:58:25.204 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.204 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97>
20:58:25.204 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156
20:58:25.205 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.206 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.978 WORLD : UpdateEntities
20:58:25.978 WORLD : AfterPostSimulate
20:58:25.978 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found
20:58:26.052 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.052 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.053 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.053 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.306 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5285,7499.7> up=0.995678
20:58:26.306 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588
20:58:26.306 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:26.306 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6132,7501.97>
20:58:26.307 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3132,7501.97> terrainY=63.3165 tireTerrainGap=-0.00326157
20:58:26.307 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6132,7501.97> radius=0.3 bottom=<7012.07,63.3132,7501.97> fraction=0.440022 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.0031929
20:58:26.307 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6007,7497.71>
20:58:26.307 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1507,7497.71> terrainY=64.1555 tireTerrainGap=-0.00480652
20:58:26.307 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6007,7497.71> radius=0.45 bottom=<7009.88,64.1507,7497.71> fraction=0.432978 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00474548
20:58:26.307 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2628,7497.74>
20:58:26.308 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8128,7497.74> terrainY=63.8179 tireTerrainGap=-0.00510025
20:58:26.308 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2628,7497.74> radius=0.45 bottom=<7014.42,63.8128,7497.74> fraction=0.431111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00515366
20:58:26.308 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.564 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.328 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5361,7499.71> up=0.994351
20:58:27.328 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686
20:58:27.328 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:27.328 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6186,7501.99>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3186,7501.99> terrainY=63.3144 tireTerrainGap=0.00423813
20:58:27.329 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6186,7501.99> radius=0.3 bottom=<7012.07,63.3186,7501.99> fraction=0.474215 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00432587
20:58:27.329 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00312805
20:58:27.329 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468575 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.0030899
20:58:27.329 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2643,7497.78>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8143,7497.78> terrainY=63.8154 tireTerrainGap=-0.0010643
20:58:27.330 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2643,7497.78> radius=0.45 bottom=<7014.47,63.8143,7497.78> fraction=0.449722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00106049
20:58:27.330 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:27.581 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:27.831 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
20:58:28.086 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.339 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5331,7499.74> up=0.994194
20:58:28.339 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.04555 angularSpeed=0.0154758
20:58:28.339 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:28.339 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6141,7502.01>
20:58:28.340 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3141,7502.01> terrainY=63.3116 tireTerrainGap=0.00251007
20:58:28.340 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6141,7502.01> radius=0.3 bottom=<7012.08,63.3141,7502.01> fraction=0.465906 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00249863
20:58:28.340 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72>
20:58:28.340 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1429 tireTerrainGap=0.00172424
20:58:28.340 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.462402 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00173187
20:58:28.340 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.82>
20:58:28.340 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.82> terrainY=63.8129 tireTerrainGap=-0.00257492
20:58:28.341 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.82> radius=0.45 bottom=<7014.51,63.8103,7497.82> fraction=0.442778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00259018
20:58:28.341 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:28.589 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.102 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:29.352 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143
20:58:29.352 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:58:29.352 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:29.352 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:58:29.352 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00163269
20:58:29.353 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362
20:58:29.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73>
20:58:29.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00248718
20:58:29.353 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089
20:58:29.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84>
20:58:29.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00204086
20:58:29.354 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705
20:58:29.354 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.611 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.369 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143
20:58:30.369 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:58:30.370 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:30.370 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:58:30.370 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00163269
20:58:30.370 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362
20:58:30.370 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73>
20:58:30.371 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00248718
20:58:30.371 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089
20:58:30.371 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84>
20:58:30.371 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00204086
20:58:30.371 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705
20:58:30.371 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:30.622 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.622 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready
20:58:30.635 SCRIPT : Rereintroduced [environment]: date=authored weather=authored
20:58:30.636 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression
20:58:30.636 SCRIPT : Rereintroduced [mission]: phase 0 -> 1
20:58:30.637 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160>
20:58:30.637 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154>
20:58:30.637 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0
20:58:30.637 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison
20:58:31.558 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
20:58:31.597 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5>
20:58:31.793 SCRIPT : ERR SMOKE PASS: new identity may enter prison
20:58:31.794 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
20:58:31.794 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
20:58:31.794 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
20:58:31.794 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
20:58:31.794 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
20:58:31.794 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
20:58:31.794 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
20:58:31.803 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
20:58:31.804 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
20:58:31.804 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: aircraft-field independent qualified candidate found before one finite allocation
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: native actual aircraft field fixture
@@ -0,0 +1,108 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34\error.log started at 2026-09-19 20:57:36 (2026-09-19 18:57:36 UTC)
20:57:36.220 INIT : Workbench startup
20:57:36.220 INIT : Workbench Init Engine
20:57:36.220 RESOURCES : ResourceDB: full scan
20:57:36.220 RESOURCES : processing files...
20:57:36.220 RESOURCES (W): resource not registered: @"$profile:rereintroduced.json". Setting null GUID
20:57:36.220 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID
20:57:36.220 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID
20:57:41.817 INIT : Workbench Create Game
20:57:41.817 SCRIPT : Compiling Game scripts
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:57:42.001 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.106 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:57:42.138 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:57:42.290 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:57:42.371 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:57:42.474 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.506 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:57:51.851 WORLD : CreateEntities
20:57:51.852 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:57:51.852 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:57:51.852 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:58:08.625 DEFAULT (W): LogiLED: Cannot initialize! (service not running or no compatible device detected)
20:58:13.662 WORLD : Game::LoadEntities
20:58:13.662 WORLD : CreateEntities
20:58:13.662 WORLD : CreateEntities
20:58:13.662 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
20:58:13.662 ENTITY : CreateComponent 'ScriptedRadioComponent'
20:58:13.662 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
20:58:15.116 ENTITY : Create entity @"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842066" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1080.213013 10.776751 6018.347168>')
20:58:15.116 ENTITY : Create entity @"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842068" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1082.185913 10.778749 6018.331055>')
20:58:15.116 ENTITY : Create entity @"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>
20:58:15.116 ENTITY : CreateComponent 'Hierarchy'
20:58:15.116 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842070" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <1084.190918 10.790751 6018.334961>')
20:58:15.121 ENTITY : Create entity @"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>
20:58:15.121 ENTITY : CreateComponent 'Hierarchy'
20:58:15.121 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842333" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4425.594727 9.981750 11029.402344>')
20:58:15.122 ENTITY : Create entity @"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>
20:58:15.122 ENTITY : CreateComponent 'Hierarchy'
20:58:15.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842335" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4426.584473 9.983749 11031.109375>')
20:58:15.122 ENTITY : Create entity @"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>
20:58:15.122 ENTITY : CreateComponent 'Hierarchy'
20:58:15.122 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842337" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <4427.572266 9.995750 11032.853516>')
20:58:15.126 ENTITY : Create entity @"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>
20:58:15.126 ENTITY : CreateComponent 'Hierarchy'
20:58:15.126 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842591" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.946289 10.470250 1551.986084>')
20:58:15.126 ENTITY : Create entity @"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>
20:58:15.126 ENTITY : CreateComponent 'Hierarchy'
20:58:15.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842593" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10009.430664 10.472250 1550.081421>')
20:58:15.127 ENTITY : Create entity @"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>
20:58:15.127 ENTITY : CreateComponent 'Hierarchy'
20:58:15.127 ENTITY (W): Invalid PivotID 'socket_light_04' in Hierarchy component ('@"ENTITY:842595" ('GameEntity','Assets/Structures/BuildingsParts/Lights/LampTower_01.xob') at <10008.926758 10.484250 1548.140869>')
20:58:22.684 WORLD : InitEntities 'world'
20:58:22.684 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Rereintroduced', ERR_GameMode) at <1076.468018 51.000999 1325.246948> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
20:58:22.684 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:58:23.223 ENTITY : SpawnEntityPrefab @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.224 ENTITY : Create entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000>
20:58:23.224 ENTITY : EntityPrefabUse @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:58:23.226 SCRIPT (W): Can't open config file ""
20:58:23.233 WORLD : InitEntities 'world'
20:58:23.233 ENTITY : Init entity @"ENTITY:4611686018427388381" ('SCR_PlayerController') at <0.000000 0.000000 0.000000> @"{225E51284CC95CFA}Prefabs/Characters/Core/DefaultPlayerControllerMP.et"
20:58:23.233 GUI : WidgetManager: CrateWidgets @"{3C9DCDD76AB83157}UI/layouts/HUD/HUDLayouts/HUDManager_Root.layout"
20:58:23.233 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:58:23.233 SCRIPT (W): Slot_Chat Has no Content!
20:58:23.233 SCRIPT (W): Slot_VON Has no Content!
20:58:23.234 SCRIPT (W): Slot_AvailableActions Has no Content!
20:58:23.234 SCRIPT (W): Slot_Vehicle Has no Content!
20:58:23.234 SCRIPT (W): Slot_GameVersion Has no Content!
20:58:23.234 SCRIPT (W): Slot_Notifications Has no Content!
20:58:23.234 SCRIPT (W): Slot_Hints Has no Content!
20:58:23.245 ENTITY : SpawnEntityPrefab @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:58:23.246 ENTITY : Create entity @"ENTITY:4611686018427388384" ('SCR_EditorModeEntity') at <0.000000 0.000000 0.000000>
20:58:23.246 ENTITY : EntityPrefabUse @"{59EF8ECAE1DCD417}Prefabs/Editor/Modes/EditorModeEdit.et"
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.250 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:58:23.505 WORLD : UpdateEntities
20:58:23.505 WORLD : PostFrame
20:58:23.506 GUI : WidgetManager: CrateWidgets @"{D89BBA18F99053D6}UI/layouts/HUD/Chat/ChatHud.layout"
20:58:23.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:58:23.550 RESOURCES : GetResourceObject @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:58:23.550 GUI : Layout load @"{20A6917D2114E29A}UI/layouts/HUD/Hint/HintInfoDisplay.layout"
20:58:23.550 GUI : Widget prefab @"{EA1CC57D868E94F9}UI/layouts/HUD/Hint/Hint.layout"
20:58:23.550 GUI (W): Overridden prefab member (GUID: '{661AB14E0F471C66}' type: ButtonWidgetClass) no longer exists in prefab
20:58:25.978 WORLD : UpdateEntities
20:58:25.978 WORLD : AfterPostSimulate
20:58:25.978 DEFAULT (W): Collider UCS_FG_DriveShaft_01 not found
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: aircraft-field independent qualified candidate found before one finite allocation
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: native actual aircraft field fixture
@@ -0,0 +1,150 @@
[gamescope] [Info] console: gamescope version 3.16.28 (gcc 16.2.1)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope'
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/common'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/inspect.lua' (id: 0)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/modegen.lua' (id: 1)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/common/util.lua' (id: 2)
[gamescope] [Info] scriptmgr: Loading scripts from: '/usr/share/gamescope/scripts/00-gamescope/displays'
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/asus.rogally.lcd.lua' (id: 3)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/deckhd.steamdeck.deckhd-lcd.lua' (id: 4)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/gpd.win4.lcd.lua' (id: 5)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongo.lcd.lua' (id: 6)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/lenovo.legiongos.lcd.lua' (id: 7)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/onexplayer.f1.oled.lua' (id: 8)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.lcd.lua' (id: 9)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/valve.steamdeck.oled.lua' (id: 10)
[gamescope] [Info] scriptmgr: Running script file '/usr/share/gamescope/scripts/00-gamescope/displays/zotac.zone.oled.lua' (id: 11)
[gamescope] [Info] scriptmgr: Loading scripts from: '/etc/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/etc/gamescope/scripts' does not exist
[gamescope] [Info] scriptmgr: Loading scripts from: '/home/jakub/.config/gamescope/scripts'
[gamescope] [Warn] scriptmgr: Directory '/home/jakub/.config/gamescope/scripts' does not exist
[gamescope] [Info] vulkan: selecting physical device 'AMD Radeon RX 6950 XT (RADV NAVI21)': queue family 1 (general queue family 0)
[gamescope] [Info] vulkan: physical device supports DRM format modifiers
[gamescope] [Info] wlserver: [backend/headless/backend.c:60] Creating headless backend
[gamescope] [Info] vulkan: supported DRM formats for sampling usage:
[gamescope] [Info] vulkan: AR24 (0x34325241)
[gamescope] [Info] vulkan: XR24 (0x34325258)
[gamescope] [Info] vulkan: AB24 (0x34324241)
[gamescope] [Info] vulkan: XB24 (0x34324258)
[gamescope] [Info] vulkan: RG16 (0x36314752)
[gamescope] [Info] vulkan: NV12 (0x3231564E)
[gamescope] [Info] vulkan: AB4H (0x48344241)
[gamescope] [Info] vulkan: XB4H (0x48344258)
[gamescope] [Info] vulkan: AB48 (0x38344241)
[gamescope] [Info] vulkan: XB48 (0x38344258)
[gamescope] [Info] vulkan: AB30 (0x30334241)
[gamescope] [Info] vulkan: XB30 (0x30334258)
[gamescope] [Info] vulkan: AR30 (0x30335241)
[gamescope] [Info] vulkan: XR30 (0x30335258)
[gamescope] [Info] wlserver: Using explicit sync when available
[gamescope] [Info] wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info] wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Info] wlserver: Successfully initialized libei for input emulation!
[gamescope] [Error] wlserver: [xwayland/sockets.c:47] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
[gamescope] [Info] wlserver: [xwayland/server.c:108] Starting Xwayland on :2
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Multiple symbols for level 1/group 1 on key <FK23>
> Using F23, ignoring XF86TouchpadOff
> Warning: Symbol map for key <FK23> redefined
> Using last definition for conflicting fields
> Warning: Symbol map for key <FK24> redefined
> Using last definition for conflicting fields
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOn
> Warning: Could not resolve keysym XF86ElectronicPrivacyScreenOff
> Warning: Could not resolve keysym XF86ActionOnSelection
> Warning: Could not resolve keysym XF86ContextualInsert
> Warning: Could not resolve keysym XF86ContextualQuery
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info] pipewire: stream state changed: connecting
[gamescope] [Info] pipewire: stream state changed: paused
[gamescope] [Info] pipewire: stream available on node ID: 186
[gamescope] [Info] vblank: Using timerfd.
fsync: up and running.
[Gamescope WSI] No application info given.
[Gamescope WSI] Executable name: explorer.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: xalia.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: xalia.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 1
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Executable name: ArmaReforgerWorkbenchSteamDiag.exe
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Unsupported maximum keycode 709, clipping.
> X11 cannot support keycodes above 255.
> Warning: Virtual modifier Hyper multiply defined
> Using 0, ignoring 0
> Warning: Virtual modifier ScrollLock multiply defined
> Using 0, ignoring 0
Errors from xkbcomp are not fatal to the X server
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: DXVK
engineVersion: 12587008
apiVersion: 4206592
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] No application info given.
ATTENTION: default value of option vk_wsi_force_swapchain_to_current_extent overridden by environment.
[Gamescope WSI] Application info:
pApplicationName: ArmaReforgerWorkbenchSteamDiag.exe
applicationVersion: 0
pEngineName: vkd3d
engineVersion: 12587008
apiVersion: 4206592
[Gamescope WSI] Forcing on VK_EXT_swapchain_maintenance1.
[Gamescope WSI] Creating Gamescope surface: xid: 0x1a001a4
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1a001a4
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1a001a4
wayland surface res id: 5
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating Gamescope surface: xid: 0x1a0039a
[Gamescope WSI] Atom of T was wrong type. Expected XCB_ATOM_CARDINAL.
[Gamescope WSI] Made gamescope surface for xid: 0x1a0039a
[Gamescope WSI] Surface state:
steam app id: 1874910
window xid: 0x1a0039a
wayland surface res id: 10
layer client flags: 0x4
server hdr output enabled: false
hdr formats exposed to client: false
[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x55555a01a7e0 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x55555a01a7e0
[Gamescope WSI] Destroyed swapchain: 0x55555a01a7e0
[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555559fa8d50 - imageCount: 4
[Gamescope WSI] Destroying swapchain: 0x555559fa8d50
[Gamescope WSI] Destroyed swapchain: 0x555559fa8d50
[Gamescope WSI] Creating swapchain for xid: 0x1a0039a - oldSwapchain: (nil) - provided minImageCount: 3 - minImageCount: 3 - format: VK_FORMAT_B8G8R8A8_UNORM - colorspace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - flip: false
[Gamescope WSI] Created swapchain for xid: 0x1a0039a swapchain: 0x555559fa1ef0 - imageCount: 4
[gamescope] [Info] launch: Primary child shut down!
@@ -0,0 +1,203 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftFieldProbe.c": "d2d2dd65e202672f285ed9afb7ee0247da31b8eb29e0fc3091ccb846f49236e8",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "04400b71fd5e203e7cc4ff459fe6b49e8abb81c9cd215551a3f280ac8493e663",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
@@ -0,0 +1,45 @@
{
"schema_version": 1,
"launch_id": "185fed96-6785-4956-a06a-801764e12b7b",
"captured_unix": 1789844252.8275833,
"source_root": "/home/jakub/devel/escapistsrereintroduced",
"command": [
"gamescope",
"--backend",
"headless",
"-W",
"1280",
"-H",
"720",
"-w",
"1280",
"-h",
"720",
"-r",
"30",
"--",
"/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton",
"run",
"/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe",
"-gproj",
"Z:/home/jakub/devel/escapistsrereintroduced/addons/chat/addon.gproj",
"-addonsDir",
"Z:/home/jakub/devel/escapistsrereintroduced/addons",
"-profile",
"Z:/tmp/erri-workbench-profile",
"-logconsole",
"-wbModule=WorldEditor",
"-load",
"Worlds/ERR_Everon.ent",
"-plugin=ERR_ValidateWorldPlugin",
"-errPlay",
"1",
"-errSmoke",
"1",
"-errSmokeOutcome",
"aircraft-field",
"-noThrow",
"-disableCrashReporter"
],
"manifest_sha256": "ff47ec3c450cea8b642f88db5a9323bd6c99286cb8322d3c214e821d5a741209"
}
@@ -0,0 +1,15 @@
{
"log": "docs/evidence/native-2026-09-19-205734-field-survey-refusal/console.log.txt",
"smoke_completions": 0,
"assertions_passed": 28,
"script_or_runtime_failures": [
"20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: aircraft-field independent qualified candidate found before one finite allocation",
"20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: native actual aircraft field fixture"
],
"engine_errors": [
"20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: aircraft-field independent qualified candidate found before one finite allocation",
"20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: native actual aircraft field fixture"
],
"missing_end_screen": [],
"scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim"
}
@@ -0,0 +1,3 @@
#1 t=6.8s M0 REGISTER group 1 [session=1789844302-1]
#2 t=6.8s M0 MORTAR DEPLOY site=1 order=0 radio=M0 source=M0 position=<6000,202.788,7000>; authored gun and four-person crew; finite ammunition initialization pending [session=1789844302-1]
#3 t=7.7s M0 COURIER READY trip=0 state=1 delivered=0; 12 distinct original HE shells physically confirmed in existing western cache [session=1789844302-1]
@@ -0,0 +1,37 @@
{
"stopped_unix": 1789844313.4251354,
"console_sha256": "b0b5219ebb6afeafd6e00a51d15af0d65147683c35498049121e760862ec9d45",
"end_source_sha256": "ff47ec3c450cea8b642f88db5a9323bd6c99286cb8322d3c214e821d5a741209",
"source_unchanged_after_run": true,
"source_provenance": "launch_snapshot",
"launch_id": "185fed96-6785-4956-a06a-801764e12b7b",
"launch_source_manifest": "launch-source-sha256.json",
"launch_source_metadata": "launch-source.json",
"launch_source_sha256": "ff47ec3c450cea8b642f88db5a9323bd6c99286cb8322d3c214e821d5a741209",
"started_unix": 1789844252.8276513,
"result": "test-failed",
"result_before_cleanup": "test-failed",
"cleanup_confirmed": true,
"cleanup_report": {
"cleanup_confirmed": true,
"idle_verified": true,
"errors": [],
"orphan_cleanup": {
"attempted": true,
"report": {
"scope": "/tmp/erri-headless-compat/pfx",
"candidates": [],
"term_sent": [],
"kill_sent": [],
"cleared": true
}
}
},
"runner_error": null,
"session": "/tmp/erri-workbench-profile/logs/logs_2026-09-19_20-57-34",
"rounds_required": 1,
"project": "chat",
"display": "headless Gamescope 1280x720/30Hz",
"dedicated_server": false,
"audio": "silent sink and per-test-stream mute"
}
@@ -0,0 +1,257 @@
---------------------------------------------
Log Z:\tmp\erri-workbench-profile\logs\logs_2026-09-19_20-57-34\script.log started at 2026-09-19 20:57:37 (2026-09-19 18:57:37 UTC)
20:57:37.998 SCRIPT : SCRIPT : Initializing scripts
20:57:37.998 SCRIPT : SCRIPT : ScriptProjectManager init
20:57:40.426 SCRIPT : SCRIPT : Compiling GameLib scripts
20:57:40.496 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460
20:57:40.496 SCRIPT : Module: GameLib; loaded 466x files; 648x classes; used 828K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
20:57:40.497 SCRIPT : SCRIPT : Compiling Game scripts
20:57:41.817 SCRIPT : Compiling Game scripts
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
20:57:41.817 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
20:57:42.001 SCRIPT (W): @"Scripts/Game/ERR/ERR_SiteService.c,191": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.106 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
20:57:42.138 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
20:57:42.252 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
20:57:42.290 SCRIPT (W): @"Scripts/Game/ERR/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
20:57:42.368 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
20:57:42.371 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.430 SCRIPT (W): @"Scripts/Game/ERR/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
20:57:42.432 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
20:57:42.474 SCRIPT (W): @"Scripts/Game/ERR/ERR_NativeTransportProbe.c,82": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
20:57:42.507 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
20:57:42.789 SCRIPT : Module: WorkbenchGame; loaded 172x files; 617x classes; used 2482K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: e963af0e
20:57:42.796 SCRIPT : Module: Game; loaded 5796x files; 11413x classes; used 33797K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 76ed3b1e
20:57:43.749 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:57:43.750 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:58:05.137 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516
20:58:05.137 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5
20:58:05.138 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453
20:58:05.138 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391
20:58:05.138 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344
20:58:05.138 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328
20:58:05.139 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234
20:58:05.139 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141
20:58:05.140 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094
20:58:05.162 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625
20:58:08.622 SCRIPT : Unable to register a script command due keyword duplicity: ban
20:58:08.622 SCRIPT : Unable to register a script command due keyword duplicity: kick
20:58:22.684 SCRIPT (W): SCR_PerceivedFactionManagerComponent trying to set fall back faction 'CIV' but this faction could not be found so it is null instead.
20:58:22.713 SCRIPT : ERR SMOKE: scripted integration test enabled; gameplay acceptance remains separate
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key!
20:58:23.224 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key!
20:58:23.226 SCRIPT (W): Can't open config file ""
20:58:23.233 SCRIPT (W): Slot_WeaponInfo Has no Content!
20:58:23.233 SCRIPT (W): Slot_Chat Has no Content!
20:58:23.233 SCRIPT (W): Slot_VON Has no Content!
20:58:23.234 SCRIPT (W): Slot_AvailableActions Has no Content!
20:58:23.234 SCRIPT (W): Slot_Vehicle Has no Content!
20:58:23.234 SCRIPT (W): Slot_GameVersion Has no Content!
20:58:23.234 SCRIPT (W): Slot_Notifications Has no Content!
20:58:23.234 SCRIPT (W): Slot_Hints Has no Content!
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.247 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants.
20:58:23.250 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config
20:58:23.303 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
20:58:23.319 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
20:58:23.506 SCRIPT (W): EditBoxFilterComponent used on invalid widget type.
20:58:25.036 SCRIPT : Rereintroduced [sites]: cache clearance position=<6086,211.538,7160> clear=1
20:58:25.060 SCRIPT : Rereintroduced [sites]: authored everon-prison-1 at <6090,211.444,7160>
20:58:25.061 SCRIPT : Rereintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
20:58:25.090 SCRIPT : Rereintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
20:58:25.092 SCRIPT : Rereintroduced [sites]: authored everon-radio-1 at <6500,159.756,7200>
20:58:25.142 SCRIPT : Rereintroduced [sites]: authored everon-extraction-1 at <7000,65.2562,7500>
20:58:25.143 SCRIPT : Rereintroduced [sites]: cache clearance position=<5960,220.256,7220> clear=1
20:58:25.148 SCRIPT : Rereintroduced [sites]: transport parking=<5960,220.256,7212> radius=4 terrainRange=0.8125 obstructed=0 clear=1
20:58:25.194 SCRIPT : Rereintroduced [sites]: authored everon-supply-2 at <5960,220.256,7220>
20:58:25.194 SCRIPT : Rereintroduced [sites]: cache clearance position=<6340,175.788,7400> clear=1
20:58:25.196 SCRIPT : Rereintroduced [sites]: authored everon-medical-1 at <6340,175.788,7400>
20:58:25.196 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.6,7300> clear=1
20:58:25.200 SCRIPT : Rereintroduced [sites]: cache clearance position=<6740,140.913,7296> clear=1
20:58:25.201 SCRIPT : Rereintroduced [sites]: cache clearance position=<6736,140.975,7300> clear=1
20:58:25.201 SCRIPT : Rereintroduced [sites]: cache clearance position=<6744,140.288,7300> clear=1
20:58:25.202 SCRIPT : Rereintroduced [sites]: authored everon-outpost-1 at <6740,140.6,7300>
20:58:25.203 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<7012,63.725,7500> up=1
20:58:25.203 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
20:58:25.203 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=10267.5
20:58:25.203 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012,64.0216,7502.25>
20:58:25.203 SCRIPT : ERR GEAR TERRAIN: bottom=<7012,63.7216,7502.25> terrainY=63.2926 tireTerrainGap=0.428944
20:58:25.204 SCRIPT : ERR GEAR SUPPORT: center=<7012,64.0216,7502.25> radius=0.3 bottom=<7012,63.7216,7502.25> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.204 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.72,64.4897,7497.97>
20:58:25.204 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.72,64.0397,7497.97> terrainY=64.1655 tireTerrainGap=-0.125717
20:58:25.204 SCRIPT : ERR GEAR SUPPORT: center=<7009.72,64.4897,7497.97> radius=0.45 bottom=<7009.72,64.0397,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.204 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.28,64.4898,7497.97>
20:58:25.204 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.28,64.0398,7497.97> terrainY=63.8096 tireTerrainGap=0.230156
20:58:25.205 SCRIPT : ERR GEAR SUPPORT: center=<7014.28,64.4898,7497.97> radius=0.45 bottom=<7014.28,64.0398,7497.97> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.119999
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.205 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:25.206 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=0 conscious=0 nativeComplete=0
20:58:26.052 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.052 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.053 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.053 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.306 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.08,63.5285,7499.7> up=0.995678
20:58:26.306 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.286983 angularSpeed=0.0801588
20:58:26.306 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:26.306 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6132,7501.97>
20:58:26.307 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3132,7501.97> terrainY=63.3165 tireTerrainGap=-0.00326157
20:58:26.307 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6132,7501.97> radius=0.3 bottom=<7012.07,63.3132,7501.97> fraction=0.440022 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=-0.0031929
20:58:26.307 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.88,64.6007,7497.71>
20:58:26.307 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.88,64.1507,7497.71> terrainY=64.1555 tireTerrainGap=-0.00480652
20:58:26.307 SCRIPT : ERR GEAR SUPPORT: center=<7009.88,64.6007,7497.71> radius=0.45 bottom=<7009.88,64.1507,7497.71> fraction=0.432978 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=-0.00474548
20:58:26.307 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.42,64.2628,7497.74>
20:58:26.308 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.42,63.8128,7497.74> terrainY=63.8179 tireTerrainGap=-0.00510025
20:58:26.308 SCRIPT : ERR GEAR SUPPORT: center=<7014.42,64.2628,7497.74> radius=0.45 bottom=<7014.42,63.8128,7497.74> fraction=0.431111 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00515366
20:58:26.308 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:26.563 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:26.564 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=1 conscious=1 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.073 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.328 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.1,63.5361,7499.71> up=0.994351
20:58:27.328 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.0975902 angularSpeed=0.0685686
20:58:27.328 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:27.328 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.07,63.6186,7501.99>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.07,63.3186,7501.99> terrainY=63.3144 tireTerrainGap=0.00423813
20:58:27.329 SCRIPT : ERR GEAR SUPPORT: center=<7012.07,63.6186,7501.99> radius=0.3 bottom=<7012.07,63.3186,7501.99> fraction=0.474215 normal=<-0,0.990257,0.139255> self=0 dynamic=0 supported=1 gap=0.00432587
20:58:27.329 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.93,64.6021,7497.71>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.93,64.1521,7497.71> terrainY=64.149 tireTerrainGap=0.00312805
20:58:27.329 SCRIPT : ERR GEAR SUPPORT: center=<7009.93,64.6021,7497.71> radius=0.45 bottom=<7009.93,64.1521,7497.71> fraction=0.468575 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.0030899
20:58:27.329 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.47,64.2643,7497.78>
20:58:27.329 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.47,63.8143,7497.78> terrainY=63.8154 tireTerrainGap=-0.0010643
20:58:27.330 SCRIPT : ERR GEAR SUPPORT: center=<7014.47,64.2643,7497.78> radius=0.45 bottom=<7014.47,63.8143,7497.78> fraction=0.449722 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00106049
20:58:27.330 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:27.581 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
20:58:27.582 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:27.831 SCRIPT : Rereintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
20:58:28.086 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.087 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=3 conscious=3 nativeComplete=0
20:58:28.339 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.12,63.5331,7499.74> up=0.994194
20:58:28.339 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.04555 angularSpeed=0.0154758
20:58:28.339 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:28.339 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6141,7502.01>
20:58:28.340 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3141,7502.01> terrainY=63.3116 tireTerrainGap=0.00251007
20:58:28.340 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6141,7502.01> radius=0.3 bottom=<7012.08,63.3141,7502.01> fraction=0.465906 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00249863
20:58:28.340 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5946,7497.72>
20:58:28.340 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1446,7497.72> terrainY=64.1429 tireTerrainGap=0.00172424
20:58:28.340 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5946,7497.72> radius=0.45 bottom=<7009.97,64.1446,7497.72> fraction=0.462402 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00173187
20:58:28.340 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2603,7497.82>
20:58:28.341 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8103,7497.82> terrainY=63.8129 tireTerrainGap=-0.00257492
20:58:28.341 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2603,7497.82> radius=0.45 bottom=<7014.51,63.8103,7497.82> fraction=0.442778 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00259018
20:58:28.341 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:28.589 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:28.590 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.101 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.102 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=4 conscious=4 nativeComplete=0
20:58:29.352 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143
20:58:29.352 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:58:29.352 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:29.352 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:58:29.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00163269
20:58:29.353 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362
20:58:29.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73>
20:58:29.353 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00248718
20:58:29.353 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089
20:58:29.353 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84>
20:58:29.354 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00204086
20:58:29.354 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705
20:58:29.354 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.610 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:29.611 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=5 conscious=5 nativeComplete=0
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.114 SCRIPT : Rereintroduced [guards]: initial site=everon-supply-2 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.115 SCRIPT : Rereintroduced [guards]: initial site=everon-outpost-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.369 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<7012.13,63.5289,7499.75> up=0.994143
20:58:30.369 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
20:58:30.370 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=10267.4
20:58:30.370 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<7012.08,63.6125,7502.02>
20:58:30.370 SCRIPT : ERR GEAR TERRAIN: bottom=<7012.08,63.3125,7502.02> terrainY=63.3109 tireTerrainGap=0.00163269
20:58:30.370 SCRIPT : ERR GEAR SUPPORT: center=<7012.08,63.6125,7502.02> radius=0.3 bottom=<7012.08,63.3125,7502.02> fraction=0.461881 normal=<0,0.996962,0.0778877> self=0 dynamic=0 supported=1 gap=0.00161362
20:58:30.370 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<7009.97,64.5939,7497.73>
20:58:30.371 SCRIPT : ERR GEAR TERRAIN: bottom=<7009.97,64.1439,7497.73> terrainY=64.1414 tireTerrainGap=0.00248718
20:58:30.371 SCRIPT : ERR GEAR SUPPORT: center=<7009.97,64.5939,7497.73> radius=0.45 bottom=<7009.97,64.1439,7497.73> fraction=0.465508 normal=<0.139105,0.989191,0.0463683> self=0 dynamic=0 supported=1 gap=0.00241089
20:58:30.371 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<7014.51,64.2602,7497.84>
20:58:30.371 SCRIPT : ERR GEAR TERRAIN: bottom=<7014.51,63.8102,7497.84> terrainY=63.8122 tireTerrainGap=-0.00204086
20:58:30.371 SCRIPT : ERR GEAR SUPPORT: center=<7014.51,64.2602,7497.84> radius=0.45 bottom=<7014.51,63.8102,7497.84> fraction=0.445278 normal=<0.015606,0.998782,0.0468179> self=0 dynamic=0 supported=1 gap=-0.00203705
20:58:30.371 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
20:58:30.622 SCRIPT : Rereintroduced [guards]: initial site=everon-prison-1 requested=6 physical=6 conscious=6 nativeComplete=1
20:58:30.622 SCRIPT : Rereintroduced [sites]: 7 sites and 117 physical stock items ready
20:58:30.635 SCRIPT : Rereintroduced [environment]: date=authored weather=authored
20:58:30.636 SCRIPT : Rereintroduced [time]: started at 14:00 with 1x progression
20:58:30.637 SCRIPT : Rereintroduced [mission]: phase 0 -> 1
20:58:30.637 SCRIPT : Rereintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<6090,211.444,7160>
20:58:30.637 SCRIPT : Rereintroduced [prison]: gate candidate raw= resolved={C3FDC4DBCD58C2F5}Prefabs/ERR/PrisonDoor.et lock=1 door=1 position=<6090,211.344,7154>
20:58:30.637 SCRIPT : Rereintroduced [prison]: destruction health=1000 destroyed=0 queued=0
20:58:30.637 SCRIPT : Rereintroduced [prison]: one intact successor lock in owned prison
20:58:31.558 SCRIPT : INFO: Faction: player jakub (playerID = 1 | UUID = 00000000-0000-0000-0000-000000000000) has joined faction #AR-Faction_US (US)
20:58:31.597 SCRIPT : Rereintroduced [spawn]: player 1 at <6088.5,211.491,7158.5>
20:58:31.793 SCRIPT : ERR SMOKE PASS: new identity may enter prison
20:58:31.794 SCRIPT : ERR SMOKE PASS: spawn consumes identity life
20:58:31.794 SCRIPT : ERR SMOKE PASS: disconnect retains living actor and clears connection
20:58:31.794 SCRIPT : ERR SMOKE PASS: reconnected identity retains spent life
20:58:31.794 SCRIPT : ERR SMOKE PASS: duplicate active identity rejected
20:58:31.794 SCRIPT : ERR SMOKE PASS: recycled connection receives independent life and extraction admission policy
20:58:31.794 SCRIPT : ERR SMOKE PASS: base contracts catalog resolves hostile vanilla factions and successful preparation
20:58:31.794 SCRIPT : ERR SMOKE PASS: base contracts physical prisoner matches injected faction and resource
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts physical guard squad comes from injected catalog
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts same-side factions rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts unknown world faction rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts missing prisoner resource rejected
20:58:31.795 SCRIPT : ERR SMOKE PASS: base contracts isolated catalog restored without mutating live configuration
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts unauthorized settings request rejected
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts partially numeric input rejected without mutation
20:58:31.796 SCRIPT : ERR SMOKE PASS: base contracts out-of-range duration rejected without mutation
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts normalized base command saves validated duration
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base command reads saved duration
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base settings listing available
20:58:31.799 SCRIPT : ERR SMOKE PASS: base contracts base mission status available before companions
20:58:31.803 SCRIPT : ERR SMOKE PASS: base contracts test setting restored
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq interval show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq squads show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: hq radius show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: intel carrying show
20:58:31.803 SCRIPT : ERR SMOKE PASS: companion command retained: intel reveal show
20:58:31.804 SCRIPT : ERR SMOKE PASS: companion journal is behind Core admin authorization
20:58:31.804 SCRIPT : ERR SMOKE PASS: companion HQ status uses the shared command service
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: aircraft-field independent qualified candidate found before one finite allocation
20:58:32.297 SCRIPT (E): ERR SMOKE FAIL: native actual aircraft field fixture
@@ -0,0 +1,4 @@
{
"schema_version": 1,
"kind": "launch_snapshot"
}
@@ -0,0 +1,203 @@
{
"addons/ai/Prefabs/ERR/MortarCrew.et": "05d3e7353ff9fe5523218a1487b31b7b742b0be8adbcb060c7099978cf008bce",
"addons/ai/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc",
"addons/ai/Scripts/Game/ERR/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c": "c02c8e6fbdfd3b8c67461590d532019d3bf0002307b19aee604eb17ad230c329",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c": "e3322b6d85b1234bfbf218a119cf6f7eed0b9ddd160004d2d9fe02c64ed857ba",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c": "395eadae1067f230c26dbf73f43e39180173e173fd04a346839c474e084feaae",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7",
"addons/ai/Scripts/Game/ERR/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511",
"addons/ai/Scripts/Game/ERR/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9",
"addons/ai/Scripts/Game/ERR/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913",
"addons/ai/Scripts/Game/ERR/ERR_HQ.c": "7ee8e7a3282fd566ec330c94854b353b2c6178e9b964f7b4d5e197e4d0b7dee9",
"addons/ai/Scripts/Game/ERR/ERR_HQJournal.c": "b3e402cfe92d415f37f666045afb062e6e11670ba03a0ca6f2d9fd4fc3520ac1",
"addons/ai/Scripts/Game/ERR/ERR_HQNetwork.c": "92ff2caca52e94c2cc9642dfc8509ce6e9349b257012bade8650bace9231128c",
"addons/ai/Scripts/Game/ERR/ERR_HQObservation.c": "36c978ec5f052213ac1236e1398d85063efbfd7ef60fe04f1fc11447fefe1d68",
"addons/ai/Scripts/Game/ERR/ERR_HQReport.c": "c4d16ccb571db4d9444c0a8d2be7318845d25ff90238b6d304e96a9ea19f1a08",
"addons/ai/Scripts/Game/ERR/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762",
"addons/ai/Scripts/Game/ERR/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649",
"addons/ai/Scripts/Game/ERR/ERR_MortarBattery.c": "a4eed96d17f239cbf353863ebe40d2282aeacd7a4d63a7b2f0ecfb3d93a2e2b2",
"addons/ai/Scripts/Game/ERR/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7",
"addons/ai/Scripts/Game/ERR/ERR_MortarFiring.c": "7aec51c83972610d1bcbca58b84b14f16f59952d402b12c3d88e7192a3e2ee90",
"addons/ai/Scripts/Game/ERR/ERR_MortarLogistics.c": "e1ffb25fba384b449de576a5502a93d875c3f52e8da1941bbf590ad9845f9730",
"addons/ai/Scripts/Game/ERR/ERR_MortarPrediction.c": "470dd196ed64800c697d24c09d1344bacd2502587fac76af4ee0edae2563092d",
"addons/ai/Scripts/Game/ERR/ERR_MortarReadiness.c": "2fabe8f812fd333cea7199d1eb722c807fcc5adb285c618956bd54d31fa27ce3",
"addons/ai/Scripts/Game/ERR/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4",
"addons/ai/Scripts/Game/ERR/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae",
"addons/ai/Scripts/Game/ERR/ERR_MortarSalvo.c": "697c01f479df6c505a41d984a29c02002e3052114dafa2ec6252ae55e2979a2b",
"addons/ai/Scripts/Game/ERR/ERR_MortarSupplyTransfer.c": "34f7eaa01dc68e97aae8c1177b7f8fd6c15d5a41c6dc86de377f00b3613a8e77",
"addons/ai/Scripts/Game/ERR/ERR_MortarSystem.c": "4edefc8530cc6eec7a5e1df1d0b7d56e6801186f23c61331ce0e8075b8281efb",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftFieldProbe.c": "d2d2dd65e202672f285ed9afb7ee0247da31b8eb29e0fc3091ccb846f49236e8",
"addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarSalvoProbe.c": "5fd7bb8953f6850ad79e646c0c286153108a10ee2d5ef397ccb65a07f8d2ed7c",
"addons/ai/Scripts/Game/ERR/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c",
"addons/ai/Scripts/Game/ERR/ERR_NativePatrolHQProbe.c": "4c04aa3e1b6b000747da8e2a919a6501107880fd041134c019f516665bb6f758",
"addons/ai/Scripts/Game/ERR/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b",
"addons/ai/Scripts/Game/ERR/ERR_SupportScenario.c": "71757018ec9716c4dc24f62a292a214919d3fd5daed3c16e03e56abd208e9f03",
"addons/ai/addon.gproj": "5f559db8f526700db11e6ae763f5245f19b7006fc68c56e4c09fb6f940bdf2a1",
"addons/chat/Missions/ERR_Everon.conf": "76f3ac0d21b585654beac7ddd68e3c8cbdd66dbfe909b17b04838fa813a7c29b",
"addons/chat/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f",
"addons/chat/Scripts/Game/ERR/ERR_AdminCommands.c": "d7b4ed95fc32767911936cb0fcc60763233f2c31afd34a6a0fa998b39cec9f5c",
"addons/chat/Scripts/Game/ERR/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3",
"addons/chat/Scripts/Game/ERR/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a",
"addons/chat/Scripts/Game/ERR/ERR_NativeRadioProbe.c": "84524163c63402755b4f834f74dfe6d8e5c397dc26031f532593c6f79f5a93b1",
"addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c": "04400b71fd5e203e7cc4ff459fe6b49e8abb81c9cd215551a3f280ac8493e663",
"addons/chat/Scripts/Game/ERRChat/ERR_OrdinaryScenarioLaunchChat.c": "dda715c9691d366e35fa2ad5e390dee1971651f137a5a9f9aeb23dcbe53ec87e",
"addons/chat/Scripts/WorkbenchGame/ERR/ERR_ValidateWorldPlugin.c": "81c92d408ce88cc9f98d6053f1d0c863427693ba748f00df9f1bf8079015ef94",
"addons/chat/addon.gproj": "ea1587e0174cf795334d306c71d99b06797fc891427cd57b6cab6e21cf0e4e0e",
"addons/core/Configs/ERR/EveronSites.conf": "ade92cc8d2b14a84ac378bbbb52608b351dca65d359dd7a315d64a145fa4b46f",
"addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb",
"addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035",
"addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b",
"addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b",
"addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30",
"addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611",
"addons/core/Configs/ERR/GameOverScreens.conf": "45231061911a1462d45fb6db0fecc2b0793f17b5ae71017174954ff4fbd20236",
"addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e",
"addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1",
"addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd",
"addons/core/Missions/ERR_Everon_Base.conf": "1e6a0e9a756d15495201f71121626890f01efe6b00154c561672d4ec157960bd",
"addons/core/Missions/ERR_Everon_Base.conf.meta": "9b16267c644d815bcf98a3a3aaff30b93d7224fb24d3a2bac66730a28011f317",
"addons/core/Prefabs/ERR/Extraction.et": "1aa286ef253c5410f09fa641e4be91a7be8ec834487a7fbb74cfb45cab60ee1e",
"addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853",
"addons/core/Prefabs/ERR/FactionManager.et": "425f916b890019c537f6b2f72b1af9e7be54b0a476320da969e1f313a7ac5ea5",
"addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d",
"addons/core/Prefabs/ERR/FieldCover.et": "20f8095e69dbfe3db74ff19078e528ea75405362b335e03560ccd61f8df2e7f3",
"addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9",
"addons/core/Prefabs/ERR/GameMode.et": "385c97a5b8067091d92aa60c2d4fcf02002cf606b95523866ead65c96b8c0029",
"addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c",
"addons/core/Prefabs/ERR/ObjectiveDocument.et": "2e72270bf186654af12d2c3ff9bf940690b03fb17fca44f873c1fde5d11384c0",
"addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e",
"addons/core/Prefabs/ERR/Patrol.et": "c5685a8bc311cc5563fb3334beec9408d3d7a1069152fddeeb7df4f1b7f9e6ce",
"addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69",
"addons/core/Prefabs/ERR/Prison.et": "dcd3f4dfd453303d026e68b64f7de6125bd3390822d8432dd95a3710a5b3df89",
"addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb",
"addons/core/Prefabs/ERR/PrisonDoor.et": "fc66be9d36f1f01084de59f1b0a1e8817f9e46547ead33d4fafaac0107446c40",
"addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2",
"addons/core/Prefabs/ERR/PrisonWall.et": "8009d19365ae72a4749d7ad4fa04662575b06c65c6bf06507d380d57258b5eed",
"addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6",
"addons/core/Prefabs/ERR/Prisoner.et": "198b5badabb12f218f86df7eb4dc268fd830769dc3de7eef6362cfaee4d6fc8d",
"addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022",
"addons/core/Prefabs/ERR/Radio.et": "b4b5cfe125b39019855816c9a1c508ca4d65d435b5546fdaa6c1fa3c8c9b1165",
"addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f",
"addons/core/Prefabs/ERR/SpectatorCamera.et": "b5b87d5b7b707f3745741aebe7c923067c8a74f8fbb2a4711834bab03bb5a812",
"addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad",
"addons/core/Prefabs/ERR/SupplyCache.et": "bccf7afbaae97cfcdd78dd6dbbf4be5b2c045d348f50fe4581962e556c0044d7",
"addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb",
"addons/core/Prefabs/ERR/SupplySite.et": "dc5decce5cabf39b6116e8794ec3960cb1e35761854fdbe69740da118787ded4",
"addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630",
"addons/core/Scripts/Game/ERR/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6",
"addons/core/Scripts/Game/ERR/ERR_Actors.c": "bb5e2d065ec40629cebebf2be25958b992ad05dbc906c5f66dddbe6c6d4ff124",
"addons/core/Scripts/Game/ERR/ERR_AdminService.c": "9985747d5ddaeb91bf27937836a6c369f8dcb353263b77a49212ec28c10ba4eb",
"addons/core/Scripts/Game/ERR/ERR_CasualtyGroundSupport.c": "26f0c7ebe8563bb022f7c383674e7d8997b0cc35c7ea321d39d74f2493c1ed9d",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingGameMode.c": "f4cf19440583ac24346831a2d5f1d7f734c031e46dc266c499972329dd0533cf",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingOwner.c": "6346a05ddda030f7d9b6f026f977d5f018ee16002fa519e8c49dcd700c323dc7",
"addons/core/Scripts/Game/ERR/ERR_CasualtyLoadingService.c": "93fe23d9e1da596886c33cf76bad92b0906ff5cdd8b5b21d58906e9270246201",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryMap.c": "7553c8cc1388cca3404994e36f96946c6abd1fefb08cef2fbb3ea1a62b22861b",
"addons/core/Scripts/Game/ERR/ERR_DiscoveryService.c": "2793bb888566dd975e5bbf93fdb47a22e3b0f33a68d04992191cf6428ae942a0",
"addons/core/Scripts/Game/ERR/ERR_DocumentComponent.c": "17bb76b80ebd3357e46d553c44674f602c7bd6901c92aec53ac8214194aa4ff2",
"addons/core/Scripts/Game/ERR/ERR_EnvironmentService.c": "867e9f47adfb7a9819a8b58498688ff86127282cb89cf2529ae81f73e529e1c5",
"addons/core/Scripts/Game/ERR/ERR_EscapeGameOverScreenInfo.c": "8893b161bf168884d62f1315d3c8aa9af4ca413f621d6f8e2525bb5245d5f509",
"addons/core/Scripts/Game/ERR/ERR_ExtractionPlacement.c": "c30222ca25cc0e91dec4077e6b82b37a9edafcf2cbebd0be5b6bd8656b53adfe",
"addons/core/Scripts/Game/ERR/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9",
"addons/core/Scripts/Game/ERR/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e",
"addons/core/Scripts/Game/ERR/ERR_GameMode.c": "b5b07abdfecde247b9d9d6f74dddfff50fde825f3c7fe6d86abd97e85f87b2e7",
"addons/core/Scripts/Game/ERR/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558",
"addons/core/Scripts/Game/ERR/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6",
"addons/core/Scripts/Game/ERR/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8",
"addons/core/Scripts/Game/ERR/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e",
"addons/core/Scripts/Game/ERR/ERR_LoadCasualtyAction.c": "5d868fb065a1a0fea7d5abfc81d1d8be96823815535f2ffd0dc4ff60d8eae794",
"addons/core/Scripts/Game/ERR/ERR_LocalAdmission.c": "b0e824c6880cbf9b1f368dc7ada9907bde78b22b948d419b6c861323f32258be",
"addons/core/Scripts/Game/ERR/ERR_Location.c": "d2035f56ded35743312ec6ca91a67f8623a466c91255e1893c570edf0954ff24",
"addons/core/Scripts/Game/ERR/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41",
"addons/core/Scripts/Game/ERR/ERR_NativeAdminSettingsProbe.c": "6a4df33a2b0e6b6aeed944c6895961e658d4f0db9aed9b8433a43a451fa35cae",
"addons/core/Scripts/Game/ERR/ERR_NativeBaseSmoke.c": "7b35e53ceb91b8235fb753d42c8d5c80f6164b6d4cb53c685e058c409662708a",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36",
"addons/core/Scripts/Game/ERR/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea",
"addons/core/Scripts/Game/ERR/ERR_NativeContractsProbe.c": "d1556df885171cf967e96eef5d8981a2e9ee4e3938b7d32fdd0426f647bbabc0",
"addons/core/Scripts/Game/ERR/ERR_NativeDefinitionProbe.c": "c07048341396443ddf5307e340e2087254d65f0bddf8f7d93e6b6bd7f03ca360",
"addons/core/Scripts/Game/ERR/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f",
"addons/core/Scripts/Game/ERR/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentProbe.c": "8b1d110717aa5f07bfb8fe633847eab519109e3a8a4100970a487be05c053418",
"addons/core/Scripts/Game/ERR/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507",
"addons/core/Scripts/Game/ERR/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972",
"addons/core/Scripts/Game/ERR/ERR_NativeFactionCatalogProbe.c": "ee11486cf77da9070506ccc0cfd6e94240c5387c8be455bf864934a8fef65f78",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d",
"addons/core/Scripts/Game/ERR/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4",
"addons/core/Scripts/Game/ERR/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514",
"addons/core/Scripts/Game/ERR/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9",
"addons/core/Scripts/Game/ERR/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115",
"addons/core/Scripts/Game/ERR/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09",
"addons/core/Scripts/Game/ERR/ERR_NativeMedicalProbe.c": "43fa51ffbcf9dd0cd8e905a1135bcf0756651da3af34677f3c92e7d264ed70b6",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48",
"addons/core/Scripts/Game/ERR/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b",
"addons/core/Scripts/Game/ERR/ERR_NativePatrolProbe.c": "02bd9fdf5454db7dd4c82240efe0d947bf8d6488ace42809c3aef6505cb6266d",
"addons/core/Scripts/Game/ERR/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f",
"addons/core/Scripts/Game/ERR/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonBreachProbe.c": "22d0923cd69ba591e783011d424c97c86520272b70da9aa6a6d15558464c264c",
"addons/core/Scripts/Game/ERR/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86",
"addons/core/Scripts/Game/ERR/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560",
"addons/core/Scripts/Game/ERR/ERR_NativeRadioDefenceProbe.c": "cad54f0b43cefd72df74697dfc7e93725ff0acac6d311e963ce4f817428c272c",
"addons/core/Scripts/Game/ERR/ERR_NativeRecoveryProbe.c": "4de6868cd3e76afb80cf0ae5dac1e35d2c417838f640c2f18aa3343217eea2f2",
"addons/core/Scripts/Game/ERR/ERR_NativeResultProbe.c": "db239385dc705840240d02448eabc77fa41162cfade6f21a275a3404339e8a31",
"addons/core/Scripts/Game/ERR/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f",
"addons/core/Scripts/Game/ERR/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c",
"addons/core/Scripts/Game/ERR/ERR_NativeTimeProbe.c": "c93d049785971e51246fcc07cf24804270a752a655505f2c38e48c80df5255ae",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportProbe.c": "63ec0c5ce698114daa6314b2a6e3c3e98e76094117c477f9d0d072260686d193",
"addons/core/Scripts/Game/ERR/ERR_NativeTransportSurvey.c": "3e94493bf54d15be2bceb106ad18873e14e6755af09c05f07db7fb26fb7adff5",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf",
"addons/core/Scripts/Game/ERR/ERR_ObjectiveText.c": "3b73b19429c7746425470d73ce5983f9fd442e4cd6acaab87f8728ea4dccb0c2",
"addons/core/Scripts/Game/ERR/ERR_Objectives.c": "88d95a52fcba103483ea751571e1afeae0e6fc82115ed50d6fc195424726960f",
"addons/core/Scripts/Game/ERR/ERR_Observer.c": "16ab78acede9b0cab86c6a74f47ffd5b8a7c50f131f44d64a8826eac6896a279",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0",
"addons/core/Scripts/Game/ERR/ERR_OrdinaryScenarioLaunch.c": "a4e7e56d174ebd15b4730202dae4c8ed06144f3f27c23ed49c99e2d297dc421a",
"addons/core/Scripts/Game/ERR/ERR_PlayerAdminCommands.c": "a084d7dc097dfcde3d6cd9c2e326b9e2f8f2a519f77b30c4f56ab7a1429aa721",
"addons/core/Scripts/Game/ERR/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14",
"addons/core/Scripts/Game/ERR/ERR_PlayerGuide.c": "59008466b1b0cf3e191ccf16ecb1f32493351df1155c167f237a35279d39c1ba",
"addons/core/Scripts/Game/ERR/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b",
"addons/core/Scripts/Game/ERR/ERR_PreparationStatus.c": "1d8987d2dcc1db2a030e095b33d50f07877181037d339624156291d8317bfa5d",
"addons/core/Scripts/Game/ERR/ERR_PrisonEscapeService.c": "ed6286342ed12cc9a3df618474f5647c7ac36bc65336be7a5bec908dee04421d",
"addons/core/Scripts/Game/ERR/ERR_RadioDefenceService.c": "5d347cf1a3b021074d560aad8db774828b797e685b63ddff3d28f55781e33ea8",
"addons/core/Scripts/Game/ERR/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db",
"addons/core/Scripts/Game/ERR/ERR_RecoveryService.c": "ba9ffb93679012c20a665636ef6b201cbe7d8d14fdf53e8cd3eb12ac7248943f",
"addons/core/Scripts/Game/ERR/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee",
"addons/core/Scripts/Game/ERR/ERR_ScenarioComponent.c": "abba03af68323d5715ba1e2497fc66f3c706e6a6a983c3a386228abdfddeec89",
"addons/core/Scripts/Game/ERR/ERR_Settings.c": "b9390548936b386e0211d487c1b76b65410fdd2e339cd8ecd9585ef4f4ffed31",
"addons/core/Scripts/Game/ERR/ERR_SiteDefinition.c": "b422feeaca90084ea2bee5cde94dc9c6fcae542749b55d95f7226f922a6a68ac",
"addons/core/Scripts/Game/ERR/ERR_SiteDiscoveryRules.c": "50f7b3ff4f32bde37ce5ae2be7f598fc4dd8cc08f45914f6e3260d31c84baef2",
"addons/core/Scripts/Game/ERR/ERR_SiteService.c": "6bc9a0b5aed326822807f05e17459d0fc2da10b709e8168972b4e40fd09f87cb",
"addons/core/Scripts/Game/ERR/ERR_SpawnFinalization.c": "2e295b0f225208c5414728ba83333e5e0ab6eef3a708ce39eb1dfce5400c94c9",
"addons/core/Scripts/Game/ERR/ERR_SpawnLogic.c": "ed88279cbeb3e5e6daf8471763df87a251881f550632eddadd08153594bbd1a1",
"addons/core/Scripts/Game/ERR/ERR_SpawnPlacement.c": "55323dcb330c23d49dc8fa3fde86a3ae3958c0b6563d6c3cd0960da88333f93d",
"addons/core/Scripts/Game/ERR/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713",
"addons/core/Scripts/Game/ERR/ERR_TimeService.c": "d9f481b7da01e08d2c982a948c18ba6bde76889d7cc9d26d510708f4ba479453",
"addons/core/Scripts/GameLib/ERR/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5",
"addons/core/Scripts/WorkbenchGame/ERR/ERR_ValidateBaseWorldPlugin.c": "7f44aa64ea7b4f8b3640a37a4b781c43bf6adb80e4a3a702d9491131698056f6",
"addons/core/UI/layouts/ERR/PreparationStatus.layout": "bd269cf8dc6f27735423743dd5b78242550518414448a0256e5e12fa6b92c459",
"addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc",
"addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87",
"addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83",
"addons/core/Worlds/ERR_Everon_Layers/default.layer": "17105538007199bfc419aa04a64debaf2da0a7b77a1dc3ba983e92bf747c862e",
"addons/core/addon.gproj": "231274e6b62302f32c65f9ff31de2ce8a9e51e1c8d12c87deeec82ae1f40de46",
"addons/intel/Scripts/Game/ERR/ERR_IntelService.c": "5e167630a76437fd731fbb7a62a41381ea71509f3adb8a6b9c77f6816384861a",
"addons/intel/addon.gproj": "d0ced242cefb220a5cccd6779d61fda9bc55581701b9f78bcf13c09d92ddbcbe",
"addons/map/Materials/ERRM_MapRenderTarget.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc",
"addons/map/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "30dee8e9eab459ea32a7d835a9fb89d43df47708057cab829f067b25a24cd581",
"addons/map/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d",
"addons/map/Scripts/Game/ERR/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3",
"addons/map/Scripts/Game/ERRMap/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254",
"addons/map/Scripts/Game/ERRMap/ERRM_SharedMapComponent.c": "3a10f6ea25bf88a400bc3e6c339823433845c5db4f2f423835ccf99a1b1a843f",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "49a2da4181b94d42174f58c7f9b6bf2207116c99427d61ff1c212092ac7db4d2",
"addons/map/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54",
"addons/map/addon.gproj": "1b371e5e01ea9fa46e76570fecb8aaa3a9298e34cba7ccca8a6bdb5ca86eb46a"
}
+42
View File
@@ -120,3 +120,45 @@ source-bound native trial remains necessary; prior approach successes do not
qualify the changed timing.
The first [native timing candidate202949](evidence/approach-timing-review-2026-09-19-202949/review.json) passed camera calibration but failed its original approach deadline. It sent12 paired W pulses and14 yaw requests;11 full stops were completed before expiry. Actual holds were 195.1–236.3ms (median200.9ms), and largest completed stop was0.438m. Observed path was3.965m. All releases and owned cleanup were confirmed. The improved release latency therefore did not produce a completed route within the existing budget. No wheel/F was sent; the failure remains archived.
## Separate coarse-heading experiment (native pending)
The failed 202949 timing run spent its original budget on 14 small yaw requests
and 12 forward pulses despite shorter measured holds. A new **explicit**
`--exercise-prison-coarse-approach` runner flag requires the existing approach,
relative-look, gate-observation and private-display/input flags. Its matching
helper flag is `--enable-private-coarse-approach-proof`. Neither flag enables F,
pitch, a gate operation or any new native observer lifetime.
| Bound | Default `standard` | Explicit `coarse` |
| --- | ---: | ---: |
| Relative horizontal mouse request | 128 px | 384 px |
| Desired yaw proposal before pixel rounding | 10° | 25° |
| Actual native turn, including every intermediate sample | 15° | 35° |
| Maximum paired W pulses | 12 | 16 |
Both retain 16 total turns, 2,048 total pixels, the exact private pointer's current
and proposed clipped bounds, fresh full ownership/focus checks, stationary body
requirements, directional native acknowledgement and full settling. A coarse
request can still be refused because it does not fit the owned pointer area.
Both retain the 35-second absolute READY deadline and 45-second QUEUED observer
window, 1.5-second supervised key lease, 400ms actual W hold limit, positive
sampled native forward input, full native stops, 0.75m endpoint tolerance, 0.25m
reserve added to the largest measured stopping distance, six-metre total path,
and the existing interior/velocity bounds. No limit renews when heading finishes
or an input is refused. The known stopping-reserve deadzone remains a refusal.
The route report records `profile`; omitted profiles in historical reports mean
`standard`, never coarse. Only those two names are accepted. Runner launch context
and helper report independently bind `coarse_approach_requested`, while the existing
exact helper and approach-module SHA-256 records bind the implementation. Final
qualification rejects an unrequested coarse flag/profile, changed module hashes,
or helper-only completion, and rechecks actual native intermediate turns under
the selected profile. Default commands retain the previous capability limits.
Offline tests cover default compatibility, an attainable simulated coarse route,
exact 16-pulse exhaustion, intermediate overshoot, unknown/unrequested profiles,
private pointer/focus/expiry refusal and retained stopping/hold rules. These are
policy and adapter tests, not evidence of improved ordinary gameplay. Previous
failed runs keep their original profile and result; the new experiment requires
its own source-bound native run before any success claim.
+1 -1
View File
@@ -1,6 +1,6 @@
# Proposed genuine held-F prison-lock proof
Design only; no held-F run or code change is established by this document. The next experiment is one real keyboard hold after independently accepted approach and alignment. It must not select an action, call an action method, change a door, move the player, alter input settings, or extend the original observation clock. A normal-input lock completion would establish this local route only, not multiplayer reliability or passage through the opened gate.
The three read-only observer phase extensions are implemented, source-tested and compiled in the20:57 field fixture snapshot. The held-F helper, independent validator and actual interaction remain pending; no held-F run is established. The next experiment is one real keyboard hold after independently accepted approach and alignment. It must not select an action, call an action method, change a door, move the player, alter input settings, or extend the original observation clock. A normal-input lock completion would establish this local route only, not multiplayer reliability or passage through the opened gate.
## Native behavior that determines the proof
+146
View File
@@ -0,0 +1,146 @@
"""Execute bounded whole-field survey with fake native terrain/traces, never fly."""
from policy_harness import ROOT, body, run
import re
P=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFieldEnvelope.c'
RULES=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c'
def cpp(s):
for name in ('Math','vector','ERR_AircraftFieldRules','SCR_TerrainHelper','TraceFlags'):
s=s.replace(name+'.',name+'::')
s=s.replace('array<IEntity> excluded = null','void* excluded = nullptr')
s=s.replace('TraceBox corridor','TraceBox* corridor').replace('TraceBox low','TraceBox* low')
for name in ('corridor','low'):s=s.replace(name+'.',name+'->')
s=s.replace('GetGame().','GetGame()->').replace('GetWorld().','GetWorld()->').replace(', null)', ', nullptr)')
return re.sub(r'(?<![\w.])(\d+\.\d+)(?![\w.])', r'\1f', s)
run(r'''
#include <cassert>
#include <cmath>
#include <algorithm>
#include <vector>
#include <cstdio>
struct Math {static float Clamp(float v,float lo,float hi){return std::clamp(v,lo,hi);}static float Min(float a,float b){return std::min(a,b);}static float Max(float a,float b){return std::max(a,b);}static int Ceil(float x){return std::ceil(x);}static float AbsFloat(float x){return std::abs(x);}};
struct vector {float v[3]={};vector(){}vector(float x,float y,float z){v[0]=x;v[1]=y;v[2]=z;}vector(const char*s){sscanf(s,"%f %f %f",v,v+1,v+2);}float&operator[](int i){return v[i];}float operator[](int i)const{return v[i];}vector operator+(vector b)const{return {v[0]+b[0],v[1]+b[1],v[2]+b[2]};}vector operator-(vector b)const{return {v[0]-b[0],v[1]-b[1],v[2]-b[2]};}vector operator*(float n)const{return {v[0]*n,v[1]*n,v[2]*n};}static float Dot(vector a,vector b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2];}static float DistanceXZ(vector a,vector b){return std::hypot(a[0]-b[0],a[2]-b[2]);}};
vector Vector(float x,float y,float z){return {x,y,z};}
struct ERR_AircraftFieldRules {
'''+cpp(body(RULES,'static bool Length('))+r'''
};
namespace TraceFlags {enum {ENTS=1,WORLD=2};}
struct TraceBox {vector Start,End,Mins,Maxs;int Flags=0;void* ExcludeArray=nullptr;};
struct World {int calls=0,refuseAt=0;std::vector<TraceBox> seen;float TraceMove(TraceBox* t,void*){calls++;seen.push_back(*t);delete t;return calls==refuseAt?.5:1;}} world;
struct Game {bool hasWorld=true;World* GetWorld(){return hasWorld?&world:nullptr;}} game;
bool hasGame=true;Game* GetGame(){return hasGame?&game:nullptr;}
struct SCR_TerrainHelper {
static int samples,kind;static std::vector<vector> points;
static float GetTerrainY(vector p){samples++;points.push_back(p);if(kind==1)return 10.31f;if(kind==2&&samples==2000)return 9.69f;if(kind==3)return NAN;return 10;}
};
int SCR_TerrainHelper::samples=0;int SCR_TerrainHelper::kind=0;std::vector<vector> SCR_TerrainHelper::points;
static const int MAX_TERRAIN_NODES=4096;
'''+ '\n'.join(cpp(body(P,key)) for key in ('static bool FinitePoint(', 'static int TerrainColumns(', 'static bool TerrainBudget(', 'static bool Survey('))+r'''
void reset(){world=World();SCR_TerrainHelper::samples=0;SCR_TerrainHelper::kind=0;SCR_TerrainHelper::points.clear();hasGame=true;game.hasWorld=true;}
int main(){
assert(TerrainColumns(100)==90);assert(TerrainColumns(100.05f)==91);
assert(TerrainColumns(99.94f)==0&&TerrainColumns(100.06f)==0&&TerrainColumns(NAN)==0);
assert(TerrainBudget(90,40)&&TerrainBudget(91,40)&&TerrainBudget(63,63));
assert(!TerrainBudget(64,63)&&!TerrainBudget(0,40)&&!TerrainBudget(4096,1)&&!TerrainBudget(-1,40));
assert(!FinitePoint({NAN,10,0})&&!FinitePoint({0,INFINITY,0})&&!FinitePoint({0,10,1000001}));
for(float angle: {0.f,.4f,1.2f,2.8f}){
reset();vector a={100,10,200},u={std::cos(angle),0,std::sin(angle)},v={-u[2],0,u[0]},b=a+u*100;
int excluded=7;assert(Survey(a,b,&excluded));
int columns=TerrainColumns(vector::DistanceXZ(a,b));
assert(SCR_TerrainHelper::samples==(columns+1)*41&&SCR_TerrainHelper::samples<=4096&&world.calls==2);
auto high=world.seen[0],low=world.seen[1];assert(high.Flags==(TraceFlags::ENTS|TraceFlags::WORLD)&&low.Flags==TraceFlags::ENTS);
assert(high.ExcludeArray==&excluded&&low.ExcludeArray==&excluded);
assert(high.Start[1]+high.Mins[1]==12&&high.End[1]+high.Maxs[1]==71);
assert(std::abs(low.Start[1]+low.Mins[1]-10.3f)<.0001);
// Assert the real terrain-query coordinates, including both endpoint caps.
float minimumAlong=1e6,maximumAlong=-1e6,minimumAcross=1e6,maximumAcross=-1e6;
for(auto p:SCR_TerrainHelper::points){float along=vector::Dot(p-a,u),across=vector::Dot(p-a,v);minimumAlong=std::min(minimumAlong,along);maximumAlong=std::max(maximumAlong,along);minimumAcross=std::min(minimumAcross,across);maximumAcross=std::max(maximumAcross,across);}
assert(std::abs(minimumAlong+40)<.001&&std::abs(maximumAlong-140)<.001&&std::abs(minimumAcross+40)<.001&&std::abs(maximumAcross-40)<.001);
for(size_t i=0;i<SCR_TerrainHelper::points.size();i++){
if(i%41)assert(vector::DistanceXZ(SCR_TerrainHelper::points[i],SCR_TerrainHelper::points[i-1])<=2.0001);
if(i>=41)assert(vector::DistanceXZ(SCR_TerrainHelper::points[i],SCR_TerrainHelper::points[i-41])<=2.0001);
}
// Every sampled bearing of the entire40m segment tube fits both traces.
for(int step=0;step<=10;step++)for(int bearing=0;bearing<16;bearing++){
float theta=bearing*6.2831853f/16;vector p=a+u*(step*10)+Vector(std::cos(theta)*40,0,std::sin(theta)*40);
for(int axis:{0,2}){assert(p[axis]>=high.Start[axis]+high.Mins[axis]-.001&&p[axis]<=high.Start[axis]+high.Maxs[axis]+.001);assert(low.Mins[axis]==high.Mins[axis]&&low.Maxs[axis]==high.Maxs[axis]);}
}
}
vector a={0,10,0},b={100,10,0};
for(int fault=1;fault<=3;fault++){reset();SCR_TerrainHelper::kind=fault;assert(!Survey(a,b));assert(world.calls==0&&SCR_TerrainHelper::samples<=4096);if(fault==2)assert(SCR_TerrainHelper::samples==2000);}
for(int trace=1;trace<=2;trace++){reset();world.refuseAt=trace;assert(!Survey(a,b));assert(world.calls==trace&&SCR_TerrainHelper::samples==3731);}
for(vector end:{Vector(99.94f,10,0),Vector(100.06f,10,0),Vector(100,10.31f,0),Vector(NAN,10,0)}){reset();assert(!Survey(a,end));assert(world.calls==0&&SCR_TerrainHelper::samples==0);}
reset();assert(!Survey({0,1,0},{100,1,0}));assert(SCR_TerrainHelper::samples==0);
reset();hasGame=false;assert(!Survey(a,b));assert(SCR_TerrainHelper::samples==0);
reset();game.hasWorld=false;assert(!Survey(a,b));assert(SCR_TerrainHelper::samples==0);
reset();assert(Survey(a,{100.05f,10,0}));assert(SCR_TerrainHelper::samples==3772);
}
''')
source=P.read_text();qualify=body(P,'static ERR_AircraftFieldEnvelope QualifyField(')
assert 'bool Claim(' not in source and 'bool ClaimedBy(' not in source
assert 'ERR_AircraftFlightEnvelope.Qualify(mode, aircraft, pilot)' in qualify
assert qualify.index('ERR_AircraftFlightEnvelope.Qualify(')<qualify.index('Hierarchy(')<qualify.index('ClearColumn(')<qualify.index('Survey(')<qualify.index('new ERR_AircraftFieldEnvelope')
assert 'm_Home = point.Home()' in qualify and 'm_Radius = point.Radius()' in qualify
assert source.count('m_Destination = end')==1
assert 'record.m_QualifiedAt = began;' in qualify and 'now - began <= 2000' in qualify
assert 'vector.Distance(aircraft.GetOrigin(), point.Home()) > 0.1' in qualify
assert 'GetGame().GetWorld() != world' in qualify
assert 'ERR_AircraftFieldRules.Contains(m_Home, m_Destination, position, upright)' in body(P,'bool Contains(')
print('PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification')
# Execute the actual certificate issuance body with fake native boundaries.
# Geometry/terrain/trace internals are exercised above, not replaced in that test.
q=cpp(qualify)
q=q.replace('static ERR_AircraftFieldEnvelope QualifyField(', 'static Field* QualifyField(')
q=q.replace('ERR_GameMode mode','Mode* mode').replace('Vehicle aircraft','Entity* aircraft').replace('IEntity pilot','Entity* pilot')
q=q.replace('BaseWorld world','World* world').replace('ERR_AircraftFlightEnvelope point','Base* point')
q=q.replace('ERR_AircraftFlightEnvelope.Qualify','Base::Qualify').replace('ERR_Actors.Ground','Ground')
q=q.replace('array<IEntity> excluded = {}','int excluded = 1')
q=q.replace('ERR_AircraftFieldEnvelope record = new ERR_AircraftFieldEnvelope()','Field* record = new Field()')
q=q.replace('ERR_GameMode.Get()','Mode::Get()')
for name in ('world','point','record','mode','aircraft','pilot'):q=q.replace(name+'.',name+'->')
q=q.replace('return null;', 'return nullptr;')
run(r'''
#include <cassert>
#include <cmath>
#include <algorithm>
#include <vector>
struct vector{float v[3]={};vector(){}vector(float x,float y,float z){v[0]=x;v[1]=y;v[2]=z;}float&operator[](int i){return v[i];}float operator[](int i)const{return v[i];}static float DistanceXZ(vector a,vector b){return std::hypot(a[0]-b[0],a[2]-b[2]);}static float Distance(vector a,vector b){return std::sqrt((a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1])+(a[2]-b[2])*(a[2]-b[2]));}};
struct Math{static float AbsFloat(float x){return std::abs(x);}};
struct ERR_AircraftFieldRules{
'''+cpp(body(RULES,'static bool Length('))+r'''
};
struct World{float now=1000;float GetWorldTime(){return now;}} world,foreignWorld;
struct Game{World* current=&world;World* GetWorld(){return current;}} game;
Game* liveGame=&game;Game* GetGame(){return liveGame;}
struct Mode{bool active=true;bool Active(){return active;}static Mode* current;static Mode* Get(){return current;}} mode,foreignMode;Mode* Mode::current=&mode;
struct Entity{World* worldPtr=&world;vector origin={0,10.1f,0};World* GetWorld(){return worldPtr;}vector GetOrigin(){return origin;}} aircraft,pilot;
int fault=0,allocations=0;std::vector<int> order;
vector Ground(vector point){point[1]=10;return point;}
struct Base {
Mode* m_Mode=nullptr;Entity* m_Aircraft=nullptr;Entity* m_Pilot=nullptr;vector m_Home={0,10.1f,0};float m_Radius=28,m_QualifiedAt=-1;
vector Home(){return m_Home;}float Radius(){return m_Radius;}
static Base* Qualify(Mode*,Entity*,Entity*){order.push_back(1);static Base point;return fault==1?nullptr:&point;}
};
struct Field:Base{
vector m_Destination;Field(){allocations++;}
'''+cpp(body(P,'static bool FinitePoint('))+r'''
static bool Hierarchy(Entity* entity,int){order.push_back(entity==&aircraft?2:3);return fault!=(entity==&aircraft?2:3);}
static bool ClearColumn(Entity*,Entity*,vector){order.push_back(4);return fault!=4;}
static bool Survey(vector,vector,int){order.push_back(5);world.now+=500;if(fault==6)world.now=3001;if(fault==7)aircraft.origin[0]=.101f;if(fault==8)game.current=&foreignWorld;if(fault==9)Mode::current=&foreignMode;if(fault==10)mode.active=false;if(fault==11)pilot.worldPtr=&foreignWorld;return fault!=5;}
'''+q+r'''
};
void reset(){fault=0;world.now=1000;game.current=&world;Mode::current=&mode;mode.active=true;aircraft.origin={0,10.1f,0};aircraft.worldPtr=&world;pilot.worldPtr=&world;allocations=0;order.clear();}
int main(){
reset();Field* qualified=Field::QualifyField(&mode,&aircraft,&pilot,{100,999,0});
assert(qualified&&allocations==1&&order==std::vector<int>({1,2,3,4,5}));
assert(qualified->m_Mode==&mode&&qualified->m_Aircraft==&aircraft&&qualified->m_Pilot==&pilot);
assert(qualified->m_QualifiedAt==1000&&world.now==1500); // survey never renews age
assert(qualified->m_Radius==28&&qualified->m_Home[1]==10.1f);
assert(qualified->m_Destination[0]==100&&qualified->m_Destination[1]==10.1f);
delete qualified;
for(int problem=1;problem<=11;problem++){reset();fault=problem;assert(!Field::QualifyField(&mode,&aircraft,&pilot,{100,10,0}));assert(allocations==0);}
reset();assert(!Field::QualifyField(&mode,&aircraft,&pilot,{99,10,0}));assert(order==std::vector<int>({1})&&allocations==0);
reset();assert(!Field::QualifyField(&mode,&aircraft,&pilot,{NAN,10,0}));assert(order.empty()&&allocations==0);
}
''')
print('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')
+181
View File
@@ -0,0 +1,181 @@
"""Execute prototype flight methods with real rules; native boundaries are fakes."""
from policy_harness import ROOT, body, run
import re
P=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFieldFlight.c'
B=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFlight.c'
R=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c'
source=P.read_text()
def cpp(s):
s=s.replace('protected ','').replace('override ','').replace('ref ','').replace('super.','Base::')
for old,new in [('ERR_AircraftFlightState.','State::'),('ERR_AircraftFlightRules.','FlightRules::'),('ERR_AircraftFieldRules.','Rules::'),('ERR_AircraftTranslationRules.','TranslationRules::'),('Math.','Math::'),('vector.','vector::')]:s=s.replace(old,new)
s=s.replace('ERR_AircraftFieldEnvelope m_Field;', 'ERR_AircraftFieldEnvelope* m_Field=nullptr;')
s=s.replace('FuelManagerComponent fuel = FuelManagerComponent.Cast(aircraft.FindComponent(FuelManagerComponent));','FuelManagerComponent* fuel = FixtureFuel(aircraft);')
s=s.replace('fuel.', 'fuel->').replace('m_Fuel.', 'm_Fuel->')
s=s.replace('ERR_AircraftFieldEnvelope field','ERR_AircraftFieldEnvelope* field').replace('ERR_AircraftFlightEnvelope qualification','int qualification')
s=s.replace('SignalsManagerComponent signals','SignalsManagerComponent* signals').replace('ActionManager actions','ActionManager* actions')
for name in ('field','m_Field','signals','actions'):s=s.replace(name+'.',name+'->')
s=s.replace('"0 0 0"','vector{}').replace('out vector nextIntegral','vector& nextIntegral')
return s
rules=cpp(R.read_text().replace('class ERR_AircraftFieldRules','struct Rules')).rstrip()+';'
fields=cpp(source[source.index(' protected ref'):source.index(' int FieldPhase()')])
# Explicit defaults emulate Enforce's zero-initialized script fields.
fields=re.sub(r'(bool m_\w+);',r'\1=false;',fields)
fields=re.sub(r'(int m_\w+);',r'\1=0;',fields)
methods='\n'.join(cpp(body(P,k)) for k in (
'protected bool FuelAdmission(', 'bool StartField(', 'override bool Start(', 'override bool StartTranslation(',
'protected bool FieldContains(', 'protected override bool Grounded(',
'protected bool BeginFieldBrake(', 'protected override bool Landing(',
'protected override bool BeginTranslation(', 'protected override bool ControlLease(',
'protected vector FieldDemand(', 'override void PrepareActions(',
'protected override void CheckTranslation(', 'override void Tick('))
run(r'''#include <cassert>
#include <cmath>
#include <algorithm>
#include <string>
#include <initializer_list>
#define PrintFormat(...) ((void)0)
using string=std::string;using ERR_GameMode=int;using Vehicle=int;using SCR_AIGroup=int;using IEntity=int;using PilotCompartmentSlot=int;using CharacterControllerComponent=int;
namespace State {enum {IDLE,HOOKS,STARTING,POSITIVE,NEGATIVE,CLIMB,LANDING,SHUTDOWN,COMPLETE,CANCELLED,FAILED,RELINQUISHED,TRANSLATING};}
struct vector {
float v[3]={0,0,0};vector()=default;vector(float x,float y,float z):v{x,y,z}{}
float& operator[](int i){return v[i];}float operator[](int i)const{return v[i];}
vector operator+(vector b)const{return {v[0]+b[0],v[1]+b[1],v[2]+b[2]};}vector operator-(vector b)const{return {v[0]-b[0],v[1]-b[1],v[2]-b[2]};}vector operator*(float s)const{return {v[0]*s,v[1]*s,v[2]*s};}
float Length()const{return std::sqrt(Dot(*this,*this));}static float Dot(vector a,vector b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2];}static float DistanceXZ(vector a,vector b){return std::hypot(a[0]-b[0],a[2]-b[2]);}
};
struct Math {static float AbsFloat(float x){return std::abs(x);}static float Clamp(float x,float lo,float hi){return std::clamp(x,lo,hi);}static float Min(float a,float b){return std::min(a,b);}static float Max(float a,float b){return std::max(a,b);}static float Sqrt(float a){return std::sqrt(a);}};
'''+rules+r'''
struct FlightRules {
'''+''.join(cpp(body(B,k)) for k in ('static bool Hover(', 'static float Vertical(', 'static int CancelAction('))+r'''
};
struct TranslationRules {
'''+cpp(body(B,'static vector Demand('))+r'''
};
struct ERR_AircraftFieldEnvelope {vector home={0,0,0},destination={100,0,0};bool available=true;vector Home(){return home;}vector Destination(){return destination;}bool Contains(vector p,float u){return available&&Rules::Contains(home,destination,p,u);}};
struct SignalsManagerComponent {bool available=true;int FindSignal(const char*){return available?1:-1;}};
struct Controller {bool hover=true,engine=true,enableAllowed=true;int hoverWrites=0;SignalsManagerComponent signals;explicit operator bool()const{return true;}SignalsManagerComponent* GetSignalsManager(){return &signals;}bool GetAutohoverEnabled(){return hover;}void SetAutohoverEnabled(bool enabled){hoverWrites++;if(enableAllowed)hover=enabled;}bool IsEngineOn(){return engine;}};
struct Simulation {vector velocity,angular;bool contact=false;vector GetVelocity(){return velocity;}vector GetAngularVelocityLocal(){return angular;}bool HasAnyGroundContact(){return contact;}};
struct Aircraft {vector origin={0,8,0};float upright=1;vector GetOrigin(){return origin;}vector GetYawPitchRoll(){return {};}void GetWorldTransform(vector (&t)[4]){t[0]={1,0,0};t[1]={0,upright,0};t[2]={0,0,1};t[3]=origin;}};
struct ActionManager {bool active=true;int activated=0;bool IsContextActive(const char*){return active;}void ActivateContext(const char*,int){activated++;}};
struct FuelManagerComponent {float total=100;bool present=true;bool HasFuel(){return present&&total>0;}float GetTotalFuel(){return total;}};
FuelManagerComponent fuelBoundary;FuelManagerComponent* FixtureFuel(int aircraft){return aircraft==2?&fuelBoundary:nullptr;}
struct Base {
bool m_StartAttempted=false,m_TranslationRequested=false,m_TranslationStarted=false,m_TranslationProven=false,m_Readback=true,m_Cancelled=false;
vector m_TranslationTarget,m_TranslationOrigin,m_Home;float m_TranslationDistance=0,m_Stable=-1,m_Deadline=240000,m_StageDeadline=240000,m_LastControl=0,m_LastTick=-1,m_Collective=-.8,m_Heading=0,clock=0;
int m_State=State::IDLE,m_Token=0,m_TranslationUpdates=0,m_ActionUpdates=0,m_HelicopterUpdates=0,m_Character=11,m_Pilot=12;
FuelManagerComponent* m_Fuel=&fuelBoundary;Controller m_Controller;Simulation m_Simulation;Aircraft m_Aircraft;ActionManager manager;ActionManager* m_Actions=&manager;string m_Reason;
bool owner=true,healthy=true,leased=true,grounded=false,pairsOkay=true,startOkay=true;
int starts=0,claims=0,landings=0,failures=0,relinquished=0,releases=0,shutdowns=0,pairs=0,baseInputs=0,baseTicks=0;float collectiveWrite=0,forwardWrite=0,asideWrite=0;
bool Start(ERR_GameMode,Vehicle,SCR_AIGroup,IEntity,PilotCompartmentSlot,ERR_AircraftFieldEnvelope* q,int token,float deadline){m_StartAttempted=true;starts++;if(!startOkay)return false;claims++;m_Home=q->Home();m_Token=token;m_Deadline=deadline;m_State=State::HOOKS;return true;}
virtual bool Grounded(){return grounded;}virtual bool Landing(float now){landings++;m_State=State::LANDING;m_Stable=-1;m_StageDeadline=Math::Min(m_Deadline,now+65000);return true;}
virtual bool BeginTranslation(float,vector){assert(false);return false;}
bool Owns(){return owner;}bool Healthy(){return healthy;}bool Lease(){return leased&&!Finished();}float Now(){return clock;}bool Finished(){return m_State>=State::COMPLETE&&m_State<=State::RELINQUISHED;}
void Fail(string r){m_Reason=r;failures++;m_State=State::FAILED;}void Relinquish(string r){m_Reason=r;relinquished++;m_State=State::RELINQUISHED;}void Release(bool){releases++;}void RecordState(){}void Shutdown(float now){shutdowns++;m_State=State::SHUTDOWN;m_StageDeadline=Math::Min(m_Deadline,now+15000);m_Stable=-1;m_Controller.engine=false;}
bool Pair(const char* p,const char*,float value){pairs++;string name=p;if(name=="HelicopterCollectiveIncrease")collectiveWrite=value;if(name=="HelicopterCyclicForward")forwardWrite=value;if(name=="HelicopterCyclicRight")asideWrite=value;return pairsOkay;}
void PrepareActions(int,int,ActionManager*,float){baseInputs++;}void Tick(){baseTicks++;}
'''+cpp(body(B,'void Cancel('))+r'''
};
struct Flight:Base {
'''+fields+methods+r'''
};
void started(Flight& f,ERR_AircraftFieldEnvelope& q){assert(f.StartField(1,2,3,4,5,&q,77,240000));f.m_State=State::CLIMB;f.clock=60000;f.m_LastControl=f.clock;assert(f.BeginTranslation(f.clock,{0,8,0}));}
bool near(float a,float b){return std::abs(a-b)<.0001f;}
int main(){
ERR_AircraftFieldEnvelope q;
Flight fuelCheck;assert(!fuelCheck.FuelAdmission(0)&&!fuelCheck.FuelAdmission(999));fuelBoundary.total=49.99f;assert(!fuelCheck.StartField(1,2,3,4,5,&q,77,240000)&&fuelCheck.starts==0&&fuelCheck.claims==0&&!fuelCheck.m_Field);
fuelBoundary.total=50;assert(fuelCheck.FuelAdmission(2));fuelBoundary.present=false;assert(!fuelCheck.FuelAdmission(2));fuelBoundary.present=true;fuelBoundary.total=100;
Flight refuse;assert(!refuse.StartField(1,2,3,4,5,nullptr,77,240000)&&refuse.starts==0);
q.destination={101,0,0};assert(!refuse.StartField(1,2,3,4,5,&q,77,240000)&&refuse.starts==0);q.destination={100,0,0};
assert(!refuse.StartField(1,2,3,4,5,&q,77,238999)&&refuse.starts==0);
assert(!refuse.Start(1,2,3,4,5,1,77,240000));assert(!refuse.StartTranslation(1,2,3,4,5,1,77,240000,{100,0,0}));
Flight f;started(f,q);assert(f.starts==1&&f.claims==1&&f.m_Field==&q&&f.m_TranslationTarget[0]==100&&f.m_TranslationTarget[1]==8&&f.m_Token==77&&f.m_Deadline==240000);
assert(!f.StartField(1,2,3,4,5,&q,78,240000)&&f.starts==1);
assert(f.m_State==State::TRANSLATING&&f.m_FieldPhase==1&&f.m_StageDeadline==220000);
f.CheckTranslation(61000,{-0.23f,8,0},8,0,1);assert(f.m_FieldPhase==1); // actual post-hover distance can exceed100m
vector demand=f.FieldDemand({0,8,0},{},.1f);assert(f.m_FieldReference[0]>0&&f.m_FieldReference.Length()<=.020001f&&demand.Length()<=.080001f);
f.m_FieldReference={2,0,0};f.m_FieldIntegral={1,0,0};f.m_Aircraft.origin={80,8,0};f.m_Simulation.velocity={2,0,0};
f.CheckTranslation(90000,f.m_Aircraft.origin,8,2,1);assert(f.m_FieldPhase==2&&f.m_FieldStopFrozen&&f.m_FieldLandingPoint[0]==100&&f.m_State==State::TRANSLATING&&f.landings==0&&f.m_StageDeadline==135000);
float brakeDeadline=f.m_StageDeadline;float brakeCap=f.m_FieldBrakeSpeed;assert(near(brakeCap,1.8f));
auto firstBrake=f.FieldDemand(f.m_Aircraft.origin,f.m_Simulation.velocity,.1f);assert(f.m_FieldReference.Length()<2&&f.m_FieldReference.Length()>=1.9799f&&firstBrake.Length()<=.080001f);
float previous=f.m_FieldReference.Length();for(int i=0;i<20;i++){f.FieldDemand({85,8,0},{1.9f,0,0},.1f);assert(f.m_FieldReference.Length()<=previous+.000001f);previous=f.m_FieldReference.Length();}
f.clock=91000;f.Cancel("stop during brake");assert(f.m_Cancelled&&f.m_FieldLandingPoint[0]==100&&f.m_StageDeadline==brakeDeadline&&f.landings==0);
f.clock=92000;f.Cancel("duplicate");assert(f.m_Reason=="stop during brake"&&f.m_StageDeadline==brakeDeadline&&f.m_Token==77&&f.m_FieldBrakeSpeed==brakeCap);
f.m_Simulation.velocity={.1f,0,0};f.CheckTranslation(92000,{99.6f,8,0},8,.1f,1);f.CheckTranslation(93999,{99.6f,8,0},8,.1f,1);assert(f.m_FieldPhase==2);
f.m_Simulation.velocity={.3f,0,0};f.CheckTranslation(94000,{99.6f,8,0},8,.3f,1);assert(f.m_FieldLowSince<0);
f.m_Simulation.velocity={.1f,0,0};f.CheckTranslation(95000,{99.6f,8,0},8,.1f,1);f.CheckTranslation(97000,{99.6f,8,0},8,.1f,1);
assert(f.m_FieldPhase==3&&f.m_FieldIntegral.Length()==0&&f.m_FieldReference.Length()==0&&f.m_StageDeadline==brakeDeadline&&f.landings==0);
f.CheckTranslation(101999,{99.6f,8,0},8,.1f,1);assert(f.landings==0);
f.CheckTranslation(102000,{99.6f,8,0},8,.1f,1);assert(f.landings==1&&f.m_State==State::LANDING&&!f.m_FieldArrived&&!f.m_TranslationProven&&f.m_StageDeadline==127000&&f.m_Deadline==240000);
// Grounded completion requires exact frozen centre, stable native contact and shutdown.
f.grounded=true;f.m_Aircraft.origin={98,0,0};assert(!f.Grounded());f.m_Aircraft.origin={99.6f,0,0};assert(f.Grounded());
f.clock=103000;f.m_LastControl=f.clock;f.Tick();f.clock=104000;f.m_LastControl=f.clock;f.Tick();f.clock=104999;f.m_LastControl=f.clock;f.Tick();assert(f.shutdowns==0);
f.clock=105000;f.m_LastControl=f.clock;f.Tick();assert(f.shutdowns==1&&f.m_State==State::SHUTDOWN);
f.clock=105100;f.m_LastControl=f.clock;f.Tick();assert(f.m_State==State::CANCELLED&&f.releases==1&&f.m_Token==77&&f.m_Deadline==240000);
// Uncancelled normal hold can produce COMPLETE only after native ground observations.
Flight normal;started(normal,q);normal.m_Aircraft.origin={99.7f,8,0};assert(normal.BeginFieldBrake(80000));
normal.CheckTranslation(80000,normal.m_Aircraft.origin,8,0,1);normal.CheckTranslation(82000,normal.m_Aircraft.origin,8,0,1);
normal.CheckTranslation(85000,{98,8,0},8,0,1);assert(normal.m_Stable<0&&!normal.m_FieldArrived);
normal.CheckTranslation(86000,normal.m_Aircraft.origin,8,0,1);normal.CheckTranslation(90999,normal.m_Aircraft.origin,8,0,1);assert(!normal.m_FieldArrived);
normal.CheckTranslation(91000,normal.m_Aircraft.origin,8,0,1);assert(normal.m_FieldArrived&&normal.m_TranslationProven&&normal.landings==1);
normal.m_Aircraft.origin={99.7f,0,0};normal.grounded=true;
for(int t=92000;t<=94100;t+=700){normal.clock=t;normal.m_LastControl=t;normal.Tick();}
assert(normal.m_State==State::SHUTDOWN);normal.clock=94200;normal.m_LastControl=normal.clock;normal.Tick();assert(normal.m_State==State::COMPLETE&&normal.releases==1);
// Cancelling during climb retains altitude/braking instead of invoking descent.
Flight climb;assert(climb.StartField(1,2,3,4,5,&q,77,240000));climb.m_State=State::CLIMB;climb.clock=30000;climb.m_Aircraft.origin={1,3,0};climb.Cancel("climb stop");
assert(climb.m_State==State::TRANSLATING&&climb.m_FieldPhase==2&&climb.landings==0&&!climb.m_TranslationStarted);
// Actual inherited Cancel may run airborne before startup enabled autohover.
for(int stage:{State::POSITIVE,State::NEGATIVE}){
Flight early;assert(early.StartField(1,2,3,4,5,&q,77,240000));early.m_State=stage;early.m_Controller.hover=false;early.clock=30000;early.m_Aircraft.origin={1,.2f,0};early.m_Simulation.velocity={.1f,0,0};
early.Cancel("pre-climb airborne stop");assert(early.m_Cancelled&&early.m_FieldPhase==2&&early.m_State==State::TRANSLATING&&early.m_Controller.hover&&early.m_Controller.hoverWrites==1&&early.failures==0&&early.landings==0);
auto frozen=early.m_FieldLandingPoint;auto stageDeadline=early.m_StageDeadline;early.PrepareActions(early.m_Character,early.m_Pilot,early.m_Actions,.1f);assert(early.pairs==4&&early.failures==0);
early.Cancel("duplicate");assert(early.m_Controller.hoverWrites==1&&early.m_FieldLandingPoint[0]==frozen[0]&&early.m_StageDeadline==stageDeadline&&early.m_Deadline==240000);
}
Flight refusedHover;started(refusedHover,q);refusedHover.m_Controller.hover=false;refusedHover.m_Controller.enableAllowed=false;refusedHover.Cancel("native hover refuses");assert(refusedHover.failures==1&&!refusedHover.m_FieldStopFrozen&&refusedHover.m_Controller.hoverWrites==1&&refusedHover.m_State==State::FAILED);
Flight capturedBrake;started(capturedBrake,q);capturedBrake.owner=false;capturedBrake.Cancel("captured before brake");assert(capturedBrake.relinquished==1&&capturedBrake.m_Controller.hoverWrites==0&&!capturedBrake.m_FieldStopFrozen);
// First cancellation freezes a velocity-projected qualified point exactly once.
Flight cancel;started(cancel,q);cancel.m_Aircraft.origin={30,8,0};cancel.m_Simulation.velocity={2,0,0};cancel.m_FieldReference={2,0,0};cancel.clock=70000;cancel.Cancel("first");
assert(cancel.m_State==State::TRANSLATING&&cancel.m_FieldPhase==2&&cancel.landings==0&&near(cancel.m_FieldLandingPoint[0],30+Rules::BrakingReserve(2)));
auto centre=cancel.m_FieldLandingPoint;float deadline=cancel.m_StageDeadline;cancel.clock=71000;cancel.m_Aircraft.origin={40,8,0};cancel.Cancel("again");assert(cancel.m_FieldLandingPoint[0]==centre[0]&&cancel.m_StageDeadline==deadline);
Flight settling;started(settling,q);settling.m_Aircraft.origin={99.7f,8,0};assert(settling.BeginFieldBrake(80000));settling.m_FieldPhase=3;settling.m_Stable=81000;settling.clock=82000;auto old=settling.m_StageDeadline;settling.Cancel("mid hold");assert(settling.failures==0&&settling.landings==0&&settling.m_State==State::TRANSLATING&&settling.m_StageDeadline==old);
// Cancellation cannot invent a stopping point beyond qualified space.
Flight outside;started(outside,q);outside.m_Aircraft.origin={100,8,0};outside.m_Simulation.velocity={2,0,0};outside.Cancel("too late");assert(outside.failures==1&&!outside.m_FieldStopFrozen&&outside.landings==0);
// Early abort is owner-tick based and cannot transition inherited input mid-call.
Flight abort;started(abort,q);abort.clock=155000;abort.m_LastControl=abort.clock;abort.m_Aircraft.origin={20,8,0};assert(abort.ControlLease()&&!abort.m_Cancelled);abort.Tick();assert(abort.m_Cancelled&&abort.m_FieldPhase==2&&abort.m_Deadline==240000&&abort.m_StageDeadline==200000);
Flight edge;started(edge,q);edge.clock=153499;edge.m_LastControl=edge.clock;edge.m_Aircraft.origin={20,8,0};edge.Tick();assert(!edge.m_Cancelled);edge.clock=153500;edge.m_LastControl=edge.clock;edge.Tick();assert(edge.m_Cancelled&&edge.m_Deadline==240000);
Flight low;started(low,q);low.m_Aircraft.origin={20,8,0};low.clock=70000;low.m_LastControl=low.clock;fuelBoundary.total=20;low.Tick();assert(low.m_Cancelled&&low.m_FieldPhase==2&&low.m_Reason=="field candidate low-fuel reserve reached");fuelBoundary.total=100;
Flight capture;started(capture,q);capture.owner=false;assert(!capture.ControlLease()&&capture.relinquished==1&&capture.pairs==0);
Flight expiry;started(expiry,q);expiry.clock=240000;assert(!expiry.ControlLease()&&expiry.failures==1);
Flight fast;started(fast,q);fast.m_Simulation.velocity={2.501f,0,0};assert(!fast.ControlLease()&&fast.failures==1);
Flight corridor;started(corridor,q);corridor.m_Aircraft.origin={50,8,8};assert(!corridor.ControlLease()&&corridor.failures==1);
// Exact callbacks only; no native input on invalid timestep or failed lease.
Flight input;started(input,q);input.m_Aircraft.origin={10,8,0};ActionManager other;
input.PrepareActions(999,input.m_Pilot,input.m_Actions,.1f);input.PrepareActions(input.m_Character,999,input.m_Actions,.1f);input.PrepareActions(input.m_Character,input.m_Pilot,&other,.1f);assert(input.pairs==0);
for(float dt:{0.0f,-1.0f,.201f,NAN}) { input.PrepareActions(input.m_Character,input.m_Pilot,input.m_Actions,dt); }
assert(input.pairs==0);
input.PrepareActions(input.m_Character,input.m_Pilot,input.m_Actions,.1f);assert(input.pairs==4&&input.m_ActionUpdates==1&&input.m_TranslationUpdates==1&&input.m_FieldReference.Length()<=.020001f);
input.m_State=State::LANDING;input.m_FieldPhase=3;input.m_FieldLandingPoint={10,0,0};input.m_Aircraft.origin={10,0,0};input.grounded=true;input.PrepareActions(input.m_Character,input.m_Pilot,input.m_Actions,.1f);assert(input.collectiveWrite==-1&&input.forwardWrite==0&&input.asideWrite==0);
input.owner=false;int writes=input.pairs;input.PrepareActions(input.m_Character,input.m_Pilot,input.m_Actions,.1f);assert(input.pairs==writes&&input.relinquished==1);
Flight inactive;started(inactive,q);inactive.manager.active=false;inactive.PrepareActions(inactive.m_Character,inactive.m_Pilot,inactive.m_Actions,.1f);assert(inactive.pairs==0&&!inactive.m_Readback&&inactive.manager.activated==1);
Flight gap;started(gap,q);gap.m_Aircraft.origin={99.7f,8,0};gap.BeginFieldBrake(80000);gap.m_FieldLowSince=81000;gap.m_Stable=81000;gap.m_LastTick=81000;gap.clock=83000;gap.m_LastControl=gap.clock;gap.Tick();assert(gap.m_FieldPhase==2&&gap.m_FieldLowSince==83000&&gap.m_Stable<0);
// Slow positioning/landing never consumes or retains the cruise PI output.
Flight slow;started(slow,q);slow.m_FieldPhase=3;slow.m_FieldStopFrozen=true;slow.m_FieldLandingPoint={100,0,0};slow.m_FieldIntegral={4,0,0};
auto actual=slow.FieldDemand({90,8,0},{1,2,0},.1f);auto shared=TranslationRules::Demand({100,0,0},{90,8,0},{1,2,0});assert((actual-shared).Length()==0&&actual.Length()<=.030001f);
Flight startup;assert(startup.StartField(1,2,3,4,5,&q,77,240000));startup.PrepareActions(11,12,startup.m_Actions,.1f);startup.Tick();assert(startup.baseInputs==1&&startup.baseTicks==1);
}
''')
# Preserve shared ownership, startup and bridge; no new actuation domain.
assert 'class ERR_AircraftFieldFlight : ERR_AircraftFlight' in source
for forbidden in ('s_Owners', 'modded class', 'SetWorldTransform(', 'SetOrigin(', 'SetVelocity(', 'SetActive(', 'Spawn(', '.Claim(', '.SetActionValue(', '.StartEngine(', '.StopEngine('):assert forbidden not in source
for unchanged in ('protected bool Owns(', 'protected bool Healthy(', 'protected bool Lease(', 'protected void Release(', 'void Cancel('):assert unchanged not in source
assert 'return super.Start(' in body(P,'bool StartField(')
assert 'AbortDue' not in body(P,'protected override bool ControlLease(')
assert 'ERR_AircraftFieldRules.AbortDue(now + 1500, m_Deadline)' in body(P,'override void Tick(')
assert 'm_Deadline =' not in source and 'm_Token =' not in source
prepare=body(P,'override void PrepareActions(')
assert prepare.index('!ControlLease()')<prepare.index('FieldDemand(')<prepare.index('Pair(')
assert 'm_StageDeadline' not in body(P,'protected override void CheckTranslation(')
assert 'm_FieldIntegral = "0 0 0"' in body(P,'protected override void CheckTranslation(')
print('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')
brake=body(P,'protected bool BeginFieldBrake(')
assert brake.index('if (m_FieldStopFrozen) return true;')<brake.index('!Owns()')<brake.index('m_Field.Contains(point, 1)')<brake.index('m_Controller.SetAutohoverEnabled(true)')<brake.index('if (!m_Controller.GetAutohoverEnabled())')<brake.index('m_FieldStopFrozen = true;')
print('PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture')
+103
View File
@@ -0,0 +1,103 @@
"""Actual field evidence/observation bodies; physical engine boundaries remain untested."""
from policy_harness import ROOT, body, run
import re
P=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeAircraftFieldProbe.c'
s=P.read_text()
def cpp(x):
x=x.replace('ERR_AircraftFlightState.','State::').replace('ERR_NativeAircraftFieldRules.','Rules::').replace('ERR_AircraftFieldRules.','FieldRules::').replace('vector.','vector::').replace('ERR_AircraftFieldFlight flight','Flight* flight').replace('flight.','flight->')
return re.sub(r'(?<![\w.])(\d+\.\d+)(?![\w.])',r'\1f',x)
rules=s[s.index('class ERR_NativeAircraftFieldRules'):s.index('class ERR_NativeAircraftFieldProbe')].replace('class ERR_NativeAircraftFieldRules','struct Rules').rstrip()+';'
observed='\n'.join(cpp(body(P,k)) for k in ('void BrakeBegan(', 'void BrakeStopped('))
run(r'''#include <cassert>
#include <cmath>
#include <string>
using string=std::string;
struct vector {float x=0,y=0,z=0;static float DistanceXZ(vector a,vector b){return std::hypot(a.x-b.x,a.z-b.z);}};
namespace State {enum {COMPLETE=8,CANCELLED,FAILED,RELINQUISHED};}
'''+cpp(rules)+r'''
struct FieldRules {static float HorizontalSpeed(vector v){return std::hypot(v.x,v.z);}static float BrakingReserve(float s){return s*s/.30f+s+3;}};
struct Flight {float ERR_NativeFieldStageDeadline(){return 70000;}vector LandingPoint(){return {100,0,0};}};
template<typename...T>void PrintFormat(T...args){}
struct Probe {
bool m_Stopped=false,m_BrakeObserved=false,m_BrakeStopped=false,m_BrakePassed=false;
string m_ObservationFailure;
Flight* m_Flight=nullptr;float m_BrakeAt=0,m_BrakeReserve=0,m_BrakeStageDeadline=0,m_ControlDeadline=240000,m_BrakeSampledTravel=0,m_BrakeLowSince=-1;
vector m_BrakeOrigin,m_BrakePrevious,m_BrakeLandingPoint;
'''+observed+r'''
};
int main(){
assert(Rules::Cruise(1,1,false,1)&&!Rules::Cruise(.99f,1,false,1)&&!Rules::Cruise(1,2.501f,false,1));
assert(!Rules::Cruise(1,1,true,1)&&!Rules::Cruise(1,1,false,2));
assert(Rules::Terminal(false,State::COMPLETE,0,true,true,true,true,100,.5f));
assert(!Rules::Terminal(false,State::COMPLETE,0,true,false,true,true,100,.5f));
assert(!Rules::Terminal(false,State::COMPLETE,0,true,true,false,true,100,.5f));
assert(!Rules::Terminal(false,State::COMPLETE,0,true,true,true,false,100,.5f));
assert(!Rules::Terminal(false,State::COMPLETE,0,true,true,true,true,98,.5f));
assert(!Rules::Terminal(false,State::COMPLETE,0,true,true,true,true,100,.76f));
assert(Rules::Terminal(true,State::CANCELLED,1,false,false,false,true,30,.5f));
assert(!Rules::Terminal(true,State::CANCELLED,1,true,false,false,true,30,.5f));
assert(!Rules::Terminal(true,State::COMPLETE,1,false,false,false,true,30,.5f));
assert(!Rules::Terminal(true,State::CANCELLED,0,false,false,false,true,30,.5f));
assert(!Rules::Terminal(true,State::CANCELLED,2,false,false,false,true,30,.5f));
assert(Rules::PhysicalFinish(true,true,true,1,1,1,1,101,101));
assert(!Rules::PhysicalFinish(true,false,true,1,1,1,1,101,101));
assert(!Rules::PhysicalFinish(true,true,false,1,1,1,1,101,101));
assert(!Rules::PhysicalFinish(true,true,true,0,1,1,1,101,101));
assert(!Rules::PhysicalFinish(true,true,true,1,2,1,1,101,101));
for(int i=0;i<5;i++)assert(!Rules::CanDispose(i!=0,i!=1,i!=2,i!=3,i!=4));
Flight flight,foreign;Probe p;p.m_Flight=&flight;
p.BrakeBegan(&foreign,1000,{0,0,0},{2,0,0});assert(!p.m_BrakeObserved);
p.BrakeBegan(&flight,1000,{0,0,0},{2,0,0});assert(p.m_BrakeObserved&&p.m_BrakeReserve>18&&p.m_BrakeReserve<19);
p.m_BrakeSampledTravel=15;p.m_BrakePrevious={15,0,0};p.m_BrakeLowSince=2000;
p.BrakeStopped(&flight,4000,{16,0,0},{.1f,0,0});assert(p.m_BrakePassed&&p.m_BrakeStopped&&p.m_ObservationFailure.empty());
p.BrakeBegan(&flight,5000,{50,0,0},{2,0,0});assert(!p.m_ObservationFailure.empty()&&p.m_BrakeAt==1000); // no renewal
for(int fault=0;fault<4;fault++){
Probe bad;bad.m_Flight=&flight;bad.BrakeBegan(&flight,1000,{0,0,0},{2,0,0});bad.m_BrakeLowSince=2000;
float stopped=4000;vector at={16,0,0},vel={.1f,0,0};
if(fault==0){at={19,0,0};} if(fault==1){stopped=3999;} if(fault==2){vel={.25f,0,0};} if(fault==3){bad.m_BrakeSampledTravel=20;}
bad.BrakeStopped(&flight,stopped,at,vel);assert(!bad.m_BrakePassed&&!bad.m_ObservationFailure.empty()&&!bad.m_Stopped); // failure deferred outside callback
}
assert(!Rules::Braking(NAN,1,1,0,3000,0)&&!Rules::Braking(10,NAN,1,0,3000,0));
}
''')
assert s.startswith('#ifdef WORKBENCH') and s.rstrip().endswith('#endif')
assert 'outcome == "aircraft-field"' in body(P,'static bool Enabled(')
find=body(P,'protected bool FindPad(')
assert '"4850.953 0 11787.412"' in find and '"100 0 0"' in find
assert find.count('.Survey(')==1 and 'for (' not in find and 'AirportOffset' not in s
assert s.count('ERR_Actors.Spawn(AIRCRAFT,')==1 and s.count('SpawnCharacterInCompartment(')==1
assert s.count('physics.SetActive(ActiveState.ACTIVE)')==1
for prohibited in ('SetWorldTransform(', 'SetOrigin(', 'SetVelocity(', '.StartEngine(', '.StopEngine(', 'm_Mode.Own(', 'm_Flight.Tick(', 'm_Flight.Cancel(', 'm_Flight.StartField(', 'FieldDemand('):assert prohibited not in s
for sig in ('void PrepareActions(', 'void PrepareHelicopter('):
assert '++' in body(P,sig) and '.Prepare' not in body(P,sig)
for sig in ('void BrakeBegan(', 'void BrakeStopped('):assert 'Check(' not in body(P,sig) and 'Stop(' not in body(P,sig)
assert 'super.BeginFieldBrake(now)' in body(P,'protected override bool BeginFieldBrake(')
assert 'super.CheckTranslation(now, position, height, speed, upright)' in body(P,'protected override void CheckTranslation(')
start=body(P,'protected bool StartRetainedField(');assert '.StartField(m_Aircraft, m_Envelope, ORDER_TOKEN, m_ControlDeadline)' in start
assert 'ERR_AircraftFieldFlight.Cast(entry.Flight)' in body(P,' ERR_AircraftFieldFlight ERR_NativeOriginalFieldFlight(')
tick=body(P,'int Tick(')
assert tick.index('FindPad(m_Pad)')<tick.index('ERR_Actors.Spawn(AIRCRAFT,')
assert tick.index('QualifyField(')<tick.index('StartRetainedField()')
assert tick.index('m_Service.Tick();')<tick.index('m_ObservationFailure.IsEmpty()')<tick.index('if (!m_Flight.Finished())')
assert 'now - m_CruiseSince >= 10000' in tick and 'now - m_CruiseSince >= 1000' in tick
assert 'now - m_TranslationStable >= 5000' in tick and 'now - m_LandingStable >= 2000' in tick
stop=body(P,'void Stop(')
assert stop.index('s_Current = null')<stop.index('m_Service.Stop()')<stop.index('ERR_Actors.DeleteSpawned(')<stop.index('m_Service.Tick()')<stop.index('m_Flight = null')
assert 'CanDispose(' in stop
# Execute root-owned Chat dispatch branch: failure cannot become completion/reset.
chat=ROOT/'addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c';cs=chat.read_text()
a=cs.index('if (m_ERRSmokeStep == 240)');opening=cs.index('{',a);i=opening+1;depth=1
while depth:depth+=(cs[i]=='{')-(cs[i]=='}');i+=1
branch=cs[opening+1:i-1].replace('m_ERRAircraftField.Tick','m_ERRAircraftField.Tick').replace('ERR_Phase.DEFEAT','2')
run(r'''#include <cassert>
#include <initializer_list>
struct Fixture {int result=0;int Tick(float){return result;}};
struct Chat {Fixture m_ERRAircraftField;int m_ERRSmokeStep=240,failures=0,transitions=0;void ERR_Check(bool,const char*){failures++;}void Transition(int){transitions++;}void Tick(float now){
'''+branch+r'''} };
int main(){for(int result:{-1,0,1}){Chat c;c.m_ERRAircraftField.result=result;c.Tick(1000);assert(c.failures==(result<0));assert(c.transitions==(result==1));assert(c.m_ERRSmokeStep==(result==1?241:240));}}
''')
assert 'm_ERRTestAircraftField = outcome == "aircraft-field"' in cs
assert 'm_ERRTestAircraftControl || m_ERRTestAircraftRoute || m_ERRTestAircraftField' in cs and '+ 330000' in cs
assert 'm_ERRAircraftField.Stop()' in body(chat,'protected void ERR_StopHQPatrol(')
assert 'errSmokeFieldServiceCancel' in cs and 'current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 241' in cs
print('PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement')
+99
View File
@@ -0,0 +1,99 @@
"""Execute the actual field policy equations; no claim about native stopping/flight."""
from policy_harness import ROOT, run
import re
source = (ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftFieldRules.c').read_text()
cpp = source.replace('class ERR_AircraftFieldRules', 'struct Rules').replace('out vector nextIntegral', 'vector& nextIntegral')
cpp = cpp.replace('Math.', 'Math::').replace('vector.', 'vector::').replace('"0 0 0"', 'vector{}')
cpp = re.sub(r'(?<![\w.])(\d+\.\d+)(?![\w.])', r'\1f', cpp)
cpp = cpp.rstrip() + ';'
run(r'''#include <cassert>
#include <cmath>
#include <algorithm>
struct vector {
float v[3]={0,0,0};
vector()=default; vector(float x,float y,float z):v{x,y,z}{}
float& operator[](int i){return v[i];} float operator[](int i)const{return v[i];}
vector operator+(vector b)const{return {v[0]+b[0],v[1]+b[1],v[2]+b[2]};}
vector operator-(vector b)const{return {v[0]-b[0],v[1]-b[1],v[2]-b[2]};}
vector operator*(float s)const{return {v[0]*s,v[1]*s,v[2]*s};}
float Length()const{return std::sqrt(Dot(*this,*this));}
static float Dot(vector a,vector b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2];}
static float DistanceXZ(vector a,vector b){return std::hypot(a[0]-b[0],a[2]-b[2]);}
};
struct Math {static float AbsFloat(float x){return std::abs(x);} static float Clamp(float x,float lo,float hi){return std::clamp(x,lo,hi);} static float Max(float a,float b){return std::max(a,b);} static float Min(float a,float b){return std::min(a,b);} static float Sqrt(float a){return std::sqrt(a);}};
'''+cpp+r'''
bool close(float a,float b){return std::abs(a-b)<.00001f;}
int main(){
assert(Rules::Length(99.95f)&&Rules::Length(100.05f));
assert(!Rules::Length(99.949f)&&!Rules::Length(100.051f)&&!Rules::Length(NAN));
assert(Rules::SpeedAllowed({1.5f,9,2})&&!Rules::SpeedAllowed({1.501f,0,2}));
assert(!Rules::SpeedAllowed({0,NAN,0})&&!Rules::SpeedAllowed({INFINITY,0,0}));
assert(Rules::ValidStep(.5f)&&!Rules::ValidStep(0)&&!Rules::ValidStep(.501f)&&!Rules::ValidStep(NAN));
float speed=0;
for(int i=0;i<100;i++){float next=Rules::RampSpeed(speed,2,.1f);assert(next-speed<=.020001f);speed=next;}
assert(close(speed,2));
for(int i=0;i<100;i++){float next=Rules::RampSpeed(speed,0,.1f);assert(next<=speed&&speed-next<=.020001f);speed=next;}
assert(close(speed,0));
assert(close(Rules::RampSpeed(1,2,1),1)&&close(Rules::RampSpeed(1,NAN,.1f),1));
vector previous={2,0,0};
for(int i=0;i<400;i++){
vector ramped=Rules::RampReference(previous,{-2,8,0},.1f);
assert((ramped-previous).Length()<=.020001f&&ramped.Length()<=2.00001f&&ramped[1]==0);
previous=ramped;
}
assert(previous[0]<-1.99f);
vector sideways=Rules::RampReference({2,0,0},{0,0,2},.1f);
assert((sideways-vector{2,0,0}).Length()<=.020001f);
assert(close(Rules::RampReference({1,4,0},{-2,0,0},0)[0],1));
assert(close(Rules::ApproachSpeed(100,2),2)&&close(Rules::ApproachSpeed(.75f,2),0));
assert(close(Rules::ApproachSpeed(3,2),0));
assert(close(Rules::ApproachSpeed(Rules::BrakingReserve(1.5f),2),1.5f));
assert(Rules::ApproachSpeed(18,2)<2); // before the2m/s reserve, unlike old sqrt(distance-.75)
for(int i=3;i<=120;i++){
float admitted=Rules::ApproachSpeed(float(i),2);
assert(admitted<=2&&Rules::BrakingReserve(admitted)<=i+.00002f);
}
assert(Rules::ApproachSpeed(15,1.2f)<=1.2f);
assert(Rules::ApproachSpeed(10,.1f)<=.1f&&Rules::ApproachSpeed(NAN,1)==0);
assert(close(Rules::ApproachSpeed(108,2),2)&&Rules::ApproachSpeed(120.01f,2)==0);
assert(!Rules::ShouldBrake(100.23f,1)&&!Rules::ShouldBrake(108,2)&&!Rules::ShouldBrake(120,2));
assert(Rules::ShouldBrake(120.01f,1)&&!Rules::Length(108));
vector integral, next;
for(int i=0;i<2000;i++){
vector demand=Rules::VelocityDemand({2,100,0},{0,-2,0},integral,.1f,next);
assert(close(demand[0],.08f)&&demand[1]==0&&next.Length()==0);integral=next;
}
// Low error accumulates useful demand rather than permanently freezing I.
integral={};vector demand=Rules::VelocityDemand({.1f,5,0},{0,7,0},integral,.5f,next);
assert(close(next[0],.05f)&&close(demand[0],.011f)&&demand[1]==0);
// Opposing error unwinds a positive stored integral.
integral={4,0,0};demand=Rules::VelocityDemand({0,0,0},{.1f,0,0},integral,.5f,next);
assert(next[0]<4&&demand[0]<.08f);
// Diagonal demand is capped as a vector, not independently on both axes.
demand=Rules::VelocityDemand({2,3,2},{-1,4,-1},{4,5,4},.1f,next);
assert(demand.Length()<=.080001f&&demand[1]==0&&next.Length()<=4.00001f&&next[1]==0);
demand=Rules::VelocityDemand({0,0,0},{2,0,0},{},.1f,next);
assert(demand[0]<0&&close(demand.Length(),.08f));
demand=Rules::VelocityDemand({NAN,0,0},{},{1,0,0},.1f,next);assert(demand.Length()==0&&next.Length()==0);
demand=Rules::VelocityDemand({1,0,0},{},{1,0,0},0,next);assert(demand.Length()==0&&next.Length()==0);
assert(close(Rules::BrakingReserve(0),3)&&close(Rules::BrakingReserve(2.5f),26.333334f));
assert(Rules::ShouldBrake(25,0)&&!Rules::ShouldBrake(25.01f,0));
assert(Rules::ShouldBrake(26,2.5f)&&!Rules::ShouldBrake(27,2.5f));
assert(Rules::ShouldBrake(50,NAN)&&Rules::ShouldBrake(NAN,1));
assert(Rules::LeaseAdmitted(1000,241000)&&Rules::LeaseAdmitted(1000,240000));
assert(!Rules::LeaseAdmitted(1000,239999)&&!Rules::LeaseAdmitted(1000,241001)&&!Rules::LeaseAdmitted(-1,239999));
assert(!Rules::AbortDue(154999,240000)&&Rules::AbortDue(155000,240000));
assert(Rules::AbortDue(240000,240000)&&Rules::AbortDue(NAN,240000));
assert(Rules::LowSpeedHeld(.249f,1000,3000)&&!Rules::LowSpeedHeld(.25f,1000,3000));
assert(!Rules::LowSpeedHeld(0,1000,2999)&&!Rules::LowSpeedHeld(0,-1,3000)&&!Rules::LowSpeedHeld(NAN,0,3000));
vector start={0,10,0},end={100,10,0};
assert(Rules::Contains(start,end,{50,18,7.999f},1));
assert(!Rules::Contains(start,end,{50,18,8},1));
assert(Rules::Contains(start,end,{-7.99f,18,0},1)&&!Rules::Contains(start,end,{-8,18,0},1));
assert(!Rules::Contains(start,end,{108,18,0},1)&&!Rules::Contains(start,end,{50,28.01f,0},1));
assert(!Rules::Contains(start,end,{50,6.99f,0},1)&&!Rules::Contains(start,end,{50,18,0},.84f));
assert(!Rules::Contains(start,end,{NAN,18,0},1)&&!Rules::Contains(start,end,{50,18,0},NAN));
}
''')
print('PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested')
+50
View File
@@ -0,0 +1,50 @@
"""Actual early CLI refusals and AST-executed argv construction; never launches native tools."""
import ast
from pathlib import Path
import subprocess
import sys
import tempfile
import unittest
from types import SimpleNamespace
from policy_harness import ROOT
RUNNER=ROOT/'tools/headless_workbench.py'
class FieldRunnerTests(unittest.TestCase):
def test_early_refusal_before_any_profile_or_lock(self):
cases=[
(['--project','core','--rounds','1','--timeout','420','--smoke','aircraft-field'],'requires Chat, one round'),
(['--project','chat','--rounds','2','--timeout','420','--smoke','aircraft-field'],'requires Chat, one round'),
(['--project','chat','--rounds','1','--timeout','419','--smoke','aircraft-field'],'requires Chat, one round'),
(['--project','chat','--rounds','1','--timeout','420','--smoke','aircraft-route','--field-service-cancel'],'--field-service-cancel requires'),
(['--project','chat','--rounds','1','--timeout','420','--smoke','aircraft-field','--route-service-cancel'],'--route-service-cancel requires'),
(['--project','chat','--rounds','1','--timeout','420','--smoke','aircraft-field'],'must be a disposable cloned prefix'),
(['--project','chat','--rounds','1','--timeout','420','--smoke','aircraft-field','--field-service-cancel'],'must be a disposable cloned prefix'),
]
for arguments,error in cases:
with self.subTest(arguments=arguments),tempfile.TemporaryDirectory(prefix='erri-field-args-') as folder:
root=Path(folder)
result=subprocess.run([sys.executable,str(RUNNER),'--compat',str(root/'missing'),'--profile',str(root/'profile'),*arguments],capture_output=True,text=True,timeout=10)
self.assertEqual(result.returncode,2);self.assertIn(error,result.stderr);self.assertEqual(list(root.iterdir()),[])
def command(self,smoke,cancel=False):
tree=ast.parse(RUNNER.read_text());nodes=[]
for node in tree.body:
if isinstance(node,ast.Assign) and any(isinstance(t,ast.Name) and t.id=='command' for t in node.targets):nodes.append(node)
if isinstance(node,ast.If) and isinstance(node.test,ast.Attribute) and node.test.attr in ('field_service_cancel','route_service_cancel'):nodes.append(node)
self.assertEqual(len(nodes),3)
namespace={'a':SimpleNamespace(project='chat',smoke=smoke,field_service_cancel=cancel,route_service_cancel=False),'ROOT':Path('/private/source'),'proton':Path('/private/proton'),'wb':Path('/private/workbench'),'profile_arg':'Z:/private/profile'}
exec(compile(ast.Module(body=nodes,type_ignores=[]),str(RUNNER),'exec'),namespace)
return namespace['command']
def test_exact_field_command_and_cancel_optin(self):
normal=self.command('aircraft-field');cancelled=self.command('aircraft-field',True)
self.assertEqual(cancelled,normal+['-errSmokeFieldServiceCancel','1'])
self.assertEqual(normal[normal.index('-errSmokeOutcome')+1],'aircraft-field')
self.assertEqual(normal[normal.index('-gproj')+1],'Z:/private/source/addons/chat/addon.gproj')
self.assertEqual(normal[normal.index('--backend')+1],'headless')
self.assertIn('-disableCrashReporter',normal)
self.assertNotIn('-errSmokeFieldServiceCancel',self.command('aircraft-route'))
def test_cleanup_provenance_not_bypassed(self):
source=RUNNER.read_text()
self.assertIn('assert_prefix_idle(compat)',source)
self.assertIn('cleanup_owned_run(',source)
self.assertIn('seal_run(',source)
self.assertIn("env.update(PULSE_SINK=silent_sink",source)
if __name__=='__main__':unittest.main()
+4 -4
View File
@@ -64,7 +64,7 @@ for project,rounds,timeout,extra,message in cases:
chat=ROOT/'addons/chat/Scripts/Game/ERR/ERR_NativeSmoke.c'
text=chat.read_text()
assert 'm_ERRTestAircraftRoute = outcome == "aircraft-route";' in text
assert 'if (m_ERRTestAircraftControl || m_ERRTestAircraftRoute) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;' in text
assert 'if (m_ERRTestAircraftControl || m_ERRTestAircraftRoute || m_ERRTestAircraftField) m_ERRSmokeDeadline = GetWorld().GetWorldTime() + 330000;' in text
assert 'OnStop().Insert(ERR_StopHQPatrol);' in text
assert 'if (m_ERRAircraftRoute) m_ERRAircraftRoute.Stop();' in body(chat,'protected void ERR_StopHQPatrol(')
assert 'ERR_StopHQPatrol();' in body(chat,'protected bool ERR_Check(')
@@ -153,11 +153,11 @@ int main(){
# The sole fixture getter observes the service's original retained controller.
getter=body(P,'ERR_AircraftRouteFlight ERR_NativeOriginalFlight(')
run(r'''#include <cassert>
struct Flight{};struct Entry {Flight* FlightPtr=nullptr;};
struct BaseFlight {virtual ~BaseFlight()=default;};struct Flight:BaseFlight{};struct FieldFlight:BaseFlight{};struct Entry {BaseFlight* FlightPtr=nullptr;};
struct Observe {Entry* entry=nullptr;Entry* Find(int){return entry;}
''' + getter.replace('ERR_AircraftRouteFlight ', 'Flight* ').replace('Vehicle aircraft','int aircraft').replace('ERR_AircraftServiceEntry entry','Entry* entry').replace('entry.Flight','entry->FlightPtr').replace('return null;','return nullptr;') + r'''
''' + getter.replace('ERR_AircraftRouteFlight.Cast(entry.Flight)', 'dynamic_cast<Flight*>(entry.Flight)').replace('ERR_AircraftRouteFlight ', 'Flight* ').replace('Vehicle aircraft','int aircraft').replace('ERR_AircraftServiceEntry entry','Entry* entry').replace('entry.Flight','entry->FlightPtr').replace('null','nullptr') + r'''
};
int main(){Observe p;assert(!p.ERR_NativeOriginalFlight(1));Flight flight;Entry e;e.FlightPtr=&flight;p.entry=&e;assert(p.ERR_NativeOriginalFlight(1)==&flight);}
int main(){Observe p;assert(!p.ERR_NativeOriginalFlight(1));Flight flight;Entry e;e.FlightPtr=&flight;p.entry=&e;assert(p.ERR_NativeOriginalFlight(1)==&flight);FieldFlight field;e.FlightPtr=&field;assert(!p.ERR_NativeOriginalFlight(1));}
''')
assert 'm_Service.Drained() && !m_Service.Pending(m_Aircraft) && !m_Service.Retired(m_Aircraft)' in tick
assert 'if (!RetainedIdentity())' in tick
+52 -8
View File
@@ -5,14 +5,14 @@ P=ROOT/'addons/ai/Scripts/Game/ERR/ERR_AircraftService.c'
def cpp(s):
s=s.replace('protected ','').replace('return null;', 'return nullptr;')
for a,b in [('ERR_AircraftServiceEntry entry','Entry* entry'),('ERR_AircraftServiceEntry known','Entry* known'),('new ERR_AircraftServiceEntry()','new Entry()'),('ERR_AircraftRouteEnvelope qualification','Qualification* qualification'),('new ERR_AircraftRouteFlight()','new Flight()'),('ERR_GameMode mode','Mode* mode'),('ERR_GameMode.Get()','Mode::Get()'),('ERR_AircraftFlightRules.','Rules::'),('ERR_AircraftFlightState.','State::'),('Replication.IsServer()','server'),('string reason','std::string reason'),('vector destination = "0 0 0"','Vec destination')]:s=s.replace(a,b)
for a,b in [('ERR_AircraftServiceEntry entry','Entry* entry'),('ERR_AircraftServiceEntry known','Entry* known'),('new ERR_AircraftServiceEntry()','new Entry()'),('ERR_AircraftRouteEnvelope qualification','Qualification* qualification'),('ERR_AircraftRouteFlight flight','RouteFlight* flight'),('ERR_AircraftFieldFlight flight','FieldFlight* flight'),('ERR_AircraftFieldEnvelope qualification','FieldQualification* qualification'),('new ERR_AircraftRouteFlight()','new RouteFlight()'),('new ERR_AircraftFieldFlight()','new FieldFlight()'),('ERR_GameMode mode','Mode* mode'),('ERR_GameMode.Get()','Mode::Get()'),('ERR_AircraftFlightRules.','Rules::'),('ERR_AircraftFlightState.','State::'),('Replication.IsServer()','server'),('string reason','std::string reason'),('vector destination = "0 0 0"','Vec destination')]:s=s.replace(a,b)
s=re.sub(r'foreach \(Entry\* (entry|known) : m_Entries\)',r'for (Entry* \1 : m_Entries.values)',s)
for name in ('entry','known','qualification','GetGame()','m_Mode','m_World','s_Retainers','entry.Flight'):
for name in ('entry','known','qualification','GetGame()','m_Mode','m_World','s_Retainers','entry.Flight','flight'):
s=s.replace(name+'.',name+'->')
s=s.replace('entry->Flight.','entry->Flight->').replace('entry->Reason.IsEmpty()','entry->Reason.empty()')
return s.replace('ERR_AircraftServiceEntry Find(', 'Entry* Find(').replace('ERR_AircraftServiceEntry entry)', 'Entry* entry)').replace('vector Destination(', 'Vec Destination(').replace('string Reason(', 'std::string Reason(')
return s.replace('ERR_AircraftServiceEntry BeginAttempt(', 'Entry* BeginAttempt(').replace('ERR_AircraftServiceEntry Find(', 'Entry* Find(').replace('ERR_AircraftServiceEntry entry)', 'Entry* entry)').replace('vector Destination(', 'Vec Destination(').replace('string Reason(', 'std::string Reason(')
keys=['protected bool Context(', 'protected ERR_AircraftServiceEntry Find(', 'bool Register(', 'bool Ready(', 'bool StartRoute(', 'protected void Finish(', 'bool Cancel(', 'void Tick(', 'void Stop(', 'protected void ReleaseRetainers(', 'bool Drained(', 'bool Stopping(', 'int RegisteredCount(', 'int AttemptedOrders(', 'bool Pending(', 'bool Retired(', 'int OrderToken(', 'float OrderDeadline(', 'int FlightState(', 'string Reason(', 'vector Destination(']
keys=['protected bool Context(', 'protected ERR_AircraftServiceEntry Find(', 'bool Register(', 'bool Ready(', 'protected ERR_AircraftServiceEntry BeginAttempt(', 'bool StartRoute(', 'bool StartField(', 'protected bool RecordStart(', 'protected void Finish(', 'bool Cancel(', 'void Tick(', 'void Stop(', 'protected void ReleaseRetainers(', 'bool Drained(', 'bool Stopping(', 'int RegisteredCount(', 'int AttemptedOrders(', 'bool Pending(', 'bool Retired(', 'int OrderToken(', 'float OrderDeadline(', 'int FlightState(', 'string Reason(', 'vector Destination(']
run(r'''
#include <cassert>
#include <map>
@@ -30,8 +30,10 @@ struct Rules {static bool Deadline(float now,float deadline){return now>=0&&dead
struct Entity {bool original=true,ready=true;int startMode=0,next=State::HOOKS;};
using Vehicle=Entity*;using SCR_AIGroup=Entity*;using IEntity=Entity*;using PilotCompartmentSlot=Entity*;
struct Qualification {bool claimed=false;Vec target={20,0,0};Vec Destination(){return target;}};
int starts=0,claims=0,ticks=0,cancels=0;
struct FieldQualification:Qualification {FieldQualification(){target={100,0,0};}};
int starts=0,claims=0,ticks=0,cancels=0,routeConstructions=0,fieldConstructions=0;
struct Flight {
virtual ~Flight()=default;int kind=0;
Entity* aircraft=nullptr;int token=0,state=State::IDLE;float deadline=0;bool cancelled=false;std::string reason;
bool Finished(){return state>=State::COMPLETE&&state<=State::RELINQUISHED;}
bool StartRoute(Mode*,Vehicle a,SCR_AIGroup,IEntity,PilotCompartmentSlot,Qualification* q,int t,float d){
@@ -46,6 +48,8 @@ struct Flight {
void Tick(){ticks++;if(!aircraft->original||!Mode::Get()||!Mode::Get()->active){state=State::RELINQUISHED;return;}if(world.now>=deadline){state=State::FAILED;return;}state=aircraft->next;}
int State(){return state;}int OrderToken(){return token;}std::string Reason(){return reason;}
};
struct RouteFlight:Flight {RouteFlight(){kind=1;routeConstructions++;}};
struct FieldFlight:Flight {FieldFlight(){kind=2;fieldConstructions++;}bool StartField(Mode* m,Vehicle a,SCR_AIGroup g,IEntity p,PilotCompartmentSlot s,FieldQualification* q,int t,float d){return StartRoute(m,a,g,p,s,q,t,d);}};
struct Entry {Vehicle Aircraft=nullptr;SCR_AIGroup Group=nullptr;IEntity Pilot=nullptr;PilotCompartmentSlot Seat=nullptr;struct Flight* Flight=nullptr;int Token=0;float Deadline=0;Vec Destination;bool Pending=false,CancelRequested=false,Retired=false;std::string Reason;};
struct Entries {std::vector<Entry*> values;int Count(){return values.size();}void Insert(Entry* e){values.push_back(e);}};
struct Tokens {std::set<int> values;int Count(){return values.size();}bool Contains(int n){return values.count(n);}void Insert(int n){values.insert(n);}};
@@ -61,7 +65,7 @@ struct Service {
};Registry* Service::s_Retainers=&registry;
struct Setup {
Mode mode;Entity a[5],g[5],p[5],seat[5];Service service;Qualification q;
Setup():service(&mode){registry.values.clear();server=true;gamePointer=&game;game.current=&world;world.now=1000;Mode::current=&mode;starts=claims=ticks=cancels=0;}
Setup():service(&mode){registry.values.clear();server=true;gamePointer=&game;game.current=&world;world.now=1000;Mode::current=&mode;starts=claims=ticks=cancels=routeConstructions=fieldConstructions=0;}
bool Register(int i=0){return service.Register(&a[i],&g[i],&p[i],&seat[i]);}
bool Start(int token=1){return service.StartRoute(&a[0],&q,token,200000);}
};
@@ -88,6 +92,26 @@ int main(){
for(int fail:{1,2,3}){Setup x;assert(x.Register());x.a[0].startMode=fail;assert(!x.Start());assert(starts==1&&x.service.AttemptedOrders()==1&&x.service.Retired(&x.a[0]));assert(!x.Start(2)&&starts==1);if(fail==3){assert(x.service.Pending(&x.a[0])&&cancels==1);assert(!x.service.Cancel(&x.a[0],1,"duplicate"));x.a[0].next=State::CANCELLED;x.service.Tick();assert(x.service.Drained());}else assert(x.service.Drained());}
{Setup x;assert(x.Register());x.q.claimed=true;assert(!x.Start()&&starts==1&&claims==0&&x.service.AttemptedOrders()==1);}
{Setup x;assert(x.Register());for(int i=1;i<=Service::MAX_ORDERS;i++){Qualification q;assert(x.service.StartRoute(&x.a[0],&q,i,200000));x.a[0].next=State::COMPLETE;x.service.Tick();}assert(x.service.AttemptedOrders()==128);Qualification q;assert(!x.service.StartRoute(&x.a[0],&q,129,200000)&&starts==128);}
// Explicit field kind constructs one known controller, records actual target,
// and shares tokens/reservations with the normal route kind.
{Setup x;assert(x.Register()&&x.Register(1));FieldQualification field;assert(x.service.StartField(&x.a[0],&field,10,241000));Entry* e=x.service.Find(&x.a[0]);Flight* original=e->Flight;assert(original->kind==2&&fieldConstructions==1&&routeConstructions==0&&starts==1&&claims==1);assert(x.service.Destination(&x.a[0]).x==100);field.target.x=999;assert(x.service.Destination(&x.a[0]).x==100);
Qualification normal;FieldQualification another;assert(!x.service.StartRoute(&x.a[0],&normal,11,200000));assert(!x.service.StartRoute(&x.a[1],&normal,10,200000));assert(!x.service.StartField(&x.a[1],&another,10,241000));assert(starts==1&&claims==1);
assert(x.service.Cancel(&x.a[0],10,"field radio loss")&&!x.service.Cancel(&x.a[0],10,"duplicate"));assert(e->Flight==original&&x.service.Pending(&x.a[0])&&cancels==1&&x.service.OrderDeadline(&x.a[0])==241000);
x.a[0].next=State::LANDING;x.service.Tick();assert(e->Flight==original&&x.service.Pending(&x.a[0]));x.a[0].next=State::CANCELLED;x.service.Tick();assert(x.service.Drained()&&!x.service.Retired(&x.a[0]));
assert(!x.service.StartRoute(&x.a[0],&normal,10,200000));assert(x.service.StartRoute(&x.a[0],&normal,11,200000));assert(x.service.Find(&x.a[0])->Flight->kind==1&&routeConstructions==1&&claims==2);
}
// Tokens attempted by normal routes cannot replay as field routes even on
// another ready asset after physical completion.
{Setup x;assert(x.Register()&&x.Register(1)&&x.Start(21));x.a[0].next=State::COMPLETE;x.service.Tick();FieldQualification q;assert(!x.service.StartField(&x.a[1],&q,21,241000)&&fieldConstructions==0);assert(x.service.StartField(&x.a[1],&q,22,241000)&&claims==2);}
{Setup x;assert(x.Register());FieldQualification q;assert(!x.service.StartField(&x.a[0],nullptr,1,241000));assert(!x.service.StartField(&x.a[0],&q,0,241000));assert(!x.service.StartField(&x.a[0],&q,1,NAN));assert(starts==0&&claims==0&&x.service.AttemptedOrders()==0&&fieldConstructions==0);}
// Failed field admission/claim uses exactly the existing retirement and
// retained partial-start protocol. Changing kind cannot create a retry.
for(int fail:{1,2,3}){Setup x;assert(x.Register()&&x.Register(1));x.a[0].startMode=fail;FieldQualification q;assert(!x.service.StartField(&x.a[0],&q,31,241000));assert(x.service.Retired(&x.a[0])&&x.service.AttemptedOrders()==1&&fieldConstructions==1);Qualification route;assert(!x.service.StartRoute(&x.a[0],&route,32,200000)&&!x.service.StartRoute(&x.a[1],&route,31,200000));if(fail==3){Flight* retained=x.service.Find(&x.a[0])->Flight;assert(x.service.Pending(&x.a[0])&&cancels==1);x.a[0].next=State::LANDING;x.service.Tick();assert(x.service.Find(&x.a[0])->Flight==retained&&x.service.Pending(&x.a[0]));x.a[0].next=State::CANCELLED;x.service.Tick();}assert(x.service.Drained()&&x.service.Retired(&x.a[0]));}
{Setup x;assert(x.Register());FieldQualification q;q.claimed=true;assert(!x.service.StartField(&x.a[0],&q,41,241000)&&starts==1&&claims==0&&x.service.Retired(&x.a[0]));}
// Stop drains both kinds together; no early release or additional starts.
{Setup x;assert(x.Register()&&x.Register(1)&&x.Start(51));FieldQualification q;assert(x.service.StartField(&x.a[1],&q,52,241000));Flight* field=x.service.Find(&x.a[1])->Flight;x.service.Stop();x.service.Stop();assert(cancels==2&&x.service.Stopping()&&!x.service.Drained());x.a[0].next=State::CANCELLED;x.a[1].next=State::LANDING;x.service.Tick();assert(!x.service.Drained()&&registry.Get(&x.a[0])==&x.service&&x.service.Find(&x.a[1])->Flight==field);x.a[1].next=State::CANCELLED;x.service.Tick();assert(x.service.Drained()&&registry.values.empty()&&!x.service.Ready(&x.a[1]));}
// One bounded attempt budget covers both kinds without independent counters.
{Setup x;assert(x.Register());for(int i=1;i<=Service::MAX_ORDERS;i++){if(i%2){FieldQualification q;assert(x.service.StartField(&x.a[0],&q,i,241000));}else{Qualification q;assert(x.service.StartRoute(&x.a[0],&q,i,200000));}x.a[0].next=State::COMPLETE;x.service.Tick();}FieldQualification q;assert(!x.service.StartField(&x.a[0],&q,129,241000)&&starts==128&&claims==128&&routeConstructions==64&&fieldConstructions==64);}
}
''')
source=P.read_text()
@@ -98,8 +122,28 @@ for required in ('entry.Seat.GetOccupant() != entry.Pilot','controller.GetPilotC
assert required in original
for required in ('!Original(entry)','!ERR_Actors.CanFight(entry.Pilot)','!fuel.HasFuel()','!damage.GetEngineFunctional()','simulation.RotorGetState(rotor) == RotorState.DESTROYED','!simulation.HasAnyGroundContact()','!physics.IsActive()','controller.IsEngineOn()'):
assert required in ready
assert source.count('new ERR_AircraftRouteFlight()')==1
assert source.count('new ERR_AircraftRouteFlight()')==1 and source.count('new ERR_AircraftFieldFlight()')==1
assert 'ref ERR_AircraftFlight Flight;' in source
assert source.count('m_UsedTokens.Insert(token)')==1
for signature in ('bool StartRoute(', 'bool StartField('):
method=body(P,signature)
assert method.index('if (!qualification) return false;')<method.index('BeginAttempt(')<method.index('entry.Flight = flight; entry.Pending = true;')<method.index('bool started = flight.')<method.index('RecordStart(entry, started)')
assert '.Claim(' not in source and 'QualifyRoute(' not in source
for prohibited in ('Spawn(', 'Delete(', 'DeleteSpawned(', 'SetOrigin(', 'SetWorldTransform(', 'SetVelocity(', 'SetActive(', 'SetFuel(', 'SetHealth(', 'PrepareActions(', 'PrepareHelicopter(', 'CallLater(', 'GetPlayerCount() == 0'):
assert prohibited not in source
print('PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded order history; native boundaries faked')
print('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')
# The existing route probe sees only its exact subtype; a field controller can
# never be relabeled as route evidence through the shared retained base pointer.
route_probe=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c'
getter=body(route_probe,'ERR_AircraftRouteFlight ERR_NativeOriginalFlight(')
getter=getter.replace('ERR_AircraftRouteFlight.Cast(entry.Flight)','dynamic_cast<Route*>(entry->Flight)').replace('ERR_AircraftRouteFlight ','Route* ').replace('ERR_AircraftServiceEntry entry','Entry* entry').replace('Vehicle aircraft','int aircraft').replace('null','nullptr')
run(r'''#include <cassert>
struct Base {virtual ~Base()=default;};struct Route:Base{};struct Field:Base{};
struct Entry {Base* Flight=nullptr;};
struct Observer {Entry* entry=nullptr;Entry* Find(int){return entry;}
'''+getter+r'''
};
int main(){Observer o;assert(!o.ERR_NativeOriginalFlight(1));Entry e;o.entry=&e;assert(!o.ERR_NativeOriginalFlight(1));Route route;e.Flight=&route;assert(o.ERR_NativeOriginalFlight(1)==&route);Field field;e.Flight=&field;assert(!o.ERR_NativeOriginalFlight(1));}
''')
print('PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers')
+45 -3
View File
@@ -631,13 +631,14 @@ class ApproachTests(unittest.TestCase):
'baseline_samples':[20,21],'response_sample':22,'return_sample':23,
'motions':[{'dx':24,'dy':0,'monotonic':10.1,'after_sample':21,'after_real_ms':3310},
{'dx':-24,'dy':0,'monotonic':10.3,'after_sample':22,'after_real_ms':3420}]}
report={'look_proof':look,'events':[]};keyboard=FakeKeyboard(observer);notifications=[];motions=[]
report={'look_proof':look,'events':[],'coarse_approach_requested':True};keyboard=FakeKeyboard(observer);notifications=[];motions=[]
mouse=SimpleNamespace(approach_move=lambda *a,**k:motions.append((a,k)))
def module(guard,k,m,observe,geometry,calibration,r,**kwargs):
self.assertEqual(calibration['ready_monotonic'],10)
self.assertEqual(calibration['ready_real_ms'],3091)
self.assertEqual(calibration['observer_start_real_ms'],1000)
self.assertEqual(kwargs['key_state_busy'],proof.KeyStateBusy)
self.assertEqual(kwargs['profile'],'coarse')
self.assertEqual(observe()[-1]['geometry'],geometry)
self.assertEqual(geometry['nonce'],NONCE)
with self.assertRaises(proof.Refused):k.send('F',True)
@@ -999,7 +1000,7 @@ class SelectionIntegration(unittest.TestCase):
def test_actual_main_wires_selection_only_to_observer_and_sequence(self):
with tempfile.TemporaryDirectory() as folder:
root=Path(folder);args=SimpleNamespace(nonce='N',prefix=root/'pfx',profile=root/'profile',game_executable=root/'game',host_display=':0',report=root/'report.json',console=root/'console.log',command=[],enable_private_look_proof=True,enable_private_approach_proof=True,enable_private_alignment_proof=True,enable_private_selection_proof=True)
root=Path(folder);args=SimpleNamespace(nonce='N',prefix=root/'pfx',profile=root/'profile',game_executable=root/'game',host_display=':0',report=root/'report.json',console=root/'console.log',command=[],enable_private_look_proof=True,enable_private_approach_proof=True,enable_private_alignment_proof=True,enable_private_selection_proof=True,enable_private_coarse_approach_proof=True)
owner={'window':1,'pid':2,'server_pid':2,'process':{'pid':2}}
query=SimpleNamespace(windows=lambda:[{}],focus=lambda:(1,0),close=lambda:None)
observer=SimpleNamespace(identity=(1,2),start_offset=0,offset=0,raw=[],events=[],look_records=[],gate_records=[],close=lambda:None)
@@ -1021,7 +1022,8 @@ class SelectionIntegration(unittest.TestCase):
with patch.object(proof,'arguments',return_value=args),patch.object(proof,'wrapper_command',return_value=[]),patch.object(proof,'console_path'),patch.object(proof.display,'validate_paths'),patch.object(proof.display,'binding',return_value={'display':':2'}),patch.object(proof.display,'X11',return_value=query),patch.object(proof.display,'owned_window',return_value=owner),patch.object(proof.display,'input_target',return_value={'verified':True}),patch.object(proof,'Observer',autospec=True,return_value=observer) as ob,patch.object(proof,'Guard',autospec=True),patch.object(proof,'Keyboard',autospec=True),patch.object(proof,'RelativeMouse',autospec=True) as mouse,patch.object(proof,'sequence',side_effect=sequence),patch.object(proof.signal,'signal'):
self.assertEqual(proof.main([]),0)
self.assertTrue(ob.call_args.kwargs['enable_selection']);self.assertNotIn('selection',mouse.call_args.kwargs)
archived=json.loads(args.report.read_text());self.assertTrue(archived['selection_requested']);self.assertEqual(archived['wheel_events'],[])
self.assertTrue(mouse.call_args.kwargs['enable_coarse_approach']);self.assertNotIn('coarse_approach',ob.call_args.kwargs)
archived=json.loads(args.report.read_text());self.assertTrue(archived['coarse_approach_requested']);self.assertTrue(archived['selection_requested']);self.assertEqual(archived['wheel_events'],[])
def test_one_native_wheel_pair_and_mask_roundtrip_no_retries(self):
r=WheelRig();w=r.wheel();notices=[]
@@ -1173,4 +1175,44 @@ class SelectionIntegration(unittest.TestCase):
self.assertEqual(proof.supervise([]),1);self.assertEqual(child.terminated,1)
self.assertEqual(failed.call_args.kwargs['button'],5);self.assertIsNone(failed.call_args.args[1]);stop.assert_called_once()
class CoarseApproachTests(unittest.TestCase):
def test_opt_in_requires_approach_and_default_is_unchanged(self):
argv=['--enable-private-keyboard-proof','--prefix','/tmp/pfx','--game-executable','/tmp/game','--profile','/tmp/profile','--report','/tmp/report','--host-display',':0','--nonce','N']
self.assertFalse(proof.arguments(argv).enable_private_coarse_approach_proof)
with self.assertRaises(SystemExit),patch('sys.stderr'):proof.arguments(argv+['--enable-private-coarse-approach-proof'])
args=proof.arguments(argv+['--enable-private-coarse-approach-proof','--enable-private-approach-proof','--enable-private-look-proof'])
self.assertTrue(args.enable_private_coarse_approach_proof)
with self.assertRaisesRegex(proof.Refused,'Coarse approach'):
proof.sequence(FakeGuard(),FakeKeyboard(FakeObserver()),FakeObserver(),{},coarse_approach=True)
with self.assertRaisesRegex(proof.Refused,'Coarse approach'):
proof.sequence(FakeGuard(),FakeKeyboard(FakeObserver()),FakeObserver(),{'coarse_approach_requested':True},approach=True)
def test_coarse_mouse_preserves_actual_private_pointer_focus_and_deadline_checks(self):
class Fn:
def __init__(self,fn):self.fn=fn
def __call__(self,*a):return self.fn(*a)
events=[];xt=SimpleNamespace(XTestFakeRelativeMotionEvent=Fn(lambda *a:events.append(a) or 1))
query=SimpleNamespace(d=1,x=SimpleNamespace(XQueryPointer=Fn(lambda *a:1),XFlush=lambda d:None),server_pid=lambda child:9)
keyboard=SimpleNamespace(xt=xt,require_idle=lambda:None);clock=Clock()
target={'geometry':{'root':1},'focused_clipped_bounds':(0,0,1000,720)}
checks=[];guard=SimpleNamespace(check=lambda:checks.append(True) or target)
mouse=proof.RelativeMouse(query,keyboard,{'window':100,'pid':9},enable_approach=True,enable_coarse_approach=True)
mouse.pointer=lambda:{'root':1,'child':0,'root_x':500,'root_y':300,'mask':0}
for dx in (384,-384):mouse.approach_move(dx,0,guard,deadline=35,clock=clock)
self.assertEqual(len(events),2);self.assertEqual(len(checks),4)
for dx,dy in ((385,0),(300,1),(True,0)):
with self.assertRaises(proof.Refused):mouse.approach_move(dx,dy,guard,deadline=35,clock=clock)
mouse.enable_coarse_approach=False
with self.assertRaises(proof.Refused):mouse.approach_move(300,0,guard,deadline=35,clock=clock)
mouse.enable_coarse_approach=True
mouse.pointer=lambda:{'root':1,'child':0,'root_x':900,'root_y':300,'mask':0}
with self.assertRaisesRegex(proof.Refused,'clipped'):mouse.approach_move(300,0,guard,deadline=35,clock=clock)
mouse.pointer=lambda:{'root':1,'child':77,'root_x':500,'root_y':300,'mask':0};query.server_pid=lambda child:10
with self.assertRaisesRegex(proof.Refused,'foreign'):mouse.approach_move(300,0,guard,deadline=35,clock=clock)
mouse.pointer=lambda:{'root':1,'child':0,'root_x':500,'root_y':300,'mask':0}
def late():clock.now=35;return target
with self.assertRaisesRegex(proof.Refused,'deadline'):mouse.approach_move(300,0,SimpleNamespace(check=late),deadline=35,clock=clock)
self.assertEqual(len(events),2)
with self.assertRaisesRegex(proof.Refused,'capability'):proof.RelativeMouse(query,keyboard,{'window':100,'pid':9},enable_coarse_approach=True)
if __name__ == '__main__': unittest.main()
+19 -4
View File
@@ -3,7 +3,7 @@ import re
from policy_harness import ROOT, body, run
P=ROOT/'addons/core/Scripts/Game/ERR/ERR_OrdinaryGateObserver.c'
def cpp(s):
s=s.replace('protected ', '').replace('out float ', 'float& ').replace('out bool ', 'bool& ')
s=s.replace('protected ', '').replace('out bool held', 'bool& held').replace('out float ', 'float& ').replace('out bool ', 'bool& ')
types=('ERR_GameMode','BaseWorld','PlayerController','IEntity','ERR_PlayerLife','PlayerManager','BaseUserAction','ERR_UnlockPrisonAction','UserActionContext')
for typ in types:s=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',s)
s=s.replace('array<BaseUserAction>', 'Array<BaseUserAction*>').replace('array<bool>', 'Array<bool>')
@@ -19,8 +19,10 @@ def cpp(s):
s=s.replace(scope+'.',scope+'::')
for getter in ('GetGame','Players','PrisonEscape','GetInputManager','GetMenuManager'):
s=s.replace(getter+'().',getter+'()->')
s=s.replace('nonce.Length()', 'int(nonce.size())').replace('allowed.Contains(nonce[i])', '(allowed.find(nonce[i]) != string::npos)')
return s.replace('null','nullptr').replace('string.Format(', 'Format(')
accessor=cpp(body(P,'bool ERR_GateReadProgress('))
shared='\n'.join(cpp(body(ROOT/'addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c', signature)) for signature in ('static bool Nonce(', 'static bool HeldScope(', 'static bool PhaseAllowed('))
methods='\n'.join(cpp(body(P,s)) for s in ('protected static bool Enabled(', 'static void Sample(', 'protected bool BindGate(', 'protected bool Context(', 'protected void Cancel(', 'protected bool CachedPermission(', 'protected static bool FiniteVector(', 'protected static string ChoiceIdentity(', 'protected void ObserveChoices(', 'protected void Observe('))
run(r'''
#include <cassert>
@@ -51,7 +53,7 @@ struct PlayerManager {PlayerController* controller=nullptr;IEntity* actor=nullpt
struct ERR_PlayerLife {UUID AccountId="original-account";};
struct Roster {ERR_PlayerLife* life=nullptr;IEntity* actor=nullptr;ERR_PlayerLife* CurrentActor(IEntity* value){return value==actor?life:nullptr;}};
struct Prison {IEntity* gate=nullptr;bool registered=true,lost=false;bool Registered(){return registered;}bool GateLost(){return lost;}IEntity* Gate(){return gate;}};
namespace ERR_Phase {enum {PRISON,RADIO_SEARCH,EXTRACTION};}
namespace ERR_Phase {enum {PRISON=1,RADIO_SEARCH=2,EXTRACTION=4};}
struct ERR_GameMode {static ERR_GameMode* current;bool active=true;int phase=ERR_Phase::PRISON;BaseWorld* world=nullptr;Roster* roster=nullptr;Prison* prison=nullptr;static ERR_GameMode* Get(){return current;}bool Active(){return active;}int Phase(){return phase;}BaseWorld* GetWorld(){return world;}Roster* Players(){return roster;}Prison* PrisonEscape(){return prison;}vector prisonPosition=Vector(6090,210,7160);vector PrisonPosition(){return prisonPosition;}};ERR_GameMode* ERR_GameMode::current=nullptr;
struct InputManager {float pressed=0;ERR_GameMode* changeDuringRead=nullptr;float GetActionValue(string name){assert(name=="PerformAction");if(changeDuringRead)changeDuringRead->active=false;return pressed;}};
struct MenuManager {bool open=false;void* GetTopMenu(){return open?this:nullptr;}};
@@ -59,7 +61,9 @@ struct Game {BaseWorld* world=nullptr;PlayerController* controller=nullptr;Playe
namespace System {bool console=false;std::map<string,string> cli;bool IsConsoleApp(){return console;}bool GetCLIParam(string key,string& value){if(!cli.count(key))return false;value=cli[key];return true;}}
namespace Replication {bool server=true;bool IsServer(){return server;}}
namespace RplMode {enum {None,Listen,Dedicated};}namespace RplSession {int mode=RplMode::None;int Mode(){return mode;}}
namespace ERR_OrdinaryInputObserverRules {bool Nonce(string n){return !n.empty()&&n.size()<=32&&n.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")==string::npos;}}
struct ERR_OrdinaryInputObserverRules {
'''+shared+r'''
};
namespace ERR_Actors {bool CanFight(IEntity* actor){return actor&&actor->living;}}
namespace CompartmentAccessComponent {IEntity* GetVehicleIn(IEntity* actor){return actor->vehicle?actor:nullptr;}}
int headers=0,samples=0,geometries=0,cancels=0,choices=0;string lastChoice;string reason;bool lastSelected=false,lastContext=false,lastPermitted=false,lastBound=false,lastPerforming=false;float lastProgress=0;int lastPhase=0;
@@ -74,7 +78,7 @@ void PrintFormat(string format,string,int,int,string value){if(format.find("ERR
class ERR_OrdinaryGateObserver {public:
static ERR_OrdinaryGateObserver* s_Request;static bool s_Attempted;
ERR_GameMode* m_Mode=nullptr;BaseWorld* m_World=nullptr;PlayerController* m_Controller=nullptr;IEntity* m_Actor=nullptr;ERR_PlayerLife* m_Life=nullptr;UUID m_Account;IEntity* m_Gate=nullptr;BaseActionsManagerComponent* m_Manager=nullptr;ERR_UnlockPrisonAction* m_Lock=nullptr;UserActionContext* m_Context=nullptr;BaseDoorComponent* m_Door=nullptr;SCR_InteractionHandlerComponent* m_Handler=nullptr;
string m_Nonce;int m_Start=0,m_Previous=0,m_Index=0;bool m_Stopped=false;
string m_Nonce;int m_Start=0,m_Previous=0,m_Index=0;bool m_Stopped=false,m_HeldAction=false;int m_ObservedPhase=-1;
'''+methods+r'''
};
ERR_OrdinaryGateObserver* ERR_OrdinaryGateObserver::s_Request=nullptr;bool ERR_OrdinaryGateObserver::s_Attempted=false;
@@ -84,6 +88,17 @@ struct Fixture {BaseWorld world,otherWorld;ERR_GameMode mode;IEntity actor,other
};
int main(){
// Held mode changes only admissible phase, never the original pins or clock.
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();auto p=ERR_OrdinaryGateObserver::s_Request;assert(p&&p->m_HeldAction&&p->m_ObservedPhase==ERR_Phase::PRISON);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);f.sample(3,1300);assert(samples==3&&!cancels&&p->m_Start==1000&&p->m_ObservedPhase==ERR_Phase::RADIO_SEARCH);f.mode.phase=ERR_Phase::PRISON;f.sample(4,1400);assert(samples==3&&cancels==1);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(5,1500);assert(samples==3&&cancels==1);}
for(int fault=0;fault<5;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; if(fault==0)System::cli["errOrdinaryHeldAction"]="foreign";if(fault==1)System::cli.erase("errOrdinaryLookObserve");if(fault==2)System::cli["errOrdinaryLookObserve"]="foreign";if(fault==3)f.mode.phase=ERR_Phase::RADIO_SEARCH;if(fault==4)System::cli["errOrdinaryHeldAction"]="";f.sample();assert(!samples);f.mode.phase=ERR_Phase::PRISON;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample(2,1200);assert(!samples);}
for(int fault=0;fault<8;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);assert(samples==2&&!cancels);if(fault==0)System::cli.erase("errOrdinaryHeldAction");if(fault==1)System::cli["errOrdinaryLookObserve"]="foreign";if(fault==2)f.actor.vehicle=true;if(fault==3)f.menus.open=true;if(fault==4)f.life.AccountId="replacement";if(fault==5)f.mode.phase=ERR_Phase::EXTRACTION;if(fault==6)f.players.actor=nullptr;if(fault==7)game.world=nullptr;f.sample(3,1300);assert(samples==2&&cancels==1);}
{Fixture f;f.sample();System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample(2,1200);assert(samples==1&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,45999);assert(samples==2);f.sample(3,46000);assert(samples==2&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(451,1200);assert(samples==1&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.door.control=1;f.door.state=.4;f.context.origin=Vector(6091,212,7155);f.gate.forward=Vector(1,0,0);f.handler.selected=nullptr;f.handler.current=nullptr;f.sample(2,1200);assert(samples==2&&geometries==2&&!cancels&&!lastSelected&&!lastBound&&lastPhase==ERR_Phase::RADIO_SEARCH);f.manager.context=&f.otherContext;f.sample(3,1300);assert(samples==2&&cancels==1);}
// Legacy gate-only observation retains its prior permitted phase reversal.
{Fixture f;f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);f.mode.phase=ERR_Phase::PRISON;f.sample(3,1300);assert(samples==3&&!cancels);}
// Diagnostics are an independent opt-in beneath the same validated observer.
{Fixture f;f.sample();assert(choices==0);System::cli["errOrdinaryGateChoices"]="foreign";f.sample(2,1200);assert(choices==0&&samples==2);}
// A disabled stock door can be selected while the exact lock is cached available.
+42 -7
View File
@@ -2,12 +2,12 @@
from policy_harness import ROOT, body, run
P=ROOT/'addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c'
def cpp(s):
s=s.replace('protected ', '').replace('out string nonce','string& nonce')
s=s.replace('protected ', '').replace('out bool held', 'bool& held').replace('out string nonce','string& nonce')
for t in ('ERR_GameMode','PlayerController','IEntity','ERR_PlayerLife','ERR_OrdinaryInputObserver','PlayerManager','SCR_InventoryMenuUI','Widget'):
s=s.replace(t+' mode',t+'* mode').replace(t+' controller',t+'* controller').replace(t+' actor',t+'* actor').replace(t+' life',t+'* life').replace(t+' request',t+'* request').replace(t+' current',t+'* current').replace(t+' manager',t+'* manager').replace(t+' menu',t+'* menu').replace(t+' root',t+'* root').replace(t+' expectedMenu',t+'* expectedMenu').replace(t+' expectedRoot',t+'* expectedRoot').replace(t+' overlay',t+'* overlay')
for v in ('mode','controller','actor','request','life','current','manager','menu','root','m_Mode','m_World','m_Controller','m_Actor','m_Character','m_Menu','s_Request','expectedMenu','expectedRoot','m_CaptureMenu','m_CaptureRoot','overlay','m_aHitZonePoints'):
s=s.replace(v+'.',v+'->')
for scope in ('System','Replication','ERR_Phase','ERR_GameMode','ERR_Actors','SCR_InventoryMenuUI','ERR_OrdinaryInputObserverRules','ERR_OrdinaryLookObserver','ERR_OrdinaryGateObserver','vector','Math'):
for scope in ('System','Replication','RplSession','RplMode','CompartmentAccessComponent','ERR_Phase','ERR_GameMode','ERR_Actors','SCR_InventoryMenuUI','ERR_OrdinaryInputObserverRules','ERR_OrdinaryLookObserver','ERR_OrdinaryGateObserver','vector','Math'):
s=s.replace(scope+'.',scope+'::')
s=s.replace('GetGame().','GetGame()->').replace('GetPlayerManager().','GetPlayerManager()->').replace('GetInputManager().','GetInputManager()->').replace('GetMenuManager().','GetMenuManager()->').replace('GetCallqueue().','GetCallqueue()->').replace('Players().','Players()->')
s=s.replace('CharacterControllerComponent.Cast(actor->FindComponent(CharacterControllerComponent))','actor->FindComponent(0)').replace('FindComponent(CharacterControllerComponent)','FindComponent(0)')
@@ -17,9 +17,10 @@ def cpp(s):
s=s.replace('string.Format', 'Format').replace('Widget* overlay;', 'Widget* overlay=null;')
s=s.replace('null','nullptr').replace('bool open;', 'bool open = false;')
s=s.replace('nonce.Length()', 'int(nonce.size())').replace('allowed.Contains(nonce[i])', '(allowed.find(nonce[i]) != string::npos)')
s=s.replace('nonce.Length()', 'int(nonce.size())').replace('allowed.Contains(nonce[i])', '(allowed.find(nonce[i]) != string::npos)')
return s
state=cpp(body(P,'string ERR_InputObserverInventoryState('))
rules='\n'.join(cpp(body(P,x)) for x in ('static bool Nonce(', 'static bool Within(', 'static bool Stationary('))
rules='\n'.join(cpp(body(P,x)) for x in ('static bool Nonce(', 'static bool HeldScope(', 'static bool PhaseAllowed(', 'static bool Within(', 'static bool Stationary('))
methods='\n'.join(cpp(body(P,x)) for x in ('protected static bool Enabled(', 'static void Queue(', 'protected bool Valid(', 'protected void Record(', 'protected void CancelCapture(', 'protected void Capture(', 'protected void CaptureLater(', 'protected void Observe(', 'protected void Sample(', 'protected void End(', 'void Cancel(', 'static void ClearWorld('))
run(r'''
#include <cassert>
@@ -33,10 +34,12 @@ struct vector {float x=0,y=0,z=0;float Length(){return std::sqrt(x*x+y*y+z*z);}s
namespace Math {float AbsFloat(float x){return std::abs(x);}}
namespace System {bool console=false;int now=0;std::map<string,string> cli;std::vector<string> shots;bool IsConsoleApp(){return console;}int GetTickCount(){return now;}bool GetCLIParam(string key,string& value){if(!cli.count(key))return false;value=cli[key];return true;}void MakeScreenshot(string path){shots.push_back(path);}}
namespace Replication {bool server=true;bool IsServer(){return server;}}
namespace ERR_Phase {enum {PRISON,PREPARING,DEFEAT};}
namespace ERR_Phase {enum {PREPARING=0,PRISON=1,RADIO_SEARCH=2,DEFEAT=6};}
namespace RplMode {enum {None,Listen,Dedicated};}namespace RplSession {int mode=RplMode::None;int Mode(){return mode;}}
struct BaseWorld {float time=0;float GetWorldTime(){return time;}};
struct CharacterControllerComponent {bool unconscious=false,disabled=false;vector input,velocity;bool IsUnconscious(){return unconscious;}bool GetDisableMovementControls(){return disabled;}vector GetMovementInput(){return input;}vector GetVelocity(){return velocity;}};
struct IEntity {BaseWorld* world=nullptr;CharacterControllerComponent* component=nullptr;bool conscious=true;vector origin;BaseWorld* GetWorld(){return world;}CharacterControllerComponent* FindComponent(int){return component;}vector GetOrigin(){return origin;}};
struct IEntity {BaseWorld* world=nullptr;CharacterControllerComponent* component=nullptr;bool conscious=true,vehicle=false;vector origin;BaseWorld* GetWorld(){return world;}CharacterControllerComponent* FindComponent(int){return component;}vector GetOrigin(){return origin;}};
namespace CompartmentAccessComponent {IEntity* GetVehicleIn(IEntity* actor){return actor->vehicle?actor:nullptr;}}
namespace ERR_Actors {bool CanFight(IEntity* actor){return actor&&actor->conscious;}}
struct PlayerController {int id=1;IEntity* actor=nullptr;int GetPlayerId(){return id;}IEntity* GetControlledEntity(){return actor;}};
struct ERR_PlayerLife {UUID AccountId="private-account";};
@@ -75,14 +78,14 @@ struct ERR_OrdinaryGateObserver {
struct ERR_OrdinaryInputObserver {
static ERR_OrdinaryInputObserver* s_Request;static bool s_Attempted;
ERR_GameMode* m_Mode=nullptr;BaseWorld* m_World=nullptr;PlayerController* m_Controller=nullptr;IEntity* m_Actor=nullptr;CharacterControllerComponent* m_Character=nullptr;ERR_PlayerLife* m_Life=nullptr;
UUID m_Account;int m_PlayerId=0;string m_Nonce;bool m_Screenshots=false,m_Finished=false,m_Ready=false,m_Opened=false,m_Closed=false;SCR_InventoryMenuUI* m_Menu=nullptr;
UUID m_Account;int m_PlayerId=0;string m_Nonce;bool m_HeldAction=false;int m_ObservedPhase=-1;bool m_Screenshots=false,m_Finished=false,m_Ready=false,m_Opened=false,m_Closed=false;SCR_InventoryMenuUI* m_Menu=nullptr;
string m_CaptureSuffix;SCR_InventoryMenuUI* m_CaptureMenu=nullptr;Widget* m_CaptureRoot=nullptr;int m_CaptureDue=0,m_CaptureExpires=0,m_CaptureLoadedAt=-1,m_InventoryStateLines=0;bool m_BaselineCaptureQueued=false,m_OpenCaptureQueued=false,m_ClosedCaptureQueued=false;
int m_Start=0,m_Previous=0,m_Samples=0,m_BaselineSince=-1;vector m_BaselineOrigin;float m_LastWorldTime=0;
'''+methods+r'''
};
ERR_OrdinaryInputObserver* ERR_OrdinaryInputObserver::s_Request=nullptr;bool ERR_OrdinaryInputObserver::s_Attempted=false;
struct Fixture {ERR_GameMode mode;BaseWorld world;PlayerController controller;IEntity actor;CharacterControllerComponent character;ERR_PlayerLife life;Widget widget;SCR_InventoryMenuUI menu;
Fixture(){game={};System::cli={{"errOrdinaryScenario","core"},{"errOrdinaryInputObserve","Run42"},{"errOrdinaryInputScreenshots","1"}};System::now=0;System::console=false;System::shots.clear();Replication::server=true;events.clear();inventoryStates.clear();inventoryReasons.clear();samples=0;ERR_OrdinaryInputObserver::s_Request=nullptr;ERR_OrdinaryInputObserver::s_Attempted=false;SCR_InventoryMenuUI::current=nullptr;ERR_GameMode::current=&mode;mode.world=&world;mode.roster.actor=&actor;mode.roster.life=&life;actor.world=&world;actor.component=&character;controller.actor=&actor;game.world=&world;game.controller=&controller;game.manager.controller=&controller;game.manager.actor=&actor;menu.character=&character;menu.root=&widget;}
Fixture(){game={};System::cli={{"errOrdinaryScenario","core"},{"errOrdinaryInputObserve","Run42"},{"errOrdinaryInputScreenshots","1"}};System::now=0;System::console=false;System::shots.clear();Replication::server=true;RplSession::mode=RplMode::None;events.clear();inventoryStates.clear();inventoryReasons.clear();samples=0;ERR_OrdinaryInputObserver::s_Request=nullptr;ERR_OrdinaryInputObserver::s_Attempted=false;SCR_InventoryMenuUI::current=nullptr;ERR_GameMode::current=&mode;mode.world=&world;mode.roster.actor=&actor;mode.roster.life=&life;actor.world=&world;actor.component=&character;controller.actor=&actor;game.world=&world;game.controller=&controller;game.manager.controller=&controller;game.manager.actor=&actor;menu.character=&character;menu.root=&widget;}
ERR_OrdinaryInputObserver* queue(){ERR_OrdinaryInputObserver::Queue(&mode,&controller,&actor);return ERR_OrdinaryInputObserver::s_Request;}
void sample(int ms){System::now=ms;world.time=ms;ERR_OrdinaryInputObserver::s_Request->Sample();}
void capture(int ms){System::now=ms;world.time=ms;ERR_OrdinaryInputObserver::s_Request->CaptureLater();}
@@ -92,6 +95,38 @@ struct Fixture {ERR_GameMode mode;BaseWorld world;PlayerController controller;IE
};
int count(string value){int n=0;for(auto event:events)if(event==value)n++;return n;}
int main(){
// Execute the actual shared option/phase rules and actual queued lifecycle.
for(int fault=0;fault<9;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42";
if(fault==0)System::cli["errOrdinaryHeldAction"]="foreign";
if(fault==1)System::cli.erase("errOrdinaryLookObserve");
if(fault==2)System::cli["errOrdinaryLookObserve"]="foreign";
if(fault==3)System::cli.erase("errOrdinaryGateObserve");
if(fault==4)System::cli["errOrdinaryGateObserve"]="foreign";
if(fault==5)f.mode.phase=ERR_Phase::RADIO_SEARCH;
if(fault==6)RplSession::mode=RplMode::Listen;
if(fault==7)RplSession::mode=RplMode::Dedicated;
if(fault==8)System::cli["errOrdinaryHeldAction"]="";
assert(!f.queue()&&game.queue.queued==0);assert(ERR_OrdinaryInputObserver::s_Attempted==(fault==5));
if(fault==5){f.mode.phase=ERR_Phase::PRISON;assert(!f.queue());}}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42";
auto p=f.queue();assert(p&&p->m_HeldAction&&p->m_ObservedPhase==ERR_Phase::PRISON);f.sample(100);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(200);f.sample(300);assert(samples==3&&!p->m_Finished&&p->m_ObservedPhase==ERR_Phase::RADIO_SEARCH&&p->m_Start==0);
f.mode.phase=ERR_Phase::PRISON;f.sample(400);assert(samples==3&&p->m_Finished);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(500);assert(samples==3);ERR_OrdinaryInputObserver::ClearWorld();assert(!f.queue());}
for(int fault=0;fault<10;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42";auto p=f.queue();f.sample(100);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(200);
if(fault==0)System::cli.erase("errOrdinaryHeldAction");
if(fault==1)System::cli["errOrdinaryGateObserve"]="foreign";
if(fault==2)f.open();
if(fault==3)f.actor.vehicle=true;
if(fault==4)f.life.AccountId="replacement";
if(fault==5)f.mode.phase=ERR_Phase::DEFEAT;
if(fault==6)f.character.unconscious=true;
if(fault==7)game.world=nullptr;
if(fault==8)game.manager.actor=nullptr;
if(fault==9)p->m_Samples=450;
f.sample(300);assert(p->m_Finished&&samples==2);}
{Fixture f;auto p=f.queue();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(100);assert(p->m_Finished&&samples==0);}
{Fixture f;auto p=f.queue();System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42";f.sample(100);assert(p->m_Finished&&samples==0);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42";auto p=f.queue();f.sample(100);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(44999);assert(samples==2&&p->m_Start==0);f.sample(45000);assert(samples==2&&p->m_Finished);}
assert(ERR_OrdinaryInputObserverRules::Nonce("aZ09"));for(string n:std::vector<string>{"","../bad","a-b","a_b","line\n","a b","$logs:x",string(33,'x')})assert(!ERR_OrdinaryInputObserverRules::Nonce(n));
assert(ERR_OrdinaryInputObserverRules::Within(0,44900,44999,449));assert(!ERR_OrdinaryInputObserverRules::Within(0,44900,45000,449));assert(!ERR_OrdinaryInputObserverRules::Within(0,100,99,2));assert(!ERR_OrdinaryInputObserverRules::Within(0,1,2,450));
for(int fault=0;fault<6;fault++){Fixture f;
+21 -6
View File
@@ -3,16 +3,18 @@ import re
from policy_harness import ROOT, body, run
P=ROOT/'addons/core/Scripts/Game/ERR/ERR_OrdinaryLookObserver.c'
def cpp(s):
s=s.replace('protected ', '')
s=s.replace('protected ', '').replace('out bool held', 'bool& held')
types=('ERR_GameMode','BaseWorld','PlayerController','IEntity','PlayerCamera','ERR_PlayerLife','PlayerManager','CameraManager')
for typ in types:s=re.sub(r'\b'+typ+r' (\w+)',typ+r'* \1',s)
for name in ('mode','world','controller','actor','manager','cameras','m_Mode','m_World','m_Controller','m_Actor','m_Camera','m_Life','s_Request'):
s=s.replace(name+'.',name+'->')
for scope in ('System','Replication','RplSession','RplMode','ERR_Phase','ERR_GameMode','ERR_Actors','ERR_OrdinaryInputObserverRules'):
for scope in ('System','Replication','RplSession','RplMode','ERR_Phase','ERR_GameMode','ERR_Actors','ERR_OrdinaryInputObserverRules','CompartmentAccessComponent'):
s=s.replace(scope+'.',scope+'::')
s=s.replace('GetGame().','GetGame()->').replace('Players().','Players()->').replace('GetInputManager().','GetInputManager()->').replace('GetMenuManager().','GetMenuManager()->')
s=s.replace('null','nullptr').replace('new ERR_OrdinaryLookObserver()', 'new ERR_OrdinaryLookObserver()')
s=s.replace('nonce.Length()', 'int(nonce.size())').replace('allowed.Contains(nonce[i])', '(allowed.find(nonce[i]) != string::npos)')
return s
shared='\n'.join(cpp(body(ROOT/'addons/core/Scripts/Game/ERR/ERR_OrdinaryInputObserver.c', signature)) for signature in ('static bool Nonce(', 'static bool HeldScope(', 'static bool PhaseAllowed('))
methods='\n'.join(cpp(body(P,signature)) for signature in (
'protected static bool Enabled(', 'static void Sample(', 'protected void Cancel(', 'protected bool Context(', 'protected static bool FiniteVector(', 'protected void Observe('))
run(r'''
@@ -26,7 +28,7 @@ using string=std::string;using UUID=string;
struct vector {float v[3]={0,0,0}; float& operator[](int i){return v[i];}float Length(){return std::sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);}vector operator/(float n){return {{v[0]/n,v[1]/n,v[2]/n}};}};
vector Vector(float a,float b,float c){return {{a,b,c}};}
struct BaseWorld {};
struct IEntity {BaseWorld* world=nullptr;bool living=true;vector origin=Vector(100,2,100);vector GetOrigin(){return origin;} vector matrix[4]={Vector(1,0,0),Vector(0,1,0),Vector(0,0,1),Vector(100,2,100)};BaseWorld* GetWorld(){return world;}void GetTransform(vector out[4]){for(int i=0;i<4;i++)out[i]=matrix[i];}};
struct IEntity {BaseWorld* world=nullptr;bool living=true,vehicle=false;vector origin=Vector(100,2,100);vector GetOrigin(){return origin;} vector matrix[4]={Vector(1,0,0),Vector(0,1,0),Vector(0,0,1),Vector(100,2,100)};BaseWorld* GetWorld(){return world;}void GetTransform(vector out[4]){for(int i=0;i<4;i++)out[i]=matrix[i];}};
struct CameraManager;
struct PlayerCamera:IEntity {CameraManager* replaceDuringRead=nullptr;void GetWorldCameraTransform(vector out[4]);};
struct CameraManager {PlayerCamera* current=nullptr;PlayerCamera* CurrentCamera(){return current;}};
@@ -35,7 +37,7 @@ struct PlayerController {int id=1;IEntity* actor=nullptr;PlayerCamera* camera=nu
struct PlayerManager {PlayerController* controller=nullptr;IEntity* actor=nullptr;PlayerController* GetPlayerController(int){return controller;}IEntity* GetPlayerControlledEntity(int){return actor;}};
struct ERR_PlayerLife {UUID AccountId="account";};
struct Roster {ERR_PlayerLife* life=nullptr;IEntity* actor=nullptr;ERR_PlayerLife* CurrentActor(IEntity* value){return value==actor?life:nullptr;}};
namespace ERR_Phase {enum {PRISON,EXTRACTION};}
namespace ERR_Phase {enum {PRISON=1,RADIO_SEARCH=2,EXTRACTION=4};}
struct ERR_GameMode {static ERR_GameMode* current;bool active=true;int phase=ERR_Phase::PRISON;BaseWorld* world=nullptr;Roster* roster=nullptr;static ERR_GameMode* Get(){return current;}bool Active(){return active;}int Phase(){return phase;}BaseWorld* GetWorld(){return world;}Roster* Players(){return roster;}};ERR_GameMode* ERR_GameMode::current=nullptr;
struct InputManager {float right=0,up=0;float GetActionValue(string name){return name=="CharacterTurnRight"?right:up;}};
struct MenuManager {bool open=false;void* GetTopMenu(){return open?this:nullptr;}};
@@ -43,7 +45,10 @@ struct Game {BaseWorld* world=nullptr;PlayerController* controller=nullptr;Playe
namespace System {bool console=false;std::map<string,string> cli;bool IsConsoleApp(){return console;}bool GetCLIParam(string key,string& value){if(!cli.count(key))return false;value=cli[key];return true;}}
namespace Replication {bool server=true;bool IsServer(){return server;}}
namespace RplMode {enum {None,Listen,Dedicated};}namespace RplSession {int mode=RplMode::None;int Mode(){return mode;}}
namespace ERR_OrdinaryInputObserverRules {bool Nonce(string n){return !n.empty()&&n.size()<=32&&n.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")==string::npos;}}
struct ERR_OrdinaryInputObserverRules {
'''+shared+r'''
};
namespace CompartmentAccessComponent {IEntity* GetVehicleIn(IEntity* actor){return actor->vehicle?actor:nullptr;}}
namespace ERR_Actors {bool CanFight(IEntity* actor){return actor&&actor->living;}}
int headers=0,samples=0,cancels=0;string reason;vector lastDirection,lastCamera,lastBody,lastFacing,lastTurn;
void PrintFormat(string,string,int,int){headers++;}
@@ -52,7 +57,7 @@ void PrintFormat(string,string,int,int,vector direction,vector camera,vector act
class ERR_OrdinaryLookObserver {public:
static ERR_OrdinaryLookObserver* s_Request;static bool s_Attempted;
ERR_GameMode* m_Mode=nullptr;BaseWorld* m_World=nullptr;PlayerController* m_Controller=nullptr;IEntity* m_Actor=nullptr;PlayerCamera* m_Camera=nullptr;ERR_PlayerLife* m_Life=nullptr;
UUID m_Account;string m_Nonce;int m_Start=0,m_Previous=0,m_Index=0;bool m_Stopped=false;
UUID m_Account;string m_Nonce;int m_Start=0,m_Previous=0,m_Index=0;bool m_Stopped=false,m_HeldAction=false;int m_ObservedPhase=-1;
'''+methods+r'''
};
ERR_OrdinaryLookObserver* ERR_OrdinaryLookObserver::s_Request=nullptr;bool ERR_OrdinaryLookObserver::s_Attempted=false;
@@ -61,6 +66,16 @@ struct Fixture {BaseWorld world,foreignWorld;ERR_GameMode mode;IEntity actor,oth
void sample(int index=1,int now=1100){ERR_OrdinaryLookObserver::Sample(&mode,&world,&controller,&actor,"Run42",1000,index,now);}
};
int main(){
// Held mode changes only admissible phase, never the original pins or clock.
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();auto p=ERR_OrdinaryLookObserver::s_Request;assert(p&&p->m_HeldAction&&p->m_ObservedPhase==ERR_Phase::PRISON);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);f.sample(3,1300);assert(samples==3&&!cancels&&p->m_Start==1000&&p->m_ObservedPhase==ERR_Phase::RADIO_SEARCH);f.mode.phase=ERR_Phase::PRISON;f.sample(4,1400);assert(samples==3&&cancels==1);f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(5,1500);assert(samples==3&&cancels==1);}
for(int fault=0;fault<5;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; if(fault==0)System::cli["errOrdinaryHeldAction"]="foreign";if(fault==1)System::cli.erase("errOrdinaryGateObserve");if(fault==2)System::cli["errOrdinaryGateObserve"]="foreign";if(fault==3)f.mode.phase=ERR_Phase::RADIO_SEARCH;if(fault==4)System::cli["errOrdinaryHeldAction"]="";f.sample();assert(!samples);f.mode.phase=ERR_Phase::PRISON;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample(2,1200);assert(!samples);}
for(int fault=0;fault<8;fault++){Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);assert(samples==2&&!cancels);if(fault==0)System::cli.erase("errOrdinaryHeldAction");if(fault==1)System::cli["errOrdinaryGateObserve"]="foreign";if(fault==2)f.actor.vehicle=true;if(fault==3)f.menus.open=true;if(fault==4)f.life.AccountId="replacement";if(fault==5)f.mode.phase=ERR_Phase::EXTRACTION;if(fault==6)f.players.actor=nullptr;if(fault==7)game.world=nullptr;f.sample(3,1300);assert(samples==2&&cancels==1);}
{Fixture f;f.sample();System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample(2,1200);assert(samples==1&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,45999);assert(samples==2);f.sample(3,46000);assert(samples==2&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(451,1200);assert(samples==1&&cancels==1);}
{Fixture f;System::cli["errOrdinaryHeldAction"]="Run42";System::cli["errOrdinaryLookObserve"]="Run42";System::cli["errOrdinaryGateObserve"]="Run42"; f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.controller.camera=&f.otherCamera;f.sample(2,1200);assert(samples==1&&cancels==1);}
{Fixture f;f.sample();f.mode.phase=ERR_Phase::RADIO_SEARCH;f.sample(2,1200);assert(samples==1&&cancels==1);}
{Fixture f;f.sample();assert(headers==1&&samples==1&&!cancels);assert(lastDirection[0]==1&&lastDirection[2]==0);assert(lastFacing[2]==1);assert(lastCamera[1]!=lastBody[1]);assert(lastTurn[0]==.25f&&lastTurn[1]==-.1f);f.sample(2,1200);assert(headers==1&&samples==2);}
{Fixture f;f.actor.origin=Vector(100.04,1.999,99.97);f.actor.matrix[3]=Vector(100,2,100);f.actor.matrix[2]=Vector(0,0,-1);f.sample();assert(samples==1&&!cancels);assert(lastBody[0]==f.actor.origin[0]&&lastBody[1]==f.actor.origin[1]&&lastBody[2]==f.actor.origin[2]);assert(lastBody[0]!=f.actor.matrix[3][0]);assert(lastFacing[2]==-1);assert(lastCamera[1]==f.camera.matrix[3][1]&&lastDirection[0]==1);}
for(int fault=0;fault<7;fault++){Fixture f;if(fault==0)System::cli.erase("errOrdinaryLookObserve");if(fault==1)System::cli["errOrdinaryLookObserve"]="foreign";if(fault==2)System::cli["errOrdinaryInputObserve"]="foreign";if(fault==3)System::console=true;if(fault==4)Replication::server=false;if(fault==5)RplSession::mode=RplMode::Listen;if(fault==6)System::cli["errOrdinaryScenario"]="other";f.sample();assert(!samples&&!headers&&!cancels&&!ERR_OrdinaryLookObserver::s_Attempted);}
+38
View File
@@ -79,4 +79,42 @@ class RouteEvidence(unittest.TestCase):
self.reject(lambda d,l,p:p['motions'].append({'dx':129,'dy':0,'monotonic':10.2,'after_sample':21,'response_sample':23}))
self.reject(lambda d,l,p:p['motions'].append({'dx':24,'dy':0,'monotonic':10.2,'after_sample':21,'response_sample':23}))
def test_coarse_profile_is_known_explicit_and_has_no_default_upgrade(self):
import math
def turn(d,l,p):
p['profile']='coarse'
angle=math.radians(155)
d['snapshots'][21]['look']['direction']=[math.sin(angle),0,math.cos(angle)]
p['motions']=[{'dx':300,'dy':0,'monotonic':10.1,'after_sample':21,'response_sample':23}]
self.assertTrue(self.run_case(turn)['verified'])
def fine(d,l,p):turn(d,l,p);p.pop('profile')
self.assertFalse(self.run_case(fine)['verified'])
for profile in ('unknown',True,None):self.reject(lambda d,l,p:p.update(profile=profile))
def overshoot(d,l,p):
turn(d,l,p);p['motions'][0]['response_sample']=24
angle=math.radians(191)
d['snapshots'][22]['look']['direction']=[math.sin(angle),0,math.cos(angle)]
self.reject(overshoot)
def excessive(d,l,p):turn(d,l,p);p['motions'][0]['dx']=385
self.reject(excessive)
def test_actual_coarse_policy_trace_passes_independent_raw_chain(self):
# Simulated dynamics exercise actual policy and every raw parser; no
# native runtime/input claim and no mocked evidence verdicts.
from test_prison_alignment_evidence import build, raw, ApproachScene
original = ApproachScene.run
with patch.object(ApproachScene, 'run', lambda scene: original(scene, profile='coarse')):
frames, look, route, _ = build()
self.assertEqual(route['profile'], 'coarse')
self.assertTrue(any(abs(m['dx']) > 128 for m in route['motions']))
result = v.validate_approach_evidence(raw(frames), 'test', look, route)
self.assertTrue(result['verified'], result)
route['profile'] = 'standard'
self.assertFalse(v.validate_approach_evidence(raw(frames), 'test', look, route)['verified'])
def test_coarse_does_not_expand_clocks_or_permit_action_keys(self):
for change in (lambda p:p.update(deadline_monotonic=100),lambda p:p['events'][1].update(monotonic=11),lambda p:p['events'][0].update(key='F')):
def mutate(d,l,p):p['profile']='coarse';change(p)
self.reject(mutate)
if __name__=='__main__':unittest.main()
+59 -4
View File
@@ -21,7 +21,7 @@ class Scene:
self.position=[98.5,0.,98.5];self.angle=0.;self.speed=0.;self.held=False
self.key_events=[];self.turns=[];self.notifications=[];self.focus=True
self.gain=.085;self.acceleration=8.;self.braking=8.;self.move_scale=1.
self.guard_cost=.22;self.ignore_turn=False;self.wrong_turn=False
self.coarse=False;self.guard_cost=.22;self.ignore_turn=False;self.wrong_turn=False
self.turn_delay=0.;self.pending_turns=[]
self.stale=False;self.no_movement=False;self.changed_geometry=False
self.context_lost=False;self.fail_down=False;self.coast_events=[]
@@ -64,7 +64,7 @@ class Scene:
self.held=down
if down and self.fail_down:raise OSError('uncertain native press')
def move(self,dx,dy,guard):
if dy != 0 or not 1<=abs(dx)<=128:raise AssertionError('motion cap')
if dy != 0 or not 1<=abs(dx)<=(384 if self.coarse else 128):raise AssertionError('motion cap')
guard.check();guard.check()
self.turns.append((dx,dy,self.now))
if not self.ignore_turn:
@@ -78,14 +78,15 @@ class Scene:
batch=[s for s in self.history if s['sample'] > self.last_read] or [self.sample]
self.last_read=batch[-1]['sample']
return copy.deepcopy(batch)
def run(self,report=None,calibration=None):
def run(self,report=None,calibration=None,profile="standard"):
self.coarse=profile=="coarse"
self.report={} if report is None else report
angle=math.radians(24*.085)
calibration=calibration or {'nonce':'test','completed':True,'pixels':24,
'baseline_direction':[0.,0.,1.], 'response_direction':[math.sin(angle),0.,math.cos(angle)],
'ready_real_ms':2000,'ready_monotonic':0.,'observer_start_real_ms':0}
return policy.perform_approach(self,self,self,self.observe,self.geometry,calibration,self.report,
clock=self.clock,sleep=self.sleep,notify=self.notifications.append,key_state_busy=Busy)
clock=self.clock,sleep=self.sleep,notify=self.notifications.append,key_state_busy=Busy,profile=profile)
class ApproachTests(unittest.TestCase):
@@ -325,5 +326,59 @@ class ApproachTests(unittest.TestCase):
self.assertEqual([event[1] for event in scene.key_events],[True,False])
self.assertFalse(proof['completed']);self.assertFalse(scene.held)
def test_explicit_coarse_profile_reduces_heading_requests_with_original_clocks(self):
fine=Scene();standard=fine.run()
coarse=Scene();result=coarse.run(profile='coarse')
self.assertEqual(standard['profile'],'standard');self.assertEqual(result['profile'],'coarse')
self.assertLess(len(coarse.turns),len(fine.turns));self.assertTrue(any(abs(dx)>128 for dx,_,_ in coarse.turns))
self.assertTrue(all(abs(dx)<=384 and dy==0 for dx,dy,_ in coarse.turns))
self.assertLessEqual(sum(abs(dx) for dx,_,_ in coarse.turns),2048)
self.assertLessEqual(len(coarse.turns),16);self.assertLessEqual(len(coarse.key_events)//2,16)
self.assertEqual(result['deadline_monotonic'],35);self.assertLess(coarse.now,35)
self.assertLessEqual(result['cumulative_horizontal_m'],6);self.assertFalse(coarse.coast_events)
self.assertTrue(all(key=='W' for key,_,_ in coarse.key_events))
def test_coarse_profile_never_hides_intermediate_native_overshoot(self):
scene=Scene()
def turn(dx,dy,guard):
guard.check();guard.check();scene.angle+=36;scene.sleep(.2);scene.angle-=11
scene.move=turn
with self.assertRaisesRegex(policy.Refused,'angle bound'):scene.run(profile='coarse')
self.assertEqual(scene.key_events,[])
def test_coarse_requires_known_profile_and_respects_focus_and_deadline(self):
for profile in ('other',True,None):
scene=Scene()
with self.assertRaisesRegex(policy.Refused,'Unknown approach profile'):scene.run(profile=profile)
self.assertEqual(scene.key_events,[]);self.assertEqual(scene.turns,[])
scene=Scene();scene.focus=False
with self.assertRaisesRegex(policy.Refused,'focus lost'):scene.run(profile='coarse')
self.assertEqual(scene.key_events,[])
scene=Scene();scene.now=35
with self.assertRaisesRegex(policy.Refused,'Insufficient'):scene.run(profile='coarse')
self.assertEqual(scene.key_events,[]);self.assertEqual(scene.turns,[])
def test_coarse_keeps_actual_hold_and_stopping_deadzone(self):
scene=Scene();original=scene.send
def slow(key,down):
original(key,down)
if down:scene.guard_cost=.41
scene.send=slow
with self.assertRaisesRegex(policy.Refused,'400ms'):scene.run(profile='coarse')
self.assertEqual([e[1] for e in scene.key_events],[True,False])
scene=Scene();scene.position=[102.7,0.,97.3];scene.angle=180.;scene.guard_cost=.33
scene.sample=scene.snapshot();scene.history=[copy.deepcopy(scene.sample)]
with self.assertRaisesRegex(policy.Refused,'measured stopping reserve'):scene.run(profile='coarse')
self.assertEqual([e[1] for e in scene.key_events],[True,False])
def test_coarse_has_exact_sixteen_pulse_cap_not_unbounded_retries(self):
scene=Scene();scene.guard_cost=.19
result=scene.run(profile='coarse')
self.assertTrue(result['completed']);self.assertEqual(len(scene.key_events),32)
self.assertLess(scene.now,35);self.assertFalse(scene.held)
scene=Scene();scene.guard_cost=.18
with self.assertRaisesRegex(policy.Refused,'pulse budget'):scene.run(profile='coarse')
self.assertEqual(len(scene.key_events),32);self.assertFalse(scene.held)
if __name__=='__main__':unittest.main()
+41
View File
@@ -295,4 +295,45 @@ class SelectionRunner(unittest.TestCase):
session,context,report,observation=fixtures.ExerciseTests.make_proof(self,Path(folder));report.update(payload);Path(context['report']).write_text(json.dumps(report))
outcome,proof=r.input_exercise_result('game-started',context,session,observation,{'verified':True});self.assertFalse(proof['verified'])
class CoarseApproachRunner(unittest.TestCase):
def test_coarse_explicit_command_flag_and_hash_bound_context(self):
with self.assertRaises(ValueError):r.validate_input_exercise(SimpleNamespace(exercise_prison_coarse_approach=True))
valid=dict(exercise_prison_coarse_approach=True,exercise_prison_approach=True,exercise_relative_look=True,observe_prison_gate=True,exercise_player_input=True,observe_player_input=True,inspect_headless_display=True,project='chat',settle=50)
r.validate_input_exercise(SimpleNamespace(**valid))
with tempfile.TemporaryDirectory() as folder:
root=Path(folder);(root/'tools').mkdir();profile=root/'profile';profile.mkdir()
for name in ('headless_input_proof.py','headless_display_probe.py','prison_approach_proof.py','ordinary_gate_evidence.py','ordinary_look_evidence.py','prison_approach_evidence.py'):(root/'tools'/name).write_text('# fake')
native=['gamescope','--backend','headless','--','/proton','run','/game','-errOrdinaryInputObserve',NONCE,'-errOrdinaryLookObserve',NONCE,'-errOrdinaryGateObserve',NONCE]
wrapped,display=r.display_probe_command(native,root,Path('/compat'),profile,Path('/game'),NONCE,':0');args=(wrapped,root,Path('/compat'),profile,Path('/game'),NONCE,':0',display)
ordinary,normal=r.input_exercise_command(*args,look=True,approach=True)
coarse,context=r.input_exercise_command(*args,look=True,approach=True,coarse_approach=True)
self.assertNotIn('--enable-private-coarse-approach-proof',ordinary);self.assertFalse(normal.get('coarse_approach_requested',False))
self.assertTrue(context['coarse_approach_requested']);self.assertEqual(context['approach_module_sha256'],normal['approach_module_sha256'])
coarse.remove('--enable-private-coarse-approach-proof');self.assertEqual(coarse,ordinary)
for kwargs in ({'look':True,'coarse_approach':True},{'look':True,'approach':True,'coarse_approach':1}):
with self.assertRaises(ValueError):r.input_exercise_command(*args,**kwargs)
def test_final_result_refuses_unrequested_coarse_or_profile_substitution(self):
for requested,reported,profile in ((False,True,'coarse'),(False,False,'coarse'),(True,False,'coarse'),(True,True,'standard'),(False,1,'standard'),(True,True,'unknown')):
with tempfile.TemporaryDirectory() as folder:
session,context,report,observation=fixtures.ExerciseTests.make_proof(self,Path(folder))
context.update(look_requested=True,approach_requested=True,coarse_approach_requested=requested,approach_module_sha256=r.approach_module_hashes(r.ROOT))
report.update(look_requested=True,approach_requested=True,coarse_approach_requested=reported,approach_module_sha256=context['approach_module_sha256'],look_proof={})
report['events']=report['events'][:2];report['observer']['events']=['READY'];report['approach_proof']={'profile':profile,'events':copy.deepcopy(report['events'])}
Path(context['report']).write_text(json.dumps(report))
result,proof=r.input_exercise_result('game-started',context,session,observation,{'verified':True})
self.assertFalse(proof['verified']);self.assertEqual(result,'input-exercise-incomplete')
def test_matching_coarse_proof_still_requires_independent_raw_validation(self):
for okay in (False,True):
with tempfile.TemporaryDirectory() as folder:
session,context,report,observation=fixtures.ExerciseTests.make_proof(self,Path(folder))
context.update(look_requested=True,approach_requested=True,coarse_approach_requested=True,approach_module_sha256=r.approach_module_hashes(r.ROOT))
report.update(look_requested=True,approach_requested=True,coarse_approach_requested=True,approach_module_sha256=context['approach_module_sha256'],look_proof={})
report['events']=[{'key':'W','down':i%2==0,'monotonic':1+i*.1} for i in range(32)];report['observer']['events']=['READY'];report['approach_proof']={'profile':'coarse','events':copy.deepcopy(report['events'])}
(session/'console.log').write_text('raw native');Path(context['report']).write_text(json.dumps(report))
module=ModuleType('prison_approach_evidence');module.validate_approach_evidence=lambda *a:{'verified':okay}
with patch.dict(sys.modules,{'prison_approach_evidence':module}):result,proof=r.input_exercise_result('game-started',context,session,observation,{'verified':True})
self.assertEqual(proof['verified'],okay)
if __name__=='__main__':unittest.main()
+1 -1
View File
@@ -59,7 +59,7 @@ def check():
assert set(mapped)==set(inventory['script_paths']), 'Original inventory has untracked or unknown entries'
print(f'PASS: {len(mapped)} original script entries tracked across {len(feature_ids)} unfinished responsibilities')
print(f'PASS: {len(ids)} isolated addons, acyclic dependencies, {len(resources)} unique resources, exact vanilla references')
for name in ['test_command_maintenance.py', 'test_aircraft_service.py', 'test_aircraft_service_cancel_runner.py', 'test_prison_action_selection_proof.py', 'test_prison_action_selection_evidence.py', 'test_ordinary_gate_choices.py', 'test_aircraft_control_bridge.py', 'test_prison_alignment_proof.py', 'test_prison_alignment_evidence.py', 'test_aircraft_route_demand.py', 'test_prison_approach_proof.py', 'test_prison_approach_evidence.py', 'test_ordinary_gate_evidence.py', 'test_ordinary_gate_observer.py', 'test_ordinary_look_observer.py', 'test_ordinary_look_evidence.py', 'test_relative_look_runner.py', 'test_radio_waiting_text.py', 'test_inventory_control_runner.py', 'test_inventory_layout.py', 'test_headless_input_proof.py', 'test_headless_input_exercise_runner.py', 'test_private_prefix_cleanup.py', 'test_runner_private_cleanup.py', 'test_ordinary_input_runner.py', 'test_ordinary_input_observer.py', 'test_aircraft_route_envelope.py', 'test_aircraft_route_policy.py', 'test_aircraft_route_probe.py', 'test_rough_intel_feedback.py', 'test_headless_display_probe.py', 'test_headless_display_runner.py', 'test_preparation_status.py', 'test_hint_delivery.py', 'test_native_end_lifecycle.py', 'test_native_end_runner.py', 'test_escape_result_wording.py', 'test_native_stats.py', 'test_aircraft_translation.py', 'test_spawn_retry_budget.py', 'test_action_feedback.py', 'test_native_aircraft_control.py', 'test_aircraft_flight_policy.py', 'test_aircraft_flight_envelope.py', 'test_ordinary_screenshot.py', 'test_participant_selection.py', 'test_native_shared_map_ownership.py', 'test_shared_map_ownership.py', 'test_intel_registration.py', 'test_mortar_activity_completion.py', 'test_packed_chat_game.py', 'test_native_mortar_refresh.py', 'test_archive_packed.py', 'test_mortar_refresh.py', 'test_packed_core_game.py', 'test_pak_inventory.py', 'test_native_mortar_salvo.py', 'test_spectator_guidance.py', 'test_native_package.py', 'test_item_station_teardown.py', 'test_source_bundle.py', 'test_native_flight_footprint.py', 'test_native_flight_input_diagnostics.py', 'test_mortar_logistics.py', 'test_mortar_courier_storage.py','test_powered_flight_pad.py','test_prison_escape_policy.py','test_powered_flight_policy.py','test_flight_action_runner.py','test_native_local_admission_probe.py','test_mortar_report_ledger.py','test_dedicated_native.py','test_native_mortar_transfer.py','test_mortar_aim_renewal.py','test_dedicated_preflight.py','test_mortar_transactions.py','test_native_mortar_probe.py','test_diagnostic_no_splash.py','test_casualty_incapacitation.py','test_casualty_remove_probe.py','test_extraction_placement_policy.py','test_guard_cancellation_policy.py','test_casualty_ground_policy.py','test_casualty_reservation_death.py','test_casualty_loading_policy.py','test_initial_guard_policy.py','test_headless_game_runner.py','test_vanilla_game_control.py','test_archive_game_control.py','test_site_discovery_policy.py','test_faction_catalog_scope.py','test_mission_rules.py','test_admin_setting_policy.py', 'test_player_admission_policy.py','test_progression_identity.py','test_discovery_map_position.py','test_local_admission.py','test_prison_placement_policy.py', 'test_recovery_policy.py','test_time_policy.py','test_environment_policy.py','test_environment_restart_runner.py', 'test_inventory_enumeration_policy.py','test_radio_defence_policy.py','test_radio_feedback_policy.py','test_performance_comparison.py','test_release_check.py','test_settings_migration.py','hq_network_regression.py','helicopter_availability_regression.py','mortar_salvo_regression.py']:
for name in ['test_aircraft_field_probe.py', 'test_aircraft_field_runner.py', 'test_aircraft_field_rules.py', 'test_aircraft_field_envelope.py', 'test_aircraft_field_flight.py', 'test_command_maintenance.py', 'test_aircraft_service.py', 'test_aircraft_service_cancel_runner.py', 'test_prison_action_selection_proof.py', 'test_prison_action_selection_evidence.py', 'test_ordinary_gate_choices.py', 'test_aircraft_control_bridge.py', 'test_prison_alignment_proof.py', 'test_prison_alignment_evidence.py', 'test_aircraft_route_demand.py', 'test_prison_approach_proof.py', 'test_prison_approach_evidence.py', 'test_ordinary_gate_evidence.py', 'test_ordinary_gate_observer.py', 'test_ordinary_look_observer.py', 'test_ordinary_look_evidence.py', 'test_relative_look_runner.py', 'test_radio_waiting_text.py', 'test_inventory_control_runner.py', 'test_inventory_layout.py', 'test_headless_input_proof.py', 'test_headless_input_exercise_runner.py', 'test_private_prefix_cleanup.py', 'test_runner_private_cleanup.py', 'test_ordinary_input_runner.py', 'test_ordinary_input_observer.py', 'test_aircraft_route_envelope.py', 'test_aircraft_route_policy.py', 'test_aircraft_route_probe.py', 'test_rough_intel_feedback.py', 'test_headless_display_probe.py', 'test_headless_display_runner.py', 'test_preparation_status.py', 'test_hint_delivery.py', 'test_native_end_lifecycle.py', 'test_native_end_runner.py', 'test_escape_result_wording.py', 'test_native_stats.py', 'test_aircraft_translation.py', 'test_spawn_retry_budget.py', 'test_action_feedback.py', 'test_native_aircraft_control.py', 'test_aircraft_flight_policy.py', 'test_aircraft_flight_envelope.py', 'test_ordinary_screenshot.py', 'test_participant_selection.py', 'test_native_shared_map_ownership.py', 'test_shared_map_ownership.py', 'test_intel_registration.py', 'test_mortar_activity_completion.py', 'test_packed_chat_game.py', 'test_native_mortar_refresh.py', 'test_archive_packed.py', 'test_mortar_refresh.py', 'test_packed_core_game.py', 'test_pak_inventory.py', 'test_native_mortar_salvo.py', 'test_spectator_guidance.py', 'test_native_package.py', 'test_item_station_teardown.py', 'test_source_bundle.py', 'test_native_flight_footprint.py', 'test_native_flight_input_diagnostics.py', 'test_mortar_logistics.py', 'test_mortar_courier_storage.py','test_powered_flight_pad.py','test_prison_escape_policy.py','test_powered_flight_policy.py','test_flight_action_runner.py','test_native_local_admission_probe.py','test_mortar_report_ledger.py','test_dedicated_native.py','test_native_mortar_transfer.py','test_mortar_aim_renewal.py','test_dedicated_preflight.py','test_mortar_transactions.py','test_native_mortar_probe.py','test_diagnostic_no_splash.py','test_casualty_incapacitation.py','test_casualty_remove_probe.py','test_extraction_placement_policy.py','test_guard_cancellation_policy.py','test_casualty_ground_policy.py','test_casualty_reservation_death.py','test_casualty_loading_policy.py','test_initial_guard_policy.py','test_headless_game_runner.py','test_vanilla_game_control.py','test_archive_game_control.py','test_site_discovery_policy.py','test_faction_catalog_scope.py','test_mission_rules.py','test_admin_setting_policy.py', 'test_player_admission_policy.py','test_progression_identity.py','test_discovery_map_position.py','test_local_admission.py','test_prison_placement_policy.py', 'test_recovery_policy.py','test_time_policy.py','test_environment_policy.py','test_environment_restart_runner.py', 'test_inventory_enumeration_policy.py','test_radio_defence_policy.py','test_radio_feedback_policy.py','test_performance_comparison.py','test_release_check.py','test_settings_migration.py','hq_network_regression.py','helicopter_availability_regression.py','mortar_salvo_regression.py']:
subprocess.run([sys.executable,str(ROOT/'tests'/name)],check=True)
print('All repository checks passed. Native compilation and multiplayer tests are separate requirements.')
if __name__=='__main__':check()
+18 -3
View File
@@ -641,6 +641,8 @@ def validate_input_exercise(a):
refuse('Prison action selection requires explicit alignment and native choices')
if getattr(a, 'observe_prison_choices', False) and getattr(a, 'exercise_player_input', False) and not getattr(a, 'exercise_prison_approach', False):
refuse('Input exercise with gate choices requires explicit approach')
if type(getattr(a, 'exercise_prison_coarse_approach', False)) is not bool or (getattr(a, 'exercise_prison_coarse_approach', False) and not getattr(a, 'exercise_prison_approach', False)):
refuse('Coarse approach requires explicit prison approach')
if getattr(a, 'exercise_prison_alignment', False) and not getattr(a, 'exercise_prison_approach', False):
refuse('Prison lock alignment requires the explicit prison approach experiment')
if getattr(a, 'approach_wide_display', False) and not getattr(a, 'exercise_prison_approach', False):
@@ -880,7 +882,7 @@ def selection_module_hashes(root):
return hashes
def input_exercise_command(command, root, compat, profile, executable, run_id, host_display, display_context, look=False, approach=False, alignment=False, selection=False):
def input_exercise_command(command, root, compat, profile, executable, run_id, host_display, display_context, look=False, approach=False, alignment=False, selection=False, coarse_approach=False):
"""Put the input supervisor around the display inspector, inside Gamescope."""
separator = command.index('--')
if command[:separator].count('--backend') != 1 or command[command.index('--backend')+1] != 'headless':
@@ -891,6 +893,8 @@ def input_exercise_command(command, root, compat, profile, executable, run_id, h
if (not display_context or len(child) < 3 or child[:2] != [sys.executable, str(ownership)]
or not re.fullmatch(r'[A-Za-z0-9]{1,32}', run_id)):
refuse('Input exercise requires the existing scoped display wrapper and observer nonce')
if type(coarse_approach) is not bool or (coarse_approach and not approach):
refuse('Coarse approach requires explicit approach')
if type(selection) is not bool or (selection and not alignment):
refuse('Action selection requires explicit alignment')
if type(alignment) is not bool or (alignment and not approach):
@@ -935,6 +939,9 @@ def input_exercise_command(command, root, compat, profile, executable, run_id, h
context['approach_requested'] = True
context['approach_module_sha256'] = approach_module_hashes(root)
wrapper.insert(-1, '--enable-private-approach-proof')
if coarse_approach:
context['coarse_approach_requested'] = True
wrapper.insert(-1, '--enable-private-coarse-approach-proof')
if alignment:
context['alignment_requested'] = True
context['alignment_module_sha256'] = alignment_module_hashes(root)
@@ -976,6 +983,8 @@ def input_exercise_poll_failure(context):
return None
if report.get('approach_requested', False) != context.get('approach_requested', False):
return None
if type(report.get('coarse_approach_requested', False)) is not bool or report.get('coarse_approach_requested', False) != context.get('coarse_approach_requested', False):
return False
if report.get('look_requested', False) != context.get('look_requested', False):
return False
return bool(report.get('error') or report.get('supervision_failed') is True or (
@@ -1044,6 +1053,11 @@ def input_exercise_result(result, context, session, observation, display_result)
refuse('Approach module sources changed or differ from launch hashes')
if not approach_requested and report.get('approach_proof') is not None:
refuse('Unexpected approach evidence in fixed input run')
coarse_approach_requested = context.get('coarse_approach_requested', False)
if type(coarse_approach_requested) is not bool or type(report.get('coarse_approach_requested', False)) is not bool or report.get('coarse_approach_requested', False) != coarse_approach_requested or (coarse_approach_requested and not approach_requested):
refuse('Coarse approach request does not match explicit launch context')
if approach_requested and report.get('approach_proof', {}).get('profile', 'standard') != ('coarse' if coarse_approach_requested else 'standard'):
refuse('Approach profile does not match explicit launch context')
look_requested = context.get('look_requested', False)
if type(report.get('look_requested', False)) is not bool or report.get('look_requested', False) != look_requested:
refuse('Relative look request does not match launch context')
@@ -1061,7 +1075,7 @@ def input_exercise_result(result, context, session, observation, display_result)
events = report.get('events', [])
expected = [('W', True), ('W', False), ('Tab', True), ('Tab', False), ('Tab', True), ('Tab', False)]
if approach_requested:
if not isinstance(events, list) or not 2 <= len(events) <= 24 or len(events)%2:
if not isinstance(events, list) or not 2 <= len(events) <= (32 if coarse_approach_requested else 24) or len(events)%2:
refuse('Prison approach requires bounded W pairs')
expected = [('W', i%2 == 0) for i in range(len(events))]
if (not isinstance(events, list) or len(events) != len(expected)
@@ -1198,7 +1212,7 @@ def run_locked(a, steam, compat, profile, packed=None):
command, display_context = display_probe_command(command, ROOT, compat, profile, executable, run_id, os.environ.get('DISPLAY', ''))
exercise_context = None
if getattr(a, 'exercise_player_input', False):
command, exercise_context = input_exercise_command(command, ROOT, compat, profile, executable, run_id, os.environ.get('DISPLAY', ''), display_context, getattr(a, 'exercise_relative_look', False), getattr(a, 'exercise_prison_approach', False), getattr(a, 'exercise_prison_alignment', False), getattr(a, 'exercise_prison_selection', False))
command, exercise_context = input_exercise_command(command, ROOT, compat, profile, executable, run_id, os.environ.get('DISPLAY', ''), display_context, getattr(a, 'exercise_relative_look', False), getattr(a, 'exercise_prison_approach', False), getattr(a, 'exercise_prison_alignment', False), getattr(a, 'exercise_prison_selection', False), getattr(a, 'exercise_prison_coarse_approach', False))
silent_sink = 'erri_game_'+run_id
application_id = 'org.escapistsrereintroduced.game.'+run_id
env = os.environ.copy()
@@ -1365,6 +1379,7 @@ def main():
parser.add_argument('--approach-wide-display', action='store_true', help='Use a disposable 2560x720 headless viewport for the explicit approach experiment; no physical display changes')
parser.add_argument('--exercise-prison-selection', action='store_true', help='Explicit facing and single wheel selection trial; requires alignment and native choice diagnostics; no F or gate operation')
parser.add_argument('--exercise-prison-alignment', action='store_true', help='Explicit stationary yaw-only alignment to native prison lock after verified approach; no F or gate operation')
parser.add_argument('--exercise-prison-coarse-approach', action='store_true', help='Explicit coarse stationary-heading approach profile; requires approach and retains original clocks; no F')
parser.add_argument('--exercise-prison-approach', action='store_true', help='Explicit bounded relative-mouse/W approach inside prison; requires relative look and gate observer; never operates gate')
parser.add_argument('--observe-prison-choices', action='store_true', help='Read-only native selected/ordered gate action diagnostics; requires --observe-prison-gate')
parser.add_argument('--observe-prison-gate', action='store_true', help='Read-only native registered prison lock/context/progress telemetry; requires --observe-player-input')
+17 -6
View File
@@ -50,6 +50,8 @@ def gate_options(native, args):
if any(value not in {'-errOrdinaryGateObserve', '-errOrdinaryGateChoices'} for value in tokens):
raise Refused('Unknown native gate observer option')
approach = getattr(args, 'enable_private_approach_proof', False)
if getattr(args, 'enable_private_coarse_approach_proof', False) and not approach:
raise Refused('Coarse approach requires explicit approach proof')
if getattr(args, 'enable_private_selection_proof', False) and '-errOrdinaryGateChoices' not in tokens:
raise Refused('Selection requires matching native gate choices')
if approach and '-errOrdinaryGateObserve' not in tokens:
@@ -134,7 +136,10 @@ def yaw_delta(first, second):
class RelativeMouse:
def __init__(self, query, keyboard, owner, enable_approach=False, enable_alignment=False):
def __init__(self, query, keyboard, owner, enable_approach=False, enable_alignment=False, enable_coarse_approach=False):
if type(enable_coarse_approach) is not bool or (enable_coarse_approach and not enable_approach):
raise Refused("Coarse approach requires explicit approach capability")
self.enable_coarse_approach = enable_coarse_approach
self.query, self.keyboard, self.owner = query, keyboard, owner
self.enable_approach = enable_approach
self.enable_alignment = enable_alignment
@@ -173,7 +178,7 @@ class RelativeMouse:
self._move(dx, dy, guard)
def approach_move(self, dx, dy, guard, *, deadline, clock=time.monotonic):
if (self.enable_approach is not True or type(dx) is not int or not 1 <= abs(dx) <= 128
if (self.enable_approach is not True or type(dx) is not int or not 1 <= abs(dx) <= (384 if self.enable_coarse_approach else 128)
or type(dy) is not int or dy != 0):
raise Refused('Unsupported or unenabled approach relative step')
def within_lease():
@@ -590,7 +595,9 @@ def confirm_release(guard, keyboard, report, key, clock=time.monotonic, sleep=ti
observation['end'] = clock()
def sequence(guard, keyboard, observer, report, clock=time.monotonic, sleep=time.sleep, mouse=None, approach=False, alignment=False, selection=False):
def sequence(guard, keyboard, observer, report, clock=time.monotonic, sleep=time.sleep, mouse=None, approach=False, alignment=False, selection=False, coarse_approach=False):
if type(coarse_approach) is not bool or (coarse_approach and not approach) or report.get("coarse_approach_requested", False) is not coarse_approach:
raise Refused("Coarse approach requires matching explicit capability")
deadline = clock() + 70
held = None
approach_completed = False
@@ -764,7 +771,7 @@ def run_approach(guard, keyboard, observer, mouse, report, clock, sleep):
deadline = observer.ready_at + 35
perform_approach(guard, ApproachKeyboard(keyboard, report, clock, deadline), ApproachMouse(mouse, report, clock, deadline),
observer.approach_snapshots, geometry, calibration, report,
clock=clock, sleep=sleep, notify=route_notify, key_state_busy=KeyStateBusy)
clock=clock, sleep=sleep, notify=route_notify, key_state_busy=KeyStateBusy, profile="coarse" if report.get("coarse_approach_requested", False) else "standard")
if not report.get('approach_proof', {}).get('completed'):
raise Refused('Approach module did not complete')
@@ -986,6 +993,7 @@ def arguments(argv=None):
p.add_argument('--enable-private-selection-proof', action='store_true', help='After facing, try one button5 wheel selection; never perform the action')
p.add_argument('--enable-private-look-proof', action='store_true')
p.add_argument('--enable-private-alignment-proof', action='store_true', help='After successful approach, attempt stationary native lock selection using horizontal relative mouse only')
p.add_argument('--enable-private-coarse-approach-proof', action='store_true', help='Explicit larger stationary-yaw profile; requires approach, original clocks unchanged')
p.add_argument('--enable-private-approach-proof', action='store_true', help='After look calibration, replace W/Tab cycle with bounded interior approach only')
for name in ('prefix', 'game-executable', 'profile', 'report'):
p.add_argument('--' + name, type=Path, required=True)
@@ -994,6 +1002,8 @@ def arguments(argv=None):
p.add_argument('--nonce', required=True)
p.add_argument('command', nargs=argparse.REMAINDER)
args = p.parse_args(argv)
if args.enable_private_coarse_approach_proof and not args.enable_private_approach_proof:
p.error('Coarse approach proof requires explicit approach proof')
if args.enable_private_selection_proof and not (args.enable_private_alignment_proof and args.enable_private_approach_proof and args.enable_private_look_proof):
p.error('Selection proof requires explicit alignment, approach and look proof')
if args.enable_private_alignment_proof and not (args.enable_private_approach_proof and args.enable_private_look_proof):
@@ -1102,6 +1112,7 @@ def main(argv=None):
bound = display.binding(args.host_display, args.prefix)
report = {'schema': 1, 'kind': 'headless-private-keyboard-experiment', 'input_sent': False,
'look_requested': args.enable_private_look_proof,
'coarse_approach_requested': getattr(args, 'enable_private_coarse_approach_proof', False),
'approach_requested': getattr(args, 'enable_private_approach_proof', False),
'alignment_requested': getattr(args, 'enable_private_alignment_proof', False),
'selection_requested': getattr(args, 'enable_private_selection_proof', False),
@@ -1187,8 +1198,8 @@ def main(argv=None):
guard.check()
keyboard = Keyboard(query)
keyboard.require_idle()
mouse = RelativeMouse(query, keyboard, owner, enable_approach=getattr(args, "enable_private_approach_proof", False), enable_alignment=getattr(args, "enable_private_alignment_proof", False)) if args.enable_private_look_proof else None
sequence(guard, keyboard, observer, report, mouse=mouse, approach=getattr(args, "enable_private_approach_proof", False), alignment=getattr(args, "enable_private_alignment_proof", False), selection=getattr(args, "enable_private_selection_proof", False))
mouse = RelativeMouse(query, keyboard, owner, enable_approach=getattr(args, "enable_private_approach_proof", False), enable_alignment=getattr(args, "enable_private_alignment_proof", False), enable_coarse_approach=getattr(args, "enable_private_coarse_approach_proof", False)) if args.enable_private_look_proof else None
sequence(guard, keyboard, observer, report, mouse=mouse, approach=getattr(args, "enable_private_approach_proof", False), alignment=getattr(args, "enable_private_alignment_proof", False), selection=getattr(args, "enable_private_selection_proof", False), coarse_approach=getattr(args, "enable_private_coarse_approach_proof", False))
except (OSError, ValueError, UnicodeError, subprocess.SubprocessError) as error:
report['error'] = str(error)
finally:
+5 -2
View File
@@ -12,7 +12,8 @@ p = argparse.ArgumentParser(description=__doc__)
p.add_argument('--steam', type=Path, default=Path.home()/'.local/share/Steam')
p.add_argument('--compat', type=Path, required=True, help='Disposable cloned Proton compatdata directory outside Steam')
p.add_argument('--profile', type=Path, required=True, help='Separate disposable successor Workbench profile')
p.add_argument('--smoke', choices=['aircraft-route', 'native-end-active', 'native-end-preparing', 'aircraft-control', 'aircraft-cancel', 'aircraft-translate', 'map-ownership', 'mortar-refresh', 'mortar-salvo', 'mortar-courier', 'station-teardown', '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'], default='victory')
p.add_argument('--smoke', choices=['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', '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'], default='victory')
p.add_argument('--field-service-cancel', action='store_true', help='Explicit aircraft-field variant: Stop the original retained service during measured cruise; requires physical cancellation landing')
p.add_argument('--route-service-cancel', action='store_true', help='Explicit aircraft-route variant: stop the retained service after actual airborne translation and require controlled cancellation landing')
p.add_argument('--station-teardown-diagnostics', action='store_true', help='Opt-in bounded native deletion diagnostics; preserves all validation errors')
p.add_argument('--flight-autohover', action='store_true', help='Opt-in owned native helicopter autohover experiment; requires Core powered-flight and actor-local action inputs')
@@ -25,12 +26,13 @@ a = p.parse_args()
steam, compat, profile = a.steam.resolve(), a.compat.resolve(), a.profile.resolve()
if not 1 <= a.rounds <= 10 or not 60 <= a.timeout <= 1800:
p.error('Use 1..10 rounds and a 60..1800 second timeout')
if a.field_service_cancel and a.smoke != 'aircraft-field': p.error('--field-service-cancel requires --smoke aircraft-field')
if a.route_service_cancel and a.smoke != 'aircraft-route': p.error('--route-service-cancel requires --smoke aircraft-route')
if a.smoke == 'mortar-courier' and (a.project != 'chat' or a.rounds != 1 or a.timeout < 500):
p.error('mortar-courier requires --project chat --rounds 1 --timeout at least 500')
if a.smoke in {'mortar-refresh', 'mortar-salvo', 'mortar-expiry', 'mortar-transfer', 'mortar-fire'} and (a.project != 'chat' or a.rounds != 1 or a.timeout < 400):
p.error('mortar-refresh/mortar-salvo/mortar-expiry/mortar-transfer/mortar-fire requires --project chat --rounds 1 --timeout at least 400')
if a.smoke in {'aircraft-route', 'aircraft-control', 'aircraft-cancel', 'aircraft-translate'} and (a.project != 'chat' or a.rounds != 1 or a.timeout < 420): p.error('aircraft-route/aircraft-control/aircraft-cancel/aircraft-translate requires Chat, one round, and at least 420 seconds')
if a.smoke in {'aircraft-field', 'aircraft-route', 'aircraft-control', 'aircraft-cancel', 'aircraft-translate'} and (a.project != 'chat' or a.rounds != 1 or a.timeout < 420): p.error('aircraft-field/aircraft-route/aircraft-control/aircraft-cancel/aircraft-translate requires Chat, one round, and at least 420 seconds')
if a.smoke == 'map-ownership' and (a.project != 'chat' or a.rounds != 1 or a.timeout < 180): p.error('map-ownership requires Chat, one round, and at least 180 seconds')
if a.smoke == 'powered-translate' and (a.project != 'core' or not a.flight_action_inputs or not a.flight_autohover): p.error('powered-translate requires Core with flight-action-inputs and flight-autohover')
if a.flight_autohover and (a.project != 'core' or a.smoke not in {'powered-flight', 'powered-translate'} or not a.flight_action_inputs): p.error('flight-autohover requires Core powered-flight with flight-action-inputs')
@@ -78,6 +80,7 @@ for proc in Path('/proc').iterdir():
p.error('Another Workbench already uses this test profile')
except (FileNotFoundError, PermissionError, ProcessLookupError): pass
command = ['gamescope', '--backend', 'headless', '-W', '1280', '-H', '720', '-w', '1280', '-h', '720', '-r', '30', '--', str(proton), 'run', str(wb/'ArmaReforgerWorkbenchSteamDiag.exe'), '-gproj', 'Z:'+str(ROOT/'addons'/a.project/'addon.gproj'), '-addonsDir', 'Z:'+str(ROOT/'addons'), '-profile', profile_arg, '-logconsole', '-wbModule=WorldEditor', '-load', 'Worlds/ERR_Everon.ent', '-plugin=ERR_ValidateWorldPlugin', '-errPlay', '1', '-errSmoke', '1', '-errSmokeOutcome', a.smoke, '-noThrow', '-disableCrashReporter']
if a.field_service_cancel: command += ['-errSmokeFieldServiceCancel', '1']
if a.route_service_cancel: command += ['-errSmokeRouteServiceCancel', '1']
if a.station_teardown_diagnostics: command += ['-errStationTeardownDiag', '1']
if a.flight_input_diagnostics: command += ['-errFlightInputDiag', '1']
+8 -4
View File
@@ -40,10 +40,14 @@ def validate_approach_evidence(content, nonce, look_proof, proof):
try:
need(type(proof) is dict and proof.get('requested') is True and proof.get('completed') is True and proof.get('nonce')==nonce, 'approach did not complete under this nonce')
need(not proof.get('error') and proof.get('paired_release_errors')==[] and proof.get('unconfirmed_held_key') is None, 'approach input did not end cleanly')
profile=proof.get('profile','standard')
need(type(profile) is str and profile in ('standard','coarse'), 'unknown approach profile')
max_pixels,max_angle,max_pulses=(384,35,16) if profile=='coarse' else (128,15,12)
result['profile']=profile
start=number(proof['started_monotonic']); finish=number(proof['finished_monotonic']); deadline=number(proof['deadline_monotonic'])
need(0 <= start < finish <= deadline and deadline-start <= 35, 'approach helper deadline invalid')
events=proof['events']; stops=proof['stops']; motions=proof['motions']; references=proof['samples']
need(type(events) is list and 2 <= len(events) <= 24 and len(events)%2==0, 'expected bounded W key pairs')
need(type(events) is list and 2 <= len(events) <= 2*max_pulses and len(events)%2==0, 'expected bounded W key pairs')
need(type(stops) is list and len(stops)*2==len(events), 'each W pair needs a native full-stop interval')
need(type(motions) is list and len(motions)<=16 and type(references) is list and 2 <= len(references) <= 450, 'route reference bounds invalid')
ids=[r['sample'] for r in references]
@@ -110,16 +114,16 @@ def validate_approach_evidence(content, nonce, look_proof, proof):
need(.01<=abs(gain)<=.5, 'native calibration gain outside approach range')
for motion in motions:
before,after=motion['after_sample'],motion['response_sample']; dx=motion['dx'];at=number(motion['monotonic'])
need(type(dx) is int and 1<=abs(dx)<=128 and type(motion['dy']) is int and motion['dy']==0,'relative step exceeds route bounds')
need(type(dx) is int and 1<=abs(dx)<=max_pixels and type(motion['dy']) is int and motion['dy']==0,'relative step exceeds route bounds')
need(type(before) is int and type(after) is int and previous_motion<=before<after<=last and start<=at<=finish,'relative motion references/order invalid')
need(previous_motion_time<=at and before in receipts and after in receipts and receipts[before]<=at<=receipts[after] and at-receipts[before]<=.5, 'relative motion timestamps contradict native receipts')
previous_motion_time=at
a,b=samples[before],samples[after];change=angle(yaw(b['look']['direction']),yaw(a['look']['direction']))
need(.05<=abs(change)<=15 and change*dx*gain>0,'native turn did not acknowledge proposal')
need(.05<=abs(change)<=max_angle and change*dx*gain>0,'native turn did not acknowledge proposal')
for i in range(before,after+1):
need(neutral(samples[i]) and horizontal(samples[i]['input']['origin'],a['input']['origin'])<=.05,'body moved during heading correction')
turn=angle(yaw(samples[i]['look']['direction']),yaw(a['look']['direction']))
need(abs(turn)<=15 and (abs(turn)<.05 or turn*dx*gain>0), 'intermediate native turn exceeded bounds or reversed')
need(abs(turn)<=max_angle and (abs(turn)<.05 or turn*dx*gain>0), 'intermediate native turn exceeded bounds or reversed')
stable_end(after);pixels+=abs(dx);previous_motion=after
need(all(not (events[i]['monotonic'] <= m['monotonic'] <= events[i+1]['monotonic']) for m in motions for i in range(0,len(events),2)), 'mouse motion overlaps W hold')
need(pixels<=2048,'relative pixel sum exceeds route bound')
+12 -9
View File
@@ -16,7 +16,8 @@ Adapter contract (all records must be parsed from the same pinned console/nonce)
* guard.check() is the existing full private ownership/focus guard. keyboard has
require_idle()/send('W', bool). mouse.move(dx,0,guard) must use the same guarded
connection and current/projected clipped pointer checks, explicitly permitting
this variant's <=128px cap. Existing two-motion helper remains unchanged.
the explicitly selected standard128px or coarse384px cap. Existing two-motion
helper remains unchanged; profile choice never changes the observation clocks.
* notify receives the existing press-pending/release-confirmed events, plus
approach-pending (absolute monotonic deadline)/approach-finished. The wiring
MUST hard-supervise that deadline and the unchanged 1.5-second key lease.
@@ -91,8 +92,10 @@ def inside(position, center):
return abs(position[0]-center[0]) <= 5.25 and abs(position[2]-center[2]) <= 5.25
def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, report, *, clock, sleep, notify, key_state_busy):
def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, report, *, clock, sleep, notify, key_state_busy, profile="standard"):
"""Run one bounded route through explicit adapters; retain partial failure evidence."""
require(profile in ('standard', 'coarse') and type(profile) is str, 'Unknown approach profile')
max_pixels, max_angle, desired_angle, max_pulses = (384, 35, 25, 16) if profile == 'coarse' else (128, 15, 10, 12)
require('approach_proof' not in report, 'Approach attempt already exists')
pinned = copy.deepcopy(geometry)
target, center = target_for(pinned)
@@ -105,7 +108,7 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
require(0 <= ready_at <= clock(), 'Invalid original READY monotonic time')
deadline = ready_at+35
require(clock() < deadline, 'Insufficient original approach time')
state = {'requested': True, 'completed': False, 'nonce': pinned['nonce'], 'geometry': pinned,
state = {'profile': profile, 'requested': True, 'completed': False, 'nonce': pinned['nonce'], 'geometry': pinned,
'target': list(target), 'deadline_monotonic': deadline, 'started_monotonic': clock(),
'finished_monotonic': None, 'motions': [], 'events': [], 'stops': [],
'samples': [], 'cumulative_horizontal_m': 0., 'unconfirmed_held_key': None,
@@ -132,7 +135,7 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
if active_turn is not None:
turn_yaw, turn_origin, turn_sign = active_turn
change = delta(yaw(s['direction']), turn_yaw)
require(abs(change) <= 15, 'Relative turn exceeded native angle bound')
require(abs(change) <= max_angle, 'Relative turn exceeded native angle bound')
require(horizontal(s['origin'], turn_origin) <= .05, 'Body translated during stationary heading')
if abs(change) >= .05:
require(change*turn_sign > 0, 'Native heading turned opposite to proposal')
@@ -173,7 +176,7 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
moved = moved_from is None or horizontal(s['origin'], moved_from) >= .05
if angle is not None:
change = delta(yaw(s['direction']), angle)
require(abs(change) <= 15, 'Relative turn exceeded native angle bound')
require(abs(change) <= max_angle, 'Relative turn exceeded native angle bound')
if abs(change) >= .05:
require(change*turn_sign > 0, 'Native heading turned opposite to proposal')
moved = moved and abs(change) >= .05
@@ -183,7 +186,7 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
elif s['real_ms']-first['real_ms'] >= 100:
if abs(delta(yaw(s['direction']), yaw(first['direction']))) <= .2 and horizontal(s['origin'], first['origin']) <= .02:
if angle is not None:
require(abs(delta(yaw(s['direction']), angle)) <= 15, 'Relative turn exceeded native angle bound')
require(abs(delta(yaw(s['direction']), angle)) <= max_angle, 'Relative turn exceeded native angle bound')
require(clock() <= end, 'Settling exceeded original stage deadline')
return s
first = s
@@ -202,8 +205,8 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
if abs(error) <= 3:
return s
require(clock() < end and turn_count < 16, 'Heading request budget exceeded')
desired = max(-10., min(10., .75*error))
dx = int(round(desired/gain)); dx = max(-128, min(128, dx))
desired = max(-desired_angle, min(desired_angle, .75*error))
dx = int(round(desired/gain)); dx = max(-max_pixels, min(max_pixels, dx))
if dx == 0: dx = 1 if desired/gain > 0 else -1
require(pixels+abs(dx) <= 2048, 'Relative pixel budget exceeded')
before = read(); require(neutral(before), 'Body moved before turn')
@@ -278,7 +281,7 @@ def perform_approach(guard, keyboard, mouse, observe, geometry, calibration, rep
require(.75 < initial_distance <= 6, 'Initial approach distance outside route scope')
while horizontal(current['origin'], target) > .75:
current = heading(current)
require(pulse_count < 12, 'Forward pulse budget exceeded')
require(pulse_count < max_pulses, 'Forward pulse budget exceeded')
remaining = horizontal(current['origin'], target)
reserve = (largest_stop if largest_stop is not None else 1.25)+.25
require(remaining > reserve, 'Insufficient distance for measured stopping reserve')