SetUpSkills
Makes 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.
About this mod Author’s original text
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 forwa
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.