Capture current mission, AI, map and administration development

Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
2026-10-13 22:52:53 +02:00
parent a951a96edc
commit 6a667d8deb
8104 changed files with 2124945 additions and 2061 deletions
@@ -0,0 +1,65 @@
{
"complete": true,
"attribution": "Prior04:30:22.686 error remains unassigned; source mechanisms identified, no observed zero input bound to caller.",
"installed_sdk_binding": [
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt",
"sha256": "23af0dbdf6b5aec5f13117777bd2211a41d2684a975b16141a809cd2f0f04a69",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt",
"sha256": "8626168e0d8ff2d268ed7591bf2a7a184bbf7aee390e2ce98ddb642463556abd",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICalculateNextCombatMovePos.c",
"sha256": "636fbef514e676d8bf45be87646bfb1ef38ddbf0e30c5fea0377bc696d5c5476",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveRequest.c",
"sha256": "5b515efdf00ec350bc6ca84fd1a206a2575a56b423481b81b99097b8fe585121",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveUtils.c",
"sha256": "9a03c635de86675e3cc4b834496a9351c37c9bafe497c63c51c1c78999afb700",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomLookPosition.c",
"sha256": "cd2e0a6871ba32541b28aae2f17b5d1139e2c29b0ea25ccadd022838a1c490f5",
"local_same": true
}
],
"combat": {
"path": "scripts/Game/AI/Movement/SCR_AICalculateNextCombatMovePos.c:38\u201355",
"formula": "maxRadius=0.1*m_fMoveDuration_s*GetEstimatedMoveSpeed(request)",
"zero_condition": "CUSTOM_POS bypasses randomizer. Estimated speed is always5.5(character) or10(other/default), so zero duration reaches zero radius. No positive-radius validation in RandomizeDestinationPos.",
"producer_evidence": "Ordinary attack/avoid/grenade/incoming-vehicle/threat/moving-commander producers inspected assign positive durations. Attack.PushRequestLeaveUselessCover leaves default duration0, but sets TryFindCover and FailIfNoCover=true: installed CombatMoveRequest_Move.bt returns FAIL on missing cover rather than fallback randomizer. This default alone does not establish a live failing path."
},
"look": {
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomLookPosition.c:23\u201325",
"formula": "maxRadius=Distance(controlledEntity.GetOrigin(),InPos)*m_fTangent",
"zero_condition": "Coincident origin/InPos or tangent0; no positive-radius validation.",
"installed_tree": "AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt explicitly sets tangent0.7; reached by Attack_Default.bt and ObserveThreatSystemBehavior.bt. The observation tree receives CurrentPos from SCR_AILookAtThreatSystemLogic, which copies threat-filter sector position; no equality guard. Actual coincident runtime inputs are unobserved."
},
"successor": "Search of all successor addon files found no SCR_AICombatMove request/field setter, combat/look node override, tangent setter or direct GenerateRandomPointInRadius invocation. Existing individual moves/group waypoints are not evidence of a zero combat/look input.",
"scope": "Read-only source/installedPAK inspection. Selected installed scripts exactly match localSDK hashes. No successor/original writes, tests, native or compiler; no global patch recommended.",
"source_hashes": {
"/tmp/erri-vanilla-stock/scripts/Game/AI/Movement/SCR_AICalculateNextCombatMovePos.c": "636fbef514e676d8bf45be87646bfb1ef38ddbf0e30c5fea0377bc696d5c5476",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Movement/SCR_AICombatMoveUtils.c": "9a03c635de86675e3cc4b834496a9351c37c9bafe497c63c51c1c78999afb700",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Movement/SCR_AICombatMoveRequest.c": "5b515efdf00ec350bc6ca84fd1a206a2575a56b423481b81b99097b8fe585121",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Movement/SCR_AICombatMoveLogic_Attack.c": "9bb2b90a3e80765913eb701f685ef3a02bfb17c4553ce9af018dc78e6d3dd518",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Movement/SCR_AICombatMoveLogic_MovingCommander.c": "ecafa289c5c48591e244d52275e42144aaccf5a5cc91c53eddd9a79af83a0292",
"/tmp/erri-vanilla-stock/scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomLookPosition.c": "cd2e0a6871ba32541b28aae2f17b5d1139e2c29b0ea25ccadd022838a1c490f5",
"/tmp/erri-vanilla-stock/scripts/Game/AI/Behavior/SCR_AILookAtThreatSystemLogic.c": "4ae9a9a218d8d65fe014f2b417097338efd2de12517c3fe2d145e15e69f934ec"
}
}
@@ -0,0 +1,20 @@
[
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomPointWithExclude.c",
"sha256": "978eda9adc1721978ab9d952cd24f458ae213661216d9b541c3439d5322c65d0",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/Camera/Shake/SCR_RecoilCameraShakeParams.c",
"sha256": "81c78fd6de3e3d1f4031b589918b002fd0d4ef1673a6287ad7249b2c236aef8c",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/generated/AI/Node.c",
"sha256": "d5d3eea4e72d8a8978257009f8b3408628c26c0dd7c406a1fe86fafdaaedc789",
"local_same": true
}
]
@@ -0,0 +1,38 @@
[
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt",
"sha256": "23af0dbdf6b5aec5f13117777bd2211a41d2684a975b16141a809cd2f0f04a69",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt",
"sha256": "8626168e0d8ff2d268ed7591bf2a7a184bbf7aee390e2ce98ddb642463556abd",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICalculateNextCombatMovePos.c",
"sha256": "636fbef514e676d8bf45be87646bfb1ef38ddbf0e30c5fea0377bc696d5c5476",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveRequest.c",
"sha256": "5b515efdf00ec350bc6ca84fd1a206a2575a56b423481b81b99097b8fe585121",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveUtils.c",
"sha256": "9a03c635de86675e3cc4b834496a9351c37c9bafe497c63c51c1c78999afb700",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomLookPosition.c",
"sha256": "cd2e0a6871ba32541b28aae2f17b5d1139e2c29b0ea25ccadd022838a1c490f5",
"local_same": true
}
]
@@ -0,0 +1,14 @@
[
{
"path": "AI/BehaviorTrees/Chimera/Soldier/Attack_Default.bt",
"sha256": "bbb313835ae90673f694abf5a1fc447eed99b06804c35f16f2d3d57c627d3bce"
},
{
"path": "AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt",
"sha256": "8626168e0d8ff2d268ed7591bf2a7a184bbf7aee390e2ce98ddb642463556abd"
},
{
"path": "AI/BehaviorTrees/Chimera/Soldier/ObserveThreatSystemBehavior.bt",
"sha256": "62a326bf5f2d609e95183269582fe058321e6097bc9ea4f88fcd59cd7a37fd55"
}
]
@@ -0,0 +1,14 @@
{
"source": "/tmp/erri-random-radius-source-0504/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c",
"sha256": "e250ccffe96829d6867c67e563529df34435cb57e111f7645ee1ed9911e195bd",
"approved": true,
"scope": "Read-only source/API pass, no native/compilers. Actual-method test owned independent testauthor.",
"findings": [
"Override arguments/access match exact installed combat/look SDK.",
"Each wrapper calls superclass once and returns its exact result; no random sampling, movement/waypoint or return/output replacement.",
"Extra random-look reads only behind cached explicit CLI opt-in and shared16-sample cap.",
"Point wrapper logs actual superclass-updated fields only afterSUCCESS; absence oftrace cannot exclude failure-aborted calls or other randomizer callers.",
"WORKBENCH-only declaration; production runtime unchanged when absent."
],
"blockers": []
}
@@ -0,0 +1,89 @@
{
"complete": true,
"approved_source_api_review": true,
"source": "/tmp/erri-random-radius-source-0504/addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c",
"sha256": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9",
"wrappers": 5,
"installed_sdk_bindings": [
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt",
"sha256": "23af0dbdf6b5aec5f13117777bd2211a41d2684a975b16141a809cd2f0f04a69",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/CombatMoveRequest_Move.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data.pak",
"path": "AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt",
"sha256": "8626168e0d8ff2d268ed7591bf2a7a184bbf7aee390e2ce98ddb642463556abd",
"scratch": "/tmp/erri-zero-radius-review-0504/native/AI/BehaviorTrees/Chimera/Soldier/LookAtRandomized.bt"
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICalculateNextCombatMovePos.c",
"sha256": "636fbef514e676d8bf45be87646bfb1ef38ddbf0e30c5fea0377bc696d5c5476",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveRequest.c",
"sha256": "5b515efdf00ec350bc6ca84fd1a206a2575a56b423481b81b99097b8fe585121",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/Movement/SCR_AICombatMoveUtils.c",
"sha256": "9a03c635de86675e3cc4b834496a9351c37c9bafe497c63c51c1c78999afb700",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomLookPosition.c",
"sha256": "cd2e0a6871ba32541b28aae2f17b5d1139e2c29b0ea25ccadd022838a1c490f5",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/AI/ScriptedNodes/Utils/SCR_AIGetRandomPointWithExclude.c",
"sha256": "978eda9adc1721978ab9d952cd24f458ae213661216d9b541c3439d5322c65d0",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/Camera/Shake/SCR_RecoilCameraShakeParams.c",
"sha256": "81c78fd6de3e3d1f4031b589918b002fd0d4ef1673a6287ad7249b2c236aef8c",
"local_same": true
},
{
"pak": "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger/addons/data/data007.pak",
"path": "scripts/Game/generated/AI/Node.c",
"sha256": "d5d3eea4e72d8a8978257009f8b3408628c26c0dd7c406a1fe86fafdaaedc789",
"local_same": true
}
],
"checks": [
"All five override signatures, argument names, protected access and default arguments match SDK; optional Node helper uses public GetCallstackStr(out string).",
"Point calls superclass once first and returns exact ENodeResult; log only afterSUCCESS and actualupdated radius fields are bothzero.",
"Look reads owner/entity/InPos only when enabled and below cap; native superclass remains once with original owner/dt. Extra observation reads do not set ports or consume RNG.",
"Combat calls protected superclass once with original distance/centerPos; does not replace destination or random draw.",
"WithExclude reproduces direct branch predicate (equal origins OR excludeRadius<1e-8) and logs only bothradii0 there. Iterative branch logs only radius0 and iterationCount>0; zero iterations produces no diagnostic random-call claim. Exact original out randomPos and allsix arguments pass through once, returnbool unchanged.",
"Recoil observes min/max lengths only behind gate; superclass once preserves native random-sign draw and sphere draw, original uniform/default and vector return.",
"One shared16-sample cap; counter increments and Node stack/Debug stack retrieval occur only within accepted Log. CLI flag read cached once; disabled wrappers perform no added node/actor/port/vector observations.",
"WORKBENCH only; no spawn/force/order/AI-policy/runtime corrective behavior."
],
"limits": [
"Native compilation and runtime attribution still pending; no compiler/native actions by reviewer.",
"Point postSUCCESS logging cannot establish absence of a failing/aborting native call.",
"Several native/script callsites remain unwrapped; no completeness claim.",
"Formatted zero could also be a small rounded nonzero value; wrappers intentionally match exactzero inputs requested for this diagnostic."
],
"uncovered_calls": [
"SCR_AIEnemyMarkingSystem: dynamic base+distance inaccuracy",
"SCR_ArtilleryWaypointGroupCommand: curve-derived offset radii",
"SCR_ResourcePlayerControllerInventoryComponent.FindSuitablePosition: maxHorizontalOffset",
"SCR_AirstrikePrototype: configured airstrike radius",
"SCR_Math2D wrapper itself and native engine callers",
"SCR_AIFindFirePositionBehavior uses positive constants13/20 and0/4; CleanSweep/LastStand use0/2",
"SCR_EffectModulePositionData_Radius has max<=min correction before call"
],
"blockers": []
}