ChorusReef-Bifrost_Breakout icon

Bifrost Breakout

Roaming monsters, migrating wildlife, warbands, unexpected encounters, and a world whose ecology changes as you progress.

Last updated 3 hours ago
Total downloads 9
Total rating 0 
Categories Mods Enemies Ashlands Update Bog Witch Update
Dependency string ChorusReef-Bifrost_Breakout-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202
ASharpPen-Spawn_That-1.2.18 icon
ASharpPen-Spawn_That

Advanced tool for customizing mob spawners throughout the world with configuration files.

Preferred version: 1.2.18

README

Bifrost Breakout 0.1.0 — Public Alpha

“The creatures of Valheim no longer stay politely inside their biomes.”

Roaming monsters, migrating wildlife, warbands, unexpected encounters, and a world whose ecology changes as you progress.

Bifrost Breakout adds rare biome-inappropriate creatures without modifying any of Valheim's 85 existing world-spawner entries. Its mixed ecology remains a supplemental Spawn That configuration. The independent BifrostBreakout.dll owns Mountain Dvergr outpost cloning, the one-time warband mechanic, Project Snake Eyes, and a conservative shoreline Bonemaw ecology. This public-alpha identity packages the gameplay implementation previously tested as internal Hellworld 0.4.0; the identity pass itself changes no gameplay balance.

Spawn That is a third-party dependency and spawning framework. Its source and implementation are not part of Bifrost Breakout.

Public-alpha testing status

Runtime-tested in normal play:

  • core cross-biome spawning and gameplay;
  • warbands and special squads that occurred naturally during testing;
  • shoreline Bonemaw spawning and vanilla shoreline combat;
  • the two-star Sea Disturbance Serpent spawning and fighting with vanilla AI.

Implemented and statically/runtime-table validated, but not yet naturally encountered during gameplay testing:

  • the five post-Bonemass Ocean flyer spawners.

The Ocean flyers remain enabled. This is an alpha because broader combinations, long-session density, multiplayer behavior, and progression-edge cases still need more play.

The runtime baseline used to build it is preserved under exports/baseline-0.221.12/.

Design

  • Vanilla biome ecology remains intact.
  • Added intruders use all current land biomes: Meadows, Black Forest, Swamp, Mountain, Plains, Mistlands, Ashlands, and Deep North.
  • Land intruders exclude Ocean. Five independent post-Bonemass flyer entries use Ocean only.
  • Ground intruders may appear from Day 1 and at the world center. Dedicated hostile flyers require the vanilla defeated_bonemass global key.
  • Intruder stars are inverted by primary native-biome progression: Black Forest creatures are always starred, Swamp/Mountain creatures have bounded chances, and Plains/Mistlands/Ashlands creatures are always unstarred.
  • Prefab factions and normal AI are retained.
  • HuntPlayer and SetRelentless are false for every entry.
  • Other progression gates remain empty, and world-age/distance gates remain zero.
  • Greydwarves may appear in pairs; each Bifrost Breakout Lox check now produces one Lox. Other intruder groups remain solitary.
  • Vanilla entries 0-84 are untouched; Bifrost Breakout uses supplemental IDs 9000-9049 without replacing native rows.

Project Snake Eyes

Project Snake Eyes is not a Spawn That entry and does not modify the vanilla Serpent prefab globally. Server-side Bifrost Breakout instantiates the current vanilla Serpent and retains its standard prefab display name, model, animations, water movement, faction, native attacks, drops, and MonsterAI behavior. The project calls the system Snake Eyes, but Bifrost Breakout deliberately assigns no special name to the creature seen by the player. Internal files and compatibility identifiers remain unchanged: WhiteWhaleSystem, Hellworld_WhiteSerpent, the White Whale config section, and defeated_hellworld_white_whale.

The marked instance is always assigned internal Character level 3. Inspection of Valheim 0.221.12 confirms that level 3 activates the enemy HUD's level_3 display, so it is always a visible two-star, regularly named Serpent. The level is written to its ZDO and corrected by the server if it ever drifts. Ordinary Serpent level rolls are untouched.

Every five seconds, a lightweight server-authoritative check updates per-player Sea Disturbance:

  • swimming or treading water: +10 per second;
  • aboard/controlling a ship: +1 per second;
  • wading: +2 per second;
  • moving near sampled shoreline water: +0.08 per second;
  • placing a piece near sampled shoreline water: +10;
  • quiet inland activity: -0.25 per second.

Woodcutting itself is not hooked and adds no build burst. In the v0.3.0 test log, repeated shoreline piece placements had already raised disturbance past 100; chopping wood merely coincided with the next five-second encounter tick. Shoreline construction disturbance remains intentional in v0.3.3. It may prime an encounter, but the encounter now waits until that player is swimming or aboard a boat before spawning.

At the default threshold of 100, sustained swimming/treading takes roughly 10 seconds, wading roughly 50 seconds, boat travel roughly 100 seconds, and shoreline work is intentionally slower. Character.IsSwimming() depends on Valheim's swim state rather than horizontal velocity, so stationary treading counts. Briefly touching bottom, stepping ashore, or boarding/leaving a vessel does not clear the stored value. Genuinely quiet/inland time subtracts 0.25 per second. Death/disconnection, a world change, or a successful encounter spawn clears the relevant transient state; a successful spawn resets only its selected player.

All active rates, threshold, tick, water depth, spawn distances, retry delay, and encounter lifetime are generated in BepInEx/config/Elwood.Hellworld.cfg and may be tuned for testing. The retired ReturnCooldownSeconds, DeathCooldownSeconds, InlandEscapeDistance, and RetreatDurationSeconds entries may remain in an older generated file but are no longer bound or used.

Once an eligible player is actively swimming or aboard a boat, the server performs at most 24 water samples. The v0.3.8 close-range test defaults are 10-15 metres from the player and at least 1.5 metres deep. A candidate is still rejected unless its actual spawn point is below the water surface and unblocked. It uses the same underwater ground offset as the normal Serpent world spawner. Failure waits 30 seconds before another bounded attempt.

With WhiteWhaleDebugLogging=true, concise attempt diagnostics distinguish a threshold trigger, failed-water retry delay, an existing marked encounter, water-candidate success or failure, and final spawn success. The success line includes straight-line and horizontal distance from the selected player. Repeated block messages are limited to once per 30 seconds.

Bifrost Breakout performs no combat or targeting operations on the spawned Serpent. It does not call SetHuntPlayer, Alert, SetFollowTarget, SetTarget, sensing, target-field reflection, or patrol methods. It also uses vanilla's identity spawn rotation rather than pointing the creature toward the player. The unmodified MonsterAI must acquire something it can naturally sense and then select, range, face, and execute the prefab's normal attack.

This deliberately gives up guaranteed offshore stalking. A player who reaches land or breaks sight may be forgotten; the Serpent remains constrained by m_avoidLand and may instead attack a naturally selected reachable boat/static target. After the configured five-minute lifetime, Bifrost Breakout directly destroys the marked loaded creature or unloaded ZDO without changing its AI. Duplicate markers are still removed. Any pre-v0.3.3 marked encounter is retired once on upgrade because older builds may have persisted HuntPlayer=true in its ZDO.

There is no return or post-kill cooldown. A successful spawn resets the selected player's disturbance to zero. Periodic swimming/wading/ship sampling pauses while that single encounter remains active, although explicit shoreline build events can still add their normal burst. Once it dies, expires, is cleaned up, or its ZDO disappears, normal periodic accumulation resumes immediately. The old compatibility key defeated_hellworld_white_whale is removed once when a world loads and is never written. A per-ZDO death marker only stops a defeated instance from being mistaken for an active encounter; it no longer starts any timer.

Deliberate dock/structure targeting is absent. The encounter-start log reports the prefab's native HuntPlayer, alert, avoid-land, and player-object settings without changing them.

Shoreline Bonemaw ecology

Bifrost Breakout adds a separate, server-authoritative coastal ecology check. It does not use Sea Disturbance and does not alter Project Snake Eyes. Once per 60 seconds, the server samples water 15-30 metres from active living players. A candidate must be unblocked, at least 5 metres deep, below the water surface, and within 30 metres of sampled land or very shallow water. An eligible check has a 20% chance to instantiate one stock BonemawSerpent at ground + 0.5m, the same offset used by its native world-spawner.

Each shoreline Bonemaw remains internal Character level 1 (unstarred). Its stock Demon faction, HuntPlayer=false, bite, spit, taunt, sensing, swimming, and MonsterAI are left untouched. Bifrost Breakout neither chooses nor forces a target. Ordinary vanilla Bonemaws have no Bifrost Breakout ownership marker and do not count against this system's cap. Only one marked Bonemaw may exist within 150 metres of the selected player or actual candidate point.

A marked Bonemaw is removed after 600 seconds. It is also removed early after no living player has remained within 200 metres for a continuous 60 seconds. The absence timer and absolute expiry are stored in the creature ZDO, so cleanup survives unloading and reload. Concise logs report spawns, cap blocks, expiry or distance cleanup, and save/reload recovery. All rates, ranges, and limits are available under the generated Bifrost Shoreline Bonemaws config section.

Both Bifrost Breakout aquatic systems record their created ZDO IDs immediately. On a world load, prefab-specific ZDOMan enumeration rebuilds each tracker only from ZDOs carrying that system's ownership marker. Tracked IDs are then resolved via ZDOMan.GetZDO, while loaded instances are resolved through ZNetScene. This replaces the player-only ZNet.GetAllCharacterZDOS() path and makes duplicate prevention and cleanup work for loaded and unloaded mod-owned monsters without capturing ordinary vanilla instances.

Mountain Dvergr strongholds

Bifrost Breakout clones the three intact current-game locations Mistlands_GuardTower1_new, Mistlands_GuardTower2_new, and Mistlands_GuardTower3_new during ZoneSystem.SetupLocations. The clones use the original SoftReference prefabs, so their vanilla buildings, loot, Dvergr spawners, and other contents are not rebuilt or replaced. Only placement rules change:

  • biome: Mountain, all biome-area bands;
  • requested quantity: 120 per tower variant;
  • shared group: Hellworld_Mountain_DvergrOutposts;
  • shared minimum separation: 300 metres;
  • prioritized placement, non-unique, no center-distance or forest gate;
  • altitude: 20-1000 metres above the world water reference;
  • original footprint, terrain-delta, vegetation, rotation, and clearing rules remain attached to each source tower.

Quantity is deliberately an upper request, not a guaranteed result. The common 300m group separation and each tower's inherited terrain footprint are expected to be the practical limits. Defaults are configurable under Mountain Strongholds in Elwood.Hellworld.cfg.

Valheim persists a completed location table in the world save. Bifrost Breakout does not force-reset that table: a newly created world is the clean test path. An existing world whose location table is already generated will not gain these outposts merely by exploring new terrain unless a separate world-upgrade tool regenerates locations. No Jotunn dependency was added; cloning an unchanged vanilla SoftReference location is supported directly by the current ZoneSystem API.

Added spawners

Intervals are seconds. Chance is the independent chance on each interval. A successful chance roll can still fail because no valid terrain point is found or because the local prefab cap has already been reached.

Creature Prefab Tier Chance Interval Max nearby Group
Greydwarf Greydwarf Common 18% 180 2 1-2
Skeleton Skeleton Common 15% 240 2 1
Draugr Draugr Common 12% 300 1 1
Blob Blob Common 10% 360 1 1
Surtling Surtling Common 0.8% 420 1 1
Wolf Wolf Common 10% 300 1 1
Charred Twitcher Charred_Twitcher Common 0.6% 480 1 1
Bear Bjorn Dangerous 5% 600 1 1
Troll Troll Dangerous 4% 720 1 1
Abomination Abomination Dangerous 3% 900 1 1
Fuling Goblin Dangerous 5% 600 1 1
Fuling Berserker warband GoblinBrute Apex squad 2% 1200 1 1
Lox Lox Dangerous 3% 900 3 1
Deathsquito Deathsquito Dangerous 4% 600 1 1
Wraith Wraith Dangerous 4% 720 1 1
Stone Golem StoneGolem Dangerous 2% 900 1 1
Seeker Seeker Dangerous 4% 720 1 1
Asksvin Asksvin Dangerous 0.3% 900 1 1
Charred Warrior Charred_Melee Dangerous 0.3% 900 1 1
Vile Unbjorn Apex 2% 1200 1 1
Seeker Soldier SeekerBrute Apex 2% 1200 1 1
Gjall Gjall Apex 2% 1200 1 1
Morgen Morgen_NonSleeping Apex 0.2% 1200 1 1
Ghost archer squad Ghost Apex squad 2% 1200 1 1
Dvergr patrol leader Dverger Stronghold patrol 30% 300 2 1
Wolf Alpha Wolf Mountain squad 12% 600 6 1
Fenring leader Fenring Mountain elite squad 8% 900 2 1

Skeletons, Wraiths, and Viles retain night-only spawning. The other Bifrost Breakout entries can spawn during day or night.

The squad/warband rows use one-creature Spawn That groups; the DLL creates their followers. The Dvergr patrol requires defeated_bonemass and can appear in all land biomes. Wolf Alpha and Fenring hunting-party leaders are Mountain-only. Ghost and Fuling Berserker are rare all-land outdoor leaders. Their exact compositions are documented under Warbands.

Bifrost Breakout's Deathsquito, Wraith, and Gjall entries additionally require defeated_bonemass on land. The separate Ocean flyer layer uses the same key for all five entries while leaving these land rows and every native row intact.

Post-Bonemass Ocean flyers

Creature Runtime prefab Chance Interval Cap Time
Deathsquito Deathsquito 4% 600s 1 day/night
Wraith Wraith 4% 720s 1 night only
Drake Hatchling 4% 720s 1 day/night
Gjall Gjall 2% 1200s 1 day/night
Volture Volture 0.4% 900s 1 day/night

These are independent one-creature, level-1 spawners in Ocean, all requiring defeated_bonemass. HuntPlayer=false, the faction override is blank, and SetRelentless=false. They use a 50m terrain offset over Ocean ground 5-40m below sea level, placing them approximately 10-45m above the water instead of on the seabed. The Volture chance retains Bifrost Breakout's 10% Ashlands-intruder frequency rule. No squad, coordination, or DLL combat behavior is involved.

Bifrost Breakout-added creatures that also belong to the current native Ashlands roster use exactly 10% of their previous independent chance: Surtling 8% to 0.8%, Charred Twitcher 6% to 0.6%, Asksvin 3% to 0.3%, Charred Warrior 3% to 0.3%, and Morgen 2% to 0.2%. Intervals, caps, groups, stats, and native Ashlands spawners are unchanged.

Balance model

Before terrain failures and local caps, the independent chance rolls average:

  • Common: about 8.48 successful checks per hour, or one every 7.1 minutes.
  • Dangerous: about 1.34 per hour before Bonemass and 1.68 afterward, or one every 44.6/35.6 minutes respectively.
  • Apex: about 0.216 per hour before Bonemass and 0.276 afterward, or one every 4.6/3.6 hours respectively.

The new conditional squad-leader checks add raw averages of 3.6 Dvergr patrol leaders per hour after Bonemass across land, 0.72 Wolf Alphas per hour while in Mountains, and 0.32 Fenring hunting parties per hour while in Mountains, before terrain failures, prefab caps, and spawn-distance checks.

The rare Ghost and Fuling Berserker leader checks each add 0.06 raw successful checks per hour across land before terrain failures and caps.

The calculation treats day and night as equal-duration windows for night-only entries. Actual populations should be lower because Spawn That must find valid terrain and respects each prefab's local cap. The theoretical maximum is higher than the intended routine population, so the first playtest should specifically watch for accumulation after remaining near one base for several in-game days.

Install

Spawn That 1.2.18 and BepInEx must already be installed. Copy spawn_that.world_spawners.hellworld.cfg into the active profile's BepInEx/config/ directory. Copy BifrostBreakout.dll into its own directory under BepInEx/plugins/, then restart Valheim and enter a world.

For the current Zelwood profile the destination is:

C:\Users\eldth\AppData\Roaming\r2modmanPlus-local\Valheim\profiles\Zelwood\BepInEx\config\spawn_that.world_spawners.hellworld.cfg

The DLL destination used by the current workflow is:

C:\Users\eldth\AppData\Roaming\r2modmanPlus-local\Valheim\profiles\Zelwood\BepInEx\plugins\Bifrost-Breakout\BifrostBreakout.dll

Disable

Quit Valheim and rename the file to:

spawn_that.world_spawners.hellworld.cfg.disabled

Disable the DLL by renaming BifrostBreakout.dll to BifrostBreakout.dll.disabled, then restart the game. Vanilla spawners were never overwritten. Creatures that already exist may remain until they die or naturally despawn, but no new Bifrost Breakout intruders, entourages, or Project Snake Eyes encounters will be created.

Standalone development workflow

The editable source project lives at:

C:\Users\eldth\Documents\ValheimMods\Hellworld

Run build-local.ps1 to compile into dist/build/BifrostBreakout.dll. Run package.ps1 to create the clean Thunderstore-rooted staging directory under dist/public-alpha/. A final upload ZIP is created only when a valid 256x256 project-root icon.png exists. Run deploy-zelwood.ps1 -ProfilePath <profile> only while Valheim is closed; it backs up the exact installed DLL, metadata, legacy plugin folder, and Spawn That config before copying. It deliberately retains the generated Elwood.Hellworld.cfg tuning file and the legacy Spawn That config filename for compatibility. validate.ps1 -ProfilePath <profile> -PackagePath <staging> verifies source/build/install/package hashes and core invariants.

Machine-specific paths are held in ignored local.paths.ps1; use local.paths.example.ps1 on another machine. Build/package output and deployment backups are ignored by local Git. The small tools/roslyn/ bundle contains the compiler runtime and its third-party notices, so builds do not depend on the retired Codex experiment or an installed Visual Studio SDK.

Diagnostics

The Zelwood spawn_that.cfg currently enables:

  • WriteSpawnTablesToFileBeforeChanges
  • WriteSpawnTablesToFileAfterChanges
  • WriteConfigsToFile

Spawn That writes the results into BepInEx/Debug/ whenever a world is entered. The last gameplay-verified v0.1.2 export contained 107 entries: 85 vanilla plus 22 Hellworld entries. Bifrost Breakout 0.1.0 contains the unchanged 32 supplemental entries from internal 0.4.0, so the next expected post-change total is 117: 85 vanilla plus 32 Bifrost Breakout entries. That fresh runtime export still requires a Valheim launch.

Inverted star difficulty

Ordinary supplemental Bifrost Breakout intruders use these rules. Vanilla/native spawners are not overridden. Fixed squads are explicit exceptions: Dvergr and Stone Golem leaders are level 1, Wolf Alpha and Fenring are level 2, Ghost is level 3, and the new Plains-native GoblinBrute source is level 1.

Primary native biome LevelMin LevelMax LevelUpChance Result
Meadows 3 3 0 Always 2-star
Black Forest 2 3 50 Always 1-star; 50% become 2-star
Swamp 1 2 50 50% unstarred; 50% become 1-star
Mountain 1 2 25 75% unstarred; 25% become 1-star
Plains 1 1 0 Always unstarred
Mistlands 1 1 0 Always unstarred
Ashlands 1 1 0 Always unstarred

The ordinary roster contains no Meadows-native intruder. Applied primary-biome classifications are:

  • Black Forest: Greydwarf, Skeleton, Bjorn, Troll
  • Swamp: Draugr, Blob, Surtling, Abomination, Wraith
  • Mountain: Wolf; StoneGolem is normalized to level 1 for its fixed squad
  • Plains: Goblin, GoblinBrute, Lox, Deathsquito, Unbjorn
  • Mistlands: Seeker, SeekerBrute, Gjall
  • Ashlands: Charred_Twitcher, Asksvin, Charred_Melee, Morgen_NonSleeping

Post-boss foreign-biome vanilla entries do not redefine a creature's primary biome. Skeleton is treated as Black Forest progression despite later world-spawner coverage; Surtling is treated as Swamp because that is its first normal progression encounter, despite also spawning natively in Ashlands. LevelUpMinCenterDistance remains zero.

Lox encounters

Bifrost Breakout Lox use GroupSizeMin = 1 and GroupSizeMax = 1, so each successful check produces exactly one unstarred Lox. MaxSpawned = 3 remains unchanged; up to three Lox may accumulate through separate successful checks. Chance, interval, biome scope, level rules, group radius, AI, faction, and every other Lox field are unchanged. Lox are not part of the custom warband mapping.

Warbands

Warbands are owned by BifrostBreakout.dll, not Spawn That. The owning peer processes each exact leader prefab once and writes the persistent ZDO marker Elwood.Hellworld.WarbandSpawned before creating followers.

Leader prefab Follower prefab Normal One-star Two-star
Troll Greydwarf 3 4 5
Abomination Draugr 3 4 5
Ghost Skeleton with skeleton_bow n/a n/a 3 fixed
StoneGolem Greydwarf_Shaman + Greydwarf_Elite 2 Shamans + 1 Brute fixed n/a n/a
GoblinBrute Goblin 3 4 5
SeekerBrute Seeker 3 4 5
Morgen Charred_Twitcher 3 4 5
Morgen_NonSleeping Charred_Twitcher 3 4 5

Stone Golem is intentionally removed from the generic star-count rule. A newly processed Golem is fixed to internal level 1 (unstarred) and receives two level-1 Greydwarf_Shaman plus one level-1 Greydwarf_Elite (the Greydwarf Brute), for exactly four creatures requested in the squad. The former Bat and older Wolf entourages are gone. The Shamans are untouched vanilla prefabs; their normal faction AI decides when to heal. The other rows retain the configurable generic base count plus one follower per visible leader star.

A newly processed Ghost is fixed to internal level 3 (two stars) and receives three level-3/two-star Skeleton followers, for four two-star creatures total. Current Valheim assets do not contain a Skeleton_Archer character prefab: the normal archer is the Skeleton prefab equipped with skeleton_bow. Bifrost Breakout stores that weapon-loadout marker and restricts those three followers to the verified vanilla bow before Humanoid.Start; native inventory setup, faction, targeting, movement, and attacks remain unchanged. No generic star bonus is consulted.

Complete warband and squad spawn audit

All land means Meadows, Black Forest, Swamp, Mountain, Plains, Mistlands, Ashlands, and Deep North; Ocean is excluded. Chance is an independent percentage per interval, and cap is the nearby leader-prefab cap from Spawn That.

Encounter / exact prefabs Outdoor leader source and scope Chance / interval / cap Leader level Followers or group Ordinary gameplay?
Troll: Troll + Greydwarf 9011, all land 4% / 720s / 1 level 2; 50% level 3 4 unstarred Greydwarves at ★; 5 at ★★ Yes
Abomination: Abomination + Draugr 9012, all land 3% / 900s / 1 level 1; 50% level 2 3 unstarred Draugr; 4 if leader becomes ★ Yes
Fuling Berserker: GoblinBrute + Goblin 9044, all land 2% / 1200s / 1 level 1 3 unstarred Fulings Yes; added by v0.3.6
Seeker Soldier: SeekerBrute + Seeker 9031, all land 2% / 1200s / 1 level 1 3 unstarred Seekers Yes
Morgen: Morgen_NonSleeping + Charred_Twitcher 9034, all land 0.2% / 1200s / 1 level 1 3 unstarred Twitchers Yes
Stone Golem: StoneGolem, Greydwarf_Shaman, Greydwarf_Elite 9017, all land 2% / 900s / 1 fixed level 1 2 unstarred Shamans + 1 unstarred Brute Yes
Wolf Alpha: Wolf + Wolf 9041, Mountain 12% / 600s / 6 fixed level 2 (★) 3 unstarred Wolves Yes
Fenring hunt: Fenring, Fenring_Cultist, Ulv 9042, Mountain 8% / 900s / 2 Fenring level 2 (★) 1 level-2/★ Cultist + 3 unstarred Ulvs Yes
Dvergr patrol: Dverger, DvergerMageFire, DvergerMageIce, DvergerMageSupport 9040, all land; defeated_bonemass 30% / 300s / 2 level 1 1 unstarred mage of each role Yes after Bonemass
Ghost archers: Ghost, Skeleton, skeleton_bow 9043, all land 2% / 1200s / 1 fixed level 3 (★★) 3 level-3/★★ bow Skeletons Yes; added by v0.3.6
Lox encounter: Lox 9014, all land 3% / 900s / 3 level 1 Spawn That group fixed at 1 Lox; no DLL followers Yes

The audit used the current 0.221.12 SoftReference manifest, the last loaded Spawn That export, the source supplemental config, and the exact DLL definitions. The last loaded export confirms every pre-v0.3.6 row. IDs 9043 and 9044, plus the Stone Golem level normalization, require the next Valheim world load to appear in a newly generated runtime export.

Three exact tagged squads are also owned by the same one-time system:

Tagged leader Fixed leader level Fixed followers Total
Dverger / HellWorld_Mountain_DvergrPatrol 1 one level-1 DvergerMageFire, one DvergerMageIce, one DvergerMageSupport 4
Wolf / HellWorld_Mountain_WolfAlpha 2 (one-star) three level-1 Wolf 4
Fenring / HellWorld_Mountain_FenringHunt 2 (one-star) one level-2 Fenring_Cultist, three level-1 Ulv 5

Spawn That's spawn_template_id ZDO value selects these leaders. Ordinary Wolves, Fenrings, Dvergr outpost defenders, and the existing universal Wolf intruder do not qualify. Every created follower receives a persistent follower marker before its first Start, which prevents same-prefab Wolf recursion. The generic star bonus is never consulted for fixed squads.

Followers are not tethered, replaced, or reinforced. All use their unchanged vanilla factions and AI.

An already-existing qualifying leader has no Bifrost Breakout marker from older saves, so the first time that individual is loaded with the plugin it will receive one warband. This is lifecycle-driven; Bifrost Breakout does not scan the world.

Technical warnings and exclusions

  • Bosses are not included. In Valheim 0.221.12, Character.OnDeath reads the boss prefab's m_defeatSetGlobalKey and passes it to ZoneSystem.SetGlobalKey. Spawn That has no config field that clears this prefab behavior. A wandering boss could therefore advance progression and change raids merely by dying. Avoiding that would require a code patch, which is outside this config-only experiment.
  • Additional ordinary Spawn That Serpent/Bonemaw spawners are not included. Project Snake Eyes and the code-owned shoreline Bonemaw ecology leave vanilla Ocean Serpents and native Ashlands Bonemaws unchanged.
  • The current asset manifest exposes one ordinary Serpent attack prefab, Assets/Characters/Serpent/misc/Serpent_attack.prefab; do not expect a separate Bonemaw-style spit/projectile move from this creature.
  • Leeches, fish, and all other water creatures are excluded.
  • Fenring_Cultist is still not an independent Bifrost Breakout world-spawner entry; it appears only as the single fixed one-star follower in a tagged Fenring hunting party. The current vanilla runtime has no ordinary Cultist world spawner to override.
  • Better Continents may alter geography, but Spawn That evaluates the biome at the selected runtime spawn point. This config does not modify geography.
  • Seasonality can suppress creature availability if its spawn tweaks are later changed. The inspected Zelwood Seasonality settings currently allow the selected creatures in every season.
  • Fallen Valkyrie remains a valid vanilla Ashlands prefab, but its Bifrost Breakout cross-biome entry is removed. Already-existing individuals are not scanned or deleted.
  • Supplemental Ocean Hatchling and Volture entries are isolated IDs 9047 and 9049. Their native Mountain/Ashlands spawners remain untouched.
  • Mountain outposts require a fresh/generated location table. Bifrost Breakout does not silently invalidate and rewrite an existing world's location layout.
  • The reused tower assets are verified current-game SoftReference names. If a later Valheim update renames one, Bifrost Breakout logs a warning and safely skips only that variant.
  • The current SoftReference manifest verifies Ghost, Skeleton, and skeleton_bow; it contains no dedicated Skeleton_Archer character prefab. The Ghost squad therefore uses the ordinary Skeleton with its native bow loadout instead of inventing a creature or attack.

First playtest

Travel through Meadows and Black Forest for 30-60 minutes, including one night. Record:

  • approximate time to the first foreign spawn;
  • total foreign creatures visible near one location;
  • whether any prefab repeatedly fails to navigate on ordinary terrain;
  • whether native creatures still clearly outnumber routine intruders;
  • any frame-time spike coinciding with world-spawner checks or a particular creature appearing.

In a world without defeated_bonemass, verify that no Bifrost Breakout Ocean flyer rows load as eligible. Then repeat in a Bonemass-defeated test world and confirm Deathsquito, nighttime Wraith, Hatchling, Gjall, and Volture are all eligible over Ocean without changing their existing land/native rows.

For warbands, spawn one normal Troll and verify 3 Greydwarves appear. Kill one, leave and return, then save/reload; no follower should be replaced and the same Troll should never receive a second entourage. Repeat with GoblinBrute or SeekerBrute after the basic test.

For the Mountain pass, use a new world. Confirm startup logs register all three guard-tower variants, then reveal or travel through a large Mountain and count outposts/separation. Before Bonemass, confirm no tagged Dvergr patrol leaders appear away from outposts; after setting defeated_bonemass, confirm a patrol is exactly one Dvergr plus Fire/Ice/Support mages. Confirm a tagged Wolf Alpha is one-star with exactly three unstarred Wolves, a tagged Fenring is one-star with one one-star Fenring_Cultist and three unstarred Ulv. Confirm a newly processed Stone Golem becomes unstarred and receives exactly two unstarred Greydwarf Shamans plus one unstarred Greydwarf Brute, with no Bats. Damage the Golem or another allied target and observe whether the Shamans use their normal healing behavior without Bifrost Breakout intervention.

For the Ghost squad, create or encounter a new unprocessed Ghost on ordinary outdoor terrain. Confirm it is two-star and receives exactly three two-star Skeletons carrying bows. Confirm all three fire normal arrows and that saving and reloading does not change their loadout or create another entourage.

Tune interval, chance, and caps only after reviewing the post-change export and one play session.

For the shortest Project Snake Eyes test, retain the default threshold 100 and enter water at least 1.5m deep. Tread water without horizontal input for about 10 seconds. Confirm exactly one regularly named two-star Serpent appears about 10-15m away and the log reports vanillaAIUntouched=true. Kill it, then tread water for another approximately 10 seconds; a later encounter should be eligible without a death/return cooldown. Setting EncounterDurationSeconds=30 provides the same short recurrence check through hard expiry instead of death.

For a quick Ocean-flyer eligibility test, temporarily change IDs 9045-9049 to SpawnChance=100 and SpawnInterval=30, enter an Ocean biome after Bonemass, and test both day and night (Wraith is night-only). Confirm all spawn singly and above the surface. Remove defeated_bonemass and repeat long enough for at least one check: none of those five supplemental rows should spawn. Restore the five documented rates after testing.