AwayFromHome
Build a Keeper Stone and that place keeps living while you're elsewhere. Eight slots feed your animals and reload your smelters, a leash you can shape and see, and production that no longer stops dead on an empty server. Server install required.Changelog — AwayFromHome
[1.0.12] — Valheim 1.0.16 — 2026-09-25
Rebuilt against Valheim 1.0.16 and re-verified: static reference check on both the client and the
dedicated server, plus a headless 1.0.16 dedicated-server boot. MinimumRequiredVersion stays 1.0.2;
nothing on the wire changed.
Changed
- The duplicate-terrain-compiler warning now describes Valheim 1.0.16's rule (the game keeps whichever compiler holds more terrain operations) and logs both operation counts. The same-ZDO protection is unchanged.
[1.0.11] — Valheim 1.0.7
Server-side only in effect; MinimumRequiredVersion stays 1.0.2. A 1.0.10 client joining a 1.0.11
server logs one "unknown config entry" warning for the new setting and is otherwise unaffected.
Fixed
- A site that shrank was never tended again after a server restart. The keeper remembers how many pieces each site had at its last good visit and refuses to walk a site that reads smaller than that, since "smaller" is how an un-instantiated pen looks. When a site is genuinely smaller - a player took a pen down, or a batch of crops that counted as pieces grew out - the keeper is meant to note the new size and carry on next lap. That note is written to the Keeper Stone itself, and only the stone's owner may write it. The keeper takes ownership of a site only after a good settle, and a restart hands the server a new session id, so on every visit of a fresh instance the stone still belonged to a session that no longer existed: the note was refused in silence, the mark stayed put, and the site failed the same check on every lap until someone stood at it. Seen live on one Wonderland stone: 1,217-1,247 pieces against a remembered 1,440, "taking that as a rebuild" 52 times in one instance and 312 all-time, not one visit past that line. The keeper now claims the stone first - from nobody or an abandoned owner only, never from a connected player, the same rule every other claim in this mod follows - and the log says plainly whether the new size was recorded or could not be.
Added
MaxObjectsPerSite(default10000, range 500-50000, server-locked). Before loading a site the keeper counts the objects in its zones straight off the server's own table - nothing is instantiated to find out - and refuses the visit if there are more than this, warning at most every 10 minutes and re-counting every lap so the site resumes as soon as it is trimmed or the cap is raised. Every visit instantiates every object in the ring and destroys them again when it ends, several times an hour, and the engine does not hand all of that memory back: a LetItGrow field that had stacked up to 39,000 mushrooms cost the Wonderland server about 1 GB per visit and an out-of-memory kill a night with nobody online. A Keeper Stone's ring is one to two thousand objects today; this is the guard for the 20,000-piece base nobody has built yet. The same cap ships in LetItGrow 0.2.8. Full account:libs-Tools/IMPLEMENTATIONS/ZoneAnchor.md, addendum 2026-09-14.
[1.0.10] — Valheim 1.0.7
Fixed
- The Keeper Stone now lists under the hammer's Crafting tab. Valheim 1.0's build menu filters by
a
Piece.m_usagebitfield instead of the old category, and a cloned piece inherits its donor's tags rather than earning its own - so the stone was sorting wherever its donor piece happened to land.MinimumRequiredVersionstays 1.0.2; this is a build-menu grouping only, read locally by each client, and was never part of the prefab or the wire.
[1.0.9] — Valheim 1.0.7
- Requires BepInExPack Valheim 5.4.2350 or newer (the Valheim 1.0 pack; older packs can take the chainloader down on 1.0's Unity 6). The manifest dependency was raised to match.
Compatibility release for Valheim 1.0.7 (client build 25185596, dedicated server build 25185644,
network version 39). Nothing on the mod's own wire changed; MinimumRequiredVersion stays 1.0.2 -
but note that no earlier build of this mod can run on a 1.0.7 game at all (see below), so server and
clients should move to 1.0.9 together with the game update.
Fixed
- The sector API. Valheim 1.0 retyped zone coordinates from
Vector2itoVector2s, foldedZDOMan.FindSectorObjects' two distance ints into aSimulationDistancestruct, removed the 2-argumentZDOMan.FindObjects, and deletedZoneSystem.m_activeArea/m_activeDistantArea. Every sector site in the mod - the zone anchor's poke loop and per-zone feed, the sector subscription, the site census, the ownership claim, livestock hold/return, keeper supply, production catch-up and telemetry - now goes through one smallZoneCompat.csthat binds to the 1.0.7 signatures. Sweeps passclassic: true, which reproduces the pre-1.0 full square ring exactly; without it 1.0 filters a ring to a disc and everyRingcount in the mod would silently change meaning. HoverablegainedGetHoverOffset(). The Keeper Stone's readout implements it (returning 0, the stock value: no extra interact reach); without it the component fails to load on 1.0.7.afh_diagread the hammer's piece table the old way.PieceTable.m_availablePiecesis a flat set on 1.0 and the per-category buckets moved; the command reports both and no longer indexes a set. Diagnostics only - nothing a player sees.- Every one of the mod's 30 Harmony targets resolves on both the 1.0.7 client and the 1.0.7
dedicated server (checked by exact signature);
Player.PlacePieceandPiece.SetCreatorgained parameters but are still single overloads, so the by-name patches bind unchanged.
Changed
- The anchor's and the sector subscription's "already inside the player's area" back-off grows
with the game's simulation distance. Before 1.0 both stopped feeding a site's zones once the
site's ring came within
m_activeArea + Ringzones of the reference position (the anchor) or of the subscribing peer (the subscription), where that field was 1 in code (2 on the shipped ZoneSystem prefab). On 1.0 the same test reads the live near simulation distance, which defaults to 2 and can be raised by the player, so the back-off distance is 2 + Ring by default and larger on a server whose players run a higher setting. The intent is unchanged - vanilla is already carrying those sectors - and the duplicate-listing guard behind the anchor still runs either way. - The sector subscription's distant band follows the live far simulation distance (the removed
m_activeDistantArea, 2 by default on 1.0 where the old field was 1 in code).
[1.0.8] — The Zone That Would Not Stay
Server-side only. Clients on 1.0.2 or later keep joining; nothing on the wire changed.
A live server was being killed by the kernel for running out of memory roughly once a day, climbing about a gigabyte an hour from boot with nobody online. The cause was the anchor's own safety gate. Since 1.0.6 the keeper only handed the object streamer zones the game reported as "loaded", so that nothing would ever be built over ground that did not exist yet. But "loaded" in the game's vocabulary also means "nothing in here is still streaming assets in", and a crypt, a cave, or any delayed-spawn location switches that flag off the instant it is instantiated, then back on when it is destroyed. So a ring with a dungeon in it was built, torn down, and built again every other tick for the whole visit - the server logged 19,682 dungeon loads against 315 that ever finished in one day, and the memory never came back.
Fixed
- The anchor gates on "this zone's terrain exists", which is what the gate was ever for, and no longer on the streamer's loading flag. Objects in a zone that is mid-stream stay listed, exactly as they do around a player, and the game's own priority ordering finishes the dungeon the vanilla way.
- Dungeons and delayed-spawn locations inside a keeper's ring now load once per visit instead of hundreds of times, and a keeper next to a crypt no longer leaks memory on every rotation.
Changed
- Server-friendlier rotation defaults. How often a site is loaded and unloaded is set by the cycle alone; how much simulated time it gets is set by the dwell. So the lap floor goes 600 s → 900 s (a third fewer load/unload cycles) and the dwell 180 s → 270 s in the same ratio, leaving every site the same 30% of wall-clock time it had. Settle timeout 20 s → 40 s, so a busy server skips fewer visits (a skipped visit is churn that bought nothing). Keeper Stone re-scan 60 s → 300 s (placing or breaking a stone still triggers an immediate re-scan) and re-claim pass 5 s → 10 s. Existing config files keep their values; these are the numbers a fresh install gets.
[1.0.7] — The Zone That Was Listed Twice
A Keeper Stone and a LetItGrow Scarecrow farm shared one zone on a live server. Both mods keep a site loaded the same way - by handing the game's object streamer that zone's objects from a hook on the same method - and neither knew the other had already done it. The streamer does not check for repeats: every object in the zone was instantiated twice. For most things that is a ghost. For the zone's terrain compiler it is the end of the terrain: the second copy found "another compiler" registered, removed it the vanilla way, and since the keeper had made the server the owner, removing it deleted the ZDO - the only record of every levelled floor, raised path and cultivated bed in that zone. Three zones of one base, one tick.
Fixed
- The anchor never lists an object that is already listed, whoever listed it, and sweeps the list once more after every other mod has added to it.
- The keeper never takes ownership of a terrain compiler. Nothing it does writes terrain, and an owned compiler was the one thing that turned vanilla's clean-up into data loss.
- A guard under the compiler's own start-up: a double-instantiated compiler now drops a stray GameObject, not its data. A real two-compiler zone is logged loudly, with which of the pair holds data.
- The seal: the two keepers never hold the same ground. Before a site visit begins, the anchor asks whether LetItGrow's keeper is already holding an overlapping ring; if so, the visit is skipped this round ("already there? skipping this round") and the rotation moves on. LetItGrow 0.1.3 does the same in reverse. With the seal the two anchors are never in one zone at all; the guards above are defence in depth behind it. Neither mod needs the other installed.
- Minimum client version stays 1.0.2: the fix is server-side, nobody is locked out.
[1.0.6] — The Texture Was Never the Problem
Two releases adjusted the Keeper Stone's texture — 1.0.4 brightened it, 1.0.5 flattened its contrast — and the stone still came out as a patchwork of hard-edged blue, cream and black. Both were treating a symptom.
The cause was in how the stone is built: it borrows a vanilla sign's material for Valheim's own shader and lighting, and along with that material came the sign's texture tiling. A sign repeats a plank texture across a board; the Keeper Stone's texture is a single map fitted exactly onto its 12,000-vertex mesh. Any tiling at all slides every piece of that map onto the wrong part of the model — so cap-blue landed on the trunk, gill-cream on the caps, bark-black everywhere. Not a dark texture, not a bright one: the right texture in the wrong places.
The tiling is now reset when the stone is built, and the mod logs what it found there. With the map back where it belongs, the texture ships exactly as it was generated — the brightness and contrast changes from 1.0.4 and 1.0.5 are switched off, and the stone looks like its approved render.
No version wall, as with the last two — this is how a client draws the stone, nothing about the piece itself changes, so an older client simply keeps its old look.
[1.0.5] — No More Black, No More White
1.0.4 raised the dark end of the Keeper Stone's texture, and in shade that worked. In daylight the same change made it worse the other way: lifting a texture whose colour is split between near-black patches and pale cream patches brightens the pale half too, and the stone went from a black lump to a white one. Same patchwork, opposite complaint.
The real problem was never how bright the texture is — it is how far apart its two extremes sit. So the shipped texture is now tone-remapped rather than brightened: its brightness range is squeezed inward at both ends, and nothing on the stone is pure black or pure white any more. The black patches become dark stone with grain in them, the cream becomes sand, and the blue caps keep exactly the colour they were generated with — as before, brightness alone is adjusted and the colour is carried through untouched.
Measured on the shipped texture: over half of it used to sit below a fifth brightness. That is now 4%, and nothing at all sits in the blown-out top fifth.
No version wall, same as 1.0.4 — one texture inside the mod's own bundle, no change to the piece itself, so an older client renders the previous look and nothing breaks.
[1.0.4] — The Stone Comes Out of the Dark
🍄 It was too dark to see, and that was measurable
1.0.2 stopped the mod repainting the Keeper Stone — a borrowed tint and a borrowed speckle, both gone. It still looked wrong, and this release is what was actually behind it.
The generated texture is simply very dark: mean luminance 29%, with more than half of it below 20% — large near-black areas sitting straight against pale cream. That reads beautifully in a studio-lit turntable on a white background, which is where it was signed off. In Valheim, standing in forest shade with half the day being night, it collapses into a black lump with a few harsh pale flecks.
So the shipped texture is brightened at bake time. Not tinted — brightened. The colour it was authored with is untouched: the curve is applied to brightness alone and the red, green and blue are scaled together, so the caps stay exactly as blue as they were and the bark stays exactly as sand-brown. Only the near-black end lifts, hard, while anything already bright barely moves. The crushed shadows come back as shadow with detail in them, instead of flat black.
Everything else about the model was checked and cleared before this was changed. The texture in the mod matches the artwork it was built from to within one part in 255; the relief map is nearly flat and could never have caused it; the texture layout has no gaps to bleed. Nothing was broken. It was just too dark for the game it was going into.
No version wall. This is one texture inside the mod's own bundle. An older client resolves the stone perfectly and simply renders the darker version it already has.
[1.0.3] — The Terrain Storm Was Ours
🌍 A site now waits for ground before it builds on it
Since 1.1.0 this mod has carried a guard against a vanilla bug: a zone whose terrain has not arrived leaves its terrain compiler half-initialised, and the game then trips over it every frame, forever. The guard silences that. On a busy server it was silencing it thousands of times per session — 3,795 in one run here, past 10,000 in another.
It turns out we were causing most of it. When the keeper visits a site it builds that site's zones one at a time, a few per second — but it was handing the game every object in the ring immediately, including objects belonging to zones that did not exist yet, and objects from an outer band of zones the keeper never builds at all. Asking the game to place a fence in a zone with no ground is exactly how that vanilla bug is triggered.
The keeper now offers up only the zones that are genuinely ready, one by one, and no longer reaches for the outer band at all. Nothing is lost by waiting — an object in an unbuilt zone was never standing there in the first place — so this is purely a matter of asking at the right moment. The guard stays, because the vanilla bug is still real and other things can still trip it; it should simply have far less to do.
Server-side only. The keeper only ever runs on the server, so this changes nothing a client does, and old clients are not locked out — the version floor stays where 1.0.2 put it.
[1.0.2] — One Furnace for Every Ore, and a Stone That Shows Its Own Colours
🔥 The blast furnace takes every ore the smelter does
Copper, tin, iron, silver — all of it now goes into a blast furnace, alongside the black metal and flametal it always took. A keeper site no longer has to stand a smelter next to a furnace just to cover the early ores, which matters here more than it does elsewhere: every extra piece inside a stone's ring is more to load, claim and settle on every single visit.
The list is read off the smelter itself rather than written down, so an ore added by a game update — or
by another mod — comes across on its own. New setting BlastFurnaceAcceptsAllOres (default on). It
takes effect on world load. If you ever turn it off, empty your furnaces first: vanilla cannot name an
ore it has no recipe for, so anything left queued is discarded rather than dropped.
🍄 The relic wears its own texture, unaltered
The Keeper Stone borrows a vanilla sign's material so it lights and weathers like a real Valheim piece — and it had been quietly borrowing two of the sign's decorations along with it. A colour tint was multiplied over the artwork, and Valheim's per-piece "value noise" — the speckle that stops a wall of identical planks reading as tiled — was being laid over a one-off hand-textured monument that already had variation of its own. Both are now cleared, and the texture itself is baked without the extra lossy compression pass that had been softening the bark grain and cap speckles. The stone in world is the model as it was made.
🔍 Logs that say what actually happened
A site that failed to settle used to report every condition as satisfied and then fail anyway — the two terms that were really holding it up were never printed. It now names the one that blocked it. And the two lines a dedicated server prints about shaders and build-menu icons now say plainly that having no graphics device is the expected outcome there, instead of reading like a fault in a server that is working perfectly.
🔴 Server and clients move together
A hard version bump, for the ore list rather than the model. Handing ore to a piece is one of the few places Valheim removes the item from your inventory before the machine confirms it wants it — so a newer client putting copper into a blast furnace on an older server would watch that copper leave and arrive nowhere. Old and new are kept apart rather than risking it. (The new look needs no bump on its own account: the stone's identity is unchanged, and an old client simply renders the previous texture.)
[1.0.1] — A Better-Looking Relic, and Two More Slots
The stone's shape and its storage, both revisited.
🍄 The relic, regenerated
The Keeper Stone's caps used to crowd together into one dark mass at the top. The model has been regenerated from scratch: three broad caps now stand apart with real daylight between them, each one readable on its own — still the same ugly iron-bound relic it always was, just recognisably a relic and not a shapeless heap.
📦 Eight slots, not six
The stone's own storage grows from six slots to eight. Same container, same rules — it just holds a little more before you have to walk back to it.
🧙 Haldor, Hildir and the Bog Witch stop getting buried under their own huts
A vanilla race, made far more likely by the way this mod loads world away from a player. A trader finds
the ground exactly once — whichever global snap pass fires first after she spawns — and if that pass runs
before her zone's terrain has actually finished streaming in, she is set into the raw ground and never
gets another chance. Every keeper visit near a trader's camp was another roll of that same dice. Fixed
three ways: the snap itself now finishes the terrain it's about to measure against, a trader who isn't
ready yet keeps her place in line instead of losing it, and a short watch after she loads catches the one
case neither of those can — including a trader already buried on a world you're already playing. New
setting RepairSunkenTraders (default on).
🔴 Server and clients move together, again
The relic and the slot count both touch the Keeper Stone's own prefab, so this is a hard version bump — the same rule that raised it for 1.1.0's fix and 1.1.2's centrepiece work. Update the server and every client together; an old client is refused rather than risking a stone it cannot resolve. (The trader fix above is pure behaviour, no prefab involved, and rides along in the same release rather than needing the bump on its own account.)
[1.0.0] — The Keeper Stone
The first public release.
A Valheim server forgets the places you are not standing in. Walk away from a pen and the taming stops. Walk away from a smelter and — on a dedicated server with nobody logged in — it does not advance by a single second, no matter how long you leave it. Away From Home gives those places somebody to run for.
Build a Keeper Stone where you care about, and a keeper rotates through every stone on the server in turn, loading each site and simulating it as though a player were standing there. The stone is not a signpost. It holds your supplies, puts food out for your animals, reloads your furnaces, and draws the boundary your livestock are kept inside.
🔴 Install it on the server, not only on your client
This is the one thing that can cost you something. The mod registers a new build piece. Valheim does
not politely skip an object whose prefab it cannot resolve — ZNetScene calls ZDOMan.DestroyZDO and the
object is gone permanently. A client-only install therefore destroys every Keeper Stone that has been
placed, silently, and nothing brings them back. Server and clients, same version, same sitting.
🍄 A site is a thing you build
- A Keeper Stone: 10 Mushroom, 10 MushroomYellow, 5 SurtlingCore, from the hammer's Misc tab, no crafting station needed. Hammer it back down to move it.
- The stone is the whole interface. There is no menu for regular players. You build it, you look at it, and it tells you what it is doing — where it stands, whether the keeper is there now or waiting its turn, what is in its slots, how big its leash is, and how many furnaces it is keeping stocked.
- The stone is the registration. There is no separate list to fall out of step with the world, and destroying the stone unregisters the site with no bookkeeping at all.
MaxSitesPerPlayer(default 3) is the mod's real economy. Rotation time is shared: every extra site lengthens the cycle for everyone on the server, and a cycle slower than about 55 minutes starts costing smelters production between visits. Enforced on both ends — the hammer refuses to place past the limit, and the server independently tends only that many per character, so an edited client config gains nothing. Over-limit stones stand untended rather than being destroyed.AdminBypass(default on) exempts admins, remembered on the stone so it survives the admin logging off. Stated honestly:MaxSitesPerPlayeris a courtesy dial for keeping the rotation short, not a security boundary, and never was.
🥕 The stone feeds the pen
- Six slots. Open the stone with
Eand fill it like a chest. The contents are saved with the stone, travel with it, survive restarts, and drop on the ground if it is ever knocked down. An empty stone is a perfectly normal resting state — it will never delete itself for being empty. - It puts food out, and here is exactly what that means. Valheim's animals have precisely one way of finding food: they look for a physical item lying in the world near them. There is no container path anywhere in the game — an animal can stand pressed against a chest full of carrots and starve. So a "container that feeds animals" can only be built one way, and this is it: the stone places one real serving on the ground in front of itself and replaces it once it has been eaten. From your side that is the feature — the animals walk up to the stone and eat what is in it. This is what lets an unattended taming actually finish instead of stalling at whatever percentage it reached when the food ran out.
- Deliberately not built: silently crediting the animal a meal it never ate. It would have been cheaper and would work even with the animals frozen, and it deletes the feature — nothing to watch, nothing in the pen, and no way to tell a working feeder from a broken one.
- It is careful with your food. One serving at a time, never a second while the first is still lying there; only when an animal near the stone is genuinely hungry; only an item that hungry animal will actually eat; and never while a site is still loading, when the animals are held still and the food would only tick down its despawn timer. A serving nobody present can eat is released rather than left to block the pen — that single rule is the difference between a mixed pen that tames and one that deadlocks behind one uneaten piece of meat.
- Kept animals near a feeding stone have their food-search range widened to reach it. Valheim's default is 5 m and measured from the animal, so without this most of a 12 m pen could never notice a serving at the stone. Applied to the live creature only, never saved, and reverts by itself when the area unloads.
AutoFeed(synced, default on) turns the whole thing off. Leaving the slots empty does the same.- Known: the slots open for anyone who can walk up to the stone, like an unlocked chest — or exactly as your ward already decides, if the stone stands inside one. Only the leash is restricted to its owner.
🔥 The same six slots reload your furnaces
- The stone restocks smelters, charcoal kilns, blast furnaces, windmills, spinning wheels and eitr refineries around it — ore into the hopper, coal onto the fire.
- Why it matters more than it sounds. Giving a furnace back the time an empty server owed it (below) means it genuinely burns through its load while nobody is there — and then stops, because nobody is there to reload it. A full hopper is about seventeen minutes of a rotation that can run for days.
- How it works, exactly: the stone walks the same path your own hand walks. It asks the furnace whether it accepts the item, then takes it out of the slots, then calls the game's own add-ore / add-fuel. Nothing is created, nothing skips a check, and a furnace that would refuse an item from you refuses it from the stone. It only restocks pieces the same machine already owns, so the hand-off is a single step with no half-completed transfer possible in between.
- It will not spend the pen's dinner on a furnace. Barley is a lox's food and a windmill's input; flax
is the same story with a spinning wheel. Anything a tameable creature near the stone eats is reserved
for it, so one stone can hold food and fuel side by side. Turning
AutoFeedoff lifts the reservation — a stone that does not feed animals is a pure supply depot. RestockProduction(synced, default on) andProductionReachMeters(synced, default 24 m). The reach is deliberately not tied to the leash: the leash is a pen for animals, this is an arm's reach for a workshop, and wanting a big pen is no reason to want your stone feeding a neighbour's furnaces on the far side of the site.- Deliberately not built: collecting the output. Vanilla already spits finished bars onto the ground by itself, and a stone that hoovered them back up would be inventing a behaviour rather than continuing one.
- Not covered: fermenters and fireplaces. A fermenter is single-shot and measured in in-game days, and a fireplace going out is a lighting decision rather than a production one.
🔥 Production that does not stop dead on an empty server
- Valheim's dedicated server freezes the world clock when nobody is connected.
ZNet.UpdateNetTimereturns early at zero players, and every production machine measures its progress against that clock — so on an empty server nothing smelts, no matter who owns the site or how long it is held. This is the real reason "smelters keep smelting" does not work by itself, and it hid for a long time because taming kept climbing the whole time: taming counts down on real frame time, so animals advanced while production sat frozen, which looks exactly like a keeper bug and is not one. CreditOfflineProduction(synced, default on) hands each machine the real elapsed time it was owed and lets vanilla's own code spend it under vanilla's own rules, including its one-hour-per-gap ceiling. Nothing global is touched — the world clock, day/night and everything else stay exactly as Valheim intends. On a server with players on it the correction computes to zero by itself.- Keep a full rotation under about 55 minutes. A vanilla smelter only ever catches up the last hour of production in a single gap; past that, time is genuinely forfeited. The log warns once if your standing stones and dwell time would push the cycle past it.
⭕ A leash you can shape, and see
- Circle, square or rectangle. Real pens are fenced boxes. Fitting a circle to a long rectangular run means either a leash that stops short of your own fence at the ends or one that spills well past it at the sides — either way the keeper enforces a boundary that is not the one you built. Pick the shape at the stone: a circle takes a radius, a square takes a side, a rectangle takes a width and a depth, and both boxes take a rotation, because a fence is rarely built square to the world.
- The outline is drawn on the ground, following the terrain — hills included — in whatever shape it is set to. No new art ships for it; the segment and its ground-raycast mask are borrowed from vanilla's own build-radius marker at runtime.
Shift+Esets it, with sliders and the outline tracking them live while you drag, because setting a distance you cannot see was the whole problem. You can walk out past your own fence line to check the outline sits on it before you apply.- Stand the stone in the MIDDLE of the pen. Straying is measured from the stone, so an off-centre stone means the far side of your pen falls outside the leash and its occupants get walked back from it forever.
- Strays are returned near the stone, not to the edge — that is where the food is, so a returned animal has a reason to stay rather than immediately resuming its walk outward. If the middle is crowded it takes the nearest clear spot inside the pen instead of stacking animals inside one another.
- The fence line is not an electric fence. An animal has to be half a metre clear of the boundary before it is corrected. Without that, a boar leaning on its own fence — which is what boars do — is a centimetre over a mathematical line, gets pulled to the middle, walks back, and gets pulled again, for the whole visit. That is churn that achieves nothing, and every one of those teleports is a physics re-seat, which is the exact event penned animals escape through.
LivestockLeashMeters(default 12) is what a new stone starts with; each stone then carries its own.MaxLeashMeters(default 40) is the ceiling no player may exceed, checked on the server rather than trusted from the client that asked, and applied on read as well as on write — so lowering it reins in every site at once without touching a single stone.- Note:
MaxLeashMetersbounds distance from the stone, so it caps each half of a box. A cap of 40 allows a pen 80 m across, whose corner is about 57 m out. That is deliberate: clamping the corner instead would mean the size you set and the pen you got were different numbers. - Why a leash at all: a site the keeper holds has no player in it. Creature AI still runs, but with nobody to orient on, animals wander continuously and lean on fence colliders for minutes at a time until they penetrate them. Drifts of 80–100 m in a single visit were measured before this existed.
- Penned animals are also held still while a site is loading. A boar and the fence around it are two entries in the same instantiation queue with nothing ordering one before the other, so an animal can be alive and walking across ground whose pen has not been built yet. Holding them makes that race unwinnable rather than merely usually-won.
📦 Pairs with AzuAutoStore (Azumatt)
-
The Keeper Stone is a real container, not an imitation of one, so AzuAutoStore sees it with no compatibility code on either side and no configuration needed. Walk past your stone and your ore, coal and animal feed go straight into it; the stone then feeds the pen and reloads the furnaces while you are gone. With AzuAutoStore's own default of Must Have Existing Item To Pull, a stone only ever tops up what you have already chosen to keep in it — exactly the behaviour you want from six slots.
-
Optional tuning: to give the stone its own pull radius or an item filter, add it to
Azumatt.AzuAutoStore.ymlunder its prefab name:AFH_KeeperStone: range: 15
🐗 Conflicts with PetPantry (Azumatt)
- Both mods feed the same animals from different stores, and the result is unpredictable rather than additive: whichever gets there first satisfies the animal and the other's supply sits untouched, or both spend at once. Away From Home detects it and warns, and deliberately does nothing else — it does not disable itself, patch around it, or fight for the animal. Leaving the Keeper Stone's slots empty is a perfectly valid way to run both, and that choice is yours to make rather than the mod's to make for you.
🌐 Server-authoritative from the first line
- Every setting that changes what the keeper does is synced through ServerSync and locked to the server's value. A client quietly running a longer reach or a shorter settle timeout than everyone else is a real behavioural split, not a cosmetic one.
- Only the keybind and the menu accent colour are local, and they stay editable while locked.
AllowRemoteSiteslets the server refuse to stream distant sectors for clients entirely, if you would rather everyone stayed inside vanilla view range.
👑 The admin panel
- F7, admins only. Every Keeper Stone standing on the server, whoever raised it and wherever it is, including ones nobody can walk to — with the power to remove any of them.
- A stone with food still in it is refused rather than removed. Removing a stone from the panel reaches across the world and cannot drop its contents the way a hammer does, so rather than quietly deleting somebody's carrots it says how many items are inside and asks you to empty it or take it down in person. It is removable the moment it is empty.
🌱 Crops get nothing from this mod, and that is not a limitation
- Valheim's plants grow on a timestamp compared against the world clock. They do not need to be loaded, owned or simulated, and they finish on their own whether anyone visits or not. Nothing here would make them faster, so nothing here pretends to.
📋 Known, and not hidden
- The keeper holds one site at a time. A site can never receive more than its share of wall-clock
time.
DwellSecondsis the only dial that buys real throughput; a shorter cycle cannot move that ceiling at all. - Feeding is paced by the rotation. The stone can only serve while its site is loaded, which — when you are away — means during the keeper's visit. It is not a continuous trough.
- Ownership is per-character, not per-account. Two characters on one Steam account are two owners for the purposes of the site limit, because that is the only identity Valheim durably records on a placed piece.
VerboseLoggingis this mod's test instrument. Its whole job is invisible by design; if you want to see the keeper working, this is how.
Before 1.0.0
Everything prior to this release was internal pre-release testing and is not documented here.
