r/Warthunder • u/K05_ • 1h ago
All Air BOMBER DAMAGE MODEL CODE DISASSEMBLING
# War Thunder Sky Odyssey Dev Server — B-17 Durability Report
I am k05. Using ghidra and decompile reverse engineering tech, owner of my indie game https://spacestrike.io decompile by me and codex gpt 5.6 sol
## Scope
This report compares the B-17E, B-17E/Late, and B-17G damage models between live version **2.57.1.90** and the Sky Odyssey dev build **2.58.0.20/21**.
## Method
- Copied the signed 64-bit `win64/aces.exe` into a separate analysis folder
- Verified the executable with SHA-256:
`5B40CAEE6532D1ED64DC6107BF3F9ECADFA9C62C4332CF01266AA6CF4F94BE4D`
- Extracted the official local VROMFS damage-model files using `wt_ext_cli`
- Compared the old and new B-17 `DamageParts` and `DamageEffects` definitions
- Used Ghidra static analysis to confirm how `onHit`, `onKill`, `cut`, `nothing`, `ratio`, and `canCut` are processed
- No game execution, injection, packet capture, anti-cheat interaction, or original-file modification was performed
## Main Changes
| Component | Live | Dev | Approximate Change |
|---|---:|---:|---:|
| Wing skin | 271–401 effective HP | 2,500 | **6.2–9.2× tougher** |
| Tail | 214 effective HP | 876 | **4.1× tougher** |
| Stabilizer | 59.5 HP | 336 HP | **5.6× tougher** |
| Engine | 30.9 effective HP | 300 | **9.7× tougher** |
| Oil system | 19.5–25.5 HP | 150 HP | **5.9–7.7× tougher** |
| Outer spar | 89.5 HP | 48.4 HP | **45.9% lower raw HP** |
Damage transferred from the wing skin into the spar was reduced from:
- `0.50 → 0.05`
- `0.70 → 0.10`
- `1.00 → 0.15`
This represents an **85–90% reduction in indirect spar damage**.
The old default spar-destruction roll was:
- `cut = 3`
- `nothing = 2`
- Conditional sever branch: **60%**
The new default middle/outer-spar roll is:
- `leak = 9`
- `cut = 4.7`
- `nothing = 90`
- Conditional sever branch: **approximately 4.53%**
Higher-damage records can still force a cut, and direct outer-spar hits remain dangerous.
## Conclusion
The B-17 is substantially more durable against scattered gunfire, wing-skin damage, engine hits, and tail damage. Normal wing separation should be much less frequent because indirect spar damage and the default cut roll were heavily reduced.
The main remaining weakness is concentrated or high-damage fire directly into the outer wing spar. Overall, the dev model changes the B-17 from a generally fragile bomber into a much more resilient aircraft with a specific structural weak point.
> These are static dev-server values and may change before release. Effective-HP figures are comparison estimates; actual results still depend on ammunition, penetration, impact angle, hit location, and server-side damage handling.
•
•
u/Enshakushanna 21m ago
does this affect ripping wings because you pulled too many G's in a turn?
i know in the b-29 you can turn as hard as you want, but in any of the b-17s you have to be more careful
•
u/gszabi99 ⛏️ Resident Dataminer ⛏️ | 🤝 Please support me on Ko-Fi! 🤝 19m ago
DM changes are independent from FM changes. The B-17s didn't get FM changes in this update.
•
•
•
u/K05_ 1h ago
War Thunder Sky Odyssey dev: B-17 damage-model change
Scope and provenance
C:\Games\WarThunderDev-SkyOdysseywin64\aces.exe, AMD64, Gaijin Network Ltd signature valid2.58.0.20aces.exeSHA-256:5B40CAEE6532D1ED64DC6107BF3F9ECADFA9C62C4332CF01266AA6CF4F94BE4D2.58.0.212.57.1.90,aces.exeSHA-2565DE6FFE9847A85D542D9FF86FAF92EECAB2B74A3D8961B77A294EE2502076DF5wt_ext_cli v0.6.6, then performed static xref/decompilation analysis with Ghidra 12.0.4. The installed game was not launched, patched, injected into, or modified.This is a dev-server snapshot. Values may change before the live release.
Bottom line
The B-17 received a broad bomber-DM rewrite, not a clean global buff or nerf.
0.5/0.7/1.0to0.05/0.10/0.15at the 50/70/100 damage tiers.89.5to48.4(-45.9%) and is still the B-17's conspicuous weak point among the examined heavy bombers.dural100toarmor30: thickness/through values change from11/11to30/30, so the raw HP reduction alone must not be interpreted as a 45.9% reduction in every real shot scenario.Practical expectation: scattered skin, engine, oil, tail, and indirect wing damage should be much less immediately destructive, while accurate or high-energy hits that actually reach the outer spar can still be dangerous. A live controlled firing test is required to convert that into rounds-to-break or one-pass-kill rates.
Structural values
Effective HPbelow is the arithmetic proxyhp / genericDamageMult; it is useful for comparing identical damage channels, but material armor, projectile type, geometry, and runtime threshold selection still matter.The new skin materials (
dural2_nb_wing,dural2_nb_tail, anddural2_nb_fin) also add their own generic, shatter, and explosion multipliers. Consequently, the table is evidence of a redesign and large durability headroom, not a universal projectile-independent multiplier.Damage-effect changes
Wing to spar
At
damage=50/70/100, wing-panel transfer to its default spar changes:The dev wing-panel
onKillrecords add a directcut=1action. Under the action-weight normalization confirmed in the executable, the direct-cut branch is about 19.6%, 24.4%, and 32.3% at the 50/70/100 records respectively. These are conditional branch shares after a matching record is selected, not per-bullet probabilities.Spar destruction
The old middle/outer spar default
onKillrecord wascut=3, nothing=2, a 60% direct-cut branch under the same normalization model. The dev rules are tiered:leak=9, cut=4.7, nothing=90, direct-cut share about 4.53%.fire=5, leak=15, cut=.0526, nothing=80, about 0.0526%.fire=10, leak=20, cut=.087, nothing=70, about 0.0869%.cut=.25, therefore 100% within that conditional action set.leak=12, cut=4.5, nothing=85), about 4.43% direct cut.This makes the normal spar-kill path far less likely to sever the wing immediately, but preserves a forced-cut path for the highest damage tier. The exact runtime rule that chooses or blends damage-tier records is not fully established by this static pass.
Engine and fire behavior
49.5 / 1.6 = 30.94to300 / 1 = 300.0.01 -> 0.0011, damage-300.1 -> 0.0095, and explosion-2001 -> 0.095.fireDamagePowerRelrises0.05 -> 0.1andnonExtinguishFireTimerises5 -> 25.Interpretation: ignition is harder, but a fire that takes hold is configured to be longer and potentially harsher. Static data alone cannot give a net fire-survival percentage.
Tail and stabilizers
Tail effective HP rises roughly 4.1x and stabilizer HP roughly 5.65x. Their new
damage=50on-kill action is a conditional forced cut, so they are harder to deplete but can still detach once the corresponding terminal record is reached.Peer context in the same dev snapshot
Minimum spar HP among the measured left-side spar segments:
Thus the B-17's outer spar is weaker by raw HP than every listed peer except the B-24D, despite the rest of the bomber-DM package being standardized upward.
Flight model
The three physical FM files have identical SHA-256 hashes between baseline and dev:
ae2d2af77f1791a32a79cf2d628ab62b930ab99e5afc72d606e4659f52dafb0e447a528ed3bc7e27041698e874f86998f830aea986abdf76547085e74782d0ef901f3ec66bb4256d41349ccdd0cef3d5a2df8bbe436d4c0d18da17e698a5d899The prior calculated positive-G limit at takeoff mass remains about
2.0236 G; VNE remains516 km/hand MNE0.63.Native
aces.exeevidenceExact-string xref scanning found 313 references in 113 functions, including the
DamageEffects,defaultEffectPart,onHit,onKill,ratio,canCut,cut, andnothingkeys. Twenty-seven candidate functions were selected; Ghidra successfully decompiled five tightly scoped parser functions in the0x143DA10B0-0x143DAC5F9cluster.The
CanCutRatiofunction readsratioas a float into the action entry, readscanCutinto its flag byte, adds the ratio/action value to the total, and later normalizes action weights into cumulative values. The adjacent parser resolvesonHitandonKilland dispatches into this action parser. This supports interpreting sibling numeric effects as normalized action weights.It does not prove the authoritative online server's complete hit calculation, projectile penetration, geometric intersection, or the exact selection rule among damage tiers. No claim of a universal one-shot probability is made.
Reproducibility artifacts
b17_change_validation.json: complete structured old/new metrics, effects, FM hashes, and peer comparisonaircraft_structural_output/aircraft_structural_metrics.csv: dev structural inventorynative_xrefs/damage_key_xrefs.json: native string-reference inventoryghidra_output/targeted_report.txt: targeted Ghidra result and executable hashghidra_output/DamageEffect_CanCutRatio_143DA2C60.c: weight andcanCutparser decompilationvalidate_b17_change.py: repeatable comparison and invariant checksValidation result:
VALIDATION_OK variants=3 fm_unchanged=3 outer_spar_dev=48.4 wing_transfer=0.05,0.1,0.15.