Confirm with your password

Mists of Avalor

Descend into the Mists of Avalor: a procedural black-stone crypt-labyrinth in a forsaken sky-realm. Dodge true-damage traps & restless dead. Tear keys from mutant bosses to crack vaults, & take the Avalorian Greatsword off the Warden. Bring a torch.

Changelog & versions

· Website

Stars
0
Downloads
37
Version
1.0.2
Updated
Author
Wubarrk
Virus scan
✓ Scan successful
Runs on
Client & Server
Required by
1 mods

Compatibility

Required 1

Install these too — Gale pulls them in for you.
  • Jotunn ValheimModding ·2.30.0

Description

🌙 Mists of Avalor

Valheim Mod Multiplayer Compatible Framework

"They say the gods buried something beyond the edge of the world — a labyrinth of black stone that drinks the light. The dead walk its halls still, guarding hoards no living hand was meant to touch. Step through the mist, Viking. Few return. None return the same."

Mists of Avalor casts you into a vast, procedurally-generated crypt-labyrinth suspended in a forsaken sky-realm beyond the edge of Midgard. Every corridor is carved fresh at runtime — black-stone halls hewn from hand-authored geometry, collapsing stairwells, bone-strewn vaults, and pitch-dark dead ends where something is already hunting you. Over it all hangs the cold green witch-light of Avalor, the colour of grave-fire.

Survive the maze. Break the guardians. Tear the keys from their corpses. Crack the sealed crypt-vaults. And at the deepest point of all, where the escape-gate burns, claim the blade that only the conqueror of Avalor may carry — or die in the dark and be forgotten.


⚔️ Features

🌌 A Labyrinth That Is Never the Same Twice

Every run is forged by a recursive procedural generator — a true 3D maze of 6-meter black-stone corridors twisting across multiple vertical floors, stitched together by sloped stairwells that always lead somewhere. Dead ends hide vaults. Open halls hide ambushes. The whole structure is raised in a hidden sky-realm far beyond the world's edge, so it never touches your overworld builds or other mods' terrain.

A fixed, always-solid entrance platform anchors every maze, so you are never dropped into the void — you arrive on solid ground, torch in hand, at the mouth of the dark.

🗿 Halls Carved By Hand, Not Borrowed

Avalor is not dressed in Valheim's stock stonework. The mod ships an embedded asset kit of purpose-built models — three distinct wall faces, three floor patterns, vaulted ceilings, stairs, archways, the twin gate-monoliths and the skull-crowned torches — baked into the plugin itself, so there is no loose bundle to misplace and nothing to install beyond the mod.

Walls are laid two-sided, deduplicated per boundary, and varied by position, so no two corridors read alike and no seam gaps open at the corners. Ceilings close the halls overhead. Should the kit ever fail to load, the labyrinth silently falls back to vanilla stonework rather than leaving you standing in the void.

💀 The Mob Director — the Maze Hunts You

This is no static dungeon. An active Mob Director tracks every player inside the labyrinth and keeps the halls alive with the restless dead — Draugr, Draugr Elite, Draugr Archers, Skeletons, Poison Skeletons, Wraiths and Ghosts (with Charred legions joining on Hardcore).

  • 20-second grace on arrival, counted down on screen and ending with "Good luck." Nothing spawns or strikes until you have fully loaded in — no being gutted on a black loading screen.
  • The maze empties when you leave. No population is simulated when no one is inside; it wakes when you return.
  • Hunted, not patrolled. The dead lock onto your scent the instant they wake. Spawns are biased ahead of your path, so the dark in front of you is never truly empty — and distant stragglers are culled, so the threat stays close.
  • Proximity spawners seeded through the arenas wake as you approach, keeping the whole labyrinth populated, not just the entrance.

👹 Sub-Boss Mutations — Mechanical, Merciless

Roughly 1 in 7 of the dead rise as a starred sub-boss — not a recolour, but a genuinely different fight:

Variant Curse
Goliath Massively increased health, cannot be staggered — an immovable wall of rot
Venomous Immune to poison
Glacial Immune to frost
Vampiric Resists all physical (blunt, slash & pierce)
Lightning Immune to lightning and unnaturally fast

Every sub-boss is starred, hardened by difficulty, allied to the undead horde, and roughly one in five carries an Avalor Crypt Key.

🔥 The Revenant — Two Stars

Rarest of all, about one spawn in fifty, something older answers the maze: a two-star Avalorian Revenant — a Draugr Elite, a Charred Warrior or a Poison Skeleton, always sub-boss mutated, always starred twice.

You will know it when it comes. It arrives named, with a green health bar, because rarity you cannot see is indistinguishable from a bug — and the labyrinth is already thick with starred mobs. The rarity is in meeting one, and meeting one is meant to be an event you can see coming.

👑 The Avalorian Warden — the Fight at the End

The escape-gate is guarded. Close within about 34m of the way out and something rises to hold it: the Avalorian Warden, announced by name under a gold health bar.

It is a different champion every labyrinth, drawn from three and then remade into something larger than what it started as:

Champion What you are facing
Brenna (Skeleton Hildir) A champion skeleton with a fire nova and a burning sword
Lord Reto (Charred Dyrnwyn) A charred lord wielding Dyrnwyn, a named and self-lit blade of his own
Draugr Elite The straightforward brawl, at boss scale, that makes the other two feel special

Whichever rises, it is two-starred, cannot be staggered, and carries 3× to 7× its own kind's health depending on difficulty. It guards rather than hunts — it holds the gate area and paces it, and it will fight you the moment you arrive, but it will not be lured back through the labyrinth. Pull it more than about four cells from its post and it disengages and walks home.

It carries the Avalorian Greatsword, and it is the only thing in the world that does. The sword comes off the corpse — guaranteed, one per labyrinth, no roll — alongside a guaranteed Recall Rune (the way home should never be gated behind a roll) and a rolled hoard of gemstones, Surtling Cores, Black Metal, Flametal and a purse of 200–600 coins.

One Warden per labyrinth. Kill it and the way out stays unguarded — that fact is stored on the gate itself, so it survives a relog and a server restart. Only a full maze reset raises a new one.

🏛️ Combat Arenas

The corridors blast open into combat arenas (12×12m up to 24×24m) — bone-pits and pillared halls loaded with corner chests and proximity spawners, built to surround and bury you.

🩸 True-Damage Traps

Armour will not save you here. Hidden spike plates and poison-dart traps both bite for a percentage of your CURRENT health — 40% on Easy up to a savage 85% on Hardcore — so they scale with you and never stop mattering.

The two are not the same, though. Spike plates deal true damage: nothing reduces it. Dart traps deal poison damage, so poison resistance genuinely blunts them — and where the spikes land all at once, the poison drains out of you over the next twenty seconds while you are still trying to get away from it. Because the damage is measured off current health rather than maximum, neither will gib you outright — but a single misstep leaves you gasping on a sliver deep in the dark… with the horde closing in.

🗝️ Crypt Vaults & Keys

Deep in the maze, heavy rusted iron grates seal the richest crypt-vaults. Only an Avalor Crypt Key will open them — every Avalorian creature has a small chance of carrying one, and the starred sub-bosses carry them far more often. (The entrance and the exit are never sealed — no key-locking you out of your own escape.) Every chest in Avalor is indestructible: no stray AoE, no collapsing hall, no careless blow will ever cost you a hoard.

💎 Hoards That Deepen With the Dark

Wood and resin are worthless in Avalor. Chests spill their wealth in three bands, and how deep you have walked decides which bands you can reach — a chest by the door and a chest at the far end are not the same chest.

Band Where it opens up What the dark gives
Common Everywhere Coins, Amber, Amber Pearls, Iron, Silver, Crystal, Surtling Cores, Linen Thread, Rubies
Deeper Past the first quarter, or any large arena Black Metal, Refined Eitr, Yggdrasil Wood, Scale Hide, Carapace, Mandibles, Wisps, Soft Tissue, Black Cores, Molten Cores, Black Marble, Bile Bags
The Deep Dark Past 60% of the way in, and every vault Red, Blue & Green Gemstones, Flametal, Flametal Ore, Ask Hide, Grausten, Sulfur, Proustite Powder, Celestial Feathers, Volture Eggs, Bonemaw Serpent Scale, Morgen Hearts, Jade

A chest at the threshold rolls three distinct stacks; a vault at the world's end rolls eight. Push past the halfway mark and the deeper band stops being an occasional bonus and becomes the bulk of what you find. Quantities are never fixed — most stacks come in threes to fives, and materials a smith burns by the dozen (cores, ingots, hides, stone) come in eight to twenty-five. Difficulty multiplies it all again (×1 / ×2 / ×3), and depth multiplies it once more.

🗡️ The Avalorian Greatsword — the Conqueror's Prize

You take it off the Warden. There is no chest, no lever and no way around it: the blade is a guaranteed drop from the thing standing between you and the way out, and it drops always — no roll, no chance, no cruelty. One greatsword per labyrinth.

A great two-handed blade, and it will not stay still. Small dark-green runes bleed off the steel and fall away from it — a slow drip while it rests across your back, a scattering trail of glyphs hanging in the air behind every swing. It carries its own faint green light, which in a labyrinth that can be set to absolute pitch black is worth more than any number on a stat sheet. To carry it is to be changed:

  • +100 maximum health and +100 maximum stamina while wielded — the maze's own strength, given back to the one who broke it
  • Heavier slash than the blade it was raised from
  • A quarter of its weight again in spirit damage — death's own edge, for a realm made of the dead
  • Four levels of refinement, and durability to match

It is not simply a better sword. It is the sword you carry into graves.

🕯️ Green Fire and Living Gloom

Avalor's murk is not painted on and forgotten — it is driven live, every frame. Fog, ambient light, torchlight and the drifting mist all answer your settings the instant you change them, with no regeneration required. Set the mist to None and the halls truly clear — even the environment's own drifting motes are stilled. Set the light to None and the labyrinth goes genuinely, unnavigably black.

There is no fire in Avalor. Every torch is a skull-crowned pillar whose skull glows Avalor green — a steady, unwavering witch-light, not a flame. No flicker, no embers, no smoke: the same cold green as the gate and as the runes on the blade, one realm, one colour, from the threshold to the deepest vault. The sky-realm also forces its own crypt weather, so no Ashlands sky ever bleeds through, and vegetation is skipped beneath the maze entirely to keep the frames high.

⚰️ The Gate of Two Stones

The gateway does not appear gently. Set well apart from your Sacrificial Stones — far enough that the hallowed ground is never disturbed — two vast standing monoliths rise from a cleared and levelled graveyard, and between them burns the gate itself: counter-rotating rune-rings, a veil of green fire, sigils turning on the ground, embers rising into the dark.

  • Walk through it. No prompt, no key — cross the threshold and the gate takes you, charging as you step into the light.
  • A funeral avenue runs from the stones to the gate, graded level and lined with skull-lights that face inward across the walk, so the green watches you the whole way up.
  • The clearing is laid out, not scattered. Leaning gravestones march out in front of the gate — one left, one right, one left — in ordered rows, with half-buried ruin walls in symmetric pairs flanking the flanks. Nothing stands in the avenue, and because the ground is plotted, the dead know exactly where to lie.
  • The ground itself is matched to the surrounding land rather than raised into a plateau, cut into the high side and filled on the low, so the clearing meets untouched terrain at its own height on every side — and the temple's sacred stones are fenced off from every terrain edit, so nothing of the gods' work is ever left standing on air.
  • A localised gloom hangs over the ground even at high noon. You will feel the dread before you reach the stones.

🪦 Your Grave Joins the Others

Fall in the Mists and your tombstone is spirited back to the gate's graveyard, taking its place among the dead at the entrance. No re-running the labyrinth to your corpse — reclaim your hoard right where you stepped through.

  • Never any lost items. The grave is relocated, never destroyed. It always lands on flat, cleared, walkable ground — never in water, never in a cliff, never in the void — and if the graveyard cannot be found it simply stays where you fell. Fully recoverable, always.
  • Graves never stack, and never sink. Each fallen Viking takes the next free plot in a laid-out boneyard — rows marching out in front of the gate, alternating left and right, clear of the avenue and clear of the monoliths, seated properly on the ground rather than half-buried in it. Sixteen marked plots — four rows deep, two columns wide, every one of them on levelled ground — before the dead are laid behind the gate instead. 💀

🛟 Your Grave Is Never Lost

Say it plainly, because it is the one promise Avalor makes without exception: you cannot permanently lose a grave.

  • Die in the maze, and your grave comes home. The tombstone is moved out of the labyrinth to the overworld graveyard beside the Gate of Two Stones, and takes its place in the boneyard with everyone else who has fallen.
  • The grave is never deleted — only ever moved. Even in the rare case where a relocation goes wrong, the tombstone and everything in it still exist somewhere in the world. Nothing about how Avalor handles death is capable of destroying your items; the worst that can happen is that it takes a moment longer to reach them.
  • Avalor watches for that on its own. A quiet sweep runs the instant a world loads, and again every minute after, looking for any grave that has fallen out of the labyrinth or ended up stranded on the graveyard clearing, and setting it back down on a plot. Most players will never notice it running — that is the point. It exists so a grave lost to the labyrinth never stays lost.
  • It only ever looks at Avalor's own ground. The sweep checks the sky realm and the clearing cut around the gate, and nothing else. A grave you left in a cellar, a mine, or anywhere out in the world is exactly where you put it, and Avalor will not move it, tidy it, or have an opinion about it. The promise above is about the graves this mod puts at risk — the rest of the world is not its business.
  • avalor_tp_grave always gets you there. It teleports you straight onto your nearest tombstone, wherever it currently stands, and it asks the server for the true, current answer rather than trusting your own game's memory of where the grave used to be.
  • An admin can force the issue immediately. avalor_recover_graves runs that same protective sweep on demand, right now, instead of waiting for the next automatic pass.

If a run goes badly, the only thing you actually lose is the walk back to collect your things.

🚫 Hallowed (Forbidden) Ground

No one builds in, on, or around the labyrinth or the gate's clearing. Piece placement is blocked throughout the sky maze and within the graveyard's bounds — "The mists reject your works here." The realm stays exactly as the gods carved it.

🕰️ Automated Reset

The labyrinth regenerates on a real-time timer — and it will never reset while a player is still inside.

📊 The Labyrinth Keeps a Record

The server writes a small stats file that BarrkBOT finds and reads on its own — no setup, no configuration, nothing to switch on. It reports what is happening in the labyrinth standing right now (how many have died in it and what killed them, how many creatures are still in there, how many people are inside, whether the Warden still guards the way out, and how many have walked out alive) alongside lifetime totals for the server and for each player, which survive restarts and maze resets.

Only the labyrinth is counted. A death in the overworld is not the labyrinth's business and never appears in the file. Deaths with no creature behind them — a fall off the edge, drowning, a trap — are recorded as the labyrinth itself rather than being dropped or blamed on the nearest mob.

The file lives at BepInEx/config/MistsofAvalor/barrkbot_avalor_labyrinth.json and is rewritten once a minute. Alongside it, avalor_stats_store_<world>.tsv holds the lifetime counters — one per world, so two saves on the same machine never add their dead together; deleting that file resets them.

🌐 Multiplayer-Ready

Server-authoritative generation and a server-only Mob Director keep spawns, vaults and hoards consistent for every peer. Every gameplay setting is admin-only and server-synced, so the server's word is final — no player can quietly clear their own mist or light their own labyrinth. All maze pieces are persistent (they survive logout and relog intact), and every player on the server needs the mod installed.


🚀 Getting Started

  1. On a freshly generated world, the Gate of Two Stones rises a short walk from your Sacrificial Stones. (On an existing world the area may already be explored — open the console, enable devcommands, and run avalor_spawn_portal while aiming at the spot you want it. That builds the whole site there: levelled clearing, graveyard, and the path back to the stones.)
  2. Walk between the monoliths. There is no prompt. The gate knows.
  3. Bring a torch. Bring friends. Bring courage. Leave your armour's false comfort behind.

🗺️ Walkthrough

Everything above is what Avalor is. This is what to do.

Pack

  • Two damage types. The single most common way a run stalls. Every sub-boss is immune to something, and Vampiric resists all three physical types at once — one-trick builds get stonewalled by a mob they cannot scratch.
  • Poison resist. Works on the dart traps as well as the skeletons.
  • Max-health food, not regen food. Traps take a fraction of your current health, so how much you are left standing in is decided entirely by the size of the pool.
  • A light. Torch minimum.
  • Leave the hoard at home. Deaths are recoverable, but they cost you the walk back.

Run it

  1. Walk between the monoliths. No prompt, no key. Glance at the graveyard first — that is where you respawn-loot later.
  2. Spend the countdown, don't watch it. Eat, light up, buff. When it says Good luck, the maze wakes.
  3. Pick a direction and commit. Shallow chests roll the common band only. Backtracking to open one costs more than it pays.
  4. Clear arenas before looting them. The corner chests are bait — arenas seed proximity spawners that wake while your inventory is open.
  5. Kill every starred mob you can afford to. Keys drop from sub-bosses and nothing else, and vaults are where the run's real value is.
  6. Spend keys immediately. Vault chests roll the top band no matter where they sit, and each one hands you a Recall Rune.
  7. Read the disc, not the walls. Blip on the rim = far. Blip lifted on a stem = the exit is on a different floor, so stop hunting corridors and go find a stairwell. (Only ever happens on Hard and Extreme — Normal is one floor.)
  8. Heal up BEFORE the disc goes tight. The Warden wakes at ~34m and it will be the first thing you see.
  9. Fight the Warden in a doorway. It guards rather than hunts — back off far enough and it breaks off and returns to its post, so healing and re-engaging is free.
  10. Kill it for the greatsword, loot the corpse, then walk into the gate.

Don't

  • Don't fight in the open when a corridor is two steps away. Spawns are biased ahead of you, so open ground means surrounded from both sides.
  • Don't save your Recall Rune for later. Later is when you are dead. It is a 5-second channel — start it before the fight goes bad, not after.
  • Don't panic if the compass points into stone. It gives a bearing, never a route. Walking into a dead end while following it is normal.
  • Don't corpse-run. Your grave is already back at the gate's graveyard.
  • Don't assume a group is safer. The mob cap is per player, so four of you summons four times the dead.

When it goes wrong

Problem Fix
Lost, low, deep Recall Rune — back to your bed, run over
Died in there Your grave is at the gate's graveyard. Nothing is lost.
Can't find the grave avalor_tp_grave puts you standing on it
Stonewalled by an immune mob Swap damage type, or leave it — nothing in the maze must be killed except the Warden
Cannot find the exit at all avalor_tp_end (admin), or reset the maze with avalor_reset
Black screen after stepping through Wait. After 45 seconds Avalor sets you down on a platform at the entrance and writes what stalled to the log — send the [Avalor][FAIL] lines

⚙️ Configuration

(Run the game once to generate the config file in BepInEx/config. All settings are also editable via an in-game config manager. Every gameplay setting is admin-only and server-synced — on a server, the host's values win.)

🧭 MazeComplexity — size & vertical scale

Complexity Grid Floors Arenas
Normal (default) 20×20 1 5
Hard 40×40 2 15
Extreme 60×60 3 30

Applies on the next regeneration.

💀 Difficulty — how hard the dark bites

Difficulty Sub-Boss HP¹ Trap Damage (% Current HP) Trap Density Mob Speed Loot Mult. Mob Cap / Player Charred Legion
Easy ×1.0 40% 2% ×1.0 ×1 5
Normal (default) ×1.5 60% 8% ×1.15 ×2 7
Hardcore ×2.5 85% 15% ×1.35 ×3 10

¹ Difficulty scalar applied on top of the star-level and variant multipliers.

🔦 LightingLevel — torches and darkness, and both apply instantly

Torches are placed throughout the labyrinth at full density and lit or darkened live as you move this dial — so it works in both directions with no regeneration, and turning it up in a maze built in darkness genuinely brings the fire back.

Setting Crypt Darkness Torches Burning Feel
None Pitch black none Bring your own light. You will lose the walls.
Some (default) Heavy gloom ~30% Torches carry the light; dread everywhere else
More Dim ~62% Navigable murk
Most Dimly lit all See where you are going — mostly

🌫️ MistDensity — the drifting murk, also live

Governs the fog and the mist volumes standing in the halls, together, the instant you change it.

Setting Fog Mist Volumes Active Environment Motes
None none at all none stilled
Little (default) faint ~20% on
Normal murky ~45% on
More thick ~72% on
Most blinding all on

⚔️ How hard the labyrinth hits back

Two dials, both admin-only and server-synced, that sit between every creature in Avalor and your health bar. They exist because the maze was one-shotting players who were blocking with 300+ health, and it was doing it without a single damage multiplier anywhere in the mod: stars are a ×2 on damage in vanilla, the Hardcore roster reaches into the Ashlands, and a 6m corridor takes away the one answer Valheim gives you to a big hit, which is distance.

Setting Default Description
EnemyDamageScale 0.6 Multiplies what the labyrinth's creatures hit players for — applied before armour and blocking, so a raised shield still subtracts its full value on top.
MaxHitFraction 0.5 The most of your maximum health any single blow in Avalor can take, measured after armour, blocking and resistances. At 0.5, a player at full health always survives the first hit — whatever swung it, however many stars it had.

Neither touches the spike and poison plates (those already take a percentage of current health and are written to leave you standing), nor falling, drowning, or anything outside the sky realm. Set both to 1.0 for the old numbers.

🕸️ ClutterDensity — crypt debris

Density Effect
None Bare stone. No floor debris, no wall dressing, no hanging banners, no chains — nothing.
Normal (default) Light scatter on the open floor, walls dressed
High Heavier scatter
Higher Well-furnished halls
Extreme Every hall a midden

Applies on the next regeneration.

🧭 The Exit Compass — a bearing, never a route

A raked overhead disc, drawn in transparent Avalor witch-light: a compass rose lying on the ground ahead of you, seen from 60° above the horizontal, with the way out riding on it. The exit rides inward as you close on it, and an exit on another floor is lifted off the disc on a stem, so "two floors up" reads at a glance instead of as a line of text.

It gives you a direction and a distance and nothing else. It will happily point straight through a wall, and following it into a dead end is the normal experience of using it — the labyrinth is still yours to solve. Turn it off entirely if you would rather be properly lost.

Hold Left Alt to adjust it: drag it with the mouse, nudge it with the arrow keys (hold Shift to move faster), and resize with the mouse wheel or +/-. Wherever you leave it is where it stays.

Setting Default Description
ExitCompass true Show the compass at all. Local to you.
Compass.Size 190 Diameter of the disc in pixels.
Compass.Opacity 0.55 How solid it is. Low values keep it a ghost over the labyrinth.
Compass.TiltDegrees 60 The angle it is viewed from. 90 is a flat top-down circle; lower lays it further over.
Compass.PositionX / PositionY Set by dragging. You should not need to touch these.
Compass.AdjustKey LeftAlt Hold to move and resize.

🔧 Other Settings

Setting Default Description
MazeResetIntervalHours 24 Real hours between automatic regenerations. Never resets with players inside.
SpawnPortalAtStart true Raise the Gate of Two Stones near the Sacrificial Stones.
DebugLogging true Verbose [Avalor] diagnostics in the BepInEx log. On by default — most of what it records happens once while the mod loads, so switching it on after something goes wrong is already too late to capture the cause. Local to you — the one setting that is not server-synced, so any player may diagnose their own client, and turning it off costs nobody else anything.

🛠️ Admin Commands

Open the console with F5 and enable dev commands with devcommands first — every command below is a cheat command and needs that.

A few of them — the ones that move a grave, forge the maze, or rebuild the overworld site — quietly ask the server to do the actual work if you type them from a connected client, because those things have to be decided by the one machine with the authoritative copy of the world. You'll see the result either way; on a dedicated server, the fuller log of what happened lands in the server's log, not necessarily yours.

Command Effect
avalor_tp Teleport straight into the labyrinth (no gate needed).
avalor_tp_end Teleport to the escape gate at the maze's deepest point — a cell short of the Warden's post.
avalor_tp_grave Teleport onto your nearest tombstone (maze or overworld) so you can loot it in place — the surest way to recover a grave. Asks the server for your grave's current position first, so it can't send you to a spot the grave has since been moved away from.
avalor_recover_graves Finds every player grave that has fallen out of the labyrinth or ended up stranded on the graveyard itself, and re-seats it at the overworld graveyard. It looks in the sky realm and on the ground Avalor cut around the gate, and nowhere else — a grave out in the world is left exactly where it is. Runs automatically on world load and once a minute after that; this forces the same sweep immediately. Typed from a client, it asks the server to run the sweep and reports its findings to the server's log.
avalor_gather_graves Moves every player grave in the sky labyrinth to the overworld graveyard, whether it is lost or not — for tidying up after a reset, or for peace of mind. Deliberately separate from avalor_recover_graves, which stays conservative and only rescues graves that have actually ended up somewhere unreachable. Graves already at the graveyard are left where they are, and graves anywhere else in the world are not gathered at all.
avalor_open Cutaway view. Strips floors and ceilings and leaves the wall lattice standing — the labyrinth as a floor plan, seen from above. Pair it with fly. Add walls to strip those too, or off to restore. Local to you only.
avalor_illuminate Toggle full-bright lighting inside the maze to inspect the layout at any hour. Local to you only.
avalor_spawn_portal Raise a Gate of Two Stones where you are aiming — and make it the gate. You get the whole site, exactly as a fresh world builds it for itself: the clearing is levelled, the graveyard is laid out in front of the gate, vegetation is cleared as it streams in, and the processional path is paved back to the Sacrificial Stones if they are within 200m. Stand at least 55m from the stones: the clearing holds a flat 28m pad, and the temple's ground is fenced off from every terrain edit this mod makes, so any closer and that fence would cut a slope straight through the pad — graves relocating there would sit off the ground. The command tells you and places nothing rather than build a site it knows is wrong; the automatic siting picks 68–96m for the same reason. Everything that looks for the gate afterwards — grave relocation, the return trip home, the check that stops a second gate appearing at the next world load — follows the one you placed. Takes a few seconds; it reports again when the site is finished. Needs a player and terrain that is actually loaded, so run it from a client standing where you want the gate, not from a dedicated server console.
avalor_spawn_portal bare The gate alone, on bare ground — no clearing, no graveyard, no path. Useful for a quick test, but graves relocating there land on unprepared terrain.
avalor_spawn_portal nopath The full site without the processional avenue.
avalor_spawn_portal replace Removes the gate you already have (the designated one wherever it stands, plus any within 150m of the Sacrificial Stones) before placing the new one — this is how you move the gate. World-gen maze-entrance portals out in the Mistlands and Ashlands are never touched. The old clearing's ground is left as it is; run avalor_remove_all first if you want that put back too.
avalor_reset Force-regenerate a brand-new maze now (must be near the labyrinth). Evacuates anyone still inside first.
avalor_remote_reset Force-regenerate from anywhere (for dedicated servers). Evacuates anyone still inside first.
avalor_remove_all Wipe the labyrinth from the sky, remove the gate, the graveyard and the avenue — and put the ground back the way the world generator drew it, so the levelled clearing and the graded path return to the hillside they were cut from. Evacuates anyone still in the maze first. Player graves, chests, anything a player built, and the temple's own altar and stones are always spared. Trees and rocks the site cleared away years ago cannot be regrown — avalor_fix_stones puts the temple's own boulders back. Typed from a connected client, the labyrinth half is done by the server (where the whole world is known) and the overworld half here, where the ground actually is — so run it standing at the temple, and check the server's log for the maze half. Typed anywhere else it removes the objects and tells you the terrain was left alone. ⚠️ This leaves the sky realm completely empty until you rebuild it — don't fly, teleport, or portal up there in the meantime.
avalor_remove_all keepterrain The same removal with the shaped ground left exactly as it is.
avalor_generate_all Cleanly rebuild both the overworld gate and the labyrinth (use after avalor_remove_all). Costs nothing to run if a labyrinth already exists, so it's safe as a general "make sure everything's there" check too. Give it a few seconds to finish forging before walking — or flying — into the maze. Sites the gate automatically near the Sacrificial Stones; use avalor_spawn_portal if you want to choose the spot yourself.
avalor_fix_stones Repair a missing sacrificial altar and/or its flanking boulders.

🧯 Troubleshooting

My grave is missing. It isn't — graves are never deleted, only ever moved, and Avalor already has more than one way to get you back to it. In order: try avalor_tp_grave first; it teleports you straight onto your nearest tombstone and asks the server for its true, current position rather than trusting a stale local copy. If that turns up nothing, ask an admin to run avalor_recover_graves — it forces the automatic recovery sweep immediately instead of waiting for its next pass. And give the automatic sweep itself a minute, too: it already runs once when the world loads and once every minute after, so a grave that fell out of the labyrinth in a previous session is often already fixed by the time you go looking for it. (If you died out in the world rather than in the labyrinth, none of these will move your grave — that is deliberate. avalor_tp_grave will still take you to it.)

My grave is at the graveyard, but hovering in the air above it. That was a real bug, fixed in 0.1.10 — the ground under the gate is levelled flat when the site is built, usually by shaving a few metres off a hillside, and the height a grave was set down at came from the land's original shape rather than the clearing that replaced it. Nothing was ever at risk: the grave and everything in it were always there, just standing on a hill that had been dug away. A grave still floating from before the fix sets itself down the next time a player is at the gate, and stays down. No new world, and no command, is needed.

The gateway or the processional road looks like it's floating. Walk toward the gate and give it a few seconds. A site is one continuous surface stretching well past the clearing, and it is built by whoever is standing at the Sacrificial Stones — from there, the far side of it can be further away than the game keeps loaded. Avalor writes every part it can reach, deliberately leaves the site marked unfinished, and then watches: the moment the rest comes within range — which walking up the road does on its own — it writes the whole surface again and finishes the job. Nothing is lost in the meantime and no command is needed; the one thing that does not help is standing at the temple waiting.

If you are on Valheim 1.0 and the site was built by a version before 0.2.3, the ground was never shaped at all — the game was silently discarding the edit (see the 0.2.3 changelog). It re-shapes itself once on the first visit after updating. If it still does not, look in the log of the machine standing there for the line that starts [Avalor] terrain: and contains terrain-op prefab(s) registered in ObjectDB — the count it carries changes between releases, so match the wording rather than a number. That line missing altogether is the bug, and cancelling TerrainOp lines in the owner's log are its signature.

The road looks bumpy or stepped, like a run of mismatched dirt patches instead of a smooth slope. That is how roads used to be built — the slope was flattened in dozens of small overlapping patches, and on a server those don't always arrive in the order they were made, so they could disagree with one another and leave a staircase. The clearing and the road are now shaped together, as one finished surface, in a single pass when the site is built: there are no patches left to disagree, and re-running the pass simply writes the identical surface again. A site built by an older version is re-shaped once, on its own, the next time it streams in after the update — walk away far enough for it to unload and come back. No new world, and no command, is needed.

Mobs in the maze won't attack me first — I have to hit them. That means an out-of-date Shadows of Midgard (anything before 2.0) is installed alongside Avalor. Older SoM doesn't yet know how to exempt Avalorian mobs from its stealth model, so it quietly applies its own alertness rules to them instead — and those rules gate an attack behind being detected first, which the maze was never designed around. Check your log for a line naming Shadows of Midgard directly; Avalor calls this combination out by name and by version rather than staying silent about it. Updating Shadows of Midgard to 2.0 or newer resolves it on its own — nothing further is needed on Avalor's side.

I stepped through the gate and got a black screen that never ended. On Valheim 1.0 the game files everything that lies outside the normal world — the whole labyrinth included — in a single bucket, and until 1.0.2 that made the loading screen wait for every object in the labyrinth to exist on your machine, and made a dedicated server keep the entire labyrinth loaded at its own reference point. 1.0.2 files the sky by zone again, on the client and on the server, so both need 1.0.2. If it still happens: after 45 seconds Avalor finishes the trip onto a temporary platform at the entrance and writes a line starting [Avalor][FAIL] labyrinth entrance: saying exactly what it was waiting on — send that line. A Local player destroyed line on its own tells nobody anything; the game prints it on every logout and every death. If it was neither, the [Avalor][FAIL] line just above it says whether the destroy came over the network or from the game itself.

Nothing from Avalor shows up in my log at all — not even at startup. Avalor has a hard dependency on Jotunn. If Jotunn isn't installed, or fails to load for any reason, BepInEx skips loading Avalor entirely and silently — no error naming Avalor, no warning, just nothing where its startup lines should be. Confirm Jotunn is actually present in BepInEx/plugins, and check the top of your log for Jotunn's own startup output; if that's missing too, that's the problem to fix first.


📥 Installation

Mod Manager (Recommended)

  1. Install Gale.
  2. Make sure BepInEx and Jotunn are installed.
  3. Search for Mists of AvalorInstall → launch through the manager.

Manual

  1. Install BepInEx and Jotunn.
  2. Extract the release into Valheim/BepInEx/plugins/.
    • e.g. steamapps\common\Valheim\BepInEx\plugins\MistsofAvalor.dll
  3. Launch the game.

⚠️ Multiplayer: every player on the server must have the mod installed. 📦 One file. The authored asset kit is embedded in the plugin — there is no separate bundle to copy.

Dedicated Server

The server needs the mod too — it is not optional and it is not client-only. The server is the authority: it owns maze generation, the Mob Director, vault and hoard contents, the reset schedule and the answers to "where is the exit / where is my grave". A server without the plugin has no labyrinth for a client to walk into.

  1. Install BepInEx and Jotunn on the server, exactly as on a client.
  2. Drop MistsofAvalor.dll into the server's BepInEx/plugins/.
  3. Start the server once, then stop it — that writes BepInEx/config/wubarrk.mistsofavalor.cfg.
  4. Edit the server's config. Every gameplay setting is admin-only and server-synced: on connect the server pushes its values over each client's, so the server's file is the only one that decides Difficulty, MazeComplexity, LightingLevel, MistDensity, ClutterDensity, SpawnPortalAtStart and MazeResetIntervalHours. Editing them on a client does nothing.
  5. Restart. Look for these lines in the server log — they are the proof the server-side pass is alive, and they print whether or not DebugLogging is on:
[Avalor][net] topology=DedicatedServer - RPCs registered (SERVER+client handlers) headless=True activeArea=...

Version matching. The plugin declares EveryoneMustHaveMod with Minor strictness, so 0.1.x client ↔ 0.1.y server is fine, and a client on a different minor is refused at connect rather than allowed to half-work. Keep the server on the highest version in use — client and server should always be running the same Avalor build.

The labyrinth on a fresh server. The maze is never pre-built — it is forged the first time it's actually needed. Walking through the Gate of Two Stones asks the server to make sure a labyrinth exists, and the server is the only machine that ever creates one; a client cannot forge its own copy and hand it over. Once the maze exists, asking again costs nothing, which is why avalor_generate_all can safely be used as a general "make sure everything's there" check as well as a post-avalor_remove_all rebuild.

The overworld gate on a fresh server. A dedicated server never loads the Start Temple as anything but a ghost zone, so it cannot site the gate itself — the terrain probing and vegetation clearing need physics it does not run. The first client to visit spawn asks for the job and the server grants it to exactly one machine (portal-siting request from …: GRANTED). So on a brand-new world the gate appears once somebody stands at the Sacrificial Stones, not at server start. This is expected.

Grave recovery runs on the server only, and only over Avalor's own ground. The sweep that finds fallen or stranded graves and re-seats them at the graveyard only ever runs on the machine that is the server — a client's world view can see every grave that exists, but it has no authority to move one, so a client never runs its own sweep. It fires automatically once when the world loads and once every minute after. avalor_recover_graves typed on a connected client asks the server to run that sweep on demand and prints what it found to the server's log, not the client's.

Resets. MazeResetIntervalHours runs on the server clock and only regenerates when the maze is empty; anyone still inside is teleported home first. avalor_remote_reset forces one from anywhere.


🤝 Works Great With

Mod Why it pairs well
First Person Mode — Azumatt The labyrinth was built to be walked through at eye level. Dropping into first person turns a 6m corridor into a genuinely enclosed one — the ceiling presses down, the torchlight only reaches so far, and you lose the third-person camera's habit of showing you what is around the corner before you get there.

🌫️ De-misting mods are fine. Mists of Avalor paints its own fog at render time, after every other mod has had its turn, so the labyrinth keeps its murk even if you run something that strips the mist out of the rest of the world.


🏰 Come Play It With Us

Mists of Avalor is one piece of a bigger table. Wubarrk builds several mods for Valheim, and the labyrinth is best met running alongside the rest of them, not on its own — that's what Wubarrk's modded server is for. Come see how the mist looks when it isn't running solo. Details on joining live on the Discord.


Forged by Wubarrk. May your torch outlast the dark. 🔥


find Mists of Avalor on Hexium Hexium Logo


License: MIT — use, modify, and redistribute freely, including commercially; just keep the copyright notice. See LICENSE.md for the full text.

Changelog

1.0.2 Latest
  • Fixed: stepping through the gate could leave you on a black screen that never ends, with nothing in your log but a "Local player destroyed" line. Valheim 1.0 changed how the game files objects that lie outside the normal world, and the labyrinth floats 30km out, well past the edge: everything out there now shares one "sector". So arriving at the entrance made the game wait for every object in the whole labyrinth - and anything else any mod keeps outside the world - to exist on your machine before it would show you anything, and it streamed the entire maze in at once instead of the part around you. A dedicated server was caught by the same change: its own reference point sits outside the world too, so it had been quietly keeping the whole labyrinth, and a copy of every player inside it, loaded on the server. The sky region is filed by zone again, the way it was before 1.0, which is the behaviour the labyrinth was built for. The server needs this version as much as the client does.
  • If an arrival still stalls, the log now says what it is waiting for: [Avalor][FAIL] labyrinth entrance: still on the loading screen after 12s ... waiting on: <prefab> xN, repeated every ten seconds. After 45 seconds a trip into the labyrinth is finished onto a temporary platform at the entrance rather than left black forever; the stone streams in around you from there.
  • A "Local player destroyed" line is now preceded by an [Avalor][FAIL] line whenever it is not a death or a logout, saying whether the destroy came over the network (a DestroyZDO packet naming your own character) or from the game itself culling the player - the two things that leave a black screen with no way out. Please send that line with any report.
  • The gate now says so if the trip could not start at all - a teleport already under way, or the two-second cooldown after spawning - instead of doing nothing silently.
  • Fixed: a maze reset could destroy a grave still standing in the labyrinth, with everything in it. The wipe runs two passes, and the second - the one over loaded objects - spared players but not their tombstones. Both passes now spare any grave by what it is rather than by its name, the labyrinth's own pre-build wipe uses the same rule, and a grave that was standing in the labyrinth when it was wiped is sent to the graveyard straight away instead of being left to fall.
  • Walked once in play on a 1.0.12 player-host before the fold: labyrinth generated, entry arrived in under twelve seconds, the Warden fought, the exit walked, the return home arrived, no failure lines. Not yet walked on a dedicated server, which is where the server-side half of the first fix matters; the diagnostics above exist so that the next report carries the evidence, whichever way it goes.
  • Crypt Keys drop a little more freely. Every Avalorian creature now carries a 5% chance of one, and the starred sub-bosses' chance rises from 18% to 24%. Still one key at most per kill, and never multiplied by stars.
  • Fixed: the deeper vaults were refusing part of their own hoard. Avalor's chests were built on the ten-slot wooden chest, and a deep vault's roll is eight entries of several stacks each - so everything past the tenth stack was turned away, and each refusal put a red Trying to add item to occupied slot -1, -1 line in the log. Every Avalor chest now opens onto a 32-slot grid, which holds the largest roll, and the loot code checks for room before it asks.
  • The log is quieter in the labyrinth: the game's own once-a-second GetBiome error Ocean -> AshLands warning, which fires because the sky lies off the edge of its biome map, is no longer printed there. It was 268 lines in a four-minute visit and it meant nothing.
1.0.1
  • Fixed: a site that had just been repaired after a late terrain change could stop watching for its own out-of-reach corner. If the repair gave up while yet another change was arriving, the flag that asks for a repair was left raised and the residency watcher on that site treated it as "someone else is on it" for the rest of the session. The repair now lowers the flag when it gives up, so the watcher takes the site over on its next poll.
  • The log is more honest about a late terrain change during the first build: it is reported as an ordinary notice rather than as a partly-written clearing, and the clearing's own failure line no longer says "NOT verified" about a write that did verify before the change arrived.
  • The 1.0.0 notes above are corrected in four places: the straight-edged face showed on about one site in seventeen, not one in six (one in six is how often any corner was out of reach); an older build recorded such a site as finished rather than waiting for it to stream back in; a path built by 0.2.3 or earlier keeps its old grade because the road's record lives on the gate's marker, not because the world holds no record at all; and the one [Avalor][FAIL] terrain line that is not a defect - vertices needing more than 8m of cut or fill on very steep ground - is named.
1.0.0
  • Fixed: the two things wrong with the ground at the gate site - the drop-off where the processional path enters the clearing, and the pale, straight-edged face at the clearing's rim that you could see straight through - are gone, and no amount of tuning the old approach was ever going to remove them. The clearing used to be shaped with the game's own two terrain tools, and one of them has a ceiling: the game's smooth tool cannot move any point of ground more than a metre from its natural height, however many times it is applied, so a pad levelled to the gate's height beside a ring that could only be smoothed always ended in a wall - the drop, minus one metre - standing exactly at the pad's edge. Avalor now writes the finished ground straight into each zone's stored terrain, the same place the game keeps a hoe's work: a flat pad out to 28m, a ring that grades back to natural ground by 52m with no crease at either end, and the path descending or climbing to meet the pad at exactly its own height, so the walk arrives on the pad instead of stepping up onto it. The write is exact and repeatable - running it again produces the same ground - and the site keeps a record of every zone it wrote so it can check its own work.
  • The site finishes itself. It is built from where you stand at the Sacrificial Stones, 68-96m from the gate, and on about one site in six a corner of its footprint lies outside what the game keeps loaded from there - on about one in seventeen that corner reaches into the clearing itself, and it used to be left natural along a dead-straight zone edge while the site recorded itself as finished anyway, so nothing ever went back for it. Now the site keeps watching and writes those zones the moment you walk toward the gate - the log says the clearing is waiting for N zone(s) of its footprint to come within reach ... walking toward the gate is normally enough, and a few seconds later that it is finished ... The pass is claimed. And if the game later swaps in a zone's own terrain data underneath a finished site, which it can do when that data arrives late, the site notices, re-writes itself and says so.
  • Trees, rocks and props standing between the cleared 24m around the gate and the 52m rim are set back down onto the new ground instead of being left floating on air or buried to the canopy; on a re-shape the road's paving and torches are re-seated the same way.
  • Fixed: the processional path showed as a dirt track. The paving tile has no model of its own - what you see as paving is paint - and the mod's own cleared-dirt paint was being stored over it. The crown of the road is now painted paved, with cleared-dirt verges either side, all the way through the pad to the gate.
  • Fixed: the six ruined walls around the clearing had never once appeared on Valheim 1.0 - the piece they asked for does not exist there. They now spawn as Avalor's own weathered copy of the stone wall, and cannot be picked up with a hammer.
  • The avenue's torches now start about a third of the way along the road, so two to four pairs stand on the graded approach rather than all of them on the flat pad. The crypt torches - on the avenue and in the labyrinth - can no longer be removed with a hammer.
  • Fixed: the sweeps that clear the avenue and the clearing could delete things that were not theirs. Both now refuse anything a player built, any dropped item stack, the wild beehive of an abandoned house, and anything inside the Sacrificial Stones' own ring - which the avenue sweep could previously reach a flanking stone inside.
  • avalor_spawn_portal refuses a site closer than 55m to the Sacrificial Stones - the pad, the temple's protected ground and the fade between them add up to that - rather than build a pad it cannot keep flat. avalor_remove_all now hands back the whole width of ground a site touched, the road's own start included.
  • The line to look for in the log is now [Avalor] terrain: 8 terrain-op prefab(s) registered in ObjectDB. Three of the eight are the paint - the pad's dirt, the verges, the paved crown. The other five belong to the old op grid and the old path leveller, kept so a processional path already cut by an earlier version still resolves its edits, and so a game update that ever makes the terrain data unreadable has something to fall back to; that fallback announces itself with [Avalor][FAIL]. Any line tagged [Avalor][FAIL] terrain is something to report - except the one about vertices needing more than 8m of cut or fill, which is the game's own limit on very steep ground and is telling the truth.
  • Existing worlds: every site built by an earlier version re-shapes itself once, on its next visit. The pad and the ring are rewritten as the new surface, and the old ring's leftover smoothing out to 63m is erased rather than added to. A path built by 0.2.3 or earlier keeps its old grade, because the record of where the road runs lives on the gate's own marker, which a site built by those versions does not carry; avalor_remove_all and a fresh siting give it the new one.
  • Verified in play on a fresh Valheim 1.0.12 world before the version bump: a flat pad, the road meeting it level, and no wall at the rim.
  • The package is now Mists_of_Avalor - the BETA is over. Remove the old Mists_of_Avalor_BETA package when you install this one, so the game does not find two copies of the same plugin.

18 older entries, full version history & downloads →

Manual download
Just this mod One .zip — Mists of Avalor 1.0.2
Files you'll get 2
  • Mists of Avalor 1.0.2 Wubarrk this mod Get
  • Jotunn 2.30.0 ValheimModding Get

Your browser may ask permission to download several files at once. How to install these manually

Manual installation instructions
1

Install BepInExPack Valheim

BepInExPack Valheim is required to run mods in Valheim.

Download BepInExPack Valheim 5.4.2350 · View mod page

Check out the mod page for detailed installation instructions.

2

Install Mists of Avalor

This mod must be installed on both the client and the server.

Download Mists of Avalor 1.0.2

Extract the ZIP and place the file(s) into the BepInEx/plugins/ folder inside your Valheim game folder.