Source-checkedGameplay & overhauls

ValheimWeaponClasses

by BunzBoiModding · for Valheim

Adds a craftable Class Obelisk letting players choose from 10 combat classes, each leveling from combat XP and unlocking passive perks every 10 levels.

4.7KDownloads
44d agoLast updated
BepInExLoaders
ThunderstoreSource

About ValheimWeaponClasses

From Thunderstore

Adds 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

  1. The player crafts the Class Obelisk with a Hammer. It's built by cloning the vanilla piece_workbench prefab and stripping its CraftingStation component, so it's purely an interactable piece, not a crafting station (see ClassObeliskMod.AddClassObelisk / CreateClassObeliskPrefab).
  1. Interacting with it (E) calls ClassObeliskInteract.Interact, which opens a class-selection window built entirely with Jotunn's GUIManager (no Unity prefab/asset UI) - a grid of class buttons, a description panel populated from the hardcoded ClassDescriptions dictionary in ClassObeliskMod.cs, and a "Select Class" button.
  1. 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 — the PlayerClass enum (the 8 classes) plus PlayerClassHelper, which maps each class to a display name, an internal/save name, and a weapon-type description.
  • ClassObeliskMod.cs (ClassDescriptions dictionary) — flavor-text descriptions of each class's perks, shown in the selection GUI. This is display text only, not mechanics.

Read the full description on Thunderstore →

Highlights

From source data

Loaders

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

LoaderGame versionsNewest
BepInEx

From 8 recorded builds of ValheimWeaponClasses.

Recent builds

BuildReleasedGame versionsLoaders
1.1.32026-09-21n/aBepInEx
1.1.22026-09-17n/aBepInEx
1.1.02026-09-16n/aBepInEx
1.0.42026-09-14n/aBepInEx
1.0.32026-09-13n/aBepInEx
1.0.22026-09-11n/aBepInEx

Dependencies

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 catalog
Listed on Thunderstore as “Content”

Gameplay & 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

ValheimWeaponClasses, answered

Generated from the mod’s own source data.

Which loaders does it support?

BepInEx.

Is it free?

Yes. ValheimWeaponClasses is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run ValheimWeaponClasses on a Valheim server.

Deploy in about a minute from $9.99 a month, then add ValheimWeaponClasses in one click.