Valheim
Install with App

Details

Latest version
1.2.0
Last Updated
First Uploaded
Downloads
1.4K
Likes
4
Size
214KB
Dependants
ADDatHost Valheim hosting
30% off

Changelog

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

[1.2.0] - 2026-10-08

Added

  • Hover text says how long what is loaded will last (LHM-48). One grey line under the batch hint: the queued ore at a smelter-type station (queue time minus the progress already made), the coal in its fuel switch, and the wood in a fireplace. It is the game's own timing read from the station, since Kynda never changes throughput. With ore queued the line is the smaller of the queue time and the time the coal lasts. There is no line for a windmill (its speed follows the wind), for a station with ore but no coal, for coal with no ore queued, for a fireplace that is off, blocked or under water, or for a station that needs a roof or a clear chimney and has none. ShowTimeLeft under [Batching] turns it off. It is your own setting: it is declared with Suite.Local, so a host that leaves it on cannot put it back on a client that switched it off. With a Core older than that call it behaves like the other settings and the host's value wins. Built, not played in game.

[1.1.2] - 2026-10-05

Fixed

  • Batching fell back to one coal at a time after the first few presses (LHM-50). When this client owned the station's network object, the add Kynda sends runs on the spot, so the level it reads already includes the add the game just made. Kynda counted that add again as "in flight", and with presses close enough together the remembered level crept one higher per press until the loop believed the station was nearly full and added nothing extra. It only happened sometimes because it depended on who owned the station and how fast the presses came. An owner now counts from the real level, and a remembered level is dropped as soon as the station's own value catches up with it. It is also dropped when the real level sits below it by no more than the station has burned since, so a burning fireplace or a running smelter no longer keeps a stale prediction alive. A gap of a whole missing item still keeps it, so the overfill protection is unchanged.
  • With Verbose on, every press logs one line with the station's real level, the predicted level, who owns it, where the count started and ended and the ceiling, including presses that added nothing extra.

Changed

  • The Tun serves the blast furnace too (LHM-71). Stations under [Trough] now defaults to smelter,blastfurnace. The Tun's own figures apply, so a blast furnace goes from 10 ore and 20 coal to 30 and 60, like a smelter. BepInEx keeps the default it first wrote, so a cfg saved before this version keeps Stations = smelter until you edit the line.

Added

  • Devkit scenarios kynda-coal-three-per-press, which presses a smelter seven times in a row and checks each press adds three until it is full, and kynda-tun-blast-furnace.

[1.1.1] - 2026-09-12

Fixed

  • The batch modifier does nothing. The key was read with UnityEngine.Input.GetKey, and Valheim runs on the new Input System, where the legacy Input class does not reliably see a KeyCode. So holding Shift while using a smelter added one ore instead of three, with the config file holding exactly the right key and nothing in any log. Read through ZInput now, which is the game's own reader, and refused while chat, the console or a text field has focus.
  • A blast furnace could end up holding more ore than its capacity. Vanilla checks capacity only in OnAddOre, on the client, against GetQueueSize(); RPC_AddOre on the owner has no check at all and writes the queue entry unconditionally. On a dedicated server that queue size is a round trip behind, so pressing again before the ZDO caught up made every batch count from the same stale number, and the overfilled state then persists. The predicted level is now tracked per station across presses, with the ZDO's own value taking over the moment it catches up.
  • Batched ore was sent with the wrong RPC signature. Smelter registers RPC_AddOre as Register<string, bool> and vanilla sends (name, item.m_cheated); the extra adds sent the name alone, leaving the receiver to read a bool off the end of the package. Matches the game's call now.

[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.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.