
HarrisonEpicClassSystem
Class progression and altar awakening system integrated with WackyEpicMMOSystem.HarrisonEpicClassSystem 0.0.25
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.
Family colors
All 45 awakened classes inherit their registered base-family color at every tier: Warrior #C82020, Mage #2060C8, Hunter #20C840, Rogue #8020C8, Paladin #E5B823. ClassDefinition.ColorHex and ClassRegistry.GetColorHex expose the computed profile; current/promoted altar titles use the matching family hues. These class-side color changes are included in 0.0.25. HarrisonEpicSkillSystem's matching tabs, paths, borders, HUD and skill VFX require its separate build. Class names, progression, stats and equipment rules are unchanged. In-game visual QA pending.
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
- 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.
- 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.
- Select Awaken when you have the required level and materials. Choose a branch at the first awakening; later awakenings follow it.
- 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 class-selection hotfix closes the altar and releases its input before notifying class-change listeners, avoiding a redundant rebuild of the menu being closed. Each event listener is isolated and failures include its method and full exception in the log; remaining listeners and ceremony steps continue after a managed exception. Class progression is committed before these optional steps. Native process crashes cannot be caught this way.
For crashes when choosing a class with animation/race/effect mods, set both options below in BepInEx/config/HarrisonEpicClassSystem.cfg and restart to skip the ceremony while retaining selection and awakening. Both default to true; this is an isolation option, not a confirmed fix for the reported 60-mod pack. The supplied log stops during startup and contains no crash stack. If the crash persists, retain the final lines of BepInEx/LogOutput.log and Unity Player.log immediately after the failure.
Install HarrisonEpicClassSystem-0.0.25.zip using the same layout as the release ZIP, replacing the existing class DLL and keeping only one copy active. This release includes the 0.0.24 class-selection hotfix; the older release and hotfix ZIPs are preserved. The hotfix previously passed 77 source-linked selection/awakening/ceremony regression checks and 1,887 equipment/progression checks. The payment test fixtures model prefab-backed item stacks and native per-item removal. These checks simulate Unity and add-ons; they do not reproduce native crashes or verify the reported mod pack.
[Class Ceremony]
EmoteEnabled = false
EffectsEnabled = false
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, andPaladinDropChancePercentdefault to0.5;FirstAmount,SecondAmount, andMythicAmountdefault to2,5, and20. Zero disables that drop or stone cost.IncludeExtraMaterialsdefaults 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:3controls 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.
Enableddisables equipment effects;PenaltiesEnableddisables penalties only. - Class Warrior / Class Mage / etc.: individual settings for all 50 classes.
MatchingBuffs,ClassDrawbacks, andWrongArmoraccept partialStat:Valuelists. Use positive buffs and negative penalties;Defaultpreserves calculated values. Numeric damage/armor/penalty/attribute settings use-1to inherit or0to 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 0.0.25 build passes 1,887 equipment/progression checks and 77 class-selection compatibility 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 retained in 0.0.25: 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. Live multiplayer behavior remains unverified.
Third-party compatibility retained in class 0.0.25: BetterUI is optional and detected through Chainloader reflection. The altar canvas uses sorting order 99 and compensates for inherited HUD scale. 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 use native weapon data. External-mod compatibility requires an in-game check. Matching skill-side canvas/HUD changes require a separate HarrisonEpicSkillSystem build.
0.0.25 release: plugin, assembly, manifest and export scripts use 0.0.25. Release compilation passed with zero warnings and errors; installed game-hook verification passed. The ZIP includes the class DLL, all 50 portraits, README, CHANGELOG, summary and CLASS_STATS; packaged files were verified against source/build/staging and assembly/manifest versions were checked. The optional AssetBundle is absent; runtime fallbacks remain available. Native multiplayer, external-mod compatibility and visual behavior still require in-game confirmation.