---
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.
All values are in METRIC units!
### 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)
// 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};
};
};
```