10.8watt's ACE wiki

EQUATIONS

Muzzle Velocity

ACF_MuzzleVelocity( PropMass, ProjMass )

PEnergy = 40000000 × ((1 + PropMass)^0.6 − 1)
Speed = (PEnergy × 2000 / ProjMass)^0.5
MuzzleVel = Speed [in m/s]


Kinetic Energy and penetration

ACF_KineticEnergy( Mass, Velocity )

KE = (Mass × Speed²) / 2000 [kJ]
Momentum = Speed × Mass
fullKE = (Mass × Speed^1.8) / 2000 + Momentum

overspeed = max(Speed − LimitVel, 0)
Penetration = max(fullKE − (overspeed² / LimitVel×5) × (fullKE/200)^0.95, fullKE × 0.1)

Max Penetration (mm RHAe)

FrArea = π × (Caliber / 2)² [cm²]
PenArea = FrArea^0.6
MaxPen = (Penetration / PenArea) × KEtoRHA

KEtoRHA = 0.04 [conversion constant]


Drag (In-Flight Velocity Loss)

Per-Tick Drag

FlightSpeed = Bullet.Flight:Length() [game units/s]
Drag = (DragCoef × FlightSpeed²) / DragDiv
Flight = Flight − Drag × direction × DeltaTime

DragDiv = 8000
DragCoef = (FrArea / 10000) / ProjMass [AP/HE formula]


HE Blast

HE Explosion Parameters

BlastRadius = FillerMass^0.33 × 8 [metres]
BlastEnergy = FillerMass × HEPower [kJ] (HEPower = 3000)
MaxBlastPen = FillerMass × HEPower / HEBlastPenetration

Fragments = floor((FillerMass / FragMass) × 500)
FragVel = sqrt(FillerMass × 3000000 / FragMass / Fragments)


Ricochet

Ricochet Chance

RicoAngle = min(BaseRico − ((Speed − 800) / 39.37 / 5), 89)

None = RicoAngle − 10 → 0% chance
Mean = RicoAngle → 50% chance
Max = RicoAngle + 10 → 100% chance

AP BaseRico = 53° | HE = 70° | APFSDS = 30°