Mod Details

Headshot Damage Redirection - HDR

Headshot Damage Redirection - HDR 1.3.1

Created by Solarint

18.0K Downloads

SPT 3.10.5 Compatible

Damage taken to your head will have a portion redirected to a random body part.

Latest Version 1.3.1
SPT 3.10.5

Updated Dec 7, 2024 at 7:39 AM

Version Notes

Updated to work with SPT310, will not work for older versions.

Virustotal Results: https://www.virustotal.com/gui/file/18e18fd996725c4da7638dd58e2bfb7367e717b8c989ca9d1e20ba79b30ea0db

This download is externally hosted.
Always scan for viruses.

This mod only works with the version is what built for (3.9 for the 3.9 version, and 3.8.3 for the 3.8 version)

Only applies to you (not AI)

Any damage taken to the head will now be redirected to a body part of your choosing.
You can set what percentage of the damage to redirect.
So if you redirect 75% of the damage, a shot that normally does 100 damage will instead do 25 damage to your head, and 75 damage to a random body part.
You can select which parts are randomly selected, so you can have it only go to your torso, if you want.

Version 1.3.1
Download Mod Version
SPT 3.10.5
Latest Compatible SPT Version

4.7K Downloads

Created Dec 7, 2024 at 7:39 AM

Updated Dec 7, 2024 at 7:39 AM

Virus Total Results

Updated to work with SPT310, will not work for older versions.

Virustotal Results: https://www.virustotal.com/gui/file/18e18fd996725c4da7638dd58e2bfb7367e717b8c989ca9d1e20ba79b30ea0db

Version 1.3.0
Download Mod Version
SPT 3.9.0
Latest Compatible SPT Version

4.6K Downloads

Created Jul 27, 2024 at 3:19 PM

Updated Jul 27, 2024 at 3:19 PM

Virus Total Results

SPT 3.9.0+ only.

Added option to only redirect based on a random chance roll.

Added option to spread damage to multiple body parts.

Added optional damage multiplier, so you can increase the damage received that gets redirected. Intended for use with multiple parts selected.

Version 1.2.0
Download Mod Version
SPT 3.9.0
Latest Compatible SPT Version

2.1K Downloads

Created Jul 7, 2024 at 2:36 PM

Updated Jul 7, 2024 at 2:36 PM

Virus Total Results

Updated for 3.9.0
Only works on 3.9

Version 1.1.1
Download Mod Version
SPT 3.8.3
Latest Compatible SPT Version

3.1K Downloads

Created May 16, 2024 at 4:16 AM

Updated May 16, 2024 at 4:16 AM

Virus Total Results

Only works on SPT 3.8
Fixed redirected damage happening before armor damage reduction happens. Now it should be properly implemented.

Version 1.1.0
Download Mod Version
Unknown SPT Version
Latest Compatible SPT Version

2.4K Downloads

Created Apr 18, 2024 at 2:35 PM

Updated Apr 18, 2024 at 2:35 PM

Virus Total Results
  • Config options for displaying in-game notification when mod is activated (disabled by default)

  • Optional: Minimum Damage to activate

  • Optional: Maximum headshot damage cap

  • Added checks to see if the bullet actually penetrated or not before reducing damage.

  • Redirected damage will ignore armor now.

  • Added better documentation on what each setting does. (Hover over the name of the config option in the f12 menu for detailed explanations)

  • Reworked code.

    Note: If you were one of first 8 people to download this version, I accidently uploaded the wrong build, its fixed now

Version 1.0.0
Download Mod Version
SPT 3.8.0
Latest Compatible SPT Version

1.2K Downloads

Created Apr 10, 2024 at 10:02 AM

Updated Apr 10, 2024 at 10:02 AM

Virus Total Results

Only works with SPT 3.8.0

somtam
0 Likes
Boutchoo

Does not work with the coop version fika as of Fika 1.1.5.0, SPT 3.10.5

Client and host do not take damage to the head and it does not redistribute.

0 Likes
Parachell

EXCEPTION: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: Critical MongoId error: incorrect length. Id:
at EFT.MongoID..ctor (System.String id) [0x00020] in <be9862b1593e41e48ad89bd48723d349>:0
at EFT.MongoID.op_Implicit (System.String id) [0x00000] in <be9862b1593e41e48ad89bd48723d349>:0
at EFT.MongoID.op_Implicit (System.String id) [0x00010] in <be9862b1593e41e48ad89bd48723d349>:0
at Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.UpdateNewDamageInfo (DamageInfoStruct redirectedDamageInfo, DamageInfoStruct originalDamageInfo, System.Single damageToRedirect) [0x00014] in <182c2517fcce4dd094163b50eb670555>:0
at Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.createDamageToEachPart (System.Collections.Generic.List1\[T\] parts, System.Single totalDamage, DamageInfoStruct damageInfo, EFT.Player player, System.Text.StringBuilder stringBuilder) \[0x00022\] in &lt;182c2517fcce4dd094163b50eb670555&gt;:0 at Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.PatchPrefix (EBodyPart&amp; bodyPartType, DamageInfoStruct&amp; damageInfo, EFT.Player&amp; \_\_instance) \[0x0007a\] in &lt;182c2517fcce4dd094163b50eb670555&gt;:0 at (wrapper dynamic-method) EFT.Player.DMD&lt;EFT.Player::ApplyDamageInfo&gt;(EFT.Player,DamageInfoStruct,EBodyPart,EBodyPartColliderType,single) at Fika.Core.Coop.Players.CoopPlayer.ApplyDamageInfo (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, System.Single absorbed) \[0x0006d\] in &lt;b5869515bf114c34b2476130dd8db733&gt;:0 at Fika.Core.Coop.Players.CoopPlayer.SimulatedApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider) \[0x0011b\] in &lt;b5869515bf114c34b2476130dd8db733&gt;:0 at Fika.Core.Coop.Players.CoopPlayer.ApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider, ShotIdStruct shotId) \[0x00075\] in &lt;b5869515bf114c34b2476130dd8db733&gt;:0 at BodyPartCollider+PlayerBridge.ApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPart, EBodyPartColliderType bodyPartCollider, EArmorPlateCollider armorPlateCollider, ShotIdStruct shotId) \[0x00000\] in &lt;be9862b1593e41e48ad89bd48723d349&gt;:0 at BodyPartCollider.ApplyHit (DamageInfoStruct damageInfo, ShotIdStruct shotID) \[0x00010\] in &lt;be9862b1593e41e48ad89bd48723d349&gt;:0 at EFT.ClientGameWorld.ShotDelegate (EftBulletClass shotResult) \[0x00041\] in &lt;be9862b1593e41e48ad89bd48723d349&gt;:0 at EFT.Ballistics.BallisticsCalculator.method\_2 (System.Single simulationTime) \[0x00094\] in &lt;be9862b1593e41e48ad89bd48723d349&gt;:0 2025-01-1716:30:28.622 +08:00|0.15.5.1.33420|Error|Default|ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: Critical MongoId error: incorrect length. Id: EFT.MongoID..ctor (System.String id) (at &lt;be9862b1593e41e48ad89bd48723d349&gt;:0) EFT.MongoID.op\_Implicit (System.String id) (at &lt;be9862b1593e41e48ad89bd48723d349&gt;:0) EFT.MongoID.op\_Implicit (System.String id) (at &lt;be9862b1593e41e48ad89bd48723d349&gt;:0) Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.UpdateNewDamageInfo (DamageInfoStruct redirectedDamageInfo, DamageInfoStruct originalDamageInfo, System.Single damageToRedirect) (at &lt;182c2517fcce4dd094163b50eb670555&gt;:0) Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.createDamageToEachPart (System.Collections.Generic.List1[T] parts, System.Single totalDamage, DamageInfoStruct damageInfo, EFT.Player player, System.Text.StringBuilder stringBuilder) (at <182c2517fcce4dd094163b50eb670555>:0)
Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.PatchPrefix (EBodyPart& bodyPartType, DamageInfoStruct& damageInfo, EFT.Player& __instance) (at <182c2517fcce4dd094163b50eb670555>:0)
(wrapper dynamic-method) EFT.Player.DMD<EFT.Player::ApplyDamageInfo>(EFT.Player,DamageInfoStruct,EBodyPart,EBodyPartColliderType,single)
Fika.Core.Coop.Players.CoopPlayer.ApplyDamageInfo (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, System.Single absorbed) (at <b5869515bf114c34b2476130dd8db733>:0)
Fika.Core.Coop.Players.CoopPlayer.SimulatedApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider) (at <b5869515bf114c34b2476130dd8db733>:0)
Fika.Core.Coop.Players.CoopPlayer.ApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider, ShotIdStruct shotId) (at <b5869515bf114c34b2476130dd8db733>:0)
BodyPartCollider+PlayerBridge.ApplyShot (DamageInfoStruct damageInfo, EBodyPart bodyPart, EBodyPartColliderType bodyPartCollider, EArmorPlateCollider armorPlateCollider, ShotIdStruct shotId) (at <be9862b1593e41e48ad89bd48723d349>:0)
BodyPartCollider.ApplyHit (DamageInfoStruct damageInfo, ShotIdStruct shotID) (at <be9862b1593e41e48ad89bd48723d349>:0)
EFT.ClientGameWorld.ShotDelegate (EftBulletClass shotResult) (at <be9862b1593e41e48ad89bd48723d349>:0)
EFT.Ballistics.BallisticsCalculator.method_2 (System.Single simulationTime) (at <be9862b1593e41e48ad89bd48723d349>:0)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
Class410:UnityEngine.ILogHandler.LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
EFT.Ballistics.BallisticsCalculator:method_2(Single)
EFT.Ballistics.BallisticsCalculator:ManualUpdate(Single)
EFT.GameWorld:BallisticsTick(Single)
EFT.GameWorld:DoWorldTick(Single)
EFT.GameWorldUnityTickListener:Update()

0 Likes
sages44

Hello, I hope you’re doing well! I wanted to bring to your attention that I am currently having some difficulties with the AI locking onto my jaw and neck in the game. Any suggestions or fixes would be greatly appreciated. Thank you for your hard work!

0 Likes
SlaveToTheGames

RealismMod.ApplyArmorDamagePatch.Prefix (EFT.InventoryLogic.ArmorComponent __instance, DamageInfo& damageInfo, System.Single& __result, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider, System.Boolean damageInfoIsLocal, System.Collections.Generic.List1\[T\] armorComponents) (at &lt;2a3a5232cb184bc4a979864191e38496&gt;:0) (wrapper dynamic-method) EFT.InventoryLogic.ArmorComponent.DMD&lt;EFT.InventoryLogic.ArmorComponent::ApplyDamage&gt;(EFT.InventoryLogic.ArmorComponent,DamageInfo&amp;,EBodyPartColliderType,EArmorPlateCollider,bool,System.Collections.Generic.List1<EFT.InventoryLogic.ArmorComponent>,EFT.SkillManager/SkillBuffClass,EFT.SkillManager/SkillBuffClass) EFT.Player.ProceedDamageThroughArmor (DamageInfo& damageInfo, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider, System.Boolean damageInfoIsLocal) (at <a5b6eaefee6842aba73e4a77ea14a564>:0) EFT.Player.ApplyShot (DamageInfo damageInfo, EBodyPart bodyPartType, EBodyPartColliderType colliderType, EArmorPlateCollider armorPlateCollider, GStruct389 shotId) (at <a5b6eaefee6842aba73e4a77ea14a564>:0) Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.createDamageToEachPart (System.Collections.Generic.List1\[T\] parts, System.Single totalDamage, DamageInfo damageInfo, EFT.Player player, System.Text.StringBuilder stringBuilder) (at &lt;535948518f24407bb0cbc99254607071&gt;:0) Solarint.HeadshotDamageRedirect.ApplyDamageInfoPatch.PatchPrefix (EBodyPart&amp; bodyPartType, DamageInfo&amp; damageInfo, EFT.Player&amp; \_\_instance) (at &lt;535948518f24407bb0cbc99254607071&gt;:0) (wrapper dynamic-method) EFT.Player.DMD&lt;EFT.Player::ApplyDamageInfo&gt;(EFT.Player,DamageInfo,EBodyPart,EBodyPartColliderType,single) BodyPartCollider+PlayerBridge.ApplyDamageInfo (DamageInfo damageInfo, EBodyPart bodyPartType, EBodyPartColliderType bodyPartCollider, System.Single absorbed) (at &lt;a5b6eaefee6842aba73e4a77ea14a564&gt;:0) BodyPartCollider.ApplyEnvironmentalDamage (DamageInfo damageInfo) (at &lt;a5b6eaefee6842aba73e4a77ea14a564&gt;:0) GClass1678.smethod\_0 (System.Collections.Generic.IReadOnlyDictionary2[TKey,TValue] playerAndDistances, EFT.IExplosiveItem grenadeItem, UnityEngine.Vector3 grenadePosition, System.Func1\[TResult\] getDamageInfo, System.Single directionalDamageMultiplier, System.Single directionalDamageAngle, System.Nullable1[T] explosionDirection) (at <a5b6eaefee6842aba73e4a77ea14a564>:0) GClass1678.Explosion (EFT.IExplosiveItem grenadeItem, UnityEngine.Vector3 explosionPosition, System.String playerProfileIDWhoThrew, ISharedBallisticsCalculator ballisticsCalculator, EFT.InventoryLogic.Item originalWeaponItem, System.Func1\[TResult\] getDamageInfo, System.Single directionalDamageMultiplier, System.Single directionalDamageAngle, System.Nullable1[T] explosionDirection) (at <a5b6eaefee6842aba73e4a77ea14a564>:0) (wrapper dynamic-method) EFT.Grenade.DMD<EFT.Grenade::Explosion>(EFT.Grenade,EFT.IExplosiveItem,UnityEngine.Vector3,string,ISharedBallisticsCalculator,EFT.InventoryLogic.Item,UnityEngine.Vector3) EFT.Grenade.method_3 () (at <a5b6eaefee6842aba73e4a77ea14a564>:0) EFT.Grenade.InvokeBlowUpEvent () (at <a5b6eaefee6842aba73e4a77ea14a564>:0) GClass6+Class89.MoveNext () (at <a5b6eaefee6842aba73e4a77ea14a564>:0) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <ca21460feb9c47d0ac337b9893474cc6>:0) UnityEngine.DebugLogHandler:LogException(Exception, Object) Class362:UnityEngine.ILogHandler.LogException(Exception, Object) UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

I got this while on lighthouse and a grenade went off on me and I survived.

0 Likes
makimakima

damage redirection seems not work in spt 3.9.8 fika 0.9.9003

0 Likes
Laserpulse

A small nitpick, but the plugins folder in the zip uses an upper-case P instead of a lower-case one. I know not a lot of people play on Linux, but it is a case-sensitive OS, so dragging the BepInEx folder into the SPT folder produces a new Plugins (upper-case) folder and does not merge into the plugins (lower-case) folder. If a user isn’t careful they could end up with two plugins folders and not realise it, causing errors.

0 Likes
archon0ne

Is it possible to make it so this only applies to scavs? Running a modlist where pmcs are strong af, but only spawn at the start, for more exciting pmc fights. I don’t want them to be affected by this, but I do want to avoid getting buckshot to the face by some scav randomly.

Might not be possible, but hoping for the best.

0 Likes
Elite9111

Doesn’t seem to work on 3.9.2? Went into a scav raid and instantly died to top of head damage.

0 Likes
car mechanic

i feel like a nerd typing this, but the Overview says “This mod only works with SPT 3.8.0” might confuse some people…

1 Like

Details