10.8watt's ACE wiki

ARMOR

Armor Calculations

Armor Thickness from Mass

ACF_CalcArmor(Area, Ductility, Mass) = (Mass × 1000 / Area / 0.78) / sqrt(1 + Ductility) × ACF.ArmorMod

This converts entity mass into an equivalent armor thickness in millimeters for ACF damage resolution.

Line-of-sight Armor

losArmor = armor / |cos(Angle) ^ ACF.SlopeEffectFactor|
losArmorHealth = armor^1.1 × (3 + min(1 / |cos(Angle) ^ ACF.SlopeEffectFactor|, 2.8) × 0.5)

Penetration and Caliber

maxPenetration = (Energy.Penetration / FrArea) × ACF.KEtoRHA
caliber = 20 × sqrt(FrArea^(1 / ACF.PenAreaMod) / π)

Probability Formulas

penProb = clamp(1 / (1 + exp(-43.9445 × (maxPenetration / losArmor / effectiveness - 1))), 0.0015, 0.9985)
breachProb = clamp((caliber / armor / effectiveness - 1.3) / 5.7, 0, 1)

Damage Resolution

If breach occurs and penetration exceeds armor:
Damage = FrArea × resiliance × damageMult × ductilitymult
Overkill = maxPenetration − armor
Loss = armor / maxPenetration

If penetration occurs without a clean breach:
Penetration = min(maxPenetration, losArmor × effectiveness)
Damage = (Penetration / losArmorHealth / effectiveness)^2 × FrArea × resiliance × damageMult × ductilitymult

If no penetration occurs:
Penetration = min(maxPenetration, losArmor × effectiveness)
Damage = (Penetration / losArmorHealth / effectiveness) × FrArea × resiliance × damageMult × ductilitymult

Material Properties

Armor materials modify effectiveness and damage resistance.
RHA: effectiveness = 1, resiliance = 1
Titanium: effectiveness = 1.7, resiliance = 0.75
Higher effectiveness increases effective armor, while lower resiliance reduces damage taken.

Ductility Influence

ductilitymult = 2 / (2 + ductilityvalue × 1.5), where ductilityvalue = (Entity.ACF.Ductility or 0) × 1.25.
Higher ductility reduces damage from hits.