Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Bifrost Breakout
Roaming monsters, migrating wildlife, warbands, unexpected encounters, and a world whose ecology changes as you progress.
By ChorusReef
| 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
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202ASharpPen-Spawn_That
Advanced tool for customizing mob spawners throughout the world with configuration files.
Preferred version: 1.2.18README
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_bonemassglobal 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.
HuntPlayerandSetRelentlessare 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:
WriteSpawnTablesToFileBeforeChangesWriteSpawnTablesToFileAfterChangesWriteConfigsToFile
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;StoneGolemis 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.OnDeathreads the boss prefab'sm_defeatSetGlobalKeyand passes it toZoneSystem.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_Cultistis 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
HatchlingandVoltureentries 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, andskeleton_bow; it contains no dedicatedSkeleton_Archercharacter 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.