Longhouse 2.0.0
10 September 2026. After 1.1.7.
The Valheim 1.0 pack. Thirteen mods instead of nine, and every member rebuilt against the new game.
Valheim left Early Access on 2026-09-09 with Deep North, an achievements system, crossplay across six platforms and a balance pass. This pack does not work on pre-1.0 Valheim and the 1.1.x line does not work on 1.0. Core compares the compiler build id, so a mismatch is a refused connection rather than a degraded session. If you are staying on an older game build, pin 1.1.7 and do not take this.
Major rather than minor, against this pack own rule that the version moves with the set, because that break is what a major version is for and the version number is the only signal a mod manager conveys.
Joining
- Lur - sound a horn in one of Hildir dungeons and its mini-boss wakes again.
- Skaft - hammer repair reaches further the higher your Crafting skill. It was published standalone on 2026-09-02 and held out since, for a reason that turned out not to be Skaft: it is marked HostOnly, but Core read each mod requirement off the manifest and discarded it, so a Core server without Skaft refused every client that had it. Fixed in Core 1.2.0.
- Vaka - fires keep while you are away, and a single absence costs one fuel however long it was.
- Dvala - a dungeon left alone for thirty in-game days fills back up: chests restock, veins come back, and a spent spawner wakes. It registers no prefab, so unlike the rest of the set it can be added or pulled without costing anybody a built thing.
Surge stays out, as it has since the pack began.
What 1.0 broke, and what it cost
Four members did not compile against the new game: Hoverable gained a member, Inventory.AddItem gained a required flag, and PlayerProfile stat record became an array of ten as part of the achievements system. Those are the loud failures.
Three more compiled and then failed at runtime, which is the half worth reading:
- Yoke was clamping over-limit stacks back down on load and saving them clamped, destroying the excess permanently. Its load-path guard targets one exact method, and 1.0 moved the clamp onto a different overload - so the guard silently stopped guarding.
- Utangard was entirely inert. One changed method signature threw out of PatchAll and took all twelve of its patches with it, while it still registered on the gate and still refused mismatched clients on behalf of a mod that was not running.
- Core could not apply its inventory load protection, because 1.0 added a second Inventory.Load overload and the patch became ambiguous.
All three are fixed. Core also now isolates its patch groups and applies the inventory pair first, so a handshake failure can no longer take the protection that keeps items out of the bin with it - that change caught the ambiguity above on its first run rather than eating a row.
Also in this release
- Kynda no longer destroys what you built when its upgrades setting is switched off. That setting used to skip prefab registration, and ZNetScene discards any ZDO whose prefab name does not resolve - so one config edit deleted every Tun and Woodrack standing, and because the file is host-imposed a host could do it to everyone. It gates the build menu now and nothing else.
- Skaft and Auki were reading the wrong global key: GlobalKeys is the one implicitly numbered enum in the game API and 1.0 inserted ten members, moving NoWorkbench from 22 to 27. Read by name now.
- Rist works out which stat fields count from 1 by asking the game rather than from a list, so a rebalance cannot make it write 0.03 where it means 1.03.
- Yoke and Hirsla now say when a biome carries items no boss will ever unlock, instead of leaving it silent. Deep North is the first case.
Also fixed, from an audit of the released mods
Ten paths to permanently destroyed save data and four that refused players, found by auditing the twelve published mods against the failure classes Valheim 1.0 exposed. The ones a player would have met:
- Rist granted its extra inventory rows before proving the guard that protects them was installed, and would delete every player's card history if its catalogue failed to load.
- Yoke raised stack sizes whether or not the guard that keeps stored stacks whole had actually replaced anything. It now ships vanilla sizes rather than unprotected ones.
- Kynda and Vaettir each had a config switch that skipped a prefab declaration rather than hiding a feature - and an undeclared prefab is not a missing piece, it is every one already built discarded from the world. Both register unconditionally now.
- Utangard put thirteen patches on with one call, so one changed signature took all of them; it also starved people when the seams that make the penalty escapable were missing.
- Dyrr refused every player at the door, with an accusation, when a client could not read its own travel record.
- Lur was offered by Hildir at a placeholder price and could not be bought at all.
Unchanged
Sinka, Taum and Vaka needed no changes and keep their versions. Lur is at 1.1.0 for the store fix above.
What moved · 11
Core 1.1.0 → 1.2.0
1.2.0
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
A failure in one patch group no longer takes the others with it, and the inventory patches apply first. They used to be five bare
discussPatchAllcalls with the ZNet handshake leading. A throw there meant the last two never ran - while the component was still added andUpdatestill ticked, so the extra inventory rows kept being claimed with thePlayer.Loadprotection that keeps items in them absent. That combination destroys the bottom row on every relog and at every grave. Protect the data first, then wire the network.The inventory load protection applies again on Valheim 1.0. 1.0 added a second
discussInventory.Loadoverload, so naming the method alone became an ambiguous match and Harmony refused it. Both overloads are named now. This is exactly the failure the reordering above was written for, and it arrived on the first launch against 1.0 - the rows were refused and the reason was on screen, instead of items going quietly missing.A HostOnly mod is now allowed to be absent on either end. The manifest always sent each mod's requirement and the reading end threw it away, so
discussHostOnlyonly ever protected the direction where the client lacked the mod. A Core server without Skaft refused every client that had it - which is why Skaft shipped standalone and stayed out of the pack for a week. It is in the pack now.
Changed
The log says when the gate is not actually there. Every mod's
discussRegistered ...line carries** NOT ENFORCED **when the handshake patches did not apply, and Core printscame up DEGRADEDnaming what is missing rather than its usualready.line. Twelve confident lines describing a gate that was never wired is how this used to read.
Dvala joins at 1.0.0
1.0.0
First version.
A dungeon left alone for thirty in-game days fills back up: chests re-roll from their own drop tables, pickables return, part-mined veins heal, and spawners whose creature is gone are re-armed. Nothing is regenerated and nothing saved is destroyed.
Every mechanism in it was read out of the game's assemblies rather than guessed, and read twice by different readers. Three of the four are now also confirmed in a running game, singleplayer, on 2026-09-09:
- Spawners re-arm and their creatures come back.
- Veins restore whole, including a partly mined one.
- Chests refill when empty and are left alone when they still hold something.
Pickables are unconfirmed. Every run so far reports none restored, and it is not yet known whether that means none were picked in the rooms tested or whether the pickables in question are the class that is destroyed on pick rather than flagged.
Hildir's three - the Sealed Tower, the Howling Cavern and the Smouldering Tomb - are included
on the same timer as everything else. That changes what Lur's horn is for: it still wakes a
mini-boss on the spot, but it is no longer the only way to fight one again. HildirRooms off
puts it back.
KeepVeins, on by default, is the one setting that changes vanilla rather than restoring it.
A vein deletes itself when its last chunk dies, and nothing records that it was ever there, so
a postfix on AllDestroyed holds that deletion back inside dungeon interiors. What is left is
an invisible husk with no collision that the timer fills back in. Off, and a stripped vein is
gone for good.
Known gaps
Pickables with no respawn time and no hidden child, and
discussPickableItempedestals, are destroyed on pick and cannot be restored.
Dyrr 1.3.0 → 1.4.0
1.4.0
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
Reads the character's record again on Valheim 1.0. The achievements system turned
discussPlayerProfile's single stat record into an array of ten and moved the known-worlds and known-commands lists inside it. The indices are not interchangeable - one is every increment, one counts only what was eligible for an achievement, the rest are per difficulty - and this mod wants the lifetime totals, which is the question it has always asked.The cheat counter is found by name rather than by the number the compiler baked in. That enum nearly doubled in 1.0. Had the entry moved, this would have read some other counter - and since a mismatch between the cheat flag and its counter is treated as an altered record, a counter that is really a death count would not have degraded the door, it would have shut it on everyone.
discuss
Kynda 1.0.3 → 1.1.0
1.1.0
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.
discussRuns on Valheim 1.0. The
discussHoverableinterface gained a member, which every implementer has to answer.
Lur joins at 1.1.0
1.1.0
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
Hildir offered the horn at 12345 coins, and would not sell it. Valheim 1.0 grew Trader.TradeItem from four fields to eleven, and the store reads one of the new ones without a guard -
discussif (tradeItem.m_tooltip.Length > 0). A row built in code leaves unset strings null where Unity's own rows come from an asset and hold "", so drawing this row threw. The price label is written below the throw, so it kept the list template's placeholder text; the click listener is added lower still, so the row could not be bought at all. Every string on the row is now set explicitly, including the ones this mod has no use for, so the next release that adds a field does not repeat it.
Rist 1.1.1 → 1.2.0
1.2.0
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.
Changed
Which stat fields count from 1 is now read off the game rather than from a list in the mod. A fresh
discussSE_Statscarries its declared defaults, and a= 1finitialiser is exactly what "the neutral value is one" means, so the set can be asked for instead of remembered. It reproduces the same four fields today; the difference is a balance pass that makes another modifier multiplicative, which would otherwise have this writing0.03into a damage multiplier and cutting damage to 3% instead of raising it by 3%. Any disagreement with the four it was written against is logged.
Skaft joins at 1.1.0
1.1.0
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
Reads the right global key on Valheim 1.0.
discussGlobalKeysis the one implicitly numbered enum in the game's API, and 1.0 inserted ten members - moving the no-workbench key from 22 to 27. A compiled ordinal therefore asked about a different key entirely, with nothing logged. Read by name now, taken off the enum member so a rename follows automatically and a removal is a build error rather than a quiet wrong answer.
Changed
Joins the Longhouse pack. Nothing here changed to allow that; Core was discarding the requirement each mod declares, so a server without Skaft refused every client that had it.
discuss
Utangard 1.2.1 → 1.3.0
1.3.0
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
The mod works again. Valheim 1.0 added a trailing parameter to
discussSEMan.AddStatusEffect, so the patch no longer named a method - and an unresolved target throws out ofPatchAll, which took all twelve patches in the class with it. Utangard did nothing at all while still registering on Core's gate and still refusing mismatched clients on behalf of a mod that was not running. It was nearly invisible: the log carried one warning and no error, because the exception went toPlayer.lograther than BepInEx's own log. The tell was the absence of theready.line.
Vaettir 1.4.1 → 1.5.0
1.5.0
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
A patch failure can no longer delete what you built. The four prefabs were declared after thirteen
discussPatchAllcalls, so any one of those throwing - one renamed method after a game update, which is ordinary - took the declarations with it. That is not a lost feature: the game discards any saved object whose prefab name does not resolve, so every Heartwood, sapling, spirit and stow post in the world went with it. They are declared first now, and each patch group is applied on its own so one failure costs one feature and says which.Runs on Valheim 1.0.
discussHoverablegained a member, andInventory.AddItemgained a required flag - the spirit's heartwood is handed over as legitimately earned, which is what it is.
1.4.2
Added
Hold Shift to plant free of the grid. A Longhouse player asked to switch the grid off sometimes, to put one plant where it wanted to be - which is a gesture, not a setting. So it is a held key rather than a toggle or a cfg edit: the lattice, its preview, the scroll wheel and middle mouse all return to vanilla while it is down, and come back when the hand opens. The key is the game's own AltPlace - Shift unless rebound, which is already vanilla's "place free of snapping" gesture while building, so the habit transfers whole and follows a rebind in the game's controls for free.
discussGridFreeKeyin config replaces it for anyone whose Shift is overloaded.
Fixed
Bonemeal threw on every use.
discussBonemealRadiuswas read each time bonemeal was consumed on a plant, but it was never bound to the config file, so the read was a NullReferenceException on the one path the item exists for. The plant still advanced, because that happens first, and the exception landed in Player.log rather than the BepInEx log - which is why it read as working. It is now bound, off by default at 0; set a radius in metres to feed the neighbours in the same press. The radius could never actually be switched on before this, since no cfg row existed to set.
Changed
Every config entry is now settled as either the host's or yours. The 1.4.1 grid-angle fix closed one instance of a class, so this release classified all 137 entries against Longhouse Core's sync. Thirty-three are per-player by nature and now say so through
discussSuite.Local: the grid and sowing gestures, your map pins, the refusal messages on your own screen, the spirit's and post's local renders,KeepHotbarandNeverStow, and every Verbose and diagnostics toggle. Every gameplay number - costs, ranges, health, rosters, caps - stays host-decided on purpose, and so does every shared prefab fact. Three that look personal stay synced deliberately, and the code records which and why.
Vaka joins at 1.0.0
1.0.0
First release. A fire loses at most one fuel to an absence, however long the absence was.
Named Vaka, having been built as Ember
Vaka is the Old Norse for a vigil, a watch kept through a night nobody else is awake for, which is what the mod asks of a fire. It was written under the name Ember and renamed before any of it was published.
The rename was not taste. Ember collides on Thunderstore - there is already a Valheim
package Ember/ember, plus ember_server and Embers_of_Niflheim - and outside Valheim the
word belongs to Ember.js and to Warframe, which would have hurt the repo and the C# namespace
too. Checking that took some care: Thunderstore's web search silently ignores its ?q=
parameter and returns the default popular listing, so the obvious check reports a false
all-clear. The package index was downloaded whole and grepped instead, and the eight names
shortlisted were all verified clear that way.
The name also stopped describing the mod. Ember is a fire word, and this is not a mod about fire - it never changes what a fire burns while you are standing at it, and its entire subject is the unloaded zone. It sat too close to Kynda, which is already Old Norse for "to kindle". Vaka names the absence instead.
Renaming cost nothing because nothing had shipped and the mod registers no prefabs, so no ZDO
is keyed on a name that would stop resolving - the cost Kynda paid deliberately when its test
pieces died. The config section moved from [Ember] to [Vaka] for the same reason: renaming
a section silently resets every value under it, which would matter if anyone but the author
had a config file, and nobody does.
The line this sits on
It changes what an absence costs. It never changes what burning costs.
While you are near a fire it consumes exactly what vanilla says it consumes, to the same decimal, and this mod can be proven to do nothing at all: a live update measures about two seconds against a cap that is hours away. Everything here happens on the one update that lands when your base loads back in.
Why it is a cap and not a longer fuse
The complaint that started this was a day away and a base of cold fires with nobody having been near them, and the obvious fix is to make fuel last longer. That is wrong twice. It makes a fire cheaper while you are stood at it cooking, which was never the complaint, and it only moves the deadline - a longer trip next time arrives at the same cold base.
What is actually wrong is what a fireplace is charged for. Fireplace.UpdateFireplace bills
against the world clock by diffing ZNet.GetTime() against an s_lastTime stamp on the ZDO,
and while the zone is unloaded nothing re-stamps it. The first update after the zone returns
therefore pays for the entire gap at once, and whether a person was present is not part of
the sum at any point.
The clock is the world's rather than the wall's, which is why the symptom is confusing.
ZNet.UpdateNetTime only advances on a server while GetNrOfPlayers() > 0, and the value is
saved into the world file, so an empty server is frozen and a singleplayer world resumes
where it stopped. What drains a base is the hours other people were online elsewhere on the
map, or the hours you spent across it yourself.
One fuel, and what it does not buy
MaxFuelPerAbsence is counted in fuel units rather than seconds, because every fire has its
own rate and one number in seconds would be four hours of a hearth and a fifth of a torch.
Ripped from this install:
| Fire | Holds | One fuel | Full tank |
|---|---|---|---|
| Campfire, iron campfire | 10 wood | 1h 23m | 13.9h |
| Bonfire | 10 wood | 1h 23m | 13.9h |
| Hearth | 20 wood | 1h 23m | 27.8h |
| Wood ground torch | 4 wood | 2h 47m | 11.1h |
| Standing brazier | 5 resin | 5h 33m | 27.8h |
| Wall torch, ground torch | 6 resin | 5h 33m | 33.3h |
Two things fall out of that. Cooking fires burn four times faster per fuel than torches, so a campfire empties after fourteen hours of other people playing while a wall torch takes thirty-three - which is why a base goes dark unevenly and the fires you cook on go first. And the floor is 5,000 seconds, so no fire has a rate short enough for a cap of one fuel to come anywhere near a two-second tick. The worry that a short-rate prefab would make the cap throttle ordinary burning does not exist in this game.
The unit also happens to be the one the player acts in, which is the argument against
expressing the cap as a fraction of the tank instead. RPC_AddFuel adds exactly 1f per
press whatever the fire is, so "an absence costs at most one press of E" is the same promise
on all six, even though one fuel is a twentieth of a hearth and a quarter of a wood ground
torch.
One unit is a real price and it is paid every time the fire comes back into play. A fire left nearly empty still goes out; the cap limits what an absence costs, it does not conjure fuel. Bank your fires before you log off and they will be lit when you get back.
Everyone needs it, and the reason is ownership
Requirement.Everyone, and the argument is structural rather than cautious. The drain runs
under m_nview.IsOwner() and writes ZDOVars.s_fuel, which is shared world state, and
ZDOMan.ReleaseNearbyZDOS reassigns ownership every two seconds to whichever peer's active
area covers the fire. One player without the plugin walking up to your base takes the fire
over and pays the absence off the vanilla way, for everybody, silently.
Handing it to the host instead is not available: a dedicated server never calls
ZNet.SetReferencePosition - every caller is player code - so its reference position stays at
the world origin and it is never a candidate owner for a player-built fire.
The patch, and why it is that one method
A postfix on the private Fireplace.GetTimeSinceLastUpdate, clamping the double it returns.
That method has exactly one caller, inside vanilla's own IsOwner() && m_secPerFuel > 0f
guard, and its value is used for nothing but the fuel subtraction - so the patch inherits both
guards for free and cannot alter anything else.
It also already re-stamps s_lastTime to now before returning, which means the trimmed
seconds are written off rather than deferred to the next update. That is the behaviour a cap
wants, but it is a consequence of where the patch sits rather than something it chose, so it
is worth stating: a postfix here could not bank the remainder even if that were wanted.
A live tick is never touched, whatever the cap says. Without that guard, setting
MaxFuelPerAbsence to 0 would clamp every two-second tick to zero as well, and "an absence is
free" would quietly mean "fires never burn at all".
An absence is the fire not having run, never a big number
The first version decided what counted as an absence by the size of the gap: anything longer
than three update intervals. That reads as correct and is not. Sleeping runs
EnvMan.UpdateTimeSkip, which pushes the world clock forward at roughly fifty times normal
for a dozen real seconds, and skiptime jumps it instantly - so both arrive as an enormous
gap with the zone loaded and the fire ticking the whole time. A size test forgives them, which
would have made sleeping through the night a free burn on any fire with a short enough rate,
and it would never have shown up on a torch because a torch's cap is five and a half hours.
So the test is now the component's own history. A ConditionalWeakTable records which
fireplaces this machine has already billed; the first bill for an instance is the one paying
for however long the thing was not running, and every later call is a live tick that is never
touched however large it is. ZNetScene destroys and rebuilds a fireplace with its zone, so a
new instance is exactly a return from an absence.
It also closed a hole nobody had noticed: ownership is granted only inside a player's own 64m zone while objects are instantiated across 192m, so a fire 40m away across a zone line loses and regains its owner without ever being destroyed. Under the size test that was a fresh capped "absence" every crossing, and a patrol loop past your own base would have kept it lit for one wood a lap. Under the history test the instance was never destroyed, so it is a live tick and is charged in full.
Verbose reports the catch-ups it did not cap, on purpose
Fuel is drawn as Mathf.Ceil(fuel) out of the maximum, so anything under a whole unit is
invisible in the hover text. That makes three different states look identical from in front of
a fire: the cap worked, nothing had burned down anyway, and the patch never applied. Logging
only the capped ones would have preserved exactly that ambiguity.
So Verbose writes a line on every catch-up, capped or not, and the line carries the span,
what it was worth in fuel and what was actually charged. Walk out of a zone, wait, walk back,
and either there is a line or the mod is not running.
It stays silent about fires that were never going to spend anything, which is the other half
of being truthful. GetTimeSinceLastUpdate is called above vanilla's
IsBurning() && !m_infiniteFuel && state == 1 gate, so an unlit torch, one somebody switched
off, one under a roof and an infinite-fuel brazier all arrive here with a huge gap and nothing
at stake. Reporting those would claim savings that never existed - the same kind of lie the
flag exists to prevent.
A NaN in the config would have killed a fire permanently
Reachable only from a hand-edited cfg, but the damage was to saved world data. BepInEx parses
a float with NumberFormatInfo.InvariantInfo, whose NaNSymbol is the literal NaN. That
would have multiplied through to a NaN cap, and vanilla's subtraction floors fuel at zero
without ever testing for NaN - so the fire's stored fuel becomes NaN, is written into the
world, fails every > 0 test forever, and survives refuelling because Mathf.Clamp leaves
NaN alone. One bad character, one dead fire, no way back without a console command.
CapSeconds now refuses a non-finite rate or amount and hands the fire back to vanilla. The
comparison it feeds was already NaN-safe by accident; being safe on purpose is cheaper than
finding out which.
What has actually been run
The cap works, measured in game on 2026-09-04. A campfire at 10 fuel, teleported away
from so the zone unloaded, skiptime 20000, teleported back:
fire_pit was away 5,6h of world time, worth 4,00 fuel. Charged 83,3m, 1,00 fuel.
Every number in that line is exact against the rip. 5.6h is the 20,000 second skip; 4.00 fuel
is 20,000 divided by the campfire's 5,000 seconds a fuel; 83.3 minutes is 5,000 seconds, which
is the cap to the second. One line, so nothing double-billed on re-entry, and no exception in
either LogOutput.log or Player.log.
That one line is both arms of the test, because it reports what vanilla would have charged
alongside what was charged - so the Enabled = false control run was not needed to make the
claim. It is deliberately in neither build-all.ps1 nor server.ps1.
What is verified, and how: the mechanism, the single call site, the return type and the
absence of any other timed fuel drain on a Fireplace come from a full ILSpy decompile of the
installed assembly_valheim.dll. The Harmony details - that a string-named private target
resolves through DeclaredMethod, that ref double is required to write a return value and
that a plain double __result would silently discard the write - come from reading the
emitter in the installed 0Harmony.dll. The torch numbers come from devkit rips already in
this profile.
Every fireplace prefab in the table above was ripped from the running game on 2026-08-30, which retired the one open question the design hung on: whether some fire had a rate short enough that a one-fuel cap would clamp ordinary ticks. None does - the floor is 5,000 seconds. No code changed as a result; the numbers only confirmed it.
The discriminator was then checked in the other direction, in the same session. The same skip run while standing at the fire, with it loaded and ticking the whole time:
| Test | Fuel | Vaka line | |
|---|---|---|---|
skiptime 20000, zone unloaded |
10 to 9 | logged, 4.00 charged as 1.00 | capped |
skiptime 20000, stood at the fire |
10 to 6 | none | vanilla, untouched |
6/10 is exactly 10 minus 20,000 over 5,000, so the present case is billed at full vanilla rate, and the log still carried exactly one catch-up line for the whole session. That is the half that stops a night's sleep being free burn, and it is the half the first cut of this mod got wrong. Both directions now hold: an absence is the fire not having run, and a large gap on its own is not enough to trigger one.
Still untouched: multiplayer of any kind, ownership moving between clients, the Verbose gate
that is meant to stay silent on unlit and infinite-fuel fires, and every fire type except the
campfire. None of those block calling the mechanism proven.
The README carries the recipe, along with why the obvious test - leave it overnight, come back, look - proves nothing at all in either direction.
What this is worth, stated at the right scale
Vanilla already bounds the loss: fuel floors at zero, so the most an absence of any length can ever cost is the fire's current fuel, and for a torch that is at most six wood. This turns "came back to a dark torch" into "came back one wood down". The wood was never the point - the lap of the base pressing E, and the warmth and Rested source being off, are what an outage actually costs, and that is the thing being bought.
It is also narrower than its own name suggests. A solo logout was never billed at all, because the world clock freezes with the fire, and an empty dedicated server is frozen too. What is left is the two cases that are real on a shared server: other people playing while you were away, and your own long walk across the map.
Yoke 1.1.0 → 1.2.0
1.2.0
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
Stacks above the vanilla limit are no longer destroyed when a world loads. The load-path guard targets one exact method, and Valheim 1.0 moved the clamp onto a different overload - the string-keyed one became a two-line forwarder holding no clamp at all. So the guard silently stopped guarding, and stored stacks were clamped on load and saved clamped, which destroys the excess permanently. Retargeted, and the guard still covers only the load path, so pickup, crafting and splitting keep vanilla's rules exactly as before.
discuss
Added
A group carrying items no boss will ever raise is now reported at startup, once, naming the group. Deep North is the first case: nothing in
discussProgressionTiersnames it, so its items sit at the base multiplier however many bosses fall - and the progression summary deliberately omits tierless groups, so that was the one thing nothing would have mentioned.
Discussion
Nothing said yet.
Sign in or make an account to join in.