PASS: magazine, reload, cooldown, ray hits, provider gate, collapse, 12000ms despawn
PASS: reward uses its own registered Wild Beseitigung label; single registration; OTHER preserved
PASS: consumed ammo pack native drop/delete and rifle selection; legacy empty pack cleanup; 100 EUR to shooter farm exactly once per confirmed hit; no payment for blockers/repeated corpses/adapter failure
[WildBoarHunt] Native observer hooks=0
[WildBoarHunt] v1.0.2 multiplayer implementation loaded. Vredo provider=false. Automatic diagnostics only when adapter is unavailable.
[WildBoarHunt] MP role=server multiplayer=false authority=server clientHunting=true
PASS: namespaced save/load schema, state roundtrip, ammo ownership/single-use/cap, test-shot label, reload cancellation, FS25 raycaster order/blockers, automatic diagnostics
PASS: wildlife globals/controllers survive livestock-heavy diagnostics; board false matches excluded; actual boar asset identity reported
[WildBoarHunt] Native observer hooks=2
[WildBoarHunt] Native observer hooks=2
PASS: native observer arguments/returns preserved; cleanup preserves later mod wrappers; active controller precedes 30 class definitions
PASS: late native boar spawn captured after startup window; 3s followup; bounded output; cycles handled; deer untouched; no animal mutations
PASS: opaque Companion handle guarded; Companion binding names observed without invocation
PASS: log-10 Companion manager regression; report completes without calling scenegraph child functions
PASS: 6x optical projection; centered circular HUD on 5 aspect ratios; reload/menu/release/tool-switch/third-person cleanup; FOV/model/resource restoration
PASS: native-call tracing preserves nil arguments/returns/errors; filters boars; bounded logs; inherited/protected environments; later-mod cleanup
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] NATIVE HIT manager=500 animalIndex=0 corpse=1001
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=1
[WildBoarHunt] Native individual boar targets=1
[WildBoarHunt] NATIVE CORPSE REMOVED animalIndex=0 age=12000ms
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=1
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=indexed rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] Native hit aborted stage=retirement: tests/native_boar_test.lua:91: native setter failed
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] NATIVE HIT manager=500 animalIndex=0 corpse=1005
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=1
[WildBoarHunt] Native individual boar targets=1
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 0=number:11 transform=true name=node11; 1=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=table numericEntries=1; 2=table numericEntries=1 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 0=table numericEntries=1; 1=table numericEntries=1 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] Native individual boar targets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] Native individual boar targets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=1 1=number:11 transform=true name=node11 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=3 1=number:11 transform=true name=node11; 2=number:12 transform=true name=node12; 3=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] Native individual boar targets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=table entries=3 1=number:11 transform=true name=node11; 2=number:12 transform=true name=node12; 3=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=unresolved-shared rawType=nil entries=0  error=tests/native_boar_test.lua:126: unready companion
[WildBoarHunt] BOAR VISUAL index=0 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR VISUAL index=1 layout=multiple-unresolved-nodes root=nil skinParts=0 skeletonParent=nil parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=0 resolvedRoots=0 visibleTargets=0
[WildBoarHunt] Native individual boar targets=0
[WildBoarHunt] BOAR SCAN manager=true speciesFile=mods/customBoar.xml unavailable
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] NATIVE HIT manager=500 animalIndex=0 corpse=1007
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=skin-bone-links root=11 skinParts=1 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] CORPSE SKIN verified name=node30 bones=2
[WildBoarHunt] NATIVE HIT manager=500 animalIndex=0 corpse=1009
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] CORPSE SKIN verified name=node12 bones=1
[WildBoarHunt] NATIVE HIT manager=500 animalIndex=0 corpse=1015
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=skin-bone-links root=11 skinParts=1 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] Native hit aborted stage=binding: scripts/NativeBoarAdapter.lua:204: Could not rebind corpse skin
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=skin-bone-links root=11 skinParts=1 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] Native hit aborted stage=binding: scripts/NativeBoarAdapter.lua:200: Could not restore source skin bindings
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=skin-bone-links root=11 skinParts=1 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] Native hit aborted stage=binding: scripts/NativeBoarAdapter.lua:206: Corpse skin still references a live or wrong bone
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=skin-bone-links root=11 skinParts=1 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] Native hit aborted stage=binding: scripts/NativeBoarAdapter.lua:206: Corpse skin still references a live or wrong bone
[WildBoarHunt] Native DLC boar adapter enabled: individual runtime-model corpse; 12s removal; original actor held outside map
PASS: cloned skin remapping repaired from original shape; every final bone verified against snapshot; false restore/wrong restore/false-success rebind rejected without live-actor mutation or leaked copies; shape-owned skeletons; bone-linked external skins; skin rebind rollback/resource cleanup; ray and corpse pivot use live skeleton; indexed/manager-wide/zero-based/nested getter forms; ambiguous groups refused; actionable empty-target status; original species and zero-based individual lookup; no group-root cloning; native hit/isolated retirement; wildlife update forwarding; 12s corpse lifetime; actor-index reuse; rollback; later-mod cleanup; no native actor deletion
PASS: multiplayer=true local host consumes packs, reloads, fires, pays 100 EUR exactly once and broadcasts the kill notice without money
PASS: joined-client actions/update/tool-switch cannot create ammo or rewards
[WildBoarHunt] MP client handTool state received ammoPack=false
[WildBoarHunt] MP client handTool state received ammoPack=false
PASS: initial and update streams preserve all ammo boundaries; client-to-server mutation rejected
PASS: serialized remote ammo/reload; ownership, held tool, action type, ray, replay and cooldown checks; two farms/two shooters/single payout
PASS: client replicas, consumed-pack rifle reference, shot/reload effects; stale messages and client-forged state rejected
[WildBoarHunt] MP replica actors server=2 local=2 bound=2 missing=0 groups=1
[WildBoarHunt] MP replica actors server=2 local=2 bound=1 missing=0 groups=1
[WildBoarHunt] MP replica actors server=2 local=4 bound=2 missing=0 groups=2
[WildBoarHunt] MP replica actors server=2 local=1 bound=1 missing=1 groups=1
PASS: unequal native group sizes, stable actor IDs, surplus parking, expired late-join corpses and explicit partial capacity
PASS: snapshot wire roundtrip; original local DLC actor mapping, live movement, one corpse only, 12s removal, late join, stale snapshots, forged snapshots
PASS: corpse deadline survives native-group disposal and catalogue removal
PASS: bounded authoritative lag compensation, expired samples and physical blockers
[WildBoarHunt] NATIVE HIT manager=22 animalIndex=0 corpse=nil
PASS: dedicated-server kill path retires native actor without creating graphics
[WildBoarHunt] BOAR NODE MAP manager=22 animals=1 mode=indexed rawType=table entries=1 1=number:1 transform=true error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=server-node root=1 skinParts=0 skeletonParent=0 parentName=?
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=1 resolvedRoots=1 visibleTargets=1
[WildBoarHunt] Native individual boar targets=1
[WildBoarHunt] NATIVE HIT manager=22 animalIndex=0 corpse=nil
PASS: invisible headless native slots eligible without any skin/model requirement
[WildBoarHunt] MP CLIENT REPORT connection=table: 0x2b551f70 receivedRevision=3 bound=2 missing=1
PASS: diagnostic acknowledgement wire format, connection direction, rate limiting and no gameplay authority
PASS: late-join snapshot retains server corpse pose after native group disposal and expires at exactly 12s; original animation metadata serialized
PASS: consumed native holder removes inventory exactly once; host-log double-drop regression
[WildBoarHunt] Equipped rifle graphics=10 root=11
[WildBoarHunt] Equipped rifle graphics=10 root=11
PASS: GIANTS carrying pose activates/restores; model base rotation preserved
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR VISUAL index=0 layout=complete-root root=10 skinParts=0 skeletonParent=10 parentName=node10
[WildBoarHunt] BOAR VISUAL index=1 layout=complete-root root=20 skinParts=0 skeletonParent=20 parentName=node20
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] Native individual boar targets=2
[WildBoarHunt] MP replica actors server=3 local=2 bound=2 missing=1 groups=1
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] MP replica actors server=1 local=2 bound=1 missing=0 groups=1
[WildBoarHunt] BOAR NODE MAP manager=500 animals=2 mode=group-array rawType=table entries=2 1=number:11 transform=true name=node11; 2=number:21 transform=true name=node21 error=nil
[WildBoarHunt] BOAR SCAN registered=1 ready=1 mappedNodes=2 resolvedRoots=2 visibleTargets=2
[WildBoarHunt] MP replica actors server=2 local=2 bound=2 missing=0 groups=1
PASS: real native adapter with original companion node map; unequal counts, stable movement across wildlife update and surplus reuse
[WildBoarHunt] MP original-resource replicas ready=0 pending=6 nativePoolDependency=false
[WildBoarHunt] MP original boar visual loaded serverId=1 skin=owned animation=2
[WildBoarHunt] MP original boar visual loaded serverId=2 skin=owned animation=6
[WildBoarHunt] MP original boar visual loaded serverId=3 skin=owned animation=10
[WildBoarHunt] MP original boar visual loaded serverId=4 skin=owned animation=14
[WildBoarHunt] MP original-resource replicas ready=4 pending=2 nativePoolDependency=false
[WildBoarHunt] MP original boar visual loaded serverId=5 skin=owned animation=18
[WildBoarHunt] MP original boar visual loaded serverId=6 skin=owned animation=22
[WildBoarHunt] MP original-resource replicas ready=6 pending=0 nativePoolDependency=false
PASS: new client resource renderer binds all six host animals with ZERO local native actors; four-load budget, independent skin ownership, actual clip and pose interpolation
[WildBoarHunt] MP original-resource replicas ready=5 pending=0 nativePoolDependency=false
[WildBoarHunt] MP original boar visual loaded serverId=12 skin=owned animation=26
PASS: authoritative corpse age on late join; absolute 12s deadline survives catalogue removal; expired bodies never instantiated
[WildBoarHunt] MP original boar asset failed: missing file=dataS/character/animals/wild/boar/boar.i3d
[WildBoarHunt] MP boar resource rejected: missing shapes or external skin bones
[WildBoarHunt] MP original boar visual loaded serverId=9 skin=owned animation=39
[WildBoarHunt] MP original-resource replicas ready=0 pending=0 nativePoolDependency=false
PASS: actual client adapter parks ambient original companions individually beyond a 64 km terrain; forwards native updates and restores hooks without map-name or field-ID assumptions
PASS: delayed callbacks after map exit/removal, missing resource retry, external bone rejection and recovery; every scene and load request released exactly once
PASS: actual host-log IK regression: raw numeric XML handle accepted, previous XMLFile table rejected; both original arms captured before native reparent
[WildBoarHunt] Rifle two-hand IK active: original rightArm/leftArm chains and both grip targets
PASS: player rig hooks deactivate on map exit, preserve later-mod wrappers and reinstall once on the next map
PASS: original player arm chains captured before native reparent; two targets, body attachment without hand/IK dependency cycle; remote avatar in owner-first-person mode; camera switch and rig/callback cleanup
PASS: centered compact top HUD over five aspect ratios/three scales; actual draw contains ammunition only, no kill/money/provider/sync/reload/control messages, scope and reticle preserved
PASS: synthetic male/female scene fixtures reproduce both 0.8.1 Neck failures; original scene root resolves arm/hand/finger paths before reparent and preserves captured references afterwards
PASS: grip diagnostic waits 500ms, measures both native-node gaps in cm, logs once per rig and resets on rig replacement
PASS: shoulder anchor follows crouch in translated/yaw-rotated scene, selects proximal joint from shuffled nodes, rejects foreign/missing nodes, falls back safely and releases cached rig reference
[WildBoarHunt] Rifle two-hand IK active: original rightArm/leftArm chains and both grip targets
PASS: simulated 8.4cm native hand offsets corrected in translated/yaw-rotated hierarchy without moving authored grips; both finger poses, maximum two solves/frame, settled single solve, correction limits and helper/callback cleanup
PASS: independent T-pose palm-surface test distinguishes palm from dorsal normal on both mirrored hands
PASS: anatomical T-pose thumb/front chirality and native +Z body-facing convention; rifle forward/left rather than body right; separate shooting grip and forward underside support
[WildBoarHunt] Rifle anatomical pose active: upper/forearm lengths R=28.8/25.7cm L=28.8/25.7cm; anatomical body frame; right grip/forward left support; palm-surface offset; exclusive solver
[WildBoarHunt] Rifle anatomical bone links R=rightArm -> rightArmForeArm -> rightArmHand; L=leftArm -> leftArmForeArm -> leftArmHand
PASS: authored stock-side/fore-end mesh-surface contacts and independent 8mm nominal skin offset; internal hand-bone plane is not treated as visible skin
PASS: authored butt-pad center placed in front of the real shoulder rather than behind the upper arm; exact mesh anchor checked
PASS: independent palm-facing, upward right thumb/index side and inward middle-finger curl on actual-size 28.8/25.7cm synthetic arms
PASS: upper-arm roll follows shortest anatomical shoulder swing independently of grip pronation; original sleeve reference retained
[WildBoarHunt] Rifle bind geometry restored: leftArm 56.2->25.7cm
PASS: post-native left forearm/finger translation and nonuniform bone-scale deformation repaired from captured bind geometry; animated shoulder and avatar scale remain live
PASS: repeated native deformations produce no accumulated pose error; thumb geometry restored and rifle thumb curl rebuilt each frame
PASS: reparented finger hierarchy rejected before either arm is mutated; original native fallback remains available
[WildBoarHunt] Anatomical rig calibration unavailable: rightArm finger branches; 
PASS: synthetic 3D anatomical rig captures original palm/finger axes; exact bone lengths and translations; directed elbows; both palm contacts within 12mm; wrist bends below 36deg; three curl joints; no repeated-frame drift; crouch/world transform/uniform scale after capture; unknown-rig fallback and owned-helper cleanup
PASS: shorter synthetic avatar retains original 25/24cm arm lengths and reaches bounded rearward fore-end contact without moving authored grip nodes
PASS: anatomical rifle direction/contact retained with model-to-graphics rotations -46/90/180/-90deg; body orientation derived from actual shoulders
PASS: shared-spine chain ancestors select the correct distinct right and left wrists by arm ancestry, independent of child order
[WildBoarHunt] Rifle two-hand IK active: original rightArm/leftArm chains and both grip targets
[WildBoarHunt] Rifle bind geometry restored: leftArm 46.8->25.7cm
[WildBoarHunt] Rifle anatomical pose active: upper/forearm lengths R=28.8/25.7cm L=28.8/25.7cm; anatomical body frame; right grip/forward left support; palm-surface offset; exclusive solver
[WildBoarHunt] Rifle anatomical bone links R=rightArm -> rightArmForeArm -> rightArmHand; L=leftArm -> leftArmForeArm -> leftArmHand
PASS: production rifle placement follows actual upper-arm shoulder even when the proximal IK node is a shared spine
[WildBoarHunt] Anatomical rifle pose unavailable for this rig; native arm IK fallback
PASS: calibrated-to-unknown-rig transition clears anatomical contacts and retains bounded native feedback instead of dropping all arm posing
PASS: production HumanModel/HuntPose dispatch exclusively uses calibrated arms/fingers; incoming frame deformation repaired; shared spine untouched; remote avatar contacts; owner camera restoration and cleanup
[WildBoarHunt] Shop category=MISC type=TOOLS title=MISC; ammo registered before rifles
[WildBoarHunt] Shop category=MISCTOOLS type=TOOLS title=MISCTOOLS; ammo registered before rifles
[WildBoarHunt] Native Tools/Misc category unavailable; keeping configured MISC category
PASS: native Tools/Misc selection by actual tool category type; our five-product scope only, other items/global categories untouched, missing-category fallback, original returns/call count and repeated/later-wrapper compatibility
PASS: local reload animates exactly 1-5 missing rounds with matching clicks and two mechanical actions; independent client clock, unchanged ammunition/timer, no replay while awaiting server completion
PASS: reserve-limited refill only inserts available rounds; rejected full-magazine/no-reserve reload produces no cosmetic rounds
PASS: cosmetic mesh/audio created exclusively for local held rifle owner; remote players, dedicated server, ammo packs and unheld rifles excluded
PASS: menu hides the round, cancellation leaves ammo unchanged, cached mesh reused, owned mesh deleted/shared load released exactly once
PASS: mid-reload observation skips past inserts; repeated running state updates do not restart animation/sounds
PASS: production host/client update integration retains server-only ammo transfer at 3000ms and owner-only visual clock on joined clients
[WildBoarHunt] Cosmetic reload round unavailable; ammunition/reload unaffected
PASS: missing cosmetic asset cannot affect ammo/reloading; per-round audio dispatcher local-owner only, generic pack-transfer sound preserved
PASS: four distinct native shop rifles with unique stock maps and matching exact geometry, grip nodes, zero IK offsets, specialization, ammunition and price; five store registrations without duplicates
PASS: ammo is registered first and precedes all four rifles by native product name and ascending price; configured native MISC category for all five items
PASS: every source-file registration resolves; native IK target XML matches the two actual model nodes; synthetic stock and HUD texture packaged
PASS: packaged German/English reward label is exactly Wild Beseitigung
PASS: exact creator credit in mod author/descriptions, all five native shop previews/DDS and final README; product bounds checked separately from credit badge
PASS: native shop textures share visible-product center and safe bounds; all DDS dimensions are powers of two; active XML/scripts/asset builders contain no old brand name
PASS: own cosmetic reload round has two valid brass/copper shapes, bounded geometry, no rigid body/shadows, and both per-round/mechanical OGG assets packaged
PASS: OGG audio references; all Lua parses; XML/i3D structure; node/material/texture references; both models entirely in front of pitchNode; compressed DDS with complete mip chains.
NOT TESTED: GIANTS runtime/rendering, real savegame, Vredo controller. Native DLC adapter requires an in-game test.
