diff --git a/apps/launcher/advancedpage.cpp b/apps/launcher/advancedpage.cpp
index 41f546af4..68fe235ce 100644
--- a/apps/launcher/advancedpage.cpp
+++ b/apps/launcher/advancedpage.cpp
@@ -80,6 +80,7 @@ bool Launcher::AdvancedPage::loadSettings()
int unarmedFactorsStrengthIndex = mEngineSettings.getInt("strength influences hand to hand", "Game");
if (unarmedFactorsStrengthIndex >= 0 && unarmedFactorsStrengthIndex <= 2)
unarmedFactorsStrengthComboBox->setCurrentIndex(unarmedFactorsStrengthIndex);
+ loadSettingBool(requireAppropriateAmmunitionCheckBox, "only appropriate ammunition bypasses resistance", "Game");
// Input Settings
loadSettingBool(allowThirdPersonZoomCheckBox, "allow third person zoom", "Input");
@@ -139,6 +140,7 @@ void Launcher::AdvancedPage::saveSettings()
int unarmedFactorsStrengthIndex = unarmedFactorsStrengthComboBox->currentIndex();
if (unarmedFactorsStrengthIndex != mEngineSettings.getInt("strength influences hand to hand", "Game"))
mEngineSettings.setInt("strength influences hand to hand", "Game", unarmedFactorsStrengthIndex);
+ saveSettingBool(requireAppropriateAmmunitionCheckBox, "only appropriate ammunition bypasses resistance", "Game");
// Input Settings
saveSettingBool(allowThirdPersonZoomCheckBox, "allow third person zoom", "Input");
diff --git a/apps/openmw/mwmechanics/combat.cpp b/apps/openmw/mwmechanics/combat.cpp
index a3e5e532b..3f87363a3 100644
--- a/apps/openmw/mwmechanics/combat.cpp
+++ b/apps/openmw/mwmechanics/combat.cpp
@@ -227,7 +227,7 @@ namespace MWMechanics
damage += attack[0] + ((attack[1] - attack[0]) * attackStrength);
adjustWeaponDamage(damage, weapon, attacker);
- if (weapon == projectile || isNormalWeapon(weapon)) // NB: both the weapon and the projectile need to be normal
+ if (weapon == projectile || Settings::Manager::getBool("only appropriate ammunition bypasses resistance", "Game") || isNormalWeapon(weapon))
resistNormalWeapon(victim, attacker, projectile, damage);
applyWerewolfDamageMult(victim, projectile, damage);
diff --git a/docs/source/reference/modding/settings/game.rst b/docs/source/reference/modding/settings/game.rst
index 6af0118de..2497b9e2f 100644
--- a/docs/source/reference/modding/settings/game.rst
+++ b/docs/source/reference/modding/settings/game.rst
@@ -211,3 +211,16 @@ disposition change of merchants caused by trading will be permanent and won't be
This imitates the option that Morrowind Code Patch offers.
This setting can be toggled in Advanced tab of the launcher.
+
+only appropriate ammunition bypasses resistance
+-----------------------------------------------
+
+:Type: boolean
+:Range: True/False
+:Default: False
+
+If this setting is true, you will have to use the appropriate ammunition to bypass normal weapon resistance (or weakness).
+An enchanted bow with chitin arrows will no longer be enough for the purpose, while a steel longbow with glass arrows will still work.
+This was previously the default engine behavior that diverged from Morrowind design.
+
+This setting can be toggled in Advanced tab of the launcher.
diff --git a/files/settings-default.cfg b/files/settings-default.cfg
index 89f4f82ea..0d932ca49 100644
--- a/files/settings-default.cfg
+++ b/files/settings-default.cfg
@@ -242,6 +242,9 @@ strength influences hand to hand = 0
# Render holstered weapons (with quivers and scabbards), requires modded assets
weapon sheathing = false
+# Allow non-standard ammunition solely to bypass normal weapon resistance or weakness
+only appropriate ammunition bypasses resistance = false
+
[General]
# Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16).
diff --git a/files/ui/advancedpage.ui b/files/ui/advancedpage.ui
index 0793345c8..23c860f89 100644
--- a/files/ui/advancedpage.ui
+++ b/files/ui/advancedpage.ui
@@ -96,6 +96,16 @@
+ -
+
+
+ <html><head/><body><p>Allow non-standard ammunition solely to bypass normal weapon resistance or weakness.</p></body></html>
+
+
+ Only appropriate ammunition bypasses normal weapon resistance
+
+
+
-