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.
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 |
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.
Required on the server and every client. Settings are synced from the server to the clients. Config changes are synced live.
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>