DangerousRoads

v0.1.13·Updated 2026-09-06

[ALPHA] Wandering encounters for Outward: out in an overworld region, 1-3 hostiles native to that region turn up out of sight, 40-200m away, and walk in. Vanilla loot, never in a town or dungeon. Toas

About this mod Author’s original text

DangerousRoads — Aurai's wilds are not empty anymore

⚠️ Alpha, and single-player only for now. Multiplayer is not tested — see Known issues.

Back up saves you care about.

Aurai's overworld is hand-placed and finite. Once you've cleared the road between Cierzo and the

Vigil Pillar it stays cleared, and the walk back is a walk through an empty map.

DangerousRoads repopulates it. While you're travelling out in the wilds, hostile creatures can turn

up anywhere — out of sight, off the road, behind you. Every stretch of country is country you have

to watch again.

They're ordinary wild creatures native to the region you're in: Enmerkar sends beast golems and bandits,

Abrassar sends bugs and bandits. They wander, they notice you, they fight, and they drop their

normal loot.

What it won't do

  • Never in towns or villages. Settlements stay safe.
  • Never in dungeons, caves or interiors. Only out in the open.
  • Never touches your save. These creatures are temporary — they're gone when you leave the area,

and nothing of them is written to your save file.

  • No bosses, no story characters, no custom content. Everything it puts in the world is vanilla.

Installing

Install and the dependencies come with it. By hand: drop ForgeKit,

NetKit, DonorKit, CompanionKit, SpawnKit/ and DangerousRoads/ side by side into

BepInEx/plugins. All five are hard dependencies — BepInEx refuses to load a plugin whose

hard dependency is missing, so leaving one out means DangerousRoads silently never starts.

(DangerousRoads names ForgeKit, SpawnKit and CompanionKit directly; NetKit and DonorKit come in

underneath those two.)

Then just play. Nothing to turn on, no key to press — walk out of town and give it a minute.

Settings

BepInEx/config/cobalt.dangerousroads.cfg, created on first launch. The handful worth touching:

[General]

Enabled = true ## false = mod off

[Schedule]

MinIntervalSeconds = 20 ## shortest gap between encounters

MaxIntervalSeconds = 60 ## longest gap — raise both for a quieter world

[Wave]

MinCount = 1 ## how many creatures show up at once

MaxCount = 3

SkipWhileInCombat = true ## hold off while you're already fighting

[Placement]

MinDistanceMeters = 40 ## how close they can appear

MaxDistanceMeters = 200 ## how far away

[Notify]

ShowToast = true ## the on-screen warning

[Compass]

ShowBlips = true ## the compass markers

To turn it off: set Enabled = false and relaunch. To uninstall, delete the DangerousRoads/

folder from BepInEx/plugins/ — nothing of it lives in your save.

⚠ An existing cfg always wins over a new default. BepInEx writes the file once and never

migrates a changed default into it, so a value you (or an older version) put there keeps applying

silently. Each entry carries its shipped default in a # Default value: comment right above it —

if behaviour doesn't match this README, compare those first. Delete the file to regenerate it from

scratch (which also discards every other tweak).

Co-op: the room-wide warm predicate

SpeciesRoster used to ask Spawner.CanMintNow(key) — "is a body resident on this box". It now asks

CanMintNow(key) && Spawner.CanMintRoomWide(key), because a species the host holds and a guest

does not costs that guest a 3.6–14.7 s donor load mid-fight (the disconnect bug). CanMintRoomWide

subsumes the local half, but both are named at the call site on purpose: this is the predicate the

whole mod rests on and "local and room" is what it must be read as.

  • SpawnableNow() re-asks both halves every call (SpawnKit's cache is a 12-entry LRU, and the peer

list moves too) and records LastShrink: species dropped purely because a peer is cold. A

locally-cold species comes back ColdLocally and is never reported as a peer's fault.

  • RosterOrder.ForRoomWarm / ForPrewarm (pure, in DangerousRoads.Core) rank the region by how

much spawnable roster the work buys: tier 0 = the party lacks it but the host holds it (one

sk.want, free), tier 1 = nobody holds it (real local harvest), tier 2 = already r

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack_OutwardCeruleanCutlass-ForgeKitCeruleanCutlass-SpawnKitCeruleanCutlass-CompanionKitCeruleanCutlass-StoryKitCeruleanCutlass-NetKitCeruleanCutlass-DonorKitCeruleanCutlass-AggroKit

File & checksum

Filename
DangerousRoads-0.1.13.zip
File size
351.0 KiB