Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
HarrisonEpicSkillSystem
Progressive awakening tree with tier reveals, isolated attribute columns, a fixed five-slot equipping panel, class passives and native skill effects.
By Harrisonburg
CHANGELOG
Release 0.0.31
- Version 0.0.31: accumulated Second/Mythic skill routes and Ultimate Z binding compiled with zero warnings/errors; 29,331 skill checks passed (game resources stubbed). Fixed a VFX local-name collision, updated Unity Rigidbody API and refreshed regression expectations/quest fixture. User explicitly clarified that build requests authorize compilation and release ZIP creation/replacement. Release 0.0.31 ZIP created and verified; compiled BepInPlugin/assembly/manifest versions match. DLL: bin/Release/net48/HarrisonEpicSkillSystem.dll; package: HarrisonEpicSkillSystem-0.0.31.zip; historical source-only notes below are superseded for this release. Runtime visuals and previously documented gameplay limitations still require in-game verification.
Ultimate hotkey update
- Ultimate Slot 5 now defaults to Z. Startup migrates the previous plain G binding to Z; other customized shortcuts are preserved. HUD/tree binding labels already read the live Controls/UltimateSkill entry and automatically display Z.
- This entry supersedes historical G-default references below. Version remains 0.0.30; no build/tests/package/release scripts run. Existing binaries are unchanged until an explicit build request.
Paladin Mythic Ultimate source update
- Tab 4, Level 90+: explicit Crusader -> DivineKnight, Justicar -> Arbiter, Saint -> Seraph lineage validation; distinct Defense, Intelligence/Defense hybrid and Defense class paths bypass Life. Existing persisted ultimate quest flag gates model/service purchases; permanent learned HUD Slot 5 with configurable G default reused.
- HeavenlyBastion (paladin_templar.rank3.4): 180s default cooldown; shield_fortify, enormous white-gold native ShieldBraker/resurrection walls attached to player root via existing SetParent(player.transform, false). Six-second damage/push/stagger immunity uses finite SEMan effects on caster and nearby allied player clients within seven metres at cast reception. Each client affects only its owned player; mutually PvP-enabled players excluded. Requires the mod on allied clients; NPC/tamed ally immunity not implemented. Incoming-hit immunity does not intercept direct health assignment/environmental loss.
- FinalJudgment (paladin_inquisitor.rank3.4): 120s default cooldown; attack_sledge, huge white-gold native burn/Eikthyr lightning columns emitted only at actual successful hit coordinates. Existing protected Nova damage retained.
- SeraphicGrace (paladin_clericknight.rank3.4): 150s default cooldown; staff_summon prayer invocation, 4x root-following native healing/starlight dome. Six-second local caster support heals ten HP once per second and repeatedly clears existing native Burning/Poison/Frost/Freezing/Tarred whitelist. No arbitrary status deletion, ally healing, resurrection or permanent stat mutation.
- Support skills no longer execute their previous offensive Nova template; stable IDs, node/class/quest/level gates, costs and other classes remain unchanged. Native replicas strip gameplay components; finite lifetimes retained; existing cooldown config overrides respected. Screen coverage/geometry are native particle approximations requiring in-game verification.
- CHANGELOG.md, README.md and summary.md updated immediately; delimiter/three-route/name source audit passed; lineage, cooldown, column, Level 89/90 and root/hit route regression coverage prepared. No compilation/tests/build/release/package scripts run under build-only-on-explicit-request instruction. Version remains 0.0.30; DLL/ZIP omit all Second/Mythic source changes. Future agents must compile/test on explicit build request and validate multiplayer allied immunity and native assets in game.
Rogue Mythic Ultimate source update
- Tab 4, Level 90+: explicit Shadowblade -> NightReaper, Blademaster -> SwordSaint, Phantom -> VoidWalker validation; distinct class-owned Agility paths bypass Life. Existing persistent quest flag locks both tree-model and service purchases; learned ultimate automatically activates exclusive persistent HUD Slot 5 with configurable G default.
- ReapersHarvest (rogue_assassin.rank3.4): 120s default cooldown; fast attack_knives visual-model multi-target displacement, local darkness border particles and oversized black/crimson native blood-slash arcs at actual successful hit coordinates.
- Omnislash (rogue_duelist.rank3.4): 140s default cooldown; 3x dagger animation speed and rapid visual-model dashes, restored on cleanup; temporary per-instance mesh transparency uses existing camouflage restoration. Four intersecting native sword-trail copies plus dense silver sparks per successful strike approximate hundreds of cuts without unbounded object spawning.
- DimensionalRift (rogue_trickster.rank3.4): 150s default cooldown; staff_cast with inverted neon violet shaman particles, expanding native glowing rings at caster center and a local screen-space shard overlay. Void pull is a particle illusion; no gameplay banishment, enemy pulling, permanent invisibility or AI changes.
- Structural scope preserves original protected Nova damage, costs, target cap and stable IDs; players/allies/tamed entities unaffected. Teleports/dashes manipulate the visual model only, not player physics. Native effects remain optional and finite, with damage components stripped. Existing cooldown config overrides retained.
- CHANGELOG.md, README.md and summary.md updated immediately; delimiter/three-route/name source audit passed; lineage, cooldown, column, Level 89/90 and hit/screen route regression coverage prepared. Compilation/tests/package/release scripts not run per build-only-on-explicit-request instruction. Version remains 0.0.30 and DLL/ZIP omit Second/Mythic source edits. Future agents should compile/test on explicit build request, then validate asset availability, transparency, animations and screen coverage in game.
Hunter Mythic Ultimate source update
- Tab 4: explicit Pathfinder -> Windrunner, BeastLord -> PrimalKing, Sharpshooter -> Deadeye lineage validated. Three distinct class-owned Agility paths (PrimalKing Agility/Defense header) bypass Life. Hunter-only rank-3 Mythic availability and ultimate metadata now require Level 60 as explicitly requested; other families retain Level 90. Existing quest locks and permanent learned Slot 5/configurable G routing retained.
- GaleForce (hunter_ranger.rank3.4): 100s default cooldown, bow_fire; eye-origin native iron arrow and three green wind missile rays, local camera-border wind and moss-green impact bursts. Gameplay uses a bounded 10,000m piercing cast with three rays; solids/allies stop travel, hostile damage deduplicated. This approximates infinite range safely; native visual arrow lifetime remains six seconds.
- ApexStampede (hunter_beastmaster.rank3.4): 120s default cooldown, inquire; three giant translucent native lox-hit effects and three wolf-spawn echoes rushing forward in lanes. Spectral creatures are particle approximations, not spawned AI; existing protected Nova damage retained rather than damaging every entity.
- OneShotOneKill (hunter_marksman.rank3.4): 150s default cooldown, bow_fire with 1.2s default windup; single eye-origin native arrow with elongated sledge tunnel and large arrow-hit terminal boom. Bounded 10,000m ray pierces hostile targets, stops at solids/allies; no unconditional kill.
- IDs, costs and damage templates retained. Native VFX gameplay components stripped, bounded cleanup preserved, actual impact replicas emit only Impact layers. Existing cooldown/windup config overrides respected.
- CHANGELOG.md, README.md and summary.md updated immediately. Delimiter/three-route/name source audit passed; lineage, cooldown, column, Level 59/60 and route regression coverage prepared; no compilation, test, release/package execution. Version remains 0.0.30; DLL/ZIP omit all Second/Mythic source edits. Future agents must compile/test only when explicitly asked and verify native assets, level/quest gating and visuals in game.
Mage Mythic Ultimate source update
- Tab 4, level 90+: explicit Archmage -> Arcanist, Occultist -> AbyssLord, HighSorcerer -> AstralSage mappings validated; unique class-owned Intelligence paths bypass Life. Quest locks in TreeModel/SkillTreeService and persistent learned Slot 5/configurable G routing reused.
- ElementalCataclysm (mage_elementalist.rank3.4): 120s default cooldown, six-second staff_cast loop and targeted ground storm with scaled falling fire/frost particles plus four white-blue Eikthyr arcs. VFX-only retargeting; existing Nova damage executor preserved. Native particles approximate meteor/blizzard geometry; screen coverage needs runtime validation.
- VoidCollapse (mage_warlock.rank3.4): 100s default cooldown, staff_summon ground invocation, six-second enlarged black/purple native blob/poison vortex at crosshair ground target. Protected visible hostiles in existing configurable radius receive six one-second decay pulses splitting original damage; local-owner rigidbodies receive continuous horizontal inward force. Players, allies, tamed creatures and wall-obscured targets excluded. Remote-owner gravity remains incomplete and needs multiplayer implementation/verification; no unsafe ownership transfer.
- Supernova (mage_sorcerer.rank3.4): 140s default cooldown, staff_summon compression invocation and white-magenta native resurrection burst scaled 3x at caster root. Existing damage/target protections retained, no unconditional kill or health deletion. Explicit requested name Supernova takes precedence over earlier banned-name terminology.
- Stable IDs, level/quest/node prerequisites, costs, attack loadouts and other families unchanged; existing user cooldown config overrides remain respected. Native damage components stripped from effect replicas and finite cleanup retained.
- CHANGELOG.md/README.md/summary.md updated immediately. Delimiter, three-route/name and regression-link source audit passed; lineage/column/gate/cooldown/visual regression coverage prepared; no compilation/test/package/release execution per build-only-on-explicit-request instruction. Version remains 0.0.30; DLL/ZIP omit Second/Mythic Awake source changes. Future agents should compile/test on explicit build request and verify native visuals in game.
Warrior Mythic Ultimate source update
- Tab 4, level 90+: validated Warlord -> Immortal, Champion -> Conqueror, Guardian -> Aegis. Unique class-owned vertical Attack, Attack/Defense hybrid and Defense paths bypass Life. Logical IDs/prerequisites remain stable.
- GodSlayer (warrior_berserker.rank3.4): 120s default cooldown; hammer jump-slam model animation, huge crimson lox/Eikthyr eruptions only on successful hit coordinates, bounded local camera shake.
- WarlordsDomain (warrior_gladiator.rank3.4): 90s default cooldown; hammer slam, six stone boundaries/amber native particle pillars around casting center. Six-second arena captures up to eight initially visible protected hostiles; six owner-side pulses split existing total damage; only locally owned enemy rigidbodies are contained within the configured radius. Remote-owner containment needs multiplayer verification; no allied/player/tamed targets affected. Native rune/citadel geometry remains a particle approximation.
- Invincible (warrior_protector.rank3.4): 150s default cooldown; shield_fortify, 3x root-parented pulsing dome/spinning stone shards; six-second caster damage/push/stagger immunity via a finite StatusEffect. No permanent immunity/stat changes. Damage immunity uses existing SEMan incoming-hit pipeline; environmental/direct health loss needs in-game validation.
- Quest boolean IsUltimateQuestCompleted (existing persisted quest flag) is enforced in both tree model and service; learned ultimate automatically resolves to exclusive Slot 5, configurable G default unchanged. HUD slot remains visible while ultimate node rank persists; casting still checks quest/class/level. Existing user cooldown config overrides remain respected.
- Source edits only: version 0.0.30 unchanged; no compilation, package or release script run. DLL/ZIP remain older than all Second/Mythic Awake source edits. Native assets/animation appearance and multiplayer behavior require runtime verification. Regression coverage prepared for quest-model bypass, routes, cooldowns and parents; delimiter/three-route/name source audit passed. Future agents must compile/test only on explicit build request.
Paladin Second Awake source update
- Tab 3, level 60+: explicit Templar -> Crusader, Inquisitor -> Justicar, ClericKnight -> Saint mapping validated at registry initialization. Crusader/Saint use Defense paths; Justicar uses Intelligence/Defense presentation. All class-owned layouts bypass Life.
- Crusader: HolyBastion uses shield_fortify with root-parented, enlarged amber ShieldBraker/resurrection wall effects; ShieldOfLight uses mace secondary with a scaled gold Eikthyr wave launched from player root along player forward.
- Justicar: RighteousVerdict uses attack_sledge and white-gold burn/resurrection pillars only on actual successful hit coordinates; AuraOfCensure uses staff invocation with root-attached pulsing amber healing particles/sparks.
- Saint: DivineSanctuary channels staff_cast and follows the player with translucent native healing/star dome particles; Resurrection uses white resurrection shockwave and local camera flash particles, plus the existing caster-only native negative-status whitelist cleanse (Burning, Poison, Frost, Freezing, Tarred). No revive/healing/stat redesign.
- Stable IDs paladin_templar/paladin_inquisitor/paladin_clericknight.rank2.1/.2 preserved; base and First Awake IDs unchanged. Each branch exposes six learned attacks and exactly two distinct equipped attack slots. Sibling/ultimate skills rejected. Existing damage patterns, costs, cooldowns, progression and node gates preserved.
- Native geometry is a particle approximation; availability, animation and screen coverage require in-game validation. Native gameplay components stripped from replicas, lifetimes bounded.
- Regression coverage prepared (pool combinations, lineage, columns, parent/impact routing); delimiter, six-route/name and link source audit passed; compilation/tests not run because the user requires an explicit build request. Version remains 0.0.30; existing DLL/ZIP omit Second Awake source changes. No release/package scripts run. Future agents should compile and run skill-checks only when asked to build.
Rogue Second Awake source update
- Tab 3, level 60+: explicit Assassin -> Shadowblade, Duelist -> Blademaster, Trickster -> Phantom validation; distinct class-owned Agility paths with no Life column. Existing IDs, gates, damage, costs and cooldowns preserved.
- Shadowblade: UmbralDash uses fast dagger/model lunge and wide black wraith/poison smoke; Nightfall uses dagger execution and dark-purple blob particles only on successful contact coordinates.
- Blademaster: BladeDance loops sword spins with root-parented orbiting silver wind/sword trails; Flicker sequences three silver spark cuts at the forward strike vector.
- Phantom: Mirage side-steps the visual model and scatters three fading violet native particle silhouettes; MirrorShard emits a magenta native shaman-particle ring. These are cosmetic approximations, not real clone meshes, AI aggro decoys or gameplay displacement.
- Exact branch pools contain inherited base + First Awake + Second Awake attacks (six); two distinct attack slots enforced, sibling and ultimate attacks rejected.
- Native effects remain optional, bounded and stripped of native gameplay components. Asset/animation availability and appearance require in-game verification.
- Delimiter/three-route/name source audit passed; lineage, cooldown, column, Level 59/60 and route regression coverage prepared; compilation/tests not executed per user instruction to build only when asked. Version remains 0.0.30; DLL/ZIP omit Second Awake source updates. No release scripts run.
Hunter Second Awake Tab3 source update (0.0.30 unchanged)
- Source only per user instruction: no compilation, test execution, release/package scripts or version bump. Existing0.0.30 binaries/packages lack this source update; compilation/native visuals unverified until requested build/game check.
- Explicit validated ClassProgression.SecondHunterParents: Pathfinder←Ranger, BeastLord←Beastmaster, Sharpshooter←Marksman. Existing branch/rank configuration already matched these chains; startup verifies parent family/branch and consecutive rank. Later tiers remain Windrunner/PrimalKing/Deadeye.
- Tab3 paths: Pathfinder AGILITY Trail Oath → Hidden Fang → Ambush → Watchkeeper → HunterSense; BeastLord AGILITY/DEFENSE Alpha Oath → Dominion → AlphaCall → Wildrage → PrimalFury; Sharpshooter AGILITY Hawkeye → Longdraw → Snipe → Killshot → DeadEye. Attack/Agility presentation swaps, saved nodes/gates/passives and level60 requirements preserved, Life excluded.
- Ambush (
hunter_ranger.rank2.1): dodge windup then attack_spear release; moss-green native stone fragments emitted on successful existing projectile raycast contact at exact hit.m_point. Existing Projectile damage mechanic retained despite melee-themed presentation; no physical roll displacement or added damage. HunterSense (hunter_ranger.rank2.2): crouch stance, thin bright-green native roar scan expanding at player root center, lifetime2seconds; no new detection gameplay. - AlphaCall (
hunter_beastmaster.rank2.1): inquire roar, massive spectral native lox-hit/stomp effect scaled3 lunges from player root along player forward at default18m/s, lifetime1.5seconds; particle spirit representation only, no creature-head mesh/actual summon. PrimalFury (hunter_beastmaster.rank2.2): attack_knives loop0.3s over2.4s; neon-green right and orange left native slash trails attached to weapon-hand bones via existing SetParent(false), lifetime2seconds. - Snipe (
hunter_marksman.rank2.1): bow_fire default0.85s draw windup (user timing overrides respected), native iron arrow at exact eye position/forward, default100m/s with compressed attached native wind tunnel, lifetime1.5seconds. DeadEye (hunter_marksman.rank2.2): bow_fire, native arrow-hit/spark sonic ring0.45m beyond right weapon-hand anchor, expanded with1second cleanup. Existing damage mechanics unchanged. - Pathfinder/BeastLord/Sharpshooter backend equip/pool/config resolution accept exactly six lineage-specific inherited+Second Awake attacks, with two mandatory distinct attack slots. Later/sibling classes unaffected. Native cosmetic replicas strip damage/collision, existing live limits/cleanup retained. UI names and context updated immediately.
- Source audit passed for six stable rank2 IDs, requested names, explicit hierarchy links and balanced edited C# blocks. Regression checks prepared for all30 ordered attack pairs per lineage, role/level guards, promotion/sibling isolation, paths and routes; not executed. Next requested build must compile changed RangedShot callback and hierarchy validation.
Mage Second Awake Tab3 source update (0.0.30 unchanged)
- Source only per user request: no compilation, test execution, release/package scripts or version bump. Existing0.0.30 DLL/ZIP lack these changes; request a build for compilation verification and fresh binaries.
- Three independent INTELLIGENCE paths: Archmage Elemental Oath → Convergence → ElementalStorm → Aetherheart → AetherBeam; Occultist Void Oath → Eventide → VoidVortex → Pestilence → Malady; HighSorcerer Arcane Oath → Overcharge → ArcaneBarrage → Compression → Singularity. Logical Attack node IDs/gates and level60 unlocks retained; Attack/Intelligence presentation swaps only for these classes, Life excluded. Arcanist/AbyssLord/AstralSage unchanged.
- ElementalStorm (
mage_elementalist.rank2.1):2.4s staff_cast channel,3s falling native burn/frost storm6m above crosshair-ground projection. AetherBeam (mage_elementalist.rank2.2):staff_cast, forward eye-attached native Eikthyr beam compressed0.4x across/16x length, lifetime2.5s, follows exact m_eye.position/forward. Cosmetic light only; original damage mechanic retained. - VoidVortex (
mage_warlock.rank2.1):staff_summon,3s black/purple native blob/poison spherical particles at crosshair ground, inward particle speed and rotation emulate gravity. No enemy pulling gameplay added. Malady (mage_warlock.rank2.2):staff_cast channel, expanded native poison and ethereal wind lines at player root center, lifetime2.5s. Existing gameplay damage unchanged. - ArcaneBarrage (
mage_sorcerer.rank2.1):staff_cast loop0.16s, six magenta native fireball cosmetics launched at0.08s intervals from exact eye vector, default48m/s and1.8s cleanup. Exact crosshair ray selects protected hostile target; absent target yields forward flight. Tracking/sequence cosmetic, no extra hits. Singularity (mage_sorcerer.rank2.2):staff_summon invocation, expanded deep-violet native resurrection burst at player root center, lifetime2.5s. - Archmage/Occultist/HighSorcerer backend equip, available pool and config resolution accept exactly six branch-specific inherited+Second Awake attacks; slots1–2 enforce distinct mandatory attacks. Later/Mage sibling pools unchanged. Saved registry IDs, existing damage/types/costs/cooldowns retained.
- Cached requested native effects with safe fallbacks, instance-only presentation, stripped damage/collision replicas and live limits reused. UI names and future-agent context updated. Source audit verified six stable rank2 IDs, all requested names, balanced edited C# blocks and routing wiring. Regression checks prepared for all30 ordered pairs per class, slot/level restrictions, independent gates and six visual routes; intentionally not executed. Compilation and native visuals unverified until requested build/game check.
Warrior Second Awake Tab3 source update (0.0.30 unchanged)
- No compilation, package generation or version changes: user requests builds only explicitly. Existing0.0.30 DLL/ZIP do NOT include this source update. Compilation and in-game visuals remain unverified; request a build to validate.
- Warlord Attack lane: Blood Oath → Bloodtide → BloodTorrent → Headsman → Decapitate. Champion ATTACK/DEFENSE lane: Arena Oath → Challenge → GladiatorsFocus → Conquest → ColiseumSlam. Guardian DEFENSE lane: Stone Oath → Shieldlock → Phalanx → Runewall → Unbreakable. Existing class-keyed Tab3 gates/IDs and level60 restrictions retained; all awake tabs exclude Life. Guardian Attack/Defense display projection swaps; later tiers unchanged.
- Six stable rank2 IDs retain existing registry damage, cooldowns, costs and mechanics. BloodTorrent uses attack_swords_secondary looping every0.3s over2.4s, enlarged crimson native slash/body/right-left trails. Decapitate uses attack_sledge plus cosmetic model jump and dark-red expanded native impact only on successful existing hostile hits; target collider contact hit.m_point is carried by existing impact RPC, no whiff burst/new damage pulses.
- GladiatorsFocus uses shield_down and flashing amber native club/spark aura attached via existing SetParent(player.transform,false). ColiseumSlam uses attack_mace_secondary with centered expanded stone+sledge amber rings; dedicated Center anchor avoids forward impact placement.
- Phalanx uses shield_fortify and three translucent stone clusters parented to player root, tight perimeter at±0.65m lateral,0.8m up,1.1m forward with±20degree facing; movement follows root. Unbreakable uses inquire stomp/roar and centered expanded stone/rune+shield dome; a finite3s owner-side StatusEffect reduces incoming push force80%, no damage reduction/permanent stats.
- Warlord/Champion/Guardian backend equip, available pool and config resolution accept exactly their six inherited+Second Awake attacks; two slots, distinct swaps and mandatory attack occupancy remain authoritative. Mythic IDs/other branches rejected even with forged rank. Immortal/Conqueror/Aegis pools unchanged.
- Native effects have requested prefab names plus cached native fallbacks; instance-only tint/scale, safe cosmetic replicas and live limits/cleanup reused. UI names and handoff context updated. Source audit verified six stable rank2 IDs, all requested names, balanced edited C# blocks and wiring. Regression checks added for all30 ordered pairs per class, role/level gates and independent routes; intentionally not run because builds require explicit request. Next requested build must compile GuardianUnbreakableEffect and changed animation tuple.
Mouse binding correction — 0.0.30
- Skill2 now defaults to physical Mouse5 (Unity Mouse4); Skill4 uses Blocking+Mouse5. Skill1/3 use Mouse4/Blocking+Mouse4 (Unity Mouse3) to keep controls distinct.
- Startup migrates unmodified legacy Skill2 Mouse2/middle-button or Mouse3 bindings to Mouse4, moving a conflicting legacy Skill1 Mouse4 binding to Mouse3. Other customized bindings remain untouched. Shared routing already handles blocking exclusively; HUD labels reflect effective shortcuts.
- Version unchanged at0.0.30. Release build passed with zero errors and zero warnings; 27,926 checks passed (game resources stubbed). Compiled version and six-file ZIP verified; corrected0.0.30 ZIP replaces the prior package. No installation performed.
Build 0.0.30
- Explicit build request supersedes previous no-version/no-packaging constraints for this release. Plugin constant, project assembly version, manifest and package README updated to0.0.30.
- Includes all15 First Awake class paths, skill names, animations and native cosmetic routes; strict two-of-four attack pools; Elementalist registry correction; bounded Purify cleanse and frontal shield knockback.
- Saved IDs/schema4 preserved. Native visuals/multiplayer appearance remain unverified in-game. Release build succeeded with zero errors and zero warnings; 27,926 checks passed (game resources stubbed). Compiled BepInPlugin/assembly/manifest versions verified as0.0.30; six-file ZIP and archived DLL hash verified. No installation or publishing performed.
ClericKnight First Awake update (0.0.29 unchanged)
- Scope paladin_clericknight First Awake only. Tab2 DEFENSE lane: Mercy Oath → Absolution → Purify → Benediction → DivineGrace. Attack/Defense presentation swaps; saved logical nodes/gates/passives/prerequisites preserved, Life excluded. Saint/Seraph layouts unchanged.
- Purify replaces Blessed Strike (
paladin_clericknight.1): shield_fortify, native resurrection/shield-break white-gold wave at frontal strike vector, scale0.65, lifetime1.5seconds. Existing cone hits receive native push force10. On successful committed cast, removes only caster native Burning, Poison, Frost, Freezing and Tarred effects by exact native name (Unity clone suffix normalized); buffs/class effects/other statuses preserved. No enemy/allied dispels. Damage/range/costs unchanged. - DivineGrace replaces Radiant Pulse (
paladin_clericknight.2): attack_sledge overhead slam; native heal aura scaled2.5 plus glowing white-gold sparks on2.5m hemisphere shell, lifetime3seconds. Both layers attach via existing SetParent(player.transform,false), local identity origin and local-space particles, following the player. Cosmetic defensive dome only; no additional defense buff/healing gameplay. Existing Nova damage retained. - Exactly two distinct learned attacks from Judgment, Consecration, Purify, DivineGrace. Equip, available pool and config resolution share ClericKnight guard; Saint/Seraph retain larger inherited pools. UI names and First Awake cosmetic RPC routing updated.
- Safe cosmetic replicas strip native gameplay/collision components; live limits and cleanup retained. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,926 checks passed (game resources stubbed), including ClericKnight pool permutations, slot/level/config guards, frontal/body routes, scope isolation, Defense projection and bounded cleanse policy. Version unchanged; no release/package scripts. Native visual/animation appearance requires in-game verification.
Inquisitor First Awake update (0.0.29 unchanged)
- Scope paladin_inquisitor First Awake only. Tab2 INTELLIGENCE/DEFENSE hybrid lane: Judicial Oath → Condemnation → ChainsOfJustice → Purification → HolyFire. Attack/Intelligence presentation columns swap; Defense passives retain separate lane. Original saved nodes, gates, passive values and prerequisites unchanged; Life excluded. Justicar/Arbiter layouts unchanged.
- ChainsOfJustice replaces Judgment Strike (
paladin_inquisitor.1): staff_cast short projection loop; three golden spear-trail/Eikthyr cosmetic lines originate at player.transform.position along player.transform.forward, launch0/0.15/0.30seconds at default20m/s, lifetime1.5seconds. Binding presentation only: no new root/AI effects or added damage pulses. - HolyFire replaces Zealous Brand (
paladin_inquisitor.2): staff_summon invocation; crosshair-ground point uses exact eye position/forward ray up to100m, with existing forward15m ground fallback. Three white-gold burn layers stacked0/1.8/3.6m form stretched vertical pillar, plus doubled native resurrection flash at ground center, lifetime2.5seconds. Existing Nova targeting/damage retained; VFX targeting does not change damage area. - Exactly two distinct learned attacks from Judgment, Consecration, ChainsOfJustice, HolyFire. Equip, available pool and config resolution share Inquisitor guard; Justicar/Arbiter keep larger inherited pools. UI names and First Awake cosmetic RPC routes scoped by stable IDs.
- Safe cosmetic replicas strip native collision/damage components; existing live limits/cleanup retained. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,877 checks passed (game resources stubbed), including Inquisitor pool permutations, slot/level/config guards, root-forward/crosshair-ground routes, scope isolation and hybrid projection. Version unchanged, no release/package scripts. Native visuals/animation require in-game verification.
Templar First Awake update (0.0.29 unchanged)
- Scope paladin_templar First Awake only. Tab2 DEFENSE lane: Sacred Oath → Aegis Vow → HolyShield → Retribution → DivineRetribution. Attack/Defense display columns swap; logical attack saved nodes/gates/passives/prerequisites remain authoritative. Life excluded; Crusader/DivineKnight layouts unchanged.
- HolyShield replaces Sanctified Bash (
paladin_templar.1): shield_fortify; amber-gold native shield-break/resurrection barrier attached to player root through existing SetParent(player.transform,false), local identity placement, lifetime2seconds. Existing frontal cone hit receives native push force10; damage/range/costs preserved, protected target filtering retained. - DivineRetribution replaces Sacred Wave (
paladin_templar.2): attack_mace_secondary; enlarged healing/resurrection visual expands at player.transform.position with four small gold-tinted Eikthyr shockwave elements oriented90degrees apart, lifetime2seconds. Dedicated Center anchor prevents Judgment-style forward placement/projectile movement. Native healing/damage/collision components stripped: presentation only, existing Nova damage unchanged. - Exactly two distinct learned attacks from Judgment, Consecration, HolyShield, DivineRetribution. Equip, available pool and config resolution share Templar guard; Crusader/DivineKnight keep larger inherited pools. Tree/compendium/cast/equip names updated.
- Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,830 checks passed (game resources stubbed), including Templar pool permutations, slot/level/config guards, body/center composition routes, scope isolation and Defense projection. Version remains0.0.29, no release/package scripts. Native asset/trigger appearance requires in-game verification.
Trickster First Awake update (0.0.29 unchanged)
- Scope rogue_trickster First Awake only. Tab2 AGILITY lane: Veiled Oath → Feint → Fakeout → Mirrorplay → Phantasm. Attack/Agility presentation swaps; saved nodes/gates/passives/prerequisites retained. Life excluded; Phantom/VoidWalker later-tier layouts unchanged.
- Fakeout replaces Trickster's Cut (
rogue_trickster.1): attack_knives rapid thrust. Two violet native spawn/blob smoke puffs flank the starting execution point by±0.35m, plus reversed-direction native wraith/spawn spectral mirage0.4m behind. Captured cast-start world placement remains stationary, scale0.65 smoke/0.45 mirage, lifetime1.5seconds. Cosmetic mirage only, no player mesh clone or enemy AI retarget/disorientation change. - Phantasm replaces False Trail (
rogue_trickster.2): staff_cast invocation; three pink native spear/needle-trail illusion shards from exact eye position along eye-forward, spread±15degrees, default28m/s, lifetime1.5seconds. Native projectile meshes hidden and damage/collision components stripped. Existing Nova damage retained, no new shard damage/healing. - Exactly two distinct learned attacks from Eviscerate, Assassinate, Fakeout, Phantasm. Equip, available pool and config resolution share Trickster guard; later tiers keep larger inherited pools. UI display names and First Awake validated cosmetic RPC routes updated.
- Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,783 checks passed (game resources stubbed), including Trickster pool permutations, slot/level/config guards, cast-start/eye-shard routes, scope isolation and Agility projection. No version increment or release/package scripts; native assets/animation appearance requires in-game verification.
Duelist First Awake update (0.0.29 unchanged)
- Scope rogue_duelist First Awake only. Tab2 AGILITY lane: Steel Oath → Counterpoint → Riposte → Blade Rhythm → Flurry. Attack/Agility display columns swap; original saved nodes/gates/passives/prerequisites preserved, Life excluded. Blademaster/SwordSaint layouts unchanged.
- Riposte replaces Precision Cut (
rogue_duelist.1): shield_down brief visual brace at windup (sword trigger fallback), attack_swords at release; native club-hit/sparks tinted silver at1.5m forward and0.7m up strike vector. Execution-frame visual, lifetime1second; no new parry gameplay. - Flurry replaces Riposte Arc (
rogue_duelist.2): attack_knives loop with1.5x temporary animator speed restored after1.2seconds. Three white native edge-wind/needle-trail slashes launch sequentially at0/0.12/0.24seconds along player.transform.forward, default32m/s, lifetime1.5seconds. Native projectile meshes hidden, collision/damage components stripped; existing Nova gameplay unchanged, no additional hit pulses. - Exactly two distinct learned attacks from Eviscerate, Assassinate, Riposte, Flurry. Equip, available pool and config resolution share Duelist guard; later tiers retain larger inherited pools. UI names and validated First Awake cosmetic RPC routing updated.
- Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,736 checks passed (game resources stubbed), including Duelist pool permutations, slot/level/config guards, strike/slash routes, scope isolation and Agility projection. No version increment or release/package scripts. Native visual/animation appearance requires in-game validation.
Assassin First Awake update (0.0.29 unchanged)
- Scope rogue_assassin First Awake only. Tab2 AGILITY lane: Silent Oath → Deathmark → PhantomStrike → Final Cut → Execution. Attack/Agility display columns swap; original saved nodes/gates/passives/prerequisites retained. Life excluded; Shadowblade/NightReaper layouts unchanged.
- PhantomStrike replaces Backstab (
rogue_assassin.1): attack_knives, model-only fast forward lunge0.22seconds; dark native wraith/blob silhouette particle trail attached behind player, world-space particles retain movement history, scale0.35, lifetime0.6seconds. No added physical displacement or damage pulses. - Execution replaces Veil Blades (
rogue_assassin.2): attack_knife_secondary with existing Rogue model-only leap/downward arc. Crimson native seeker stomp/blood-hit burst emitted only on successful existing hostile hits, at target collider surface contact nearest attacker (center fallback if collider absent), scaled0.4 then expanded. This is computed melee contact, not a new physics weapon-collision system. Impact RPC carries exact hit.m_point; no effects on whiffs. Existing Nova targeting/damage retained. - Exactly two distinct learned attacks from Eviscerate, Assassinate, PhantomStrike, Execution in slots1–2. Equip/pool/config resolution share Assassin guard; Shadowblade/NightReaper keep larger pools. UI names and First Awake visual routing scoped by stable IDs.
- Safe cosmetic replicas/cleanup and protected hit filtering retained. Other classes, version constants and gameplay costs unchanged. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,689 checks passed (game resources stubbed), including Assassin pool permutations, slot/level/config guards, trail/impact routes, scope isolation and Agility projection. No release/package scripts; native visuals require in-game verification.
Marksman First Awake update (0.0.29 unchanged)
- Scope hunter_marksman First Awake only. Tab2 AGILITY lane: Deadeye → Stillhand → SteadyShot → Truepierce → PiercingRound. Attack/Agility presentation columns swap; original node IDs, gates, passive values and prerequisites retained. Life excluded; Sharpshooter/Deadeye later-tier layouts unchanged.
- SteadyShot replaces Deadeye Bolt (
hunter_marksman.1): bow_fire, default cast windup0.55seconds (existing timing config overrides respected), native iron arrow at exact eye position/forward, default100m/s, bright native spear-trail overlay attached to the moving arrow, lifetime1.4seconds. - PiercingRound replaces Split Shot (
hunter_marksman.2): bow_fire horizontal release, three thin parallel native edge-wind streak/needle-trail cosmetic arrays along eye/crosshair vector, default95m/s, ±0.12m lateral offsets and lifetime1.4seconds. Native projectile meshes hidden and damage/collision components stripped; visual arrays pass through structures. Existing Nova gameplay retained; no new multi-target penetration damage or obstacle destruction. - Exactly two distinct learned attacks from Volley, Harpoon, SteadyShot, PiercingRound in slots1–2. Equip, available pool and config resolution share Marksman guard. Later tiers keep larger inherited pools. Names used in tree, compendium and cast/equip popups.
- Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,642 checks passed (game resources stubbed), including Marksman pool permutations, slot/level/config guards, exact arrow/linear-array routes, scope isolation and Agility projection. Version unchanged, no release/package scripts. Native visuals/animation appearance require in-game verification.
Beastmaster First Awake update (0.0.29 unchanged)
- Scope hunter_beastmaster First Awake only. Tab 2 unique AGILITY/DEFENSE hybrid lane: Wild Bond → Fang Oath → FeralBite → Packwarden → PackCall. Attack/Agility presentation columns swap; Defense armor passives stay available in their own lane. Original saved attack nodes, class-owned gates, passive values and prerequisites retained; Life excluded. BeastLord/PrimalKing layouts unchanged.
- FeralBite replaces Hunter's Mark (
hunter_beastmaster.1): attack_unarmed quick slash; native wolf-hit/seeker-stomp/golem-hit fallback tinted spectral ice-blue, scale0.4, placed1.5m forward and0.7m up at melee strike vector. Instance-only vertical crunch closes over0.5seconds, cleanup0.8seconds. Existing Cone damage unchanged. - PackCall replaces Spirit Talons (
hunter_beastmaster.2): exact inquire cry; three native cultist-fire-trail/wolf-spawn/cultist-attack spectral particle lines begin at player root with ±0.65m lateral spacing and lunge along player.transform.forward at default14m/s. Spectral tint/scale, cleanup1.4seconds. Cosmetic pack only: no actual creature summon or additional damage; existing Nova damage retained. - Slots1–2 enforce two distinct learned attacks from Volley, Harpoon, FeralBite, PackCall across equip, available pool and config resolution. BeastLord/PrimalKing retain larger inherited pools. UI names and scoped First Awake validated RPC routing updated.
- Native gameplay components stripped from cosmetic replicas, all instances tracked by existing effect limits/cleanup. Other classes and version constants preserved. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,595 checks passed (game resources stubbed), including Beastmaster pool permutations, slot/level/config guards, strike/forward-pack routes, scope isolation and hybrid projection. No release/package scripts. Native animation/visual appearance requires in-game validation.
Ranger First Awake update (0.0.29 unchanged)
- Scope hunter_ranger First Awake only. Tab 2 AGILITY lane: Windward → Trueflight → WindArrow → Skywatch → Hailstorm. Attack/Agility presentation columns swap without moving logical attack nodes, saved IDs, gates or passive values. Life excluded; Pathfinder/Windrunner layouts unchanged.
- WindArrow replaces Piercing Arrow (
hunter_ranger.1): bow_fire; native iron arrow cosmetic at exact eye position/forward, default95m/s, with native spear-trail overlay attached to the moving arrow and spiraling locally. Lifetime1.4seconds. Native projectile damage components stripped; original cone execution unchanged. - Hailstorm replaces Trail Volley (
hunter_ranger.2): brief bow_fire loop; native arrow-hit/rock-destruction particles tinted ice-blue/white emitted downwards from6m above crosshair environment hit (100m ray), with forward15m ground projection fallback. Local rain circle radius2.5m, lifetime2.5seconds. Existing Nova gameplay unchanged; no added damage ticks or aim override. - Exactly two distinct learned attacks from Volley, Harpoon, WindArrow, Hailstorm. Equip, available pool and config resolution share Ranger guard; later classes retain larger inherited pools. UI names and validated cosmetic RPC paths updated.
- Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,548 checks passed (game resources stubbed), including Ranger pool permutations, slot/level/config guards, wind overlay/crosshair rain routes, scope isolation and Agility projection. No version increment or release/package scripts. Native visual/animation appearance requires in-game validation.
Sorcerer First Awake update (0.0.29 unchanged)
- Scope mage_sorcerer First Awake only. Tab 2 unique INTELLIGENCE lane: Aether Oath → Resonance → ArcaneMissiles → Surge → Overload. Attack/intelligence display columns swap; original node IDs, class-path gates, prerequisites and passive values retained. Life excluded; HighSorcerer/AstralSage layouts unchanged.
- ArcaneMissiles replaces Arcane Lance (
mage_sorcerer.1): staff_cast brief channel loop; three native fireball/shockwave cosmetic orbs at exact m_eye.position along m_eye.forward, scale0.4 magenta tint, default45m/s with 0/0.12/0.24-second sequential launches. Renderer/particle visibility delayed per orb. Tracking selects nearest visible hostile within24m/40-degree cone using existing protected target filter; visual steering only, no extra damage. If no target, forward flight; lifetime1.8seconds. - Overload replaces Aether Step (
mage_sorcerer.2): staff_summon invocation; native resurrection/burn eruption at player.transform.position, scale3 bright pink/purple burst, lifetime2.5seconds. Existing Nova damage retained. - Exactly two distinct learned attacks from Ignis, Cataclysm, ArcaneMissiles, Overload in slots1–2. Equip, available pool and config resolution share exact Sorcerer guard; HighSorcerer/AstralSage keep larger inherited pools. Names used in tree, compendium and cast/equip popups.
- Safe cosmetic RPC replicas strip native gameplay components; all orb instances count toward live-effect limits and cleanup. Other classes, version constants and gameplay costs unchanged. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,501 checks passed (game resources stubbed), covering pool permutations, config/slot/level guards, triple eye launch, route isolation and Intelligence projection. No release scripts or packaging; native visuals require in-game validation.
Warlock First Awake update (0.0.29 unchanged)
- Scope: mage_warlock First Awake only. Tab 2 INTELLIGENCE lane: Dark Covenant → Blight → Miasma → Withering → Decay. Warlock attack/intelligence presentation columns swap; original logical Attack nodes, saved IDs, prerequisites and passive values remain unchanged. Life excluded; Occultist/AbyssLord layouts unchanged.
- Miasma replaces Hex Bolt (
mage_warlock.1): staff_cast reasserted in a brief channel loop; native poison/blob cloud scaled 0.45 and tinted dark violet, launched from exact m_eye.position along m_eye.forward at 30 m/s. Cosmetic-only replicated flight, 1.5-second cleanup; native damage components stripped. - Decay replaces Siphon (
mage_warlock.2): attack_sledge overhead slam; native corrupted/seeker stomp (golem-hit fallback) at player.transform.position, dark purple/black tint and pulsing doubled scale for 2.4 seconds. Existing Nova damage preserved; no extra damage ticks. - Exactly two distinct learned attacks in Slots 1–2 from Ignis, Cataclysm, Miasma, Decay. Backend equip, available pool and config resolution enforce same Warlock guard. Occultist/AbyssLord retain larger inherited pools.
- Names appear in tree, compendium and cast/equip popups. Other classes, tiers, gameplay costs and version constants unchanged. Documentation updated immediately; Release build passed with zero errors and zero warnings, and 27,454 checks passed (game resources stubbed), covering pool permutations, slot/level/config guards, route isolation and Intelligence projection. No release scripts or packaging. Native asset/trigger appearance requires in-game validation.
Elementalist First Awake registry correction (0.0.29 unchanged)
- Pyromancer alias permanently removed from active class lists, registry logic, runtime helpers, UI flow and tests. Mage level-20 Branch A remains mage_elementalist → Elementalist → Archmage → Arcanist. Previous Pyromancer handoff below is superseded; no alias remains in executable source. Saved skill/node IDs remain unchanged.
- Tab 2 Elementalist INTELLIGENCE lane retains the existing Attack/Intelligence display projection and class-owned unlock nodes. Life excluded; passive values, prerequisites and level gates preserved.
- ElementalBurst (
mage_elementalist.1): staff_cast; native fireball cosmetic at exact m_eye.position along m_eye.forward, 45 m/s. Frost particles attach directly to the moving orb so both layers follow one trajectory. Cosmetic damage components stripped; existing damage execution unchanged. - Nova (
mage_elementalist.2): attack_sledge overhead slam; enlarged fire burn and frost shocks centered at player.transform.position, burst particles with 2.5-second cleanup. Requested vfx_frost_wurt has native ice/frost/hit-spark fallbacks when absent. Existing Nova damage/costs unchanged. - Exactly two distinct learned attacks from Ignis, Cataclysm, ElementalBurst, Nova. Equip, available pool and config resolution guard Elementalist only; higher tiers retain larger pools.
- Documentation and future-agent context updated immediately. Release build passed with zero errors and zero warnings; 27,407 checks passed (game resources stubbed), including removal of the former alias, direct Mage Branch A routing, fused projectile anchoring, centered Nova layers and two-of-four pool guards. No version bump, packaging or release scripts; native visuals require in-game validation.
Pyromancer First Awake update (0.0.29 unchanged)
- Mapping assumption: requested Pyromancer is a compatible display/class alias for existing Elementalist on mage_elementalist, since no Pyromancer class/branch existed. External Pyromancer class strings are recognized; old Elementalist saves, node IDs and Archmage/Arcanist progression are retained. No fourth Mage branch introduced.
- Tab 2 displays Pyromancer and its vertical INTELLIGENCE path: Ember Oath → Kindling → Combustion → Conflagration → Inferno. Existing Elementalist attack/intelligence display columns swap without moving logical attack nodes or prerequisite gates; Life excluded.
- Combustion (
mage_elementalist.1) uses staff_cast; native staff_fireball_projectile cosmetic launches from exact eye position/forward at 45 m/s, scaled 1.75, with burn explosion on environment collision or 0.9-second expiry. Native Projectile/Aoe damage components stripped; existing skill damage execution unchanged. - Inferno (
mage_elementalist.2) uses staff_summon; six vfx_aoe_burn clusters form a two-metre ring around player.transform.position, layered with center vfx_fire_wurt (burn fallback). Looping orange fire persists six seconds, with existing cleanup/replication limits. Original Nova damage type/costs/cooldowns remain unchanged; no new burning damage ticks. - Two distinct learned attacks in Slots 1–2 from Ignis, Cataclysm, Combustion, Inferno. Equip, available pool and config resolution share guard for both class aliases; Archmage/Arcanist remain unrestricted by First Awake pool guard.
- Native assets/triggers and final visuals require in-game checks. Release build passed with zero errors and zero warnings; 27,404 checks passed (game resources stubbed), including pool pair permutations, level/slot/config guards, alias ancestry, higher-tier preservation and route isolation. No version increment, release scripts or repackaging.
Protector First Awake update (0.0.29 unchanged)
- Tab 2 unique vertical DEFENSE lane: Iron Oath → Bulwark → IronGrip → Fortress → Bastion.
DisplayColumnswaps Protector logical Attack/Defense visual columns only; original attack class-node IDs, prerequisite gates, passive values and save schema remain authoritative. Life excluded. Guardian/Aegis layouts unchanged. - IronGrip replaces Shield Slam (
warrior_protector.1): exactshield_fortify, nativevfx_ShieldBrakerwith sledge fallback, cool glowing short frontal shockwave at ground-projected forward strike. Existing cone hits receive native push force 10; damage, costs and range unchanged, target protection preserved. Cosmetic prefab damage components remain stripped. - Bastion replaces Guarded Advance (
warrior_protector.2): exactattack_mace_secondary, six glowing stone particle clusters arranged on a two-metre ring centered at player.transform.position. Requests native stonegolem shards/rock destroyed with golem-hit fallback. Every layer uses existing validated cosmetic replication, live-effect limits and three-second cleanup. Existing Nova gameplay retained; no additional defense buff or obstacle colliders. - Slots 1–2 enforce two distinct learned attacks from Shatterstrike, Bladestorm, IronGrip, Bastion in backend equip, available pool and config resolution. Guardian/Aegis larger inherited pools unaffected. Names used in tree details, compendium and cast/equip popups.
- Scope restricted to First Awake warrior_protector registry routes; other classes, versions, higher-tier names untouched. Native trigger/prefab availability and visual placement require in-game validation.
- Validation: Release build succeeded with zero errors and zero warnings; 27,356 checks passed (game resources stubbed), including Protector attack-pair permutations, slot/level limits, forged-config guards, route isolation, ordered Defense projection and Life exclusion. No version increment, release scripts or repackaging; existing ZIP files remain stale. See prior operational sections for build commands/reference paths.
Gladiator First Awake update (0.0.29 unchanged)
- Tab 2 dedicated vertical DEFENSE/ATTACK Gladiator lane: Shield Oath → Reprisal → Retribution → Challenge → ChallengingRoar. Life excluded; logical attack branch, saved node IDs, passive values, investment and level gates preserved.
- Retribution (
warrior_gladiator.1): exactattack_mace_secondary, stationary ground-projected strike, native club/sledge particles tinted amber. Judgment keeps its forward lightning behavior. - ChallengingRoar (
warrior_gladiator.2): exactinquire, native screamer roar/Eikthyr stomp fallback; translucent white expanding pulse at player position. Structural visuals only: existing Nova damage retained, no enemy AI taunt behavior added. - Slots 1–2 enforce two distinct learned attacks from Shatterstrike, Bladestorm, Retribution, ChallengingRoar across equip, available pool and config resolution; Champion/Conqueror retain larger pools.
- First Awake-only routing, safe cosmetic replicas and instance-only tint/scale. Other classes and higher tiers preserved. Native trigger/prefab availability and visuals require in-game verification.
- Validation: Release build succeeded with zero errors and zero warnings; 27,304 checks passed (game resources stubbed), including Gladiator pair permutations, slot/level restrictions, forged config/tier guards, route isolation and Life exclusion. Version remains 0.0.29; no release scripts or repackaging.
Unreleased — Berserker First Awake presentation
- Tab 2 retains its unique Berserker vertical Attack path, bypassing Life: Blood Oath → Frenzy → Bloodlust → Execution → Rampage. Existing node IDs and purchase prerequisites are preserved.
- Bloodlust (
warrior_berserker.1): dual-wield/dual-knife trigger loop for 1.35 seconds, with crimson native slash overlays on both weapon-hand bones during windup. - Rampage (
warrior_berserker.2):attack_sledgeand a doubled-scale dark-red native seeker/golem shockwave at a grounded forward impact vector. CanEquipSkill, available-pool enumeration and config resolution constrain Berserker to Shatterstrike, Bladestorm, Bloodlust and Rampage; only the two attack slots can equip them. Duplicate selection swaps rather than adding a third attack.- Display names updated across UI and notifications. Gameplay damage, stable skill/node IDs, level-20 First Awake gates, schema 4 and version 0.0.29 are preserved; no release scripts run. Native animation/VFX availability requires in-game verification.
- Release build passed with zero warnings/errors; 27,257 regression checks passed, including dedicated Berserker pool/path checks.
Unreleased — Rogue base skill presentation
- Eviscerate (20%):
attack_knivesand green-tintedvfx_burl_hit(native spark fallback), emitted at actual melee hit coordinates rather than on whiffs. - Assassinate (60%): native dagger-leap animation with a short target-tracked visual arc; native blood/slash overlays emitted at hit coordinates.
- Vanish: evasion stance and dense dark-tinted poison/blob cloud at execution coordinates. This structural overlay does not change enemy AI tracking or existing damage reduction.
- Shadowstep: fast horizontal run-animation presentation with continuous dark wind lines at both screen borders for 0.35 seconds; existing displacement is preserved.
- Added validated cosmetic impact RPCs without changing damage authority. Saved IDs, gameplay values, version 0.0.29 and other classes are retained; no release scripts run. Native assets/playback require in-game verification.
Unreleased — Hunter base skill presentation
- Volley (20%):
bow_fire; iron-arrow cosmetic launched from exact owner eye position/forward at 70 m/s by default. Requestedarrow_ironresolves to nativebow_projectile_ironwhen necessary. - Harpoon (60%):
spear_throw; native bronze javelin cosmetic at 90 m/s by default with continuous crosshair-aligned spear trail. Requestedvfx_spear_trailfalls back to native needle-arrow trails with its projectile mesh hidden. - Camouflage: four-second crouch presentation, smoothly reduced mesh opacity using temporary instance materials, and a small native
vfx_bush_leaf_puffat execution coordinates. Original materials are restored on expiration/interruption. - Prowl: explicit
dodgetrigger and transient wind-line cosmetics at both camera borders for a 0.6-second tumble presentation. No gameplay speed/invulnerability changes. - Updated Hunter display names across the UI and notifications. Saved IDs, gameplay damage/ammo, movement, costs, cooldowns and version 0.0.29 are retained; no release scripts run. Native assets and shader appearance require in-game verification.
Unreleased — Paladin base skill presentation
- Judgment (20%):
attack_mace_secondarywith exact nativevfx_eikthyr_forwardshockwave, launched forward from a grounded impact point as a damage-free cosmetic. - Consecration (60%):
attack_sledgewithvfx_player_resurrect(fallback: light-tintedvfx_aoe_burn) plusvfx_sledge_hitat the execution center. Tinting modifies instances only. - Sanctuary: guardian stance with exact
vfx_player_heal, structurally attached usingSetParent(player.transform, false)through the attachment helper. - Crusade: linearly accelerating run-animation presentation and holy footprint sparks along the existing dash path for 0.35 seconds. Authoritative movement remains unchanged; sparks and animation overrides clean up on expiration/interruption.
- Updated Paladin display names across the UI, status effects and cast messages; retained saved IDs, gameplay values, costs, cooldowns and version 0.0.29. No release scripts run. Native asset playback requires in-game verification.
Unreleased — Mage base skill presentation
- Ignis (20%):
staff_castand exact nativestaff_fireball_projectile, with owner-side launch snapshots fromplayer.m_eye.positiontowardplayer.m_eye.forward. - Cataclysm (60%): staff slam presentation and exact
vfx_aoe_burncentered atplayer.transform.position. - Aegis: magic barrier presentation and exact
vfx_bubble_shield, structurally parented to the player withSetParent(player.transform, false)through the attachment helper. - Blink: instantaneous existing teleport with exact
vfx_spawnemitted at both saved origin and release destination in the same presentation frame. - Updated Mage display names throughout the UI and cast messages. Saved IDs, gameplay, progression and version 0.0.29 are preserved. No release scripts run; native playback requires in-game verification.
Unreleased — Warrior base skill presentation
- Shatterstrike (20%):
attack_polearm_secondarywithvfx_golem_hit_stoneat a forward ground-impact vector. - Bladestorm (60%): repeated
attack_swords_secondaryswings over 1.2 seconds, combiningvfx_sledge_hitwith weapon-parented native sword trails. - IronWall:
shield_fortifywithvfx_ShieldBraker(fallback:vfx_obstacle_destroyed_stone), attached directly to the player withSetParent(player.transform, false)through the attachment helper. - Onslaught: 0.35-second collision-checked forward charge velocity with shoulder lean; looping
vfx_footprint_dustand wind at both screen borders are removed when the rush ends. - Warrior HUD, tree details, compendium and cast messages show thematic names. Saved IDs and configuration keys remain stable.
- Changes apply only to Warrior base skills. Version remains 0.0.29; no package/release scripts run. Native prefab availability and visual appearance require in-game verification.
[0.0.29]
- Fixed VFX cache readiness independent of ObjectDB, accepted safe Aoe visuals, and added exact requested Base-class prefab lookups with missing-name errors.
- Added explicit particle activation/emission startup, native owner-only world-effect spawning and marked remote-replica particle startup.
- Added lifetime cleanup using ZNetScene destruction for networked effects and delayed Unity destruction for local effects.
- Reduced active runtime JPEG quality to 55 at 128px; replaced high-resolution source masters with compact 512px JPEGs and removed redundant artwork exports, previews and historical staging folders.
- Existing gameplay damage remains unchanged. In-game VFX appearance and multiplayer validation remain pending.
[0.0.28]
- Added explicit animation and native VFX routes for all 20 Base-class active skills across Warrior, Mage, Hunter, Rogue and Paladin, independent of equipped hotkey slot.
- Added validated native animation fallbacks, crouch/run presentation, forward cosmetic projectile speeds, player-parented defensive effects and teleport start/destination effects.
- Added unique progression paths for 45 advanced classes and safe MMO HUD hiding/restoration while skill or altar UI is open.
- Preserved existing gameplay damage and effects; native prefab appearance, animation playback and multiplayer synchronization require in-game verification.
- Release compilation and 27,209 regression checks passed.
[0.0.27]
- Replace vertical tree scrolling with four class-tier tabs; future tiers show ?, are non-interactable, and only the selected tier is instantiated. Base displays five columns; awakened tabs hide Life and recenter the remaining columns.
- Render column-local tier paths and class-chain tab names. Cross-tab prerequisites remain in the model/tooltips rather than drawing across hidden tiers.
- Map animation defaults by role/mechanic via new Skill Animation Profiles v2 settings; preserve explicit trigger overrides.
- Parent defense cosmetics at the caster root with local particle simulation. Prepare safe local templates after registry initialization and replay them per validated presentation RPC.
- Launch ranged cosmetics from eye-height/look-direction snapshots with configurable VisualProjectileSpeed (default 30 m/s); disable gravity and set explicit Rigidbody velocity where present. Existing owner-only gameplay handles damage.
- Resolve melee effect positions at impact instead of using stale release offsets. Reuse steady-state queue/sweep buffers and remove per-message invocation-list allocations.
- Version metadata updated to 0.0.27. Runtime animations and multiplayer visual alignment remain pending in-game verification.
[0.0.26]
- Generate exactly four Base active nodes for every family: two distinct Attack nodes, one Defense node and one Utility/Movement node in Agility.
- Validate registry-to-tree bindings at startup: each exposed skill owns a distinct single-purchase node in the matching role/tier column.
- Preserve awakening predecessor links instead of overwriting them during passive-route generation. First Awake renders two separate nodes below Base; subsequent tiers use fixed 220-pixel offsets.
- Label active nodes with skill names and Learned/point cost. Reserve rank fractions for passives and give legacy Greater/Charged base skills distinct behavior names without changing persisted skill IDs.
- Scroll the newly revealed awakening tier into view; enlarge Base to 720 pixels to fit skill labels without clipping.
- Schema 4 migration validates schema 3 against its original graph, refunds misplaced/now-orphaned nodes and retains valid passive/active investments, earned points and ultimate quest state.
[0.0.25]
- Validate each base family as exactly two distinct typed attacks, one defense and one utility; each awakening archetype adds 2 first attacks, 2 second attacks and one quest-gated long-cooldown ultimate. Catalog mutation is rejected after validation.
- Cache tier-filtered pools (2/4/6 attacks). Central CanEquipSkill validation and config resolution restrict Slots 1-2 to attacks, Slot 3 to defense, Slot 4 to utility and Slot 5 to the ultimate.
- Automatically fill two distinct learned attack choices, repair invalid cross-role configs on resolution and reject attack-slot clearing; preserve same-role swaps and transactional saves. Unlearned attacks remain unavailable.
- Calculate base attack progression against the base passive budget: 20%/60%, excluding active purchases and awakening nodes. Already learned nodes remain preserved.
- Show the fifth HUD slot only after Mythic rank, level 90, quest completion and learning the ultimate. UI indicates role-specific slot actions.
- Paladin base Radiant Burst uses Fire instead of Spirit to match the specified base Physical/Fire/Frost/Lightning damage set; identifiers and investments are preserved.
[0.0.24]
- Rebuild the instantiated graph after the Class mod successful-awakening callback, altar opening and Skills menu opening.
- Force fresh class/MMO state before reconstruction; destroy and deactivate obsolete graph generations, clear view caches and grow the ScrollRect for the current tier.
- Filter nodes before instantiation using class visibility, current awakening rank and MMO level gates. Preserve graph-independent slot controls and background.
- Rendering and Unity object creation allocate at rebuild time; no additional per-frame reflection lookup or rebuild polling is introduced.
[0.0.23]
- Double-click node purchases through existing authoritative validation.
- Life paths use evenly spaced independent lanes without combat gaps.
- Standard slots support persistent clearing and automatic duplicate swaps; grouped config saves restore previous choices on failure.
- Retains cached blur, dark veil, transparent panels and Clear Focus removal.
[0.0.22]
- Softened the main HECS background using one-time bilinear GPU downsample/upsample, cached as a compact sprite. Temporary render textures are released immediately; no blur operation runs in Update.
- Added a separate full-screen Image with black tint alpha 0.75, followed by the existing vignette. Its CanvasGroup cannot intercept interaction or dim foreground nodes.
- Removed the filled/riveted banner graphics from the description and loadout containers. Slot buttons retain transparent pointer hit areas, labels, icons and individual icon frames.
- Removed Clear Focus creation and its click closure from the UI controller. No lingering button field or listener remains.
[0.0.21]
- Rebuilt the tree Canvas as a clipped progression viewport with attribute columns and lazily instantiated Base, First Awake, Second Awake and Mythic sections.
- Base is the only initial section. Newly available tiers append below it with a 0.4-second unscaled fade; level/rank loss hides later sections and clamps scroll bounds.
- Kept all nodes and curved routes within their own 350-pixel attribute columns. Alternate prerequisites meet at compact junctions; long awakening wires use a vertical margin rail instead of diagonal crossings through sockets.
- Added a fixed five-slot equipping panel above the description. Learned non-ultimate actives can be assigned to any standard slot; the dedicated ultimate slot requires Mythic and quest completion.
- Added 40% opacity reduction for unselected columns while inspecting a node, with Clear focus to restore the full map.
- Cached node/path/skill lookups and stopped rebuilding Bezier meshes when their state is unchanged. Full-panel loadout rendering resolves all standard slots in one registry pass.
- Preserved ledger schema 3, point investments and all gameplay prerequisites. No additional save migration is required.
[0.0.20]
- Replaced fixed slot ownership with explicit awakening tiers, skill roles, damage channels, a validated skill registry and a two-attack loadout resolver.
- Registered 95 executable skills: 20 base skills plus two First Awake attacks, two Second Awake attacks and one Mythic ultimate for every HECS specialization branch.
- Changed controls to physical Mouse 5, Mouse 4, their blocking combinations, and a dedicated configurable G ultimate binding.
- Added level/rank gates at 20/1, 60/2 and 90/3, dynamic tree expansion nodes, 20%/60% base attack gates and a persistent quest-gated fifth slot.
- Added tree controls for assigning learned attacks to slots 1 and 2. The five-slot HUD resolves assignments dynamically and keeps per-skill cooldown overlays.
- Added one owner-authoritative passive damage dispatcher with Hunter repeat/ethereal-arrow procs and Warrior/Paladin damage reflection examples.
- Generalized windup, native animation and composite VFX presentation to every registered tiered skill.
- Migrated character ledgers to schema 3; valid schema-2 investments refund once because active-slot meanings and progression gates changed.
[0.0.19]
- Rebuilt the full-screen skill Canvas around a 1920 x 1080 responsive design grid with wider spacing between Life, Attack, Defense, Agility and Intelligence.
- Replaced uniform star treatment with small diamond stat sockets, octagonal shield milestones and large ornate iron/gold active-skill frames.
- Replaced rigid line segments with sampled cubic Bezier prerequisite paths. Locked paths recede in charcoal, available paths use copper and learned paths glow in each branch's elemental color.
- Added a procedural radial vignette over the HECS rocky background, smooth learnable-node hover pulses and a centered dark-iron description banner with explicit text margins.
- Added a matching offline UI preview and a complete Canvas/layout specification. Tree topology, costs, bonuses and progression behavior remain unchanged.
[0.0.18]
- Removed the nearby-enemy requirement from melee active skills. Casts commit in an empty area and resolve any available area targets only at the animation release frame.
- Rebuilt vanilla VFX caching behind Harmony postfixes on
ObjectDB.AwakeandZNetScene.Awake, retaining Jotunn's prefab-available event and hot-reload fallback. - Replaced
EffectListspawning with directObject.Instantiatefrom the post-init cache. Registered networked effect prefabs spawn once on the casting owner with their activeZNetView; visual-only effects remain RPC-local on each peer. - Added a one-update local Animator trigger hold after the replicated
ZSyncAnimation.SetTriggercall so vanillaPlayer.Updatecannot erase the requested swing/cast before evaluation. - Added exact candidates for Eikthyr shockwave, burning AOE and staff fireball assets. Gameplay-bearing projectile/AOE prefabs are never used as cosmetic recipe layers.
[0.0.17]
- Added configurable skill windups that lock movement/actions and upper-body aiming, trigger the native replicated animation, then release prepared gameplay and VFX together.
- Added explicit installed animation-trigger overrides plus a guarded local
Animator.CrossFadetemplate for RPC-driven state overrides. - Added optional
harrisonepicskillsystem_assetsloading, Jotunn custom-prefab registration, hand/weapon/ground anchors and per-instance auto-destruction. - Added an owner-validated player
ZNetViewRPC with ZDO last-state markers, monotonic deduplication, transform validation and rate limiting so remote clients see windup/release VFX. - Custom RPC-spawned prefabs reject
ZNetView, colliders and rigidbodies; damage and resource authority never enter the presentation channel.
[0.0.16]
- Replaced generated cast geometry with a native Valheim presentation engine: successful skills reuse attack triggers harvested from installed polearms, spears, bows, staves and melee weapons through
ZSyncAnimation. - Added per-skill animation profile overrides in the generated config while resolving the actual trigger from
ObjectDB, avoiding brittle hard-coded animator fields and custom skeletal clips. - Added cached composite VFX recipes using visual-only
ZNetSceneprefabs for staff channeling, fire impacts/trails, Eikthyr lightning, Elder roots, Bonemass poison/smoke and ward layers. - Registry scans occur only when Jotunn announces vanilla prefabs are available. Cast frames use bounded dictionary/list operations, reject networked prefabs and clean up spawned effects deterministically.
[0.0.15]
- Base-to-awakening and upward promotions in the same HECS class chain retain all base-tree investments, learned active nodes and earned-point/level history.
- Sibling-branch changes, family changes, downgrades and unknown class transitions still refund investments. Existing schema-2 saves need no migration.
- Added continuation design definitions for 180 awakening actives and 45 conditional passives on the same base tree, with verified same-main-branch prerequisite chains. These future nodes and handlers are not playable yet.
- Kept the compact runtime icon exports from 0.0.14.
[0.0.14]
- Reduced all 200 active runtime icons from 256 x 256 PNG to 128 x 128 JPEG at quality 70; all unique skill artwork remains available.
- Reduced eleven menu/fallback sprites to 128 x 128 PNG, preserving alpha support and their resource names.
- Embedded only compact exports. Original generated masters and 256-pixel source icons remain outside the gameplay package.
- Added a repeatable runtime export tool that always derives JPEGs from original masters, avoiding repeated lossy compression.
- Validated all compact icon dimensions, unique hashes and stable IDs; reviewed the refreshed base-skill preview.
[0.0.13]
- Added distinct original icons for all 200 cataloged active skills: twenty playable base abilities and 180 awakening designs.
- Base-skill HUD and tree icons now resolve by stable skill ID, with separate artwork for advanced variants.
- Embedded 256 x 256 runtime sprites; retained full-resolution masters separately with prompts, hashes and five family preview sheets.
- Awakening gameplay and inherited loadout selection remain design work; artwork does not add their handlers.
[0.0.12]
- Removed path-name labels and TOTAL BONUSES from the tree; centered selected-node details.
- Added native Compendium entry Harrison Skill Effects with all twenty tree bonuses and learned active descriptions, hotkeys, discounted costs, cooldowns and enabled status.
- Fixed corrupted advanced-skill captions using plain ASCII separators.
- Removed generic foundation lanes from the actual graph and rewired unlocks to named paths. Same-main-branch merges only; Life stays independent.
- Schema-1 migration validates old saves and refunds old investments once, retaining earned points and level high-water marks. Current schema-2 saves retain investments normally.
- Clean build, 4,287 checks passed, installed Compendium method signatures inspected and offline layout reviewed. In-game verification pending.
[0.0.11]
- Full-screen responsive skill screen; five branches and fourteen specialization paths visible simultaneously, without branch tabs.
- Actual fork/merge prerequisites: any one combat/intelligence specialization mastery or the existing foundation route can reach branch Mastery. Its 25-point gate remains. Final foundation star also accepts this Mastery route. Life specializations never converge.
- Preserves schema-1 saves, existing investments, stats and point costs. Draws every actual incoming route, with routed advanced skill connections, clear node details, HECS controls and X close button.
- Validation: clean native Release build, 1,346 focused checks and verified packaged DLL/version/assets. Offline geometry preview reviewed; live gameplay/UI verification remains pending.
Changelog
0.0.10
- Added Intelligence as a fifth main branch with ten foundation stars and two passive milestones.
- Added Eitr Capacity, Arcane Power, Eitr Regeneration and Eitr Efficiency paths; fourteen specializations are now available.
- Wired Intelligence into player magic hit damage, maximum eitr, regeneration, native attack eitr costs and active-skill costs/readiness displays.
- Reflowed the overview into five spokes and adjusted tab spacing to fit Intelligence beside the existing branches.
- Preserved prior node IDs, ranks, active-skill unlocks and point history.
- Verified 1,023 automated checks, including magic skill-tag routing and exactly-once active eitr discounts. Live UI and native magic combat still require Valheim testing.
0.0.9
- Added ten independent specialization paths, each with five ranked stars and a path-gated mastery.
- Added Life Carry Weight, Wood Yield, Ore Yield and Harvest Yield paths; added two paths each to Attack, Defense and Agility.
- Added branch tabs with foundation columns, parallel path lanes and specialization investment details.
- Added eligible native gathering quantity bonuses with fractional rounding and scoped owner-side RPC hooks, including replicated yields for remote resource owners and dedicated servers.
- Preserved old node IDs, saved ranks, MMO-level point history and class/refund behaviour.
- Verified 698 automated checks; native UI, gathering and multiplayer behaviour require in-game validation.
0.0.8
- Matched Spend point, Refund all points and close controls to the exact HECS bronze/stone button artwork and hover/press/disabled colours.
- Reused HECS's crop and nine-slice settings, with artwork embedded in the add-on DLL.
- Moved the close control to the top-right corner and changed its label to X; reserved header space beside it.
- Kept constellation stars and milestone hitboxes free of button backgrounds.
0.0.7
- Removed all filled node plates; stars use transparent clickable hitboxes and hollow selection rings.
- Redesigned the tree into four diagonal constellations with more separation between stat stars and skill/passive milestones.
- Replaced stat symbols with crisp four-point stars and shaded tips; hovered symbols brighten without introducing backgrounds.
- Trimmed thinner connections around each symbol, coloured available nodes by branch and retained gold invested paths.
- Added a central class emblem/label, separated the detail area and hid zero-rank captions to reduce clutter.
- Kept the original Class Altar background and all progression, persistence, HUD and skill rules.
0.0.6
- Reused the exact HarrisonEpicClassSystem Class Altar background: dark stone, misty side scenery and a bronze Norse frame.
- Embedded the background in the add-on DLL; no loose file installation or additional dependency is needed.
- Adjusted text, stars, connections and selected nodes for contrast against the dark panel.
- Retained the four-slot HUD, skill icons, local cast effects and existing progression/input rules.
0.0.5
- Added a golden constellation logo to the MMO Skills navigation entry.
- Added ten class-coloured skill archetype icons, embedded in the DLL, used by active tree nodes and HUD slots; advanced variants show II.
- Added a configurable four-slot HUD with live bindings, locked/disabled states, resource warning tint, radial cooldown and remaining seconds.
- Added bounded local character cast visuals: slash arcs, launch streaks, protective rings and smoke/step rings.
- Added HUD position/scale and effect enable/opacity settings; retained all progression, dependency and input rules.
- Added SKILL_VISUALS.md with configuration, artwork mapping and in-game verification requirements.
0.0.4
- Added a connected constellation skill tree with Life, Attack, Defense and Agility branches.
- Award 3 points per new highest MMO level, including initial catch-up for existing characters; persisted high-water levels prevent level-loss/reconnect point farming.
- Added ranked stat stars, prerequisite/investment gates, eight passive milestones, and class-appropriate active unlock paths.
- Added ten stronger class skills for blocking slots 3/4; all twenty active skills now require a purchased tree unlock.
- Automatically refund all investments whenever the selected class changes, including promotions; retain earned points and highest-level history.
- Added per-character atomic JSON saves with backup recovery and non-committing failed purchases.
- Added confirmed free tree refunds and a ten-second combat lock for tree changes.
- Replaced the MMO skill overview with a scaling constellation panel, node details, point counters and spend/refund controls.
- Verified 314 automated input/cast/economy/progression/serialization checks and compiled without warnings or errors; in-game UI/combat verification remains required.
0.0.3
- Released the Class mod compatibility fix: accept HarrisonEpicClassSystem 0.0.21 or newer with the required public API, including 0.0.23.
- Updated plugin, assembly, manifest and release documentation to 0.0.3.
- Retained all ten base skills, mouse controls and MMO Skills menu integration.
0.0.2
- Fixed startup rejection with Class mod 0.0.23: require minimum 0.0.21 and validate required public API members rather than exact version equality.
- Added Harrisonburg-HarrisonEpicClassSystem-0.0.21 to the package manifest dependencies.
- Released the current ten base-family skills and MMO skill menu integration as version 0.0.2.
- Updated plugin, assembly and package versions together; retained the hard requirement for HarrisonEpicClassSystem, minimum 0.0.21.
- Gameplay and control defaults are unchanged from the latest 0.0.1 base-skill build.
0.0.1
-
Implemented two base skills for Warrior, Mage, Hunter, Rogue and Paladin, inherited after promotion.
-
Added actual weapon damage, travelling Arcane Bolt, ammo-consuming Piercing Shot, finite defense/ward effects and collision-checked retreats.
-
Activated Mouse 4 / Mouse 3 controls with exclusive blocking-slot routing; branch slots remain locked.
-
Suppressed vanilla weapon attack on the skill-button press and added 0.6-second shared cast recovery.
-
Updated MMO Skills overview to show the current family's skills, costs and cooldown readiness.
-
Added 67 automated rule/cast-pipeline checks with stubbed game resources.
-
Added Skills to WackyEpicMMOSystem's navigation, opening a class/skill overview without a K shortcut.
-
Shared MMO menu lifecycle and suppressed skill casting while MMO UI is visible.
-
Standalone skill add-on requiring HarrisonEpicClassSystem exactly 0.0.21, WackyEpicMMOSystem, and Jotunn.
-
Cached reflection adapter with dynamic class, branch, rank and character identity reads.
-
Generated skill config, configurable shortcuts, stamina/eitr costs and character cooldowns.
-
Berserker Whirlwind sample with cosmetic cast event placeholder.
-
Release build script and versioned ZIP packaging matching the Class mod's directory layout.
-
Companion HESS icon with the Class mod's Norse frame and five emblems, featuring golden Whirlwind energy.