You are viewing a potentially older version of this package. View all versions.
Wubarrk-Mists_of_Avalor_BETA-0.1.11 icon

Mists of Avalor BETA

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, & claim the Avalorian Greatsword at the escape gate. Bring a torch.

Date uploaded 2 days ago
Version 0.1.11
Download link Wubarrk-Mists_of_Avalor_BETA-0.1.11.zip
Downloads 67
Dependency string Wubarrk-Mists_of_Avalor_BETA-0.1.11

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333
ValheimModding-Jotunn-2.29.2 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.29.2

README

🌙 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 will fight you the moment you arrive but will not chase you back through the labyrinth and leave the prize unattended.

It drops a guaranteed Recall Rune (the way home should never be gated behind a roll) plus a rolled hoard — gemstones, Surtling Cores, Black Metal, Flametal and a purse of 200–600 coins. The greatsword is not on its table: the Warden is the gate to the reward, not a duplicate of it.

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 — torn from a slain sub-boss — will open them. (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

At the deepest point of the labyrinth, beside the escape-gate itself, stands a single blackmetal chest. It holds one thing, and it holds it 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 world or ended up buried, and setting it back down at the graveyard. Most players will never notice it running — that is the point. It exists so a lost grave never stays lost.
  • 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.

🌐 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 and run avalor_spawn_portal to place one in front of you, or genloc to force locations.)
  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 — it will not chase you down the corridor, so backing off to heal and re-engaging is free.
  10. Loot the blackmetal chest, 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

⚙️ 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

🕸️ 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 during the open beta — 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 — beside the blackmetal prize chest.
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 world or ended up buried, and re-seats it at the overworld graveyard. 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 world to the overworld graveyard, whether it is lost or not — for tidying up a server, or for peace of mind after a reset. Deliberately separate from avalor_recover_graves, which stays conservative and only rescues graves that have actually fallen somewhere unreachable. Graves already at the graveyard are left where they are.
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 in front of you.
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 and remove the overworld gate + terrain edits. Evacuates anyone still in the maze first. Player graves are always spared. ⚠️ This leaves the sky realm completely empty until you rebuild it — don't fly, teleport, or portal up there in the meantime.
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.
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 world in a previous session is often already fixed by the time you go looking for 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 away and come back. The ground under a freshly-built site is shaped by a terrain edit that has to actually run once while the site is loaded, and on rare occasions — usually the very first time a site is ever visited — you can arrive a beat before it finishes. It repairs itself automatically the next time the site streams back in, and once it has, it stays fixed for good.

The road looks bumpy or stepped, like a run of mismatched dirt patches instead of a smooth slope. That was a real bug, fixed in 0.1.8 — the slope used to be flattened in small overlapping patches that could disagree with each other on a server, since they don't always arrive in the order they were made. Every road built before the fix re-grades itself smoothly the next time you walk the avenue. No new world is needed for the fix to take effect.

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.

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. The sweep that finds fallen or buried 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. 🔥


join the Mists of Avalor Open BETA find it only on Hexium Hexium Logo


License to Modify: User may alter, translate, or create derivative works based on the original material, provided two conditions are met: 1) A request to alter the work is made and approved by the original author (waived in the case of simple translations), and 2) Full attribution is given to the original author along with a link to the original work (if still available). All changes should be clearly marked or noted as modified from the original source.

Modification or reuse of the work does not grant the user any right to imply official endorsement or sponsorship by the original creator.

The permission granted herein is non-exclusive, and the original creator retains all rights, title, and interest in the original work.

CHANGELOG

Changelog

[0.1.11]

  • Fixed: the Warden stopped appearing. After the labyrinth was reset, a fresh maze came back complete - exit, prize chest, the lot - with nothing guarding the way out, and it stayed that way for the rest of the server's uptime. Resetting the maze was quietly happening on the admin's own game instead of on the server, even though the command is marked server-only; that setting controls who is allowed to run a command, not where it runs. The server therefore never learned its labyrinth had been replaced, still believed the previous maze's Warden had already been beaten, and skipped the check that would have corrected it. Resets now run on the server.
  • The Warden also no longer depends on being told. It now recognises the labyrinth it is guarding by the exit portal itself, and treats a different exit as a different maze - so any reset brings the boss back, including one performed by something that never informs it.
  • Fixed: the same misrouted reset meant the decision "is anyone still inside the labyrinth?" was being made from one player's partial view of the world rather than the server's complete one. Getting that wrong drops everyone in the maze five hundred metres. It is now decided where the answer is actually known.
  • Fixed: a reset run on a machine with no labyrinth did nothing whatsoever and said nothing about it, so the command looked like it had worked. Every outcome is now reported.
  • New: avalor_gather_graves. Moves every player grave in the world to the overworld graveyard, whether it is lost or not - for tidying up a server, or for peace of mind after a reset. This is deliberately separate from avalor_recover_graves, which stays conservative and only rescues graves that have actually fallen somewhere unreachable, because a grave where you died is where you will go looking for it.
  • The search for the labyrinth's exit no longer trusts a remembered position for half a minute after that exit has been destroyed, and no longer re-reads the entire world - over two million objects on a busy server - on every single tick while a maze is being rebuilt.

[0.1.10]

  • Fixed: a grave moved to the overworld graveyard arrived at the right spot but hung in the air above it. The ground under the gate is deliberately cut flat - the whole clearing is levelled, which usually means shaving a few metres off a hillside - but the measurement used to set a grave down was the original shape of the land, taken from the world's terrain generator rather than from the ground that is actually there. So the grave was placed on a hill that had been dug away, and stood in the empty air where it used to be. Graves are now set down on the levelled clearing itself.
  • The same wrong measurement was also holding them up there. The automatic sweep that rescues buried graves compared each one against that same phantom hillside, decided a grave standing correctly on the clearing was several metres underground, and lifted it back into the air - once a minute, indefinitely, undoing gravity's own attempt to fix it. It now measures against the real ground.
  • A grave already hanging over the graveyard sets itself down the next time a player is there to see it, and stays down. No new world, and no command, is needed.

[0.1.9]

  • Internal item rebalance.

[0.1.8]

  • Fixed: a grave from a maze death could fall out of the world and take everything with it. A tombstone in Valheim is a physics object, so when the labyrinth's floor streamed out from under it, it simply fell. The safeguard that is supposed to drag a stray grave back into place only measures how far it has drifted sideways, so a grave dropping straight down never looks like it has moved at all, and the second safeguard that lifts a buried grave back above ground relies on a measurement that a dedicated server cannot take. Nothing stopped it. The grave and every item in it are still in the world - they were never deleted - and Avalor now finds them and puts them back.
  • Fixed: moving a maze grave to the overworld graveyard could lose track of it. The move was made by the server, which then owned a falling object in a place it had no solid ground for, and the grave's own position kept being rewritten as it fell. The relocation now seats the grave on real ground using a measurement that works on any machine, moves the grave itself rather than only its recorded position, and brings it to a complete stop.
  • Fixed: avalor_tp_grave could teleport you to where your grave used to be. It preferred whatever your own game already knew about, and your game keeps a copy of everything it has ever been told - including a grave's old position from before the server moved it. It now asks the server first whenever you are on one, and only falls back to local knowledge if the server does not answer.
  • New: avalor_recover_graves. Finds every player grave that has fallen out of the world or ended up buried, and re-seats it safely at the overworld graveyard. It also runs automatically when a world loads, so a grave lost this way comes back on its own without anyone having to know the command exists.
  • Fixed: the processional road came out as a janky, stepped dirt track on a server. The approach is a gradual slope, so every few metres along it a patch of ground was being flattened to a slightly different height than the patch beside it - and because those patches overlap, each one simply overwrote part of its neighbour. Which one won came down to the order they happened to arrive in, which on a server is not the order they were made in, so the road ended up as a run of mismatched steps. The slope is now graded by blending the ground toward each height instead of stamping it flat, which reaches the same shape without the patches fighting. The portal clearing was never affected, because every patch there flattens to one single height and they all agree.
  • Every existing processional road re-grades itself once, the next time you walk to it. No new world needed.
  • Fixed: avalor_generate_all rebuilt the overworld gate but not the labyrinth, so after avalor_remove_all the sky realm was left completely empty - and anything that put you there without walking through a portal (flying, a teleport, an old spawn point) dropped you five hundred metres onto nothing. That is exactly how one playtester died, with their tombstone falling after them. The command now rebuilds both, and says so; it costs nothing when a labyrinth is already there.
  • Fixed: a vanilla runestone (or another piece of world-gen scenery that Avalor is not allowed to remove) could end up standing squarely in the middle of the processional road. Avalor deliberately never deletes runestones, boss stones or the Sacrificial Stones - that guard exists because the road once came close to destroying a Sacrificial Stone - but nothing in the site search had any opinion about what was standing between the temple and the gate, only about whether the gate's own spot was dry and level. The search now also looks along the avenue and prefers a direction that is actually walkable, so the road is aimed around anything it must not touch rather than through it.
  • Fixed: a grave relocated to the graveyard sat about a metre too high, hovering above its plot. The height it was lifted by had been hand-tuned to compensate for the broken ground measurement described above; with that measurement fixed, the old adjustment was being applied on top of a correct answer. Avalor now measures the headstone itself and sets it down on the ground.

[0.1.7]

  • Fixed: if you had fallen off the labyrinth, the mod stopped counting you as being in it - at the exact moment you most needed rescuing. The check for "is anyone inside" measured a straight-line distance from the centre of the maze, and the maze floats 500m up with nothing beneath it, so a player dropping through the empty air below quickly measured as too far away to matter. A reset run in that state decided the labyrinth was empty and skipped the evacuation that would have teleported them home. The maze's airspace is now treated as a column: anywhere above or below it counts, at any height.
  • avalor_remove_all now evacuates before it deletes. It was the only destructive command in the mod that never checked whether anyone was standing on what it was about to remove - it deleted the floor of the labyrinth without warning, while avalor_reset had been broadcasting an evacuation since 0.1.0. If players are inside and there is no way to reach them, the command is now abandoned instead of carried out.

[0.1.6]

  • Fixed: the portal clearing and its processional path went back to their natural, bumpy shape as soon as you walked away, leaving the gateway, the runes, the road and the torches hanging in the air when you returned. The ground was being shaped by a kind of terrain edit that only exists while the object making it is loaded - so the moment the area streamed out, the edit went with it, while everything standing on it stayed at the height it was built. Avalor now shapes the ground the same way a hoe does, which writes the change into the world itself. It survives leaving, relogging and a server restart.
  • Every clearing and path shaped by 0.1.5 repairs itself. The terrain pass is versioned; this release raises it, so each site re-shapes once - permanently this time - the next time you walk to it. No new world needed.
  • Fixed: a grave from a maze death was not being moved to the overworld graveyard on a dedicated server. Your character's grave is created and owned by your own game, and the request to move it reached the server before the grave itself did, so the server found nothing to move and dropped the request without a word. It now waits for the grave to arrive, and says so in the log if it truly never does. Graves were never at risk of being lost - avalor_tp_grave always finds them - but they were staying in the labyrinth instead of coming home.
  • The maze reset now always records whether it found players inside, which machine decided that, and what it did about it. A reset that skips the evacuation warning drops everyone in the labyrinth into the void, and until now the "nobody is inside" path said nothing at all - so a missed evacuation and an unnecessary one looked exactly the same afterwards. A reset that finds players inside but has no way to warn them is now abandoned rather than carried out.

[0.1.5]

  • Fixed: on a DEDICATED SERVER the portal clearing was never levelled, leaving the gateway and its runes half-buried in a hillside with the road running across it at the wrong height. The site is deliberately seated a few metres below the natural ground so the flattening pass can then cut the hill down to meet it - two halves of one move. The flattening half refused to run unless it was the server, but the site is built by the first player to reach the spawn stones (choosing a spot needs ground probing a headless server cannot do), so on a dedicated world neither machine ever ran it. Only the sink happened. Terrain shaping now runs on whichever machine builds the site, which is how a hoe has always worked.
  • Existing dedicated-server portal sites repair themselves. The terrain pass is versioned, and raising that version makes every clearing and every stretch of processional path re-shape itself once the next time you walk to it. No new world is needed.
  • The site now waits for the ground to actually exist before shaping it, instead of pausing for a fixed number of seconds. Terrain edits are stored per 64-metre zone, so an edit aimed at a zone that has not loaded yet is silently thrown away. That could never happen on a player-hosted world, where the whole area is already in memory - but a player arriving at a fresh server site is often faster than the world around them, and the old fixed pause was tuned for the wrong situation. The road, torches and decor likewise wait for the shaping to finish rather than assuming it has.
  • Fixed: boulders and trees standing in the processional avenue were not being cleared on a dedicated server. The clearing sweep asked to delete them, but deleting something owned by another machine is silently ignored, and on a dedicated server the world's rocks belong to the server while the clearing runs on a player. It now takes ownership first, the same way the rest of the mod already did.

[0.1.4]

  • Fixed: the portal avenue and the gateway were blindingly bright - brightly lit areas washed out to pure white. Three things were stacking. The processional torches on the approach ignored the LightingLevel setting entirely and always burned at full, so on a gloomy setting the labyrinth sat dark while the road to the gate blazed; the gateway's own glow was the strongest light in the mod and reached far enough to land on those torches as well; and the runes drew with a triple-strength glow on top of both. Light adds up, so the three together pushed every colour channel past what the screen can show, and past that point green stops being green and just goes white. The avenue now dims with the setting like everything else - still clearly the lit road to the gate, never brighter than the labyrinth at its brightest - and the gateway glow and the runes are turned down to match. Nothing else about the lighting changed.
  • The server install steps are now written down. The README has a Dedicated Server section covering what the server owns, why only the server's config file matters, the log line that proves the server-side pass is running, how version matching behaves, and why the overworld gate appears when the first player reaches spawn rather than at server start.
  • Corrected: the README still listed DebugLogging as off by default. It has been on by default since 0.1.3.

[0.1.3]

  • Fixed: Avalor reported "Shadows of Midgard is not installed" while Shadows of Midgard 1.x was installed and running. Plugin IDs were being compared case-sensitively, and Shadows of Midgard re-cased its own ID between 1.0.0 and 2.0.0 - so every 1.x player was told the two mods were not talking to each other when the truth was the opposite, and the loud warning that should have fired instead never did. All of Avalor's mod detection now ignores case.
  • Shadows of Midgard 2.0 betas are now recognised as new enough. They report a 1.9.x version number, so any check based on the version alone calls them out of date; Avalor asks whether the exemption hook is actually present instead, which is the thing that matters. The log now names the build it found, and says "2.0 beta" when that is what it is.
  • Debug logging is now ON by default for the open beta. 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 - this way a bug report carries the evidence with it. It only writes to your own log file, it is not server-synced, and it can be turned off in the config at any time.
  • The portal clearing is shaped once instead of on every visit. The terrain flattener and the path levellers were re-running their full pass each time the site streamed back into view - about 115 terrain edits per approach, for a hitch and no change to the ground, since the ground was already flat. Nothing was ever damaged by it; it is simply gone now.

[0.1.2]

  • Fixed: the Avalorian Warden could spawn walled in. It was placed at a flat 3m offset from the exit portal, which is exactly the boundary between two cells - so whenever that side of the exit was solid the boss materialised inside the stone and got shoved out wherever physics felt like, frequently behind its own portal with no way to reach anyone. It now reads the maze layout and takes its post in the corridor you actually walk down to reach the exit, clear of every wall and clear of the prize chest.
  • Shadows of Midgard compatibility is now just the flag. Avalor stamps every mob it owns as Avalorian and Shadows of Midgard skips them - that is the whole integration, the same way Dvergr Allies declares its allies. The 0.0.9 workaround that drove SoM's awareness data by reflection five times a second, and the five Harmony patches that fought it for control of alertness and sensing, are deleted.
  • As a result, maze mobs no longer sense you through solid stone. That was never intended behaviour - it was a side effect of forcing the sensing check true, which skipped the line-of-sight test entirely. Crouching and putting a wall between you and a hunter now works in the labyrinth the way it works everywhere else. The mobs still hunt: they are re-alerted continuously, because vanilla alertness decays and 6m corridors break line of sight constantly.
  • Sub-bosses stalk again. The "walk while hunting by scent, run once alerted" behaviour had been inert since 0.0.9 because the deleted patches forced every mob to read as alerted.
  • Avalor now says in the log whether Shadows of Midgard is installed and whether it is new enough to honour the flag, instead of being silent about it. An out-of-date Shadows of Midgard is called out by name, loudly - on that combination its own rules apply to Avalorian mobs and they will not swing first.

[0.1.1]

  • Fixed: avalor_tp_end dropped you one cell BEYOND the exit and off the edge of the labyrinth into the void. The exit sits on the deepest cell, which is often on the outer rim; the teleport now reads the maze layout and lands you in a corridor cell that actually exists - normally the one the prize chest is in - facing the way out. It also holds the escape gate shut while you arrive, so landing at the exit no longer walks you straight back out of it before you can open the chest.
  • Fixed: the exit portal was built half-initialised. Stripping its colliders left a vanilla EffectArea behind, which threw a NullReferenceException from inside Instantiate every time the way out was created or streamed back in.
  • The labyrinth's fog now survives de-misting mods. It is re-asserted at render time, after every other mod's LateUpdate, and says so in the log if it catches one - so "Mists of Avalor" keeps its mist even alongside a mod whose entire purpose is removing it.
  • Poison plates can no longer kill you outright. Poison is queued as a pool and ticks out over ~20 seconds with no can't-kill guard, so the percentage-of-current-health bite that leaves you standing on a spike plate was quietly lethal on a poison one. It now leaves a sliver, the way the spikes always did.
  • Hardcore live-mob cap lowered from 14 per player to 10. Hardcore's punishment stays in the mobs - more health, more speed, two stars, Ashlands Charred in the roster - rather than in the size of the queue.
  • Fixed: chest loot emptied itself. Materials were added without a drop-prefab reference, so the container saved a list of blanks and loaded nothing - every hoard survived only until that chest streamed out and back in. Affected everything in every chest including the Avalorian Greatsword; the Crypt Key and Recall Rune were never affected.
  • The "you have discovered the Ashlands" card no longer fires when you portal into the labyrinth. The maze floats 500m above Ashlands terrain, which is nobody's business but the heightmap's - and the real biome now stays undiscovered until you actually go there.
  • The exit compass now defaults to the lower-left corner where playtesting left it, instead of through the middle of the view, and can no longer be drawn off the edge of a smaller screen.

[0.1.0]

  • Full dedicated-server support: the mob director, Warden, resets and maze generation now run correctly on headless servers (everything server-side operates on replicated ZDO data instead of local instances and physics).
  • Multiplayer hardening: sub-boss/Revenant/Warden stats, immunities, names and drop tables now replicate to every player, so kills pay out no matter who lands them; the maze health buff no longer compounds or heals mobs when players stream in; trap damage no longer multiplies with nearby players.
  • Guests stepping through a portal before the host no longer forge a duplicate maze - generation is requested from the server.
  • Maze resets with players inside now evacuate everyone home first instead of dropping them into the void.
  • Graves from maze deaths are relocated to the overworld graveyard reliably on every network topology.
  • The exit compass, avalor_tp_end and avalor_tp_grave now ask the server when the target is beyond your local view (fixes the compass going dark deep in 40x40+ labyrinths).
  • The overworld portal now sites itself on fresh dedicated worlds via the first client to visit spawn.
  • Fixed: sub-bosses spawned at ~40% health; Revenants lost their elite health entirely; crypt keys dropped at 2-4x the intended rate; the Warden could be lured away from its post.

[0.0.9]

  • Initial Public Beta release.