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.
TruePassiveMobs
Lox, Asksvin, Boar, Neck & more stay peaceful until attacked. Other enemies flee from players whose gear outclasses them.
| Last updated | 3 weeks ago |
| Total downloads | 507 |
| Total rating | 1 |
| Categories | Mods Deep North Update |
| Dependency string | lhoffl-TruePassiveMobs-1.2.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 with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2333ValheimModding-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.30.2README
PassiveMobs
A BepInEx mod for Valheim 1.0 with three independent features (all on by default):
-
Passive creatures: By default Lox, Asksvin, Moose, Boar, Hen, Neck, and Bjorn leave players alone until a player damages them. After that they fight back as normal for
ProvokedDurationseconds after the last hit, then calm down again.SkittishCreaturesrun away from a player who stays withinSkittishRangeforSkittishTimeseconds.TerritorialCreaturesattack a player who stays withinTerritorialRangeforTerritorialTimeseconds, then run away forTerritorialRetreatTimeseconds.
-
Enemies fear strong players: non-passive enemies run away from players whose gear outclasses it, instead of attacking. An enemy you attack stops running and fights back until
FightBackDurationseconds after your last hit. Raid creatures never run away. -
Neutral creatures: the Dvergr and other creatures that are friendly until angered only turn hostile after
HitsToAnger(default 2) hits from a player withinAngerWindowseconds, instead of on the first stray hit. Once angry, they make peace againCalmDownTimeseconds (default 5 minutes) after the fighting stops.
Requires Jötunn.
How "outclassed" is decided
The mod uses two checks, each can be turned on or off:
| Check | Passes when |
|---|---|
UseEnemyDamageCheck |
The enemy's strongest attack, after your armor and resistances, deals at most MaxEnemyHitPercent (default 10%) of your max health. |
UsePlayerDamageCheck |
Your equipped weapon kills the enemy in at most MaxHitsToKill (default 3) average hits. This includes your skill, active buffs and the enemy's resistances. |
The math uses the game's own formulas, including star level, world difficulty settings, player-count scaling and world level. These are rough outcomes with the defaults, using 3★ gear and typical food:
| Your gear | Runs away | Still fights |
|---|---|---|
| Iron | Greydwarves, greydwarf brutes, skeletons | Trolls, draugr, wolves |
| Padded + Blackmetal | Everything above, plus draugr and wolves | Fenrings, goblins, trolls |
| Carapace + Mistwalker | Everything above, plus fenrings and goblins | Goblin brutes, seeker soldiers |
Config
The config file is BepInEx/config/com.lhoffl.TruePassiveMobs.cfg. It reloads automatically when you save
it, so you can tune it while the game runs.
Multiplayer
Required on the server and every client. Settings are synced from the server to the clients. Config changes are synced live.
Building
dotnet build -c Release
The game path comes from the Steam registry keys. The build copies TruePassiveMobs.dll to
BepInEx/plugins/TruePassiveMobs/; pass -p:DeployToGame=false to skip that step.
To override the paths, create a gitignored Environment.props next to the csproj. With a mod manager, point
BepInExPath at the profile's BepInEx folder and DeployDir at the mod's folder in it:
<Project>
<PropertyGroup>
<BepInExPath>$(APPDATA)\r2modmanPlus-local\Valheim\profiles\MyProfile\BepInEx</BepInExPath>
<DeployDir>$(BepInExPath)\plugins\lhoffl-TruePassiveMobs</DeployDir>
</PropertyGroup>
</Project>