Wardogs: Damage by Weapon and Ammo (per hit, in numbers)

Source: the weapon stats and ID assets under data/Wardogs, the ammo items and caliber assets, and the damage rules in Damage Pipeline. Sections 1 to 4 use assets/data/weapon-damage.json, built by _tools/weapon_damage_tables.py. Section 5 uses assets/data/weapon-damage-falloff.json (evidence: round25-falloff.md). Section 6 uses assets/data/weapon-damage-locations.json (evidence: round25-armor-coverage.md). Section 7 uses assets/data/weapon-penetration.json (evidence: round25-ricochet-penetration.md). The tables on this page are generated by _tools/weapon_damage_page.py (--write); do not edit them by hand.

This page gives the damage one bullet or pellet does per hit, for every infantry weapon in the export that fires bullets or pellets. It covers FMJ, tracer, hollow point (HP) and armor-piercing (AP) ammo, and the rankings that answer “which weapon does the most damage with a given ammo”. Sections 1 to 4 are point blank direct hits, unarmored or against the armor class named in each table. Section 5 adds damage over distance, section 6 applies armor at every hit location, and section 7 gives the ricochet and penetration constants and what the export cannot tell about walls. The short answer: AP does less than FMJ against unarmored targets and more against heavy armor; see the rankings.

1. Which weapon does the most damage (point blank)

Each table ranks the weapons by damage per hit for one ammo type, against one armor condition. Torso means the Torso.Upper location, the torso location that sections 1 to 4 evaluate armor at. Head means the Head location, where a helmet is evaluated. Identical weapons share a rank and are named together. Each leader is stated above its table.

Armor-piercing (AP)

Torso

Leader. AP against Torso.Upper, no armor: AMR 50 (SR_04) at 166.3; Medium: AMR 50 (SR_04) at 99.8; SuperHeavy: MK22 at 66.5. Shotguns have no AP or HP round, so they are not in this ranking.

| Rank | no armor | Medium | SuperHeavy | |—:|—|—|—| | 1 | AMR 50 (SR_04): 166.3 | AMR 50 (SR_04): 99.8 | MK22: 66.5 | | 2 | MK22: 95.0 | MK22: 76.0 | SV98, Mosin Nagant (WEPN_017): 65.0 | | 3 | SV98, Mosin Nagant (WEPN_017): 92.9 | SV98, Mosin Nagant (WEPN_017): 74.3 | AMR 50 (SR_04): 58.2 | | 4 | Scout Rifle TD (WEPN_035): 59.1 | Deagle (WEPN_027): 46.6 | Deagle (WEPN_027): 40.7 | | 5 | Deagle (WEPN_027): 58.2 | Scout Rifle TD (WEPN_035): 44.9 | Scout Rifle TD (WEPN_035): 37.8 |

Head

Leader. AP against Head, no helmet: AMR 50 (SR_04) at 259.3; Heavy: AMR 50 (SR_04) at 116.7. Shotguns have no AP or HP round, so they are not in this ranking.

| Rank | no helmet | Heavy | |—:|—|—| | 1 | AMR 50 (SR_04): 259.3 | AMR 50 (SR_04): 116.7 | | 2 | MK22: 153.6 | MK22: 115.2 | | 3 | SV98, Mosin Nagant (WEPN_017): 150.2 | SV98, Mosin Nagant (WEPN_017): 112.6 | | 4 | Deagle (WEPN_027): 105.8 | Deagle (WEPN_027): 79.4 | | 5 | Scout Rifle TD (WEPN_035): 95.6 | Scout Rifle TD (WEPN_035): 66.9 |

Hollow point (HP)

Torso

Leader. HP against Torso.Upper, no armor: AMR 50 (SR_04) at 415.8; Medium: AMR 50 (SR_04) at 44.9; SuperHeavy: AMR 50 (SR_04) at 9.8. Shotguns have no AP or HP round, so they are not in this ranking.

| Rank | no armor | Medium | SuperHeavy | |—:|—|—|—| | 1 | AMR 50 (SR_04): 415.8 | AMR 50 (SR_04): 44.9 | AMR 50 (SR_04): 9.8 | | 2 | MK22: 237.6 | MK22: 25.7 | MK22: 6.4 | | 3 | SV98, Mosin Nagant (WEPN_017): 232.3 | SV98, Mosin Nagant (WEPN_017): 25.1 | SV98, Mosin Nagant (WEPN_017): 6.3 | | 4 | Scout Rifle TD (WEPN_035): 147.8 | Scout Rifle TD (WEPN_035): 16.0 | Scout Rifle TD (WEPN_035): 4.0 | | 5 | Deagle (WEPN_027): 145.5 | Deagle (WEPN_027): 15.7 | Deagle (WEPN_027): 3.9 |

Head

Leader. HP against Head, no helmet: AMR 50 (SR_04) at 648.2; Heavy: AMR 50 (SR_04) at 26.3. Shotguns have no AP or HP round, so they are not in this ranking.

| Rank | no helmet | Heavy | |—:|—|—| | 1 | AMR 50 (SR_04): 648.2 | AMR 50 (SR_04): 26.3 | | 2 | MK22: 384.0 | MK22: 17.3 | | 3 | SV98, Mosin Nagant (WEPN_017): 375.5 | SV98, Mosin Nagant (WEPN_017): 16.9 | | 4 | Deagle (WEPN_027): 264.6 | Deagle (WEPN_027): 11.9 | | 5 | Scout Rifle TD (WEPN_035): 238.9 | Scout Rifle TD (WEPN_035): 10.8 |

FMJ

Torso

Leader. FMJ against Torso.Upper, no armor: AMR 50 (SR_04) at 207.9; Medium: AMR 50 (SR_04) at 124.7; SuperHeavy: AMR 50 (SR_04) at 72.8.

| Rank | no armor | Medium | SuperHeavy | |—:|—|—|—| | 1 | AMR 50 (SR_04): 207.9 | AMR 50 (SR_04): 124.7 | AMR 50 (SR_04): 72.8 | | 2 | MK22: 118.8 | MK22: 71.3 | MK22: 47.5 | | 3 | SV98, Mosin Nagant (WEPN_017): 116.2 | SV98, Mosin Nagant (WEPN_017): 69.7 | SV98, Mosin Nagant (WEPN_017): 46.5 | | 4 | Scout Rifle TD (WEPN_035): 73.9 | Scout Rifle TD (WEPN_035): 44.4 | Scout Rifle TD (WEPN_035): 29.6 | | 5 | Deagle (WEPN_027): 72.8 | Deagle (WEPN_027): 43.7 | Deagle (WEPN_027): 29.1 |

Head

Leader. FMJ against Head, no helmet: AMR 50 (SR_04) at 324.1; Heavy: AMR 50 (SR_04) at 145.8.

| Rank | no helmet | Heavy | |—:|—|—| | 1 | AMR 50 (SR_04): 324.1 | AMR 50 (SR_04): 145.8 | | 2 | MK22: 192.0 | MK22: 96.0 | | 3 | SV98, Mosin Nagant (WEPN_017): 187.7 | SV98, Mosin Nagant (WEPN_017): 93.9 | | 4 | Deagle (WEPN_027): 132.3 | Deagle (WEPN_027): 66.2 | | 5 | Scout Rifle TD (WEPN_035): 119.5 | Scout Rifle TD (WEPN_035): 59.7 |

2. How AP, HP and FMJ differ

The three ammo types are the same bullet with a different modifier. All numbers below are from the table in section 3 and the rule notes in round24-weapon-damage-engine.md.

Against no armor, AP is worse than FMJ. Every weapon with AP ammo deals 0.8 times the FMJ damage to an unarmored torso. The M4 does 21.8 with AP against 27.3 with FMJ. AP removes part of the armor reduction, and it lowers damage when there is no armor to remove.

Against armor, AP is better than FMJ, but only from a certain class. The armor class scales the damage down by less for AP than for FMJ, so AP catches up and passes FMJ:

  • Rifle and heavier calibers (556 mm, 545 mm, 762 mm, 762x54 mm, 308 Win) overtake FMJ at Medium. The M4 does 16.6 with AP and 16.4 with FMJ at Medium. The FAL does 21.0 against 19.7. At SuperHeavy the gap is larger: the M4 does 14.0 against 10.9, and the FAL 18.4 against 13.1.
  • Pistol calibers (9 mm, 45 ACP, 45 Colt) do not overtake at Medium. The Glock 17 does 14.6 with AP and 15.2 with FMJ at Medium. They overtake at Heavy: the Glock 17 does 13.2 against 12.7, and the Judge 27.0 against 26.0.
  • The Deagle (50 AE) is a pistol caliber that overtakes FMJ at Medium: 46.6 against 43.7.

Hollow point is the reverse. HP does 2.0 times the FMJ damage to an unarmored torso (the M4 does 54.5 against 27.3). It falls to 0.36 times FMJ at Medium and 0.13 times at SuperHeavy. Two things cause the collapse: the HP rule entries that cut damage by 70, 55, 40 and 40 percent against the armor classes, and an armor scalar of 1.5 that makes armor count 1.5 times. The M4 does 5.9 with HP at Medium and 1.5 at SuperHeavy. On the head, HP does 131.6 with no helmet and 5.9 with a Heavy helmet.

The .50 cal SR_04 is the exception for AP. Its arms class gives the AP armor scalar a value of 1.0, the same as FMJ, so AP never beats FMJ on this weapon. It does 166.3 with AP against 207.9 with FMJ with no armor, and 58.2 against 72.8 at SuperHeavy. The ratio is 0.8 at every armor class. It still ranks first for AP because its base damage is 90 per round, the highest of any weapon with AP.

3. Every weapon, every ammo

One row per weapon and ammo type. Weapons whose numbers are identical for every ammo type are merged into one row. Base damage is the projectile’s damage before armor. Shotgun values are per pellet (the buckshot has 8 pellets, so multiply by 8 for a full hit). The M500 and MP43 have no AP or HP round, only buckshot and slug. Tracer rounds do the same damage as the plain round of the same type.

| Weapon | Caliber | Ammo | Base damage | Torso: no armor | Torso: Light | Torso: Medium | Torso: Heavy | Torso: SuperHeavy | Head: no helmet | Head: Heavy | |—|—|—|—:|—:|—:|—:|—:|—:|—:|—:| | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | FMJ | 28.0 | 27.3 | 19.1 | 16.4 | 13.6 | 10.9 | 65.8 | 32.9 | | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | Tracer | 28.0 | 27.3 | 19.1 | 16.4 | 13.6 | 10.9 | 65.8 | 32.9 | | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | HP | 28.0 | 54.5 | 8.1 | 5.9 | 3.7 | 1.5 | 131.6 | 5.9 | | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | HP tracer | 28.0 | 54.5 | 8.1 | 5.9 | 3.7 | 1.5 | 131.6 | 5.9 | | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | AP | 28.0 | 21.8 | 17.9 | 16.6 | 15.3 | 14.0 | 52.6 | 36.8 | | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | AP tracer | 28.0 | 21.8 | 17.9 | 16.6 | 15.3 | 14.0 | 52.6 | 36.8 | | AK74 (AK74M) | 545mm | FMJ | 26.0 | 25.3 | 17.7 | 15.2 | 12.7 | 10.1 | 61.1 | 30.6 | | AK74 (AK74M) | 545mm | Tracer | 26.0 | 25.3 | 17.7 | 15.2 | 12.7 | 10.1 | 61.1 | 30.6 | | AK74 (AK74M) | 545mm | HP | 26.0 | 50.6 | 7.5 | 5.5 | 3.4 | 1.4 | 122.2 | 5.5 | | AK74 (AK74M) | 545mm | HP tracer | 26.0 | 50.6 | 7.5 | 5.5 | 3.4 | 1.4 | 122.2 | 5.5 | | AK74 (AK74M) | 545mm | AP | 26.0 | 20.2 | 16.6 | 15.4 | 14.2 | 13.0 | 48.9 | 34.2 | | AK74 (AK74M) | 545mm | AP tracer | 26.0 | 20.2 | 16.6 | 15.4 | 14.2 | 13.0 | 48.9 | 34.2 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | FMJ | 45.0 | 32.9 | 23.0 | 19.7 | 16.4 | 13.1 | 79.3 | 39.7 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | Tracer | 45.0 | 32.9 | 23.0 | 19.7 | 16.4 | 13.1 | 79.3 | 39.7 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | HP | 45.0 | 65.7 | 9.8 | 7.1 | 4.4 | 1.8 | 158.6 | 7.1 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | HP tracer | 45.0 | 65.7 | 9.8 | 7.1 | 4.4 | 1.8 | 158.6 | 7.1 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | AP | 45.0 | 26.3 | 22.3 | 21.0 | 19.7 | 18.4 | 63.5 | 47.6 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | AP tracer | 45.0 | 26.3 | 22.3 | 21.0 | 19.7 | 18.4 | 63.5 | 47.6 | | TCX-SPR (WEPN_037) | 762mm | FMJ | 34.0 | 29.1 | 20.4 | 17.5 | 14.6 | 11.7 | 70.3 | 35.2 | | TCX-SPR (WEPN_037) | 762mm | Tracer | 34.0 | 29.1 | 20.4 | 17.5 | 14.6 | 11.7 | 70.3 | 35.2 | | TCX-SPR (WEPN_037) | 762mm | HP | 34.0 | 58.3 | 8.7 | 6.3 | 3.9 | 1.6 | 140.6 | 6.3 | | TCX-SPR (WEPN_037) | 762mm | HP tracer | 34.0 | 58.3 | 8.7 | 6.3 | 3.9 | 1.6 | 140.6 | 6.3 | | TCX-SPR (WEPN_037) | 762mm | AP | 34.0 | 23.3 | 19.8 | 18.6 | 17.5 | 16.3 | 56.2 | 42.2 | | TCX-SPR (WEPN_037) | 762mm | AP tracer | 34.0 | 23.3 | 19.8 | 18.6 | 17.5 | 16.3 | 56.2 | 42.2 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | FMJ | 45.0 | 45.0 | 31.5 | 27.0 | 22.5 | 18.0 | 93.7 | 46.9 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | Tracer | 45.0 | 45.0 | 31.5 | 27.0 | 22.5 | 18.0 | 93.7 | 46.9 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | HP | 45.0 | 90.0 | 13.4 | 9.7 | 6.1 | 2.4 | 187.4 | 8.4 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | HP tracer | 45.0 | 90.0 | 13.4 | 9.7 | 6.1 | 2.4 | 187.4 | 8.4 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | AP | 45.0 | 36.0 | 30.6 | 28.8 | 27.0 | 25.2 | 75.0 | 56.2 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | AP tracer | 45.0 | 36.0 | 30.6 | 28.8 | 27.0 | 25.2 | 75.0 | 56.2 | | SKS | 762mm | FMJ | 34.0 | 40.0 | 28.0 | 24.0 | 20.0 | 16.0 | 83.3 | 41.7 | | SKS | 762mm | Tracer | 34.0 | 40.0 | 28.0 | 24.0 | 20.0 | 16.0 | 83.3 | 41.7 | | SKS | 762mm | HP | 34.0 | 80.0 | 11.9 | 8.6 | 5.4 | 2.2 | 166.6 | 7.5 | | SKS | 762mm | HP tracer | 34.0 | 80.0 | 11.9 | 8.6 | 5.4 | 2.2 | 166.6 | 7.5 | | SKS | 762mm | AP | 34.0 | 32.0 | 27.2 | 25.6 | 24.0 | 22.4 | 66.6 | 50.0 | | SKS | 762mm | AP tracer | 34.0 | 32.0 | 27.2 | 25.6 | 24.0 | 22.4 | 66.6 | 50.0 | | SVD (SVDM) | 762x54mm | FMJ | 44.0 | 41.4 | 29.0 | 24.9 | 20.7 | 16.6 | 86.2 | 43.1 | | SVD (SVDM) | 762x54mm | Tracer | 44.0 | 41.4 | 29.0 | 24.9 | 20.7 | 16.6 | 86.2 | 43.1 | | SVD (SVDM) | 762x54mm | HP | 44.0 | 82.9 | 12.3 | 8.9 | 5.6 | 2.2 | 172.5 | 7.8 | | SVD (SVDM) | 762x54mm | HP tracer | 44.0 | 82.9 | 12.3 | 8.9 | 5.6 | 2.2 | 172.5 | 7.8 | | SVD (SVDM) | 762x54mm | AP | 44.0 | 33.1 | 28.2 | 26.5 | 24.9 | 23.2 | 69.0 | 51.7 | | SVD (SVDM) | 762x54mm | AP tracer | 44.0 | 33.1 | 28.2 | 26.5 | 24.9 | 23.2 | 69.0 | 51.7 | | PKM (LMG_02) | 762x54mm | FMJ | 44.0 | 32.1 | 22.5 | 19.3 | 16.1 | 12.9 | 77.6 | 38.8 | | PKM (LMG_02) | 762x54mm | Tracer | 44.0 | 32.1 | 22.5 | 19.3 | 16.1 | 12.9 | 77.6 | 38.8 | | PKM (LMG_02) | 762x54mm | HP | 44.0 | 64.3 | 9.5 | 6.9 | 4.3 | 1.7 | 155.1 | 7.0 | | PKM (LMG_02) | 762x54mm | HP tracer | 44.0 | 64.3 | 9.5 | 6.9 | 4.3 | 1.7 | 155.1 | 7.0 | | PKM (LMG_02) | 762x54mm | AP | 44.0 | 25.7 | 21.8 | 20.6 | 19.3 | 18.0 | 62.0 | 46.5 | | PKM (LMG_02) | 762x54mm | AP tracer | 44.0 | 25.7 | 21.8 | 20.6 | 19.3 | 18.0 | 62.0 | 46.5 | | Deagle (WEPN_027) | 50AE | FMJ | 63.0 | 72.8 | 50.9 | 43.7 | 36.4 | 29.1 | 132.3 | 66.2 | | Deagle (WEPN_027) | 50AE | Tracer | 63.0 | 72.8 | 50.9 | 43.7 | 36.4 | 29.1 | 132.3 | 66.2 | | Deagle (WEPN_027) | 50AE | HP | 63.0 | 145.5 | 21.6 | 15.7 | 9.8 | 3.9 | 264.6 | 11.9 | | Deagle (WEPN_027) | 50AE | HP tracer | 63.0 | 145.5 | 21.6 | 15.7 | 9.8 | 3.9 | 264.6 | 11.9 | | Deagle (WEPN_027) | 50AE | AP | 63.0 | 58.2 | 49.5 | 46.6 | 43.7 | 40.7 | 105.8 | 79.4 | | Deagle (WEPN_027) | 50AE | AP tracer | 63.0 | 58.2 | 49.5 | 46.6 | 43.7 | 40.7 | 105.8 | 79.4 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | FMJ | 22.0 | 25.4 | 17.8 | 15.2 | 12.7 | 10.2 | 46.2 | 23.1 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | Tracer | 22.0 | 25.4 | 17.8 | 15.2 | 12.7 | 10.2 | 46.2 | 23.1 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | HP | 22.0 | 50.8 | 7.5 | 5.5 | 3.4 | 1.4 | 92.4 | 4.2 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | HP tracer | 22.0 | 50.8 | 7.5 | 5.5 | 3.4 | 1.4 | 92.4 | 4.2 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | AP | 22.0 | 20.3 | 16.1 | 14.6 | 13.2 | 11.8 | 37.0 | 24.0 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | AP tracer | 22.0 | 20.3 | 16.1 | 14.6 | 13.2 | 11.8 | 37.0 | 24.0 | | Judge | 45Colt | FMJ | 45.0 | 52.0 | 36.4 | 31.2 | 26.0 | 20.8 | 94.5 | 47.2 | | Judge | 45Colt | Tracer | 45.0 | 52.0 | 36.4 | 31.2 | 26.0 | 20.8 | 94.5 | 47.2 | | Judge | 45Colt | HP | 45.0 | 104.0 | 15.4 | 11.2 | 7.0 | 2.8 | 189.0 | 8.5 | | Judge | 45Colt | HP tracer | 45.0 | 104.0 | 15.4 | 11.2 | 7.0 | 2.8 | 189.0 | 8.5 | | Judge | 45Colt | AP | 45.0 | 41.6 | 32.8 | 29.9 | 27.0 | 24.1 | 75.6 | 49.1 | | Judge | 45Colt | AP tracer | 45.0 | 41.6 | 32.8 | 29.9 | 27.0 | 24.1 | 75.6 | 49.1 | | M1911 (WEPN_026) | 45ACP | FMJ | 30.0 | 45.0 | 31.5 | 27.0 | 22.5 | 18.0 | 81.9 | 41.0 | | M1911 (WEPN_026) | 45ACP | Tracer | 30.0 | 45.0 | 31.5 | 27.0 | 22.5 | 18.0 | 81.9 | 41.0 | | M1911 (WEPN_026) | 45ACP | HP | 30.0 | 90.1 | 13.4 | 9.7 | 6.1 | 2.4 | 163.8 | 7.4 | | M1911 (WEPN_026) | 45ACP | HP tracer | 30.0 | 90.1 | 13.4 | 9.7 | 6.1 | 2.4 | 163.8 | 7.4 | | M1911 (WEPN_026) | 45ACP | AP | 30.0 | 36.0 | 28.5 | 25.9 | 23.4 | 20.9 | 65.5 | 42.6 | | M1911 (WEPN_026) | 45ACP | AP tracer | 30.0 | 36.0 | 28.5 | 25.9 | 23.4 | 20.9 | 65.5 | 42.6 | | Super-45 (Vector) | 45ACP | FMJ | 30.0 | 34.7 | 24.3 | 20.8 | 17.3 | 13.9 | 63.0 | 31.5 | | Super-45 (Vector) | 45ACP | Tracer | 30.0 | 34.7 | 24.3 | 20.8 | 17.3 | 13.9 | 63.0 | 31.5 | | Super-45 (Vector) | 45ACP | HP | 30.0 | 69.3 | 10.3 | 7.5 | 4.7 | 1.9 | 126.0 | 5.7 | | Super-45 (Vector) | 45ACP | HP tracer | 30.0 | 69.3 | 10.3 | 7.5 | 4.7 | 1.9 | 126.0 | 5.7 | | Super-45 (Vector) | 45ACP | AP | 30.0 | 27.7 | 21.9 | 20.0 | 18.0 | 16.1 | 50.4 | 32.8 | | Super-45 (Vector) | 45ACP | AP tracer | 30.0 | 27.7 | 21.9 | 20.0 | 18.0 | 16.1 | 50.4 | 32.8 | | M500, MP43 | 12g | Buckshot (8 pellets) | 25.0 | 24.8 | 10.4 | 8.9 | 7.4 | 3.6 | 37.5 | 13.1 | | M500, MP43 | 12g | Slug | 105.0 | 104.0 | 50.9 | 43.7 | 36.4 | 29.1 | 157.5 | 74.8 | | MK22 | 308Win | FMJ | 45.0 | 118.8 | 83.2 | 71.3 | 59.4 | 47.5 | 192.0 | 96.0 | | MK22 | 308Win | Tracer | 45.0 | 118.8 | 83.2 | 71.3 | 59.4 | 47.5 | 192.0 | 96.0 | | MK22 | 308Win | HP | 45.0 | 237.6 | 35.3 | 25.7 | 16.0 | 6.4 | 384.0 | 17.3 | | MK22 | 308Win | HP tracer | 45.0 | 237.6 | 35.3 | 25.7 | 16.0 | 6.4 | 384.0 | 17.3 | | MK22 | 308Win | AP | 45.0 | 95.0 | 80.8 | 76.0 | 71.3 | 66.5 | 153.6 | 115.2 | | MK22 | 308Win | AP tracer | 45.0 | 95.0 | 80.8 | 76.0 | 71.3 | 66.5 | 153.6 | 115.2 | | AMR 50 (SR_04) | 50Cal | FMJ | 90.0 | 207.9 | 145.5 | 124.7 | 93.6 | 72.8 | 324.1 | 145.8 | | AMR 50 (SR_04) | 50Cal | Tracer | 90.0 | 207.9 | 145.5 | 124.7 | 93.6 | 72.8 | 324.1 | 145.8 | | AMR 50 (SR_04) | 50Cal | HP | 90.0 | 415.8 | 61.7 | 44.9 | 25.3 | 9.8 | 648.2 | 26.3 | | AMR 50 (SR_04) | 50Cal | HP tracer | 90.0 | 415.8 | 61.7 | 44.9 | 25.3 | 9.8 | 648.2 | 26.3 | | AMR 50 (SR_04) | 50Cal | AP | 90.0 | 166.3 | 116.4 | 99.8 | 74.8 | 58.2 | 259.3 | 116.7 | | AMR 50 (SR_04) | 50Cal | AP tracer | 90.0 | 166.3 | 116.4 | 99.8 | 74.8 | 58.2 | 259.3 | 116.7 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | FMJ | 44.0 | 116.2 | 81.3 | 69.7 | 58.1 | 46.5 | 187.7 | 93.9 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | Tracer | 44.0 | 116.2 | 81.3 | 69.7 | 58.1 | 46.5 | 187.7 | 93.9 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | HP | 44.0 | 232.3 | 34.5 | 25.1 | 15.7 | 6.3 | 375.5 | 16.9 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | HP tracer | 44.0 | 232.3 | 34.5 | 25.1 | 15.7 | 6.3 | 375.5 | 16.9 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | AP | 44.0 | 92.9 | 79.0 | 74.3 | 69.7 | 65.0 | 150.2 | 112.6 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | AP tracer | 44.0 | 92.9 | 79.0 | 74.3 | 69.7 | 65.0 | 150.2 | 112.6 | | Scout Rifle TD (WEPN_035) | 556mm | FMJ | 28.0 | 73.9 | 51.7 | 44.4 | 37.0 | 29.6 | 119.5 | 59.7 | | Scout Rifle TD (WEPN_035) | 556mm | Tracer | 28.0 | 73.9 | 51.7 | 44.4 | 37.0 | 29.6 | 119.5 | 59.7 | | Scout Rifle TD (WEPN_035) | 556mm | HP | 28.0 | 147.8 | 22.0 | 16.0 | 10.0 | 4.0 | 238.9 | 10.8 | | Scout Rifle TD (WEPN_035) | 556mm | HP tracer | 28.0 | 147.8 | 22.0 | 16.0 | 10.0 | 4.0 | 238.9 | 10.8 | | Scout Rifle TD (WEPN_035) | 556mm | AP | 28.0 | 59.1 | 48.5 | 44.9 | 41.4 | 37.8 | 95.6 | 66.9 | | Scout Rifle TD (WEPN_035) | 556mm | AP tracer | 28.0 | 59.1 | 48.5 | 44.9 | 41.4 | 37.8 | 95.6 | 66.9 |

4. Per-location damage

FMJ damage per hit at each of the six unarmored hit locations. Weapons with the same six values are merged. Shotgun values are per pellet.

| Weapon | Caliber | Ammo | Head | Neck | Torso.Upper | Torso.Middle | Arm.Upper | Leg.Thigh | |—|—|—|—:|—:|—:|—:|—:|—:| | A-91 (A91), KH-2002 (KH2002), M249 SAW (M249), M4, T-21 (TAR21), Galil (WEPN_029), Bushmaster M17S (WEPN_033) | 556mm | FMJ | 65.8 | 49.4 | 27.3 | 27.2 | 15.1 | 15.1 | | AK74 (AK74M) | 545mm | FMJ | 61.1 | 45.8 | 25.3 | 25.2 | 14.0 | 14.0 | | FAL (WEPN_030), Evo-3 Ultra (WEPN_036) | 308Win | FMJ | 79.3 | 59.5 | 32.9 | 32.7 | 18.2 | 18.2 | | TCX-SPR (WEPN_037) | 762mm | FMJ | 70.3 | 52.7 | 29.1 | 29.0 | 16.2 | 16.2 | | BMR-308 (RFB), M14 (WEPN_034) | 308Win | FMJ | 93.7 | 70.3 | 45.0 | 45.1 | 28.7 | 28.7 | | SKS | 762mm | FMJ | 83.3 | 62.5 | 40.0 | 40.1 | 25.5 | 25.5 | | SVD (SVDM) | 762x54mm | FMJ | 86.2 | 64.7 | 41.4 | 41.5 | 26.4 | 26.4 | | PKM (LMG_02) | 762x54mm | FMJ | 77.6 | 58.2 | 32.1 | 32.0 | 17.8 | 17.8 | | Deagle (WEPN_027) | 50AE | FMJ | 132.3 | 99.2 | 72.8 | 66.2 | 49.1 | 49.1 | | GGX 17 (Glock17), AMP-9 (MP9), PP-19 Vityaz (SMG_03), MP5 (WEPN_028), PP-19 Bizon (WEPN_031), GGX 18 (WEPN_032) | 9mm | FMJ | 46.2 | 34.7 | 25.4 | 23.1 | 17.2 | 17.2 | | Judge | 45Colt | FMJ | 94.5 | 70.9 | 52.0 | 47.2 | 35.1 | 35.1 | | M1911 (WEPN_026) | 45ACP | FMJ | 81.9 | 61.4 | 45.0 | 41.0 | 30.4 | 30.4 | | Super-45 (Vector) | 45ACP | FMJ | 63.0 | 47.3 | 34.7 | 31.5 | 23.4 | 23.4 | | M500, MP43 | 12g | Buckshot (8 pellets) | 37.5 | 28.1 | 24.8 | 22.5 | 15.8 | 15.8 | | MK22 | 308Win | FMJ | 192.0 | 144.0 | 118.8 | 87.0 | 40.5 | 40.5 | | AMR 50 (SR_04) | 50Cal | FMJ | 324.1 | 243.1 | 207.9 | 151.0 | 81.0 | 81.0 | | SV98, Mosin Nagant (WEPN_017) | 762x54mm | FMJ | 187.7 | 140.8 | 116.2 | 85.1 | 39.6 | 39.6 | | Scout Rifle TD (WEPN_035) | 556mm | FMJ | 119.5 | 89.6 | 73.9 | 54.1 | 25.2 | 25.2 |

5. Damage over distance

Damage at distance d is the point blank damage times a distance curve times a speed scale: damage(d) = point-blank damage x curve(d) x speed_scale(d). The point blank damage already holds the ammo and armor rules, so the multiplier depends on the weapon and ammo only, not on armor or location. The multiplier is the curve, where the weapon applies one, times the speed scale. The model is stored at 14 distances from 0 to 1500 m; this section shows 100, 400, 800 and 1200 m. Distances are measured from the muzzle along the line of sight. Gravity, wind and spread are left out (see the evidence doc for the sensitivity checks).

Leaders and top five at 100, 400, 800 and 1200 m

Torso is Torso.Upper, the head is the Head location with no helmet. Each table ranks the stored damage at that distance, so the values include the curve and the speed scale.

FMJ

100 m. FMJ leader. Torso, no armor: AMR 50 (SR_04) at 207.9; Torso, Medium: AMR 50 (SR_04) at 124.7; Head, no helmet: AMR 50 (SR_04) at 324.1. Shotguns have no FMJ or AP round, so they are not in this ranking.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 207.9 AMR 50 (SR_04): 124.7 AMR 50 (SR_04): 324.1
2 MK22: 118.8 MK22: 71.3 MK22: 192.0
3 SV98, Mosin Nagant (WEPN_017): 116.2 SV98, Mosin Nagant (WEPN_017): 69.7 SV98, Mosin Nagant (WEPN_017): 187.7
4 Scout Rifle TD (WEPN_035): 73.9 Scout Rifle TD (WEPN_035): 44.4 Deagle (WEPN_027): 128.6
5 Deagle (WEPN_027): 70.7 Deagle (WEPN_027): 42.4 Scout Rifle TD (WEPN_035): 119.5

400 m. FMJ leader. Torso, no armor: AMR 50 (SR_04) at 207.9; Torso, Medium: AMR 50 (SR_04) at 124.7; Head, no helmet: AMR 50 (SR_04) at 324.1.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 207.9 AMR 50 (SR_04): 124.7 AMR 50 (SR_04): 324.1
2 MK22: 118.8 MK22: 71.3 MK22: 192.0
3 SV98, Mosin Nagant (WEPN_017): 116.2 SV98, Mosin Nagant (WEPN_017): 69.7 SV98, Mosin Nagant (WEPN_017): 187.7
4 Scout Rifle TD (WEPN_035): 62.6 Scout Rifle TD (WEPN_035): 37.6 Scout Rifle TD (WEPN_035): 101.2
5 BMR-308 (RFB), M14 (WEPN_034): 45.0 BMR-308 (RFB), M14 (WEPN_034): 27.0 BMR-308 (RFB), M14 (WEPN_034): 93.7

800 m. FMJ leader. Torso, no armor: AMR 50 (SR_04) at 207.9; Torso, Medium: AMR 50 (SR_04) at 124.7; Head, no helmet: AMR 50 (SR_04) at 324.1.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 207.9 AMR 50 (SR_04): 124.7 AMR 50 (SR_04): 324.1
2 MK22: 118.8 MK22: 71.3 MK22: 192.0
3 SV98: 116.2 SV98: 69.7 SV98: 187.7
4 Mosin Nagant (WEPN_017): 86.3 Mosin Nagant (WEPN_017): 51.8 Mosin Nagant (WEPN_017): 139.5
5 SVD (SVDM): 41.4 SVD (SVDM): 24.9 SVD (SVDM): 86.2

1200 m. FMJ leader. Torso, no armor: AMR 50 (SR_04) at 207.9; Torso, Medium: AMR 50 (SR_04) at 124.7; Head, no helmet: AMR 50 (SR_04) at 324.1.

| Rank | Torso, no armor | Torso, Medium | Head, no helmet | |—:|—|—|—| | 1 | AMR 50 (SR_04): 207.9 | AMR 50 (SR_04): 124.7 | AMR 50 (SR_04): 324.1 | | 2 | MK22: 82.3 | MK22: 49.4 | MK22: 133.0 | | 3 | SV98: 69.0 | SV98: 41.4 | SV98: 111.5 | | 4 | Mosin Nagant (WEPN_017): 42.2 | Mosin Nagant (WEPN_017): 25.3 | Mosin Nagant (WEPN_017): 68.1 | | 5 | PKM (LMG_02): 21.0 | PKM (LMG_02): 12.6 | PKM (LMG_02): 50.7 |

Armor-piercing (AP)

100 m. AP leader. Torso, no armor: AMR 50 (SR_04) at 166.3; Torso, Medium: AMR 50 (SR_04) at 99.8; Head, no helmet: AMR 50 (SR_04) at 259.3. Shotguns have no FMJ or AP round, so they are not in this ranking.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 166.3 AMR 50 (SR_04): 99.8 AMR 50 (SR_04): 259.3
2 MK22: 95.0 MK22: 76.0 MK22: 153.6
3 SV98, Mosin Nagant (WEPN_017): 92.9 SV98, Mosin Nagant (WEPN_017): 74.3 SV98, Mosin Nagant (WEPN_017): 150.2
4 Scout Rifle TD (WEPN_035): 59.1 Deagle (WEPN_027): 45.3 Deagle (WEPN_027): 102.9
5 Deagle (WEPN_027): 56.6 Scout Rifle TD (WEPN_035): 44.9 Scout Rifle TD (WEPN_035): 95.6

400 m. AP leader. Torso, no armor: AMR 50 (SR_04) at 166.3; Torso, Medium: AMR 50 (SR_04) at 99.8; Head, no helmet: AMR 50 (SR_04) at 259.3.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 166.3 AMR 50 (SR_04): 99.8 AMR 50 (SR_04): 259.3
2 MK22: 95.0 MK22: 76.0 MK22: 153.6
3 SV98, Mosin Nagant (WEPN_017): 92.9 SV98, Mosin Nagant (WEPN_017): 74.3 SV98, Mosin Nagant (WEPN_017): 150.2
4 Scout Rifle TD (WEPN_035): 50.1 Scout Rifle TD (WEPN_035): 38.1 Scout Rifle TD (WEPN_035): 80.9
5 BMR-308 (RFB), M14 (WEPN_034): 36.0 BMR-308 (RFB), M14 (WEPN_034): 28.8 BMR-308 (RFB), M14 (WEPN_034): 75.0

800 m. AP leader. Torso, no armor: AMR 50 (SR_04) at 166.3; Torso, Medium: AMR 50 (SR_04) at 99.8; Head, no helmet: AMR 50 (SR_04) at 259.3.

Rank Torso, no armor Torso, Medium Head, no helmet
1 AMR 50 (SR_04): 166.3 AMR 50 (SR_04): 99.8 AMR 50 (SR_04): 259.3
2 MK22: 95.0 MK22: 76.0 MK22: 153.6
3 SV98: 92.9 SV98: 74.3 SV98: 150.2
4 Mosin Nagant (WEPN_017): 69.0 Mosin Nagant (WEPN_017): 55.2 Mosin Nagant (WEPN_017): 111.6
5 SVD (SVDM): 33.1 SVD (SVDM): 26.5 SVD (SVDM): 69.0

1200 m. AP leader. Torso, no armor: AMR 50 (SR_04) at 166.3; Torso, Medium: AMR 50 (SR_04) at 99.8; Head, no helmet: AMR 50 (SR_04) at 259.3.

| Rank | Torso, no armor | Torso, Medium | Head, no helmet | |—:|—|—|—| | 1 | AMR 50 (SR_04): 166.3 | AMR 50 (SR_04): 99.8 | AMR 50 (SR_04): 259.3 | | 2 | MK22: 65.8 | MK22: 52.7 | MK22: 106.4 | | 3 | SV98: 55.2 | SV98: 44.2 | SV98: 89.2 | | 4 | Mosin Nagant (WEPN_017): 33.7 | Mosin Nagant (WEPN_017): 27.0 | Mosin Nagant (WEPN_017): 54.5 | | 5 | PKM (LMG_02): 16.8 | PKM (LMG_02): 13.4 | PKM (LMG_02): 40.5 |

The Judge has no distance curve in the export, so its damage changes only through the speed scale. M500 and MP43 store a three-key linear curve, but the curve’s enable flag (bUseDistanceDamageFalloffCurve) is absent, so the curve is not applied and their buckshot and slug damage also changes only through the speed scale. The flag’s default is false (see Limitations), so the game does not apply that stored curve either. Shotgun values are per pellet.

Per weapon: effective range and the speed scale

Effective range end is the EffectiveRange of each weapon’s stats asset, in metres, shown for information; no damage code read so far uses it. Speed scale below 1 from is the first whole metre where the speed scale falls below 1 for the default round (FMJ, or buckshot for the shotguns). The shotgun slugs reach that point earlier or later: M500 at 158 m and MP43 at 104 m, against 92 m and 62 m for buckshot. “not reached” means the modelled round has not flown that far within the model’s 12 second cap.

| Weapon | Caliber | Default round | Effective range end (m) | Speed scale below 1 from (m) | 100 m | 400 m | 800 m | 1200 m | |—|—|—|—:|—:|—:|—:|—:|—:| | A-91 (A91) | 556mm | FMJ | 300 | 353 | 1.000 | 0.834 | 0.357 | 0.103 | | T-21 (TAR21) | 556mm | FMJ | 550 | 436 | 1.000 | 0.911 | 0.342 | 0.098 | | Bushmaster M17S (WEPN_033) | 556mm | FMJ | 300 | 276 | 1.000 | 0.728 | 0.311 | 0.089 | | AK74 (AK74M) | 545mm | FMJ | 500 | 540 | 1.000 | 1.000 | 0.538 | 0.122 | | FAL (WEPN_030) | 308Win | FMJ | 800 | 748 | 1.000 | 1.000 | 0.960 | 0.138 | | Galil (WEPN_029) | 556mm | FMJ | 400 | 541 | 1.000 | 1.000 | 0.430 | 0.114 | | KH-2002 (KH2002) | 556mm | FMJ | 300 | 276 | 1.000 | 0.728 | 0.311 | 0.089 | | M4 | 556mm | FMJ | 500 | 513 | 1.000 | 1.000 | 0.463 | 0.112 | | TCX-SPR (WEPN_037) | 762mm | FMJ | 400 | 442 | 1.000 | 1.000 | 0.453 | 0.122 | | BMR-308 (RFB) | 308Win | FMJ | 500 | 554 | 1.000 | 1.000 | 0.548 | 0.120 | | SKS | 762mm | FMJ | 400 | 420 | 1.000 | 1.000 | 0.418 | 0.113 | | SVD (SVDM) | 762x54mm | FMJ | 800 | 1047 | 1.000 | 1.000 | 1.000 | 0.180 | | M14 (WEPN_034) | 308Win | FMJ | 500 | 502 | 1.000 | 1.000 | 0.527 | 0.115 | | PKM (LMG_02) | 762x54mm | FMJ | 1000 | 1141 | 1.000 | 1.000 | 1.000 | 0.653 | | M249 SAW (M249) | 556mm | FMJ | 700 | 720 | 1.000 | 1.000 | 0.796 | 0.151 | | Evo-3 Ultra (WEPN_036) | 308Win | FMJ | 1000 | 991 | 1.000 | 1.000 | 1.000 | 0.580 | | Deagle (WEPN_027) | 50AE | FMJ | not stated | 82 | 0.972 | 0.546 | 0.282 | 0.095 | | GGX 17 (Glock17) | 9mm | FMJ | 50 | 73 | 0.916 | 0.471 | 0.180 | 0.053 | | GGX 18 (WEPN_032) | 9mm | FMJ | 50 | 73 | 0.916 | 0.471 | 0.180 | 0.053 | | Judge | 45Colt | FMJ | 50 | 62 | 0.938 | 0.630 | 0.375 | 0.217 | | M1911 (WEPN_026) | 45ACP | FMJ | 50 | 35 | 0.899 | 0.527 | 0.231 | 0.080 | | MP5 (WEPN_028) | 9mm | FMJ | 200 | 122 | 1.000 | 0.290 | 0.048 | 0.019 | | AMP-9 (MP9) | 9mm | FMJ | not stated | 122 | 1.000 | 0.218 | 0.042 | 0.019 | | PP-19 Vityaz (SMG_03) | 9mm | FMJ | 200 | 321 | 1.000 | 0.413 | 0.078 | 0.026 | | Super-45 (Vector) | 45ACP | FMJ | 50 | 59 | 0.370 | 0.177 | 0.098 | 0.052 | | PP-19 Bizon (WEPN_031) | 9mm | FMJ | 200 | 321 | 1.000 | 0.413 | 0.078 | 0.026 | | M500 | 12g | Buckshot (8 pellets) | 70 | 92 | 0.974 | 0.517 | 0.213 | not reached | | MP43 | 12g | Buckshot (8 pellets) | not stated | 62 | 0.901 | 0.487 | 0.198 | not reached | | MK22 | 308Win | FMJ | 1000 | 1030 | 1.000 | 1.000 | 1.000 | 0.693 | | AMR 50 (SR_04) | 50Cal | FMJ | 2000 | 2016 | 1.000 | 1.000 | 1.000 | 1.000 | | Mosin Nagant (WEPN_017) | 762x54mm | FMJ | 500 | 1085 | 1.000 | 1.000 | 0.743 | 0.363 | | SV98 | 762x54mm | FMJ | 1000 | 905 | 1.000 | 1.000 | 1.000 | 0.594 | | Scout Rifle TD (WEPN_035) | 556mm | FMJ | 300 | 355 | 1.000 | 0.847 | 0.285 | 0.081 |

The speed scale is clamp(speed / reference, 0, 1). The reference is the weapon’s TypicalSpeed where the weapon overrides it, and otherwise the projectile asset’s TypicalSpeed. So the scale applies to every weapon, not only the ones that override the speed. The muzzle speed is above the reference for every row, so the scale is 1 at the muzzle. The first point where it falls below 1 ranges from 35 m (M1911) to 2016 m (AMR 50), and the heavy rounds (SV98, MK22, SVD, Mosin Nagant, PKM) keep a scale of 1 until about 900 to 1150 m. The speed comes from a drag-only flight integrated in 1 ms steps. Two choices move it slightly. Solving for an elevated shot that lands at the muzzle height changes the scale by under 1 percent at 200 and 400 m for rifles; the largest change found is 22 percent, for the GGX 17 at 1200 m (0.18 on the line of sight, 0.22 elevated). The game steps the flight by floor(1000 / Rate) ms, and the Rate is not read; 16 ms steps change the scale by at most 2.2 percent (M500 buckshot at 800 m). Tracer, HP and AP rows use the base projectile asset, because the modifier values the game applies to those rounds are not in the export.

Four cubic SMG curves

Four SMGs have cubic curves: the MP5 (WEPN_028), the AMP-9 (MP9), the PP-19 Vityaz (SMG_03) and the PP-19 Bizon (WEPN_031, which has the same curve as the Vityaz). Their keys store tangents, so the spline is exact. Read as linear between the same keys, the curve overstates these four by 17.8 percent or more from 400 m to 1000 m. At 400 m the exact curve multipliers are 0.442 (MP5), 0.333 (AMP-9) and 0.462 (Vityaz and Bizon), against 0.544, 0.500 and 0.544 linear. At 800 m they are 0.133, 0.115 and 0.158, against 0.322, 0.300 and 0.322. These are curve values; the speed scale applies on top. The table gives the largest gap over 0 to 1200 m. The Vector has a steep curve, but its keys are all linear, so it is not cubic.

| Weapon | Largest gap between the linear and exact curve (multiplier) | At (m) | |—|—:|—:| | MP5 (WEPN_028) | 0.207 | 673 | | AMP-9 (MP9) | 0.218 | 609 | | PP-19 Vityaz (SMG_03) | 0.175 | 692 | | PP-19 Bizon (WEPN_031) | 0.175 | 692 |

6. Armor on every hit location

Sections 1 to 4 evaluate armor at Torso.Upper (vests) and Head (helmets). The armor rule keys on the hit location. An armor item applies only where its CoveredHitLocations lists that location, and any other armor is removed from the calculation. For FMJ the damage factor is 1 minus R/100, where R is the item’s reduction. The M4 shows the effect: a Torso.Middle hit into a Heavy vest takes 13.6, not the 27.2 unarmored, and a Neck hit into a Heavy helmet takes 24.7, not 49.4.

Coverage

Each cell is the reduction the item gives at that location. Only the locations that some item covers are shown.

| Item | Kind | Class | Head | Neck | Torso.Upper | Torso.Middle | Torso.Lower | Pelvis | Arm.Upper | |—|—|—|—:|—:|—:|—:|—:|—:|—:| | ID_LightArmor | vest | Light | | | 30% | 30% | 30% | | | | ID_MediumArmor | vest | Medium | | | 40% | 40% | 40% | | | | ID_HeavyArmor | vest | Heavy | | | 50% | 50% | 50% | | | | ID_SuperHeavyArmor | vest | SuperHeavy | | | 60% | 60% | 60% | 60% | 60% | | ID_GhillieArmor, ID_GhillieArmorDry | vest | Ghillie (effect not determined, treated as none) | | | | | | | | | ID_LightHelmet | helmet | Light | 30% | | | | | | | | ID_MediumHelmet | helmet | Medium | 40% | | | | | | | | ID_PilotHelmet | helmet | Pilot | 30% | | | | | | | | ID_HeavyHelmet | helmet | Heavy | 50% | 50% | | | | | | | ID_SuperHeavyHelmet | helmet | SuperHeavy | 60% | 60% | | | | | | | ID_TankHelmet | helmet | Tank | 55% | 55% | | | | | | | ID_GhillieHelmet, ID_GhillieHelmetDry | helmet | Ghillie (effect not determined, treated as none) | | | | | | | |

No location is covered by both a vest and a helmet. Covered by no item (5): Arm.Lower, Arm.Hand, Leg.Thigh, Leg.Calf, Leg.Foot.

A vest and a helmet never cover the same location, so only one covering piece is ever in play at a location. Two vests or two helmets worn together are not modelled: the game is assumed to have one slot of each kind. The Ghillie items have no reduction and no covered location, so they have no effect at any location.

M4 FMJ at each location and armor class

Each cell is M4 FMJ damage per hit with that class. “no cover” means no item of that class covers the location, so the value is the unarmored one in the first column. The Light, Medium and Pilot helmets cover only the head; the Heavy, SuperHeavy and Tank helmets cover the head and neck.

| Location | no armor | Light | Medium | Pilot | Heavy | SuperHeavy | Tank | |—|—:|—:|—:|—:|—:|—:|—:| | Head | 65.8 | 46.1 | 39.5 | 46.1 | 32.9 | 26.3 | 29.6 | | Neck | 49.4 | no cover | no cover | no cover | 24.7 | 19.7 | 22.2 | | Torso.Upper | 27.3 | 19.1 | 16.4 | no cover | 13.6 | 10.9 | no cover | | Torso.Middle | 27.2 | 19.0 | 16.3 | no cover | 13.6 | 10.9 | no cover | | Torso.Lower | 25.8 | 18.1 | 15.5 | no cover | 12.9 | 10.3 | no cover | | Pelvis | 25.2 | no cover | no cover | no cover | no cover | 10.1 | no cover | | Arm.Upper | 15.1 | no cover | no cover | no cover | no cover | 6.0 | no cover | | Arm.Lower | 12.6 | no cover | no cover | no cover | no cover | no cover | no cover | | Arm.Hand | 7.6 | no cover | no cover | no cover | no cover | no cover | no cover | | Leg.Thigh | 15.1 | no cover | no cover | no cover | no cover | no cover | no cover | | Leg.Calf | 12.6 | no cover | no cover | no cover | no cover | no cover | no cover | | Leg.Foot | 7.6 | no cover | no cover | no cover | no cover | no cover | no cover |

Top five at the Neck, into a Heavy helmet

Against the Neck into a Heavy helmet, AP does more damage than FMJ for every weapon in the top five except the AMR 50. The two columns are ranked separately.

Leader. Neck with a Heavy helmet. AP: AMR 50 (SR_04) at 87.5; FMJ: AMR 50 (SR_04) at 109.4. Shotguns have no AP or FMJ round, so they are not in this ranking.

| Rank | AP | FMJ | |—:|—|—| | 1 | AMR 50 (SR_04): 87.5 | AMR 50 (SR_04): 109.4 | | 2 | MK22: 86.4 | MK22: 72.0 | | 3 | SV98, Mosin Nagant (WEPN_017): 84.5 | SV98, Mosin Nagant (WEPN_017): 70.4 | | 4 | Deagle (WEPN_027): 59.5 | Deagle (WEPN_027): 49.6 | | 5 | Scout Rifle TD (WEPN_035): 50.2 | Scout Rifle TD (WEPN_035): 44.8 |

AP beats FMJ at this location for the MK22 (86.4 against 72.0), the SV98 and Mosin Nagant (84.5 against 70.4), the Deagle (59.5 against 49.6) and the Scout Rifle TD (50.2 against 44.8). The AMR 50 stays ahead with FMJ (109.4 against 87.5), because its AP damage is always 0.8 times its FMJ damage (section 2). The M4 is not in the top five; its FMJ is 24.7 and its AP is 27.6. Arm.Lower, Arm.Hand, Leg.Thigh, Leg.Calf and Leg.Foot have no covering item, so a hit there is unarmored whatever the armor class. Explosive and radial hits are not covered by these tables (see Limitations).

7. Ricochet and penetration

Sections 1 to 6 treat a bullet as stopping at its first hit. The export holds the constants for a bullet that bounces off or passes through a surface. It does not hold the physical material of any world wall or prop, so this section describes each ammo type against each surface type and cannot give a result for a specific wall.

Determined in the export or traced in code:

  • The constants of 63 surface types: exit-speed modifier, ricochet probability and restitution range (data).
  • The ammo modifiers: penetration effectiveness, exit speed, effective range and tracer chance (data).
  • The pass condition: a surface is passed when the bullet’s capacity is greater than the thickness divided by the cosine of the impact angle, and the thickness is at least 0.01 (traced).
  • The speed lost in a pass, and the damage factor at the next impact (traced).
  • Ricochet is tried before penetration, so a hit that ricochets is not also penetrated (New, unverified).
  • A bullet with penetration effectiveness of 2 or more cannot ricochet. Between 2 and 1 the ricochet term ramps up, and it is 1 at 1 or below (New, unverified).

Not determined:

  • The physical material, density and thickness of any world wall or prop. The export has 156 data files with a PhysicalMaterialOverride; 9,076 entries are null (the mesh default, which is not exported) and only 125 name a material.
  • The unit of thickness, so every load in this section is dimensionless.
  • The exact ricochet reflection, the deflection and the ratio gate. They are decoded from unreviewed pseudocode (New, unverified).
  • The hit limit. Round 39 read the code (0x6F354DD-0x6F35516, disassembly): the two history bitmaps are 16 bits wide and are set with bts ecx, eax (bit number = the 16-bit hit counter, taken modulo 32 by the instruction) and stored back with mov word. Hits 1 to 16 set bits 0 to 15; hits 17 to 32 set a bit that is cut off by the 16-bit store and record nothing; hit 33 sets bit 0 again. No cap on the number of hits was found. Static reading, not run (round 39 evidence).
  • The exit deflection after a pass and its effect on a target behind a wall.
  • Pellet spread behind a pass. The shotgun rows use the per-pellet formulas only.
  • Any armor interaction after a pass. None was found.

Ammo modifiers

The modifiers change penetration only. None of them changes a damage value. Each multiplies the base value from the caliber’s projectile asset. The exit-speed multiplier scales the exit term of the speed-after-pass formula (below): AP multiplies it by zero, HP by 0.15 and Tracer by 0.075.

| Ammo | Penetration effectiveness | Exit speed | Effective range | Tracer chance | |—|—:|—:|—:|—:| | FMJ (no modifier asset) | x1 | x1 | x1 | none | | Tracer | x1 | x0.075 | x1 | 1 | | HP | x0.1 | x0.15 | x0.8 | none | | HP tracer | x0.1 | x0.15 | x0.8 | 1 | | AP | x1.8 | x0 | x1.2 | none | | AP tracer | x1.76 | x0 | x1.2 | 1 |

Surface types

The ricochet probability is zero for six surface types in the export, not only the two flesh types. Body and Head are the flesh exceptions. Fur, Lava, Leaf and Water are zero as well, and what that means for walls is not determined. The 24 unnamed types 39 to 62 share a ricochet probability of 0.5, an exit-speed modifier of 0 and restitution 0.4 to 0.6. Names are the engine’s physical surface names. A physical material named PM_Concrete using the Concrete surface is an assumption by name; the export does not show that assignment.

| Measure | Result | |—|—| | Surface types in the export | 63: 39 named (SurfaceType0 to 38), 24 unnamed (39 to 62) | | Nonzero ricochet probability | 57 of 63. Zero for 6: Body, Fur, Head, Lava, Leaf, Water | | Nonzero exit-speed modifier | 36 of 63. Zero for 27: Default, Body, Head, and the 24 unnamed types | | Unnamed types 39 to 62 | ricochet probability 0.5; exit-speed modifier 0; restitution 0.4 to 0.6 |

| Type | Name | Exit-speed modifier | Ricochet probability | Restitution (min to max) | |—:|—|—:|—:|—| | 3 | Body | 0 | 0 | 1 to 1 | | 17 | Head | 0 | 0 | 1 to 1 | | 0 | Default | 0 | 0.3 | 0.25 to 0.45 | | 4 | Brick | 0.3 | 0.25 | 0.15 to 0.35 | | 8 | Concrete | 0.4 | 0.35 | 0.25 to 0.5 | | 14 | Glass | 0.05 | 0.1 | 0.15 to 0.4 | | 23 | Metal | 0.4 | 0.45 | 0.35 to 0.65 | | 28 | Plaster | 0.25 | 0.2 | 0.15 to 0.35 | | 35 | Wood | 0.15 | 0.3 | 0.15 to 0.35 | | 38 | BulletProofGlass | 1 | 0.1 | 0.15 to 0.4 | | 18 | Ice | 0.15 | 0.8 | 0.5 to 0.85 |

Speed after a pass

The formulas below are as the evidence doc states them, with the flags it gives. The capacity, pass and speed formulas are traced in native code. The ricochet decision that comes before a pass is New and unverified. The exit deflection distribution is not re-derived.

  • Capacity: v x 0.01 x m x c x E / (rho x 0.099999994 x d^2), where v is the impact speed, m the projectile mass, d its diameter, c the cosine of the impact angle, E the penetration effectiveness of the ammo and rho the larger density of the two materials.
  • Pass: capacity > T / c and T >= 0.01. T is the thickness along the ray, in an engine unit that is not established.
  • Speed after a pass: v x (1 - T / capacity) x clamp(1 - 0.5 (p + s), 0, 1), followed by a random exit deflection. p is the ammo’s exit-speed multiplier and s the surface’s exit-speed modifier.
  • Damage at the next impact: clamp(v_after / reference, 0, 1). The current impact keeps its pre-exit speed, so the damage after a pass is scaled at the next hit, not this one.

The load f = T / capacity is the speed loss. The JSON writes the capacity coefficient as K = v x 0.01 x m x E / (0.099999994 x d^2), so the capacity is K c / rho.

Worked example (chosen input)

The evidence doc works one example. The load X = T rho / c is a chosen input, 45, not a game value: no wall’s thickness and density are in the files. The surface values are those of Concrete (SurfaceType8), which is an assumption. Both rounds leave the A-91 at 71500 cm/s, against a speed-scale reference of 40400 cm/s.

  FMJ 5.56 AP 5.56
Penetration effectiveness E 1 1.8
Exit-speed multiplier p 0.18 0
K 90.23 162.41
f = X / K 0.499 0.277
Surface factor, clamp(1 - 0.5 (p + 0.4)) 0.710 0.800
Speed after the pass (cm/s) 25447 41351
Damage fraction at the next impact 0.630 1.000

At 35 degrees both rounds have an effectiveness of at least 2 (2.0 for FMJ, 3.6 for AP), so neither has a ricochet chance. The AP figure is not extra damage: the speed scale is capped at 1, and AP leaves the round above the reference speed.

No per-wall or per-prop figures exist. The export does not assign a physical material to any world mesh, so this page cannot give a ricochet or penetration result for any specific wall, door or prop. Every figure in this section is per surface type or per ammo type.

Limitations

  • Hostile alignment, target outside any vehicle, no instigator tags. Entries that need an instigator tag are counted as unknown and not applied.
  • Distance, armor and penetration values are a model. Gravity is left out, the shot runs along the line of sight, and there is no wind, spread, pellet separation or target height. Sections 5 to 7 were derived from the data and the documented rules; no live game observation was made. The Judge and the shotguns follow the data as stated in section 5.
  • Vendor availability is not modeled. The ammo a weapon can load is taken from the ammo items whose caliber the weapon supports. Whether the vendor shows an item (bShowInVendor) is not used. Some variants are hidden from the vendor, and what that means in play is not determined. See the ammo availability evidence.
  • Rate of fire is RoundsPerMinute from the weapon’s stats asset. The LMG (PKM) and the Glock 17 omit it, and an omitted property takes the struct constructor default, 600 (0x699E6C0, Weapons v2 section 3); since round 39 the table uses 600 for both (rpm_source class_default_native in weapon-damage.json). No code that rewrites the value after InitWeapon was found.
  • Excluded weapons. Launchers (RPG-7, MAAWS, MGL-40, 9K333 Verba, the underbarrel grenade launcher and the AT4 asset) fire rockets or grenades, not bullets. The combat bow fires arrows. Fists, the build tools and the hammers are not weapons with a caliber. The artillery and tank barrel tests, the mounted M2 Browning and the vehicle weapons are excluded as well. See the weapon damage evidence.
  • Items that are not determined. These are listed in the evidence docs and are not settled by the game files:
    • What the Ghillie suit does. Its armor items carry no stages and no covered locations, so the tables treat it as no armor. The damage tables do hold Ghillie rows (Armor entry 7 at -10000 percent, Helmet entry 6 at -1000 percent), and the suit’s AppliedEffects are not in the export, so its real effect is not determined.
    • The ArmourPiercing item tag (the .338 Norma AP rounds, Id.Item.338Nor.ArmourPiercing) is spelled the British way while the ammo-modifier map key is Meta.Damage.AmmoModifier.ArmorPiercing; the names do not match, so those rounds behave as FMJ (Data, round 39 re-check). No weapon in the export chambers .338 Norma, so no row shows this.
    • The 545mm.Tracer item has the caliber tag but no Item.Ammo context (it has Item.Ammo.Type). All 69 magazine ammo containers filter on the caliber context only (Item.Caliber.*, never Item.Ammo), and Id.Item.545mm.Tracer is the default content of the AK74M standard 30-round and extended 60-round magazines, so by the data it loads (Data; the native load code was not read). The table includes it.
    • Vehicle weapons by caliber (round 39, from SupportedCaliber of each vehicle weapon stats asset): 7.62x51 mm (308Win): DA_ROT_03_AttachedMachineGuns, DA_ROT_04_MountedMachineGun, DA_TNK_01_MachineGun_Weapon, DA_WHL_05_RingMinigun; 20x102 mm: DA_STN_02_Heavy_MainCannon; 30 mm: DA_ROT_02_Weapon_30mmCannon; 35x228 mm: DA_TNK_03_Weapon; .338 Norma: none; 120x570: DA_TankBarrelTest, DA_TNK_01_Heavy_Weapon; 120x800: DA_STN_03_Heavy_MainBarrel; 125x570: DA_TNK_04_Weapon; 122 mm: DA_ROT_02_Weapon_122mm, DA_ROT_03_Weapon_122mm; 155 mm: DA_TNK_01_Artillery_Weapon, DA_ArtilleryBarrelTest. The mounted .50 DA_MWSY_001 loads 50Cal, DA_STN_01 loads 72mm.
    • Whether a magazine or chamber loads an item with no Item.Ammo context: by the data the container filters do not test that context (see the 545mm.Tracer line); the native filter code was not located. What loot or world spawns offer ammo: see assets/data/ammo-availability.json (round 24).
    • The density, thickness and surface type of world walls and props. The export has no physical-material assignment for any world mesh, so no per-wall or per-prop figure exists (section 7).
    • The unit of wall thickness, so the ricochet and penetration loads are dimensionless.
    • The ricochet reflection, the deflection and the ratio gate. They are decoded from unreviewed pseudocode and marked New in section 7.
    • The exit deflection after a pass (the hit-history bitmaps are 16 bits wide, see the not-determined list above).
    • The game’s step length for flight is floor(1000 / SimulationFrameRate) ms with SimulationFrameRate 30 (config and class default, Projectile Flight section 3), so 33 ms. The model here still steps 1 ms; a plain Euler step at 33 ms would move the distance where the speed scale begins to bite by up to about 10 percent (M500 buckshot from 92 m to 83 m; 2.5 percent at 16 ms steps). That scheme is an exploratory check, not the game’s, so every cell with a speed scale below 1 carries this uncertainty.
    • Speed modifiers on modifier ammo: none exist (round 39). The five DA_AmmoModifier_* assets set only PenetrationEffectivenessMultiplier, EffectiveRangeMultiplier, TracerChance and PenetrationExitSpeedMultiplier; the native applier 0x6BBAB70 has a branch for Projectile.Attributes.TypicalSpeed but no modifier asset carries that key, and the fire path 0x6F1DDC0 reads the base stats. Tracer, HP and AP rows use the base projectile asset, which is what the game does.
    • The M500 and MP43 curve enable flag: bUseDistanceDamageFalloffCurve is omitted from both assets, an omitted property equals the constructor default, and 31 other stats assets set it to true explicitly (the export would drop those if true were the default), so the default is false and the stored three-key shotgun curve is not applied (Derived, round 39). The model matches.
    • Explosive and radial hits ignore location coverage: their armor hook accepts every equipped piece (round 8). The location tables cover direct bullet hits only.
    • Pilot and Tank helmets: each helmet item carries its own Meta.Damage.Helmet.<Class> tag (Pilot, Tank, Light, Medium, Heavy, SuperHeavy, plus the Ghillie ones) and all list the one slot context Inventory.Slot.Helmet (vests Inventory.Slot.Vest, armor Inventory.Slot.Armor), so by the data one item per slot (round 39). That the armor rule matches through the parent tag is still not checked in a live hit.
  • Odd numbers in the data. The Scout Rifle TD (WEPN_035) fires 556 mm but does 73.9 per torso hit with FMJ, against 27.3 for the M4. The gap comes from its sniper weapon factor (x2.64) in the damage rules. Round 39 static check: both start from a base of 28 and take the same entries (5, 138, 140); entry 5 is the bone-damage custom operation, whose table DT_InfantryData_BoneDamageModifiers gives the Weapon.Sniper row 2.64 on Torso.Upper (the Weapon.AR row gives the M4 0.974), so 28 x 2.64 = 73.9 is what the data produces. Whether the developers intend it is not something the files say.