Jump to content
IL-2 Series Forum

Recommended Posts

Posted (edited)

🛠️ GUNS_revision_v0.1 — Returning to the Physics of Damage

Hello pilots!

I'd like to present my new project, which I'm developing together with my virtual analyst. This isn't just another set of tweaked numbers, but an attempt at a systematic revision of ballistics and high-explosive damage for aircraft ammunition in IL-2 Great Battles.

1️⃣ What the mod does (in brief)

GUNS_revision_v0.1 recalculates the damage parameters for high-explosive (HE) shells of all calibers based on a unified physical model. It uses real shell characteristics (mass, explosive filler mass, explosive type) and physical formulas: the Gurney equation for calculating fragment velocities, and empirical relationships for blast effects.

The result: Damage becomes predictable and historically accurate. Cannons no longer feel like pea-shooters or "overpowered lasers" – they perform as they should in reality.


2️⃣ How we arrived at these values

The mod development followed several steps, grounded in analysis of game files and comparison with physical laws.

  1. Unpacking .gtp files: Using the unGTP-IL2 utility, we extracted the game files and gained access to explosion configurations (*_object.txt). These files contain key parameters: Radius (damage radius), ArmorFoug (blast effect), ShrapnelQuantity (number of fragments), FragmentMass (fragment mass), and ArmorShr (fragment effect).

  2. Deriving an empirical coefficient: For large calibers, where the damage was likely calculated correctly, we derived an empirical coefficient K = Damage / √m_he. The average value for reference shells (45mm, 50mm, NS-37) was K ≈ 465. This became our "constant" to evaluate how well any given shell fits the overall logic.

     
     
    Shell HE filler (g) In-game damage (0mm armor) Coefficient K
    45mm 20-K 135 5362 ~461
    50mm KwK 39 175 6206 ~469
    NS-37 35 2486 (original) ~420
  3. Discovering systematic underperformance: Comparing calculated values with in-game values revealed a clear pattern:

    • For 20–25 mm calibers, blast damage is reduced by 15–30% compared to the formula.

    • For 76–88 mm calibers, damage is actually overstated by 10–15% (likely for visual spectacle).

    • Fragment mass for most shells is understated by a factor of 2–3, while their penetration is overstated.

  4. Recalculating fragment effects: To calculate fragment initial velocity, we used the Gurney equation (V = √(2E) * √(β / (1 + 0.5β))), where β = m_he / m_case, and √(2E) is the explosive constant (≈2370 m/s for TNT, ≈2850 m/s for PETN). We also applied empirical fragmentation coefficients to determine the proportion of the casing mass that turns into effective fragments (0.15–0.25 for thick-walled shells, 0.50–0.70 for thin-walled "mine" shells).

  5. Adjusting fragment penetration: We corrected ArmorShr parameters so that fragment penetration matches their actual mass and velocity, using the De Marre equation and data on aircraft skin thickness (duralumin 1–2 mm, plywood 3–5 mm).


3️⃣ What's already done for version 0.1

The current version includes corrections for the following shell types:

 
 
Category Shells Status
Soviet HE ShVAK (early/late), VYa-23, NS-37, 76mm F-34, 76mm 34-K Done
German HE Minengeschoß (MG 151/20), MK 108, BK 3.7, Pak 35/36, 88mm Flak 37 Done
British HE Hispano Mk.II Done
Machine guns HE 12.7mm UB Done
Armor-piercing Checked and found to be correct Verified

LuaScripts.zip

 

GUNS_revision — Damage Recalculation Methodology

In short: We recalculated high‑explosive (HE) shells for all calibers, using data from the game files and standard physics formulas. The goal was to remove systematic discrepancies that did not match the real characteristics of the projectiles.


1. What we did

We analysed the explosion configuration files (*_object.txt) for all HE shells. These files contain:

  • Radius – blast search radius

  • ArmorFoug – blast effect

  • ShrapnelQuantity – number of fragments

  • FragmentMass – mass of a single fragment

  • ArmorShr – fragment effect

We compared in‑game values against values calculated from physical formulas.


2. Deriving the baseline coefficient for blast damage

Some shells in the game appear to follow a consistent logic — specifically, the 45 mm, 50 mm and NS‑37 rounds. For these, we calculated the ratio:

K = HE_Damage / √(HE_mass)

 
 
Shell Calibre HE mass (g) √(HE mass) HE damage (0 mm) K
45 mm 20‑K 45 mm 135 11.62 5362 461
50 mm KwK 39 50 mm 175 13.23 6206 469
NS‑37 (stock) 37 mm 35 5.92 2486* 420
NS‑37 (revised) 37 mm 35 5.92 2751 465

* The stock NS‑37 damage was lower than the formula suggested, so we also corrected it.

The average K for these reference shells is ≈ 465. We used this as a unified coefficient for all HE shells, regardless of calibre.

Using this baseline, we found:

 
 
Calibre group Deviation from baseline
20–25 mm (ShVAK, MG 151/20, Hispano, VYa‑23) Under‑performing by 15–30%
30 mm (MK 108) Within ±5%
37 mm (BK 3.7, Pak 35/36) Within ±5–10%
76–88 mm Over‑performing by 10–15%

We brought the 20–25 mm rounds up to the baseline K = 465.


3. How we recalculated fragment damage

We rebuilt the fragment model from scratch, using physics rather than adjusting the existing numbers.

3.1. Number of fragments

We applied empirical fragmentation coefficients based on shell construction:

  • Thick‑walled shells (ShVAK, VYa, NS‑37):
    ShrapnelQuantity = 0.15–0.25 * m_case

  • Thin‑walled shells (Minengeschoß, BK 3.7):
    ShrapnelQuantity = 0.50–0.70 * m_case

where m_case = m_shell — m_he is the casing mass.

3.2. Mass per fragment

FragmentMass = m_case / ShrapnelQuantity

3.3. Initial fragment velocity

We used the Gurney equation:

V = √(2E) * √(β / (1 + 0.5 * β))

where:

  • √(2E) is the Gurney constant for the explosive (TNT ≈ 2370 m/s, PETN ≈ 2850 m/s, A‑IX‑2 ≈ 2700 m/s)

  • β = m_he / m_case

3.4. Kinetic energy per fragment

E = 0.5 * FragmentMass_kg * V^2

3.5. Fragment damage in game units

We converted energy into game damage units using an empirical factor of 0.4, which matched the reference shells:

Damage_shr = 0.4 * E


4. How we recalculated fragment penetration

Fragment penetration (ArmorShr) was adjusted to reflect the fragment’s mass and velocity.

We used a simplified form of the De Marre equation:

b = C * (m^0.5 * V^0.7) / d^0.75

where:

  • b – penetration in mm (duralumin / aluminium)

  • m – fragment mass (kg)

  • V – fragment velocity (m/s)

  • d – fragment calibre (≈ shell calibre, mm)

  • C – empirical coefficient (≈ 0.05 for duralumin)

Example for Hispano Mk.II:

  • Fragment mass: 4.6 g

  • Velocity: 858 m/s

  • Calibre: 20 mm

  • Calculated penetration: ≈ 6 mm


5. Recalculation example: Hispano Mk.II

 
 
Parameter Stock value Revised value Source
Radius 4.6 m 6.8 m 3.0 * ∛(11.3)
HE damage (0 mm) 1286 1563 465 * √(11.3)
Fragment count 27 26 0.22 * 118.7
Fragment mass 1.8 g 4.6 g 118.7 / 26
Initial frag velocity 701 m/s 858 m/s Gurney equation
Fragment damage (0 m) 174 677 0.4 * E
Fragment penetration 4 mm 6 mm De Marre equation

6. Data sources

  • Game files: *_object.txt, shell_*.txt

  • Shell mass, HE mass, explosive type – from files or historical references

  • Gurney equation – for fragment velocity

  • De Marre equation – for fragment penetration

  • Empirical fragmentation coefficients – from artillery ammunition reference literature


7. Summary

  • No new mechanics were introduced.

  • All data is taken from the game files and standard physics.

  • All shells were normalised to a single coherent model, removing systematic under‑ and over‑performance.

  • The method is transparent and reproducible — anyone can verify it with the same data and formulas.


If you have different data (HE mass, steel grade, fragment shape, etc.), we are happy to review it. For now, the mod uses an open and verifiable methodology.

Edited by Aed
  • Like 1
  • Thanks 4
  • Upvote 2
  • Aed changed the title to GUNS_Revision_v01
MajorMagee
Posted (edited)

I didn't see where you account for the non-linear scaling ratio of explosive content to metal shell surface area. Your average K factor excluded the large caliber shells where this comes into play. Did I miss something? I'll admit, it was hard for me to follow the logical flow of your calculations.

Edited by MajorMagee

Service To The Line,

On The Line,

On Time!

9800X3D, 64 GB DDR5, RTX 5070-Ti 1024 GB/s @ 2700 MHz 0.85V, Calibrated 8 bit IPS 3440x1440 @ 100Hz

Posted

We didn't ignore non‑linear scaling. We excluded large calibers (76‑88 mm) from the baseline K = 465 precisely because their thicker walls and higher explosive-to-metal ratios introduce those non‑linear effects. Their deviations (+10‑15%) are preserved as physically consistent.

For fragment modelling, we used the Gurney equation (which directly accounts for the C/M ratio) and applied different fragmentation coefficients (0.15‑0.25 for thick‑walled, 0.50‑0.70 for thin‑walled shells). So the scaling is built into the model, just not in the simple baseline coefficient.

The coefficient 465 is the average value for "correct" 20-50mm caliber shells, where the game appears to use correct physics.

The full table.

Снаряд Калибр m_he (г) sqrt(m_he) Damage (game) K = Damage / sqrt(m_he)
ШВАК (ранний) 20 мм 2.6 1.61 532 330
ШВАК (поздний) 20 мм 5.6 2.37 847 357
Flak 38 20 мм 6.2 2.49 900 361
Minengeschoß 20 мм 20 4.47 1798 402
Hispano Mk.II 20 мм 11.3 3.36 1286 383
ВЯ-23 23 мм 13 3.61 1266 351
25-мм 72-К 25 мм 13 3.61 1397 387
НС-37 37 мм 35 5.92 2486 420
45-мм 20-К 45 мм 135 11.62 5362 461
50-мм KwK 39 50 мм 175 13.23 6206 469
BK 3.7 37 мм 85 9.22 4127 448
Pak 35/36 37 мм 44 6.63 2836 428
MK 101 30 мм 72 8.49 3756 442
MK 108 30 мм 72 8.49 3946 465
76-мм Ф-34 76 мм 710 26.65 13636 512
76-мм 34-К 76 мм 458 21.40 10655 498
88-мм Flak 37 88 мм 900 30.00 15588 520
12.7-мм УБ (HE) 12.7 мм 0.8 0.89 257 289
Sudkan
Posted

Sounds good and rational. It would be good if the developers—or someone with a proper understanding of the topic—could review your calculations and methodology, just for the sake of precision. Man, this seems like a correct use of those LLMs.

Thanks for your work.

FPS_Cutlass
Posted

We need practical tests on a server like BERLOGA to get statistics that confirm your argument.

=RP=Levik
Posted (edited)
Implementing this on the Berloga won't achieve anything. Actually, we need the devs to look into it, run a series of automated tests on their own resources, provide their conclusion, and, if successful, implement it in the next patch.
 
 
Edited by =RP=Levik
FPS_Cutlass
Posted
37 минут назад, =RP=Levik сказал:
Implementing this on the Berloga won't achieve anything. Actually, we need the devs to look into it, run a series of automated tests on their own resources, provide their conclusion, and, if successful, implement it in the next patch.
 
 

I don't think the developers have the time and facilities to conduct extensive testing

=RP=Levik
Posted

I guess testing its not a matter of much time and facilities, job is allready done, whats left is to install the mod and run automated test. The main question is what to do next if Aed is right.

  • Haha 1
FPS_Cutlass
Posted
3 часа назад, =RP=Levik сказал:

I guess testing its not a matter of much time and facilities, job is allready done, whats left is to install the mod and run automated test. The main question is what to do next if Aed is right.

You know what "Everything Is Right and "In Two Weeks are....?   😀

=RP=Levik
Posted

I remember one more "We shall live with it" ©

MDzmitry
Posted

I'd probably only argue about fragment penetration, since having them travel through airframes modelled with only the necessary minimum of modules isn't equal to travelling through airframes full of small parts, tubings, wiring and so on and so forth. 

So the in-game number (being ~33% less in Hispano's case) is more than tolerable.

Posted

Agreed — the simplified game airframe makes lower fragment penetration a reasonable compromise. However, the updated DM (circa 2020) v4.005 was meant to address this by modelling internal structure elements, so the need for artificial compensation is hopefully reduced. 

Posted (edited)

Interesting to have a detailed calculation of the effectiveness of the ammunition, thank you very much.

For the usage of the calculated values of course the simulation of the damage / armor protection in Great Battles has to be considered too. 

For example 2 years ago there was a discussion about the effectivess of the 30mm/ 37mm AP ammo when used for Ju87 / Hs129 AT missions. The developers insisted on that the ammo is realistic. I flew many test missions and it seemed to me, that it was comparable effective to hit the tanks at the sides and to disable the crew / to damage the tank. But hits in the rear part the tank, where the engine is located, seemed to me comparable uneffective.

When I had a look at the tank definition files it seemed to me that the "life values" of the engines were a bit too high when being hit. By creating a small mod with reduced "life values" it was possible to improve the effectiveness of hits in the engine.

But altogether seen this was no exact science and the testing was extremely time consuming...

So I think to overwork the whole ammunition would mean to invest extremely much time in testing ...

But I think the calculated values are very valuable wherever a new issue with ammunition effectiveness is reported...

Edited by kraut1
  • Upvote 1
Avimimus
Posted

Interesting work.

I thought I'd raise the two issues which annoy me the most:

1) Currently HE rounds (in the unmodified game) are much more effective than AP rounds against ships. I've considered adding more armour to ship hitboxes in response. In contrast, 57mm AP rounds from the Mosquito are relatively ineffective against ships (as waterline hits causing flooding is not simulated).

2) Rifle calibre machine guns they don't do enough damage to produce critical hits in most cases, as the hitboxes aren't as detailed as in Korea... as a result the effect of the rounds becomes averaged - and the best strategy is simply to fire as many rounds as possible into the same spot until enough damage 'accumulates'. In reality the damage of rifle calibre guns would probably have involved more chance hits against critical components (pipes, wires, joints, bolts)... and been less predictable.

I'm quite open to any ideas on how to fix these two areas.

P.S. There was an argument that the Mk-108 wasn't modelled as being too weak, but as failing to penetrate prior to detonation (leading to less effect).

Avimimus
Posted
7 hours ago, kraut1 said:

When I had a look at the tank definition files it seemed to me that the "life values" of the engines were a bit too high when being hit. By creating a small mod with reduced "life values" it was possible to improve the effectiveness of hits in the engine.

Yes, I had similar thoughts about truck engines. I spent a lot of time looking for footage of guns impacting engine blocks... it'd have been very good to probably have a second hit-box at the top of the engine to represent all of the piping and the cylinder heads. I'm not sure if I released the mod on the old forum?

I think, in some cases, lowering the life values could make sense.

  • Like 1
Hook_Echo
Posted

@Aed looking forward to trying your mod. I think the hispanos are about to shred. Like Avimimus I'm wondering what your thoughts are on non explosive rounds, .50's and .30's. These are already underperforming and I'm afraid your mod will leave these completely in the dust. Maybe they could frag into like 3 pieces. Im still running an old mod for the .50's that give them a little explosive and it makes them okay. I wonder if there's anything that can be done to get them to light fires.

Posted (edited)

Thanks for the feedback!

On the topic of bullets – I think the kinetic damage for rifle-calibre and .50 cal rounds in the game is actually calculated correctly, using the same formulas as everything else. Maybe we could add a couple of tiny fragments to the .50 API rounds, but I'm not sure it would change much in practice – because in the end, the effectiveness depends mostly on the Damage Model itself, especially how internal modules are modelled and how damage accumulates.

The incendiary effect for bullets in Great Battles is currently based on a probability roll, unlike in Korea where it's tied directly to the ammunition type. That’s a fundamental difference, and it’s not something we can easily change without touching the core code.

Also, I think it's important to manage expectations: GUNS_revision isn't a miracle cure. The red cannons won't suddenly overpower the blue ones across the board. The Minengeschoß, for example, now performs better against light, unarmored targets – but it no longer kills an Il‑2 in two hits, which is more historically consistent. The MK 108 becomes genuinely devastating, but again, mainly against unarmored aircraft.

That said, the Soviet shells are now significantly more effective overall – the NS‑37 finally hits like it should. So the revision does bring things closer to reality, but it's not a magic bullet.
 

Looking forward to your feedback on the cannon testing.

Next, we're moving on to larger calibers, bombs and rockets.

Edited by Aed
  • Like 4
  • Upvote 1
Avimimus
Posted

Yes, I just wish there was a way to adjust the unpredictability of damage (essentially adding in a random chance at a critical hit)! That would counteract the averaging a bit. One solution might actually be to take advantage of the belting... reduce the firepower for most rifle calibre rounds (i.e. 7.7mm, 7.62mm, 7.9mm), but have one round in the belt do a lot more damage. Would that work?

I also wonder if just increasing the damage done by the 57mm AP round would compensate for its ineffectiveness against ships? Since it doesn't have any explosive filling and already has enough mass to damage whatever it hits... it shouldn't actually make it more effective against aircraft (and not much more effective against tanks - which it shouldn't be used against anyway, as the Molins 57mm was exclusively used against shipping historically).

P.S. In case you don't have a copy - ADA800394 is very good reading:

https://apps.dtic.mil/sti/pdfs/ADA800394.pdf

6 hours ago, Aed said:

Next, we're moving on to larger calibers, bombs and rockets.

When examining rockets, the AP performance of rockets against ships is undermodelled but the HE performance against ships is overmodelled (similar to the situation with AP rounds)... so that is worth considering.

I'd also recommend looking into fuses for WWI bombs. I'd accumulated quite a bit of evidence for the arming speeds in service of the Cooper bombs (which take too long to arm with the default settings) and obtained some fusing information for German bombs - but lack fusing speed information for some of the the P.u.W series bombs centrifugally armed fuses. The French fuses are very similar to the British fuses, but I also lacked enough data. Interestingly, it seems the Brits slowed the arming for their larger bombs by simply having less vanes on the arming pinwheel (so it would spin a bit less rapidly).

  • Like 1
Posted (edited)
21 hours ago, Avimimus said:

Yes, I just wish there was a way to adjust the unpredictability of damage (essentially adding in a random chance at a critical hit)! That would counteract the averaging a bit. One solution might actually be to take advantage of the belting... reduce the firepower for most rifle calibre rounds (i.e. 7.7mm, 7.62mm, 7.9mm), but have one round in the belt do a lot more damage. Would that work?

I also wonder if just increasing the damage done by the 57mm AP round would compensate for its ineffectiveness against ships? 

I am using in my mods since 1 year for the aircraft weapons an increased dispersion / decreased accuracy of ca. 6...8 mils to avoid too frequent sniper headshots and similar unrealistic things. The incresead dispersion (of tracer rounds) is clearly visible, but it is still possible to damage / destroy targets. Of course this a matter of taste and not everyone likes it but me for it increases the immersion...

Example late BoB autumn 1940 mission, strafings begins at 04:20

 

Edited by kraut1
Avimimus
Posted

Interesting! I'd be curious about historical data regarding the dispersion of guns.

FWIW - the Korean War era estimates I've read for fixed 0.50 cal Brownings as fired from an aircraft was 4-5 mils. However, I wonder if wing mounts would be less rigid?

Posted (edited)
4 hours ago, Avimimus said:

Interesting! I'd be curious about historical data regarding the dispersion of guns.

FWIW - the Korean War era estimates I've read for fixed 0.50 cal Brownings as fired from an aircraft was 4-5 mils. However, I wonder if wing mounts would be less rigid?

in this discussion you will find some data about this topic, but it is no exact science:

https://forum.il2sturmovik.com/topic/92101-question-accuracy-of-typical-ww2-plane-armament-machine-guns-automatic-cannons/

small note: you can only define the dispersion weapons, that installed in planes (and user controllable tanks). For pure ai weapons like aa guns, fields howitzers, ship guns there are no parameters for dispersion accuracy available.

 

Edited by kraut1
Posted (edited)

I ran into an interesting issue during some test shooting against the Li-2 and C-47. If you fire into the right engine, fragments consistently kill the left-side pilot - both in the vanilla game and in my mod. That didn't sit right with me, so I started digging deeper into the aircraft configuration files, specifically looking at the armour and damage model mechanics.

What I found:

The DM uses a zoned system with probabilities, internal modules (each with their own hitpoints and armor zones), and a well-thought-out armor layout. It's actually a very flexible and well-designed system that the developers put together.

However, for the Li-2 and C-47, the reality is simple: there is no armor at all. The only thing that "protects" the right pilot is the engine itself - fragments lose some of their energy passing through it. Everything else on these aircraft is essentially unprotected.

So yeah, getting killed by a fragment from the right engine while sitting on the left is completely plausible in terms of the current DM - not a bug, just a consequence of having no armor.

For obvious reasons, I won't touch this files.

BUT! The same configuration files also contain data about ammunition belts and tracer ratios. That can be tweaked to bring them closer to historical and realistic standards.
..

UPDT.. plane files can not be modified, game will not accept changes (tried to change tracers rate)

Edited by Aed
Posted (edited)

@kraut1 Theres dispersion parameter BulletDispertionAngleData = 0.0, 0.6, 700.0, 3.5   0.0 degree fixed cold barrel 0.6 overheat barrel. - it is equal in all guns..  in weapon files,  so it possibly can be edited

Edited by Aed
  • Upvote 1
Posted
6 minutes ago, Aed said:

@kraut1 Theres dispersion parameter BulletDispertionAngleData = 0.0, 0.6, 700.0, 3.5   0.0 degree fixed cold barrel 0.6 overheat barrel. - it is equal in all guns..  in weapon files,  so it possibly can be edited

Thanks, yes, I have edited this for aircraft weapons, and this line is e.g. in the file of the 88mm Flak 37 available too? 

I was not aware of this, thanks.

Posted (edited)

@kraut1  its a _kwk-36.txt  same gun as AA 88mm gun in game..
Can U pls put your gun files with dispersion here? 

Edited by Aed

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...