LS25 WildBoarHunt 1.1.0.0 – Dach / native Spawnintervalle
Made by MK2_Justin
2026-10-06
Lua/Geometrie/Schema-Tests, keine GIANTS-Laufzeit.

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.1.0 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: 0x111ed320 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: highseat native ladder installed before type validation; inherited ladder not duplicated, mod namespace captured, other types untouched, original returns retained, repeated source safe
[WildBoarHunt] BOAR native spawn timer minSeconds: 20.00-50.00s -> 13.33-33.33s (server)
PASS: startup XML load intercept reduces native boar 20-50s interval to 13.33-33.33s once; nested loadIfExists/load forwarding preserves nils/returns and all unrelated rules/limits
[WildBoarHunt] BOAR native spawn timer minSeconds: 30.00-75.00s -> 20.00-50.00s (server)
PASS: host-only changes, exact native filename/class/name selection, Windows/absolute path handling; clients, deer and custom files untouched
[WildBoarHunt] BOAR native spawn timer minSeconds: 3.00-6.00s -> 2.00-4.00s (server)
[WildBoarHunt] BOAR native spawn timer retryMinSeconds: 6.00-12.00s -> 4.00-8.00s (server)
PASS: disabled/invalid/missing intervals preserved, existing retry interval accelerated; load failures and native errors forwarded unchanged
[WildBoarHunt] BOAR native spawn timer minSeconds: 20.00-50.00s -> 13.33-33.33s (server)
PASS: map unload deactivates hooks without overwriting another mod wrapper; next-mission reinstall applies once
PASS: four distinct native shop rifles with unique stock maps and matching exact geometry, grip nodes, zero IK offsets, specialization, ammunition and price; five hand tools and one separate placeable registration 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; gameplay textures with full mip chains, native highseat store icon without mipmaps.
NOT TESTED: GIANTS runtime/rendering, real savegame, Vredo controller. Native DLC adapter requires an in-game test.

PASS: native type/category, price, nine node mappings, explicit collision/CPU attributes, FS25 filters, PLAYER-only native ladder trigger, convex outward collider geometry
PASS: complete visible/physical model inside placement test volume; continuous platform top at 2.8m
PASS: 95 climb/entry positions × 17 capsule spheres clear all barriers; minimum modeled margin 0.034m; trigger covers ascent and ends before cabin standing space
PASS: highseat XML, I3D and modDesc validate against official GIANTS FS25 schemas
NOT TESTED: GIANTS physics, ladder animation, native construction UI, real multiplayer/savegame

PASS: six native buildingShader batches, 6148 graphic triangles, complete 2K material triplets, finite UV0/UV1, unit vertex normals and nondegenerate tangent UVs
PASS: six 2048px BC3 maps with 12 complete mip levels; decoded normal vectors valid; matte nonmetal wood/concrete and separate galvanized/steel response
PASS: 48 existing code/configuration/weapon resources byte-identical; 32 physics geometries/filter attributes retained; only roof and five apron proxies realigned; 38 physics shapes explicitly collision-enabled/CPU; mod version unchanged
NOT TESTED: compilation/rendering of GIANTS buildingShader in an actual LS25 instance

PASS: 44 meshes with complete per-material draw ranges, valid culling bounds and visible graphic ancestry
PASS: GIANTS direct-child placement contract; unchanged 2.8 × 5.38 × 4.65m volume; native AI update footprint; explicit open indoor policy
PASS: original invisible-model ZIP rejected for all 43 missing subsets and its incorrect placement hierarchy
PASS: 51 existing gameplay/weapon/README resources unchanged byte for byte; stand price and gameplay configuration retained
PASS: incomplete subset mutation is rejected
NOT TESTED: GIANTS engine rendering, placement/save/load and real multiplayer

PASS: 37 static solids and separate native ladder trigger explicitly collision-enabled; all 38 CPU meshes; PLAYER contact included; trigger cannot block the entry
PASS: nine standing positions hit the platform top at 2.8m; both side walls and rear wall stop contact rays; central entrance is open
PASS: 32 ladder approach positions have continuous solid support without gaps between visual rungs
PASS: previous collision fix retained: 38 explicit collision/CPU configurations, physical identities and PLAYER masks preserved
NOT TESTED: GIANTS/PhysX runtime contacts and real multiplayer

PASS: all timber/end-grain vertices below minimum metal underside; minimum margin 14.53mm; previous roof rejects 528 protruding vertices
PASS: actual corrugated sheet unchanged; only spawn source registration and two bridge lifecycle calls changed; native limits/map files and other game features retained
