--- layout: wiki title: Advanced Ballistics Framework description: Explains how to use the Advanced Ballistics framework. group: framework order: 5 parent: wiki mod: ace version: major: 3 minor: 0 patch: 0 --- ## 1. Configs Values Reference [CfgAmmo Reference](https://github.com/acemod/ACE3/blob/master/extras/CfgAmmoReference.hpp) for examples of bullets with correct configs. It is probably best to modify an example that's close to the bullet you are trying to add. <div class="panel callout"> <h5>All values are in METRIC units!</h5> </div> ### 1.1 `CfgWeapons` Example: M4 ```cpp class CfgWeapons { class yourWeaponClass { // >1:7 inch rifle twist // 7 inches * 25.4(mm/in) = 177.8 mm // Same as the Capital T in [Miller twist rule](https://en.wikipedia.org/wiki/Miller_twist_rule){:target="_blank"} (convert to metric) ACE_barrelTwist = 177.8; // >14.5 in (370 mm) ACE_barrelLength = 368.3; // Right handed is 1, Left is -1, none is 0 // Leaving blank will default to 1 (almost everything is right-handed) // A smooth-bore gun (e.g. shotgun) would be `0`. ACE_twistDirection = 1; }; }; ``` ### 1.2 `CfgAmmo` Example: `B_556x45_Ball` ```cpp class CfgAmmo { class yourAmmoClass { // Bullet diameter in mm (diameter is a little different from caliber) ACE_caliber = 5.69; ACE_bulletLength = 23.012; // Bullet Length in mm ACE_bulletMass = 4.0176; // Mass in grams (example is roughly 62 grains) // Standard deviation of the muzzle velocity variation in percent // Example: With a muzzle velocity of 850 m/s and a standard deviation of 0.35%, 68% of the shots will be between 847 m/s and 853 m/s ACE_muzzleVelocityVariationSD = 0.35; // Array of muzzle velocity shifts in m/s with 11 data points from -15 °C to 35 °C // Example: At 0°C the shift will be -21.0 ACE_ammoTempMuzzleVelocityShifts[] = {-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75}; // Array of ballistic coefficients (contains one element more than the velocity boundary array) ACE_ballisticCoefficients[] = {0.151}; ACE_velocityBoundaries[] = {}; // Array of velocity boundaries ACE_standardAtmosphere = "ASM"; // "ASM" or "ICAO" ACE_dragModel = 7; // Number that specifies the drag model [1, 2, 5, 6, 7, 8] // Array of muzzle velocities (same size as barrel length array) ACE_muzzleVelocities[] = {723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900}; // Array of barrel lengths (same size as muzzle velocity array) // Example, when shooting with the M4 barrel (`368.3`mm). // The length is between the 5th and 6th barrelLengths (`360.68, 391.16`). // So the muzzle velocity will be between 5th and 6th muzzleVelocities (`866, 878`). ACE_barrelLengths[] = {210.82, 238.76, 269.24, 299.72, 330.2, 360.68, 391.16, 419.1, 449.58, 480.06, 508.0, 609.6}; }; }; ```