DayZ
44 ratings
Immersive Armor
2
   
Award
Favorite
Favorited
Unfavorite
Type: Mod
File Size
Posted
Updated
280.499 KB
8 Jan @ 8:55am
20 Feb @ 10:53am
5 Change Notes ( view )

Subscribe to download
Immersive Armor

Description
Immersive Armor – Real Hitboxes for Armor
DayZ doesn’t support fire geometry for clothing, so how does vanilla armor work? Player slots are linked to damage zones in the player model, and global armor parameters reduce incoming damage to the corresponding body part. For example, a plate carrier protects the torso, while a helmet protects the head—even if the bullet actually hits the neck, shoulder, or face.

Well, not anymore.


This is a technology mod, not a content mod. It does nothing on its own but provides the mechanics for immersive armor hitboxes. There is an Immersive Armor Example to demonstrate how to use this.

Immersive Armor introduces proper hitboxes in a highly moddable way. Any item using the new ImmersiveArmor class in the config now creates a hitbox linked to both the item itself and its parent. This applies to all creatures that inherit from PlayerBase, ZombieBase, or AnimalBase, meaning most modded creatures are already supported.

It also provides example hitboxes for armor plates and all vanilla helmets. The models are not binarized, so you can use them in your own mod.

Subclass for Item.
class ImmersiveArmor { // Classname of the permanent armor hitbox armorTypes[] = { "IA_ArmorPlate_Steel_Class_4","IA_ArmorPlate_Steel_Class_4" }; armorBones[] = { "Spine3","Spine3" };// Bone to attach the hitbox to // Why are the axes shuffled? Ask BI, I have no idea, they just are. armorRotOffset[] = { "0 0 7.5", "0 0 4" }; // Rotation offset: z, y, x armorPosOffset[] = { "0.05 0.16 0", "0.05 -0.1 0" };// Position offset: y, z, x // Optional overrides for hitbox properties. // More details can be found at ImmersiveArmorProperties for hitboxes. damageZone[] = {}; damageCoefPlayer[] = {}; damageCoefItem[] = {}; // Name of the attachment slot for which you want to override properties. // Works the same way as InventorySlotsOffsets. class Slot { // Optional overrides for attachment // Can be everything from above }; };

Subclass for hitbox.
class ImmersiveArmorHitbox { damageCoefPlayer = 0.05;// Percentage of damage received by the hitbox that transfers to the player damageCoefItem = 0.3;// Percentage of damage received by the hitbox that transfers to the linked item damageZone = "Torso";// DamageZone where the damage will be applied to player };

When a plate is hit, it transfers blunt force damage to the player, simulating plate deformation. This is logged as: IA_ArmorBlunt_ + [ammo type]
  • If the plate is NOT penetrated, only this blunt damage will appear in the logs.
  • If the plate IS penetrated, the log will show both the blunt impact and the actual bullet hitting the body.

These hitboxes use vanilla penetration calculations, meaning they actually stop bullets. However, penetration doesn’t seem to factor in projectile weight (at least, my tests didn’t confirm it). Some calibers don’t penetrate as much as they should based on weight, so I had to modify the caliber parameter to compensate. This does not change damage or range — only penetration depth, so your custom weapon balancing should remain unaffected.

Penetration Materials
The penetration materials provided here are designed to be independent of the actual thickness of fire geometry. Only the outer shell, controlled by bulletPenetrabilityWithThickness and Thickness in .bisurf, provides stopping power. Once a bullet penetrates this shell, it flies straight through without slowing down.

I've decided to use the Russian body armor classification, as it seems the most appropriate for DayZ. The table is based on penetration tests conducted from 5 meters, with rounds fired directly at an armor plate placed at a 90-degree angle.(Weapons with long barrels, such as intermediate sniper rifles, can surpass their caliber level)

Armor Level
Protection
Class 1
.22LR, .380ACP, 12-gauge Pellets
Class 2
.45ACP, 9×19mm
Class 3
12-gauge Slug, .357 Magnum
Class 4
7.62x39mm, 9×39mm
Class 5
5.56x45mm, 5.45×39mm, 9×39mm AP
Class 6
7.62x54mm, 308 Winchester

For the beginning, there are three materials: Steel, Kevlar, and Polycarbonate. It is likely that this will expand in the future.

Includes Improved Weapon Lift
This mod already includes Improved Weapon Lift, as it won’t work properly without it. If you’re already using it, you don’t need to load it separately — but if you do, nothing bad will happen.

Future Updates
  • Support for medical system mods with bullet wounds: Terje Medicine, InedaZombieAi, InediaPain. (If their devs would like to collaborate)
  • Compatibility with popular armor packs. (If their devs would like to collaborate)
  • Support for animated accessories(visors, NVGs, etc.)
  • More warnings when an array is not filled correctly.
  • Possibly switching to JSON instead of config

Known Issues
  • Arrows and Bolts are not currently supported, means they will penetrate hitboxes deeper than they supposed to.
  • All items attached to the player, infected, or animals will check if they need to create fire geometry. This includes checking their attachments—so if, for example, a backpack allows a helmet to be attached as accessory, it will create a helmet hitbox.
  • Protection levels defined here are calibrated to base game bullet parameters. If your mods redefine bullet speed or caliber, armor behavior may become unpredictable.
  • In the base game, wearing a helmet disables the brain hitbox, preventing instant kills from headshots. I still haven't found a way to disable this. You won’t really notice it, as the only caliber that fails to one-shot the head is .22LR.
  • There might be a slight delay (depends on networkObjectBatch in server.cfg) between equipping item and hitboxes to appear.

Information for modders
  1. Watch this tutorial first https://www.youtube.com/watch?v=FoxGlHiWR5A
  2. After creating a custom hitbox, rotate it 0 90 90 in Object Builder to align with bone dimensions.
  3. Offsets are shuffled after the second action: Position: Y, Z, X; Rotation: Z, Y, X
  4. Triple-check penetration material paths. If it's wrong, it will change to the default IMPENETRABLE one.
  5. Modded ammo needs to have blunt damage made for it. If not, the plate will hit player with original ammo it got shot by when the plate is not penetrated.
  6. If a hitbox is not spawning, check the logs. A warning will indicate if something was misspelled.



If you have any questions, contact me on Discord: Mod Support[discord.gg]

Thanks to mmetrjuk and guys in Enfusion Modders, especially Tree and TheAdmiral.

The real cancer of DayZ modding community isn’t repacking—it’s obfuscating. However, I’d recommend not repacking it for at least a few months after release, as there will likely be a lot of code optimisation and improvements. Use your PBO to override.
33 Comments
Moist Duck 4 Jul @ 12:42pm 
Thank you. Your mod is awesome :). Do you know if it's compatible with ammo ballistics mods like Rebs Ballistics?
Genriet  [author] 30 Jun @ 11:30am 
nope, but it's a good point, gonna add with next update
Moist Duck 30 Jun @ 10:40am 
Mod affects medieval armor?
Krokon 6 Jun @ 6:53am 
read the comment under you mate, the dev is still fixing it
notree6211 5 Jun @ 11:39pm 
is this usable right now as of 1.28?
Genriet  [author] 5 Jun @ 9:55am 
@76561199209067841 yep still fixing after 1.28
76561199209067841 5 Jun @ 4:01am 
I'm really looking forward to the update
Genriet  [author] 12 May @ 6:56am 
@76561199209067841 yep, getting ready for 1.28
76561199209067841 7 May @ 12:24pm 
Is it planned in the end?
Genriet  [author] 7 Apr @ 1:03pm 
@76561199209067841 no idea, i'm bad with dates, i can say tomorrow then it will take a month, can say a month and it will take 2 days