You are viewing a potentially older version of this package. View all versions.
Ezomic-Kynda-1.1.0 icon

Kynda

Load a smelter, kiln or fire several at a time. Fewer trips; the same metal out.

Date uploaded a day ago
Version 1.1.0
Download link Ezomic-Kynda-1.1.0.zip
Downloads 213
Dependency string Ezomic-Kynda-1.1.0

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

Kynda

Fewer trips to the smelter. Same amount of metal out of it.

Built against the installed game (0.221.12, Unity 6000.0.61, BepInEx 5.4.23.3, Harmony 2.9).

The balance line

This replaces an auto-fuel mod, and it deliberately is not one. Auto-feeding does not make Valheim more convenient so much as delete a system from it. You never think about coal again, and the mid-game logistics problem quietly stops existing.

So the whole mod sits on one line:

It changes how often you walk to a smelter. It never changes what comes out of one.

m_secPerProduct and m_fuelPerProduct are never touched. Three ore in one press costs exactly three ore. Twenty iron takes the same time and burns the same coal whether it went in as one load or three. You buy fewer trips, not more metal.

Status: v1.0

Feature State
Add several items per press works in game
Two upgrade pieces that raise capacity work in game; models not yet seen at eye height

Both halves ship. The batching has been used in a real session. The upgrades work and their models were remade, but the remade pair has only been judged from renders, which is the one thing still outstanding.

The upgrades register prefabs, and that is permanent. ZNetScene keys a piece on its name hash and discards a ZDO whose name no longer resolves, so a world that later loads without this mod loses every Tun and Woodrack standing in it, silently and without an error. That is why Kynda registers with Core's version gate: the gate refuses a mismatched connection rather than letting it quietly eat what you built.

Upgrades.Enabled = false turns them off, for a world where you want the batching alone.

Batching

Hold Shift and press at a smelter, and three ore go in instead of one. Same for coal, and for logs on a campfire, hearth or torch.

The modifier is held rather than toggled because a plain press has to stay exactly vanilla. A mod that batches unconditionally has taken the single add away rather than added a batch, and topping a nearly-full smelter with one last ore is a thing you actually want to do. Set BatchModifier to None to make batching the default and give up the one-at-a-time press.

Because a held modifier is invisible, the station's hover text says so: a smelter you can batch shows a [Shift] x3 line under the usual use prompt, in the game's own key-prompt style.

It covers every Smelter-based station (smelter, charcoal kiln, blast furnace, windmill, spinning wheel, eitr refinery) because they are all the same component, so modded ones come along for free. Fireplaces are a separate class and are handled alongside.

Batching stops early at the station's capacity or when you run out, so it can never put in more than pressing repeatedly would have.

The two upgrades

Two pieces, not one, because a charcoal kiln eats wood and a smelter eats ore and coal. A single generic bin looked like it belonged to neither: it was a box that said "storage" and nothing else.

Piece Cost Serves
Tun, two open casks, one of ore and one of coal 20 fine wood, 15 iron nails Smelter, blast furnace
Woodrack, rounds stacked in courses under a lean-to roof 25 fine wood, 20 deer hide, 25 bronze nails Charcoal kiln, windmill, spinning wheel

Build one from the hammer's Crafting tab within 4m of the station it serves. Look at one and it tells you which station it is feeding and what that station's capacity now is, or says plainly that it is feeding nothing, which is what a woodrack parked next to a smelter will tell you.

Looking at one also draws the link, the same run of motes a chopping block draws to its workbench, so you can see at a glance which station an upgrade belongs to in a row of them.

One per station. These are a one-time improvement rather than something to stack, and the capacity figures are chosen to land on a round number exactly once. A second bin beside the same station changes nothing and says so when you look at it, because a silent no-op reads as a bug. MaxPerStation raises it if you disagree.

Station Bare With its upgrade
Charcoal kiln 25 wood 50
Smelter 10 ore, 20 coal 30, 60

Each piece carries its own figure, rather than the mod having one. The kiln holds 25 and should land on 50; the smelter holds 10 and should land on 30. That is +25 and +20, and no single rule gives both: a flat amount misses one end, and doubling gave the kiln its 50 but left the smelter at 20.

The trough's coal figure is twice its ore figure because a smelter burns two coal for every ore it melts. Matching them would leave the coal gone with a third of the ore still waiting, which is the upgrade only half working.

The Tun upgrades a smelter. The Woodrack upgrades a charcoal kiln. Nothing else.

Which kind of bin a station could take is still read off its own components - a fuel slot means the Tun, no fuel slot means the Woodrack - but which stations actually get one is a named list, because that is a decision about what the mod is for rather than a fact about how a station works. A blast furnace and an eitr refinery are fuelled and would match on components alone; they are late-game stations that do not need the help. A windmill and a spinning wheel are single-input like the kiln; neither is what a rack of split logs is a picture of.

Both lists are config, so a modded station that wants in, or a server that disagrees, is a line in the .cfg rather than a rebuild. A bin standing beside a station it does not serve tells you it is feeding nothing rather than pretending.

Bronze gates the trough behind the smelter it upgrades, so it cannot exist before there is anything to smelt. The woodrack deliberately is not gated that way: a charcoal kiln is a Black Forest build, and an upgrade you cannot build alongside its station is one you never build at all.

A piece whose materials you have never held is absent from the hammer menu rather than greyed out, which is vanilla behaviour: on a character that has never picked up bronze the Tun is simply missing while the Woodrack is there. TestMode drops both to one wood.

Capacity only. Never throughput. That is the line above.

Design notes

How batching rides the game's own add, why the trough still answers to its old prefab name, how the surfaces and the link effect are borrowed, and the manual pass before a release: DESIGN.md.

Kynda uses Core, and why it has to

Core is a soft dependency: install Kynda on its own and it works. What Core adds is the version gate, a handshake that compares mod versions and build ids on connect and refuses a client that does not match.

Batching would not need one. Three ore in one press is three presses of one ore - same time, same coal, same metal - so a player who has it and a player who does not are playing the same game at different walking speeds, and there is nothing for a server to hold anyone to.

The upgrades are a different matter, and they are why the gate is here. They are registered prefabs, and a client that cannot resolve a prefab name discards the ZDO rather than erroring. A mismatch does not fail loudly and it does not merely hide a Tun: it deletes every Tun and Woodrack standing in that world. The gate refuses that connection instead, which is the only way the mod can protect what somebody built.

Without Core the upgrades still work and the mod says so in the log - it just cannot stop that happening. Run it ungated on a world you control, not on one you share.

Config

BepInEx\config\ezomic.valheim.kynda.cfg

Batching

Key Default What it does
BatchModifier LeftShift Hold to batch. None makes batching unconditional
SmelterItemsPerAdd 3 Ore or coal per press at any Smelter-based station
FireplaceItemsPerAdd 3 Logs per press at a fire

Upgrades

Key Default What it does
Enabled true Add both buildable upgrades. They register prefabs, so a world that later loads without this mod discards every one already built
Donor piece_chest_barrel Prefab cloned for its machinery. Its look, collision and icon are all replaced, so this is not a visual choice
Range 4 How close an upgrade must be to the station it feeds
MaxPerStation 1 How many of one kind count for a single station. One, because these are a one-time improvement and the figures land on a round number exactly once
Stations per piece Which station prefabs each upgrade serves. smelter for the Tun, charcoal_kiln for the Woodrack
OreCapacity / FuelCapacity per piece Extra items each upgrade adds; see the Tun / Woodrack sections
ShowLink true Draw the game's station-link effect to the station when you look at an upgrade
LinkHeight 0.8 How far up the upgrade the link starts, in metres

Tun / Woodrack

The config section is still [Trough]. Renaming a section resets every saved setting under it, which is a worse trade than a stale header. The prefab name is still kynda_tun as of 1.0.0, renamed from kynda_hopper while nothing had shipped and there was therefore nothing standing to lose. From the first release it is fixed for good: ZDOs key on its hash, so changing it destroys every one already standing.

Each piece has its own section with the same four keys.

Key Tun Woodrack
Name Tun Woodrack
Cost FineWood:20,IronNails:15 FineWood:25,DeerHide:20,BronzeNails:25
Model kynda_trough_casks.obj kynda_rack_courses.obj
Scale 1.5 1.5
OreCapacity 20 25
FuelCapacity 40 (none, its stations have no fuel slot)

Model carries its own collision and icon: the .col sidecar and the _icon.png are matched by filename, so dropping in a new model brings its shape and its picture with it. assets\variants\ holds every rejected design, the twin-barrel trough and the first lean-to among them, so trying one is a config line and a relaunch, not a rebuild. The csproj does not copy that folder, so a shelved shape is buildable without being deployed; move a file up into assets\ to put it back in play. A variant with no rendered icon falls back to the donor's, with a warning.

Diagnostics

Key Default What it does
TestMode false Both upgrades cost one wood, so they can be checked without bronze
Verbose false Log each batched add
PrefabSearch (empty) Words to search loaded prefab names for, when hunting a material donor

SmelterItemsPerAdd or FireplaceItemsPerAdd set to 1 restores vanilla behaviour for either.

PrefabSearch defaults off because it indexes every loaded object carrying a mesh, close to two thousand, and then writes a few hundred names into a log shared with every other mod. Genuinely useful while hunting for a prefab to borrow a material from, pure cost afterwards.

A value already in the .cfg beats a new default in code. BepInEx writes every entry to disk on first run, so changing a default here does nothing on a machine that has already run the plugin. Edit the .cfg too.

Building

dotnet build

Deploys to the repo-local testprofile\, or build into the shared play profile with own-profile\build-all.ps1.

Author

Kynda is an original mod by Robbin Thijssen (Thijssen Software). Copyright (c) 2026 Robbin Thijssen. MIT licensed. See LICENSE.

CHANGELOG

Changelog

Notable changes to Kynda. Format follows Keep a Changelog, and the mod uses semantic versioning.

[1.1.0] - 2026-09-09

Rebuilt for Valheim 1.0. This version does not run on pre-1.0 Valheim, and the previous one does not run on 1.0.

Fixed

  • Turning the upgrades off no longer deletes the ones you built. That setting used to skip prefab registration, and the game discards any saved object whose prefab name does not resolve - so one config edit destroyed every Tun and Woodrack standing in the world, permanently and silently. Because the file is host-imposed, a host could do it to everyone at once. Registration is unconditional now and the setting gates only the build menu: turning it off hides the pieces from the next world load and leaves what was built alone.
  • Runs on Valheim 1.0. The Hoverable interface gained a member, which every implementer has to answer.

[1.0.3] - 2026-08-29

Fixed

  • A dedicated server no longer chases materials it can never load. A headless process has no renderers and never loads the asset bundles the borrowed materials live in, so the retry that waits for one could never be satisfied and never gave up: four warnings every five seconds, roughly 68,000 lines a day, which had built a 360MB journal on the live server and drowned every real line in it - a mass disconnect of every player went unnoticed there until the log was filtered by hand. Skinning is skipped whole when headless, and nothing visual is lost because a server draws nothing. The repeated warning was wrong on a client too: a donor that never arrives said the same line every five seconds for the whole session, and is now reported once.

[1.0.2] - 2026-08-27

Changed

  • A missing donor material is now loaded by name, straight out of its own bundle, instead of summoning the whole vendor camp it happens to live in. 1.0.1 fixed the magenta Tun by streaming in an entire village prefab and waiting for its material to appear; this asks the game for the material itself, which it supports once the asset loader is told to list materials as well as locations. The Tun is painted in its first build pass rather than magenta-then-healed, its hammer icon is right the first time, and the camp's object graph never becomes resident. The location summoner stays as the fallback for a material that has been renamed or that only exists inside a containing prefab.

[1.0.1] - 2026-08-27

Fixed

  • The Tun is no longer magenta on a fresh world. Its donor materials live in the vendor camp's location asset, which Valheim soft-ref streams - nothing loads it until a player walks to a camp, which on a fresh server world is never. A missing donor now summons its carrier location through the softref loader; the late-skin watch applies the paint when the load lands, and the hammer icon re-shoots itself. Every standing piece heals in place.

[1.0.0] - 2026-08-25

Both halves ship: the batching, and the two upgrade pieces.

The upgrades are in, and so is the gate

They were briefly cut for a pack release and then put back, and the two decisions belong together rather than one at a time. A Tun and a Woodrack are registered prefabs, and ZNetScene discards a ZDO whose prefab name will not resolve rather than erroring - so a world that later loads without this mod does not fail to show what you built, it deletes it.

That is why Core is a dependency again, soft, with Suite.Register at Requirement.Everyone. The reference and the registration go together and never one without the other: ungated, the mod has no way to stop a mismatched client quietly eating somebody's buildings. Without Core installed everything still works and the log says plainly what is unprotected.

Each upgrade now serves exactly one station

The Tun upgrades a smelter. The Woodrack upgrades a charcoal kiln. Nothing else.

Which kind of bin a station could take is still read off its own components, a fuel slot or not - that part is a fact about how a station works and it still means a modded station lands on the right side of the split. But which stations actually get one is a named list now, because that is a decision about what the mod is for. A blast furnace and an eitr refinery would have matched on components and are late-game stations that need no help; a windmill and a spinning wheel are single-input like the kiln and are not what a rack of split logs is a picture of.

Trough.Stations and Woodrack.Stations are config, so a modded station that wants in is a line rather than a rebuild. A bin beside a station it does not serve says it is feeding nothing rather than pretending.

The Tun's prefab is renamed

kynda_hopper becomes kynda_tun. The old name was inherited from the single generic bin this piece replaced two designs ago, and a prefab name is permanent from the first one built in any world - so the only free moment to fix one is before the mod has ever shipped. That moment is now. After this release it cannot be touched again without deleting every Tun standing in every world that has ever run it.

If you have a Tun standing in a test world, it is gone. Nothing was published, so this is the whole exposure.

One per station

MaxPerStation is 1. These are a one-time improvement rather than something to stack, and the capacity figures are chosen to land on a round number exactly once - a kiln at 50 from 25, a smelter at 30 from 10. A second bin changes nothing and says so when you look at it, because a silent no-op reads as a bug. The README claimed 2 for a while; the code never did.

The Tun is remodelled, and the rack's frame is its own surface

Two art fixes, and both came out of measuring rather than looking.

The old Tun wore four palettes. Measured by face count it was iron 29%, ore 26%, coal 26% and wood 19% - so a third of it was hoops, half was visible contents, and the timber that should have been the object was a fifth of it. Every vanilla prop ripped here is one material on one submesh, and barrell's iron hoops are painted into its wood texture rather than modelled. The replacement, kynda_tun_casks, is one group: two upright casks, hoops as shallow rings in the same timber, no contents. 716 triangles against 2,376.

It was chosen from four built to the same rules - casks, a hopper, a bin under a lean-to, and a long trough - staged at the 1.5 scale the runtime applies, beside a block of the smelter's measured mass. The other three are in assets/variants/ with their icons.

The rack's frame no longer wears the woodpile. It had two groups, log sides and sawn ends, which meant the posts, sill, back board and lean-to roof were painted with split billets - a frame apparently built out of firewood. It has three now: wood for the courses, wood_end for the sawn discs, and frame for the structure, borrowing wood_beam. One material is right for a prop and two for furniture, and a rack is furniture holding a prop.

SkinDonors takes group=prefab pairs, so wood_stack,frame=wood_beam is the default and either half can be retargeted without a rebuild.

Batching, unchanged

Hold Shift, three ore or coal per press at any Smelter station, three logs at a fire. 1 restores vanilla for either. The [Shift] x3 hover line exists because a held modifier is otherwise invisible.

[1.0.0] - 2026-08-25 (the model rework, which also ships here)

Both upgrade models remade

The art was the stated reason 0.3 was not 1.0. Two of the three causes were in the preview rather than in the models, which is why previous passes kept not helping.

  • The renders were never at the size the game draws. Both pieces carry Scale 1.5, and the preview rendered the raw model beside a 1m cube, so every design was picked from a picture two thirds the size of the real thing.
  • The lights were hot enough to flatten everything. A sun at 3.0 plus a fill at 1.0 plus a world at 0.7 puts a 0.30 albedo at 0.72 in sRGB, so timber rendered as sand and the whole model arrived at one value. Value is most of what says a silhouette works.
  • Nothing was ever in frame with it. These are only ever seen touching a station, so the stage now carries a block of the smelter's measured mass.

With that corrected, both models were rebuilt:

  • Woodrack is now kynda_rack_courses. The logs came from a helper that picked a cross-section at random (three, four, five, six or seven sides) which at 2 metres read as a frame packed with rubble. Vanilla varies a woodpile's diameter and never its cross section, so every piece is a round now. The back is closed, and the roof slopes forwards: it had been rotated -17 about x since the first version, which lifts the front edge, and a roof rising towards the viewer is why it read as a table.
  • Trough is now kynda_trough_casks. The deck it stood on was a slab across the front at exactly the height a cask is widest, cutting both off at the belly; the casks stand on the ground now, with nothing round them at all - a kerb was tried and read as the pallet the deck had just been taken away for being. The cask itself was straight-sided where a cask bulges, had its staves modelled as twenty square posts where vanilla paints them on a turned cylinder, and at 0.90 × 1.35m stood a head over the 0.84 × 1.10 barrell it imitates. It is now vanilla's size, turned and bulged, with hoops thin enough to read as iron bands.

Both are under budget: 1,472 and 2,024 triangles against a ceiling of 3,500. The rejected designs are shelved in assets\variants\, including the shapes these replace, so a config line brings any of them back.

Not yet seen in game. The models are built, exported and wired up; nobody has stood next to one.

[0.3.0] - 2026-08-16

First published release. Earlier numbers were development only and never went out.

The balance line

It changes how often you walk to a smelter. It never changes what comes out of one.

m_secPerProduct and m_fuelPerProduct are never touched. Three ore in one press costs exactly three ore, and twenty iron takes the same time and burns the same coal whether it went in as one load or three. You buy fewer trips, not more metal. This replaces an auto-fuel mod and deliberately is not one, since auto-feeding deletes the mid-game logistics problem rather than easing it.

Batching

  • Hold Shift and press at a smelter and three ore go in instead of one. Same for coal, and for logs on a campfire, hearth or torch.
  • Held rather than toggled, because a plain press has to stay exactly vanilla. Topping a nearly-full smelter with one last ore is a thing you actually want to do, and a mod that batches unconditionally has taken the single add away rather than added a batch. Set BatchModifier to None if you disagree.
  • A held modifier is invisible, so the station's hover text says so: a smelter you can batch shows a [Shift] x3 line in the game's own key-prompt style.
  • Covers every Smelter-based station (smelter, charcoal kiln, blast furnace, windmill, spinning wheel, eitr refinery) because they are all the same component, so modded ones are included for free.

Upgrades

  • Two buildable upgrade pieces that raise a station's capacity, each with its own model, icon and capacity figure.
  • Capacity scales from the station's own rather than being a flat number, so an upgrade means the same thing on a kiln as on a blast furnace.
  • They use the game's own station-link drawing, so the connection reads the way vanilla's does, and m_isUpgrade is set so the build menu draws the star.

Known limits

  • Both features have been used in a real session. The art is what is unsettled: the trough and the woodrack read acceptably at 128px and less well at eye height, and are being reworked. That is the reason this is 0.3 and not 1.0.
  • Rejected models are shelved rather than shipped, so two pieces appear on the hammer rather than eighteen.