About ValheimWeaponClasses
From ThunderstoreAdds a craftable Class Obelisk letting players choose from 10 combat classes, each leveling from combat XP and unlocking passive perks every 10 levels.
ValheimClassObelisk - Developer README
1. Overview
Class Obelisk is a Valheim mod (BepInEx plugin, built on the Jotunn modding library) that adds a craftable "Class Obelisk" piece. A player interacts with the Obelisk to choose from 10 combat classes:
SwordMaster, Archer, Crusher, Assassin, Brawler, Wizard, Lancer, Bulwark, Executioner, Warlock
Each class deals bonus damage with its associated weapon type and gains XP from combat. Classes level from 1 to 50, unlocking a passive perk every 10 levels (10 / 20 / 30 / 40 / 50).
Plugin identity (BepInEx):
| Field | Value | |---|---| | GUID | com.bunzboi.valheimweaponclass | | Name | ValheimWeaponClasses | | Version | 1.1.0 |
2. Requirements / Dependencies
- .NET Framework 4.7.2
- BepInEx + 0Harmony (referenced from the local Steam Valheim install)
- Jotunn (declared as a hard dependency via
[BepInDependency(Jotunn.Main.ModGuid)]) — used for prefab cloning, the piece/build system, and all custom GUI (the class-selection window)
The .csproj references game/BepInEx/Jotunn DLLs via HintPaths pointing at a local Steam install (Program Files (x86)\Steam\steamapps\common\Valheim\...). If you're setting this up on a new machine, update those HintPaths (or your Steam install path) if the build fails to find references.
A Newtonsoft.Json.dll is vendored under Libs/ but is not currently used for anything - all save data goes through Unity's own JsonUtility instead.
3. Project Layout
ClassObeliskMod.cs Plugin entry point (BaseUnityPlugin). Creates the
Obelisk piece and contains the entire class-
selection GUI (built with Jotunn's GUIManager).
Utilities/
PlayerClass.cs The PlayerClass enum + PlayerClassHelper
(display names, internal names, weapon-type
lookups).
PlayerClassManager.cs Per-player class data (PlayerClassData) and
the static registry (PlayerClassManager).
Also contains the Save/Load Harmony patches.
ClassCombatManager.cs Weapon-type detection (is this a sword? a
bow? etc.) and class damage multipliers.
ClassDamageBonusSystem.cs Generic per-level damage bonus (separate
from ClassCombatManager - see section 5).
XPSystemManager.cs XP awarding, leveling curve, and the Harmony
patches that hook combat events for XP.
AnimationSpeedManager.cs Reusable stacking multiplier utility for
attack/animation speed (used by some perks).
SEUtils.cs Helpers for inspecting vanilla StatusEffects
(poison/burning/frost stacks, timers, etc.)
PerkManagers/ One file per class, each implementing that
class's level 10/20/30/40/50 passive perks
(SwordMasterPerkManager.cs, ArcherPerkManager.cs,
CrusherPerkManager.cs, AssassinPerkManager.cs,
BrawlerPerkManager.cs, WizardPerkManager.cs,
LancerPerkManager.cs, BulwarkPerkManager.cs).
This is where you go to add or tune a specific
class's abilities.
TestingResources/ Debug-only console commands (API discovery,
bow testing, general debug utilities). Not part
of the intended production feature set.
Resources/Icons/ Embedded .rgba icon assets used by some perk
status effects.
Libs/ Vendored third-party DLLs (Newtonsoft.Json,
AnimationSpeedManager).
4. How Class Selection Works
- The player crafts the Class Obelisk with a Hammer. It's built by cloning the vanilla
piece_workbenchprefab and stripping itsCraftingStationcomponent, so it's purely an interactable piece, not a crafting station (seeClassObeliskMod.AddClassObelisk/CreateClassObeliskPrefab).
- Interacting with it (E) calls
ClassObeliskInteract.Interact, which opens a class-selection window built entirely with Jotunn'sGUIManager(no Unity prefab/asset UI) - a grid of class buttons, a description panel populated from the hardcodedClassDescriptionsdictionary inClassObeliskMod.cs, and a "Select Class" button.
- Clicking "Select Class" calls:
PlayerClassManager.SetPlayerActiveClass(player, className)
which resolves the class and calls PlayerClassData.SetActiveClass, replacing any currently active class - by default only one class can be active at a time.
> Note: PlayerClassData.CanSelectSecondClass() returns true once any class reaches level 50, implying a second, simultaneously-active class is intended at that point. The selection GUI currently always calls the single-class "replace" path rather than an "add second class" path, so dual-classing appears to be a planned but not fully wired-up feature.
5. Where Class Settings Live
There is no external data file (no JSON/YAML) for class definitions - everything is hardcoded in C#:
Utilities/PlayerClass.cs— thePlayerClassenum (the 8 classes) plusPlayerClassHelper, which maps each class to a display name, an internal/save name, and a weapon-type description.ClassObeliskMod.cs(ClassDescriptionsdictionary) — flavor-text descriptions of each class's perks, shown in the selection GUI. This is display text only, not mechanics.
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 44d ago.
ValheimWeaponClasses on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 1.1.3, released 2026-09-21
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 8 recorded builds of ValheimWeaponClasses.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 1.1.3 | 2026-09-21 | n/a | BepInEx |
| 1.1.2 | 2026-09-17 | n/a | BepInEx |
| 1.1.0 | 2026-09-16 | n/a | BepInEx |
| 1.0.4 | 2026-09-14 | n/a | BepInEx |
| 1.0.3 | 2026-09-13 | n/a | BepInEx |
| 1.0.2 | 2026-09-11 | n/a | BepInEx |
Dependencies
- Required: Jotunn
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run ValheimWeaponClasses on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogGameplay & overhauls
New mechanics, content and overhauls that change how the game plays.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-01Open ↗
- ✓AuthorBunzBoiModding, as published on Thunderstore
- ✓LicenseNot published by the sourceFree






