Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
PathOfValheiman
A Path of Exile style passive tree that replaces vanilla skill progression. Two layouts, masteries, keystones, full config and translations.
By treextr
CHANGELOG
Changelog
1.3.1
Three bugs of one family, found by auditing every place the mod writes a number into the game: each was overwriting a value the game owns instead of scaling what the game had just decided.
- Attack speed made attacks slower. Valheim paces a swing with animation events - a wind-up may run
at 0.7 and the strike at 1.4. The mod assigned
1 + bonusstraight into the animator and threw that pacing away, so a node granting +10% turned a 1.4 strike into 1.1: slower than taking no node at all. The bonus now scales whatever the game asked for, and freeze frames are left alone. - A ship kept the wrong baseline. The untouched sail force and rudder speed were remembered in one shared pair, captured from the first ship the player ever steered and written back onto every other one. Board a raft and then a longship, and the longship sailed like a raft. Each ship now keeps its own values, for the duration of a single call.
- A cart could lose its weight. The mass bonus was applied after the game recomputed the mass, which is right - except the game only recomputes it on the client that owns the cart, while the bonus was applied on every client every five seconds, driving the mass towards nothing. It now follows the same ownership rule, and touches only the bodies the game itself assigns.
Everything else in the audit came out clean: all 196 stats the tree grants are read by something, the per-weapon damage and speed tables cover every weapon skill, the stats where a lower number is better carry the right sign, the game clones an attack before each swing so projectile changes cannot pile up, and the smelter, cooking station and fermenter restore what they borrowed.
1.3.0
Searchable by subject
Every stat already carried topic tags - they were used only by the validator, invisible to everyone else. They now have readable names, the tooltip lists a node's topics at the bottom, and the search matches them, in the game and in the browser planner alike. So культивация selects the garden and nothing else, бомбы every bomb node, погода everything about cold and rain - 36 subjects in all, inherited from what a node grants, with nothing tagged by hand.
Named after the mod, not the project
The files a player actually sees carried the internal project name. The plugin now installs as
BepInEx/plugins/PathOfValheiman/PathOfValheiman.dll, and the debug asset dump is written as
PathOfValheiman_assets.txt. The config file already took its name from the GUID in 1.2.0, so it
stays treextr.pathofvalheiman.cfg.
Updating through a mod manager replaces the old files. A manual install has to have the old
BepInEx/plugins/PassiveTree/ folder deleted by hand - leaving it there means two copies of the same
plugin, and BepInEx will load only one of them and say so in the log.
1.2.0
Farming
- Kitchen Garden and Tight Bed, two new clusters in Survival. Crops ripen faster, your own beds yield a little more than they should, and a tight bed stops being a problem: the game's refusal to ripen a plant standing too close to its neighbour is overruled, and only that one - wrong biome, no sun, frost and heat still kill a crop.
- The extra crop only pays for what you planted. Wild berries and mushrooms keep paying through the gatherer's node, so the two never stack on the same bush.
Hugin explains it
- After your first level, Hugin flies in and says what to do with it - which key opens the tree, that clicking only plans a path until you press Apply, what the diamonds are, and that points can be bought back. The game's own tutorial machinery does the work, so the raven comes once per character and the fact that it came is saved with the character.
Interface
- The level panel moved to the left of the minimap. Under the minimap is where Valheim hangs its status effects, and they drew straight over it. The gap the panel needs is measured from the minimap at runtime rather than guessed, so it stays put at any interface scale. The old corners are still in the config.
- The tree sounds are played at the camera, not at the player's feet. They are positional audio, and from the feet with the camera pulled back they arrived faint or not at all - which is what "the tree has no sounds" looked like. Each sound also falls back to another of the game's interface sets, and says so in the log if the game hands over nothing.
- The browser planner searches by theme and by kind too; only the in-game window learned that last time.
Levelling now matches vanilla
The curve was 43 times slower than a finished vanilla character, and it steepened faster than a player's income grows, so progress stalled after level 30 or so.
A vanilla skill costs (level+1)^1.5 x 0.5 + 0.5 actions to raise, and - the part that makes the
comparison possible - that cost depends only on the skill's own level, never on how many skills are
being raised at once. Ten skills taken to 70, a finished character, is about 84 000 actions. The
tree wanted 3.6 million.
The defaults are now 35 x level^0.9: the whole tree costs 249 500 experience, the same 84 000
actions, with kills, building and exploring arriving on top of that. The exponent's lower bound moved
from 1.0 to 0.5, because below 1.0 is the right shape here: vanilla's steepening applies to each skill
separately while the player keeps opening new ones, so the total pace is close to linear.
These are defaults, so an existing config keeps the numbers it has. To take the new pace on a config
that already exists, set Experience for level two to 35 and Level curve exponent to 0.9, or delete
the file and let it be written again. Both settings are server-synced: changing them on the server is
enough.
Fixes
- The settings did not appear in the Configuration Manager under a name anyone would look for. The mod listed itself as "PassiveTree"; it is now "Path of Valheiman". The hints that order the settings were also inert, because the manager finds them by the exact type name and ours was spelled differently.
- Personal data left the build. The plugin GUID carried the author's account name, and so did the
config file every player ended up with; debug symbols wrote the absolute build path of the author's
machine into the shipped DLL. The GUID is now
treextr.pathofvalheiman, the config file is named after it, and the DLL carries no paths. A config file from an earlier version is renamed on first load, so no settings are lost. - Searching the tree by theme ("добыча") or by kind ("мастерство") now selects every node of it; before, only names, stat lines and mastery options were matched.
Moved
The wheel has no free ground left, so two clusters walked to sectors where their stats already belonged: Northman (cold resistance) from Survival to Defence, and Fermentery (mead) from Survival to Magic. Nothing was removed to make room for the garden.
1.1.0
New content
- Masteries in Classic too. 51 themes of three effects each, and every mastery now stands in three different places in the tree: taking one twice is how you collect the effects you passed over, so the other two are there for a character willing to walk to them. A mastery inside a ring cluster sits in the middle of the ring instead of hanging off its edge.
- Bombs — damage, blast radius, a chance to keep the bomb, a double blast, and bombs that lie down as mines and wait for someone to walk in. Crafting them: material refunds and a chance at an extra bomb.
- Fishing — bite chance, easier reeling, a chance at a second fish.
- The forge and the hearth — material refunds when crafting, sturdier crafted gear, faster smelting, cooking and fermenting, an extra bar out of the smelter, food that does not burn.
- Weather — cold resistance, wet resistance and drying speed, acting on the environmental Cold, Freezing and Wet effects that plain frost resistance never touched.
- Sliding down slopes. Crouch on ground steeper than 22 degrees, hold your line downhill, and you ride it faster than you could run it.
- Thin themes filled out: projectile pierce, chain and split, the window after a critical hit, unarmed as a tool, double jump and gliding, damage against burning and soaked targets.
The tree itself
- Crossing between sectors is now expensive near the centre and cheap at the rim, the way it should always have been — it used to be the other way round.
- Starting directions: you leave the centre in two directions by default, configurable from one to eight, with a counter under the root node.
- Ring segments are symmetric, the first ring carries no road, boundary roads start at the second ring, the wheel has no node in its centre, and the decorative rings and spokes behind the tree are gone — drawn faintly, they read as links that were not there.
The window
- Points are spent only when you confirm them: plan a path, then Apply or Cancel.
- A mastery opens its choice panel the moment you buy it, instead of quietly settling on its first option.
- Tooltips rebuilt: each affix on its own line, gains green and costs red, keystone and ability text in blocks of their own, flavour as a grey line at the foot.
- The bonuses panel folds away into a tab at the right edge, hidden by default.
- Norse ornaments under the window title, the bonuses heading, the mastery panel and in the tooltip.
- The level panel on the HUD rebuilt so the numbers can be read.
- Sounds on allocation, refund and level up. Node captions under the tree removed.
- The camera can no longer be dragged off the tree.
Your build is protected
- A node renamed, changed or removed by an update is taken off the build and its point handed back; anything left hanging goes with it, and you are told how many points came back.
- Lowering Points per level or Maximum level trims the build from the outside in to fit the new budget, never from the middle. Raising either hands out the points for levels already gained at once.
Fixes
- A resistance to an ailment showed red because its number was negative; colour now follows whether a line helps you, not its sign.
- Toggle-style effects appeared in two places each, where the second one did nothing: the jump mastery no longer re-grants the double jump and soft landing of Hugin's Wings, and Thor's Fist no longer re-grants the fist mastery's mining.
- The attack speed cap applies to the whole sum, weapon-specific speed included.
- Masteries could settle two pixels inside a neighbour: placement now measures the gap the way the validator does.
- Empty pockets across the tree filled with the clusters that had been waiting for room.
1.0.0
First public release.
- Two passive trees, switchable in the config.
- Classic — 2089 nodes in eight equal sectors.
- Reforged — 1069 nodes in six regions of different width: travel nodes hand out attributes only, every cluster ends in a mastery, keystones change a rule instead of stacking numbers.
- Points are stored per layout, so switching never eats a build.
- Masteries (Reforged): 101 nodes, 47 themes, three effects each — pick one, change it later for free.
- Vanilla skills replaced: every action that would raise a skill feeds tree experience instead. Can be turned off to keep vanilla progression and run the tree on top of it.
- Mechanics: ailments with sources and amplifiers, night build, onslaught, crit windows, projectile pierce/chain/split, unarmed as a tool, double jump and gliding, taming and breeding, hunting drops, mass harvesting, building refunds, cart and sailing bonuses.
- In-game window: search by node name or by stat with highlighting, refund mode that takes several points at once for coins, mastery picker, pan and zoom towards the cursor, Home fits the tree to the screen.
- HUD panel with your level, the experience bar and unspent points; corner, scale and offset are configurable, and it can be turned off.
- Weather passives: cold resistance, wet resistance and drying speed work on the environmental Cold, Freezing and Wet effects, which plain frost resistance never touched.
- Admin config: tree layout, global tree power, experience multiplier, points per level, level curve, refund price, server sync of balance settings to clients, optional debug panel (off by default).
- Localization: full English translation plus a template file — anyone can add a language by dropping a text file next to the DLL, no rebuild needed.
- Browser planner in the repository (
tools/tree-viewer.html) for both layouts.