NORNFORGED 0.4.3 — final native VFX validation
Validation date: 2026-09-29
Platform: Windows x64 / Direct3D 11.0 (feature level 11.1), NVIDIA RTX 5080.
Native game: Valheim 1.0.16; Unity 6000.0.75f1 (26349cd2a5c8); BepInEx 5.4.23.5.

Tested SHA256 (identical in both isolated game runs):
Nornforged.dll: 672DCC05CBD963D530AF15B870C374B024F5DB5F1BF891E67B3C7D4BDAF13093
Nornforged.Core.dll: 71D75BC969BBF55F8773249B92569FC457B16AECE9C3D15CC046D1E0017300DE
Nornforged.UnitySmoke.dll: 9AE34F18E2751FEB779CD7D9239715B42CEE04BC64FB489144129F28713797D2

Focused VFX source run: nornforged-smoke-008ca360ea3e45d8bc7d47fc70aa13fe
Main-scene armor/weapon/stand source run: nornforged-smoke-1fac9939d591468499a39202ad4a173a

Scope and limitations:
- These are isolated native-game checks, not edits to a user's character/world.
- Windows/D3D11 was executed. Linux assets were built and separately validated, but no Linux game runtime is claimed here.
- Tests include native original mesh/material preservation, cutout/LOD masks, animated bones and bow blend shapes, rank-independent perk power, world geometry placement, depth/occlusion, options, teleports, culling, repeated equip/holster and removal.
- Native weapon validation uses the actual local player, three sheath/draw cycles, and two real attacks, with twelve completed-frame samples; the second attack contains an intentional 140ms frame hitch. Original Animator culling is temporarily set to AlwaysAnimate to represent a continuously visible player. The camera is rendered after the native UpdateAllSkinnedMeshes phase; PNG encoding is deferred until after attacks. This is not an uncontrolled gameplay performance or remote-multiplayer test.
- Maximum rendered local-cohort center distance from native weapon triangles: 0.04556m. Maximum renderer-versus-current-state center error: 0.00001m. Small intentional mist drift is included in the surface-distance measurement.
- The opaque-wall oracle uses a supported native opaque material, fixed lighting, a byte-identical repeated control, and now requires exactly zero positive energy for each separated authored layer.
- CPU measurements below cover managed policy calls and synchronous native work only. Automatic worker simulation, GPU rendering, other gameplay and FPS are excluded; they are not a total-performance comparison.
- The ObjectDB audit includes 800 templates and explicitly reports 311 missing native attachments plus 19 worn templates without usable meshes. This is routing/metadata coverage, not an assertion that every template has individually reviewed artwork. Unsupported geometry stays hidden rather than spawning a body/socket cloud.
- Stand checks use actual native ItemStand/ArmorStand save/load and local authority. A second network client, remote timing, and manual multiplayer stand interactions were not exercised.

=== FOCUSED NATIVE VFX SUITE ===
PASS focused native VFX suite
PASS native game assets loaded
PASS mixed opaque/transparent submesh masks, native cutout UV scale/offset, cached unreadable alpha readback and sleeveless clothing alpha prevent births on invisible geometry; filtered selection survives BakeMesh deformation
PASS cached deterministic triangle-surface geometry, curved bow coverage, multiple meshes and LOD ownership, shear/mirrored transforms and sheath reparenting
PASS sparse bone and multi-frame bow blend-shape anchors match correctly transformed Unity BakeMesh and actual rendered skin masks; armor bone filters prevent chest/leg cross-emission; unreadable mesh surface recovered and agrees with original triangles
PASS exact elemental mapping; saved PQS and actual percent independently increase strength; 25 percent PQS threshold; legacy values and bounded wire roundtrip
PASS identical perk power at ranks0..12; four saved-PQS particle strengths at rank1; armor budgets <=48, bounded world accents and authored shader assets; shader=Nornforged/ElementalSurface; Nornforged/ElementalParticle
PASS low-rank slot reuse, leg-following, individual elemental identity and coordinated full armor budget <=240 particles
PASS reduced/intensity/particle preferences and immediate owned cleanup
PASS real-frame authored VFX: single-clock lifetime, strongest-two composition, existing-cohort deformation, teleport cleanup, cull return, repeated-update reuse, disable/reactivation and zero intensity. 100 cached configure calls: 0.18 ms (diagnostic, not an FPS benchmark).
Particle step CPU call-cost probe: nine native models (3 AxeStone, 3 SwordBronze, 3 CrossbowArbalest), 9 mapped parts, 36 owned systems, 522 maximum particles.
Stopwatch interval covers only the managed policy call and any synchronous native work it waits for. Automatic-policy worker simulation, rendering, other game work and frame-rate effects are NOT included. No total CPU/FPS comparison is claimed.
ABBA order: automatic scheduling, explicit simulation, explicit simulation, automatic scheduling. Six warm frames and 44 measured frames per phase; rendering disabled on probe particle systems. No user equipment or native asset is modified.
phase 1 automatic scheduling: n=44, median=0.027 ms, p95=0.033 ms, max=0.045 ms, live particles=163..189
phase 2 explicit: n=44, median=0.069 ms, p95=0.079 ms, max=0.166 ms, live particles=161..189
phase 3 explicit: n=44, median=0.069 ms, p95=0.079 ms, max=0.112 ms, live particles=161..189
phase 4 automatic scheduling: n=44, median=0.026 ms, p95=0.031 ms, max=0.051 ms, live particles=161..189
combined automatic scheduling: n=88, median=0.027 ms, p95=0.033 ms, max=0.051 ms, live particles=161..189
combined explicit: n=88, median=0.069 ms, p95=0.079 ms, max=0.166 ms, live particles=161..189
Observed native deltaTime range: 16.667–16.839 ms. Timings are descriptive; no hardware-independent performance threshold is imposed.
PASS bounded particle call-cost comparison completed; owned systems paused, emptied and deactivated; visual settings restored. Existing particle systems were observed only, never paused or reconfigured.
PASS no-model helmet/shoulder/accessory slots retain hidden reusable state with zero live particles; late binding, model removal and rebind use actual mesh surfaces only
PASS native HelmetLeather surface on installed 95x player-bone layout: high-PQS rank1 effect stays on the native helmet, all five slot scales and actual billboard dimensions remain in player units
PASS chest/leg regions follow baked body triangles through limb pose, player transform/scale and armature-scale changes; same visibility at ranks0..12, weak high-rank removal, disable/re-enable, settings, slot reuse and native asset preservation
PASS SwordBronze: native triangle-surface anchors, authored surface fire + frost, unchanged original models, local held/back transforms, particle budget, eight equip cycles, unchanged native assets
PASS BowFineWood: native triangle-surface anchors, authored surface fire + frost, unchanged original models, local held/back transforms, particle budget, eight equip cycles, unchanged native assets
PASS CrossbowArbalest: native triangle-surface anchors, authored surface fire + frost, unchanged original models, local held/back transforms, particle budget, eight equip cycles, unchanged native assets
PASS StaffFireball: native triangle-surface anchors, authored surface fire + frost, unchanged original models, local held/back transforms, particle budget, eight equip cycles, unchanged native assets
PASS 25 percent PQS threshold; equal power/budget at ranks0..12; four increasing saved-strength profiles at rank1; moving native particles, reduced effects and particles-off cleanup
PASS explicit bone +75% draw-blend fixture: emission follows baked animated surfaces, original mesh/bones/draw weights preserved
PASS authored skinned mesh follows original bones,73% draw blend and nonuniform scale; source force-hide and teardown hide it immediately
PASS unreadable mesh local-bound fallback without native material/mesh replacement
PASS native shared textures=1, shader=Nornforged/ElementalSurface; Nornforged/ElementalParticle
PASS independent single-particle Hierarchy renderer calibration: BakeMesh(camera,true) world mapping=translation, transform-change error before synchronization=0.82275m, after .00001s simulation=0.00000m
PASS independent World/Shape particle BakeMesh coordinate calibration mapping=0 and emitter-motion invariance
PASS AxeStone native imported scale: rendered birth error=0.00000m, frost surface distance=0.03619m, .9s-to-expiry maximum=0.03134m
PASS AxeStone rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.03233m, .9s-to-expiry maximum=0.03567m
PASS AxeStone mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.04118m, .9s-to-expiry maximum=0.06568m
PASS AxeStone live parent rescale: rendered surface distance=0.00000m
PASS SwordBronze native imported scale: rendered birth error=0.00000m, frost surface distance=0.01289m, .9s-to-expiry maximum=0.04562m
PASS SwordBronze rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.01927m, .9s-to-expiry maximum=0.04772m
PASS SwordBronze mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.02748m, .9s-to-expiry maximum=0.04301m
PASS SwordBronze live parent rescale: rendered surface distance=0.00000m
PASS BowFineWood native imported scale: rendered birth error=0.00000m, frost surface distance=0.02664m, .9s-to-expiry maximum=0.02169m
PASS BowFineWood rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.02634m, .9s-to-expiry maximum=0.06408m
PASS BowFineWood mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.03535m, .9s-to-expiry maximum=0.02759m
PASS BowFineWood live parent rescale: rendered surface distance=0.00000m
PASS actual ParticleSystemRenderer.BakeMesh billboard centers follow native AxeStone, SwordBronze and BowFineWood world triangles through imported scale, rotated nonuniform and mirrored parents, and live rescaling
PASS actual native SwordBronze held/back snapshots, source/current prefab identity, stale metadata rejection, equal perk power at ranks0..12, weak-perk removal, same-component recovery and unchanged native assets
PASS twelve rotating/translating held/back transitions preserve saved strength with exactly one owned surface per native attachment; native removal hooks immediately clear owned VFX. Live network timing remains a separate test.
PASS read-only complete ObjectDB equipment enumeration. All-equipment audit: 800 templates (487 without recipes), 800 valid profiles, 0 unsupported categories, 0 pool gaps; 441 native surface routes, 29 filtered body-region routes, 19 hidden worn templates without usable native meshes, 311 missing native visual attachments. Detailed gaps are listed in Nornforged-equipment-coverage.txt; no untested all-item appearance claim.
PASS actual native four-weapon renders; four PQS strengths at rank1; low-rank fire, frost, lightning, mixed elements and held/back poses; indoor/depth-soft pixels: fire sword=3702/3702, frost bow=3381/3381, lightning arbalest=2131/2131, mixed staff frost=1624/1624; supported native opaque wall shader=Custom/Creature; opaque-wall leaks=0; surface-only pixels/energy=0/0; particle-only pixels/energy=0/0. Files: [WORKSPACE]\.local\nornforged-smoke-008ca360ea3e45d8bc7d47fc70aa13fe\BepInEx\config\Nornforged-weapon-surface-outdoor.png; [WORKSPACE]\.local\nornforged-smoke-008ca360ea3e45d8bc7d47fc70aa13fe\BepInEx\config\Nornforged-weapon-surface-indoor.png; [WORKSPACE]\.local\nornforged-smoke-008ca360ea3e45d8bc7d47fc70aa13fe\BepInEx\config\Nornforged-weapon-surface-depth-soft.png
PASS native equipment camera rendered four real PQS strengths at rank1, distinct elements, helmet/shield/tool surfaces; native meshes/materials/templates preserved. File: [WORKSPACE]\.local\nornforged-smoke-008ca360ea3e45d8bc7d47fc70aa13fe\BepInEx\config\Nornforged-equipment-strength.png
PASS real VisEquipment.UpdateLodgroup preserves native membership, thresholds, bounds and assets across repeated rebuilds; private particle LOD mirrors disappear with their native source instead of leaving floating effects
PASS exact 35m ground and 65m equipped visibility boundaries, early return while distant and explicit geometry resynchronization
PASS activation pulses retain the same bounded emitters and shared resources without adding mesh surfaces
PASS native cutout textures, UV transforms and cutoff remain untouched; particle textures are independent of the weapon atlas
PASS shutdown immediately clears active, previously cleared and inactive worn/preview effects and shared resources; deferred Unity destruction is checked next frame
PASS deferred Unity shutdown destroys active, previously cleared and inactive armor/preview owners, LOD mirrors and resources while preserving every original mesh, material, texture and shader
Game 1.0.16

=== MAIN-SCENE ARMOR AND WEAPON PROBE ===
Actual main-scene armor equipment / isolated disposable save
PASS read-only complete ObjectDB equipment enumeration. All-equipment audit: 800 templates (487 without recipes), 800 valid profiles, 0 unsupported categories, 0 pool gaps; 441 native surface routes, 29 filtered body-region routes, 19 hidden worn templates without usable native meshes, 311 missing native visual attachments. Detailed gaps are listed in Nornforged-equipment-coverage.txt; no untested all-item appearance claim.
PASS 313 loaded main-scene equipment recipes have complete rarity/perk pools
Created signed HelmetLeather rank=1 perks=1
helmet surface pose check: maxBeforeMeters=0.000034 maxAfterMeters=0.000034 refreshDriftMeters=0.000000
Native helmet socket=(122.01, 67.66, -325.04) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.952 particles=9
helmet surface pose check: maxBeforeMeters=0.000034 maxAfterMeters=0.000034 refreshDriftMeters=0.000000
Native helmet socket=(122.01, 67.66, -325.04) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.952 particles=9
helmet surface pose check: maxBeforeMeters=0.000034 maxAfterMeters=0.000034 refreshDriftMeters=0.000000
Native helmet socket=(122.01, 67.66, -325.04) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.952 particles=8
helmet surface pose check: maxBeforeMeters=0.000034 maxAfterMeters=0.000034 refreshDriftMeters=0.000000
Native helmet socket=(122.01, 67.66, -325.04) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.952 particles=7
Native camera render: Nornforged-native-leather-helmet.png
Created signed ArmorLeatherChest rank=1 perks=1
Created signed ArmorLeatherLegs rank=1 perks=1
Created signed CapeDeerHide rank=1 perks=1
helmet surface pose check: maxBeforeMeters=0.000014 maxAfterMeters=0.000014 refreshDriftMeters=0.000000
Native helmet socket=(121.97, 67.56, -325.13) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.861 particles=8
chest surface pose check: maxBeforeMeters=0.000028 maxAfterMeters=0.000028 refreshDriftMeters=0.000000
PASS chest rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.107 particles=8
leg surface pose check: maxBeforeMeters=0.000032 maxAfterMeters=0.000032 refreshDriftMeters=0.000000
PASS leg rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.055 particles=8
shoulder surface pose check: maxBeforeMeters=0.000016 maxAfterMeters=0.000016 refreshDriftMeters=0.000000
PASS shoulder rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.631 particles=8
helmet surface pose check: maxBeforeMeters=0.000014 maxAfterMeters=0.000014 refreshDriftMeters=0.000000
Native helmet socket=(121.97, 67.56, -325.13) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.861 particles=10
chest surface pose check: maxBeforeMeters=0.000028 maxAfterMeters=0.000028 refreshDriftMeters=0.000000
PASS chest rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.107 particles=10
leg surface pose check: maxBeforeMeters=0.000032 maxAfterMeters=0.000032 refreshDriftMeters=0.000000
PASS leg rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.055 particles=10
shoulder surface pose check: maxBeforeMeters=0.000016 maxAfterMeters=0.000016 refreshDriftMeters=0.000000
PASS shoulder rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.631 particles=10
helmet surface pose check: maxBeforeMeters=0.000014 maxAfterMeters=0.000014 refreshDriftMeters=0.000000
Native helmet socket=(121.97, 67.56, -325.13) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.861 particles=10
chest surface pose check: maxBeforeMeters=0.000028 maxAfterMeters=0.000028 refreshDriftMeters=0.000000
PASS chest rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.107 particles=10
leg surface pose check: maxBeforeMeters=0.000032 maxAfterMeters=0.000032 refreshDriftMeters=0.000000
PASS leg rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.055 particles=10
shoulder surface pose check: maxBeforeMeters=0.000016 maxAfterMeters=0.000016 refreshDriftMeters=0.000000
PASS shoulder rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.631 particles=10
helmet surface pose check: maxBeforeMeters=0.000014 maxAfterMeters=0.000014 refreshDriftMeters=0.000000
Native helmet socket=(121.97, 67.56, -325.13) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.861 particles=9
chest surface pose check: maxBeforeMeters=0.000028 maxAfterMeters=0.000028 refreshDriftMeters=0.000000
PASS chest rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.107 particles=9
leg surface pose check: maxBeforeMeters=0.000032 maxAfterMeters=0.000032 refreshDriftMeters=0.000000
PASS leg rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.055 particles=8
shoulder surface pose check: maxBeforeMeters=0.000016 maxAfterMeters=0.000016 refreshDriftMeters=0.000000
PASS shoulder rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.631 particles=8
helmet surface pose check: maxBeforeMeters=0.000014 maxAfterMeters=0.000014 refreshDriftMeters=0.000000
Native helmet socket=(121.97, 67.56, -325.13) scale=(0.95, 0.95, 0.95)
PASS helmet rank=1 emitterScale=(1.00, 1.00, 1.00) anchors=64 maxDistanceFromPlayer=1.861 particles=10
Native camera render: Nornforged-native-leather-set.png
PASS native rank+1 leather helmet and four armor slots with 95 percent PQS perks, actual equipment/body surfaces, set coordination and unequip/re-equip through actual Unity frames
Native scene camera captures accompany component checks; remote multiplayer clients and manual combat were not exercised.
Native visible-player animation fixture: Visual culling=CullUpdateTransforms
Particle channel Nornforged authored 1 flow: renderer=Billboard alignment=View layer=12 scaling=Shape bounds=Center: (121.42, 66.91, -325.20), Extents: (1.06, 0.93, 1.00) pivot=(0.00, 0.00, 0.00) sizeOverLifetime=True colorOverLifetime=True
Particle material owned Nornforged authored 1 flow: shader=Nornforged/ElementalParticle supported=True queue=3000 keywords=    _MainTex=null
Native frost template MaceSilver/attach/effects/soft cloud: renderer=Billboard size=2 alpha=0.078 textureSheet=False
Particle material template frost: shader=Lux Lit Particles/ Bumped supported=True queue=3000 keywords=GEOM_TYPE_FROND,GEOM_TYPE_MESH,_ALPHATEST_ON _InvFade=3 _Color=RGBA(1.000, 1.000, 1.000, 1.000) _EmissionColor=RGBA(0.000, 0.000, 0.000, 1.000)  _MainTex=wildfire01 _EmissionMap=null _AlbedoMap=null
Particle channel Nornforged authored 1 sparks: renderer=Billboard alignment=View layer=12 scaling=Shape bounds=Center: (121.42, 66.91, -325.20), Extents: (1.06, 0.93, 1.00) pivot=(0.00, 0.00, 0.00) sizeOverLifetime=True colorOverLifetime=True
Particle material owned Nornforged authored 1 sparks: shader=Nornforged/ElementalParticle supported=True queue=3000 keywords=    _MainTex=null
Native frost template MaceSilver/attach/effects/soft cloud: renderer=Billboard size=2 alpha=0.078 textureSheet=False
Particle material template frost: shader=Lux Lit Particles/ Bumped supported=True queue=3000 keywords=GEOM_TYPE_FROND,GEOM_TYPE_MESH,_ALPHATEST_ON _InvFade=3 _Color=RGBA(1.000, 1.000, 1.000, 1.000) _EmissionColor=RGBA(0.000, 0.000, 0.000, 1.000)  _MainTex=wildfire01 _EmissionMap=null _AlbedoMap=null
PASS live AxeStone hand cycle=0 attachments=1 particles=26 modelScale=(1.00, 1.00, 1.00)
Capture depth: native=Depth, DepthNormals probe=Depth, DepthNormals renderingPath=DeferredShading cullingMask=-1
Native weapon camera render: Nornforged-native-stone-axe-frost-held.png
Capture depth: native=Depth, DepthNormals probe=Depth, DepthNormals renderingPath=DeferredShading cullingMask=-1
Particle pixel coverage Nornforged-native-stone-axe-frost-closeup repeated-control: changed>=3=0 strong>=12=0 maximum=0 total=0
Particle pixel coverage Nornforged-native-stone-axe-frost-closeup all-particles: changed>=3=49587 strong>=12=32866 maximum=227 total=1459407
Particle pixel coverage Nornforged-native-stone-axe-frost-closeup body-only: changed>=3=49587 strong>=12=32866 maximum=161 total=1456645
Particle pixel coverage Nornforged-native-stone-axe-frost-closeup accent-only: changed>=3=62 strong>=12=49 maximum=226 total=4183
Particle pixel coverage Nornforged-native-stone-axe-frost-closeup soft-particles-disabled: changed>=3=49587 strong>=12=32866 maximum=227 total=1459407
Native weapon camera render: Nornforged-native-stone-axe-frost-closeup.png
PASS live AxeStone back cycle=0 attachments=1 particles=26 modelScale=(1.00, 1.00, 1.00)
Capture depth: native=Depth, DepthNormals probe=Depth, DepthNormals renderingPath=DeferredShading cullingMask=-1
Particle pixel coverage Nornforged-native-stone-axe-frost-sheathed repeated-control: changed>=3=0 strong>=12=0 maximum=0 total=0
Particle pixel coverage Nornforged-native-stone-axe-frost-sheathed all-particles: changed>=3=23945 strong>=12=16972 maximum=229 total=847951
Particle pixel coverage Nornforged-native-stone-axe-frost-sheathed body-only: changed>=3=23945 strong>=12=16972 maximum=160 total=846898
Particle pixel coverage Nornforged-native-stone-axe-frost-sheathed accent-only: changed>=3=33 strong>=12=27 maximum=229 total=2082
Particle pixel coverage Nornforged-native-stone-axe-frost-sheathed soft-particles-disabled: changed>=3=23945 strong>=12=16972 maximum=229 total=847951
Native weapon camera render: Nornforged-native-stone-axe-frost-sheathed.png
PASS live AxeStone hand cycle=1 attachments=1 particles=26 modelScale=(1.00, 1.00, 1.00)
PASS live AxeStone back cycle=1 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
PASS live AxeStone hand cycle=2 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
PASS live AxeStone back cycle=2 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
Native attack sequence=normal frame progression
PASS live AxeStone hand cycle=3 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
PASS live AxeStone hand cycle=4 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=0 Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.02691m current-local-state-surface-distance=0.02691m render-vs-state-distance=0.00001m source=Center: (121.46, 67.06, -324.77), Extents: (0.39, 0.47, 0.29) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.65, 66.84, -324.61) rotation=(338.35, 341.76, 38.81) isPlaying=False
After render Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.02691m current-local-state-surface-distance=0.02691m render-vs-state-distance=0.00001m source=Center: (121.46, 67.06, -324.77), Extents: (0.39, 0.47, 0.29) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.65, 66.84, -324.61) rotation=(338.35, 341.76, 38.81) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=0 frame=51233
Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.02691m current-local-state-surface-distance=0.02691m render-vs-state-distance=0.00001m source=Center: (121.46, 67.06, -324.77), Extents: (0.39, 0.47, 0.29) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.65, 66.84, -324.61) rotation=(338.35, 341.76, 38.81) isPlaying=False
PASS live AxeStone hand cycle=5 attachments=1 particles=27 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=1 Nornforged authored 1 flow particles=22 unsynchronized-rendered-surface-distance=0.03253m current-local-state-surface-distance=0.03253m render-vs-state-distance=0.00000m source=Center: (121.67, 67.52, -324.66), Extents: (0.20, 0.40, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.73, 67.30, -324.41) rotation=(313.98, 37.67, 335.58) isPlaying=False
After render Nornforged authored 1 flow particles=22 unsynchronized-rendered-surface-distance=0.03253m current-local-state-surface-distance=0.03253m render-vs-state-distance=0.00000m source=Center: (121.67, 67.52, -324.66), Extents: (0.20, 0.40, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.73, 67.30, -324.41) rotation=(313.98, 37.67, 335.58) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=1 frame=51408
Nornforged authored 1 flow particles=22 unsynchronized-rendered-surface-distance=0.03253m current-local-state-surface-distance=0.03253m render-vs-state-distance=0.00000m source=Center: (121.67, 67.52, -324.66), Extents: (0.20, 0.40, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.73, 67.30, -324.41) rotation=(313.98, 37.67, 335.58) isPlaying=False
PASS live AxeStone hand cycle=6 attachments=1 particles=24 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=2 Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.03885m current-local-state-surface-distance=0.03885m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
After render Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.03885m current-local-state-surface-distance=0.03885m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=2 frame=51588
Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.03885m current-local-state-surface-distance=0.03885m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
PASS live AxeStone hand cycle=7 attachments=1 particles=25 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=3 Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04556m current-local-state-surface-distance=0.04556m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
After render Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04556m current-local-state-surface-distance=0.04556m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=3 frame=51746
Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04556m current-local-state-surface-distance=0.04556m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
PASS live AxeStone hand cycle=8 attachments=1 particles=26 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=4 Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04526m current-local-state-surface-distance=0.04526m render-vs-state-distance=0.00000m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
After render Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04526m current-local-state-surface-distance=0.04526m render-vs-state-distance=0.00000m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=4 frame=51922
Nornforged authored 1 flow particles=21 unsynchronized-rendered-surface-distance=0.04526m current-local-state-surface-distance=0.04526m render-vs-state-distance=0.00000m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
PASS live AxeStone hand cycle=9 attachments=1 particles=23 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=5 Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03806m current-local-state-surface-distance=0.03806m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
After render Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03806m current-local-state-surface-distance=0.03806m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=5 frame=52096
Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03806m current-local-state-surface-distance=0.03806m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
Native attack sequence=intentional 140ms frame hitch
PASS live AxeStone hand cycle=3 attachments=1 particles=24 modelScale=(1.00, 1.00, 1.00)
PASS live AxeStone hand cycle=10 attachments=1 particles=23 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=6 Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.02401m current-local-state-surface-distance=0.02401m render-vs-state-distance=0.00000m source=Center: (121.46, 67.12, -324.72), Extents: (0.37, 0.49, 0.26) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.64, 66.87, -324.58) rotation=(338.41, 348.42, 32.42) isPlaying=False
After render Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.02401m current-local-state-surface-distance=0.02401m render-vs-state-distance=0.00000m source=Center: (121.46, 67.12, -324.72), Extents: (0.37, 0.49, 0.26) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.64, 66.87, -324.58) rotation=(338.41, 348.42, 32.42) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=6 frame=53984
Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.02401m current-local-state-surface-distance=0.02401m render-vs-state-distance=0.00000m source=Center: (121.46, 67.12, -324.72), Extents: (0.37, 0.49, 0.26) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.64, 66.87, -324.58) rotation=(338.41, 348.42, 32.42) isPlaying=False
PASS live AxeStone hand cycle=11 attachments=1 particles=22 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=7 Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03077m current-local-state-surface-distance=0.03077m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
After render Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03077m current-local-state-surface-distance=0.03077m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=7 frame=54163
Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03077m current-local-state-surface-distance=0.03077m render-vs-state-distance=0.00000m source=Center: (121.97, 67.58, -325.01), Extents: (0.21, 0.27, 0.52) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.89, 67.62, -324.68) rotation=(345.16, 78.43, 257.12) isPlaying=False
PASS live AxeStone hand cycle=12 attachments=1 particles=24 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=8 Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.03721m current-local-state-surface-distance=0.03721m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
After render Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.03721m current-local-state-surface-distance=0.03721m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=8 frame=54334
Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.03721m current-local-state-surface-distance=0.03721m render-vs-state-distance=0.00000m source=Center: (121.41, 67.36, -324.98), Extents: (0.45, 0.25, 0.43) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.17, 67.40, -325.21) rotation=(41.68, 309.92, 254.99) isPlaying=False
PASS live AxeStone hand cycle=13 attachments=1 particles=24 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=9 Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.04352m current-local-state-surface-distance=0.04352m render-vs-state-distance=0.00001m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
After render Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.04352m current-local-state-surface-distance=0.04352m render-vs-state-distance=0.00001m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=9 frame=54511
Nornforged authored 1 flow particles=20 unsynchronized-rendered-surface-distance=0.04352m current-local-state-surface-distance=0.04352m render-vs-state-distance=0.00001m source=Center: (122.40, 66.44, -325.99), Extents: (0.50, 0.17, 0.07) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.07, 66.47, -325.99) rotation=(354.56, 179.75, 91.06) isPlaying=False
PASS live AxeStone hand cycle=14 attachments=1 particles=24 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=10 Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.04213m current-local-state-surface-distance=0.04213m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
After render Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.04213m current-local-state-surface-distance=0.04213m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=10 frame=54685
Nornforged authored 1 flow particles=19 unsynchronized-rendered-surface-distance=0.04213m current-local-state-surface-distance=0.04213m render-vs-state-distance=0.00000m source=Center: (122.24, 66.31, -325.75), Extents: (0.42, 0.23, 0.46) localPosition=(0.00, 0.00, 0.00) worldPosition=(122.00, 66.38, -325.98) rotation=(324.38, 126.64, 100.42) isPlaying=False
PASS live AxeStone hand cycle=15 attachments=1 particles=22 modelScale=(1.00, 1.00, 1.00)
Native late frame phases: PlayerSendFrameStarted,DirectorLateUpdate,ScriptRunDelayedDynamicFrameRate,MagicaManager,PhysicsSkinnedClothBeginUpdate,UpdateRectTransform,PlayerUpdateCanvases,UIElementsRepaintPanels,UpdateAudio,VFXUpdate,ParticleSystemEndUpdateAll,EndGraphicsJobsAfterScriptLateUpdate,UpdateCustomRenderTextures,XRPostLateUpdate,UpdateAllRenderers,UpdateLightProbeProxyVolumes,EnlightenRuntimeUpdate,UpdateAllSkinnedMeshes,NativeWeaponFrameProbe,ProcessWebSendMessages,SortingGroupsUpdate,UpdateVideoTextures,UpdateVideo,DirectorRenderImage,PlayerEmitCanvasGeometry,UIElementsRenderBatchModeOffscreen,PhysicsSkinnedClothFinishUpdate,FinishFrameRendering,MagicaManager,BatchModeUpdate,PlayerSendFrameComplete,UpdateCaptureScreenshot,PresentAfterDraw,ClearImmediateRenderers,PlayerSendFramePostPresent,UpdateResolution,InputEndFrame,TriggerEndOfFrameCallbacks,GUIClearEvents,ShaderHandleErrors,ResetInputAxis,ThreadedLoadingDebug,ProfilerSynchronizeStats,MemoryFrameMaintenance,ExecuteGameCenterCallbacks,XRPreEndFrame,ProfilerEndFrame,GraphicsWarmupPreloadedShaders,ObjectDispatcherPostLateUpdate
Before render sample=11 Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03017m current-local-state-surface-distance=0.03017m render-vs-state-distance=0.00000m source=Center: (122.04, 66.30, -325.88), Extents: (0.47, 0.26, 0.41) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.76, 66.40, -326.04) rotation=(314.72, 131.32, 109.03) isPlaying=False
After render Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03017m current-local-state-surface-distance=0.03017m render-vs-state-distance=0.00000m source=Center: (122.04, 66.30, -325.88), Extents: (0.47, 0.26, 0.41) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.76, 66.40, -326.04) rotation=(314.72, 131.32, 109.03) isPlaying=False
PASS native camera after UpdateAllSkinnedMeshes sample=11 frame=54863
Nornforged authored 1 flow particles=18 unsynchronized-rendered-surface-distance=0.03017m current-local-state-surface-distance=0.03017m render-vs-state-distance=0.00000m source=Center: (122.04, 66.30, -325.88), Extents: (0.47, 0.26, 0.41) localPosition=(0.00, 0.00, 0.00) worldPosition=(121.76, 66.40, -326.04) rotation=(314.72, 131.32, 109.03) isPlaying=False
PASS live AxeStone hand cycle=10 attachments=1 particles=22 modelScale=(1.00, 1.00, 1.00)
PASS actual main-scene AxeStone with one 95 percent PQS Frostbound perk: three native sheath/draw cycles and two native attacks sampled at twelve completed frames including an intentional 140ms frame hitch, rendered body attachment, current model identity, no duplicate owners or orphan visible cohorts, unchanged saved fate and complete unequip cleanup
Live weapon captures preserve native animation in a continuously visible-player fixture; remote multiplayer and GPU performance are not asserted here.

=== NATIVE ITEM/ARMOR STAND PROBE ===
Native ItemStand and ArmorStand: signed ItemData round-trip, actual models, cosmetic-only lifecycle.
Native prefab: itemstand
Native prefab: ArmorStand
PASS native fixtures and authority
Slot 0: Chest supports Chest
Slot 1: Legs supports Legs
Slot 2: Helmet supports Helmet
Slot 3: BackLeft supports Shield
Slot 4: BackRight supports OneHandedWeapon,Bow,Tool,TwoHandedWeapon,Torch,Attach_Atgeir
Slot 5: Shoulder supports Shoulder
Slot 6: Utility supports Utility
Slot 7: Chest supports Chest
Slot 8: Legs supports Legs
Slot 9: Helmet supports Helmet
Slot 10: BackLeft supports Shield
Slot 11: BackRight supports OneHandedWeapon,Bow,Tool,TwoHandedWeapon,Torch,Attach_Atgeir
Slot 12: Shoulder supports Shoulder
Slot 13: Utility supports Utility
PASS actual native armor stand slot mapping
Verified populated helmet survives 1 empty native aliases without changing their saved state
PASS actual native stand meshes and untouched signed records
PASS unverified metadata is hidden and same-prefab record changes refresh
PASS restore, native model replacement and pose changes
PASS old model cleanup, current identity and native remove
PASS native stand lifecycle complete. Main-scene local authority only; no second network client or manual stand interactions claimed.
PASS all native removed items leave no active owned effects

=== FINAL TWO-ITEM IN-ENGINE SHOWCASE ===
Source run: nornforged-vfx-capture-c2d3a334f3844fa4aab9405547a23f42
Production DLL hash matches both native validation runs above.
The fixture keeps authored particles under the production single clock; native reference systems alone may use automatic Play. Each pivot change is followed by an actual native frame before rendering. No simulation calls or effects are added by the capture fixture.
Game 1.0.16; Unity 6000.0.75f1
Nornforged assembly 0.4.3.0
Actual native game renders, isolated attachment presentation. No claim of in-world multiplayer or animation validation.
SwordBronze / rank +1, independently selected high-strength perk channel
BowFineWood / rank +1, independently selected high-strength perk channel
Frame sequence group 0: 120 actual native frames; real duration 6.01s; timing.ffconcat preserves measured game animation timing.
PASS two original weapon models at native scale with actual authored effects, 1200x720, soft stage light and eight-degree rotation. In-engine example, not combat footage.
