Nornforged 0.5.0 UI candidate verification — 2026-09-30
Nornforged.dll SHA256: E3A383E6726EFCEA0DCD81E2579E8B7FE6713741BBC651860DCC8F0E749E7ADD
Isolated saves/plugins; installed player profile unchanged.
Run: .local/nornforged-smoke-29be01cc54f746b5a0a43a0bca36fef5

PASS actual Unity/BepInEx startup
PASS all plugin Harmony patches applied (199 methods)
PASS actual Unity Mono crypto RNG and configuration validation
PASS native ItemData.Clone separate metadata
PASS native ItemData.Save/Load fate metadata and quality
PASS actual Unity Mono authority migration, independent key backup, config-key deletion, corrupt-key recovery, original signature verification and atomic backup replacement
PASS actual patched damage, original baseline elemental additions, and shared-template isolation
PASS native quality upgrade recalculates percentages without changing Fateprint
PASS copied and independently rolled instances keep separate active outcomes
PASS native durability, quality scaling, both weight paths and skill-scaled block hooks
PASS saved strengths survive configuration edits; unsupported versions and invalid signatures disable effects safely
PASS real item penalties and aggregate cost/stat safety floors
PASS signed Default rank-zero outcome retains all native item stats and exact metadata through quality upgrades without activating perks
PASS real HitData serialized stamp/proc/proof framing and native clone preservation
PASS native resistance, armor and difficulty hooks conserve per-source damage
PASS additive conditional bonuses retain separate source portions without applying damage twice
PASS native hit cloning and network roundtrip preserve independent owner/source traces
PASS native burning/spirit additions remain unchanged while pooled attacker attribution survives DOT modifiers
PASS native damage text precision hook installed; no damage introduced by telemetry

PASS Arsenal native transforms, enemy factions/counts, launch provenance, grounded/swimming state, health/resources and SEMan status conditions
PASS native remote ZDO Wet/Burning/Frost condition masks work without local status objects and clear independently
PASS Arsenal additive direct-only damage attribution conserves totals without boosting native fire DOT; secondary/reflection scopes rejected
PASS Arsenal confirmed-hit attack dedup, actual-cost rhythm, staff repair/kill refunds, shared barrier and cooldowns
PASS actual patched native BlockDamage and RPC stamina debit feed shield refunds, repair, regen delay and parry buff; shield unequip and secondary-hit guards
PASS production frost-retaliation native Damage dispatch carries exact blocked-damage amount, perk attribution and recursion marker
PASS failed stamina/guard and innate-resistance-only blocks award no barrier, wrath, reflection, regeneration, refund or Bastion count; measured successful blocks do
Arsenal fixtures do not replace a live networked combat, timed-input or world-save test.
PASS all 22 new melee effects have executable player-craftable or Frost Foundry equipment; NPC attack templates cannot satisfy reachability. Butcher knife, harpoon, torch, tankard, bare fists, armor and pickaxe are excluded. Native inactive crossbow/fire/frost staff secondaries cannot admit attack-stamina perks.
PLACEMENT duelist_step: 14 native items, e.g. SwordBlackmetal
PLACEMENT longpoint: 14 native items, e.g. SwordBlackmetal
PLACEMENT broad_sweep: 9 native items, e.g. THSwordGold
PLACEMENT blade_pivot: 9 native items, e.g. THSwordGold
PLACEMENT committed_swing: 9 native items, e.g. THSwordGold
PLACEMENT hushed_steel: 11 native items, e.g. KnifeBlackMetal
PLACEMENT needlework: 11 native items, e.g. KnifeBlackMetal
PLACEMENT ringing_steel: 11 native items, e.g. KnifeBlackMetal
PLACEMENT hewing_edge: 10 native items, e.g. AxeBlackMetal
PLACEMENT hooked_edge: 10 native items, e.g. AxeBlackMetal
PLACEMENT haft_balance: 8 native items, e.g. Battleaxe
PLACEMENT long_haft: 8 native items, e.g. Battleaxe
PLACEMENT rising_tempo: 5 native items, e.g. AxeBerzerkr
PLACEMENT twin_finish: 5 native items, e.g. AxeBerzerkr
PLACEMENT controlled_impact: 13 native items, e.g. Club
PLACEMENT ringing_blow: 13 native items, e.g. Club
PLACEMENT earthshaker: 7 native items, e.g. SledgeDemolisher
PLACEMENT narrow_shock: 7 native items, e.g. SledgeDemolisher
PLACEMENT spear_cast: 13 native items, e.g. SpearBronze
PLACEMENT high_thrust: 13 native items, e.g. SpearBronze
PLACEMENT sweeping_reserve: 8 native items, e.g. AtgeirBlackmetal
PLACEMENT pugilist_flow: 6 native items, e.g. FistBjornClaw
PASS all 18 ranged/magic perks have player-craftable or Frost Foundry carriers; NPC attack templates cannot satisfy reachability
trueflight=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
snap_shot=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
silent_string=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
warped_limbs=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
through_shot=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
reserve_crank=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
crank_friction=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
loose_stock=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
wide_sigil=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffLightning,StaffThunderBlood
spellweaver=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffLightning,StaffThunderBlood
runic_afterglow=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffThunderBlood
focused_burst=StaffIceShards,StaffLightning
steady_formula=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffLightning,StaffThunderBlood
runic_drag=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffThunderBlood
bloodcraft=StaffFrostOrbs,StaffRedTroll,StaffShield,StaffSkeleton,StaffSpiritCaller
wardweave=StaffShield
lingering_ward=StaffShield
blood_debt=StaffFrostOrbs,StaffRedTroll,StaffShield,StaffSkeleton,StaffSpiritCaller
STAFF StaffClusterbomb type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffFireball type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffFrostOrbs type=Projectile width=0 attackStatus=Staff_FrostOrbs consumeStatus=none
AREA StaffFrostOrbs/staff_FrostOrbs_aoe triggers=False network=False status=Staff_FrostOrbs/ ttl=3 interval=0 damage=0
STAFF StaffGreenRoots type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffIceShards type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffLightning type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffOrbofAhri type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffRedTroll type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffShield type=Projectile width=0 attackStatus=Staff_shield consumeStatus=none
AREA StaffShield/staff_shield_aoe triggers=False network=False status=Staff_shield/ ttl=3 interval=0 damage=0
STAFF StaffSkeleton type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffSpiritCaller type=Projectile width=0 attackStatus=none consumeStatus=none
STAFF StaffThunderBlood type=Projectile width=0 attackStatus=none consumeStatus=none
Ranged expansion: 96 native checks passed
trueflight=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
snap_shot=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
silent_string=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
warped_limbs=Bow,BowAshlands,BowAshlandsBlood,BowAshlandsRoot,BowAshlandsStorm,BowDraugrFang,BowFineWood,BowGold,BowGold_BloodLightning,BowGold_FrostFire,BowHuntsman,BowSpineSnap
through_shot=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
reserve_crank=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
crank_friction=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
loose_stock=CrossbowArbalest,CrossbowGold,CrossbowGold_BloodLightning,CrossbowGold_FrostFire,CrossbowRipper,CrossbowRipperBlood,CrossbowRipperLightning,CrossbowRipperNature
wide_sigil=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffLightning,StaffThunderBlood
spellweaver=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffLightning,StaffThunderBlood
runic_afterglow=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffThunderBlood
focused_burst=StaffIceShards,StaffLightning
steady_formula=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffLightning,StaffThunderBlood
runic_drag=StaffClusterbomb,StaffFireball,StaffGreenRoots,StaffIceShards,StaffThunderBlood
bloodcraft=StaffFrostOrbs,StaffRedTroll,StaffShield,StaffSkeleton,StaffSpiritCaller
wardweave=StaffShield
lingering_ward=StaffShield
blood_debt=StaffFrostOrbs,StaffRedTroll,StaffShield,StaffSkeleton,StaffSpiritCaller
PASS all seven guard additions have actual native ShieldWood/SpearChitin homes and exclude builder tools
PASS native quality-scaled deflection, own-shield movement refund, residual block stagger and block stamina drawback execute
PASS Counterpoise successful enemy block, same shield, one reply, PvP/projectile/proc exclusion, persisted cooldown and shield-swap invalidation
PASS native harpoon SetAttacker reads authenticated original launch after HitData wire roundtrip, preserves launch range, does not compound and rejects tampered proof
PASS Guard expansion: 62 native-fixture assertions
PASS actual signed work proof, tamper/prefab/size rejection and immutable native terrain settings
PASS actual ZPackage brush extension recomputes four independent dimensions, bounds radius and preserves unknown tails
PASS manual brush choice/shape roundtrip and non-finite rejection; optional MyDirtyHoe receiver restoration not loaded
SKIP MyDirtyHoe 2.1.1 wire regression: exact optional version not loaded
PASS skipped placement/growth prefixes preserve scopes and fields; square brush permission footprint includes corners
PASS garden preflight uses native HaveStamina boundary at world stamina rates 0.5, 1 and 2
PASS optional AzuAreaRepair durability integration not loaded
PASS native walking/jogging/running/crouch desired-speed injection, cap, penalty and unequip
PASS 500-frame native velocity regressions: rise/fall/momentum and two ballistic jumps per equipment case
PASS rank +9/+12 maximum rolls, stacked equipment, Wet and temporary dodge-speed cases
PASS native SEMan noise, sneak-condition visibility, jump-height conversion and timed-block hooks
PASS real equipped contribution stacking, noise/jump/parry safety ceilings and unequip removal
PASS native Rested comfort duration and repeated refresh without compounding
PASS signed work-tool equip duration, durability debit and native held-tool stamina baseline
Survival checks use inactive native components; actual food/Wet ticking, air-jump execution and combat actions were not simulated.
PASS native regeneration and cost composition: 224 assertions
Rested native multipliers: stamina=2, health=1.5, Eitr=2
Resting native multipliers: stamina=4, health=3, Eitr=4
Wet native multipliers: stamina=0.85, health=0.75, Eitr=0.85
PASS Rested/Resting/Wet native application/removal, signed bonuses/penalties and conditional regeneration without compounding
PASS all eight native cost/fall paths, base arguments, minZero and non-player neutrality
Regeneration checks invoke actual native SEMan and status methods on inactive characters; full Player.UpdateStats/world timing is not exercised.
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 native trail head masks, independent dual heads, transformed attachment identity, bow grip exclusion, focus-staff exceptions and profile-aware sample budgets
PASS model-aware native routing: 268 equipment templates, 308 parts, 105 artist-authored striking intervals, 306 sampled parts; blade=42, bow-limbs=33, casting-focus=3, club-or-torch-head=2, crossbow-limbs=23, excluded-grip-or-string=2, fist-surface=6, loaded-bolt=1, native-striking-edge=105, paired-axe-head=8, separate-striking-part=1, shield-face=22, spear-tip=14, staff-crown=10, striking-head=10, unknown-crossbow-surface=3, unknown-real-surface=23
PASS actual native profile renders: AxeStone/0=7177 protected native pixels / 5390 affected blade or limb pixels / 0 protected changes; SwordBronze/0=1278 protected native pixels / 4216 affected blade or limb pixels / 0 protected changes; BowFineWood/0=264 protected native pixels / 1390 affected blade or limb pixels / 0 protected changes; AxeBerzerkr/0=5688 protected native pixels / 3750 affected blade or limb pixels / 0 protected changes; AxeBerzerkr/1=4725 protected native pixels / 5518 affected blade or limb pixels / 0 protected changes; AxeBerzerkrBlood/0=5901 protected native pixels / 2171 affected blade or limb pixels / 0 protected changes; AxeBerzerkrBlood/1=4773 protected native pixels / 4156 affected blade or limb pixels / 0 protected changes; AxeBerzerkrLightning/0=4693 protected native pixels / 4920 affected blade or limb pixels / 0 protected changes; AxeBerzerkrLightning/1=4766 protected native pixels / 5028 affected blade or limb pixels / 0 protected changes; AxeBerzerkrNature/0=6069 protected native pixels / 3344 affected blade or limb pixels / 0 protected changes; AxeBerzerkrNature/1=6145 protected native pixels / 3443 affected blade or limb pixels / 0 protected changes
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 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.05177m, .9s-to-expiry maximum=0.01997m
PASS AxeStone rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.03233m, .9s-to-expiry maximum=0.03474m
PASS AxeStone mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.01945m, .9s-to-expiry maximum=0.05074m
PASS AxeStone live parent rescale: rendered surface distance=0.00000m
PASS SwordBronze native imported scale: rendered birth error=0.00000m, frost surface distance=0.01287m, .9s-to-expiry maximum=0.04156m
PASS SwordBronze rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.02185m, .9s-to-expiry maximum=0.08148m
PASS SwordBronze mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.02177m, .9s-to-expiry maximum=0.04923m
PASS SwordBronze live parent rescale: rendered surface distance=0.00000m
PASS BowFineWood native imported scale: rendered birth error=0.00000m, frost surface distance=0.04375m, .9s-to-expiry maximum=0.02150m
PASS BowFineWood rotated nonuniform parents: rendered birth error=0.00000m, frost surface distance=0.02634m, .9s-to-expiry maximum=0.04498m
PASS BowFineWood mirrored sheared parents: rendered birth error=0.00000m, frost surface distance=0.03541m, .9s-to-expiry maximum=0.05512m
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 native recipe availability: enabled Flametal Shield, disabled prototype rejection, first current seasonal group, expiry/order refresh, dedicated player-prefab fallback and missing context; disposable fixtures restore native references
PASS equipment recipes: 313 native equipment entries; 237 exact, 474 Unity clone aliases, 52 AAA style aliases; 76 unavailable/upgrade-only rejects, 0 authoritative alias names left intact; 32 rejection/precedence fixtures. ShieldWood and ShieldFlametal passed. Audit: Nornforged-equipment-recipes.txt
PASS equipment catalog: 829 templates, 1958 quality variants, 1929 scored variants; all templates unchanged. Nornforged-equipment-catalog.json records native stats, recipe progression and runtime score model 3.1. Q1 axe=100.00 mace=100.00; Q2 axe=110.00 mace=110.00; Q3 axe=120.00 mace=120.00; Q4 axe=130.00 mace=130.00
PASS saved-PQS semantic name colours, neutral mechanics and saved PQS resolve all 248 effects, format F6 percentages without changing saved values and shorten descriptions by 51.6%
PASS saved per-parameter PQS mean, independent cooldown score, negative severity, unavailable-score handling and invariant decimals; no value/range reconstruction
PASS actual uGUI mouse-drag conversion, screen clamping, one-save release, config reload, resize/scale restoration and right-click exclusion
PASS original synthesis for all 18 rarities: finite, bounded PCM, click-free envelope and escalating positive tiers
PASS welcome, damage ledger and HUD fit nine display configurations including 4K, 1440p, ultrawide and pre-scaled native canvases; reading size stays consistent and normalized wheel/trackpad input scrolls at normal speed
PASS F9 equipment audio controls survive canvas rebuild, mute and unmute immediately, step volume by 5.00%, clamp at 0.00%/100.00%, and stay fully inside the enlarged native panel and all nine display canvases
PASS native slot surface tint: 0 loaded prefab layouts plus detached extension/cursor fixtures; original alpha/sprite/material/geometry, button-state opacity and feedback, and every foreground indicator preserved; all 19 ranks, reveal transition, recycled/disabled/closed/default cleanup and external-theme preservation
PASS real uGUI welcome/ledger, native fonts, all 19 odds and clipped scrolling; inventory rarity tints the native surface without added borders, rings, count text or score badges
PASS native Unity camera rendered isolated welcome, damage ledger and explicitly enabled HUD artwork with illustrative data; PNG previews saved, HUD digits retain at least 3:1 interior text/background contrast; live window visibility is verified separately
PASS native Unity camera rendered compact weapon tooltips; three and twelve perk text fits at fixed readable font size
PASS packaged PNG decoding/transparency, shared sprite reuse, native artwork aspect, decorative pointer pass-through, intro and branded guide at 720p/1080p/4K/pre-scaled canvases, single completion, cancellation/replay, session exit and repeated disposal with balanced input and unchanged game clock
PASS native branding intro and guide camera captures saved at 720p, 1080p and 4K
PASS compact hover: full vertical native statistics beside twelve single-line perks and 24-row Shift unions without scrolling across native display sizes; aligned name/value/description fields, full names use 14–15 px, only summaries shorten
PASS reported seven-perk axe layout, all registry names/effects at 560 px, native tooltip skin, row-only raycasts, hover darkening and separate clamped PQS/odds explanations, stable hierarchy and cleanup
248 semantic perk names; 0/25/50/50.01/75/100 PQS colours and glow, saved mean, inactive warning, bounded name-only mist, deferred canvas-safe refresh, preferences, shared materials, native clone and cleanup
248 perks in English/German at 514/536/560/600/708 px: content-measured shared columns, right-aligned tabular values and decimal positions, compact gaps, full names and values at >=14 px, correct signs/units, live explanation refresh through pointer handoff, explicit F6 explanation route, native hover percentages and unchanged row hit targets
PASS equipment comparison 109 assertions (native slot/role, saved fate, direct stats, inactive states and immutable source items)
PASS 1044 inline Shift comparisons: localized native stats, exact values, percentage points, all perk parameters, neutral/inactive/lost cases, read-only previews
PASS comparison panel: twelve saved perks with gained/lost/changed effects, all three tabs, native text fit and non-overlapping body text across nine display configurations including 4K, 1440p, ultrawide and scaled native canvases in English and German
PASS comparison input surfaces, normalized wheel-notch and proportional trackpad speed, wired close/reference/tab controls, clipped scroll hierarchy and last-row access, stable animation, repeat-open reuse, ordinary/negative/inactive item cleanup; native screenshots contain illustrative saved test rolls
PASS comparison controller native-canvas attachment, hover handoff, remembered-reference comparison, close/reopen reuse and own input-state cleanup; actual main-scene input and gamepad navigation require interactive coverage
PASS single-item forge socket, fitted EN/DE labels, FHD/4K/native canvas scaling, one fixed twelve-perk sheet, single-line rows, no wheel movement, every row within bounds, standalone fixture position resize and close/hide lifecycle. Paid actions and actual drag ownership are exercised by the separate native world checks.
PASS embedded single-socket mode: EN/DE controls, bounded 720p/1080p/4K/pre-scaled host geometry, no floating title/canvas/drag handle, one fixed twelve-perk sheet and no scrolling. Actual native parenting and frame restoration are exercised by -WorldForge.
PASS forge screenshots use illustrative signed native-item clones, a single socket, base-recipe cost/refund rows, native textures and single-item salvage confirmation. No transaction buttons were invoked.
PASS Gear Score UI: ordinary native equipment, signed positive/negative/zero Shift differences, incompatible-role suppression, F6 role-aware breakdown and unchanged item data; header text fits 12-perk hovers across nine displays in English and German
PASS Gear Score adapter 285 assertions: native quality formulas, physical/element/gathering separation, cache invalidation, invalid-data preservation, native typed weakness/resistance, conditional shield resistance, mage armor and native shield-staff magnitude
PASS cinematic forge score: exact signed prefix counter; clear fourth-perk hammer impact; distinct eighth/ninth leaps; shaded ballistic sparks with short glints, no colored side walls; central text clear; non-raycast bounded mesh; completed-craft shared celebration; decay/hide/dispose/Show-all reset; reduced motion; 32 bounded audio variants.
PASS raven Roll button: original steel artwork; actual emblem-alpha stencil clips frost, ember and precise glint; no circular rings or continuous pulse; scarce motes and directional hammer sparks; existing pointer/Submit action; focus/disabled; serialized native capture; reduced motion; native Salvage/Recover restoration; no transaction side effects.
PASS grounded forge audio: 851 assertions; all12 steps have independently increasing weight, stronger4/8 thresholds, bounded PCM and mix controls; native=UI_Build_Metal_01
Stage 3 -> 4: low-band RMS 0.048384 -> 0.090021
Stage 7 -> 8: low-band RMS 0.171036 -> 0.244264
Stage 8 -> 9: low-band RMS 0.244264 -> 0.297670
Stage 11 -> 12: low-band RMS 0.419324 -> 0.490601
Perk 1: mixed original RMS 0.007560..0.007560
Perk 2: mixed original RMS 0.010240..0.010240
Perk 3: mixed original RMS 0.014060..0.014060
Perk 4: mixed original RMS 0.024500..0.024500
Perk 5: mixed original RMS 0.031320..0.031320
Perk 6: mixed original RMS 0.040200..0.040200
Perk 7: mixed original RMS 0.051590..0.051590
Perk 8: mixed original RMS 0.079000..0.079000
Perk 9: mixed original RMS 0.095760..0.095760
Perk 10: mixed original RMS 0.115700..0.115700
Perk 11: mixed original RMS 0.139860..0.139860
Perk 12: mixed original RMS 0.169000..0.169000
PASS equipment audio: 324 assertions; 12 native families, bounded dual-family mix, native attack hooks, owner/sequence/time/distance/rate validation. 1 local native-PCM listening previews (not a substitute for gameplay listening). Acoustic listening and live remote transport remain separate acceptance checks.
PASS equipment audio native runtime: 13 assertions; real native attack and projectile setup/terminal-hit methods, immutable launch palette and unchanged damage/velocity.
PASS: staged positive/negative rarity palette, concealed final count/rarity, exact prefix score, singular/plural perk and penalty captions, no metadata mutation
PASS forge socket native serialization preserves prefab, quality, durability, crafter, variant, world level, icon and custom metadata.
PASS Shift hold/release updates the same passive panel with native-value and perk deltas, restores plain text, and never changes saved data or equipment
PASS native CreateItemTooltip scope and unchanged topic; single passive hover panel preserves native delay and reuses model/layout over 60 observations
PASS recycled slots: perk item to unrated, signed Default and empty; previous native CanvasGroup state restored exactly
PASS F6 hover handoff, native HideTooltip and source OnDisable cleanup
PASS scoped suppression finalizer on native exception; gamepad selected-slot placement (AzuEPI prefix absent)
PASS real native OnPointerEnter / 0.5s timer / patched LateUpdate and controller Tick show hover for 60 controlled updates on native inventory canvas
PASS native inspection of inactive armor with console open; active/inactive/empty slot reuse, disabled source and HideTooltip cannot leak stale item targets
PASS native-frame Jotunn input-block compatibility, explicit/menu/console/text-dialog/inventory gates and native fallback; inactive/missing shared custom front independence; pointer-exit cleanup
PASS native icon-to-row handoff pins the same tooltip for 60 controlled updates; row raycasting opens separate details, preserves F6, and never intercepts outside the sheet
PASS native overlay render registration across two real Unity frames: compact row depth 12, actual pointer raycast reaches the rendered row
PASS inventory and hotbar keep icon numbers hidden, including on hover: native raycasts, stationary mouse, occlusion, controller mode, slot reuse, empty/disabled icons and close/reopen
Main scene hover canvas before rebuild: (x:-1431.00, y:-751.50, width:2862.00, height:1503.00)
Main scene hover canvas after rebuild: (x:-1431.00, y:-751.50, width:2862.00, height:1503.00)
Main scene hover canvas after native GuiPixelFix.LateUpdate: (x:25.00, y:25.00, width:-50.00, height:-50.00)
Main scene hover canvas inspector ready after native LateUpdate: True
Main scene hover canvas after second rebuild: (x:25.00, y:25.00, width:-50.00, height:-50.00)
PASS exact main.unity LoadingGUI parent geometry and native GuiPixelFix hover initialization
PASS actual patched HotkeyBar.UpdateIcons on inactive player and detached slot hierarchy: sparse item order, slot recreation, native bindings and null-player cleanup
PASS native slot tint preserves original alpha, sprite, material, foreground labels and durability; no added rarity frame, perk count or Gear Score; Azu quick-slot ordering and recycled/Default/unrated/dead-player cleanup (detached uGUI fixture; HUD prefab is not loaded in menu)
PASS equipment icons contain no Gear Score or perk-count text in normal, hovered, upgraded, reveal, empty or disabled states; no extra graphics/materials; native quality preserved; legacy score cleanup
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=4383/4383, frost bow=3602/3602, lightning arbalest=1424/1424, mixed staff frost=769/769; 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-29be01cc54f746b5a0a43a0bca36fef5\BepInEx\config\Nornforged-weapon-surface-outdoor.png; [WORKSPACE]\.local\nornforged-smoke-29be01cc54f746b5a0a43a0bca36fef5\BepInEx\config\Nornforged-weapon-surface-indoor.png; [WORKSPACE]\.local\nornforged-smoke-29be01cc54f746b5a0a43a0bca36fef5\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-29be01cc54f746b5a0a43a0bca36fef5\BepInEx\config\Nornforged-elemental-armor.png
Standalone test profile; no optional server modpack requested.
PASS repeat and replaced-SharedData isolation without modifying ordinary item template
SKIP ItemStacksItemWeights: optional assembly absent
SKIP AzuAutoStore: optional assembly absent
SKIP QuickStackStore: optional assembly absent
SKIP RossItemDrawers: optional assembly absent
SKIP ingredient-quality/container policy guard: optional assemblies absent
Inventory interop checks do not simulate network ownership, live containers, a drawer deposit RPC, or bulk crafting resource consumption.
SKIP EpicLoot focused tests: optional DLL absent
SKIP AzuEPI focused test: optional DLL absent
SKIP ImpactfulSkills focused test: optional DLL absent
PASS skipped native damage receipt cannot grant hit rewards
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 branding sprite/texture cache clears idempotently and reloads independent native resources; deferred destruction is checked next frame
Loaded eligible recipe pools checked: 313
Game 1.0.16
Interactive gameplay and multi-client network sessions were not exercised by this isolated smoke test.
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
PASS deferred Unity branding cleanup destroys intro/presentation roots, decoded test images and both generations of shared sprites/textures
