{ "kind": "WORKBENCH-only opt-in diagnostic, not a gameplay correction", "flag": "errTraceRandomRadius=1 cached once on first hook", "cap": "one shared static count, at most16 log lines and16 Debug.DumpStack calls", "sdk_methods": { "SCR_AIGetRandomPoint": "EOnTaskSimulate(AIAgent owner,float dt): post-superSUCCESS actualupdated m_ExclusionRadius/m_Radius both0", "SCR_AIGetRandomLookPosition": "EOnTaskSimulate(AIAgent owner,float dt): pre-super, read ownerentity and InPos exactly as native, trace distance*m_fTangent==0", "SCR_AICalculateNextCombatMovePos": "protected RandomizeDestinationPos(float distance,vector centerPos): pre-super trace0.1*distance==0", "SCR_AIGetRandomPointWithExclude": "protected FindPosition2D(out randomPos,randomSphereOrigin,randomSphereRadius,excludeSphereOrigin=vector.Zero,excludeRadius=0,iterationCount=50): exact native directbranch withbothradii0, or iterativebranch withiterations>0 andouter0.", "SCR_RecoilCameraShakeParams": "protected RandomVectorSphere(vector min,vector max,bool uniform=true): pre-super only min.Length()==0&&max.Length()==0" }, "preservation": "One superclass call per wrapper with originalargs; exactreturn, nativeoutputs and RNGsequence untouched. Disabled/capped noextra owner/input/world reads. No callbacks/orders/spawns/clamps.", "limitations": [ "RandomPoint trace requires superclass SUCCESS after nativecall; absence doesnotexclude aborting/native-othercallers.", "Look trace adds opt-in read-only port/owner/position reads before nativecall.", "No native qualification yet; peers own independent source/test review." ], "source_review": "Firstthreewrappers SDK reviewclean; finalfivewrapper independentreview/tests pending.", "target_edits": false, "compiler_run_by_author": false, "native_run": false, "attribution": "All four AI wrappers pass Node this; helper calls native GetCallstackStr only for an enabled actual trace under shared16cap. Recoil logs parameters and scriptstack, no invented AI owner." }