About SetUpSkills
From ThunderstoreMakes the hard-coded player skill numbers configurable: bow draw time, crossbow reload, damage curve, stamina costs, stealth, jump, XP rate and more. Server can push its config to clients.
Set Up Skills
Puts every hard-coded player-skill number in Valheim into a config file. Built against Valheim 1.0.x and BepInEx 5.4.23.
The example that motivated the mod: a bow takes 2.50 s to draw at Bows 0 and 0.50 s at Bows 100, and nothing in the game lets you change that. With this mod:
[Bows]
DrawTimeMultAtSkill0 = 1.2 ## 2.5 * 1.2 = 3.00 s at skill 0
DrawTimeMultAtSkill100 = 0.4 ## 2.5 * 0.4 = 1.00 s at skill 100
Config file: BepInEx/config/neocor.SetUpSkills.cfg. Edits take effect on the next reload — the file is watched, so on a server you can retune without restarting it.
📖 WIKI.md is the full configuration guide: every setting explained in plain language, the vanilla numbers in tables, ready-made presets, and troubleshooting. Every setting also carries its own explanation as a comment inside the generated .cfg.
Install
The mod must be on every client. Valheim computes all skill effects on the machine that owns the player: Character.GetSkillFactor() returns 0 for anything that is not the local Player, and the methods that consume it (Player.UpdateAttackBowDraw, Player.CheckRun, ItemDrop.ItemData.GetDrawStaminaDrain, Attack.FireProjectileBurst, ...) only ever run there. Damage is rolled on the attacker's client and only the result is sent over the wire. A server-only install would change nothing.
| Where | What | |---|---| | Client | Drop SetUpSkills.dll into Valheim/BepInEx/plugins/. | | Dedicated server | Install the BepInEx pack for Valheim, drop the same DLL into its BepInEx/plugins/, and start the server with start_server_bepinex.bat — the stock start_headless_server.bat does not load Doorstop. |
Installing it on the server as well is optional but recommended: the server then hands its config to every client that has the mod, so everyone plays on the same balance. See Server sync. Players without the mod can still join; they simply keep vanilla values.
How the settings are layered
Layer B — endpoint knobs (the usual way in)
Each of these replaces one vanilla constant. The defaults are the vanilla values, so an untouched config file is bit-for-bit vanilla.
| Section | Setting | Vanilla | What it controls | |---|---|---|---| | Bows | DrawTimeMultAtSkill0 / AtSkill100 | 1.0 / 0.2 | Draw time as a multiple of the weapon's m_drawDurationMin (2.5 s for every bow). | | Bows | DrawTimeSecondsAtSkill0 / AtSkill100 | 0 / 0 | Absolute draw time in seconds, ignoring the weapon's base. Both must be > 0 to take over from the multipliers. | | Crossbows | ReloadTimeMultAtSkill0 / AtSkill100 | 1.0 / 0.5 | Reload time as a multiple of m_reloadTime. | | Combat | DrawStaminaReductionAtSkill100 | 0.33 | Stamina drain removed while drawing, at skill 100. | | Combat | DrawEitrReductionAtSkill100 | 0.33 | Same for eitr. | | Combat | AttackStaminaReductionAtSkill100 | 0.33 | Stamina cost of an attack removed at skill 100. | | Combat | AttackEitrReductionAtSkill100 | 0.33 | Eitr cost of an attack. | | Combat | AttackHealthReductionAtSkill100 | 0.33 | Health cost of an attack (blood magic). | | Damage | MinFactorAtSkill0 / MaxFactorAtSkill100 | 0.4 / 1.0 | Damage multiplier before the random spread. | | Damage | RandomRange | 0.15 | Half-width of the damage roll. 0 gives flat damage. | | Blocking | BlockPowerBonusAtSkill100 | 0.5 | Extra block power as a fraction of the base. | | Run | StaminaMultAtSkill0 / AtSkill100 | 1.0 / 0.5 | Run stamina drain. | | Run | SpeedBonusAtSkill100 | 0.25 | Extra run speed (+25 %). | | Sneak | StaminaMultAtSkill0 / AtSkill100 | 1.0 / 0.25 | Sneak stamina drain. | | Sneak | StaminaExponent | 0.5 | Shape of the sneak stamina curve. Vanilla is a square root; 1.0 makes it linear. | | Sneak | StealthBaseAtSkill100 / StealthLightWeightAtSkill100 | 0.2 / 0.4 | Visibility in darkness and the weight of ambient light, at skill 100. Lower is stealthier. | | Dodge | StaminaMultAtSkill0 / AtSkill100 | 1.0 / 0.5 | Dodge stamina cost. | | Jump | ForceBonusAtSkill100 | 0.4 | Extra jump force (+40 %), up and forward. | | Building | StaminaReductionAtSkill100 | 0.5 | Build stamina cost removed at skill 100. | | Building | PlaceDurabilityReductionMultiplier | 1.0 | Scales the tool's own m_placementDurabilityMax. |
Layer A — per-skill curve ([Curve])
Three values per skill, for all 24 skills:
[Curve]
Bows.Level0Factor = 0 ## what the skill is worth at level 0
Bows.Level100Factor = 1 ## ...and at level 100
Bows.Exponent = 1 ## 1 = linear, >1 = back-loaded, <1 = front-loaded
This remaps the skill factor itself, so it reaches everything that skill touches — including the effects driven by values stored in the prefabs, which Layer B cannot reach: swim stamina, fishing stamina, farming harvest radius, crafting speed and bonus-yield chance, placement durability, and riding.
Layer A and Layer B compose. Layer A decides how fast the benefit accrues with level; Layer B decides where it ends up. Setting Bows.Level100Factor = 0.75 with default Layer B gives a draw time of Lerp(2.5, 0.5, 0.75) = 1.0 s at skill 100 — the same result as the example at the top, but it also scales bow damage by the same token. Use Layer B when you want one effect, Layer A when you want the whole skill.
Layer C — experience ([Experience])
| Setting | Vanilla | Effect | |---|---|---| | <Skill>.GainMultiplier | 1.0 | XP gain per skill. Stacks with the world modifier. | | CurveExponent / CurveScale | 1.5 / 0.5 | The XP wall: Pow(floor(level + 1), 1.5) * 0.5 + 0.5. Lower exponent means faster levelling. | | DeathLossFactor | -1 | Fraction of every skill lost on death. -1 keeps the game's own value (0.05); 0 loses nothing. |
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 43d ago.
SetUpSkills 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 side
- Optional on 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
- 0.1.0, released 2026-09-22
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 1 recorded build of SetUpSkills.
Run SetUpSkills 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 catalogQuality of life & UI
Small conveniences, tweaks and interface improvements players notice straight away.
Works on a server
From source side supportThunderstore lists server-side support for SetUpSkills as optional: it can run on a server, but isn’t required there.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Runs on
- Serveroptional on the server
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-01Open ↗
- ✓AuthorNeocor, as published on Thunderstore
- ✓LicenseNot published by the sourceFree




