Dvala
A dungeon left alone long enough fills back up.
About this mod Author’s original text
Dvala
Valheim's dungeons are one-shot. Once you have cleared a crypt it stays an empty corridor for
the rest of the world's life. Dvala puts the contents back on a timer: a dungeon left alone
for thirty in-game days fills up again.
It restocks, it does not regenerate. Nothing here deletes a saved object, moves a wall or
re-rolls a layout. The rooms stay exactly as they are, and anything you built inside a dungeon
is left alone.
Features
- Chests refill from their own drop table. It is a fresh roll, not a snapshot of what was
in them, so a mod that adds loot to a crypt table is picked up automatically. Only empty
chests are touched.
- Pickables reset to unpicked: berries, mushrooms, surtling cores, and the rest of what
lies around on the floor.
- Pickups that are destroyed when taken come back too: the hanging items and pedestal
pieces of the frost caves, and any other pickable with no flag to clear. Dvala rebuilds the
list from the dungeon's own room prefabs, the way the game lays it, and spawns what is
missing. Nothing is ever deleted, and what a player dropped is not touched. See
Pickups.
- Ore veins heal back to full health, including the world level bonus.
- Spawners are re-armed, but only where the creature they produced is provably gone.
Re-arming a spawner whose draugr is still walking around would add a second one, and vanilla
puts no ceiling on that.
- Player-placed containers are never touched, and neither is anything else you built.
- Each dungeon carries its own timer, stored on the dungeon and shared with everyone in the
world.
How the timer works
The count is in in-game days, not real ones. A Valheim day is twenty minutes of a running
world, so thirty days is roughly ten hours of play. On a dedicated server the clock keeps
turning while nobody is connected, which is usually what you want and occasionally a surprise.
Counting starts the first time Dvala sees a dungeon, not at day zero. Installing this on a
world you have played for two years does not restock everything in it on the next tick; each
dungeon starts its clock when you next load it.
A dungeon with a player inside is skipped and keeps its old date, so it comes back round as
soon as they leave instead of losing its turn for another thirty days. You can turn that off
with SkipOccupied, but a restock under your feet re-arms the spawners you just cleared.
Membership is tested against the dungeon generator's own room boxes rather than a radius
around it. That matters for dungeons that stand on the ground, like Hildir's Sealed Tower: a
box around the generator would reach into the Fuling camp next door and claim its contents
too.
Pickups
Two kinds of object are destroyed when a player takes them rather than flagged as taken:
pickables with no respawn time and nothing to hide, and PickableItem pedestal and hanging
pieces. Nothing is left in the world to reset, so the Contents/Pickups setting rebuilds them
from the one record that survives, the room they were laid in.
For each placed room Dvala reads the room's prefab the way the game does when it lays a
dungeon, works out where each pickup stands from the room's position and rotation, and spawns
the ones that have no object at that spot. The check is against every object the game has been
told about in that area, not only the ones near you, so a pickup that is still there is never
doubled and a second pass spawns nothing. A random item rolls again, so a restocked pedestal
may hold something different.
It only ever adds. While Pickups is on, only the player who owns the dungeon restocks it, so
two players cannot both put the same pickup back. Rooms that choose between alternatives are
replayed from the room's seed to find out which one this dungeon got.
To try it on one dungeon in a test world, stand at its entrance, outside it, open the console,
type devcommands, then dvala restock. It does the ordinary restock of that dungeon now and
prints what it put back, pickups included. It refuses w
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: