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.
HarrisonEpicClassSystem
Class progression and altar awakening system integrated with WackyEpicMMOSystem.
By Harrisonburg
| Date uploaded | 2 weeks ago |
| Version | 0.0.26 |
| Download link | Harrisonburg-HarrisonEpicClassSystem-0.0.26.zip |
| Downloads | 302 |
| Dependency string | Harrisonburg-HarrisonEpicClassSystem-0.0.26 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202WackyMole-WackyEpicMMOSystem
Adds to your Valheim world a system of levels and distribution of characteristics
Preferred version: 1.9.67ValheimModding-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.0README
HarrisonEpicClassSystem 0.0.26
HarrisonEpicClassSystem adds an RPG class and awakening system to Valheim, using your WackyEpicMMOSystem level and attributes. Choose one of five base classes and develop your character through 15 branches and 50 classes.
Classes
- Warrior: swords, axes, and spears.
- Mage: elemental and blood magic.
- Hunter: bows, crossbows, and spears.
- Rogue: knives, swords, and fist weapons.
- Paladin: swords, maces, and polearms.
Base classes accept the weapon types used by their promotion paths, with optional shields. Awakened classes have specialized weapon and shield requirements. Each family has a distinct color that carries through its awakening tiers.
Awakening and progression
The Harrison Class Altar lets you choose a class, inspect its effects, awaken, or change class. Each base class offers three branches. Your first awakening selects a branch; later awakenings continue along it.
The three awakening tiers are First, Second, and Mythic, requiring levels 20, 60, and 90 by default. Awakenings require matching Awakening Stones, class-specific materials, and themed creature-kill trials. Progression is completed in order at the altar.
Equipment and class effects
Classes provide combat bonuses, attribute passives, and inherent drawbacks. Suitable weapons and matching chest and leg armor activate bonuses such as damage, defense, health, stamina, eitr, regeneration, movement, attack speed, carry weight, and critical chance. Bonuses vary by class and awakening rank.
Unsuitable weapons, missing required shields, and mismatched armor can apply penalties. One mismatched armor piece applies half the armor penalty; empty armor slots remove set bonuses without mismatch penalties. View your active effects at the altar or in Compendium → Class Effects.
Mastery and class changes
Creature and boss kills earn mastery experience for your current class family. Mastery increases suitable-weapon damage and is saved separately for all five families. Players and tamed creatures give no mastery experience or trial credit.
Changing class costs Light of the God and coins. It clears your class and awakening progression while preserving your MMO level, attributes, and family mastery. Spent awakening materials are not refunded.
Casual, Standard, and Hardcore balance presets adjust material costs, trials, penalties, and mastery experience. Class bonuses, drawbacks, equipment rules, progression requirements, and drop rates are configurable.
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.zipwith 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.zipwith 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] EmoteEnabledandEffectsEnabled(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.zipwith 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, andSoftReferenceableAssets.dllcompatibility. - Optional
harrisonclasssystem_assetsremains limited to polished UI/icons/VFX and does not block DLL compilation.
0.0.13 placement hotfix
- Fixed
Runestone_Meadowsfacing 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.dllbuild reference required by current Valheim APIs. - Optional
harrisonclasssystem_assetsremains 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.OnVanillaLocationsAvailablecallback. - Harrison Class Altar is now created and registered during
PrefabManager.OnVanillaPrefabsAvailable, before Hammer PieceTables are finalized for the session. Eikthyrniris resolved from Jötunn's vanilla prefab cache and itsOfferingBowlvisual is extracted without waiting for world-location initialization.- Added explicit Hammer usage tags:
FurnitureandMisc. - 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_Eikthyrvisual with the actual Eikthyr summoning altar extracted from the vanillaEikthyrnirprefab/location cache and itsOfferingBowlchild. - Added a 3 x 2
stone_floor_2x2foundation beneath the entire altar composition. - Positioned
Runestone_Meadowsat 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_brazierfloor01visuals 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
OfferingBowlsummoning 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_assetsremains 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 twopiece_brazierfloor01visual 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_assetsbecame 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.
ClassRespecServicefor resetting HECS class progression to the unassigned state.- Two-step
Change Class->Confirm Reset Classflow in the Altar UI. UnityEngine.InputLegacyModule.dllbuild reference forInput.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 wordWacky. - 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_ClassAltarCanvasnow requires aChangeClassButtonButton in addition to the existing named controls.
Build / Packaging
- Code/AssetBundle build separation from 0.0.8 is retained: missing
harrisonclasssystem_assetswarns 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_stairto 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, andZNetViewbehavior 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.