DangerousRoads
[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. Toast + compass blips. Co-op is not yet verified.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 from Thunderstore 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).
Dev verbs
Every verb below is read from BepInEx/config/DangerousRoads_cmd.txt — write the verb on a line of
its own and it runs on the next poll; results go to BepInEx/LogOutput.log. Meant for debugging,
not for play.
| Verb | What it does |
|---|---|
roadsstatus |
director state: armed/disarmed, next-wave timer, last wave, what's blocking |
roadsroster |
this region's species roster, with anything BLOCKED marked |
roadsfactions |
the faction each rostered species actually reports |
roadsledger |
the anchor ledger — where waves have been placed and from what source |
roadsanchors |
candidate anchors near you |
roadssquadpoints |
vanilla AISquadSpawnPoints in range |
roadsprobe / roadsmark |
probe a placement position / mark one for inspection |
roadsui / roadsblips |
toast and compass-blip state |
roadsnow |
force a wave immediately |
roadsarm / roadsdisarm |
arm the director so the next wave is due now / stop the timer |
roadswarm |
pre-warm species templates |
roadssweep |
despawn everything this mod has out |
selftest |
run the offline self-test ([SELFTEST] PASS/FAIL … DONE) |
Known gap: roadsstatus throws a NullReferenceException if called on a fresh boot before the
first wave has been computed. It self-heals once any wave fires.
⚠️ Known issues
- A Wolfgang can turn up on the wrong side. The Wolfgang family's allegiance is driven by your
plot and relationship progression in the base game, not by a fixed table value, so an ambush wave
that draws one can spawn it in an allegiance the mod didn't intend — including friendly. The fix
is to drop the whole family from the encounter roster (not to hard-code a faction for them, which
would just be wrong at a different point in the story); that isn't in 0.1.0. If you hit it and
want it gone now, add the names to
[Species] ExtraBlocklistin the config and relaunch —Wolfgang Captainis already blocked by default,Wolfgang VeteranandWolfgang Mercenaryare not. - A few other species report an unstable faction. The Mantis family (Rock/Mana Mantis, Mantis Shrimp), Veaber and Caldera's Boreo have each been seen reporting different factions on different spawns. Under investigation; the practical symptom is the same as above — an encounter that doesn't fight you.
- Multiplayer is untested. Only the host would ever run encounters, which is the right shape, but no real two-machine session has been played. Treat co-op as unsupported for now.
- Encounter frequency varies by region. Some parts of the map give the mod more good places to put things than others, so the wilds are livelier in some regions than in others.
- Three of the six regions have had a deep test pass; the rest have had less.
Compatibility
Outward must be on its Mono Steam beta branch, not the default IL2CPP build (Properties → Betas →
select mono). If the game runs but no mods load and there's no crash log, this is almost always why.
Works alongside Beastwhispering and the rest of this mod family.
License
Apache License 2.0 — see LICENSE.
