diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf
index 87e2a074c6..aab682f6ac 100644
--- a/addons/atragmx/functions/fnc_initGunList.sqf
+++ b/addons/atragmx/functions/fnc_initGunList.sqf
@@ -76,7 +76,7 @@ if (_resetGunList) then {
                       ["5.56x45mm Mk318"   ,  872, 100, 0.0814490, -0.00125880, 7.11, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" , [[-15,853],[0,860],[10,867],[15,872],[25,886],[30,895],[35,906]]       , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
                       ["5.56x45mm M995"    ,  861, 100, 0.0825279, -0.00126182, 7.11, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" , [[-15,842],[0,849],[10,856],[15,861],[25,875],[30,884],[35,895]]       , [[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]], true],
 
-                      ["5.45x39mm 7N6M"    ,  735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.43, 5.6, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]], [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]];
+                      ["5.45x39mm 7N6M"    ,  735, 100, 0.0784916, -0.00119458, 3.81, 0, 2, 10, 120, 0, 0, 3.430, 5.60, 16.00, 0.336, 1, "ICAO", [[-15,716],[0,723],[10,730],[15,735],[25,749],[30,758],[35,769]]       , [[0, 0.339], [730, 0.331], [960, 0.323], [1100, 0.321], [1220, 0.320], [1380, 0.320], [1480, 0.320]], true]];
 
     [] call FUNC(clear_user_data);
     profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp
index c8e04c776f..b272277d17 100644
--- a/addons/ballistics/CfgWeapons.hpp
+++ b/addons/ballistics/CfgWeapons.hpp
@@ -1,144 +1,81 @@
-class Mode_SemiAuto;
-class Mode_Burst;
-class Mode_FullAuto;
-
 class CfgWeapons {
-    class LMG_RCWS;
-    class MGun;
-    class MGunCore;
-    class MMG_01_base_F;
-    class MMG_02_base_F;
+    class HMG_01;
+    class Pistol_Base_F;
     class Rifle_Base_F;
     class Rifle_Short_Base_F: Rifle_Base_F {};
     class Rifle_Long_Base_F: Rifle_Base_F {};
 
+    // Rifle_Long_Base_F Sniper Marksman
     // GM6 Lynx
     class GM6_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.45);
-        };
+        ACE_barrelLength = 730;
+        ACE_barrelTwist = 381.0;
+        initSpeed = -1.0;
+        magazineWell[] += {
+            "CBA_50BMG_M107"
+        }; // empty in vanilla
     };
 
     // M200 Intervention
     class LRR_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.50);
-        };
-    };
-
-    // MX
-    class arifle_MX_Base_F: Rifle_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-    };
-
-    // KH2002 Sama
-    class arifle_katiba_Base_F: Rifle_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-    };
-
-    // CTAR-21
-    class Tavor_base_F: Rifle_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-    };
-
-    // F2000
-    class mk20_base_F: Rifle_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-    };
-
-    // P90 (1.86)
-    class SMG_03_TR_BASE: Rifle_Base_F {
-        ACE_barrelTwist = 228.6; // 1:9 inch twist
-        ACE_barrelLength = 407;
-        ACE_twistDirection = 1;
-        initSpeed = -1.083916; // 775 m/s according with the ACE_muzzleVelocities at 15°C, default BI value -1.1 (786 m/s)
-        modes[] = {"Single"};
-    };
-    class SMG_03C_BASE: SMG_03_TR_BASE {
-        ACE_barrelLength = 264;
-        modes[] = {"Single", "FullAuto"};
-    };
-
-    // Noreen "Bad News" ULR
-    class DMR_02_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.61);
-        };
-    };
-
-    // VS-121
-    class DMR_01_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
+        ACE_barrelLength = 736.6;
+        ACE_barrelTwist = 330.2;
+        initSpeed = -1.0;
+        magazineWell[] += {
+            "CBA_408CT_Inter"
+        }; // vanilla magazineWell[] = {"M320_408"};
     };
 
     // Mk14 Mod 1 EBR
     class EBR_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
+        ACE_barrelLength = 457.2;
+        ACE_barrelTwist = 304.8;
+        initSpeed = -0.979444;
+    };
 
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.81);
+    // VS-121
+    class DMR_01_base_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 609.6;
+        ACE_barrelTwist = 241.3;
+        initSpeed = -1.00019;
+    };
+
+    // Noreen "Bad News" ULR
+    class DMR_02_base_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 508.0;
+        ACE_barrelTwist = 254.0;
+        initSpeed = -1.0;
+        magazines[] += {
+            "ACE_10Rnd_338_300gr_HPBT_Mag",
+            "ACE_10Rnd_338_API526_Mag",
+            "ACE_20Rnd_762x67_Mk248_Mod_0_Mag",
+            "ACE_20Rnd_762x67_Mk248_Mod_1_Mag",
+            "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
         };
     };
 
     // SIG 556
     class DMR_03_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
+        ACE_barrelLength = 508.0;
+        ACE_barrelTwist = 254.0;
+        initSpeed = -0.991536;
+        magazineWell[] += {
+            "CBA_762x51_M14"
+        }; // vanilla magazineWell[] = {"M14_762x51"};
     };
 
     // ASP-1 Kir
     class DMR_04_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.0);
-        };
+        ACE_barrelLength = 450.088;
+        ACE_barrelTwist = 203.2;
+        initSpeed = -1.0;
     };
 
     // Cyrus
     class DMR_05_base_F: Rifle_Long_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.67);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.67);
-        };
+        ACE_barrelLength = 620.0;
+        ACE_barrelTwist = 360.0;
+        initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C)
     };
 
     // M14
@@ -146,700 +83,373 @@ class CfgWeapons {
         ACE_barrelLength = 558.8;
         ACE_barrelTwist = 304.8;
         initSpeed = -0.999395;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-    };
-
-    class DMR_06_hunter_base_F: DMR_06_base_F {
-        class Single: Single {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-    };
-
-    // MX LSW
-    class arifle_MX_SW_F: arifle_MX_Base_F {
-        magazines[] = {
-            "100Rnd_65x39_caseless_mag_Tracer",
-            "100Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag_Tracer",
-            "ACE_100Rnd_65x39_caseless_mag_Tracer_Dim",
-            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
-        };
-        initSpeed = -0.981912;
-        ACE_barrelTwist = 228.6;
-        ACE_barrelLength = 406.4;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-    };
-
-    // MXM
-    class arifle_MXM_F: arifle_MX_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
-            "ACE_30Rnd_65x47_Scenar_mag",
-            "ACE_30Rnd_65_Creedmor_mag"
-        };
-        initSpeed = -1.0;
-        ACE_barrelTwist = 228.6;
-        ACE_barrelLength = 457.2;
-        class Single: Single {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-    };
-
-    // HK416A5 11"
-    class arifle_SPAR_01_base_F: Rifle_Base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_green",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.869636;
-        ACE_barrelTwist = 177.8;
-        ACE_barrelLength = 264.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-    };
-
-    // HK416A5 14.5"
-    class arifle_SPAR_02_base_F: Rifle_Base_F {
-        initSpeed = -0.999864;
-        ACE_barrelTwist = 177.8;
-        ACE_barrelLength = 368.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-    };
-
-    // HK417A2 20"
-    class arifle_SPAR_03_base_F: Rifle_Base_F {
-        magazines[] = {
-            "20Rnd_762x51_Mag",
-            "ACE_20Rnd_762x51_Mag_Tracer",
-            "ACE_20Rnd_762x51_Mag_Tracer_Dim",
-            "ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M118LR_Mag",
-            "ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M993_AP_Mag",
-            "ACE_20Rnd_762x51_Mag_SD"
-        };
-        initSpeed = -0.991536;
-        ACE_barrelTwist = 279.4;
-        ACE_barrelLength = 508.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.81);
-        };
-    };
-
-    // Stoner 99 LMG
-    class LMG_Mk200_F: Rifle_Long_Base_F {
-        initSpeed = -0.999327;
-        ACE_barrelTwist = 177.8;
-        ACE_barrelLength = 317.5;
-    };
-
-    // Negev NG7
-    class LMG_Zafir_F: Rifle_Long_Base_F {
-        initSpeed = -1.00048;
-        ACE_barrelTwist = 304.8;
-        ACE_barrelLength = 459.74;
-    };
-
-    // M249 SPW
-    class LMG_03_base_F: Rifle_Long_Base_F {
-        initSpeed = -1.00051;
-        ACE_barrelTwist = 177.8;
-        ACE_barrelLength = 414.02;
-    };
-
-    // RFB SDAR
-    class SDAR_base_F: Rifle_Base_F {
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(3.0);
-        };
-
-        class Burst: Mode_Burst {
-            dispersion = MOA_TO_RAD(3.0);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(3.0);
-        };
-    };
-
-    class Pistol;
-    class Pistol_Base_F: Pistol {};
-
-    // P99
-    class hgun_P07_F: Pistol_Base_F {
-        initSpeed = -0.906977;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 101.6;
-    };
-
-    // MP-443 Grach
-    class hgun_Rook40_F: Pistol_Base_F {
-        initSpeed = -0.934884;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 111.76;
-    };
-
-    // Custom Covert II
-    class hgun_ACPC2_F: Pistol_Base_F {
-        initSpeed = -0.984252;
-        ACE_barrelTwist = 406.4;
-        ACE_barrelLength = 127.0;
-    };
-
-    // FNX-45 Tactical
-    class hgun_Pistol_heavy_01_F: Pistol_Base_F {
-        initSpeed = -0.944882;
-        ACE_barrelTwist = 406.4;
-        ACE_barrelLength = 114.3;
-    };
-
-    // Chiappa Rhino 60DS
-    class hgun_Pistol_heavy_02_F: Pistol_Base_F {
-        initSpeed = -0.905512;
-        ACE_barrelTwist = 406.4;
-        ACE_barrelLength = 76.2;
-    };
-
-    // Makarov PM
-    class hgun_Pistol_01_F: Pistol_Base_F {
-        initSpeed = -0.883721;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 93.5;
-    };
-
-    class pdw2000_base_F: Rifle_Short_Base_F {};
-
-    // CPW
-    class hgun_PDW2000_F: pdw2000_base_F {
-        initSpeed = -0.994186;
-        ACE_barrelTwist = 228.6;
-        ACE_barrelLength = 177.8;
-    };
-
-    // AKS
-    class arifle_AKS_base_F: Rifle_Base_F {
-        initSpeed = -1; // 735 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 160;
-        ACE_barrelLength = 210;
-    };
-
-    // AKM
-    class arifle_AKM_base_F: Rifle_Base_F {
-        initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 240;
-        ACE_barrelLength = 415;
-    };
-
-    // AK15,AK15K,RPK (AK12)
-    class arifle_AK12_base_F: Rifle_Base_F {
-        initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 240;
-        ACE_barrelLength = 415;
-    };
-
-    class arifle_AK12U_base_F: arifle_AK12_base_F {
-        initSpeed = -0.937063; // 715*0.937063= 670 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 240;
-        ACE_barrelLength = 314;
-    };
-
-    class arifle_RPK12_base_F: arifle_AK12_base_F {
-        initSpeed = -1.041958; // 715*1.041958= 745 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 240;
-        ACE_barrelLength = 590;
-    };
-
-    // MSBS GROT (Promet)
-    class arifle_MSBS65_base_F: Rifle_Base_F {
-        initSpeed = -0.971576; // 774*0.971576= 752 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelTwist = 228.6;
-        ACE_barrelLength = 406.4; // 16"
-    };
-
-    class arifle_MSBS65_Mark_base_F: arifle_MSBS65_base_F {
-        initSpeed = -1.007752; // 774*1.007752= 780 m/s according with the ACE_muzzleVelocities at 15°C
-        ACE_barrelLength = 508; // 20"
-    };
-
-    // QBZ-95-1
-    class arifle_CTAR_base_F: Rifle_Base_F {
-        initSpeed = -0.978947;
-        ACE_barrelTwist = 244.0;
-        ACE_barrelLength = 463.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
     };
 
     // QBU-88
     class DMR_07_base_F: Rifle_Long_Base_F {
-        initSpeed = -0.99998;
-        ACE_barrelTwist = 228.6;
         ACE_barrelLength = 640.0;
-        magazines[] = {
-            "20Rnd_650x39_Cased_Mag_F",
+        ACE_barrelTwist = 228.6;
+        initSpeed = -0.99998;
+        magazines[] += {
             "ACE_20Rnd_65x47_Scenar_mag",
             "ACE_20Rnd_65_Creedmor_mag"
         };
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.01);
-        };
     };
 
-    // QBZ-95-1 LSW
-    class arifle_CTARS_base_F: Rifle_Base_F {
+    // Rifle_Long_Base_F MG
+    // Stoner 99 LMG
+    class LMG_Mk200_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 317.5;
+        ACE_barrelTwist = 177.8;
+        initSpeed = -0.999327;
+    };
+
+    // Negev NG7
+    class LMG_Zafir_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 459.74;
+        ACE_barrelTwist = 304.8;
+        initSpeed = -1.00048;
+    };
+
+    // M249 SPW
+    class LMG_03_base_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 414.02;
+        ACE_barrelTwist = 177.8;
+        initSpeed = -1.00051;
+    };
+
+    // HK121
+    class MMG_01_base_F: Rifle_Long_Base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x
+        ACE_barrelLength = 550.0;
+        ACE_barrelTwist = 360.0;
+        initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C)
+    };
+
+    // LWMMG
+    class MMG_02_base_F: Rifle_Long_Base_F {
+        ACE_barrelLength = 609.6;
+        ACE_barrelTwist = 234.95;
         initSpeed = -1.0;
-        ACE_barrelTwist = 244.0;
-        ACE_barrelLength = 600.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
     };
 
-    // Type 115
-    class arifle_ARX_base_F: Rifle_Base_F {
-        initSpeed = -0.984262;
+    // Rifle_Base_F
+    // MX variants
+    class arifle_MX_Base_F: Rifle_Base_F {
         ACE_barrelTwist = 228.6;
-        ACE_barrelLength = 463.0;
-        class Single: Mode_SemiAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: Mode_FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
     };
 
-    // KH2002 Sama
-    class arifle_Katiba_F: arifle_katiba_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_green",
-            "30Rnd_65x39_caseless_green_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
-        };
+    // MX LSW
+    class arifle_MX_SW_F: arifle_MX_Base_F {
+        ACE_barrelLength = 406.4;
+        initSpeed = -0.981912;
+    };
+
+    // MXM
+    class arifle_MXM_F: arifle_MX_Base_F {
+        ACE_barrelLength = 457.2;
         initSpeed = -1.0;
-        ACE_barrelTwist = 203.2;
-        ACE_barrelLength = 508.0;
-    };
-
-    // KH2002C Sama
-    class arifle_Katiba_C_F: arifle_katiba_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_green",
-            "30Rnd_65x39_caseless_green_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
-        };
-        initSpeed = -0.961294;
-        ACE_barrelTwist = 203.2;
-        ACE_barrelLength = 393.7;
-        class Single: Single {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
+        magazines[] += {
+            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
+            "ACE_30Rnd_65x47_Scenar_mag",
+            "ACE_30Rnd_65_Creedmor_mag"
         };
     };
 
-    // KH2002 Sama KGL
-    class arifle_Katiba_GL_F: arifle_katiba_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_green",
-            "30Rnd_65x39_caseless_green_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
+    class arifle_MXM_Black_F: arifle_MXM_F {
+        magazines[] += {
+            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
+            "ACE_30Rnd_65x47_Scenar_mag",
+            "ACE_30Rnd_65_Creedmor_mag"
+        };
+    };
+
+    class arifle_MXM_khk_F: arifle_MXM_Black_F {
+        magazines[] += {
+            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
+            "ACE_30Rnd_65x47_Scenar_mag",
+            "ACE_30Rnd_65_Creedmor_mag"
         };
-        initSpeed = -1.0;
-        ACE_barrelTwist = 203.2;
-        ACE_barrelLength = 508.0;
     };
 
     // MX
     class arifle_MX_F: arifle_MX_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
-        };
-        initSpeed = -0.972222;
-        ACE_barrelTwist = 228.6;
         ACE_barrelLength = 368.3;
+        initSpeed = -0.972222;
     };
 
     // MX 3GL
     class arifle_MX_GL_F: arifle_MX_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
-        };
-        initSpeed = -0.972222;
-        ACE_barrelTwist = 228.6;
         ACE_barrelLength = 368.3;
+        initSpeed = -0.972222;
     };
 
     // MXC
     class arifle_MXC_F: arifle_MX_Base_F {
-        magazines[] = {
-            "30Rnd_65x39_caseless_mag",
-            "30Rnd_65x39_caseless_mag_Tracer",
-            "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
-        };
-        initSpeed = -0.946382;
-        ACE_barrelTwist = 203.2;
         ACE_barrelLength = 266.7;
-        class Single: Single {
-            dispersion = MOA_TO_RAD(0.90);
-        };
-
-        class FullAuto: FullAuto {
-            dispersion = MOA_TO_RAD(0.90);
-        };
+        ACE_barrelTwist = 203.2;
+        initSpeed = -0.946382;
     };
 
-    // RFB SDAR
-    class arifle_SDAR_F: SDAR_base_F {
-        magazines[] = {
-            "20Rnd_556x45_UW_mag",
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.998321;
-        ACE_barrelTwist = 285.75;
-        ACE_barrelLength = 457.2;
+    // KH2002 Sama variants
+    class arifle_katiba_Base_F: Rifle_Base_F {
+        ACE_barrelTwist = 203.2;
     };
 
-    class SMG_02_base_F: Rifle_Short_Base_F  {};
-
-    // Scorpion Evo 3 A1
-    class SMG_02_F: SMG_02_base_F  {
-        initSpeed = -1.00029;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 195.58;
+    // KH2002 Sama
+    class arifle_Katiba_F: arifle_katiba_Base_F {
+        ACE_barrelLength = 508.0;
+        initSpeed = -1.0;
     };
 
-    // MP5K
-    class SMG_05_base_F: Rifle_Short_Base_F {
-        initSpeed = -0.943783;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 115.0;
+    // KH2002C Sama
+    class arifle_Katiba_C_F: arifle_katiba_Base_F {
+        ACE_barrelLength = 393.7;
+        initSpeed = -0.961294;
     };
 
-    // CTAR-21
-    class arifle_TRG20_F: Tavor_base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.961496;
+    // KH2002 Sama KGL
+    class arifle_Katiba_GL_F: arifle_katiba_Base_F {
+        ACE_barrelLength = 508.0;
+        initSpeed = -1.0;
+    };
+
+    // CTAR-21 variants
+    class Tavor_base_F: Rifle_Base_F {
         ACE_barrelTwist = 177.8;
+    };
+
+     // CTAR-21
+    class arifle_TRG20_F: Tavor_base_F {
         ACE_barrelLength = 381.0;
+        initSpeed = -0.961496;
     };
 
     // TAR-21
     class arifle_TRG21_F: Tavor_base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -1.0;
-        ACE_barrelTwist = 177.8;
         ACE_barrelLength = 459.74;
-        class Single: Single {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
+        initSpeed = -1.0;
     };
 
     // TAR-21 EGLM
     class arifle_TRG21_GL_F: arifle_TRG21_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
         initSpeed = -1.0;
+    };
+
+    // F2000 variants
+    class mk20_base_F: Rifle_Base_F {
         ACE_barrelTwist = 177.8;
-        ACE_barrelLength = 459.74;
     };
 
     // F2000
     class arifle_Mk20_F: mk20_base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.992849;
-        ACE_barrelTwist = 177.8;
         ACE_barrelLength = 441.96;
+        initSpeed = -0.992849;
     };
 
     // F2000 Tactical
     class arifle_Mk20C_F: mk20_base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.974297;
-        ACE_barrelTwist = 177.8;
         ACE_barrelLength = 406.4;
-        class Single: Single {
-            dispersion = MOA_TO_RAD(1.12);
-        };
-
-        class FullAuto: FullAuto {
-            dispersion = MOA_TO_RAD(1.12);
-        };
+        initSpeed = -0.974297;
     };
 
     // F2000 EGLM
     class arifle_Mk20_GL_F: mk20_base_F {
-        magazines[] = {
-            "30Rnd_556x45_Stanag",
-            "30Rnd_556x45_Stanag_Tracer_Red",
-            "30Rnd_556x45_Stanag_Tracer_Green",
-            "30Rnd_556x45_Stanag_Tracer_Yellow",
-            "30Rnd_556x45_Stanag_red",
-            "30Rnd_556x45_Stanag_green",
-            "ACE_30Rnd_556x45_Stanag_M995_AP_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk262_mag",
-            "ACE_30Rnd_556x45_Stanag_Mk318_mag",
-            "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
-        };
-        initSpeed = -0.974297;
-        ACE_barrelTwist = 177.8;
         ACE_barrelLength = 406.4;
+        initSpeed = -0.974297;
     };
 
-    class SMG_01_Base: Rifle_Short_Base_F {};
+    // P90 (1.86) variants
+    class SMG_03_TR_BASE: Rifle_Base_F {
+        ACE_barrelLength = 407;
+        ACE_barrelTwist = 228.6; // 1:9 inch twist
+        initSpeed = -1.083916; // 775 m/s according with the ACE_muzzleVelocities at 15°C, default BI value -1.1 (786 m/s)
+        modes[] = {"Single"};
+    };
+
+    class SMG_03C_BASE: SMG_03_TR_BASE {
+        ACE_barrelLength = 264;
+        modes[] = {"Single", "FullAuto"};
+    };
+
+    // HK416 variants
+    // HK416A5 11"
+    class arifle_SPAR_01_base_F: Rifle_Base_F {
+        ACE_barrelLength = 264.0;
+        ACE_barrelTwist = 177.8;
+        initSpeed = -0.869636;
+    };
+
+    // HK416A5 14.5"
+    class arifle_SPAR_02_base_F: Rifle_Base_F {
+        ACE_barrelLength = 368.0;
+        ACE_barrelTwist = 177.8;
+        initSpeed = -0.999864;
+    };
+
+    // HK417A2 20"
+    class arifle_SPAR_03_base_F: Rifle_Base_F {
+        ACE_barrelLength = 508.0;
+        ACE_barrelTwist = 279.4;
+        initSpeed = -0.991536;
+    };
+
+    // RFB SDAR
+    class SDAR_base_F: Rifle_Base_F {
+        ACE_barrelLength = 457.2;
+        ACE_barrelTwist = 285.75;
+        initSpeed = -0.998321;
+    };
+
+    // AKS
+    class arifle_AKS_base_F: Rifle_Base_F {
+        ACE_barrelLength = 210;
+        ACE_barrelTwist = 160;
+        initSpeed = -1; // 735 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    // AKM
+    class arifle_AKM_base_F: Rifle_Base_F {
+        ACE_barrelLength = 415;
+        ACE_barrelTwist = 240;
+        initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    // AK15,AK15K,RPK (AK12)
+    class arifle_AK12_base_F: Rifle_Base_F {
+        ACE_barrelLength = 415;
+        ACE_barrelTwist = 240;
+        initSpeed = -1; // 715 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    class arifle_AK12U_base_F: arifle_AK12_base_F {
+        ACE_barrelLength = 314;
+        initSpeed = -0.937063; // 715*0.937063= 670 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    class arifle_RPK12_base_F: arifle_AK12_base_F {
+        ACE_barrelLength = 590;
+        initSpeed = -1.041958; // 715*1.041958= 745 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    // MSBS GROT (Promet)
+    class arifle_MSBS65_base_F: Rifle_Base_F {
+        ACE_barrelLength = 406.4; // 16"
+        ACE_barrelTwist = 228.6;
+        initSpeed = -0.971576; // 774*0.971576= 752 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    class arifle_MSBS65_Mark_base_F: arifle_MSBS65_base_F {
+        ACE_barrelLength = 508; // 20"
+        initSpeed = -1.007752; // 774*1.007752= 780 m/s according with the ACE_muzzleVelocities at 15°C
+    };
+
+    // QBZ-95-1
+    class arifle_CTAR_base_F: Rifle_Base_F {
+        ACE_barrelLength = 463.0;
+        ACE_barrelTwist = 244.0;
+        initSpeed = -0.978947;
+    };
+
+    // QBZ-95-1 LSW
+    class arifle_CTARS_base_F: Rifle_Base_F {
+        ACE_barrelLength = 600.0;
+        ACE_barrelTwist = 244.0;
+        initSpeed = -1.0;
+    };
+
+    // Type 115
+    class arifle_ARX_base_F: Rifle_Base_F {
+        ACE_barrelLength = 463.0;
+        ACE_barrelTwist = 228.6;
+        initSpeed = -0.984262;
+    };
+
+    // Rifle_Short_Base_F
+    // CPW
+    class pdw2000_base_F: Rifle_Short_Base_F {
+        ACE_barrelLength = 177.8;
+        ACE_barrelTwist = 228.6;
+    };
+
+    class hgun_PDW2000_F: pdw2000_base_F {
+        initSpeed = -0.994186;
+    };
 
     // Vector SMG
+    class SMG_01_Base: Rifle_Short_Base_F {
+        ACE_barrelLength = 139.7;
+        ACE_barrelTwist = 406.4;
+    };
+
     class SMG_01_F: SMG_01_Base {
         initSpeed = -1.00148;
+    };
+
+    // Scorpion Evo 3 A1
+    class SMG_02_base_F: Rifle_Short_Base_F  {
+        ACE_barrelLength = 195.58;
+        ACE_barrelTwist = 254.0;
+    };
+
+    class SMG_02_F: SMG_02_base_F  {
+        initSpeed = -1.00029;
+    };
+
+    // MP5K
+    class SMG_05_base_F: Rifle_Short_Base_F {
+        ACE_barrelLength = 115.0;
+        ACE_barrelTwist = 254.0;
+        initSpeed = -0.943783;
+    };
+
+    // Pistol_Base_F
+    // P99
+    class hgun_P07_F: Pistol_Base_F {
+        ACE_barrelLength = 101.6;
+        ACE_barrelTwist = 254.0;
+        initSpeed = -0.906977;
+    };
+
+    // MP-443 Grach
+    class hgun_Rook40_F: Pistol_Base_F {
+        ACE_barrelLength = 111.76;
+        ACE_barrelTwist = 254.0;
+        initSpeed = -0.934884;
+    };
+
+    // Custom Covert II
+    class hgun_ACPC2_F: Pistol_Base_F {
+        ACE_barrelLength = 127.0;
         ACE_barrelTwist = 406.4;
-        ACE_barrelLength = 139.7;
+        initSpeed = -0.984252;
     };
 
-    // VS-121
-    class srifle_DMR_01_F: DMR_01_base_F {
-        magazines[] = {
-            "10Rnd_762x54_Mag",
-            "ACE_10Rnd_762x54_Tracer_mag"
-        };
-        initSpeed = -1.00019;
-        ACE_barrelTwist = 241.3;
-        ACE_barrelLength = 609.6;
+    // FNX-45 Tactical
+    class hgun_Pistol_heavy_01_F: Pistol_Base_F {
+        ACE_barrelLength = 114.3;
+        ACE_barrelTwist = 406.4;
+        initSpeed = -0.944882;
     };
 
-    // Mk14 Mod 1 EBR
-    class srifle_EBR_F: EBR_base_F {
-        magazines[] = {
-            "20Rnd_762x51_Mag",
-            "ACE_20Rnd_762x51_Mag_Tracer",
-            "ACE_20Rnd_762x51_Mag_Tracer_Dim",
-            "ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M118LR_Mag",
-            "ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M993_AP_Mag",
-            "ACE_20Rnd_762x51_Mag_SD"
-        };
-        initSpeed = -0.979444;
-        ACE_barrelTwist = 304.8;
-        ACE_barrelLength = 457.2;
+    // Chiappa Rhino 60DS
+    class hgun_Pistol_heavy_02_F: Pistol_Base_F {
+        ACE_barrelLength = 76.2;
+        ACE_barrelTwist = 406.4;
+        initSpeed = -0.905512;
     };
 
-    // M200 Intervention
-    class srifle_LRR_F: LRR_base_F {
-        magazines[] = {
-            "7Rnd_408_Mag",
-            "ACE_7Rnd_408_305gr_Mag"
-        };
-        initSpeed = -1.0;
-        ACE_barrelTwist = 330.2;
-        ACE_barrelLength = 736.6;
-    };
-
-    // GM6 Lynx
-    class srifle_GM6_F: GM6_base_F {
-        magazines[] = {
-            "5Rnd_127x108_Mag",
-            "5Rnd_127x108_APDS_Mag",
-            "ACE_5Rnd_127x99_Mag",
-            "ACE_5Rnd_127x99_API_Mag",
-            "ACE_5Rnd_127x99_AMAX_Mag"
-        };
-        initSpeed = -1.0;
-        ACE_barrelTwist = 381.0;
-        ACE_barrelLength = 730;
-    };
-
-    // Noreen "Bad News" ULR
-    class srifle_DMR_02_F: DMR_02_base_F {
-        magazines[] = {
-            "10Rnd_338_Mag",
-            "ACE_10Rnd_338_300gr_HPBT_Mag",
-            "ACE_10Rnd_338_API526_Mag",
-            "ACE_20Rnd_762x67_Mk248_Mod_0_Mag",
-            "ACE_20Rnd_762x67_Mk248_Mod_1_Mag",
-            "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
-        };
-        initSpeed = -1.0;
+    // Makarov PM
+    class hgun_Pistol_01_F: Pistol_Base_F {
+        ACE_barrelLength = 93.5;
         ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 508.0;
+        initSpeed = -0.883721;
     };
 
-    // SIG 556
-    class srifle_DMR_03_F: DMR_03_base_F {
-        magazines[] = {
-            "20Rnd_762x51_Mag",
-            "ACE_20Rnd_762x51_Mag_Tracer",
-            "ACE_20Rnd_762x51_Mag_Tracer_Dim",
-            "ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M118LR_Mag",
-            "ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
-            "ACE_20Rnd_762x51_M993_AP_Mag",
-            "ACE_20Rnd_762x51_Mag_SD"
-        };
-        initSpeed = -0.991536;
-        ACE_barrelTwist = 254.0;
-        ACE_barrelLength = 508.0;
-    };
-
-    // ASP-1 Kir
-    class srifle_DMR_04_F: DMR_04_base_F {
-        initSpeed = -1.0;
-        ACE_barrelTwist = 203.2;
-        ACE_barrelLength = 450.088;
-    };
-
-    // Cyrus
-    class srifle_DMR_05_blk_F: DMR_05_base_F {
-        initSpeed = -1.0; // 780 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C)
-        ACE_barrelTwist = 360.0;
-        ACE_barrelLength = 620.0;
-    };
-
-    // HK121
-    class MMG_01_hex_F: MMG_01_base_F { // https://www.heckler-koch.com/en/products/military/machine-guns/mg5/mg5/technical-data.html93x
-        initSpeed = -1.0; // 768 m/s according with the ACE_ammoTempMuzzleVelocityShifts at the normal conditions (15°C)
-        ACE_barrelTwist = 360.0;
-        ACE_barrelLength = 550.0;
-    };
-
-    // LWMMG
-    class MMG_02_camo_F: MMG_02_base_F {
-        initSpeed = -1.0;
-        ACE_barrelTwist = 234.95;
-        ACE_barrelLength = 609.6;
-    };
-
-    class HMG_127 : LMG_RCWS {
-    };
-    class HMG_01: HMG_127 {
-    };
+    // M2_Turret
     class HMG_M2: HMG_01 {
-        initSpeed = -1.0;
-        ACE_barrelTwist = 304.8;
         ACE_barrelLength = 1143.0;
+        ACE_barrelTwist = 304.8;
+        initSpeed = -1.0;
     };
 
     /* Silencers */