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.
NorntasticSkillGrowth
Skyrim-style perk trees for every Valheim skill, plus weapon forms, craft disciplines, dual wield, ally auras, prestige and respec. Optional Jewelcrafting support.
CHANGELOG
Changelog
0.14.2 — the Deep Fryer Basin, and the reason the fryer never made anything
Fryer planned its output for several versions and created nothing. nsg.fryer listed forty
dishes that did not exist - a design preview presented as an inventory, which is the same wrong
as a checklist saying "not seen yet" about a subsystem that has run.
It was not a broken builder. There was no builder. Nothing registered it with the forge, so
nothing ever called it, and from in game that is indistinguishable from a feature that is merely
slow to appear. The plan was always right; what was missing was the two dozen lines that turn a
FryResult into a prefab.
Fried food is derived now, like the pies and the jerky, because what a modlist can fry is not
knowable in advance. nsg.fryer reports built against planned rather than one number that means
either.
The basin is a seventh station, not a seventh system
"Upgraded variants frying more at a time" is what the tiers already say: scale the batch, hold
the speed. So the Deep Fryer Basin is an AutoStation like the other six - Container split by
row, offline accrual, owner check, experience to whoever built it - and Deep Fry Tactician has
something to level off at last.
It runs faster than the rest at five minutes a cycle, and it is the one station where that is right: frying is the quick trade in a mod full of slow ones.
Its chains are worked out at build time, because "ANY food" is a promise a written list cannot
keep. Hydroponics needed the same thing and was a named special case inside Stations.cs - the
fryer needing it too is exactly how a second special case gets added beside the first instead of
replacing the reason it existed, so it is a DerivedChains hook on the definition now and both
use it.
It is the third and last gate under StationPolicy's budget of three. "Any food becomes the
next kind" is what the basin DOES, and no vanilla building does it - which is the whole test for
whether a gate is earned.
The check that would have caught it years earlier
check_content_armed fails the build on any class that registers a content builder while
Plugin never calls its Arm(). Same shape as a ConsoleCommand nobody registers, which this
file has checked for the same reason since 0.9.4 - content that compiles, tests clean, ships,
and does nothing.
Verified by removing the new Fryer.Arm() line, which is precisely the state the fryer shipped
in for months.
844 assertions, 174 files, 563 API references clean.