Jump to content
Sign in to follow this  

X3KJ's Ballistic Calculator (Excel Macro Sheet)

Recommended Posts

I created a simple Excel Calculator for Arma Weapon Ballistics - it is designed to tweak/ balance Weapon values in modding, but can also be used by players to determine how to use the weapons.

This is not only very usefull for tweaking weapon data itself, but also usefull to determine the elevation you need at certain ranges when creating weapon optics with accurate markings. Using  a rangefinder info display in your optic temporarily lets you set the elevation properly and reconfirm the solution, and can then be used for optic creation.




If anyone wishes to host it somewhere else, feel free.


  • Store weapondata in a table
  • Quickly retrieve weapondata for calculations
  • Calculate impact data for a given barrel elevation for given weapondata
  • Calculate maximum ballistic range of a weapon
  • Create and Calculate a custom rangetable for a weapon
  • Quickly create performance profile for easy comparison with other weapon


  • On demand Ballistic solutions for ingame use

Currently only solutions for targets at the same heigth above sealevel as the weapon can be calculated. Basically for "perfectly flat maps"/ "Test lab" situations (VR map). Therefore it's not yet ready to be used to calculate ballistic solutions on demand for ingame usage when using artillery manually.

F: Will you include code for scripted ballistic code (like ACE)?
A: No. I don't use it and it's too much efford for me to create it. If somebody writes adapted macros for that i can include it of course...
F: What about rockets/missiles?
A: It doesn't work for ones that have a thrust value in the config. However, if the missile/projectile only has an initspeed value and no thrust value (like the MLRS system) it works the same way as a regular bullet and can be calculated this way.


First you need to enable macros in excel
Warning: Do not insert or modify the order of colums or rows. Only add to the end of rows/colums. Otherwise macro's will read/write garbage values. Hide/unhide rows or columns if you don't need something instead of deleting it.
Cells with grey background are generally for values that have a formula or are calculated by macro

Read the comments, they explain what every field does.

Note that ingame weapons have deviation/spread. Your impact may not be exactly where you calculated due to this.
A ) Defining Weapon Data and calculating Weapon Profile

  • Fill out the cells in Ballistics. Airfriction, initspeed and coefGravity are obligatory. Airfriction needs to be a negative value (like in configs) or zero. coefGravity is always=1 for vanilla weapons. Artillery charge on it's own does nothing, you can use it to calculate the initspeed however. Caliber only affects penetration calculations, nothing else.
  • Once done, select any cell in the row that you want to calculate/recalculate the profile for and click the "Recalc active row" button next to the Ballistics Headline

B ) Retrieving weapon data for ballistic calculation

  • To retrieve data, enter a number into the "Index" cell in the top left corner. The number corresponds to the number of the row of your desired weapon in the "Weapon Performance Data" Sheet.
  • You can also use the + or - Buttons below the field to change the current index.
  • If any field for the weapon data is displayed with red background, the input for this weapon is not valid and you should not use it to calculate anything.

C ) Calculating Impact data for a given elevation

  • Load a weapon data set
  • Set the desired timestep. It affects accuracy. Don't choose too small timesteps, it may take a long time.
  • Enter the barrel azimuth/ barrel elevation in the initangle cell in minutes of angle. Then click the "Calculate Impact Data" button. The results will be displayed to the left of it.

D ) Calculating maximum range

  1. Load a weapon data set
  2. Set the desired timestep. It affects accuracy. Don't choose too small timesteps, it may take a long time.
  3. Just click on the "Calculate maximum range" button. If the airfriction is 0 the maximum angle will always be at 2700 moa (45°) elevation. The range is determined by increasing/decreasing the angle in increasingly smaller steps. 

E) Calculate Range table

  1. Load a weapon data set
  2. Set the desired timestep. It affects accuracy. Don't choose too small timesteps, it may take a long time.
  3. Decide if you want high or low angle solutions. Enter "1" into the high angle solutions cell if you want high angles. Otherwise 0
  4. Clear the rangetable by clicking on the "Clear Range Table" Button
  5. You can now enter any range you want into the orange marked "Ranges". They don't need to be in any order, you just can't have any gaps.
  6. Alternatively you can load the "default weapon profile", which corresponds to the range profile set in "Weapon Performance Data" sheet.
  7. You can also automatically populate the range table with a set intervall via the "Fill Ranges with" Button.
  8. If a solution has cells that are marked red, it is likely that they not accurate enough. This may be due to too large timesteps, or due to the ballistical limits of the gun.
  • Like 5

Share this post

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now
Sign in to follow this