You are viewing a potentially older version of this package. View all versions.
Harrisonburg-HarrisonEpicClassSystem-0.0.24 icon

HarrisonEpicClassSystem

Class progression and altar awakening system integrated with WackyEpicMMOSystem.

Date uploaded 2 weeks ago
Version 0.0.24
Download link Harrisonburg-HarrisonEpicClassSystem-0.0.24.zip
Downloads 157
Dependency string Harrisonburg-HarrisonEpicClassSystem-0.0.24

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202
WackyMole-WackyEpicMMOSystem-1.9.67 icon
WackyMole-WackyEpicMMOSystem

Adds to your Valheim world a system of levels and distribution of characteristics

Preferred version: 1.9.67
ValheimModding-Jotunn-2.30.0 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.0

README

HarrisonEpicClassSystem 0.0.24

Choose Warrior, Mage, Hunter, Rogue, or Paladin and awaken through 15 branches into 50 classes. Uses your WackyEpicMMOSystem level and attributes. Base classes accept all weapon types from their promotion paths: Warrior swords/axes/spears, Mage elemental/blood magic, Hunter bows/crossbows/spears, Rogue knives/swords/fist weapons, Paladin swords/maces/polearms. Shields are optional at base rank. Promoted classes retain their own weapon and shield requirements. Suggested equipment grants bonuses; class drawbacks and wrong gear can apply penalties.

Installation

Required: BepInExPack Valheim 5.4.2202, WackyEpicMMOSystem 1.9.67, and Jötunn 2.30.0.

Extract the release ZIP into Valheim or your active mod-manager profile. Keep HarrisonEpicClassSystem.dll and the entire Portraits folder together under BepInEx/plugins/HarrisonEpicClassSystem/. Restart Valheim and reload the world after updating.

Playing

  1. Build Harrison Class Altar from the Hammer's Harrison Class System category: 1 Wood + 1 Stone by default. Placement uses stone-foundation sound/effects. Removing or destroying the altar drops its configured recoverable build materials through Valheim's normal building system.
  2. Focus an altar surface and press E once. Choose a class, review the confirmation and rare-material warning, then confirm. Cancel returns to browsing without assigning a class. Selection confirmation shows only a warning, without reset items or costs. UI level labels read Level; the reset status message is centered.
  3. Select Awaken when you have the required level and materials. Choose a branch at the first awakening; later awakenings follow it.
  4. Use Class Effects for buffs, penalties, and attribute passives. Compendium → Class Effects shows effects with your current gear; reopen it after changes to refresh.

Successful class selection or awakening closes the UI and plays Kneel with native Forsaken activation visuals/audio. Move to stop kneeling. The ceremony uses your equipped power's effects (Eikthyr if none) without granting its buff or consuming its cooldown.

The UI follows your GUI Scale setting. Class Effects uses smaller, immediate scroll steps; buttons play one click sound. Press ESC to close it. Matching chest and legs activate armor bonuses; one wrong armor piece applies half the mismatch penalty. Empty slots remove set bonuses without mismatch penalties.

Awakening defaults

  • First: level 20; 2 matching Awakening Stones.
  • Second: level 60; 5 matching Awakening Stones.
  • Mythic: level 90; 20 matching Awakening Stones.

Thunderstone-based Awakening Stones match your class family: Warrior (red), Mage (pink), Hunter (green), Rogue (deep purple), and Paladin (yellow). Each has an independent 0.5% chance per non-player creature death by default. The awakening screen shows the matching stone icon and required count. Class Effects sits above Choose on the starting-class screen.

Each of the 45 awakening classes also has its own extra recipe. First/Second/Mythic defaults use 5 Bronze / 10 Iron / 20 Black Metal plus 3 / 6 / 12 branch ingredients. The selected awakening page shows every item icon and count; its material list scrolls four times faster with immediate stops.

Starting-class inherent drawbacks are mild: Warrior and Paladin lose only 1% movement; Mage loses 2 health, 5 carry weight and 3% health regeneration; Hunter loses 1 health; Rogue loses 2 health, 3 carry weight and 2% health regeneration. Warrior, Hunter and Paladin have a 0.5 percentage-point crit drawback. Promoted-class drawbacks and wrong-equipment penalties are unchanged; explicit cfg overrides still take precedence.

Awakenings must be completed in order; reaching a level does not promote automatically.

Trials, mastery and presets

Awakening also requires 5 / 10 / 20 themed kills at First / Second / Mythic under Standard. Warrior targets Greydwarfs and Trolls; Mage Shamans and Skeletons; Hunter wild Boar, Deer, Neck and Wolves; Rogue Skeletons and Goblins; Paladin Skeletons, Draugr and Wraiths. The awakening page shows progress above the scrollable material list. Choosing/resetting a class or completing an awakening starts a fresh trial; failed attempts consume nothing.

Class mastery is saved separately for each of the five families and survives class resets. Creature kills give 10 XP, bosses 50 XP; level costs rise through 300 / 600 / 900 / 1200 / 1500 XP, up to 5 (30 ordinary kills for the first level on Standard). Each mastery level adds 1 percentage point of suitable-weapon damage. Current Class and Class Effects show mastery. Players and tamed creatures give neither XP nor trial credit. Only the credited killing player progresses, with remote credit routed from the creature owner. Lethal applied damage credits immediately, with a deduplicated death fallback; the live no-XP report still needs an in-game retest. Saves are checkpointed at most every ten seconds and on normal shutdown; an abrupt exit can lose recent kill progress. Existing saves start with zero new progress.

Set [Server Balance] Preset to Casual, Standard, or Hardcore. Casual uses 0.5x awakening/reset materials, trial counts and inherited penalties, with 1.5x mastery XP. Standard uses configured amounts unchanged. Hardcore uses 1.5x costs/trials/inherited penalties and 0.75x XP. Positive amounts round upward to at least one; zero stays disabled. Explicit per-class balance overrides remain final. Level requirements, drop rates and altar build costs are unchanged.

[Awakening Trials] controls Enabled, rank kill counts and each family's Targets prefab list (* means any creature). [Class Mastery] controls Enabled, kill/boss XP, first-level XP cost, increase per level, maximum level and damage per level. Disable either feature without erasing its saved progress. Each peer must install the mod and use matching cfg settings; presets do not automatically synchronize client configs. Restart after changes.

Example progression settings in BepInEx/config/HarrisonEpicClassSystem.cfg:

[Class Mastery]
Enabled = true
KillExperience = 10
BossExperience = 50
ExperiencePerLevel = 300
ExperienceIncreasePerLevel = 300
MaxLevel = 5
DamagePercentPerLevel = 1

[Awakening Trials]
Enabled = true
FirstKills = 5
SecondKills = 10
MythicKills = 20
WarriorTargets = Greydwarf,Greydwarf_Elite,Troll

Existing cfg files retain their values after updating: change ExperiencePerLevel = 100 to 300 yourself for the new pacing. Also set ExperienceIncreasePerLevel = 300 for rising costs (new key defaults to 300). Total XP thresholds are 300 / 900 / 1800 / 3000 / 4500. Set the increase to zero for flat costs. Saved XP remains intact; levels and bonuses are recalculated from your configured curve. The UI shows progress toward the next level or MAX. MageTargets, HunterTargets, RogueTargets and PaladinTargets customize the other trial families. Class traits (buffs/drawbacks) remain configurable in each [Class <name>] section below.

Resetting your class

Select Change Class and confirm payment. Costs by current rank:

  • Base: 1 Light of the God + 100 coins.
  • First: 2 lights + 200 coins.
  • Second: 4 lights + 400 coins.
  • Mythic: 8 lights + 800 coins.

Light of the God is a red Wisp-based item with a 0.1% creature drop chance by default. Resets clear your class, branch, and awakenings while preserving MMO level and attributes. Spent awakening materials are not refunded.

Configuration

Created on first launch: BepInEx/config/HarrisonEpicClassSystem.cfg.

  • Class Progression: levels must satisfy First < Second < Mythic.
  • Awakening Stones: WarriorDropChancePercent, MageDropChancePercent, HunterDropChancePercent, RogueDropChancePercent, and PaladinDropChancePercent default to 0.5; FirstAmount, SecondAmount, and MythicAmount default to 2, 5, and 20. Zero disables that drop or stone cost. IncludeExtraMaterials defaults to false; enabling it adds the existing global Awakening Requirements lists on top of stones and class recipes.
  • Awakening Class Berserker / etc.: Materials = Bronze:5,TrollHide:3 controls extra costs independently for each of the 45 target classes. An empty value requires only its stones.
  • Class Reset: LightDropChancePercent, rank light costs, and coin costs. Zero disables that drop chance or material cost.
  • Equipment Suitability: buffs, drawbacks, penalties, scaling, and critical hits. Enabled disables equipment effects; PenaltiesEnabled disables penalties only.
  • Class Warrior / Class Mage / etc.: individual settings for all 50 classes. MatchingBuffs, ClassDrawbacks, and WrongArmor accept partial Stat:Value lists. Use positive buffs and negative penalties; Default preserves calculated values. Numeric damage/armor/penalty/attribute settings use -1 to inherit or 0 to disable.
  • Harrison Class Altar: build cost, hover text, and HammerIconYawOffset.

Restart after editing settings. All multiplayer peers need the mod and matching settings; the creature owner controls its drop roll.

Example for Warrior (other classes have separate sections):

[Class Warrior]
MatchingBuffs = Health:25,StaminaRegen:15,CarryWeight:40
ClassDrawbacks = MoveSpeed:-2,EitrRegen:-5
WrongArmor = CarryWeight:-30,HealthRegen:-15
WeaponDamagePercent = 12
WrongWeaponDamagePercent = 20

Explicit values replace final amounts; they are not scaled again. Unlisted stats keep global/rank calculations. Supported stat keys and units are documented in cfg comments; the class table shows default values.

Class stats and release notes

See the single 50-class buffs and penalties table and changelog.

The 0.0.23 performance hotfix reuses calculated equipment stats and only corrects altar transforms when they change. Equipment and cfg changes update immediately. A simulated 50,000-read sample dropped from about 74 MB of allocations to zero after warm-up; this is not an in-game FPS measurement.

The build passes 1,887 focused checks. The reported permanent inventory freeze has not been reproduced or confirmed fixed; available logs contained no repeating HECS error. Final performance, altar stability, ceremony animation/audio, visuals, UI layout, and multiplayer drops need in-game verification.

Project folder: D:\Valheim Mod\HarrisonEpicClassSystem.

Release artwork is optimized: 50 portraits at up to 256×256 pixels with 128-color PNG palettes; UI textures are capped at 768 pixels (background) and 384 pixels (button). Obsolete artwork backups and duplicate build staging folders have been removed. Source code and Unity assets needed to rebuild remain available.

Multiplayer fix included in 0.0.24: player RPC initialization waits two seconds and retries until network views and ObjectDB are ready. Kill-credit sends/receives validate network singletons, player/victim ZDOs and prefab parameters. Public class identity uses a validated invariant-culture versioned ZDO string; private progression remains local. Load/save republishes identity, including class resets. Debug compilation passed with zero warnings and zero errors; live multiplayer behavior remains unverified; Release 0.0.24 includes this fix; live multiplayer behavior remains unverified.

Third-party compatibility (class 0.0.24 release / skill 0.0.29 source changes): BetterUI is optional and detected through Chainloader reflection. Only our altar, skill-tree and skill-HUD canvases use sorting order 99; scale compensates for inherited HUD transforms, and the skill menu fits the screen on creation/open/refresh/close. Awakening/respec materials match ObjectDB prefab identity rather than display names, so renamed/prefixed items remain eligible. Materials are consumed with native per-item Inventory.RemoveItem, which preserves identity and invokes inventory-change/stack-mod hooks without directly rewriting stack values or assuming maximum stack sizes. Only our altar's Piece.DropResources requirements are normalized to ObjectDB prefabs; vanilla refund ownership and splitting remain in control. Existing weapon damage/stat hooks already use native weapon data rather than strict display names and are preserved. Both projects passed Debug compilation with zero warnings and zero errors; compatibility with the three external mods requires an in-game check. The class-side changes are included in 0.0.24. Skill-side canvas/HUD changes remain source-only in HarrisonEpicSkillSystem 0.0.29 and require a separately authorized skill build. Installed DLLs are unchanged. 0.0.24 release: plugin, assembly and manifest version metadata are updated; the ZIP includes the class DLL, portraits, available optional AssetBundle and current README, CHANGELOG and summary. Release compilation passed with zero warnings and zero errors; packaged files verified against staging and source, with assembly/manifest versions 0.0.24. Optional AssetBundle absent; runtime fallbacks retained. Native multiplayer and external-mod compatibility still require in-game confirmation.

CHANGELOG

Changelog

[0.0.26]

Release

  • Updated plugin/assembly/manifest metadata, both release scripts, README and class-stat guide to 0.0.26. Packages the current source with unchanged gameplay, class stats, equipment rules and configuration defaults.
  • Includes the simplified README and Buy Me a Coffee support link added after the 0.0.25 build. Preserves older changelog history and release ZIPs.
  • Release compilation passed with zero warnings and errors; all 1,887 equipment/progression checks and 77 class-selection checks passed, along with installed game-hook verification.
  • Exported HarrisonEpicClassSystem-0.0.26.zip with the DLL, all 50 portraits and current README, CHANGELOG, summary and CLASS_STATS. Verified ZIP contents against staging/source/build, assembly/manifest version 0.0.26 and unchanged older release hashes. Optional AssetBundle absent; runtime fallbacks retained. Native crashes, live multiplayer/external-mod compatibility and visual behavior remain unverified in-game.

[0.0.25]

Documentation

  • Added a Buy Me a Coffee support link at the start of README and simplified it to describe the mod's classes, awakening, equipment effects, mastery, class changes, and balance options. Removed installation, troubleshooting, configuration examples, and build/verification details from README.

Release

  • Updated plugin/assembly/manifest metadata and both release scripts to 0.0.25; refreshed README, development summary and class-stat guide for the release. Preserves older release history and ZIPs.
  • Packages the current source, including the 0.0.24 class-selection compatibility hotfix, independent ceremony switches, inherited family colors, multiplayer readiness/snapshot fixes and prefab-based material compatibility. Class stats, equipment rules and configuration defaults are unchanged.
  • Release compilation passed with zero warnings and errors; all 1,887 equipment/progression and 77 selection/awakening/ceremony checks passed, along with installed game-hook verification.
  • Exported HarrisonEpicClassSystem-0.0.25.zip with all 50 portraits and the latest README, CHANGELOG, summary and CLASS_STATS. Verified every ZIP file against staging, source documents/assets and the built DLL; checked assembly/manifest version 0.0.25 and preserved older ZIP hashes. Optional AssetBundle absent; runtime fallbacks retained. Native crashes, live multiplayer/external-mod compatibility and visual behavior remain unverified in-game.

[0.0.24]

Class-selection compatibility hotfix

  • Selection/awakening now close the altar before class notifications, so the success path no longer rebuilds the menu it is closing. Immediate close clears altar ownership and releases input in a finally block before add-on postfixes run.

  • Dispatch each class/awakening event subscriber independently with full exception/method diagnostics. Guard post-commit close, notification and ceremony calls, including managed exceptions from Harmony patches, so optional failures cannot abort the remaining success steps.

  • Add [Class Ceremony] EmoteEnabled and EffectsEnabled (both true by default). Disabling both skips native Kneel and Forsaken startup effects/audio for isolation of animation/race/effect conflicts; class selection, payment and progression still complete. README includes the workaround and crash-log instructions.

  • Release compilation passed with zero warnings/errors. Passed 77 source-linked regression checks covering listener exceptions, close/emote/effect failures, callback ordering, independent ceremony switches and repeated selection/awakening without duplicate saves/payment. Refreshed obsolete equipment-check fixtures to use prefab-backed item stacks and native per-item removal, linked the real event/completion dispatcher, and passed all 1,887 existing checks.

  • Exported a separate HarrisonEpicClassSystem-0.0.24-class-selection-hotfix.zip with the latest README/changelog and verified packaged documents/DLL against source/build. Preserved the original 0.0.24 release ZIP and installed files. The reported Valheim 1.0.16 / Unity 6 / 60-mod crash is unconfirmed: the supplied log stops during startup, with no failure stack; live mod-pack verification is pending.

  • All five base classes and 45 First/Second/Mythic promoted classes now expose computed family ColorHex profiles through ClassDefinition and ClassRegistry.GetColorHex: Warrior #C82020, Mage #2060C8, Hunter #20C840, Rogue #8020C8, Paladin #E5B823. Current/promoted altar class titles use inherited hues; the skill project uses the matching matrix for tabs, paths, borders, HUD and VFX. Both projects compile in Debug with zero warnings/errors; focused checks passed all 50 classes, 45 awakened parent links, 15 family/tier groups and 60 tab-lineage selections. Gameplay/version unchanged; no release scripts/ZIP refresh. In-game visual QA pending.

  • Includes the class multiplayer fix: delayed readiness-aware RPC setup, network/ZDO/parameter validation and owner-published versioned public class snapshots refreshed on load/save.

  • Includes class-side BetterUI canvas ordering/scale compensation, prefab-based awakening/respec material validation, native per-item consumption for stack-mod compatibility and canonical altar refund prefab references.

  • Updates plugin/assembly/manifest and release script metadata to 0.0.24. Includes the current three core docs in the release package; the older 0.0.23 ZIP is preserved.

  • HarrisonEpicSkillSystem remains 0.0.29; its recent skill-tree/HUD compatibility edits are source-only and are not included in this class release.

  • Release compilation passed with zero warnings and zero errors; packaged files verified against staging and source, with assembly/manifest versions 0.0.24. Optional AssetBundle absent; runtime fallbacks retained. No installation or in-game multiplayer/external-mod testing performed.

[0.0.23]

Third-party compatibility source changes (unpackaged)

  • Class/skill UI adds optional reflected BetterUI detection, own-canvas sorting order 99 and inherited-scale compensation; skill-tree sizing follows the screen through its UI lifecycle.
  • Awakening/respec material checks match ObjectDB prefabs, preserving eligibility for Forge of Potential renamed/prefixed items. Only altar refunds normalize native resource prefab references.
  • Native per-item Inventory.RemoveItem consumes exact prefab-matched stacks for awakening/respec costs, retaining inventory-change/stack hooks and avoiding shared-name collisions or fixed stack limits.
  • Skill source remains 0.0.29 and class source remains 0.0.23. Both projects passed Debug compilation with zero warnings and zero errors; no release scripts, packaging or installation. Native weapon stats and combat inputs are unchanged by these compatibility changes.

Multiplayer source fix (unpackaged)

  • Added delayed, readiness-aware player RPC initialization and guards for missing network singletons, player/victim ZDOs and invalid prefab parameters.
  • Added owner-published, validated versioned class-identity strings in player ZDOs; load/save refresh snapshots without overwriting local progression or blocking future publishes after slow initialization.
  • Debug compilation passed with zero warnings and zero errors. Version and release ZIP remain unchanged; live multiplayer confirmation is pending.

Project and package cleanup

  • Removed obsolete previous-design portraits, high-resolution redesign intermediates, backup artwork ZIP, duplicate release staging folders and regenerable build/test outputs.

  • Reduced all 50 current portraits to at most 256×256 with 128-color palettes; capped UI background/button at 768/384 pixels. Runtime image files reduced from 6,899,525 to 2,865,927 bytes; existing filenames and transparency preserved.

  • Rebuilt the current release with optimized assets. Retained source code, Unity project, reference screenshots and the current release ZIP; gameplay unchanged.

  • Updated plugin/assembly version, manifest, release scripts, README and class guide to 0.0.23. Preserves older release history and ZIPs.

  • Includes increasing configurable mastery costs (300/600/900/1200/1500 XP per level), cumulative XP caps and next-level UI progress. Saved XP and existing config values remain intact.

  • Includes lethal applied-hit kill credit with deduplicated death fallback, configurable mastery/trials/class traits, and all existing altar, equipment and UI improvements. This release changes version metadata only.

  • Validation: clean main/test builds, 1,887 focused checks, installed native hook signatures and packaged document/DLL hashes. Live kill credit, multiplayer and the reported inventory freeze still need an in-game retest.

[0.0.22]

Increasing mastery XP costs

  • Added configurable ExperienceIncreasePerLevel (default 300). ExperiencePerLevel is the first-level cost; successive costs default to 300/600/900/1200/1500, with cumulative thresholds 300/900/1800/3000/4500. Zero increase supports flat costs.
  • Mastery level, XP cap and damage bonuses now use the same cumulative curve. Saved XP is preserved when settings change; level/bonus recalculates. UI shows XP toward the next level or MAX.
  • Clean builds and 1,887 checks passed, including threshold boundaries, custom increases, flat-cost compatibility and next-level UI. Updated README and verified rebuilt 0.0.22 ZIP; live kill credit still requires in-game retest.

Mastery progression hotfix

  • Initially increased new-config mastery defaults to flat 300 XP per level. Superseded by the increasing curve above; the first level still requires 30 ordinary kills at 10 XP on Standard. Existing configured values and saved XP remain intact.
  • Added owner-side lethal ApplyDamage health-transition credit using the attacker captured before damage, plus the shared deduplicated death fallback. This avoids relying solely on a later death callback for mastery/trial rewards. Remote credit keeps the existing player-owner RPC route; players/tamed creatures stay excluded.
  • Documented editable mastery rewards, level cost/cap/damage, trial rank counts/family targets and existing-cfg migration; class traits remain configurable per class.
  • Clean builds, 1,873 focused checks and installed hook signatures verified; direct live kill credit and multiplayer behavior still require an in-game retest. Refreshed the 0.0.22 ZIP with matching source documents and DLL.

Release

  • Updated plugin/assembly metadata, manifest, export scripts, README and class guide to 0.0.22. Preserved the 0.0.21 ZIP and older changelog history.
  • Includes configurable awakening trials, persistent family mastery, Casual/Standard/Hardcore presets, owner-routed kill credit, and trial/mastery progress in the altar and Class Effects.
  • Retains all current class balance, equipment, altar, UI, reset and performance improvements. The initial release changed version metadata only; the mastery hotfix above now changes progression and kill attribution.
  • Validation covers clean builds, 1,864 focused checks, installed game hooks and packaged DLL/document hashes. Multiplayer kill credit, UI layout and native altar behavior still need in-game verification; the reported permanent inventory freeze remains unconfirmed.

[0.0.21]

Trials, mastery and balance presets

  • Added configurable family-themed awakening trials: 5/10/20 credited eligible creature kills under Standard. Trials gate real awakening services before consumption, appear above a resized scrollable material viewport with button clearance, and reset after class selection/reset/awakening. Existing characters start at zero; players/tamed creatures cannot progress trials or mastery.

  • Added persistent mastery for each family: 10 XP per creature / 50 per boss, 100 XP per level, five levels and +1 percentage point suitable-weapon damage per level by default. Mastery survives paid class resets; disabling removes earning/bonus without clearing XP. Existing JSON saves remain compatible. Current Class and Class Effects show mastery; material snapshots refresh trial/XP changes.

  • Added Casual/Standard/Hardcore cfg presets. Costs, trial targets and inherited penalties scale 0.5/1/1.5; mastery XP scales 1.5/1/0.75. Zero stays zero and positive material/kill/XP values round upward. Explicit class balance overrides stay final; progression levels, drop chances and altar build costs do not change. Matching peer cfg is required; automatic config synchronization is not included.

  • Network-owner death hook credits the final player attacker once, routing remote credit to that player's registered RPC. Receiver checks a still-present victim's owner and deduplicates victim IDs within a bounded session window. Credited kills are checkpointed no more than once per ten seconds and on normal shutdown; abrupt exit may lose recent progress. Multiplayer delivery and visual layout need an in-game test.

  • Added 255 focused checks (1,864 total): all families/presets, themed exclusions, trial gating/payment atomicity, mastery cap/damage, reset retention, legacy saves, serialization and config overrides. Warmed stat reads still allocate zero bytes. README/default-stat guide and current 0.0.21 export updated.

  • Renamed and relocated the source project from HarrisonEpicClassSystem-0.0.14-src in Downloads to D:\Valheim Mod\HarrisonEpicClassSystem. Retains all source, assets, build outputs and release ZIPs; gameplay/DLL unchanged. README and current release documents updated.

Release

  • Updated plugin/assembly metadata, manifest, export scripts, README and class guide to 0.0.21. Preserved the 0.0.20 ZIP and older changelog history.
  • Includes expanded base-class path weapons, optional base shields, class-selection confirmation with rare-material warning, distinct configurable recipes for all 45 awakening targets, milder base drawbacks, faster material scrolling and Level labels.
  • Includes the Harrison Class System Hammer category, stone placement effects, native altar destruction/refunds, success ceremony and equipment performance optimizations.
  • Build passes 1,609 focused checks. Release verification covers installed game hooks and packaged DLL/document hashes; final UI, construction sound/refunds and multiplayer behavior need in-game verification. The reported permanent inventory freeze remains unconfirmed.

[0.0.20]

  • Base-class weapon suitability now includes every promotion-path skill: Warrior swords/axes/spears; Mage elemental/blood magic (already supported); Hunter bows/crossbows/spears; Rogue knives/swords/fist weapons; Paladin swords/maces/polearms. Base shields are optional so two-handed branch weapons qualify. Promoted specialization, armor rules and attribute-passive conditions remain intact. Suggestions and damage/speed/crit suitability use the shared expanded profile. Added 206 branch-weapon checks (1,609 total); updated README, base table rows and release ZIP.

  • Simplified starting-class confirmation to a rare-material warning with Confirm/Cancel, removing reset material icons/counts. Center-aligned reset readiness/missing-material status on the UI centerline. Changed visible MMO Level/MMO level wording to Level/level. README and release ZIP updated; final layout needs an in-game check.

  • Increased awakening material-list wheel sensitivity from 25 to 100 (4x) and disabled inertia for immediate stops. Shared material lists on selection/reset confirmations use the same behavior. README and packaged release updated; scroll feel requires an in-game check.

Release

  • Moved Harrison Class Altar into its own Harrison Class System Hammer category and removed Furniture/Misc usage tags. Uses Jotunn's native custom-category registration.
  • Copied the vanilla stone floor's placement effects, including construction audio, onto the altar root. Added one root WearNTear with stone-floor durability, damage resistance and hit/destruction effects. Native owner-side destruction/removal now calls Piece.DropResources for the configured recoverable requirements; decorative children do not refund independently.
  • Kept roof/support decay disabled and automatic destruction fragments disabled to preserve altar stability and avoid fragment overhead. Explicit attacks and Hammer removal use native building behavior.
  • Updated plugin/assembly/manifest metadata, export scripts, README and class guide to 0.0.20. Build and 1,403 existing checks pass; installed building/refund/category API paths were inspected. Hammer category, placement sound and refunds need an in-game test after reloading the world. The previously reported permanent inventory freeze remains unconfirmed.

[0.0.19]

Selection, awakening costs and starting balance

  • Choosing a starting class opens a separate confirmation with its portrait, suggested equipment and current base-rank reset costs. Confirm commits the choice and ceremony; Cancel leaves the player unassigned. Opening/closing clears pending confirmation.

  • Added independently configurable extra recipes for all 45 awakening targets under Awakening Class <target>/Materials. Every target has a distinct default: rank metals (5 Bronze / 10 Iron / 20 Black Metal) and branch ingredients (3/6/12), alongside the existing 2/5/20 family stones. Empty target Materials allows stones only; IncludeExtraMaterials separately controls optional legacy global lists. Existing custom cfg values remain intact.

  • Awakening UI costs and service consumption resolve the selected branch before checking/payment; changing pages refreshes the matching recipe. Added 364 recipe checks covering all targets, exact consumption, missing extras, unique defaults and independent overrides (1,403 total); zero-allocation warmed stat sample still passes.

  • Softened only inherent drawbacks of Warrior, Mage, Hunter, Rogue and Paladin. Updated the five base rows in the single CLASS_STATS table. Promoted drawbacks and wrong-equipment penalties retain their values, and explicit per-class cfg overrides still take precedence. README/changelog/export updated; confirmation layout and material icons require in-game verification.

  • README cleanup: kept Building from source, Documentation maintenance and Altar and visuals sections omitted; removed the remaining decorative altar description. Updated packaged README/changelog; gameplay and DLL unchanged.

Release

  • Performance hotfix: replaced allocating per-class string keys with typed keys, cached scaled/default/overridden profiles and effective stats, and moved profile-warning closures outside repeated stat reads. Gear, class, cfg and enable changes still take effect immediately; no balance changes.
  • Altar pose anchoring now writes only changed transforms, avoiding unnecessary collider/physics updates while retaining sinking prevention.
  • Added 15 allocation/cache-invalidation checks (1,039 total). In a warmed source-linked simulated inventory test, 50,000 equipment-stat reads dropped from 73,623,936 allocated bytes to zero. Main DLL and checks build without warnings/errors; the reported permanent inventory freeze remains unconfirmed because no live frozen process or repeating HECS error was available. Updated README and export; an in-game performance retest is required.
  • Successful base-class selection and awakening immediately close the altar UI, release input, and start the native continuous Kneel emote. Normal movement ends Kneel; failed or repeated attempts do not celebrate.
  • Replaced the previous awakening beam/particles with the equipped Forsaken power's native startup effects and audio, falling back to Eikthyr when no power is selected. Does not apply a power buff or spend its cooldown; spawned ceremony effects are cleaned up after eight seconds. Animation/effect failures are logged without undoing saved progression or payment.
  • Added 54 source-linked success/failure checks across all five base classes and all awakening ranks (1,024 total). Verified installed emote/effect API signatures and built with zero warnings/errors. Native animation, sound, movement cancellation and multiplayer appearance still need in-game verification.
  • Updated plugin/assembly metadata, manifest, export scripts, README and class guide version to 0.0.19; retained the 0.0.18 release ZIP.

[0.0.18]

Release

  • Added five Thunderstone-based Awakening Stones with matching colored models and inventory icons: Warrior red, Mage pink, Hunter green, Rogue deep purple, and Paladin yellow. Each independently rolls a configurable 0.5% drop chance on non-player creature death; only the owner rolls once.
  • Awakening now consumes 2/5/20 stones from the player's class family by default. All counts are configurable; existing extra material lists remain available through IncludeExtraMaterials (disabled by default). Wrong-family stones cannot pay, duplicate material entries are merged, and remote/unassigned players cannot awaken.
  • Moved starting-class Class Effects directly above Choose and shifted the anchored runestone backward with its rear mesh edge inside the foundation. Added 158 awakening/payment checks (970 total); updated README and build notes. Item colors, placement and multiplayer spawning require in-game verification.
  • Added 550 cfg entries across 50 independent class sections: partial matching-buff, inherent-drawback and wrong-armor profiles; weapon/armor bonuses; wrong-weapon damage/speed/crit and wrong-armor defense; attribute damage rate/cap. Existing cfg values and default balance remain intact.
  • Default/-1 entries inherit global and rank calculations; explicit values replace final amounts without double scaling. Invalid, unknown, nonfinite or incorrectly signed profile values are ignored with cached warnings. Global enable switches and existing combat safety limits remain effective.
  • Connected overrides to actual combat, regeneration/resources, equipment penalties, critical chance, and altar/Compendium descriptions. Config entries are registered with autosave temporarily disabled and saved once. Added 167 focused configuration/integration checks (812 total), updated concise README/example and default-stat guide.
  • Restored the Eikthyr OfferingBowl altar center and removed mage-table brightening, retaining second-row placement, the anchored runestone and full-surface interaction.
  • Reduced Class Effects wheel steps from 150 to 80, disabled inertia for immediate response, and sized content to measured text height to remove unnecessary scrolling space.
  • Normalized HECS button audio to one guarded native click callback: disables inherited ButtonSfx event hooks and persistent audio calls, and suppresses hover/selection sounds during page rebuilds. Audio failures do not stop button actions.
  • Aligned portrait and equipment recommendations to the same 200px width and centerline; equipment text is explicitly centered. Updated the concise README and build notes. Build validation does not replace an in-game audio/layout/scroll check.
  • Shortened README to installation, playing, awakening/reset defaults, essential configuration and links. Moved the unchanged single 50-class table and detailed equipment rules into CLASS_STATS.md; package scripts include the guide and the stats generator updates it without expanding README. Documentation-only update; gameplay and DLL unchanged.
  • Updated plugin metadata, assembly version, manifest, build/export scripts and current documentation to 0.0.18.
  • Includes the Eikthyr OfferingBowl altar center, 3x3 foundation, fitted/anchored runestone, and interaction forwarding across altar surfaces.
  • Includes the red Wisp-based Light of the God with its corrected inventory icon, configurable 0.1% creature drops, and configurable rank-based reset payments.
  • Includes Class Effects in the altar and Compendium, yellow numeric values, faster effects scrolling, aligned class pages and awakening buttons, and no page counters.
  • Retains all 50 optimized portraits and the single consolidated CLASS_STATS.md table. Release verification covers the build, 970 focused checks, installed gameplay/Compendium API hooks, and packaged DLL/document hashes. Altar stability, stone colors and UI appearance still require in-game verification.

[0.0.17]

Altar

  • Replaced the Eikthyr OfferingBowl center visual with piece_magetable_ext, resolved directly from the vanilla prefab cache. Uses the same second-row position and surface alignment, with independent crafting-station gameplay stripped.
  • Brightened copied mage-table materials with a 20% white tint lift and 1.4x RGB gain, preserving alpha/textures and leaving vanilla material assets unchanged. Updated README/build notes; final brightness needs an in-game check after reloading the world.
  • Moved the offering altar forward onto the second foundation row. Shifted the runestone forward and fit its whole mesh footprint inside the rear two rows with edge clearance.
  • Removed all independent decorative MonoBehaviours, joints and rigidbodies, and serialized a runestone pose anchor to prevent delayed sinking. Reloading the world applies the new prefab to placed altars; stability beyond 30 seconds needs in-game verification.
  • Retained physical decorative colliders and added interaction forwarding on foundation, stairs, runestone, offering altar and braziers. All surfaces open the same UI; decorative trigger volumes are removed.
  • Corrected Hammer icon facing with a 180-degree preview yaw; added HammerIconYawOffset configuration and prioritize the corrected render over an older bundled icon. Placed altar rotation is unchanged.
  • Expanded the stone foundation from 3x2 to 3x3, adding a full front standing row and moving the entrance stair to the new front edge.
  • Removed the additional 0.60 m brazier lift; feet now snap directly to the platform with only the normal surface clearance.
  • Measure disabled LOD mesh geometry and skinned-mesh local bounds when placing the runestone and other visuals. If no geometry can be measured, place the visual root on the foundation instead of leaving it at ground height.
  • Strip vanilla SnapToGround behavior from cloned visuals to prevent the runestone from being moved back to terrain height after placement.

Class UI

  • Renamed Abilities buttons and screen to Class Effects. Highlighted numeric bonuses/penalties/percentages/multipliers in yellow in both altar and Compendium, preserving rich-text tags. Increased altar effects scroll sensitivity from 25 to 150.
  • Placed the awakening Class Effects button directly above Awaken to. Aligned the current-class heading, portrait, equipment suggestions and Previous on a shared left-column center, with consistent portrait sizes and navigation positions.
  • Removed page-number counters from base-class selection and awakening pages, including the legacy bundled-canvas counter; Previous/Next navigation is retained.
  • Added a native Compendium Class Effects category alongside Active Effects. It shows the assigned class, equipped-gear suitability, current equipment damage/armor/resource/regen/movement/carry/attack modifiers, active penalties, critical chance and attribute passive. Unassigned players receive class-selection guidance; reopening refreshes the snapshot.
  • Shared attribute-passive descriptions between altar Abilities and Compendium. Added 19 focused Class Effects checks (639 total) and verified native Compendium list APIs; in-game category/scrolling remains to be checked.
  • Increased background dimensions from 760x620 to 950x775 (25 percent wider and taller), preserving player GUI Scale support.
  • Opening the altar with no class shows class selection; assigned players see current class information instead of an upcoming promotion.
  • Normal class and promotion pages show Suggested Weapon and Suggested Armor only. Buffs, penalties, and attribute passives are available through a separate scrollable Abilities view with Back navigation.
  • Current-class page has Change Class, Abilities, and Awaken buttons at the bottom. Awaken opens the existing one-target-per-page material/branch browser; successful class selection or awakening returns to the current-class page.
  • Mythic characters can view Abilities or change class; the Awaken button is disabled. Reset confirmation is cleared when navigating to abilities.

Release

  • Light of the God now copies and red-tints the actual vanilla Wisp inventory sprite; removed world-model icon rendering that resembled LuredWisp. Keeps the original Wisp icon if GPU recoloring fails.
  • Focused checks now total 645, including number colors, percentages, multipliers and preservation of existing rich-text colors. Updated README and build notes for the fixes and in-game verification limits.
  • Added Light of the God: separate red Wisp-based item, stack limit 100, custom rendered icon, and configurable 0.1% drop chance per non-player creature death. Only the network owner rolls once; vanilla Wisp materials are preserved.
  • Class resets now consume Light of the God (1/2/4/8) and coins (100/200/400/800) at Base/First/Second/Mythic rank. All eight costs are configurable, and payment is enforced by the reset service, including API calls.
  • Added a reset confirmation page with separate warning and cost areas, item icons, owned/required counts, disabled confirmation when materials are missing, and Cancel. MMO level/attributes are retained and awakening materials are not refunded.
  • Updated README with drop behavior, rank costs, multiplayer configuration, and Hammer icon settings. Red item visuals, icon facing, and multiplayer drops require in-game verification.
  • Expanded focused checks to 620, covering all reset rank payments, insufficient inventory, unchanged progression on failure, exact consumption, repeated/remote resets, missing prefab registration, and drop-probability boundaries. Verified death/ownership/item-drop API targets against installed game assemblies; loot errors cannot interrupt normal creature death.
  • Updated plugin metadata, assembly version, manifest, release scripts and current documentation to 0.0.17.
  • Retains the single 50-class README stat table and all existing combat buffs and penalties. Layout and placement still require an in-game visual check.

[0.0.16]

Release

  • Updated plugin and assembly metadata, manifest, release scripts, and current documentation to version 0.0.16.
  • Includes the current 50-class equipment system: damage, armor, movement, resource pools, health/stamina/eitr regeneration, attack speed, carry weight, and critical chance, with branch-specific drawbacks and wrong-equipment penalties.
  • Includes the optimized portraits, themed GUI-scaled altar UI, awakening material icons, and altar stair/brazier placement corrections.
  • Retains one consolidated README table covering every class's actual-rank buffs, drawbacks, equipment penalties, recommended gear, and MMO attribute effects.
  • Updated the README table generator to read the release version from the project file instead of a fixed version string.
  • Builds with zero warnings and errors; 561 focused equipment checks pass. Final behavior still requires in-game verification.

[0.0.15]

Carry weight, health regeneration, and critical hits

  • Added carry capacity, health regeneration, and weapon critical chance buffs for all 50 classes, with promotion scaling and branch-specific inherent costs.
  • Wrong armor reduces capacity, recovery, and critical chance; wrong weapons or missing required shields also reduce critical chance. One mismatched armor piece applies half the armor cost.
  • Added configurable BaseCritChancePercent (default 5) and CritDamageMultiplier (default 1.5). Chance is limited to 0-75 percent; carry capacity has a minimum of 1.
  • Critical rolls apply to skill-based damage hits. Each target receives a cloned hit so reused area-attack data cannot accumulate damage modifiers.
  • Added game hooks for normal health regeneration and maximum carry weight; UI and README show the new benefits, costs, configuration and formulas. Expanded focused checks to 561.

Documentation

  • Consolidated all buff and penalty tables into one 50-class table with actual promotion-rank values, recommended gear, weapon/armor buffs, inherent drawbacks, mismatch penalties, and MMO attribute effects. Replaced progression/configuration tables with concise lists to keep README to one table.
  • Added a prominent current-stat summary near the top of README, explicitly covering carry weight, health regeneration, critical chance, and how buffs and penalties activate.
  • Updated the feature summary to explicitly describe inherent class weaknesses, wrong-weapon penalties, and partial armor mismatch penalties.
  • Recorded the requirement to update README and changelog after every project change in the README and project instructions (AGENTS.md). Exported releases must include and verify both updated documents.

Image size optimization

  • Reduced portraits to 384 pixels with 256-color PNG palettes; resized UI background and button textures to reduce download size.

Class drawbacks and equipment penalties

  • Added inherent drawbacks for all 50 classes, inherited by promotion branch: health/stamina costs, reduced mobility, regeneration or attack speed depending on role.
  • Wrong weapon skills and missing required shields reduce damage and attack speed. Mismatched chest/leg armor applies family-specific defense, resource, movement, regeneration and attack-speed penalties.
  • One mismatched armor piece applies half the full penalty; empty armor slots remove set buffs without mismatch penalties.
  • Added PenaltiesEnabled, ClassDrawbackScale, and WrongEquipmentPenaltyScale settings. Main Enabled disables both buffs and penalties.
  • UI and README now show matching buffs, class drawbacks, and wrong-equipment costs. Added safe resource/rate limits and expanded checks to 444.

Expanded equipment bonuses

  • Added branch-specific flat maximum health, stamina, and eitr bonuses, plus movement, stamina/eitr regeneration, and attack animation speed.
  • Matching armor activates resource, movement, and regen bonuses; matching weapons activate damage and attack speed. Extra role bonuses grow by 25 percent of their reference values per promotion by default.
  • Added RoleBonusScale and RoleGrowthPerPromotionPercent configuration. Resource totals are recalculated without accumulating increases or directly refilling current resources.
  • Equipment guidance now scrolls beneath each portrait, showing every bonus at the selected class rank.

Equipment suitability

  • Added weapon and armor recommendations for all 50 classes, specialized by promotion branch.
  • Matching weapon hits gain 8/12/16/20 percent damage by rank; matching chest and leg armor grants 10/15/20/25 percent body armor. Shield-based recommendations also require an equipped shield.
  • Added configurable bonus amounts and enable switch. Unsuitable equipment remains usable and now receives configurable penalties.
  • Class selection, awakening previews, and completed mythic screens show loadout guidance and bonus amounts.

Altar placement

  • Measure solid mesh bounds directly while assembling the prefab, aligning the stair top with the foundation and preventing inactive collider bounds from affecting placement.
  • Increased decorative brazier lift from 0.28 m to 0.60 m for better visibility.

Altar interaction

  • Fixed the altar requiring two presses to open; one E press now opens the screen.
  • Corrected the altar hover prompt to show [E] instead of [Key].

Awakening class browser

  • Redesigned the portrait set with a clear novice → specialist → elite → mythic progression, distinct branch equipment/silhouettes, and male characters by default; female exceptions are Mage and Ranger families.
  • Awakening now shows one class per page with portrait, stage, branch progression, item icons, and owned/required material counts.
  • First promotion provides three branch pages; later promotions stay on the chosen branch. Upcoming targets are visible before reaching their level requirement.
  • Longer material lists scroll. Level and material changes refresh the screen without rebuilding every frame.
  • Added distinct portraits for all 45 promotion classes and direct PNG loading for all 50 class portraits without requiring an AssetBundle.
  • Older custom canvases use the generated themed layout for awakening so item icons and paging remain available.

Altar UI background

  • Restyled all altar buttons with embedded Norse stone/gold artwork, ivory labels, and hover/pressed/selected/disabled tint states. Sliced borders preserve carved edges when resized.
  • Altar panel follows the player's GUI Scale setting on open and checks for changes while visible, preserving the prefab's authored proportions.
  • Replaced the generated wooden panel with a dark Norse stone background, bronze/gold knotwork, misty standing stones and ember lighting matching the class portraits.
  • Background is embedded in the DLL; no AssetBundle is needed. Optional custom UI uses the same artwork on its NorseFrame image.

Release

  • Updated plugin metadata, assembly version, manifest, documentation, and release scripts to 0.0.15.

[0.0.14]

Release

  • Promoted the latest 0.0.13 class-browser and altar placement/stair hotfixes to version 0.0.14.
  • Retains the 3 x 2 stone foundation, centered entrance stair, Runestone_Meadows backdrop, Eikthyr offering altar, and two visual-only braziers.
  • Retains dynamic placement snapping for the Runestone, Eikthyr offering altar, and braziers.
  • Retains the one-class-per-page base-class browser with Previous / Next navigation, class description, promotion paths, optional class image, and Choose Class confirmation.
  • Retains Hammer registration during PrefabManager.OnVanillaPrefabsAvailable, explicit Furniture/Misc usage tags, icon fallback logic, and SoftReferenceableAssets.dll compatibility.
  • Optional harrisonclasssystem_assets remains limited to polished UI/icons/VFX and does not block DLL compilation.

0.0.13 placement hotfix

  • Fixed Runestone_Meadows facing backwards by restoring its native Y rotation.
  • Removed the hardcoded altar surface height for assembled visuals.
  • The six stone floor colliders are now measured at runtime to determine the actual foundation top.
  • Runestone, Eikthyr offering altar, and both decorative braziers are snapped to the measured foundation surface using their rendered geometry bounds.
  • Particle, trail, and line renderers are ignored during bottom-bound measurement so brazier flames do not affect placement.

[0.0.13]

Release

  • Promoted the latest Harrison Class Altar Hammer-registration fixes to version 0.0.13.
  • Retains the 3 x 2 stone foundation layout with the Runestone at the back, the real Eikthyr offering altar in the center, and two decorative braziers at the front corners.
  • Retains early registration during PrefabManager.OnVanillaPrefabsAvailable, explicit Hammer usage tags, and icon fallback logic.
  • Retains the SoftReferenceableAssets.dll build reference required by current Valheim APIs.
  • Optional harrisonclasssystem_assets remains limited to polished UI/icons/VFX and does not block DLL compilation.

[0.0.11]

Hammer registration hotfix

  • Fixed the Altar not appearing in the Hammer by removing the dependency on the later ZoneManager.OnVanillaLocationsAvailable callback.
  • Harrison Class Altar is now created and registered during PrefabManager.OnVanillaPrefabsAvailable, before Hammer PieceTables are finalized for the session.
  • Eikthyrnir is resolved from Jötunn's vanilla prefab cache and its OfferingBowl visual is extracted without waiting for world-location initialization.
  • Added explicit Hammer usage tags: Furniture and Misc.
  • Added guaranteed Hammer icon fallback using vanilla foundation/brazier piece icons if runtime icon rendering fails.
  • Added registration diagnostics showing the PieceTable/category/usage before PieceManager.AddPiece.

Altar layout

  • Replaced the incorrect BossStone_Eikthyr visual with the actual Eikthyr summoning altar extracted from the vanilla Eikthyrnir prefab/location cache and its OfferingBowl child.
  • Added a 3 x 2 stone_floor_2x2 foundation beneath the entire altar composition.
  • Positioned Runestone_Meadows at the back center of the foundation at 1.15 scale.
  • Positioned the Eikthyr Offering Altar in the center of the foundation.
  • Positioned two decorative piece_brazierfloor01 visuals at the front-left and front-right of the foundation.
  • Kept foundation colliders so the stone platform is physically walkable.
  • Removed visual-child colliders from the runestone, offering altar and braziers and use a simple HECS altar collider for cleaner movement.

Safety

  • Eikthyr OfferingBowl summoning behavior is removed from the cloned visual.
  • Runestone lore interaction is removed from the cloned visual.
  • Brazier fire remains visual-only; fireplace, fuel, heat/damage, AoE and smoke gameplay remain stripped.

Assets / packaging

  • harrisonclasssystem_assets remains optional and is only used for polished UI, icons and awakening VFX.
  • DLL/release builds continue when the optional bundle is absent.

[0.0.10]

Altar composition

  • Removed the AssetBundle requirement for the Harrison Class Altar itself.
  • Added the first runtime-composed altar prototype using Runestone_Meadows, BossStone_Eikthyr, and two piece_brazierfloor01 visual instances.
  • Child vanilla gameplay/network components are stripped so HECS remains the only interaction and Piece root.
  • Brazier fire particles/lights remain visual-only; fireplace, fuel, smoke gameplay, heat/damage and AoE components are removed.

Assets / packaging

  • harrisonclasssystem_assets became optional for polished UI, icons and awakening VFX.
  • Missing optional bundle logs a warning instead of disabling the Altar.
  • PowerShell and shell release builds continue when the optional bundle is absent.

[0.0.9]

Added

  • Escape-to-close handling for the Harrison Class Altar UI.
  • Same-frame suppression patch for Valheim's system menu when the Altar consumes Escape.
  • ClassRespecService for resetting HECS class progression to the unassigned state.
  • Two-step Change Class -> Confirm Reset Class flow in the Altar UI.
  • UnityEngine.InputLegacyModule.dll build reference for Input.GetKeyDown.

Changed

  • Altar UI refresh is now event-driven instead of rebuilding every 0.25 seconds.
  • Button state/listeners refresh on UI open and HECS class/awakening events only.
  • Level labels now use Level: {Level} and no longer display the word Wacky.
  • Gameplay HUD class badge/name has been removed. Class information is only shown inside the Altar UI.
  • Respec resets BaseClass, CurrentClass, SelectedPathId, CurrentStage, and HECS LastKnownLevel to the initial state. It does not alter WackyEpicMMOSystem's actual character level or stats.

Asset UI Contract

  • HECS_ClassAltarCanvas now requires a ChangeClassButton Button in addition to the existing named controls.

Build / Packaging

  • Code/AssetBundle build separation from 0.0.8 is retained: missing harrisonclasssystem_assets warns during packaging but does not block DLL compilation.

[0.0.8]

  • Added custom-prefab-only Harrison Class Altar loading from harrisonclasssystem_assets.
  • Removed vanilla-prefab and primitive runtime Altar generation.
  • Added runtime AssetBundle validation and error logging.
  • Separated C# compilation from optional AssetBundle packaging.
  • Added custom runestone/megalith authoring contract and safe visual-only fire VFX anchors.

[0.0.7]

  • Added runestone redesign foundations and custom Altar interaction contract.

[0.0.6]

  • Added explicit config generation, Hammer integration, polished UI/VFX foundations, and BepInEx runtime Harmony compatibility fixes.

[0.0.5]

  • Added Harrison Class Altar and awakening flow foundations.

Build hotfix: added SoftReferenceableAssets.dll reference required by Valheim ZoneLocation / SoftReference<T> APIs used to access the Eikthyrnir location.

0.0.13 placement hotfix - entrance stair

  • Added a centered stone_stair to the front edge of the altar foundation.
  • The stair is part of the single Harrison Class Altar Hammer piece.
  • Preserved the vanilla stair collider so players can walk onto the platform.
  • Removed standalone Piece, WearNTear, and ZNetView behavior from the stair child.
  • Stair height is aligned dynamically to the measured top of the stone foundation.

0.0.13 UI hotfix - class browser

  • Replaced the five-button base-class selection screen with a one-class-per-page browser.
  • Added Previous / Next navigation and a dedicated Choose Class confirmation button.
  • Added English role descriptions for Warrior, Mage, Hunter, Rogue, and Paladin.
  • Displays all three promotion paths on each base-class page.
  • Uses icon_<class> sprites from the optional AssetBundle as class preview images.
  • Generated fallback UI supports the same page navigation and information layout.
  • Class selection remains event-driven; no per-frame UI rebuilding was introduced.