Valheim
Install with App

Details

Latest version
0.1.3
Last Updated
First Uploaded
Downloads
230
Likes
1
Size
194KB
Dependants
ADDatHost Valheim hosting
€1

Idavoll

Dungeons come back.

Crypts, caves, camps and towers rebuild on a timer. Chests refill, monsters return, ore is whole again, doors are shut and smashed props are standing. The layout never changes, so a crypt you have learned is still the crypt you learned.

Named for Idavoll, the field where the surviving gods gather after Ragnarok and build the world again from nothing.

Take a world backup before the first reset.

Idavoll deletes what a dungeon placed and lets the game build it again. That is the only way to get a mined-out ore vein or a broken door back. Everything of yours is protected and it refuses loudly when it is unsure, but it has not yet run for months on a busy server.

idavoll_dryrun changes nothing and prints exactly what a reset would destroy and what it would keep, with a reason for every survivor. Use it before you trust a reset.

Why

Valheim builds a dungeon once and never again. Loot a crypt and it stays looted for the life of the world. On a server that has run for months, the map fills up with empty rooms.

Idavoll gives every dungeon a timer. When one comes due and nobody is near it, everything inside is cleared out and the game builds the dungeon again itself.

What Resets

Out of the box, this and nothing else:

Biome Dungeons
Black Forest burial chambers, troll caves
Swamp sunken crypts
Mountains mountain caves
Plains Fuling villages
Mistlands dvergr towns, infested mines, dvergr guard towers
Ashlands morgen holes, the charred fortress, fortress ruins, charred ruins, charred tower ruins

Plus blacks7ar's OreMines mines if you run that mod. Nothing in the Deep North, which has no dungeons in Valheim 1.0.15.

Everything else stays off. Valheim counts around fourteen thousand locations in a world and almost all of them are scenery: standing stones, dolmens, ruins, wood houses, shrines. A mod that reset anything it had not been told about would slowly rebuild your whole map. So a location with no rule never resets, and deleting a rule always makes things safer rather than riskier.

Boss altars never reset, along with the Queen's and the Fader's dungeons, Hildir's content, the starting temple and Haldor's camps. Those stay off even if you turn everything else on.

Adding Your Own

idavoll_locations

Lists every kind of location in your world with a count and which rule, if any, covers it. That is where the names for new rules come from, and modded locations appear there too.

What It Will Not Destroy

Your things survive a reset. Each rule is worked out from the game itself rather than from a list of names, so modded equivalents are covered without being listed:

  • Anything a player built. Walls, chests, workbenches, signs, beds.
  • Portals, separately and by name, because losing one strands whoever is on the far side.
  • Terrain. Every hole you dug and every path you levelled.
  • Beds, tombstones and players.
  • Tamed animals, including ones part way through being tamed.
  • Ships and carts, and Skeid's car.
  • Items on the floor, so gear where somebody died is safe.
  • Trees, rocks and bushes.
  • Anything you name in protectedPrefabs.

One gap worth knowing: anything made with the spawn console command looks exactly like dungeon furniture, because the game never records who made it. If you have spawned something precious inside a dungeon, name its prefab in protectedPrefabs.

There is also a ceiling. If a reset would destroy more than maxObjectsPerReset things, it stops and tells you rather than going ahead.

Installing

It goes on the server. The whole engine runs there. A client-only install does nothing on its own.

Install it on admin clients too, for the settings. Idavoll adds a Dungeons tab to Highseat's panel, listing every dungeon with its countdown and giving you a dry run and a reset button for each.

Highseat comes down with Idavoll as a dependency. It is a client-side admin console, so on a dedicated server it simply sits there, and Idavoll runs fine without it: every setting and every command is reachable from the console either way.

Settings

Server settings live in BepInEx/config/gbv.valheim.idavoll.json and are pushed to admin clients automatically. Edit them in the Dungeons tab or in the file, whichever suits.

Setting What it does
enabled Master switch for automatic resets.
timeSource WorldTime or WallClock. See below.
defaultIntervalHours Interval used by a rule that does not set its own. It is not a fallback for locations no rule names: those never reset.
playerClearanceMeters How far away everybody has to be before a dungeon may reset.
maxObjectsPerReset The refusal ceiling.
maxResetsPerHour Throttle, so a long absence does not rewrite a region all at once.
protectDroppedItems Keep loose items on the floor. On by default.
skipUniqueLocations Skip locations the game flags unique. Leave it on. It does not cover boss altars: those are held off by name instead.
radiusMarginFactor Widens the area a reset covers around an outdoor camp. See below.
radiusMarginMeters Added to that area after the factor. See below.
protectedPrefabs Extra prefab names never to destroy.
rules Which dungeons reset, and how often.

Each entry in rules looks like this:

"Crypt*":   { "enabled": true,  "intervalHours": 48 },
"Hildir_*": { "enabled": false, "intervalHours": 0 }

A key is a prefab name (Crypt4), a prefix (Crypt*) or * for everything. An exact match beats the longest matching prefix, which beats *. An intervalHours of 0 falls back to defaultIntervalHours. Setting enabled to false means that location never resets, and so does having no rule at all.

The Two Margins

A location tells the game how much room to leave around it, not how far its own buildings reach. An outlying hut on the edge of a Fuling village sits well past that, so Idavoll widens the circle before deciding what belongs to the camp:

radius * radiusMarginFactor + radiusMarginMeters

Defaults are 1.25 and 8. Too small is the dangerous direction: anything the reset misses survives, and then the rebuild puts a second copy on top of it, for good. Too large just means more of the surrounding landscape is looked at, and everything in the list above is still kept.

If an outdoor camp ever comes back looking doubled, this is the first thing to check, and idavoll_dryrun shows you what it decided.

Which Clock

WorldTime is the default, and it is Valheim's own world clock, which only advances while somebody is online. A server nobody touches for a week does not age its dungeons by a week. That is usually what people mean by a respawn timer, but it does surprise people.

WallClock is real elapsed time, for a server that is genuinely always busy.

Commands

All of them work from an admin client as well as from the server console.

Command What it does
idavoll_status [filter] Every dungeon that can reset, when it last did and when it is due.
idavoll_locations [filter] Every kind of location in your world, with counts and which rule covers it.
idavoll_dryrun <x> <z> Show what a reset would destroy and keep. Changes nothing.
idavoll_reset <x> <z> [force] Reset one dungeon now.
idavoll_pending What the scheduler is waiting for, and what is in flight.
idavoll_forget <x> <z>|all Clear stored reset times, so they count from now.
idavoll_reload [defaults] Re-read the settings and push them to clients.
idavoll_abort Abandon the reset in flight.

here works in place of coordinates: idavoll_dryrun here.

The Dungeon Is Empty And Has Not Come Back

On a dedicated server a reset happens in two halves, and they can be days apart.

The clear-out is immediate. The rebuild waits until somebody is next near that zone, because that is when the server builds the zone at all. In between, the dungeon is an empty shell and idavoll_pending reports it as waiting.

This is deliberate, and it is the better trade: nothing costs anything until somebody is actually going there. Walk back and it rebuilds. Do not reset it again while it is waiting.

After Restoring A Backup

Reset times live beside the settings, not in the world save, so restoring a world backup rolls the world back and leaves the schedule where it was. idavoll_forget all makes everything count from now, which is what you want.

Credits

Built for Guys Being Vikings. Shared publicly in case it suits your server too.

Everything here was written from Valheim's own code. No other mod's source was read or adapted.

DatHost — Valheim server hosting, first month for one euro
DatHost — Valheim server hosting, first month for one euro
DatHost — Valheim server hosting, first month for one euro
DatHost — Valheim server hosting, first month for one euro
DatHost — Valheim server hosting, first month for one euro