diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp
index 53e22f1aa8..10028e2ab0 100644
--- a/addons/medical/CfgVehicles.hpp
+++ b/addons/medical/CfgVehicles.hpp
@@ -347,7 +347,7 @@ class CfgVehicles {
         };
         class ACE_SelfActions {
             class Medical {
-                displayName = "Medical";
+                displayName = "$STR_ACE_MEDICAL_ACTIONS_Medical";
                 runOnHover = 1;
                 hotkey = "M";
                 statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
@@ -372,7 +372,7 @@ class CfgVehicles {
                     };
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment));
@@ -383,31 +383,31 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class CheckPulse: fieldDressing {
-                        displayName = "Check Pulse";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
                         icon = "";
                     };
                     class CheckBloodPressure: CheckPulse {
-                        displayName = "Check Blood Pressure";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                         condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
                     };
@@ -437,7 +437,7 @@ class CfgVehicles {
                     };
 
                     class TriageCard {
-                        displayName = "Triage Card";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_TriageCard";
                         distance = 2.0;
                         condition = "true";
                         statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard));
@@ -450,7 +450,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment));
@@ -461,19 +461,19 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
@@ -499,7 +499,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment));
@@ -510,25 +510,25 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class Tourniquet: fieldDressing {
-                        displayName = "Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -540,7 +540,7 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\autoInjector.paa);
                     };
                     class Atropine: Morphine {
-                        displayName = "Atropine";
+                        displayName = "$STR_ACE_Medical_Inject_Atropine";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\autoInjector.paa);
@@ -552,18 +552,18 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\autoInjector.paa);
                     };
                     class CheckPulse: fieldDressing {
-                        displayName = "Check Pulse";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
                         icon = "";
                     };
                     class CheckBloodPressure: CheckPulse {
-                        displayName = "Check Blood Pressure";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
                     };
                     class RemoveTourniquet: Tourniquet {
-                        displayName = "Remove Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
                     };
@@ -588,7 +588,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment));
@@ -599,23 +599,23 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
                     };
                     class Tourniquet: fieldDressing {
-                        displayName = "Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -627,7 +627,7 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\autoInjector.paa);
                     };
                     class Atropine: Morphine {
-                        displayName = "Atropine";
+                        displayName = "$STR_ACE_Medical_Inject_Atropine";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment));
                     };
@@ -637,18 +637,18 @@ class CfgVehicles {
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment));
                     };
                     class CheckPulse: fieldDressing {
-                        displayName = "Check Pulse";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
                         icon = "";
                     };
                     class CheckBloodPressure: CheckPulse {
-                        displayName = "Check Blood Pressure";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
                     };
                     class RemoveTourniquet: Tourniquet {
-                        displayName = "Remove Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
                     };
@@ -674,7 +674,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment));
@@ -685,23 +685,23 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
                     };
                     class Tourniquet: fieldDressing {
-                        displayName = "Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -712,7 +712,7 @@ class CfgVehicles {
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment));
                     };
                     class Atropine: Morphine {
-                        displayName = "Atropine";
+                        displayName = "$STR_ACE_Medical_Inject_Atropine";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\autoInjector.paa);
@@ -723,7 +723,7 @@ class CfgVehicles {
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment));
                     };
                     class RemoveTourniquet: Tourniquet {
-                        displayName = "Remove Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
                     };
@@ -749,7 +749,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment));
@@ -760,23 +760,23 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
                     };
                     class Tourniquet: fieldDressing {
-                        displayName = "Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -788,7 +788,7 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\autoInjector.paa);
                     };
                     class Atropine: Morphine {
-                        displayName = "Atropine";
+                        displayName = "$STR_ACE_Medical_Inject_Atropine";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment));
                     };
@@ -798,7 +798,7 @@ class CfgVehicles {
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment));
                     };
                     class RemoveTourniquet: Tourniquet {
-                        displayName = "Remove Tourniquet";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                         condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
                     };
@@ -825,7 +825,7 @@ class CfgVehicles {
                 };
                 // Advanced medical
                 class FieldDressing {
-                    displayName = "Field Dressing";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                     distance = 5.0;
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment));
@@ -836,31 +836,31 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class PackingBandage: fieldDressing {
-                    displayName = "Packing Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\packingBandage.paa);
                 };
                 class ElasticBandage: fieldDressing {
-                    displayName = "Elastic Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class QuikClot: fieldDressing {
-                    displayName = "QuikClot";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class CheckPulse: fieldDressing {
-                    displayName = "Check Pulse";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
                     icon = "";
                 };
                 class CheckBloodPressure: CheckPulse {
-                    displayName = "Check Blood Pressure";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                     condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
                 };
@@ -931,7 +931,7 @@ class CfgVehicles {
 
                     // Advanced medical
                     class FieldDressing {
-                        displayName = "Field Dressing";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                         distance = 5.0;
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment));
@@ -942,19 +942,19 @@ class CfgVehicles {
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class PackingBandage: fieldDressing {
-                        displayName = "Packing Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\packingBandage.paa);
                     };
                     class ElasticBandage: fieldDressing {
-                        displayName = "Elastic Bandage";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
                     };
                     class QuikClot: fieldDressing {
-                        displayName = "QuikClot";
+                        displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                         condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
                         statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
                         icon = PATHTOF(UI\icons\bandage.paa);
@@ -998,7 +998,7 @@ class CfgVehicles {
 
                 // Advanced medical
                 class FieldDressing {
-                    displayName = "Field Dressing";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                     distance = 5.0;
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment));
@@ -1009,25 +1009,25 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class PackingBandage: fieldDressing {
-                    displayName = "Packing Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\packingBandage.paa);
                 };
                 class ElasticBandage: fieldDressing {
-                    displayName = "Elastic Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class QuikClot: fieldDressing {
-                    displayName = "QuikClot";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class Tourniquet: fieldDressing {
-                    displayName = "Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -1039,7 +1039,7 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\autoInjector.paa);
                 };
                 class Atropine: Morphine {
-                    displayName = "Atropine";
+                    displayName = "$STR_ACE_Medical_Inject_Atropine";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\autoInjector.paa);
@@ -1051,64 +1051,64 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\autoInjector.paa);
                 };
                 class BloodIV: fieldDressing {
-                    displayName = "Give Blood IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\iv.paa);
                 };
                 class BloodIV_500: BloodIV {
-                    displayName = "Give Blood IV (500ml)";
+                    displayName = "#STR_ACE_MEDICAL_ACTIONS_Blood4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment));
                 };
                 class BloodIV_250: BloodIV {
-                    displayName = "Give Blood IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment));
                 };
                 class PlasmaIV: BloodIV {
-                    displayName = "Give Blood IV (1000ml)";
-                    condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached));
-                    statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment));
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000";
+                    condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached));
+                    statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment));
                 };
                 class PlasmaIV_500: PlasmaIV {
-                    displayName = "Give Plasma IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment));
                 };
                 class PlasmaIV_250: PlasmaIV {
-                    displayName = "Give Plasma IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment));
                 };
                 class SalineIV: BloodIV {
-                    displayName = "Give Saline IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment));
                 };
                 class SalineIV_500: SalineIV {
-                    displayName = "Give Saline IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment));
                 };
                 class SalineIV_250: SalineIV {
-                    displayName = "Give Saline IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment));
                 };
                 class CheckPulse: fieldDressing {
-                    displayName = "Check Pulse";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
                     icon = "";
                 };
                 class CheckBloodPressure: CheckPulse {
-                    displayName = "Check Blood Pressure";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
                 };
                 class RemoveTourniquet: Tourniquet {
-                    displayName = "Remove Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
                 };
@@ -1132,7 +1132,7 @@ class CfgVehicles {
 
                 // Advanced medical
                 class FieldDressing {
-                    displayName = "Field Dressing";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                     distance = 5.0;
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment));
@@ -1143,23 +1143,23 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class PackingBandage: fieldDressing {
-                    displayName = "Packing Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\packingBandage.paa);
                 };
                 class ElasticBandage: fieldDressing {
-                    displayName = "Elastic Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
                 };
                 class QuikClot: fieldDressing {
-                    displayName = "QuikClot";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
                 };
                 class Tourniquet: fieldDressing {
-                    displayName = "Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -1171,7 +1171,7 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\autoInjector.paa);
                 };
                 class Atropine: Morphine {
-                    displayName = "Atropine";
+                    displayName = "$STR_ACE_Medical_Inject_Atropine";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment));
                 };
@@ -1181,64 +1181,64 @@ class CfgVehicles {
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment));
                 };
                 class BloodIV: fieldDressing {
-                    displayName = "Give Blood IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\iv.paa);
                 };
                 class BloodIV_500: BloodIV {
-                    displayName = "Give Blood IV (500ml)";
+                    displayName = "#STR_ACE_MEDICAL_ACTIONS_Blood4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment));
                 };
                 class BloodIV_250: BloodIV {
-                    displayName = "Give Blood IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment));
                 };
                 class PlasmaIV: BloodIV {
-                    displayName = "Give Plasma IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment));
                 };
                 class PlasmaIV_500: PlasmaIV {
-                    displayName = "Give Plasma IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment));
                 };
                 class PlasmaIV_250: PlasmaIV {
-                    displayName = "Give Plasma IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment));
                 };
                 class SalineIV: BloodIV {
-                    displayName = "Give Saline IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment));
                 };
                 class SalineIV_500: SalineIV {
-                    displayName = "Give Saline IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment));
                 };
                 class SalineIV_250: SalineIV {
-                    displayName = "Give Saline IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment));
                 };
                 class CheckPulse: fieldDressing {
-                    displayName = "Check Pulse";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
                     icon = "";
                 };
                 class CheckBloodPressure: CheckPulse {
-                    displayName = "Check Blood Pressure";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
                 };
                 class RemoveTourniquet: Tourniquet {
-                    displayName = "Remove Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
                 };
@@ -1264,7 +1264,7 @@ class CfgVehicles {
 
                 // Advanced medical
                 class FieldDressing {
-                    displayName = "Field Dressing";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                     distance = 5.0;
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment));
@@ -1275,23 +1275,23 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class PackingBandage: fieldDressing {
-                    displayName = "Packing Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\packingBandage.paa);
                 };
                 class ElasticBandage: fieldDressing {
-                    displayName = "Elastic Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
                 };
                 class QuikClot: fieldDressing {
-                    displayName = "QuikClot";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
                 };
                 class Tourniquet: fieldDressing {
-                    displayName = "Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -1302,7 +1302,7 @@ class CfgVehicles {
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment));
                 };
                 class Atropine: Morphine {
-                    displayName = "Atropine";
+                    displayName = "$STR_ACE_Medical_Inject_Atropine";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\autoInjector.paa);
@@ -1313,53 +1313,53 @@ class CfgVehicles {
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment));
                 };
                 class BloodIV: fieldDressing {
-                    displayName = "Give Blood IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\iv.paa);
                 };
                 class BloodIV_500: BloodIV {
-                    displayName = "Give Blood IV (500ml)";
+                    displayName = "#STR_ACE_MEDICAL_ACTIONS_Blood4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment));
                 };
                 class BloodIV_250: BloodIV {
-                    displayName = "Give Blood IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment));
                 };
                 class PlasmaIV: BloodIV {
-                    displayName = "Give Plasma IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment));
                 };
                 class PlasmaIV_500: PlasmaIV {
-                    displayName = "Give Plasma IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment));
                 };
                 class PlasmaIV_250: PlasmaIV {
-                    displayName = "Give Plasma IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment));
                 };
                 class SalineIV: BloodIV {
-                    displayName = "Give saline IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment));
                 };
                 class SalineIV_500: SalineIV {
-                    displayName = "Give saline IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment));
                 };
                 class SalineIV_250: SalineIV {
-                    displayName = "Give saline IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment));
                 };
                 class RemoveTourniquet: Tourniquet {
-                    displayName = "Remove Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
                 };
@@ -1384,7 +1384,7 @@ class CfgVehicles {
 
                 // Advanced medical
                 class FieldDressing {
-                    displayName = "Field Dressing";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing";
                     distance = 5.0;
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment));
@@ -1395,23 +1395,23 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\bandage.paa);
                 };
                 class PackingBandage: fieldDressing {
-                    displayName = "Packing Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\packingBandage.paa);
                 };
                 class ElasticBandage: fieldDressing {
-                    displayName = "Elastic Bandage";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
                 };
                 class QuikClot: fieldDressing {
-                    displayName = "QuikClot";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
                 };
                 class Tourniquet: fieldDressing {
-                    displayName = "Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\tourniquet.paa);
@@ -1423,7 +1423,7 @@ class CfgVehicles {
                     icon = PATHTOF(UI\icons\autoInjector.paa);
                 };
                 class Atropine: Morphine {
-                    displayName = "Atropine";
+                    displayName = "$STR_ACE_Medical_Inject_Atropine";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment));
                 };
@@ -1433,53 +1433,53 @@ class CfgVehicles {
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment));
                 };
                 class BloodIV: fieldDressing {
-                    displayName = "Give Blood IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment));
                     icon = PATHTOF(UI\icons\iv.paa);
                 };
                 class BloodIV_500: BloodIV {
-                    displayName = "Give Blood IV (500ml)";
+                    displayName = "#STR_ACE_MEDICAL_ACTIONS_Blood4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment));
                 };
                 class BloodIV_250: BloodIV {
-                    displayName = "Give Blood IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment));
                 };
                 class PlasmaIV: BloodIV {
-                    displayName = "Give Plasma IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment));
                 };
                 class PlasmaIV_500: PlasmaIV {
-                    displayName = "Give Plasma IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment));
                 };
                 class PlasmaIV_250: PlasmaIV {
-                    displayName = "Give Plasma IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment));
                 };
                 class SalineIV: BloodIV {
-                    displayName = "Give Saline IV (1000ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment));
                 };
                 class SalineIV_500: SalineIV {
-                    displayName = "Give Saline IV (500ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment));
                 };
                 class SalineIV_250: SalineIV {
-                    displayName = "Give Saline IV (250ml)";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment));
                 };
                 class RemoveTourniquet: Tourniquet {
-                    displayName = "Remove Tourniquet";
+                    displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet";
                     condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
                     statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
                 };
diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml
index 1ff24420d7..f3d4e969a5 100644
--- a/addons/medical/stringtable.xml
+++ b/addons/medical/stringtable.xml
@@ -1,788 +1,857 @@
-<?xml version="1.0"encoding="UTF-8"?>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Edited with tabler - 2015-03-23 -->
 <Project name="ACE">
-    <Package name="Medical">
-        <Container name="Basic">
-            <Key ID="STR_ACE_Medical_Inject_Morphine">
-                <English>Inject Morphine</English>
-                <German>Morphin injizieren</German>
-                <Spanish>Inyectar Morfina</Spanish>
-                <Polish>Wstrzyknij morfinę</Polish>
-                <Czech>Aplikovat Morfin</Czech>
-                <Russian>Ввести морфин</Russian>
-                <French>Morphine</French>
-                <Hungarian>Morfium</Hungarian>
-                <Portuguese>Injetar Morfina</Portuguese>
-                <Italian>Inietta Morfina</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Inject_Epinephrine">
-                <English>Inject Epinephrine</English>
-                <German>Epinephrine injizieren</German>
-                <Spanish>Inyectar Epinefrina</Spanish>
-                <Polish>Wtrzyknij adrenalinę</Polish>
-                <Czech>Aplikovat Adrenalin</Czech>
-                <Russian>Ввести андреналил</Russian>
-                <French>Adrénaline</French>
-                <Hungarian>Adrenalin</Hungarian>
-                <Portuguese>Injetar Epinefrina</Portuguese>
-                <Italian>Inietta Epinefrina</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Transfuse_Blood">
-                <English>Transfuse Blood</English>
-                <German>Bluttransfusion</German>
-                <Spanish>Transfundir sangre</Spanish>
-                <Polish>Przetocz krew</Polish>
-                <Czech>Transfúze krve</Czech>
-                <Russian>Перелить кровь</Russian>
-                <French>Transfusion</French>
-                <Hungarian>Infúzió</Hungarian>
-                <Portuguese>Transfundir Sangue</Portuguese>
-                <Italian>Effettua Trasfusione</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage">
-                <English>Bandage</English>
-                <German>Verbinden</German>
-                <Spanish>Venda</Spanish>
-                <Polish>Bandaż</Polish>
-                <Czech>Obvázat</Czech>
-                <French>Pansement</French>
-                <Italian>Benda</Italian>
-                <Hungarian>Kötözés</Hungarian>
-                <Portuguese>Atadura</Portuguese>
-                <Russian>Перевязать</Russian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitHead">
-                <English>Bandage Head</English>
-                <German>Kopf verbinden</German>
-                <Spanish>Vendar la cabeza</Spanish>
-                <Polish>Bandażuj głowę</Polish>
-                <Czech>Obvázat hlavu</Czech>
-                <Russian>Перевязать голову</Russian>
-                <French>Pansement Tête</French>
-                <Hungarian>Fej kötözése</Hungarian>
-                <Portuguese>Atar Cabeça</Portuguese>
-                <Italian>Benda la testa</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitBody">
-                <English>Bandage Torso</English>
-                <German>Torso verbinden</German>
-                <Spanish>Vendar el torso</Spanish>
-                <Polish>Bandażuj tors</Polish>
-                <Czech>Obvázat hruď</Czech>
-                <Russian>Перевязать торс</Russian>
-                <French>Pansement Torse</French>
-                <Hungarian>Felsőtest kötözése</Hungarian>
-                <Portuguese>Atar Tronco</Portuguese>
-                <Italian>Benda il torso</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitLeftArm">
-                <English>Bandage Left Arm</English>
-                <German>Arm links verbinden</German>
-                <Spanish>Vendar el brazo izquierdo</Spanish>
-                <Polish>Bandażuj lewe ramię</Polish>
-                <Czech>Obvázat levou ruku</Czech>
-                <Russian>Перевязать левую руку</Russian>
-                <French>Pansement Bras Gauche</French>
-                <Hungarian>Bal kar kötözése</Hungarian>
-                <Portuguese>Atar Braço Esquerdo</Portuguese>
-                <Italian>Benda il braccio sinistro</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitRightArm">
-                <English>Bandage Right Arm</English>
-                <German>Arm rechts verbinden</German>
-                <Spanish>Vendar el brazo derecho</Spanish>
-                <Polish>Bandażuj prawe ramię</Polish>
-                <Czech>Obvázat pravou ruku</Czech>
-                <Russian>Перевязать правую руку</Russian>
-                <French>Pansement Bras Droit</French>
-                <Hungarian>Jobb kar kötözése</Hungarian>
-                <Portuguese>Atar Braço Direito</Portuguese>
-                <Italian>Benda il braccio destro</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitLeftLeg">
-                <English>Bandage Left Leg</English>
-                <German>Bein links verbinden</German>
-                <Spanish>Vendar la pierna izquierda</Spanish>
-                <Polish>Bandażuj lewą nogę</Polish>
-                <Czech>Obvázat levou nohu</Czech>
-                <Russian>Перевязать левую ногу</Russian>
-                <French>Pansement Jambe Gauche</French>
-                <Hungarian>Bal láb kötözése</Hungarian>
-                <Portuguese>Atar Perna Esquerda</Portuguese>
-                <Italian>Benda la gamba sinistra</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandage_HitRightLeg">
-                <English>Bandage Right Leg</English>
-                <German>Bein rechts verbinden</German>
-                <Spanish>Vendar la pierna derecha</Spanish>
-                <Polish>Bandażuj prawą nogę</Polish>
-                <Czech>Obvázat pravou nohu</Czech>
-                <Russian>Перевязать правую ногу</Russian>
-                <French>Pansement Jambe Droite</French>
-                <Hungarian>Jobb láb kötözése</Hungarian>
-                <Portuguese>Atar Perna Direita</Portuguese>
-                <Italian>Benda la gamba destra</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Injecting_Morphine">
-                <English>Injecting Morphine ...</English>
-                <German>Morphin injizieren ...</German>
-                <Spanish>Inyectando Morfina ...</Spanish>
-                <Polish>Wstrzykiwanie morfiny ...</Polish>
-                <Czech>Aplikuju Morfin ...</Czech>
-                <Russian>Введение морфина...</Russian>
-                <French>Injection de Morphine...</French>
-                <Hungarian>Morfium beadása...</Hungarian>
-                <Portuguese>Injetando Morfina ...</Portuguese>
-                <Italian>Inietto la morfina ...</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Injecting_Epinephrine">
-                <English>Injecting Epinephrine ...</English>
-                <German>Epinephrine injizieren ...</German>
-                <Spanish>Inyectando Epinefrina ...</Spanish>
-                <Polish>Wstrzykiwanie adrenaliny ...</Polish>
-                <Czech>Aplikuju Adrenalin ...</Czech>
-                <Russian>Введение андреналина</Russian>
-                <French>Injection d'Adrénaline ...</French>
-                <Hungarian>Adrenalin beadása...</Hungarian>
-                <Portuguese>Injetando Epinefrina ...</Portuguese>
-                <Italian>Inietto l'epinefrina ...</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Transfusing_Blood">
-                <English>Transfusing Blood ...</English>
-                <German>Bluttransfusion ...</German>
-                <Spanish>Realizando transfusión ...</Spanish>
-                <Polish>Przetaczanie krwi ...</Polish>
-                <Czech>Probíhá transfúze krve ...</Czech>
-                <Russian>Переливание крови...</Russian>
-                <French>Transfusion Sanguine ...</French>
-                <Hungarian>Infúzió...</Hungarian>
-                <Portuguese>Transfundindo Sangue ...</Portuguese>
-                <Italian>Effettuo la trasfusione ...</Italian>
-            </Key>
-            <Key ID="STR_ACE_Medical_Bandaging">
-                <English>Bandaging ...</English>
-                <German>Verbinden ...</German>
-                <Spanish>Vendando ...</Spanish>
-                <Polish>Bandażowanie ...</Polish>
-                <Czech>Obvazuji ...</Czech>
-                <French>Pansement ...</French>
-                <Italian>Sto applicando la benda ...</Italian>
-                <Hungarian>Bekötözés...</Hungarian>
-                <Portuguese>Atando ...</Portuguese>
-                <Russian>Перевязывание....</Russian>
-            </Key>
-        </Container>
-        <Container name="UI">
-            <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR">
-                <English>Minor</English>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DELAYED">
-                <English>Delayed</English>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_IMMEDIATE">
-                <English>Immediate</English>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DECEASED">
-                <English>Deceased</English>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_NONE">
-                <English>None</English>
-            </Key>
-             <Key ID="STR_ACE_MEDICAL_NORMAL_BREATHING">
-                <English>Normal breathing</English>
-                <Russian>Дыхание в норме</Russian>
-                <Spanish>Respiración normal</Spanish>
-                <French>Respiration Normale</French>
-                <Polish>Normalny oddech</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_NO_BREATHING">
-                <English>No breathing</English>
-                <Russian>Дыхания нет</Russian>
-                <Spanish>No respira</Spanish>
-                <French>Apnée</French>
-                <Polish>Brak oddechu</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_DIFFICULT_BREATHING">
-                <English>Difficult breathing</English>
-                <Russian>Дыхание затруднено</Russian>
-                <Spanish>Dificultad para respirar</Spanish>
-                <French>Difficultée Respiratoire</French>
-                <Polish>Trudności z oddychaniem</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_ALMOST_NO_BREATHING">
-                <English>Almost no breathing</English>
-                <Russian>Дыхания почти нет</Russian>
-                <Spanish>Casi sin respirar</Spanish>
-                <French>Respiration Faible</French>
-                <Polish>Prawie brak oddechu</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_STATUS_BLEEDING">
-                <English>Bleeding</English>
-                <Russian>Кровотечение</Russian>
-                <Spanish>Sangrando</Spanish>
-                <French>Seignement</French>
-                <Polish>Krwawienie zewnętrzne</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_STATUS_PAIN">
-                <English>In Pain</English>
-                <Russian>Испытывает боль</Russian>
-                <Spanish>Con Dolor</Spanish>
-                <French>A De La Douleur</French>
-                <Polish>W bólu</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_STATUS_LOST_BLOOD">
-                <English>Lost a lot of Blood</English>
-                <Russian>Большая кровопотеря</Russian>
-                <Spanish>Mucha Sangre perdida</Spanish>
-                <French>A Perdu Bcp de Sang</French>
-                <Polish>Stracił dużo krwi</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_STATUS_TOURNIQUET_APPLIED">
-                <English>Tourniquet [CAT]</English>
-                <Russian>Жгут</Russian>
-                <Spanish>Torniquete [CAT]</Spanish>
-                <French>Garot [CAT]</French>
-                <Polish>Opaska uciskowa [CAT]</Polish>
-            </Key>
-        </Container>
-        <Container name="CfgWeapons">
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY">
-                <English>Bandage (Basic)</English>
-                <Russian>Повязка (обычная)</Russian>
-                <Spanish>Vendaje (Básico)</Spanish>
-                <French>Bandage (Standard)</French>
-                <Polish>Bandaż (jałowy)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT">
-                <English>Used to cover a wound</English>
-                <Russian>Для перевязки ран</Russian>
-                <Spanish>Utilizado para cubrir una herida</Spanish>
-                <French>Utilisé Pour Couvrir Une Blessure</French>
-                <Polish>Używany w celu przykrycia i ochrony miejsca zranienia</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_USE">
-                <English>A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed.</English>
-                <Russian>Повязка, накладываемая поверх раны после остановки кровотечения.</Russian>
-                <Spanish>Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar.</Spanish>
-                <French>C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper.</French>
-                <Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY">
-                <English>Packing Bandage</English>
-                <Russian>Тампонирующая повязка</Russian>
-                <Spanish>Vendaje Compresivo</Spanish>
-                <French>Bandage Mèche</French>
-                <Polish>Bandaż (uciskowy)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_SHORT">
-                <English>Used to pack medium to large wounds and stem the bleeding</English>
-                <Russian>Для тампонирования ран среднего и большого размера и остановки кровотечения.</Russian>
-                <Spanish>Se utiliza para vendar heridas medianas y grandes y detener el sangrado</Spanish>
-                <French>Utiliser pour remplire la cavité créé dans une blessure moyenne et grande.</French>
-                <Polish>Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_USE">
-                <English>A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries.</English>
-                <Russian>Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны.</Russian>
-                <Spanish>Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos.</Spanish>
-                <French>Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma.</French>
-                <Polish>Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY">
-                <English>Bandage (Elastic)</English>
-                <Russian>Повязка (давящая)</Russian>
-                <Spanish>Vendaje (Elástico)</Spanish>
-                <French>Bandage (Élastique)</French>
-                <Polish>Bandaż (elastyczny)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_SHORT">
-                <English>Bandage kit, Elastic</English>
-                <Russian>Давящая повязка</Russian>
-                <Spanish>Vendaje (Elástico)</Spanish>
-                <French>Bandage Compressif Élastique</French>
-                <Polish>Zestaw bandaży elastycznych.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_USE">
-                <English></English>
-                <Russian></Russian>
-                <French>Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment.</French>
-                <Polish>Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów.</Polish>
-                <Spanish>Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DISPLAY">
-                <English>Tourniquet (CAT)</English>
-                <Russian>Жгут</Russian>
-                <Spanish>Torniquete (CAT)</Spanish>
-                <French>Garot (CAT)</French>
-                <Polish>Staza (typ. CAT)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_SHORT">
-                <English>Slows down blood loss when bleeding</English>
-                <Russian>Уменьшает кровопотерю при кровотечении.</Russian>
-                <Spanish>Reduce la velocidad de pérdida de sangre</Spanish>
-                <French>Ralentit le seignement</French>
-                <Polish>Zmniejsza ubytek krwi z kończyn w przypadku krwawienia.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_USE">
-                <English>A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood.</English>
-                <Russian>Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери.</Russian>
-                <Spanish>Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre</Spanish>
-                <French>Un appareil servent a compresser les artères et veines afin de reduire la perte de sang.</French>
-                <Polish>Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_MORPHINE_DISPLAY">
-                <English>Morphine auto-injector</English>
-                <Russian>Морфин в автоматическом шприце</Russian>
-                <Spanish>Morfina auto-inyectable</Spanish>
-                <French>Auto-injecteur de Morphine</French>
-                <Polish>Autostrzykawka z morfiną</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_SHORT">
-                <English>Used to combat moderate to severe pain experiences</English>
-                <Russian>Для снятия средних и сильных болевых ощущений.</Russian>
-                <Spanish>Usado para combatir los estados dolorosos moderados a severos</Spanish>
-                <French>Utiliser pour contrer les douleurs modéré à severes.</French>
-                <Polish>Morfina. Ma silne działanie przeciwbólowe.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_USE">
-                <English>An analgesic used to combat moderate to severe pain experiences.</English>
-                <Russian>Анальгетик для снятия средних и сильных болевых ощущений.</Russian>
-                <Spanish>Analgésico usado para combatir los estados dolorosos de moderado a severo.</Spanish>
-                <French>Un Analgésique puissant servant a contrer les douleur modéré a severe.</French>
-                <Polish>Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_ATROPINE_DISPLAY">
-                <English>Atropin auto-injector</English>
-                <Russian>Атропин в автоматическом шприце</Russian>
-                <Spanish>Atropina auto-inyectable</Spanish>
-                <French>Auto-injecteur d'Atropine</French>
-                <Polish>Autostrzykawka AtroPen</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_SHORT">
-                <English>Used in NBC scenarios</English>
-                <Russian>Применяется для защиты от ОМП</Russian>
-                <Spanish>Usado en escenarios NBQ</Spanish>
-                <French>Utiliser en cas d'attaque CBRN</French>
-                <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_USE">
-                <English>A drug used by the Military in NBC scenarios.</English>
-                <Russian>Препарат, используемый в войсках для защиты от оружия массового поражения.</Russian>
-                <Spanish>Medicamento usado por Militares en escenarios NBQ</Spanish>
-                <French>Médicament utilisé par l'armée en cas d'attaque CBRN</French>
-                <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY">
-                <English>Epinephrine auto-injector</English>
-                <Russian>Адреналин в автоматическом шприце</Russian>
-                <Spanish>Epinefrina auto-inyectable</Spanish>
-                <French>Auto-injecteur d'épinéphrine</French>
-                <Polish>Autostrzykawka EpiPen</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_SHORT">
-                <English>Increase heart rate and counter effects given by allergic reactions</English>
-                <Russian>Стимулирует работу сердца и купирует аллергические реакции.</Russian>
-                <Spanish>Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas</Spanish>
-                <French>Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique</French>
-                <Polish>Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_USE">
-                <English>A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes.</English>
-                <Russian>Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода.</Russian>
-                <Spanish>Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos.</Spanish>
-                <French>Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme.</French>
-                <Polish>EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PLASMA_IV">
-                <English>Plasma IV (1000ml)</English>
-                <Russian>Плазма для в/в вливания (1000 мл)</Russian>
-                <Spanish>Plasma Intravenoso (1000ml)</Spanish>
-                <French>Plasma Sanguin IV (1000ml)</French>
-                <Polish>Osocze IV (1000ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_SHORT">
-                <English>A volume-expanding blood supplement.</English>
-                <Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
-                <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
-                <French>Supplement visant a remplacer les volume sanguin</French>
-                <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_USE">
-                <English>A volume-expanding blood supplement.</English>
-                <Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
-                <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
-                <French>Supplement visant a remplacer le volume sanguin et remplace les plaquettes.</French>
-                <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PLASMA_IV_500">
-                <English>Plasma IV (500ml)</English>
-                <Russian>Плазма для в/в вливания (500 мл)</Russian>
-                <Spanish>Plasma Intravenoso (500ml)</Spanish>
-                <French>Plasma Sanguin IV (500ml)</French>
-                <Polish>Osocze IV (500ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_PLASMA_IV_250">
-                <English>Plasma IV (250ml)</English>
-                <Russian>Плазма для в/в вливания (250 мл)</Russian>
-                <Spanish>Plasma Intravenoso (250ml)</Spanish>
-                <French>Plasma Sanguin (250ml)</French>
-                <Polish>Osocze IV (250ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BLOOD_IV">
-                <English>Blood IV (1000ml)</English>
-                <Russian>Кровь для переливания (1000 мл)</Russian>
-                <Spanish>Sangre Intravenosa (1000ml)</Spanish>
-                <French>Cullot Sanguin IV (1000ml)</French>
-                <Polish>Krew IV (1000ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_SHORT">
-                <English>Blood IV, for restoring a patients blood (keep cold)</English>
-                <Russian>Пакет крови для возмещения объема потерянной крови (хранить в холодильнике)</Russian>
-                <Spanish>Sangre Intravenosa, para restarurar el volumen sanguíneo (mantener frío)</Spanish>
-                <French>Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré)</French>
-                <Polish>Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_USE">
-                <English>O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care.</English>
-                <Russian>Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для  возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи.</Russian>
-                <French>Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. </French>
-                <Polish>Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala.</Polish>
-                <Spanish>Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdido. Uso habitual durante el transporte de heridos.</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BLOOD_IV_500">
-                <English>Blood IV (500ml)</English>
-                <Russian>Кровь для переливания (500 мл)</Russian>
-                <Spanish>Sangre Intravenosa (500ml)</Spanish>
-                <French>Cullot Sanguin IV (500ml)</French>
-                <Polish>Krew IV (500ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BLOOD_IV_250">
-                <English>Blood IV (250ml)</English>
-                <Russian>Кровь для переливания (250 мл)</Russian>
-                <Spanish>Sangre Intravenosa (250ml)</Spanish>
-                <French>Cullot Sanguin IV (250ml)</French>
-                <Polish>Krew IV (250ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SALINE_IV">
-                <English>Saline IV (1000ml)</English>
-                <Russian>Физраствор для в/в вливания (1000 мл)</Russian>
-                <Spanish>Solución Salina Intravenosa (1000ml)</Spanish>
-                <French>solution Saline 0.9% IV (1000ml)</French>
-                <Polish>Solanka 0,9% IV (1000ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_SHORT">
-                <English>Saline IV, for restoring a patients blood</English>
-                <Russian>Пакет физраствора для возмещения объема потерянной крови</Russian>
-                <Spanish>Solución Salina Intravenosa, para restaurar el volumen sanguíneo</Spanish>
-                <French>Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel</French>
-                <Polish>Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_USE">
-                <English>A medical volume-replenishing agent introduced into the blood system through an IV infusion.</English>
-                <Russian>Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания.</Russian>
-                <Spanish>Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa.</Spanish>
-                <French> Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse</French>
-                <Polish>Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV).</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SALINE_IV_500">
-                <English>Saline IV (500ml)</English>
-                <Russian>Физраствор для в/в вливания (500 мл)</Russian>
-                <Spanish>Solución Salina Intravenosa (500ml)</Spanish>
-                <French>Solution Saline 0.9% IV (500ml)</French>
-                <Polish>Solanka 0,9% IV (500ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SALINE_IV_250">
-                <English>Saline IV (250ml)</English>
-                <Russian>Физраствор для в/в вливания (250 мл)</Russian>
-                <Spanish>Solución Salina Intravenosa (250ml)</Spanish>
-                <French>Solution Saline 0.9% IV (250ml)</French>
-                <Polish>Solanka 0,9% IV (250ml)</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DISPLAY">
-                <English>Basic Field Dressing (QuikClot)</English>
-                <Russian>Первичный перевязочный пакет (QuikClot)</Russian>
-                <Spanish>Vendaje Básico (Coagulante)</Spanish>
-                <French>Bandage Regulier (Coagulant)</French>
-                <Polish>Opatrunek QuikClot</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT">
-                <English>QuikClot bandage</English>
-                <Russian>Гемостатический пакет QuikClot</Russian>
-                <Spanish>Venda Coagulante</Spanish>
-                <French>Bandage coagulant</French>
-                <Polish>Podstawowy opatrunek stosowany na rany</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_USE">
-                <English></English>
-                <Russian></Russian>
-                <French>Un bandage servant a coaguler les seignements mineur à moyen.</French>
-                <Polish>Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności.</Polish>
-                <Spanish>Vendaje Hemostático con coagulante que detiene el sangrado.</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_AID_KIT_DISPLAY">
-                <English>Personal Aid Kit</English>
-                <Russian>Аптечка</Russian>
-                <Spanish>Kit de Soporte Vital Avanzado</Spanish>
-                <French>Équipement de support Vitale</French>
-                <Polish>Apteczka osobista</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_SHORT">
-                <English>Includes various treatment kit needed for stitching or advanced treatment</English>
-                <Russian>Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи.</Russian>
-                <Spanish>Incluye material médico para tratamientos avanzados</Spanish>
-                <French>Inclue du matériel medical pour les traitement avancé, tel les point de suture.</French>
-                <Polish>Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego</Polish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_USE">
-                <English></English>
-                <Russian></Russian>
-                <French></French>
-                <Spanish></Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DISPLAY">
-                <English>Surgical Kit</English>
-                <Russian>Хирургический набор</Russian>
-                <Spanish>Kit Quirúrgico</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_SHORT">
-                <English>Surgical Kit for in field advanced medical treatment</English>
-                <Russian>Набор для хирургической помощи в полевых условиях</Russian>
-                <Spanish>Kit Quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_USE">
-                <English>Surgical Kit for in field advanced medical treatment</English>
-                <Russian>Набор для хирургической помощи в полевых условиях</Russian>
-                <Spanish>Kit Quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BODYBAG_DISPLAY">
-                <English>Bodybag</English>
-                <Russian>Мешок для трупов</Russian>
-                <Spanish>Bolsa para cadáveres</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_SHORT">
-                <English>A bodybag for dead bodies</English>
-                <Russian>Мешок для упаковки трупов</Russian>
-                <Spanish>Bolsa para cadáveres</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_USE">
-                <English>A bodybag for dead bodies</English>
-                <Russian>Мешок для упаковки трупов</Russian>
-                <Spanish>Bolsa para cadáveres</Spanish>
-            </Key>
-        </Container>
-        <Container name="Actions">
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE">
-                <English>Blood Pressure</English>
-                <Russian>Артериальное давление</Russian>
-                <Spanish>Presión Arterial</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT">
-                <English>Checking Blood Pressure..</English>
-                <Russian>Проверка артериального давления...</Russian>
-                <Spanish>Comprobando Presión Arterial...</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CHECKED_MEDIC">
-                <English>You checked %1</English>
-                <Russian>Вы осмотрели раненого %1</Russian>
-                <Spanish>Examinando a %1</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_1">
-                <English>You find a blood pressure of %2/%3</English>
-                <Russian>Артериальное давление %2/%3</Russian>
-                <Spanish>La Presión Arterial es %2/%3</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2">
-                <English>You find a low blood pressure</English>
-                <Russian>Давление низкое</Russian>
-                <Spanish>La Presión Arterial es baja</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3">
-                <English>You find a normal blood pressure</English>
-                <Russian>Давление нормальное</Russian>
-                <Spanish>La Presión Arterial es normal</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4">
-                <English>You find a high blood pressure</English>
-                <Russian>Давление высокое</Russian>
-                <Spanish>La Presión Arterial es alta</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5">
-                <English>You find no blood pressure</English>
-                <Russian>Давления нет</Russian>
-                <Spanish>No hay Presión Arterial</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6">
-                <English>You fail to find a blood pressure</English>
-                <Russian>Артериальное давление не определяется</Russian>
-                <Spanish>No puedes encontrar Presión Arterial</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE">
-                <English>Pulse</English>
-                <Russian>Пульс</Russian>
-                <Spanish>Pulso</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CONTENT">
-                <English>Checking Heart Rate..</English>
-                <Russian>Проверка пульса...</Russian>
-                <Spanish>Comprobando Pulso...</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CHECKED_MEDIC">
-                <English>You checked %1</English>
-                <Russian>Вы осмотрели раненого %1</Russian>
-                <Spanish>Examinando a %1</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_1">
-                <English>You find a Heart Rate of %2</English>
-                <Russian>Пульс %2 уд./мин.</Russian>
-                <Spanish>El Pulso es %2</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2">
-                <English>You find a weak Heart Rate</English>
-                <Russian>Пульс слабый</Russian>
-                <Spanish>El Pulso es débil</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3">
-                <English>You find a strong Heart Rate</English>
-                <Russian>Пульс учащенный</Russian>
-                <Spanish>El Pulso está acelerado</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4">
-                <English>You find a normal Heart Rate</English>
-                <Russian>Пульс в норме</Russian>
-                <Spanish>El Pulso es bueno</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_5">
-                <English>You find no Heart Rate</English>
-                <Russian>Пульс не прощупывается</Russian>
-                <Spanish>No tiene Pulso</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE">
-                <English>Response</English>
-                <Russian>Реакция</Russian>
-                <Spanish>Reacciona</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE_CONTENT">
-                <English>You check response of patient</English>
-                <Russian>Вы проверяете реакцию раненого</Russian>
-                <Spanish>Compruebas si el paciente reacciona</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_RESPONSIVE">
-                <English>%1 is responsive</English>
-                <Russian>%1 реагирует на раздражители</Russian>
-                <Spanish>%1 ha reaccionado</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_UNRESPONSIVE">
-                <English>%1 is not responsive</English>
-                <Russian>%1 не реагирует</Russian>
-                <Spanish>%1 no reacciona</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_YOU_CHECKED">
-                <English>You checked %1</English>
-                <Russian>Вы осмотрели раненого %1</Russian>
-                <Spanish>Examinas a %1</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_BANDAGED">
-                <English>Bandaged</English>
-                <Russian>Повязка наложена</Russian>
-                <Spanish>Vendado</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_APPLY_BANDAGE">
-                <English>You bandage %1 (%2)</English>
-                <Russian>Вы перевязали раненого %1 (%2)</Russian>
-                <Spanish>Aplicas vendaje a %1 en %2</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_IS_BANDAGING_YOU">
-                <English>%1 is bandaging you</English>
-                <Russian>%1 перевязывает вас</Russian>
-                <Spanish>%1 te está vendando</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_START_STITCHING_INJURIES">
-                <English>You start stitching injures from %1 (%2)</English>
-                <Russian>Вы зашиваете ранения от %1 (%2)</Russian>
-                <Spanish>Estás suturando heridas de %1 en %2</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_STITCHING">
-                <English>Stitching</English>
-                <Russian>Наложение швов</Russian>
-                <Spanish>Suturando</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_YOU_TREAT_AIRWAY">
-                <English>You treat the airway of %1</English>
-                <Russian>Вы интубируете раненого %1</Russian>
-                <Spanish>Estás intubando a %1</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_AIRWAY">
-                <English>Airway</English>
-                <Russian>Дыхательные пути</Russian>
-                <Spanish>Vías Aéreas</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_IS_TREATING_YOUR_AIRWAY">
-                <English>%1 is treating your airway</English>
-                <Russian>%1 проводит вам интубацию</Russian>
-                <Spanish>%1 te está intubando</Spanish>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_DRAG">
-              <English>Drag</English>
-              <German>Ziehen</German>
-              <Spanish>Arrastrar</Spanish>
-              <Polish>Ciągnij</Polish>
-              <Czech>Táhnout</Czech>
-              <Russian>Тащить</Russian>
-              <French>Tracter</French>
-              <Hungarian>Húzás</Hungarian>
-              <Portuguese>Arrastar</Portuguese>
-              <Italian>Trascina</Italian>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_CARRY">
-              <English>Carry</English>
-              <German>Tragen</German>
-              <Spanish>Cargar</Spanish>
-              <Polish>Nieś</Polish>
-              <Czech>Nést</Czech>
-              <Russian>Нести</Russian>
-              <French>Porter</French>
-              <Hungarian>Cipelés</Hungarian>
-              <Portuguese>Carregar</Portuguese>
-              <Italian>Trasporta</Italian>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_RELEASE">
-              <English>Release</English>
-              <German>Loslassen</German>
-              <Spanish>Soltar</Spanish>
-              <Polish>Połóż</Polish>
-              <Czech>Položit</Czech>
-              <Russian>Отпустить</Russian>
-              <French>Déposer</French>
-              <Hungarian>Elenged</Hungarian>
-              <Portuguese>Largar</Portuguese>
-              <Italian>Lascia</Italian>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_LOAD">
-              <English>Load Patient Into</English>
-              <German>Patient Einladen</German>
-              <Spanish>Cargar el paciente en</Spanish>
-              <Polish>Załaduj pacjenta</Polish>
-              <Czech>Naložit pacianta do</Czech>
-              <Russian>Погрузить пациента в</Russian>
-              <French>Embarquer le Patient</French>
-              <Hungarian>Sebesült berakása</Hungarian>
-              <Portuguese>Carregar Paciente Em</Portuguese>
-              <Italian>Carica paziente nel</Italian>
-            </Key>
-            <Key ID="STR_ACE_MEDICAL_UNLOAD">
-              <English>Unload Patient</English>
-              <German>Patient Ausladen</German>
-              <Spanish>Descargar el paciente</Spanish>
-              <Polish>Wyładuj pacjenta</Polish>
-              <Czech>Vyložit pacienta</Czech>
-              <Russian>Выгрузить пациента</Russian>
-              <French>Débarquer le Patient</French>
-              <Hungarian>Sebesült kihúzása</Hungarian>
-              <Portuguese>Descarregar Paciente</Portuguese>
-              <Italian>Scarica il paziente</Italian>
-            </Key>              
-            <Key ID="STR_ACE_Medical_UnloadPatient">
-                <English>Unload patient &gt;&gt;</English>
-            </Key>
-        </Container>
-    </Package>
-</Project>
+  <Package name="Medical">
+    <Container name="Basic">
+      <Key ID="STR_ACE_Medical_Inject_Atropine">
+        <English>Inject Atropine</English>
+      </Key>
+      <Key ID="STR_ACE_Medical_Inject_Epinephrine">
+        <English>Inject Epinephrine</English>
+        <German>Epinephrine injizieren</German>
+        <Spanish>Inyectar Epinefrina</Spanish>
+        <Polish>Wtrzyknij adrenalinę</Polish>
+        <Czech>Aplikovat Adrenalin</Czech>
+        <Russian>Ввести андреналил</Russian>
+        <French>Adrénaline</French>
+        <Hungarian>Adrenalin</Hungarian>
+        <Portuguese>Injetar Epinefrina</Portuguese>
+        <Italian>Inietta Epinefrina</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Inject_Morphine">
+        <English>Inject Morphine</English>
+        <German>Morphin injizieren</German>
+        <Spanish>Inyectar Morfina</Spanish>
+        <Polish>Wstrzyknij morfinę</Polish>
+        <Czech>Aplikovat Morfin</Czech>
+        <Russian>Ввести морфин</Russian>
+        <French>Morphine</French>
+        <Hungarian>Morfium</Hungarian>
+        <Portuguese>Injetar Morfina</Portuguese>
+        <Italian>Inietta Morfina</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Transfuse_Blood">
+        <English>Transfuse Blood</English>
+        <German>Bluttransfusion</German>
+        <Spanish>Transfundir sangre</Spanish>
+        <Polish>Przetocz krew</Polish>
+        <Czech>Transfúze krve</Czech>
+        <Russian>Перелить кровь</Russian>
+        <French>Transfusion</French>
+        <Hungarian>Infúzió</Hungarian>
+        <Portuguese>Transfundir Sangue</Portuguese>
+        <Italian>Effettua Trasfusione</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage">
+        <English>Bandage</English>
+        <German>Verbinden</German>
+        <Spanish>Venda</Spanish>
+        <Polish>Bandaż</Polish>
+        <Czech>Obvázat</Czech>
+        <French>Pansement</French>
+        <Italian>Benda</Italian>
+        <Hungarian>Kötözés</Hungarian>
+        <Portuguese>Atadura</Portuguese>
+        <Russian>Перевязать</Russian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitHead">
+        <English>Bandage Head</English>
+        <German>Kopf verbinden</German>
+        <Spanish>Vendar la cabeza</Spanish>
+        <Polish>Bandażuj głowę</Polish>
+        <Czech>Obvázat hlavu</Czech>
+        <Russian>Перевязать голову</Russian>
+        <French>Pansement Tête</French>
+        <Hungarian>Fej kötözése</Hungarian>
+        <Portuguese>Atar Cabeça</Portuguese>
+        <Italian>Benda la testa</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitBody">
+        <English>Bandage Torso</English>
+        <German>Torso verbinden</German>
+        <Spanish>Vendar el torso</Spanish>
+        <Polish>Bandażuj tors</Polish>
+        <Czech>Obvázat hruď</Czech>
+        <Russian>Перевязать торс</Russian>
+        <French>Pansement Torse</French>
+        <Hungarian>Felsőtest kötözése</Hungarian>
+        <Portuguese>Atar Tronco</Portuguese>
+        <Italian>Benda il torso</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitLeftArm">
+        <English>Bandage Left Arm</English>
+        <German>Arm links verbinden</German>
+        <Spanish>Vendar el brazo izquierdo</Spanish>
+        <Polish>Bandażuj lewe ramię</Polish>
+        <Czech>Obvázat levou ruku</Czech>
+        <Russian>Перевязать левую руку</Russian>
+        <French>Pansement Bras Gauche</French>
+        <Hungarian>Bal kar kötözése</Hungarian>
+        <Portuguese>Atar Braço Esquerdo</Portuguese>
+        <Italian>Benda il braccio sinistro</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitRightArm">
+        <English>Bandage Right Arm</English>
+        <German>Arm rechts verbinden</German>
+        <Spanish>Vendar el brazo derecho</Spanish>
+        <Polish>Bandażuj prawe ramię</Polish>
+        <Czech>Obvázat pravou ruku</Czech>
+        <Russian>Перевязать правую руку</Russian>
+        <French>Pansement Bras Droit</French>
+        <Hungarian>Jobb kar kötözése</Hungarian>
+        <Portuguese>Atar Braço Direito</Portuguese>
+        <Italian>Benda il braccio destro</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitLeftLeg">
+        <English>Bandage Left Leg</English>
+        <German>Bein links verbinden</German>
+        <Spanish>Vendar la pierna izquierda</Spanish>
+        <Polish>Bandażuj lewą nogę</Polish>
+        <Czech>Obvázat levou nohu</Czech>
+        <Russian>Перевязать левую ногу</Russian>
+        <French>Pansement Jambe Gauche</French>
+        <Hungarian>Bal láb kötözése</Hungarian>
+        <Portuguese>Atar Perna Esquerda</Portuguese>
+        <Italian>Benda la gamba sinistra</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandage_HitRightLeg">
+        <English>Bandage Right Leg</English>
+        <German>Bein rechts verbinden</German>
+        <Spanish>Vendar la pierna derecha</Spanish>
+        <Polish>Bandażuj prawą nogę</Polish>
+        <Czech>Obvázat pravou nohu</Czech>
+        <Russian>Перевязать правую ногу</Russian>
+        <French>Pansement Jambe Droite</French>
+        <Hungarian>Jobb láb kötözése</Hungarian>
+        <Portuguese>Atar Perna Direita</Portuguese>
+        <Italian>Benda la gamba destra</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Injecting_Morphine">
+        <English>Injecting Morphine ...</English>
+        <German>Morphin injizieren ...</German>
+        <Spanish>Inyectando Morfina ...</Spanish>
+        <Polish>Wstrzykiwanie morfiny ...</Polish>
+        <Czech>Aplikuju Morfin ...</Czech>
+        <Russian>Введение морфина...</Russian>
+        <French>Injection de Morphine...</French>
+        <Hungarian>Morfium beadása...</Hungarian>
+        <Portuguese>Injetando Morfina ...</Portuguese>
+        <Italian>Inietto la morfina ...</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Injecting_Epinephrine">
+        <English>Injecting Epinephrine ...</English>
+        <German>Epinephrine injizieren ...</German>
+        <Spanish>Inyectando Epinefrina ...</Spanish>
+        <Polish>Wstrzykiwanie adrenaliny ...</Polish>
+        <Czech>Aplikuju Adrenalin ...</Czech>
+        <Russian>Введение андреналина</Russian>
+        <French>Injection d'Adrénaline ...</French>
+        <Hungarian>Adrenalin beadása...</Hungarian>
+        <Portuguese>Injetando Epinefrina ...</Portuguese>
+        <Italian>Inietto l'epinefrina ...</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Transfusing_Blood">
+        <English>Transfusing Blood ...</English>
+        <German>Bluttransfusion ...</German>
+        <Spanish>Realizando transfusión ...</Spanish>
+        <Polish>Przetaczanie krwi ...</Polish>
+        <Czech>Probíhá transfúze krve ...</Czech>
+        <Russian>Переливание крови...</Russian>
+        <French>Transfusion Sanguine ...</French>
+        <Hungarian>Infúzió...</Hungarian>
+        <Portuguese>Transfundindo Sangue ...</Portuguese>
+        <Italian>Effettuo la trasfusione ...</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_Bandaging">
+        <English>Bandaging ...</English>
+        <German>Verbinden ...</German>
+        <Spanish>Vendando ...</Spanish>
+        <Polish>Bandażowanie ...</Polish>
+        <Czech>Obvazuji ...</Czech>
+        <French>Pansement ...</French>
+        <Italian>Sto applicando la benda ...</Italian>
+        <Hungarian>Bekötözés...</Hungarian>
+        <Portuguese>Atando ...</Portuguese>
+        <Russian>Перевязывание....</Russian>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Medical">
+        <English>Medical</English>
+        <Czech>Zdravotní</Czech>
+        <French>Médical</French>
+        <German>Sanitäter</German>
+        <Italian>Medico</Italian>
+        <Polish>Medyczne</Polish>
+        <Portuguese>Médico</Portuguese>
+        <Russian>Медик</Russian>
+        <Spanish>Médico</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_FieldDressing">
+        <English>Field Dressing</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_PackingBandage">
+        <English>Packing Bandage</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_ElasticBandage">
+        <English>Elastic Bandage</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_QuikClot">
+        <English>QuikClot</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_CheckPulse">
+        <English>Check Pulse</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure">
+        <English>Check Blood Pressure</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_TriageCard">
+        <English>Triage Card</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Tourniquet">
+        <English>Tourniquet</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet">
+        <English>Remove Tourniquet</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_1000">
+        <English>Give Blood IV (1000ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_500">
+        <English>Give Blood IV (500ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_250">
+        <English>Give Blood IV (250ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_1000">
+        <English>Give Plasma IV (1000ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_500">
+        <English>Give Plasma IV (500ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_250">
+        <English>Give Plasma IV (250ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_1000">
+        <English>Give Saline IV (1000ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_500">
+        <English>Give Saline IV (500ml)</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_250">
+        <English>Give Saline IV (250ml)</English>
+      </Key>
+    </Container>
+    <Container name="UI">
+      <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR">
+        <English>Minor</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DELAYED">
+        <English>Delayed</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_IMMEDIATE">
+        <English>Immediate</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DECEASED">
+        <English>Deceased</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_NONE">
+        <English>None</English>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_NORMAL_BREATHING">
+        <English>Normal breathing</English>
+        <Russian>Дыхание в норме</Russian>
+        <Spanish>Respiración normal</Spanish>
+        <French>Respiration Normale</French>
+        <Polish>Normalny oddech</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_NO_BREATHING">
+        <English>No breathing</English>
+        <Russian>Дыхания нет</Russian>
+        <Spanish>No respira</Spanish>
+        <French>Apnée</French>
+        <Polish>Brak oddechu</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_DIFFICULT_BREATHING">
+        <English>Difficult breathing</English>
+        <Russian>Дыхание затруднено</Russian>
+        <Spanish>Dificultad para respirar</Spanish>
+        <French>Difficultée Respiratoire</French>
+        <Polish>Trudności z oddychaniem</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ALMOST_NO_BREATHING">
+        <English>Almost no breathing</English>
+        <Russian>Дыхания почти нет</Russian>
+        <Spanish>Casi sin respirar</Spanish>
+        <French>Respiration Faible</French>
+        <Polish>Prawie brak oddechu</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_STATUS_BLEEDING">
+        <English>Bleeding</English>
+        <Russian>Кровотечение</Russian>
+        <Spanish>Sangrando</Spanish>
+        <French>Seignement</French>
+        <Polish>Krwawienie zewnętrzne</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_STATUS_PAIN">
+        <English>In Pain</English>
+        <Russian>Испытывает боль</Russian>
+        <Spanish>Con Dolor</Spanish>
+        <French>A De La Douleur</French>
+        <Polish>W bólu</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_STATUS_LOST_BLOOD">
+        <English>Lost a lot of Blood</English>
+        <Russian>Большая кровопотеря</Russian>
+        <Spanish>Mucha Sangre perdida</Spanish>
+        <French>A Perdu Bcp de Sang</French>
+        <Polish>Stracił dużo krwi</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_STATUS_TOURNIQUET_APPLIED">
+        <English>Tourniquet [CAT]</English>
+        <Russian>Жгут</Russian>
+        <Spanish>Torniquete [CAT]</Spanish>
+        <French>Garot [CAT]</French>
+        <Polish>Opaska uciskowa [CAT]</Polish>
+      </Key>
+    </Container>
+    <Container name="CfgWeapons">
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY">
+        <English>Bandage (Basic)</English>
+        <Russian>Повязка (обычная)</Russian>
+        <Spanish>Vendaje (Básico)</Spanish>
+        <French>Bandage (Standard)</French>
+        <Polish>Bandaż (jałowy)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT">
+        <English>Used to cover a wound</English>
+        <Russian>Для перевязки ран</Russian>
+        <Spanish>Utilizado para cubrir una herida</Spanish>
+        <French>Utilisé Pour Couvrir Une Blessure</French>
+        <Polish>Używany w celu przykrycia i ochrony miejsca zranienia</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_USE">
+        <English>A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed.</English>
+        <Russian>Повязка, накладываемая поверх раны после остановки кровотечения.</Russian>
+        <Spanish>Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar.</Spanish>
+        <French>C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper.</French>
+        <Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY">
+        <English>Packing Bandage</English>
+        <Russian>Тампонирующая повязка</Russian>
+        <Spanish>Vendaje Compresivo</Spanish>
+        <French>Bandage Mèche</French>
+        <Polish>Bandaż (uciskowy)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_SHORT">
+        <English>Used to pack medium to large wounds and stem the bleeding</English>
+        <Russian>Для тампонирования ран среднего и большого размера и остановки кровотечения.</Russian>
+        <Spanish>Se utiliza para vendar heridas medianas y grandes y detener el sangrado</Spanish>
+        <French>Utiliser pour remplire la cavité créé dans une blessure moyenne et grande.</French>
+        <Polish>Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_USE">
+        <English>A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries.</English>
+        <Russian>Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны.</Russian>
+        <Spanish>Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos.</Spanish>
+        <French>Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma.</French>
+        <Polish>Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY">
+        <English>Bandage (Elastic)</English>
+        <Russian>Повязка (давящая)</Russian>
+        <Spanish>Vendaje (Elástico)</Spanish>
+        <French>Bandage (Élastique)</French>
+        <Polish>Bandaż (elastyczny)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_SHORT">
+        <English>Bandage kit, Elastic</English>
+        <Russian>Давящая повязка</Russian>
+        <Spanish>Vendaje (Elástico)</Spanish>
+        <French>Bandage Compressif Élastique</French>
+        <Polish>Zestaw bandaży elastycznych.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_USE">
+        <English></English>
+        <Russian></Russian>
+        <French>Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment.</French>
+        <Polish>Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów.</Polish>
+        <Spanish>Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DISPLAY">
+        <English>Tourniquet (CAT)</English>
+        <Russian>Жгут</Russian>
+        <Spanish>Torniquete (CAT)</Spanish>
+        <French>Garot (CAT)</French>
+        <Polish>Staza (typ. CAT)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_SHORT">
+        <English>Slows down blood loss when bleeding</English>
+        <Russian>Уменьшает кровопотерю при кровотечении.</Russian>
+        <Spanish>Reduce la velocidad de pérdida de sangre</Spanish>
+        <French>Ralentit le seignement</French>
+        <Polish>Zmniejsza ubytek krwi z kończyn w przypadku krwawienia.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_USE">
+        <English>A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood.</English>
+        <Russian>Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери.</Russian>
+        <Spanish>Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre</Spanish>
+        <French>Un appareil servent a compresser les artères et veines afin de reduire la perte de sang.</French>
+        <Polish>Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_MORPHINE_DISPLAY">
+        <English>Morphine auto-injector</English>
+        <Russian>Морфин в автоматическом шприце</Russian>
+        <Spanish>Morfina auto-inyectable</Spanish>
+        <French>Auto-injecteur de Morphine</French>
+        <Polish>Autostrzykawka z morfiną</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_SHORT">
+        <English>Used to combat moderate to severe pain experiences</English>
+        <Russian>Для снятия средних и сильных болевых ощущений.</Russian>
+        <Spanish>Usado para combatir los estados dolorosos moderados a severos</Spanish>
+        <French>Utiliser pour contrer les douleurs modéré à severes.</French>
+        <Polish>Morfina. Ma silne działanie przeciwbólowe.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_USE">
+        <English>An analgesic used to combat moderate to severe pain experiences.</English>
+        <Russian>Анальгетик для снятия средних и сильных болевых ощущений.</Russian>
+        <Spanish>Analgésico usado para combatir los estados dolorosos de moderado a severo.</Spanish>
+        <French>Un Analgésique puissant servant a contrer les douleur modéré a severe.</French>
+        <Polish>Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ATROPINE_DISPLAY">
+        <English>Atropin auto-injector</English>
+        <Russian>Атропин в автоматическом шприце</Russian>
+        <Spanish>Atropina auto-inyectable</Spanish>
+        <French>Auto-injecteur d'Atropine</French>
+        <Polish>Autostrzykawka AtroPen</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_SHORT">
+        <English>Used in NBC scenarios</English>
+        <Russian>Применяется для защиты от ОМП</Russian>
+        <Spanish>Usado en escenarios NBQ</Spanish>
+        <French>Utiliser en cas d'attaque CBRN</French>
+        <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_ATROPINE_DESC_USE">
+        <English>A drug used by the Military in NBC scenarios.</English>
+        <Russian>Препарат, используемый в войсках для защиты от оружия массового поражения.</Russian>
+        <Spanish>Medicamento usado por Militares en escenarios NBQ</Spanish>
+        <French>Médicament utilisé par l'armée en cas d'attaque CBRN</French>
+        <Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY">
+        <English>Epinephrine auto-injector</English>
+        <Russian>Адреналин в автоматическом шприце</Russian>
+        <Spanish>Epinefrina auto-inyectable</Spanish>
+        <French>Auto-injecteur d'épinéphrine</French>
+        <Polish>Autostrzykawka EpiPen</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_SHORT">
+        <English>Increase heart rate and counter effects given by allergic reactions</English>
+        <Russian>Стимулирует работу сердца и купирует аллергические реакции.</Russian>
+        <Spanish>Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas</Spanish>
+        <French>Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique</French>
+        <Polish>Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DESC_USE">
+        <English>A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes.</English>
+        <Russian>Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода.</Russian>
+        <Spanish>Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos.</Spanish>
+        <French>Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme.</French>
+        <Polish>EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PLASMA_IV">
+        <English>Plasma IV (1000ml)</English>
+        <Russian>Плазма для в/в вливания (1000 мл)</Russian>
+        <Spanish>Plasma Intravenoso (1000ml)</Spanish>
+        <French>Plasma Sanguin IV (1000ml)</French>
+        <Polish>Osocze IV (1000ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_SHORT">
+        <English>A volume-expanding blood supplement.</English>
+        <Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
+        <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
+        <French>Supplement visant a remplacer les volume sanguin</French>
+        <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_USE">
+        <English>A volume-expanding blood supplement.</English>
+        <Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
+        <Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
+        <French>Supplement visant a remplacer le volume sanguin et remplace les plaquettes.</French>
+        <Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PLASMA_IV_500">
+        <English>Plasma IV (500ml)</English>
+        <Russian>Плазма для в/в вливания (500 мл)</Russian>
+        <Spanish>Plasma Intravenoso (500ml)</Spanish>
+        <French>Plasma Sanguin IV (500ml)</French>
+        <Polish>Osocze IV (500ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_PLASMA_IV_250">
+        <English>Plasma IV (250ml)</English>
+        <Russian>Плазма для в/в вливания (250 мл)</Russian>
+        <Spanish>Plasma Intravenoso (250ml)</Spanish>
+        <French>Plasma Sanguin (250ml)</French>
+        <Polish>Osocze IV (250ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BLOOD_IV">
+        <English>Blood IV (1000ml)</English>
+        <Russian>Кровь для переливания (1000 мл)</Russian>
+        <Spanish>Sangre Intravenosa (1000ml)</Spanish>
+        <French>Cullot Sanguin IV (1000ml)</French>
+        <Polish>Krew IV (1000ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_SHORT">
+        <English>Blood IV, for restoring a patients blood (keep cold)</English>
+        <Russian>Пакет крови для возмещения объема потерянной крови (хранить в холодильнике)</Russian>
+        <Spanish>Sangre Intravenosa, para restarurar el volumen sanguíneo (mantener frío)</Spanish>
+        <French>Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré)</French>
+        <Polish>Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_USE">
+        <English>O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care.</English>
+        <Russian>Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для  возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи.</Russian>
+        <French>Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. </French>
+        <Polish>Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala.</Polish>
+        <Spanish>Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdido. Uso habitual durante el transporte de heridos.</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BLOOD_IV_500">
+        <English>Blood IV (500ml)</English>
+        <Russian>Кровь для переливания (500 мл)</Russian>
+        <Spanish>Sangre Intravenosa (500ml)</Spanish>
+        <French>Cullot Sanguin IV (500ml)</French>
+        <Polish>Krew IV (500ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BLOOD_IV_250">
+        <English>Blood IV (250ml)</English>
+        <Russian>Кровь для переливания (250 мл)</Russian>
+        <Spanish>Sangre Intravenosa (250ml)</Spanish>
+        <French>Cullot Sanguin IV (250ml)</French>
+        <Polish>Krew IV (250ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SALINE_IV">
+        <English>Saline IV (1000ml)</English>
+        <Russian>Физраствор для в/в вливания (1000 мл)</Russian>
+        <Spanish>Solución Salina Intravenosa (1000ml)</Spanish>
+        <French>solution Saline 0.9% IV (1000ml)</French>
+        <Polish>Solanka 0,9% IV (1000ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_SHORT">
+        <English>Saline IV, for restoring a patients blood</English>
+        <Russian>Пакет физраствора для возмещения объема потерянной крови</Russian>
+        <Spanish>Solución Salina Intravenosa, para restaurar el volumen sanguíneo</Spanish>
+        <French>Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel</French>
+        <Polish>Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_USE">
+        <English>A medical volume-replenishing agent introduced into the blood system through an IV infusion.</English>
+        <Russian>Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания.</Russian>
+        <Spanish>Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa.</Spanish>
+        <French> Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse</French>
+        <Polish>Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV).</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SALINE_IV_500">
+        <English>Saline IV (500ml)</English>
+        <Russian>Физраствор для в/в вливания (500 мл)</Russian>
+        <Spanish>Solución Salina Intravenosa (500ml)</Spanish>
+        <French>Solution Saline 0.9% IV (500ml)</French>
+        <Polish>Solanka 0,9% IV (500ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SALINE_IV_250">
+        <English>Saline IV (250ml)</English>
+        <Russian>Физраствор для в/в вливания (250 мл)</Russian>
+        <Spanish>Solución Salina Intravenosa (250ml)</Spanish>
+        <French>Solution Saline 0.9% IV (250ml)</French>
+        <Polish>Solanka 0,9% IV (250ml)</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DISPLAY">
+        <English>Basic Field Dressing (QuikClot)</English>
+        <Russian>Первичный перевязочный пакет (QuikClot)</Russian>
+        <Spanish>Vendaje Básico (Coagulante)</Spanish>
+        <French>Bandage Regulier (Coagulant)</French>
+        <Polish>Opatrunek QuikClot</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT">
+        <English>QuikClot bandage</English>
+        <Russian>Гемостатический пакет QuikClot</Russian>
+        <Spanish>Venda Coagulante</Spanish>
+        <French>Bandage coagulant</French>
+        <Polish>Podstawowy opatrunek stosowany na rany</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_USE">
+        <English></English>
+        <Russian></Russian>
+        <French>Un bandage servant a coaguler les seignements mineur à moyen.</French>
+        <Polish>Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności.</Polish>
+        <Spanish>Vendaje Hemostático con coagulante que detiene el sangrado.</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_AID_KIT_DISPLAY">
+        <English>Personal Aid Kit</English>
+        <Russian>Аптечка</Russian>
+        <Spanish>Kit de Soporte Vital Avanzado</Spanish>
+        <French>Équipement de support Vitale</French>
+        <Polish>Apteczka osobista</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_SHORT">
+        <English>Includes various treatment kit needed for stitching or advanced treatment</English>
+        <Russian>Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи.</Russian>
+        <Spanish>Incluye material médico para tratamientos avanzados</Spanish>
+        <French>Inclue du matériel medical pour les traitement avancé, tel les point de suture.</French>
+        <Polish>Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego</Polish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_USE">
+        <English></English>
+        <Russian></Russian>
+        <French></French>
+        <Spanish></Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DISPLAY">
+        <English>Surgical Kit</English>
+        <Russian>Хирургический набор</Russian>
+        <Spanish>Kit Quirúrgico</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_SHORT">
+        <English>Surgical Kit for in field advanced medical treatment</English>
+        <Russian>Набор для хирургической помощи в полевых условиях</Russian>
+        <Spanish>Kit Quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_USE">
+        <English>Surgical Kit for in field advanced medical treatment</English>
+        <Russian>Набор для хирургической помощи в полевых условиях</Russian>
+        <Spanish>Kit Quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BODYBAG_DISPLAY">
+        <English>Bodybag</English>
+        <Russian>Мешок для трупов</Russian>
+        <Spanish>Bolsa para cadáveres</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_SHORT">
+        <English>A bodybag for dead bodies</English>
+        <Russian>Мешок для упаковки трупов</Russian>
+        <Spanish>Bolsa para cadáveres</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_USE">
+        <English>A bodybag for dead bodies</English>
+        <Russian>Мешок для упаковки трупов</Russian>
+        <Spanish>Bolsa para cadáveres</Spanish>
+      </Key>
+    </Container>
+    <Container name="Actions">
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE">
+        <English>Blood Pressure</English>
+        <Russian>Артериальное давление</Russian>
+        <Spanish>Presión Arterial</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT">
+        <English>Checking Blood Pressure..</English>
+        <Russian>Проверка артериального давления...</Russian>
+        <Spanish>Comprobando Presión Arterial...</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CHECKED_MEDIC">
+        <English>You checked %1</English>
+        <Russian>Вы осмотрели раненого %1</Russian>
+        <Spanish>Examinando a %1</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_1">
+        <English>You find a blood pressure of %2/%3</English>
+        <Russian>Артериальное давление %2/%3</Russian>
+        <Spanish>La Presión Arterial es %2/%3</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2">
+        <English>You find a low blood pressure</English>
+        <Russian>Давление низкое</Russian>
+        <Spanish>La Presión Arterial es baja</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3">
+        <English>You find a normal blood pressure</English>
+        <Russian>Давление нормальное</Russian>
+        <Spanish>La Presión Arterial es normal</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4">
+        <English>You find a high blood pressure</English>
+        <Russian>Давление высокое</Russian>
+        <Spanish>La Presión Arterial es alta</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5">
+        <English>You find no blood pressure</English>
+        <Russian>Давления нет</Russian>
+        <Spanish>No hay Presión Arterial</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6">
+        <English>You fail to find a blood pressure</English>
+        <Russian>Артериальное давление не определяется</Russian>
+        <Spanish>No puedes encontrar Presión Arterial</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE">
+        <English>Pulse</English>
+        <Russian>Пульс</Russian>
+        <Spanish>Pulso</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CONTENT">
+        <English>Checking Heart Rate..</English>
+        <Russian>Проверка пульса...</Russian>
+        <Spanish>Comprobando Pulso...</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CHECKED_MEDIC">
+        <English>You checked %1</English>
+        <Russian>Вы осмотрели раненого %1</Russian>
+        <Spanish>Examinando a %1</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_1">
+        <English>You find a Heart Rate of %2</English>
+        <Russian>Пульс %2 уд./мин.</Russian>
+        <Spanish>El Pulso es %2</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2">
+        <English>You find a weak Heart Rate</English>
+        <Russian>Пульс слабый</Russian>
+        <Spanish>El Pulso es débil</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3">
+        <English>You find a strong Heart Rate</English>
+        <Russian>Пульс учащенный</Russian>
+        <Spanish>El Pulso está acelerado</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4">
+        <English>You find a normal Heart Rate</English>
+        <Russian>Пульс в норме</Russian>
+        <Spanish>El Pulso es bueno</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_5">
+        <English>You find no Heart Rate</English>
+        <Russian>Пульс не прощупывается</Russian>
+        <Spanish>No tiene Pulso</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE">
+        <English>Response</English>
+        <Russian>Реакция</Russian>
+        <Spanish>Reacciona</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE_CONTENT">
+        <English>You check response of patient</English>
+        <Russian>Вы проверяете реакцию раненого</Russian>
+        <Spanish>Compruebas si el paciente reacciona</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_RESPONSIVE">
+        <English>%1 is responsive</English>
+        <Russian>%1 реагирует на раздражители</Russian>
+        <Spanish>%1 ha reaccionado</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_UNRESPONSIVE">
+        <English>%1 is not responsive</English>
+        <Russian>%1 не реагирует</Russian>
+        <Spanish>%1 no reacciona</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CHECK_REPONSE_YOU_CHECKED">
+        <English>You checked %1</English>
+        <Russian>Вы осмотрели раненого %1</Russian>
+        <Spanish>Examinas a %1</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_BANDAGED">
+        <English>Bandaged</English>
+        <Russian>Повязка наложена</Russian>
+        <Spanish>Vendado</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_APPLY_BANDAGE">
+        <English>You bandage %1 (%2)</English>
+        <Russian>Вы перевязали раненого %1 (%2)</Russian>
+        <Spanish>Aplicas vendaje a %1 en %2</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_IS_BANDAGING_YOU">
+        <English>%1 is bandaging you</English>
+        <Russian>%1 перевязывает вас</Russian>
+        <Spanish>%1 te está vendando</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_START_STITCHING_INJURIES">
+        <English>You start stitching injures from %1 (%2)</English>
+        <Russian>Вы зашиваете ранения от %1 (%2)</Russian>
+        <Spanish>Estás suturando heridas de %1 en %2</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_STITCHING">
+        <English>Stitching</English>
+        <Russian>Наложение швов</Russian>
+        <Spanish>Suturando</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_YOU_TREAT_AIRWAY">
+        <English>You treat the airway of %1</English>
+        <Russian>Вы интубируете раненого %1</Russian>
+        <Spanish>Estás intubando a %1</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_AIRWAY">
+        <English>Airway</English>
+        <Russian>Дыхательные пути</Russian>
+        <Spanish>Vías Aéreas</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_IS_TREATING_YOUR_AIRWAY">
+        <English>%1 is treating your airway</English>
+        <Russian>%1 проводит вам интубацию</Russian>
+        <Spanish>%1 te está intubando</Spanish>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_DRAG">
+        <English>Drag</English>
+        <German>Ziehen</German>
+        <Spanish>Arrastrar</Spanish>
+        <Polish>Ciągnij</Polish>
+        <Czech>Táhnout</Czech>
+        <Russian>Тащить</Russian>
+        <French>Tracter</French>
+        <Hungarian>Húzás</Hungarian>
+        <Portuguese>Arrastar</Portuguese>
+        <Italian>Trascina</Italian>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_CARRY">
+        <English>Carry</English>
+        <German>Tragen</German>
+        <Spanish>Cargar</Spanish>
+        <Polish>Nieś</Polish>
+        <Czech>Nést</Czech>
+        <Russian>Нести</Russian>
+        <French>Porter</French>
+        <Hungarian>Cipelés</Hungarian>
+        <Portuguese>Carregar</Portuguese>
+        <Italian>Trasporta</Italian>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_RELEASE">
+        <English>Release</English>
+        <German>Loslassen</German>
+        <Spanish>Soltar</Spanish>
+        <Polish>Połóż</Polish>
+        <Czech>Položit</Czech>
+        <Russian>Отпустить</Russian>
+        <French>Déposer</French>
+        <Hungarian>Elenged</Hungarian>
+        <Portuguese>Largar</Portuguese>
+        <Italian>Lascia</Italian>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_LOAD">
+        <English>Load Patient Into</English>
+        <German>Patient Einladen</German>
+        <Spanish>Cargar el paciente en</Spanish>
+        <Polish>Załaduj pacjenta</Polish>
+        <Czech>Naložit pacianta do</Czech>
+        <Russian>Погрузить пациента в</Russian>
+        <French>Embarquer le Patient</French>
+        <Hungarian>Sebesült berakása</Hungarian>
+        <Portuguese>Carregar Paciente Em</Portuguese>
+        <Italian>Carica paziente nel</Italian>
+      </Key>
+      <Key ID="STR_ACE_MEDICAL_UNLOAD">
+        <English>Unload Patient</English>
+        <German>Patient Ausladen</German>
+        <Spanish>Descargar el paciente</Spanish>
+        <Polish>Wyładuj pacjenta</Polish>
+        <Czech>Vyložit pacienta</Czech>
+        <Russian>Выгрузить пациента</Russian>
+        <French>Débarquer le Patient</French>
+        <Hungarian>Sebesült kihúzása</Hungarian>
+        <Portuguese>Descarregar Paciente</Portuguese>
+        <Italian>Scarica il paziente</Italian>
+      </Key>
+      <Key ID="STR_ACE_Medical_UnloadPatient">
+        <English>Unload patient &gt;&gt;</English>
+      </Key>
+    </Container>
+  </Package>
+</Project>
\ No newline at end of file
diff --git a/addons/microdagr/$PBOPREFIX$ b/addons/microdagr/$PBOPREFIX$
new file mode 100644
index 0000000000..e2de546eaf
--- /dev/null
+++ b/addons/microdagr/$PBOPREFIX$
@@ -0,0 +1 @@
+z\ace\addons\microdagr
\ No newline at end of file
diff --git a/addons/microdagr/CfgEventHandlers.hpp b/addons/microdagr/CfgEventHandlers.hpp
new file mode 100644
index 0000000000..6d1d3b6dfb
--- /dev/null
+++ b/addons/microdagr/CfgEventHandlers.hpp
@@ -0,0 +1,11 @@
+class Extended_PreInit_EventHandlers {
+    class ADDON {
+        init = QUOTE(call COMPILE_FILE(XEH_preInit));
+    };
+};
+
+class Extended_PostInit_EventHandlers {
+    class ADDON {
+        clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) );
+    };
+};
diff --git a/addons/microdagr/CfgVehicles.hpp b/addons/microdagr/CfgVehicles.hpp
new file mode 100644
index 0000000000..f892c9aaab
--- /dev/null
+++ b/addons/microdagr/CfgVehicles.hpp
@@ -0,0 +1,58 @@
+class CfgVehicles {
+    class Man;
+    class CAManBase: Man {
+        class ACE_SelfActions {
+            class ACE_Equipment {
+                class GVAR(openMicroDAGR) {
+                    displayName = "$STR_ACE_microdagr_openUnit";
+                    condition = QUOTE(('ACE_microDAGR' in (items _player)));
+                    statement = QUOTE([] call FUNC(openDisplay));
+                    showDisabled = 0;
+                    priority = 0.1;
+                    icon = QUOTE(PATHTOF(data\icon_microDAGR.paa));
+                    hotkey = "G";
+                };                
+                class GVAR(closeMicroDAGR) {
+                    displayName = "$STR_ACE_microdagr_closeUnit";
+                    condition = QUOTE(GVAR(currentShowMode) != DISPLAY_MODE_CLOSED);
+                    statement = QUOTE([DISPLAY_MODE_CLOSED] call FUNC(openDisplay));
+                    showDisabled = 0;
+                    priority = 0;
+                    icon = QUOTE(PATHTOF(data\icon_microDAGR.paa));
+                    // hotkey = "G";
+                };
+            };
+        };
+    };
+
+    class Logic;
+    class Module_F: Logic {
+        class ArgumentsBaseUnits {};
+        class ModuleDescription {};
+    };
+    class GVAR(dagrModule): Module_F {
+        author = "$STR_ACE_Common_ACETeam";
+        category = "ACE";
+        displayName = "MicroDAGR Map Fill";
+        function = QFUNC(moduleMapFill);
+        scope = 2;
+        isGlobal = 1;
+        // icon = QUOTE(PATHTOF(ui\IconLock_ca.paa));
+        functionPriority = 0;
+        class Arguments {
+            class MapDataAvailable {
+                displayName = "MicroDAGR Map Fill"; // Argument label
+                description = "How much map data is filled on MicroDAGRs "; // Tooltip description
+                typeName = "NUMBER"; // Value type, can be "NUMBER", "STRING" or "BOOL"
+                class values {
+                    class None {name = "Full Satellite + Buildings"; value = MAP_DETAIL_SAT; default = 1;};
+                    class Side {name = "Topographical + Roads"; value = MAP_DETAIL_TOPOROADS;};
+                    class Unique {name = "None (Cannot use map view)"; value = MAP_DETAIL_NONE;};
+                };
+            };
+        };
+        class ModuleDescription: ModuleDescription {
+            description = "Controls how muchdata is filled in the microDAGR items.  Less data restricts the map view to show less on the minimap.<br/>Source: microDAGR.pbo";
+        };
+    };
+};
diff --git a/addons/microdagr/CfgWeapons.hpp b/addons/microdagr/CfgWeapons.hpp
new file mode 100644
index 0000000000..73615ea6b6
--- /dev/null
+++ b/addons/microdagr/CfgWeapons.hpp
@@ -0,0 +1,15 @@
+class CfgWeapons {
+    class ACE_ItemCore;
+    class InventoryItem_Base_F;
+
+    class ACE_microDAGR: ACE_ItemCore {
+        author = "$STR_ACE_Common_ACETeam";
+        scope = 2;
+        displayName = "$STR_ACE_microdagr_itemName";
+        descriptionShort = "$STR_ACE_microdagr_itemDescription";
+        picture = QUOTE(PATHTOF(images\microDAGR_item.paa));
+        class ItemInfo: InventoryItem_Base_F {
+            mass = 2;
+        };
+    };
+};
diff --git a/addons/microdagr/XEH_clientInit.sqf b/addons/microdagr/XEH_clientInit.sqf
new file mode 100644
index 0000000000..347c1b01de
--- /dev/null
+++ b/addons/microdagr/XEH_clientInit.sqf
@@ -0,0 +1,74 @@
+//XEH_clientInit.sqf
+#include "script_component.hpp"
+
+if (!hasInterface) exitWith {};
+
+//Add Keybinds:
+["ACE3", QGVAR(openGPS), (localize "STR_ACE_microdagr_openUnit"),
+{
+    // Conditions: canInteract
+    _exceptions = [];
+    if !(_exceptions call EGVAR(common,canInteract)) exitWith {false};
+    // Conditions: specific
+    if (!("ACE_microDAGR" in (items ace_player))) exitWith {false};
+    [] call FUNC(openDisplay);
+    true;
+},
+{false},
+[0xC7, [false, false, false]], false] call cba_fnc_addKeybind;  //Home Key
+
+["ACE3", QGVAR(closeGPS), (localize "STR_ACE_microdagr_closeUnit"),
+{
+    // Conditions: canInteract
+    _exceptions = [];
+    if !(_exceptions call EGVAR(common,canInteract)) exitWith {false};
+    // Conditions: specific
+    if (!("ACE_microDAGR" in (items ace_player))) exitWith {false};
+    if (GVAR(currentShowMode) == DISPLAY_MODE_CLOSED) exitWith {false};
+
+    [DISPLAY_MODE_CLOSED] call FUNC(openDisplay);
+    true;
+},
+{false},
+[0xC7, [false, true, false]], false] call cba_fnc_addKeybind;  //CTRL + Home Key
+
+//Add Eventhandler:
+["RangerfinderData", {_this call FUNC(recieveRangefinderData)}] call EFUNC(common,addEventHandler);
+
+//Global Variables to default:
+GVAR(gpsPositionASL) = [0,0,0];
+GVAR(mapAutoTrackPosition) = true;
+GVAR(mapShowTexture) = false;
+GVAR(mapPosition) = [-999, -999];
+GVAR(mapZoom) = 0.075;
+GVAR(currentApplicationPage) = APP_MODE_NULL;
+GVAR(currentShowMode) = DISPLAY_MODE_CLOSED;
+
+//User Settings
+GVAR(settingUseMils) = false;
+GVAR(settingShowAllWaypointsOnMap) = true;
+
+GVAR(newWaypointPosition) = [];
+GVAR(currentWaypoint) = -1;
+GVAR(rangeFinderPositionASL) = [];
+
+
+GVAR(mapAltitude) = getNumber (configFile >> "CfgWorlds" >> worldName >> "elevationOffset");
+
+//Calculate the map's MGRS:
+_worldMapLong = getNumber (configFile >> "CfgWorlds" >> worldName >> "longitude");
+_worldMapLat = getNumber (configFile >> "CfgWorlds" >> worldName >> "latitude");
+//Pull UTM grid from world's long/lat
+_zone = 1 + (floor ((_worldMapLong + 180) / 6));
+_band = "Z";
+if (_worldMapLat <= -80) then {
+    _band = "A";
+} else {
+    if (_worldMapLat < 84) then {
+        _band = "CDEFGHJKLMNPQRSTUVWXX" select [(floor ((_worldMapLat / 8) + 10)), 1];
+    };
+};
+//calculating square ID from long/lat is a pain in the ass, just fake it unless someone wants to actualy do this
+_squareID = if ((count worldName) > 2) then {toUpper(worldName select [0,2])} else {"XG"};
+GVAR(mgrsGridZoneDesignator) = format ["%1%2 %3", _zone, _band, _squareID];
+
diff --git a/addons/microdagr/XEH_preInit.sqf b/addons/microdagr/XEH_preInit.sqf
new file mode 100644
index 0000000000..a0ea1a538e
--- /dev/null
+++ b/addons/microdagr/XEH_preInit.sqf
@@ -0,0 +1,25 @@
+#include "script_component.hpp"
+
+ADDON = false;
+
+PREP(appMarkKeypadEntry);
+PREP(appMenuButtonConnectRangefinder);
+PREP(appSettingsLBClick);
+PREP(appWaypointsButtonDeleteWP);
+PREP(appWaypointsButtonSetWP);
+PREP(canShow);
+PREP(deviceAddWaypoint);
+PREP(deviceDeleteWaypoint);
+PREP(deviceGetWaypoints);
+PREP(dialogClosedEH);
+PREP(mapDoubleTapEH);
+PREP(mapOnDrawEH);
+PREP(modeMapButtons);
+PREP(moduleMapFill);
+PREP(openDisplay);
+PREP(recieveRangefinderData);
+PREP(saveCurrentAndSetNewMode);
+PREP(showApplicationPage);
+PREP(updateDisplay);
+
+ADDON = true;
diff --git a/addons/microdagr/config.cpp b/addons/microdagr/config.cpp
new file mode 100644
index 0000000000..39380d7a2e
--- /dev/null
+++ b/addons/microdagr/config.cpp
@@ -0,0 +1,26 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+    class ADDON {
+        units[] = {};
+        weapons[] = {};
+        requiredVersion = REQUIRED_VERSION;
+        requiredAddons[] = {"ace_common"};
+        author[] = {"PabstMirror"};
+        authorUrl = "https://github.com/PabstMirror/";
+        VERSION_CONFIG;
+    };
+};
+
+#include "CfgEventHandlers.hpp"
+#include "CfgWeapons.hpp"
+#include "CfgVehicles.hpp"
+#include "gui.hpp"
+
+class ACE_Settings {
+    class GVAR(MapDataAvailable) {
+        value = 2;
+        typeName = "SCALAR";
+        isClientSetable = 0;
+    };
+};
diff --git a/addons/microdagr/data/icon_microDAGR.paa b/addons/microdagr/data/icon_microDAGR.paa
new file mode 100644
index 0000000000..04307ec581
Binary files /dev/null and b/addons/microdagr/data/icon_microDAGR.paa differ
diff --git a/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf b/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf
new file mode 100644
index 0000000000..066b44508d
--- /dev/null
+++ b/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf
@@ -0,0 +1,57 @@
+/*
+ * Author: PabstMirror
+ * Handles the keypad entries from the "Mark" Application
+ *
+ * Arguments:
+ * 0: String version of Keypad entry ["ok","del","1",...] <STRING>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * ["ok"] call ace_microdagr_fnc_appMarkKeypadEntry
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_display", "_editText", "_gridPosTuple", "_actualPos"];
+PARAMS_1(_keypadButton);
+
+disableSerialization;
+_display = displayNull;
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    _display = (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull]);
+} else {
+    _display = (uiNamespace getVariable [QGVAR(RscTitleDisplay), displayNull]);
+};
+if (isNull _display) exitWith {ERROR("No Display");};
+
+if (GVAR(currentApplicationPage) != APP_MODE_MARK) exitWith {};
+
+_editText = ctrlText (_display displayCtrl IDC_MODEMARK_CORDSEDIT);
+
+switch (_keypadButton) do {
+case ("ok"): {
+        if ((count GVAR(newWaypointPosition)) == 0) then {
+            _gridPosTuple = [_editText] call BIS_fnc_gridToPos;
+            _actualPos = [(((_gridPosTuple select 0) select 0) + 0.5 * ((_gridPosTuple select 1) select 0)), (((_gridPosTuple select 0) select 1) + 0.5 * ((_gridPosTuple select 1) select 1))];
+            _actualPos set [2, (getTerrainHeightASL _actualPos)];
+            GVAR(newWaypointPosition) = _actualPos;
+            [APP_MODE_MARK] call FUNC(saveCurrentAndSetNewMode);
+        } else {
+            [_editText, GVAR(newWaypointPosition)] call FUNC(deviceAddWaypoint);
+            [APP_MODE_WAYPOINTS] call FUNC(saveCurrentAndSetNewMode);
+        };
+    };
+case ("del"): {
+        _editText = _editText select [0, (((count _editText) - 1) max 0)];
+        (_display displayCtrl IDC_MODEMARK_CORDSEDIT) ctrlSetText _editText;
+        ctrlSetFocus (_display displayCtrl IDC_MODEMARK_CORDSEDIT);
+    };
+    default {
+        _editText = _editText + _keypadButton;
+        (_display displayCtrl IDC_MODEMARK_CORDSEDIT) ctrlSetText _editText;
+        ctrlSetFocus (_display displayCtrl IDC_MODEMARK_CORDSEDIT);
+    };
+};
diff --git a/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf b/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf
new file mode 100644
index 0000000000..1cf81963f5
--- /dev/null
+++ b/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf
@@ -0,0 +1,20 @@
+/*
+ * Author: PabstMirror
+ * Handles the "Connect To" button from the menu application
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_appMenuButtonConnectRangefinder
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+GVAR(currentWaypoint) = if (GVAR(currentWaypoint) == -2) then {-1} else {-2};
+GVAR(rangeFinderPositionASL) = [];
+[APP_MODE_INFODISPLAY] call FUNC(saveCurrentAndSetNewMode);
diff --git a/addons/microdagr/functions/fnc_appSettingsLBClick.sqf b/addons/microdagr/functions/fnc_appSettingsLBClick.sqf
new file mode 100644
index 0000000000..bc6779c10a
--- /dev/null
+++ b/addons/microdagr/functions/fnc_appSettingsLBClick.sqf
@@ -0,0 +1,27 @@
+/*
+ * Author: PabstMirror
+ * Handles double clicking on the setting listbox
+ *
+ * Arguments:
+ * 0: Setting List box (not used) <CONTROL>
+ * 1: Index <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [settingList, 1] call ace_microdagr_fnc_appSettingsLBClick
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+disableSerialization;
+PARAMS_2(_control,_itemClicked);
+
+switch (_itemClicked) do {
+    case (0): { GVAR(settingUseMils) = ! GVAR(settingUseMils)};
+    case (1): { GVAR(settingShowAllWaypointsOnMap) = ! GVAR(settingShowAllWaypointsOnMap)};
+};
+
+[] call FUNC(updateDisplay);
diff --git a/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf b/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf
new file mode 100644
index 0000000000..1acd936370
--- /dev/null
+++ b/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf
@@ -0,0 +1,37 @@
+/*
+ * Author: PabstMirror
+ * Handles clicking the delete button from the waypoint application
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_appWaypointsButtonDeleteWP
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_display", "_wpIndex"];
+
+disableSerialization;
+_display = displayNull;
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    _display = (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull]);
+} else {
+    _display = (uiNamespace getVariable [QGVAR(RscTitleDisplay), displayNull]);
+};
+if (isNull _display) exitWith {ERROR("No Display");};
+
+_wpIndex = lbCurSel (_display displayCtrl IDC_MODEWAYPOINTS_LISTOFWAYPOINTS);
+
+//If it's our currentWP then deactivate
+if (GVAR(currentWaypoint) == _wpIndex) then {GVAR(currentWaypoint) = -1};
+
+//Delete from list:
+[_wpIndex] call FUNC(deviceDeleteWaypoint);
+//Update list now:
+[] call FUNC(updateDisplay);
diff --git a/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf b/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf
new file mode 100644
index 0000000000..1836e50da2
--- /dev/null
+++ b/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf
@@ -0,0 +1,33 @@
+/*
+ * Author: PabstMirror
+ * Handles clicking the setWP button from the waypoint application
+ *
+ * Arguments:
+ * The "SetWP" button <CONTROL>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_appWaypointsButtonSetWP
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_wpListBox", "_newWpIndex", "_waypoints"];
+
+disableSerialization;
+PARAMS_1(_wpButton);
+
+_wpListBox = (ctrlParent _wpButton) displayCtrl 144501;
+_newWpIndex = lbCurSel _wpListBox;
+_waypoints = [] call FUNC(deviceGetWaypoints);
+
+if ((_newWpIndex < 0) || (_newWpIndex > ((count _waypoints) - 1))) exitWith {
+    GVAR(currentWaypoint) = -1;
+    ERROR("out of bounds wp");
+};
+
+GVAR(currentWaypoint) = _newWpIndex;
+[APP_MODE_COMPASS] call FUNC(saveCurrentAndSetNewMode);
diff --git a/addons/microdagr/functions/fnc_canShow.sqf b/addons/microdagr/functions/fnc_canShow.sqf
new file mode 100644
index 0000000000..62fb7f01ed
--- /dev/null
+++ b/addons/microdagr/functions/fnc_canShow.sqf
@@ -0,0 +1,29 @@
+/*
+ * Author: PabstMirror
+ * Tests if the dagr can be shown in a mode
+ *
+ * Arguments:
+ * The display mode to test showing <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_canShow
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_1(_showType);
+
+//Can always do closed or hidden
+if (_showType in [DISPLAY_MODE_CLOSED, DISPLAY_MODE_HIDDEN]) exitWith {true};
+
+//Can't interact then hide gps:   TODO: any exceptions?
+if (!([ACE_player, objNull, []] call EGVAR(common,canInteractWith))) exitWith {false};
+
+ //Can't have minimap up while zoomed in
+if ((_showType == DISPLAY_MODE_DISPLAY) && {cameraview == "GUNNER"}) exitWith {false};
+
+true
diff --git a/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf b/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf
new file mode 100644
index 0000000000..6912810f58
--- /dev/null
+++ b/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf
@@ -0,0 +1,24 @@
+/*
+ * Author: PabstMirror
+ * Adds a waypoint to the "device"
+ * Device saving not implemented yet, just save to player object
+ *
+ * Arguments:
+ * 0: Waypoint name <STRING>
+ * 1: Waypoint Position ASL <ARRAY>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * ["Hill 55", [41,324, 12]] call ace_microdagr_fnc_deviceAddWaypoint
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_2(_waypointName,_waypointPosASL);
+
+_waypoints = ace_player getVariable [QGVAR(waypoints), []];
+_waypoints pushBack [_waypointName, _waypointPosASL];
+ace_player setVariable [QGVAR(waypoints), _waypoints];
diff --git a/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf b/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf
new file mode 100644
index 0000000000..3d1e8ec852
--- /dev/null
+++ b/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf
@@ -0,0 +1,26 @@
+/*
+ * Author: PabstMirror
+ * Deletes a waypoint from the "device"
+ * Device saving not implemented yet, just save to player object
+ *
+ * Arguments:
+ * 0: Waypoint Index <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * ["Hill 55", [41,324, 12]] call ace_microdagr_fnc_deviceDeleteWaypoint
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_1(_wpIndex);
+
+_waypoints = ace_player getVariable [QGVAR(waypoints), []];
+
+if ((_wpIndex < 0) || (_wpIndex > ((count _waypoints) - 1))) exitWith {ERROR("out of bounds wp");};
+
+_waypoints deleteAt _wpIndex;
+ace_player setVariable [QGVAR(waypoints), _waypoints];
diff --git a/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf b/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf
new file mode 100644
index 0000000000..f90ecb06be
--- /dev/null
+++ b/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf
@@ -0,0 +1,19 @@
+/*
+ * Author: PabstMirror
+ * Gets all waypoints from the "device"
+ * Device saving not implemented yet, just save to player object
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Waypoints <ARRAY>
+ *
+ * Example:
+ * [["Hill 55", [41,324, 12]]] = [] call ace_microdagr_fnc_deviceGetWaypoint
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+(ace_player getVariable [QGVAR(waypoints), []])
diff --git a/addons/microdagr/functions/fnc_dialogClosedEH.sqf b/addons/microdagr/functions/fnc_dialogClosedEH.sqf
new file mode 100644
index 0000000000..0a7e5e5115
--- /dev/null
+++ b/addons/microdagr/functions/fnc_dialogClosedEH.sqf
@@ -0,0 +1,21 @@
+/*
+ * Author: PabstMirror
+ * Handles the dialog closeing, switches back to display mode
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_dialogClosedEH
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    [-1] call FUNC(saveCurrentAndSetNewMode);
+    [DISPLAY_MODE_DISPLAY] call FUNC(openDisplay);
+};
diff --git a/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf b/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf
new file mode 100644
index 0000000000..1fd4c4c4d2
--- /dev/null
+++ b/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf
@@ -0,0 +1,30 @@
+/*
+ * Author: PabstMirror
+ * Handles the double tapping either of the 2 mini-maps
+ *
+ * Arguments:
+ * 0: The Map <CONTROL>
+ * 1: MouseButton <NUMBER>
+ * 2: MousePosX <NUMBER>
+ * 3: MousePosY <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [minimap,0,0.5,0.5] call ace_microdagr_fnc_mapOnDrawEH
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_4(_theMap,_mouseButton,_xPos,_yPos);
+
+//Only handle LMB
+if (_mouseButton != 0) exitWith {};
+
+_worldPos = _theMap ctrlMapScreenToWorld [_xPos, _yPos];
+_worldPos set [2, (getTerrainHeightASL _worldPos)];
+
+GVAR(newWaypointPosition) = _worldPos;
+[APP_MODE_MARK] call FUNC(saveCurrentAndSetNewMode);
diff --git a/addons/microdagr/functions/fnc_mapOnDrawEH.sqf b/addons/microdagr/functions/fnc_mapOnDrawEH.sqf
new file mode 100644
index 0000000000..3acf3e889c
--- /dev/null
+++ b/addons/microdagr/functions/fnc_mapOnDrawEH.sqf
@@ -0,0 +1,65 @@
+/*
+ * Author: PabstMirror
+ * Handles the draw event from all 3 maps (compass + 2 minimaps)
+ *
+ * Arguments:
+ * 0: The Map <CONTROL>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [compassMap] call ace_microdagr_fnc_mapOnDrawEH
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_1(_theMap);
+
+_theMap = _this select 0;
+_mapSize = (ctrlPosition _theMap) select 3;
+
+_waypoints = [] call FUNC(deviceGetWaypoints);
+
+if (GVAR(currentApplicationPage) == 1) then {
+    _theMap ctrlMapAnimAdd [0, DUMMY_ZOOM, DUMMY_POS];
+    ctrlMapAnimCommit _theMap;
+    _size = 412 * _mapSize;
+    _theMap drawIcon [QUOTE(PATHTO_R(images\compass_starInverted.paa)), [1,1,1,1], DUMMY_POS, _size, _size, (-1 * (getDir ace_player)), '', 0 ];
+    _theMap drawIcon [QUOTE(PATHTO_R(images\compass_needle.paa)), [0.533,0.769,0.76,1], DUMMY_POS, _size, _size, 0, '', 0 ];
+
+    if (GVAR(currentWaypoint) != -1) then {
+        _targetPos = [];
+        if (GVAR(currentWaypoint) == -2) then {
+            if ((count GVAR(rangeFinderPositionASL)) == 3) then {
+                _targetPos = GVAR(rangeFinderPositionASL);
+            };
+        } else {
+            if (GVAR(currentWaypoint) < (count _waypoints)) then {
+                _targetPos = (_waypoints select GVAR(currentWaypoint)) select 1;
+            };
+        };
+        if ((count _targetPos) == 3) then {
+            _relBearing = [ace_player, _targetPos] call BIS_fnc_relativeDirTo;
+            _theMap drawIcon [QUOTE(PATHTO_R(images\compass_needle.paa)), [1,0.564,0.564,1], DUMMY_POS, _size, _size, _relBearing, '', 0 ];
+        };
+    };
+
+} else { //Map Mode:
+    if (GVAR(mapAutoTrackPosition)) then {
+        _theMap ctrlMapAnimAdd [0, (GVAR(mapZoom)/_mapSize), GVAR(gpsPositionASL)];
+        ctrlMapAnimCommit _theMap;
+    };
+    _size = 48 * _mapSize;
+    _theMap drawIcon [QUOTE(PATHTO_R(images\icon_self.paa)), [0.533,0.769,0.76,0.75], GVAR(gpsPositionASL), _size, _size, (getDir ace_player), '', 0 ];
+
+    if (GVAR(settingShowAllWaypointsOnMap)) then {
+        _size = 32 * _mapSize;
+        {
+            EXPLODE_2_PVT(_x,_wpName,_wpPos);
+            _alpha = if (_forEachIndex == GVAR(currentWaypoint)) then {1} else {0.5};
+            _theMap drawIcon [QUOTE(PATHTO_R(images\icon_mapWaypoints.paa)), [1,1,1,_alpha], _wpPos, _size, _size, 0, '', 0 ];
+        } forEach _waypoints;
+    };
+};
diff --git a/addons/microdagr/functions/fnc_modeMapButtons.sqf b/addons/microdagr/functions/fnc_modeMapButtons.sqf
new file mode 100644
index 0000000000..5de4bf9ca7
--- /dev/null
+++ b/addons/microdagr/functions/fnc_modeMapButtons.sqf
@@ -0,0 +1,31 @@
+/*
+ * Author: PabstMirror
+ * Takes some arguments and returns something or other.
+ *
+ * Arguments:
+ * 0: String of the map button pressed <STRING>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * ["autotrack"] call ace_microdagr_fnc_modeMapButtons
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_1(_mode);
+
+[-1] call FUNC(saveCurrentAndSetNewMode); //backup current draw pos/zoom
+
+if (_mode == "autotrack") then {
+    GVAR(mapAutoTrackPosition) = !GVAR(mapAutoTrackPosition);
+} else {
+    if (_mode == "zoomin") then {
+        GVAR(mapZoom) = GVAR(mapZoom) * (10/11);
+    } else {
+        GVAR(mapZoom) = GVAR(mapZoom) * (11/10);
+    };
+};
+[] call FUNC(showApplicationPage);
diff --git a/addons/microdagr/functions/fnc_moduleMapFill.sqf b/addons/microdagr/functions/fnc_moduleMapFill.sqf
new file mode 100644
index 0000000000..d07b0bc518
--- /dev/null
+++ b/addons/microdagr/functions/fnc_moduleMapFill.sqf
@@ -0,0 +1,26 @@
+/*
+ * Author: PabstMirror
+ * Function for the module (handles the map fill level)
+ *
+ * Arguments:
+ * 0: logic <OBJECT>
+ * 1: synced units-not used <ARRAY>
+ * 2: Module Activated <BOOL>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [module, [], true] call ace_microdagr_fnc_moduleMapFill
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+PARAMS_3(_logic,_syncedUnits,_activated);
+
+if (!_activated) exitWith {WARNING("Module Placed but not active");};
+
+if (isServer) then {
+  [_logic, QGVAR(MapDataAvailable), "MapDataAvailable"] call EFUNC(common,readSettingFromModule);
+};
diff --git a/addons/microdagr/functions/fnc_openDisplay.sqf b/addons/microdagr/functions/fnc_openDisplay.sqf
new file mode 100644
index 0000000000..14aa58f92b
--- /dev/null
+++ b/addons/microdagr/functions/fnc_openDisplay.sqf
@@ -0,0 +1,98 @@
+/*
+ * Author: PabstMirror
+ * Changes the display mode of the microDAGR
+ *
+ * Arguments:
+ * 0: Display Mode to show the microDAGR in <NUMBER><OPTIONAL>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [1] call ace_microdagr_fnc_openDisplay
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_oldShowMode", "_args", "_pfID", "_player"];
+
+DEFAULT_PARAM(0,_newDisplayShowMode,-1);
+_oldShowMode = GVAR(currentShowMode);
+
+if (_newDisplayShowMode == -1) then {
+    if (_oldShowMode in [DISPLAY_MODE_DISPLAY, DISPLAY_MODE_HIDDEN]) then {_newDisplayShowMode = DISPLAY_MODE_DIALOG};
+    if (_oldShowMode in [DISPLAY_MODE_DIALOG, DISPLAY_MODE_CLOSED]) then {_newDisplayShowMode = DISPLAY_MODE_DISPLAY};
+};
+
+if ((_newDisplayShowMode == DISPLAY_MODE_DISPLAY) && {!([DISPLAY_MODE_DISPLAY] call FUNC(canShow))}) then {_newDisplayShowMode = DISPLAY_MODE_HIDDEN};
+if ((_newDisplayShowMode == DISPLAY_MODE_DIALOG) && {!([DISPLAY_MODE_DIALOG] call FUNC(canShow))}) then {_newDisplayShowMode = DISPLAY_MODE_HIDDEN};
+
+
+
+//On first-startup
+if (GVAR(currentApplicationPage) == APP_MODE_NULL) then {
+    GVAR(currentApplicationPage) = APP_MODE_INFODISPLAY;
+    GVAR(mapPosition) = getPos ace_player;
+};
+
+if (_newDisplayShowMode in [DISPLAY_MODE_CLOSED, DISPLAY_MODE_HIDDEN]) then {
+
+    //If Dialog is open, back it up before closing:
+    if (dialog && {!isNull (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull])}) then {
+        [-1] call FUNC(saveCurrentAndSetNewMode);
+        closeDialog 0;
+    };
+
+    //Close the display:
+    (QGVAR(TheRscTitleDisplay) call BIS_fnc_rscLayer) cutText ["", "PLAIN"];
+} else {
+    if (_newDisplayShowMode == DISPLAY_MODE_DISPLAY) then {
+        //If Dialog is open, back it up before closing:
+        if (dialog && {!isNull (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull])}) then {
+            [-1] call FUNC(saveCurrentAndSetNewMode);
+            closeDialog 0;
+        };
+        //Open the display:
+        (QGVAR(TheRscTitleDisplay) call BIS_fnc_rscLayer) cutRsc [QGVAR(TheRscTitleDisplay), "PLAIN", 0, true];
+    } else { //DISPLAY_MODE_DIALOG
+        //Close the display:
+        (QGVAR(TheRscTitleDisplay) call BIS_fnc_rscLayer) cutText ["", "PLAIN"];
+        //Open the dialog:
+        createDialog QGVAR(TheDialog);
+    };
+};
+
+GVAR(currentShowMode) = _newDisplayShowMode;
+//Update display applicaiton if open:
+if (GVAR(currentShowMode) in [DISPLAY_MODE_DIALOG, DISPLAY_MODE_DISPLAY]) then {
+    [] call FUNC(showApplicationPage);
+};
+
+if ((_oldShowMode == DISPLAY_MODE_CLOSED) && {GVAR(currentShowMode) != DISPLAY_MODE_CLOSED}) then {
+    //Start a pfeh to update display and handle hiding display
+
+    [{
+        PARAMS_2(_args,_pfID);
+        EXPLODE_1_PVT(_args,_player);
+
+        if ((ace_player != _player) || {!("ACE_microDAGR" in (items ace_player))} || {GVAR(currentShowMode) == DISPLAY_MODE_CLOSED}) then {
+            GVAR(currentShowMode) = DISPLAY_MODE_CLOSED;
+            [_pfID] call CBA_fnc_removePerFrameHandler;
+        } else {
+            GVAR(gpsPositionASL) = getPosAsl ace_player;
+            if (GVAR(currentShowMode) == DISPLAY_MODE_HIDDEN) then {
+                //If display is hidden, and we can show, then swithc modes:
+                if ([DISPLAY_MODE_DISPLAY] call FUNC(canShow)) then {
+                    [DISPLAY_MODE_DISPLAY] call FUNC(openDisplay);
+                };
+            } else {
+                if ([GVAR(currentShowMode)] call FUNC(canShow)) then {
+                    [] call FUNC(updateDisplay);
+                } else {
+                    [DISPLAY_MODE_HIDDEN] call FUNC(openDisplay);
+                };
+            };
+        };
+    }, 0.1, [ace_player]] call CBA_fnc_addPerFrameHandler;
+};
diff --git a/addons/microdagr/functions/fnc_recieveRangefinderData.sqf b/addons/microdagr/functions/fnc_recieveRangefinderData.sqf
new file mode 100644
index 0000000000..154dfff94a
--- /dev/null
+++ b/addons/microdagr/functions/fnc_recieveRangefinderData.sqf
@@ -0,0 +1,34 @@
+/*
+ * Author: PabstMirror
+ * Recieves the data packet from the vector rangefinder
+ *
+ * Arguments:
+ * 0: Slope distance (Meters) <NUMBER>
+ * 1: Azimuth (Degrees) <NUMBER>
+ * 2: Inclination (Degrees) <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [1000, 45, 1] call ace_microdagr_fnc_recieveRangefinderData
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_horizontalDistance", "_verticleDistance", "_targetOffset", "_targetPosASL"];
+
+PARAMS_3(_slopeDistance,_azimuth,_inclination);
+
+if (GVAR(currentWaypoint) != -2) exitWith {}; //Only take waypoint when "connected"
+if (_slopeDistance < 0) exitWith {}; //Bad Data
+
+_horizontalDistance = (cos _inclination) * _slopeDistance;
+_verticleDistance = (sin _inclination) * _slopeDistance;
+
+_targetOffset = [((sin _azimuth) * _horizontalDistance), ((cos _azimuth) * _horizontalDistance), _verticleDistance];
+//This assumes the "rangefinder view" pos is very close to player, at worst the turret should only be a few meters different
+_targetPosASL = (getPosASL ace_player) vectorAdd _targetOffset;
+
+GVAR(rangeFinderPositionASL) = _targetPosASL;
diff --git a/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf b/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf
new file mode 100644
index 0000000000..1f4982d87f
--- /dev/null
+++ b/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf
@@ -0,0 +1,62 @@
+/*
+ * Author: PabstMirror
+ * Saves the current mode and sets a new mode
+ * Used to backup display when switching display modes 
+ *
+ * Arguments:
+ * 0: New Mode <NUMBER>
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [2] call ace_microdagr_fnc_saveCurrentAndSetNewMode
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_display", "_theMap", "_mapSize", "_centerPos"];
+
+PARAMS_1(_newMode);
+
+disableSerialization;
+_display = displayNull;
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    _display = (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull]);
+} else {
+    _display = (uiNamespace getVariable [QGVAR(RscTitleDisplay), displayNull]);
+};
+if (isNull _display) exitWith {ERROR("No Display");};
+
+if (GVAR(currentApplicationPage) == 2) then {
+    _theMap = if (!GVAR(mapShowTexture)) then {_display displayCtrl IDC_MAPPLAIN} else {_display displayCtrl IDC_MAPDETAILS};
+    _mapCtrlPos = ctrlPosition _theMap;
+    _mapSize = _mapCtrlPos select 3;
+    _centerPos = [((_mapCtrlPos select 0) + (_mapCtrlPos select 2) / 2), ((_mapCtrlPos select 1) + (_mapCtrlPos select 3) / 2)];
+    GVAR(mapPosition) = _theMap ctrlMapScreenToWorld _centerPos;
+    GVAR(mapZoom) = (ctrlMapScale _theMap) * _mapSize;
+    
+    //Hit button again, toggle map modes:
+    if (_newMode == 2) then {
+       if (GVAR(mapShowTexture)) then {
+         GVAR(mapShowTexture) = false;
+       } else {
+            if (GVAR(MapDataAvailable) == MAP_DETAIL_SAT) then {
+                GVAR(mapShowTexture) = true;
+            };
+       };
+    };
+};
+
+//Can't switch to map if no map loaded
+if (_newMode == APP_MODE_MAP) then {
+    if (GVAR(MapDataAvailable) == MAP_DETAIL_NONE) then {
+        _newMode = -1;
+    };
+};
+
+if (_newMode != -1) then {
+    GVAR(currentApplicationPage) = _newMode;
+    [] call FUNC(showApplicationPage);
+};
diff --git a/addons/microdagr/functions/fnc_showApplicationPage.sqf b/addons/microdagr/functions/fnc_showApplicationPage.sqf
new file mode 100644
index 0000000000..a9e6d10db7
--- /dev/null
+++ b/addons/microdagr/functions/fnc_showApplicationPage.sqf
@@ -0,0 +1,127 @@
+/*
+ * Author: PabstMirror
+ * Changes the "application page" shown on the microDAGR
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_showApplicationPage
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_display", "_daylight", "_theMap", "_mapSize"];
+
+disableSerialization;
+
+_display = displayNull;
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    _display = (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull]);
+} else {
+    _display = (uiNamespace getVariable [QGVAR(RscTitleDisplay), displayNull]);
+};
+if (isNull _display) exitWith {ERROR("No Display");};
+
+//Fade "shell" at night
+_daylight = 0.05 max (((1 - overcast)/2 + ((1 - cos (daytime * 360/24)) / 4)) * (linearConversion [0, 1, sunOrMoon, (0.25 * moonIntensity), 1]));
+(_display displayCtrl IDC_MICRODAGRSHELL) ctrlSetTextColor [_daylight, _daylight, _daylight, 1];
+
+//TopBar
+(_display displayCtrl IDC_RANGEFINDERCONNECTEDICON) ctrlShow (GVAR(currentWaypoint) == -2);
+
+//Mode: Info:
+(_display displayCtrl IDC_MODEDISPLAY) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_INFODISPLAY);
+
+if (GVAR(currentApplicationPage) == APP_MODE_INFODISPLAY) then {
+    (_display displayCtrl IDC_MODEDISPLAY_UTMGRID) ctrlSetText GVAR(mgrsGridZoneDesignator);
+    if (GVAR(currentWaypoint) == -1) then {
+        (_display displayCtrl IDC_MODEDISPLAY_MODEPOSTIMECG) ctrlShow true;
+        (_display displayCtrl IDC_MODEDISPLAY_MODEPOSTARGETCG) ctrlShow false;
+    } else {
+        (_display displayCtrl IDC_MODEDISPLAY_MODEPOSTIMECG) ctrlShow false;
+        (_display displayCtrl IDC_MODEDISPLAY_MODEPOSTARGETCG) ctrlShow true;
+        if (GVAR(currentWaypoint) == -2) then {
+            (_display displayCtrl IDC_MODEDISPLAY_TARGETICON) ctrlSetText "\A3\ui_f\data\igui\rscingameui\rscoptics\laser_designator_iconLaserOn.paa"
+        } else {
+            (_display displayCtrl IDC_MODEDISPLAY_TARGETICON) ctrlSetText QUOTE(PATHTOF(images\icon_menuMark.paa));
+        };
+    };
+};
+
+//Mode: Compass:
+(_display displayCtrl IDC_MODECOMPASS) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_COMPASS);
+(_display displayCtrl IDC_MAPCOMPASS) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_COMPASS);
+
+
+//Mode: Map
+(_display displayCtrl IDC_MODEMAP_MAPTRACKBUTTON) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_MAP);
+(_display displayCtrl IDC_MODEMAP_MAPZOOMIN) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_MAP);
+(_display displayCtrl IDC_MODEMAP_MAPZOOMOUT) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_MAP);
+
+(_display displayCtrl IDC_MAPPLAIN) ctrlShow ((GVAR(currentApplicationPage) == APP_MODE_MAP) && {!GVAR(mapShowTexture)});
+(_display displayCtrl IDC_MAPDETAILS) ctrlShow ((GVAR(currentApplicationPage) == APP_MODE_MAP) && {GVAR(mapShowTexture)});
+
+if (GVAR(currentApplicationPage) == APP_MODE_MAP) then {
+    _theMap = if (!GVAR(mapShowTexture)) then {_display displayCtrl IDC_MAPPLAIN} else {_display displayCtrl IDC_MAPDETAILS};
+    _mapSize = (ctrlPosition _theMap) select 3;
+    _theMap ctrlMapAnimAdd [0, (GVAR(mapZoom) / _mapSize), GVAR(mapPosition)];
+    ctrlMapAnimCommit _theMap;
+    if (GVAR(mapAutoTrackPosition)) then {
+        (_display displayCtrl IDC_MODEMAP_MAPTRACKBUTTON) ctrlSetTextColor [1,1,1,0.8];
+    } else {
+        (_display displayCtrl IDC_MODEMAP_MAPTRACKBUTTON) ctrlSetTextColor [1,1,1,0.4];
+    };
+};
+
+//Mode: Menu
+(_display displayCtrl IDC_MODEMENU) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_MENU);
+
+//Mode: Mark
+if (GVAR(currentApplicationPage) == APP_MODE_MARK) then {
+    (_display displayCtrl IDC_MODEMARK) ctrlShow true;
+    //not backed up for displayMode swap, not a big deal
+
+
+    if ((count GVAR(newWaypointPosition)) == 0) then {
+        (_display displayCtrl IDC_MODEMARK_HEADER) ctrlSetText (localize "STR_ACE_microdagr_wpEnterCords");
+        (_display displayCtrl IDC_MODEMARK_CORDSEDIT) ctrlSetText "";
+    } else {
+        (_display displayCtrl IDC_MODEMARK_HEADER) ctrlSetText format [(localize "STR_ACE_microdagr_wpEnterName"), mapGridPosition GVAR(newWaypointPosition)];
+        (_display displayCtrl IDC_MODEMARK_CORDSEDIT) ctrlSetText format ["[%1]", mapGridPosition GVAR(newWaypointPosition)];
+    };
+    ctrlSetFocus (_display displayCtrl IDC_MODEMARK_CORDSEDIT);
+} else {
+    (_display displayCtrl IDC_MODEMARK) ctrlShow false;
+    GVAR(newWaypointPosition) = [];
+};
+
+//Mode: Waypoints
+(_display displayCtrl IDC_MODEWAYPOINTS) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_WAYPOINTS);
+
+//Mode: Setting
+(_display displayCtrl IDC_MODESETTINGS) ctrlShow (GVAR(currentApplicationPage) == APP_MODE_SETUP);
+
+//Buttons pushed:
+if (GVAR(currentApplicationPage) == APP_MODE_INFODISPLAY) then {
+    (_display displayCtrl IDC_BUTTONBG0) ctrlSetText QUOTE(PATHTOF(images\button_pushedDown.paa));
+} else {
+    (_display displayCtrl IDC_BUTTONBG0) ctrlSetText QUOTE(PATHTOF(images\button_pushedUp.paa));
+};
+if (GVAR(currentApplicationPage) == APP_MODE_COMPASS) then {
+    (_display displayCtrl IDC_BUTTONBG1) ctrlSetText QUOTE(PATHTOF(images\button_pushedDown.paa));
+} else {
+    (_display displayCtrl IDC_BUTTONBG1) ctrlSetText QUOTE(PATHTOF(images\button_pushedUp.paa));
+};
+if (GVAR(currentApplicationPage) == APP_MODE_MAP) then {
+    (_display displayCtrl IDC_BUTTONBG2) ctrlSetText QUOTE(PATHTOF(images\button_pushedDown.paa));
+} else {
+    (_display displayCtrl IDC_BUTTONBG2) ctrlSetText QUOTE(PATHTOF(images\button_pushedUp.paa));
+};
+
+//Update the page now:
+[] call FUNC(updateDisplay);
diff --git a/addons/microdagr/functions/fnc_updateDisplay.sqf b/addons/microdagr/functions/fnc_updateDisplay.sqf
new file mode 100644
index 0000000000..af577049a0
--- /dev/null
+++ b/addons/microdagr/functions/fnc_updateDisplay.sqf
@@ -0,0 +1,198 @@
+/*
+ * Author: PabstMirror
+ * Updates the display (several times a second) called from the pfeh
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_microdagr_fnc_updateDisplay
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_display", "_waypoints", "_posString", "_eastingText", "_northingText", "_numASL", "_aboveSeaLevelText", "_compassAngleText", "_targetPosName", "_targetPosLocationASL", "_bearingText", "_rangeText", "_targetName", "_bearing", "_2dDistanceKm", "_SpeedText", "_playerPos2d", "_wpListBox", "_currentIndex", "_wpName", "_wpPos", "_settingListBox", "_yearString", "_monthSring", "_dayString"];
+
+disableSerialization;
+_display = displayNull;
+if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
+    _display = (uiNamespace getVariable [QGVAR(DialogDisplay), displayNull]);
+} else {
+    _display = (uiNamespace getVariable [QGVAR(RscTitleDisplay), displayNull]);
+};
+if (isNull _display) exitWith {ERROR("No Display");};
+
+(_display displayCtrl IDC_CLOCKTEXT) ctrlSetText ([daytime, "HH:MM"] call bis_fnc_timeToString);
+
+_waypoints = [] call FUNC(deviceGetWaypoints);
+
+switch (GVAR(currentApplicationPage)) do {
+case (APP_MODE_INFODISPLAY): {
+        //Easting/Northing:
+        _posString = mapGridPosition ACE_player;
+        _eastingText = "";
+        _northingText = "";
+        if (count _posString > 0) then {
+            _eastingText = (_posString select [0, ((count _posString)/2)]) + "e";
+            _northingText = (_posString select [(count _posString)/2, (count _posString - 1)]) + "n";
+        };
+        (_display displayCtrl IDC_MODEDISPLAY_EASTING) ctrlSetText _eastingText;
+        (_display displayCtrl IDC_MODEDISPLAY_NORTHING) ctrlSetText _northingText;
+
+        //Elevation:
+        _numASL = (GVAR(gpsPositionASL) select 2) + GVAR(mapAltitude);
+        _aboveSeaLevelText = [_numASL, 5, 0] call CBA_fnc_formatNumber;
+        _aboveSeaLevelText = if (_numASL > 0) then {"+" + _aboveSeaLevelText + " MSL"} else {_aboveSeaLevelText + " MSL"};
+        (_display displayCtrl IDC_MODEDISPLAY_ELEVATIONNUM) ctrlSetText _aboveSeaLevelText;
+
+        //Heading:
+        _compassAngleText = if (GVAR(settingUseMils)) then {
+            [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber;
+        } else {
+            ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "�" //degree symbol is in UTF-8
+        };
+        (_display displayCtrl IDC_MODEDISPLAY_HEADINGNUM) ctrlSetText _compassAngleText;
+
+        //Speed:
+        (_display displayCtrl IDC_MODEDISPLAY_SPEEDNUM) ctrlSetText format ["%1kph", (round (speed (vehicle ace_player)))];;
+
+
+        if (GVAR(currentWaypoint) == -1) then {
+            _yearString = (date select 0);
+            _monthSring = localize (["error","str_january","str_february","str_march","str_april","str_may","str_june","str_july","str_august","str_september","str_october","str_november","str_december"] select (date select 1));
+            _dayString = if ((date select 2) < 10) then {"0" + str (date select 2)} else {str (date select 2)};
+
+            (_display displayCtrl IDC_MODEDISPLAY_TIMEDISPLAYGREEN1) ctrlSetText format ["%1-%2-%3", _yearString, _monthSring, _dayString]; //"18-Feb-2010";
+            (_display displayCtrl IDC_MODEDISPLAY_TIMEDISPLAYGREEN2) ctrlSetText ([daytime, "HH:MM:SS"] call bis_fnc_timeToString);
+        } else {
+            _targetPosName = "";
+            _targetPosLocationASL = [];
+            _bearingText = "----";
+            _rangeText = "----";
+            _aboveSeaLevelText = "----";
+            _targetName = "----";
+
+            if (GVAR(currentWaypoint) == -2) then {
+                if (!(GVAR(rangeFinderPositionASL) isEqualTo [])) then {
+                    _targetPosName = format ["[%1]", (mapGridPosition GVAR(rangeFinderPositionASL))];
+                    _targetPosLocationASL = GVAR(rangeFinderPositionASL);
+                };
+            } else {
+                if (GVAR(currentWaypoint) > ((count _waypoints) - 1)) exitWith {ERROR("bounds");};
+                _targetPosName = (_waypoints select GVAR(currentWaypoint)) select 0;
+                _targetPosLocationASL = (_waypoints select GVAR(currentWaypoint)) select 1;
+            };
+
+            if (!(_targetPosLocationASL isEqualTo [])) then {
+                _bearing = [GVAR(gpsPositionASL), _targetPosLocationASL] call BIS_fnc_dirTo;
+                _bearingText = if (GVAR(settingUseMils)) then {
+                    [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber;
+                } else {
+                    ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "�" //degree symbol is in UTF-8
+                };
+                _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000;
+                _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)];
+                _numASL = (_targetPosLocationASL select 2) + GVAR(mapAltitude);
+                _aboveSeaLevelText = [_numASL, 5, 0] call CBA_fnc_formatNumber;
+                _aboveSeaLevelText = if (_numASL > 0) then {"+" + _aboveSeaLevelText + " MSL"} else {_aboveSeaLevelText + " MSL"};
+            };
+
+            (_display displayCtrl IDC_MODEDISPLAY_TRACKNUM) ctrlSetText _bearingText;
+            (_display displayCtrl IDC_MODEDISPLAY_TARGETRANGENUM) ctrlSetText _rangeText;
+            (_display displayCtrl IDC_MODEDISPLAY_TARGETELEVATIONNUM) ctrlSetText _aboveSeaLevelText;
+            (_display displayCtrl IDC_MODEDISPLAY_TARGETNAME) ctrlSetText _targetPosName;
+        };
+    };
+case (APP_MODE_COMPASS): {
+        //Heading:
+        _compassAngleText = if (GVAR(settingUseMils)) then {
+            [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber;
+        } else {
+            ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "�M" //degree symbol is in UTF-8
+        };
+        (_display displayCtrl IDC_MODECOMPASS_HEADING) ctrlSetText _compassAngleText;
+
+        //Speed:
+        _SpeedText = format ["%1kph", (round (speed (vehicle ace_player)))];;
+        (_display displayCtrl IDC_MODECOMPASS_SPEED) ctrlSetText _SpeedText;
+
+        if (GVAR(currentWaypoint) == -1) then {
+            (_display displayCtrl IDC_MODECOMPASS_BEARING) ctrlSetText "";
+            (_display displayCtrl IDC_MODECOMPASS_RANGE) ctrlSetText "";
+            (_display displayCtrl IDC_MODECOMPASS_TARGET) ctrlSetText "";
+        } else {
+            _playerPos2d = GVAR(gpsPositionASL) select [0,2];
+
+            _targetPosName = "";
+            _targetPosLocationASL = [];
+
+            if (GVAR(currentWaypoint) == -2) then {
+                if (!(GVAR(rangeFinderPositionASL) isEqualTo [])) then {
+                    _targetPosName = format ["[%1]", (mapGridPosition GVAR(rangeFinderPositionASL))];
+                    _targetPosLocationASL = GVAR(rangeFinderPositionASL);
+                };
+            } else {
+                if (GVAR(currentWaypoint) > ((count _waypoints - 1))) exitWith {ERROR("bounds");};
+                _targetPosName = (_waypoints select GVAR(currentWaypoint)) select 0;
+                _targetPosLocationASL = (_waypoints select GVAR(currentWaypoint)) select 1;
+            };
+
+            _bearing = "---";
+            _rangeText = "---";
+
+            if (!(_targetPosLocationASL isEqualTo [])) then {
+                _bearing = [GVAR(gpsPositionASL), _targetPosLocationASL] call BIS_fnc_dirTo;
+                _bearingText = if (GVAR(settingUseMils)) then {
+                    [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber;
+                } else {
+                    ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "�M" //degree symbol is in UTF-8
+                };
+                _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000;
+                _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)];
+            };
+
+            (_display displayCtrl IDC_MODECOMPASS_BEARING) ctrlSetText _bearingText;
+            (_display displayCtrl IDC_MODECOMPASS_RANGE) ctrlSetText _rangeText;
+            (_display displayCtrl IDC_MODECOMPASS_TARGET) ctrlSetText _targetPosName;
+        };
+    };
+
+case (APP_MODE_WAYPOINTS): {
+        _wpListBox = _display displayCtrl IDC_MODEWAYPOINTS_LISTOFWAYPOINTS;
+        _currentIndex = lbCurSel _wpListBox;
+
+        lbClear _wpListBox;
+        {
+            EXPLODE_2_PVT(_x,_wpName,_wpPos);
+            _wpListBox lbAdd _wpName;
+            _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_wpPos select [0,2])) / 1000;
+            _wpListBox lbSetTextRight [_forEachIndex, (format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)])];
+        } forEach _waypoints;
+
+        _currentIndex = (_currentIndex max 0) min (count _waypoints);
+        _wpListBox lbSetCurSel _currentIndex;
+    };
+
+case (APP_MODE_SETUP): {
+        _settingListBox = _display displayCtrl IDC_MODESETTINGS;
+        lbClear _settingListBox;
+
+        _settingListBox lbAdd (localize "STR_ACE_microdagr_settingUseMils");
+        if (GVAR(settingUseMils)) then {
+            _settingListBox lbSetTextRight [0, (localize "STR_ACE_microdagr_settingMils")];
+        } else {
+            _settingListBox lbSetTextRight [0, (localize "STR_ACE_microdagr_settingDegrees")];
+        };
+
+        _settingListBox lbAdd (localize "STR_ACE_microdagr_settingShowWP");
+        if (GVAR(settingShowAllWaypointsOnMap)) then {
+            _settingListBox lbSetTextRight [1, (localize "STR_ACE_microdagr_settingOn")];
+        } else {
+            _settingListBox lbSetTextRight [1, (localize "STR_ACE_microdagr_settingOff")];
+        };
+    };
+};
diff --git a/addons/microdagr/functions/script_component.hpp b/addons/microdagr/functions/script_component.hpp
new file mode 100644
index 0000000000..13fbbcf5fe
--- /dev/null
+++ b/addons/microdagr/functions/script_component.hpp
@@ -0,0 +1 @@
+#include "\z\ace\addons\microdagr\script_component.hpp"
\ No newline at end of file
diff --git a/addons/microdagr/gui.hpp b/addons/microdagr/gui.hpp
new file mode 100644
index 0000000000..2eeb99563c
--- /dev/null
+++ b/addons/microdagr/gui.hpp
@@ -0,0 +1,83 @@
+#define ST_LEFT           0x00
+#define ST_RIGHT          0x01
+#define ST_CENTER         0x02
+
+class RscActiveText;
+class RscText;
+class RscPicture;
+class RscMapControl {
+    class hospital;
+    class church;
+    class lighthouse;
+    class power;
+    class fuelstation;
+    class transmitter;
+};
+class RscMapControlEmpty;
+class RscControlsGroupNoScrollbars;
+class RscEdit;
+class RscButton;
+class RscListBox;
+
+
+class GVAR(RscActiveTextPicture): RscActiveText {
+    style = 48;
+    colorText[] = {1,1,1,1};
+    colorActive[] = {1,1,1,1};
+    color[] = {1,1,1,1};
+    color2[] = {1,1,1,1};
+    colorFocused[] = {1,1,1,1};
+    colorDisabled[] = {1,1,1,1};
+    colorBackground[] = {1,1,1,1};
+    colorBackground2[] = {1,1,1,1};
+    colorBackgroundFocused[] = {1,1,1,1};
+};
+
+class GVAR(RscText): RscText {
+    font = "EtelkaMonospacePro";
+    //Design note: I think less contrast in font color makes it look more natural and less "eye catching"
+    colorText[] = {0.75,0.75,0.75,1};
+};
+
+//Redfine Scaling for the Dialog
+#define X_PART(num) QUOTE((((60 - 25)/2) + (num)) * (safeZoneH / 64) + (safezoneX + (safezoneW - safeZoneH)/2))
+#define Y_PART(num) QUOTE((0 + (num)) * (safeZoneH / 36) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2))
+#define W_PART(num) QUOTE((num) * (safeZoneH / 64))
+#define H_PART(num) QUOTE((num) * (safeZoneH / 36))
+
+class GVAR(TheDialog) {
+    idd = -1;
+    movingEnable = 1;
+    duration = 9999999;
+    fadein = 0;
+    fadeout = 0;
+    onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(DialogDisplay)),_this select 0)];);
+    onUnload = QUOTE([] call FUNC(dialogClosedEH));
+
+    #include "gui_controls.hpp"
+};
+
+
+//Redfine Scaling for the RscTitle
+#define PROFILE_X (profilenamespace getvariable ['IGUI_GRID_GPS_X', 0])
+#define PROFILE_Y (profilenamespace getvariable ['IGUI_GRID_GPS_Y', 0])
+#define PROFILE_W (profilenamespace getvariable ['IGUI_GRID_GPS_W', 1])
+#define PROFILE_H ((16/9) * (profilenamespace getvariable ['IGUI_GRID_GPS_W', 1]))
+
+#define X_PART(num) QUOTE((num) / 25 * PROFILE_W + PROFILE_X)
+#define Y_PART(num) QUOTE((num) / 25 * PROFILE_H + PROFILE_Y)
+#define W_PART(num) QUOTE((num) / 25 * PROFILE_W)
+#define H_PART(num) QUOTE((num) / 25 * PROFILE_H)
+
+class RscTitles {
+    class GVAR(TheRscTitleDisplay) {
+        idd = -1;
+        movingEnable = 1;
+        duration = 9999999;
+        fadein = 0;
+        fadeout = 0;
+        onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(RscTitleDisplay)),_this select 0)];);
+
+        #include "gui_controls.hpp"
+    };
+};
diff --git a/addons/microdagr/gui_controls.hpp b/addons/microdagr/gui_controls.hpp
new file mode 100644
index 0000000000..99bf049977
--- /dev/null
+++ b/addons/microdagr/gui_controls.hpp
@@ -0,0 +1,769 @@
+class controlsBackground {
+    class BackgroundBlackScreen: GVAR(RscText) {
+        idc = -1;
+        x = X_PART(-1);
+        y = Y_PART(-1);
+        //Cover the "seams" and make it bigger
+        w = W_PART(27);
+        h = H_PART(27);
+        colorBackground[] = {0,0,0,1};
+    };
+    class StatusBarBS: RscPicture {
+        idc = -1;
+        text = QUOTE(PATHTOF(images\microDAGR_topBar.paa));
+        x = X_PART(0);
+        y = Y_PART(0);
+        w = W_PART(25);
+        h = H_PART(2);
+    };
+    class RangefinderConnectedIcon: RscPicture {
+        idc = IDC_RANGEFINDERCONNECTEDICON;
+        text = "\A3\ui_f\data\igui\rscingameui\rscoptics\laser_designator_iconLaserOn.paa";
+        x = X_PART(6.35);
+        y = Y_PART(0.1);
+        w = W_PART(2.7);
+        h = H_PART(1.8);
+    };
+    class ClockText: GVAR(RscText) {
+        idc = IDC_CLOCKTEXT;
+        style = ST_RIGHT;
+        // text = "12:00";
+        x = X_PART(0);
+        y = Y_PART(0.2);
+        w = W_PART(15);
+        h = H_PART(1.8);
+        sizeEx = H_PART(1.5);
+        colorText[] = {0,0.67,0.22,1};
+    };
+    class ClockText2: GVAR(RscText) {
+        idc = -1;
+        style = ST_LEFT;
+        text = "L";
+        x = X_PART(14.75);
+        y = Y_PART(0.2);
+        w = W_PART(2);
+        h = H_PART(1.8);
+        sizeEx = H_PART(1.5);
+    };
+    class MapPlain: RscMapControl {
+        idc = IDC_MAPPLAIN;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        onDraw = QUOTE(_this call FUNC(mapOnDrawEH));
+        onMouseButtonDblClick = QUOTE(_this call FUNC(mapDoubleTapEH));
+
+        scaleMin = 0.005;
+        scaleMax = 10;  //Lets the mini display zoom out far enough
+        drawObjects = 0;
+        text = "#(argb,8,8,3)color(1,1,1,1)";
+        maxSatelliteAlpha = 0;
+        alphaFadeStartScale = 100;
+        alphaFadeEndScale = 100;
+        colorSea[] = {0.467,0.631,0.851,0.25};
+        colorCountlinesWater[] = {0.491,0.577,0.702,0.3};
+        colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6};
+        colorGrid[] = {0,0,0,0.15};
+        colorGridMap[] = {0,0,0,0.2};
+
+        //Text sizes:
+        sizeExLabel = 0;
+        sizeExGrid = H_PART(0.5);
+        sizeExUnits = 0;
+        sizeExNames = H_PART(2); //Marker's Text
+        sizeExInfo = 0;
+        sizeExLevel = 0;
+        sizeEx = H_PART(1);
+
+        ptsPerSquareSea = 5;
+        ptsPerSquareTxt = 20;
+        ptsPerSquareRoad = 0.01;
+        ptsPerSquareObj = 2000; //don't show buildings
+        ptsPerSquareCLn = 100;
+        ptsPerSquareCost = 200;
+        ptsPerSquareFor = 9;
+        ptsPerSquareForEdge = 9;
+
+        showCountourInterval = 0;
+
+        //Copy style from ace_map's config.cpp:
+        colorTracks[] = {1.0,0.0,0.0,1};
+        colorTracksFill[] = {1.0,1.0,0.0,1};
+        colorRoads[] = {0.0,0.0,0.0,1};
+        colorRoadsFill[] = {1,1,0,1};
+        colorMainRoads[] = {0.0,0.0,0.0,1};
+        colorMainRoadsFill[] = {1,0.6,0.4,1};
+        colorRailWay[] = {0.8,0.2,0,1};
+
+        colorBackground[] = {0.929412, 0.929412, 0.929412, 1.0};
+        colorOutside[] = {0.929412, 0.929412, 0.929412, 1.0};
+        colorCountlines[] = {0.647059, 0.533333, 0.286275, 0.5};
+        colorMainCountlines[] = {0.858824, 0, 0,0.5};
+        colorForest[] = {0.6, 0.8, 0.2, 0.1};
+        colorForestBorder[] = {0,1,0,0.25};
+        colorLevels[] = {0.0, 0.0, 0.0, 0.5};
+        colorRocks[] = {0.50, 0.50, 0.50, 0};
+    };
+    class MapDetails: MapPlain {
+        idc = IDC_MAPDETAILS;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        onDraw = QUOTE(_this call FUNC(mapOnDrawEH));
+        onMouseButtonDblClick = QUOTE(_this call FUNC(mapDoubleTapEH));
+
+        // ptsPerSquareSea = 5;
+        // ptsPerSquareTxt = 20;
+        // ptsPerSquareRoad = 0.01;
+        ptsPerSquareObj = 9;
+        // ptsPerSquareCLn = 100;
+        // ptsPerSquareCost = 200;
+        // ptsPerSquareFor = 9;
+        // ptsPerSquareForEdge = 9;
+
+        maxSatelliteAlpha = 0.5;
+
+        colorRocks[] = {0.50, 0.50, 0.50, 0.50};
+
+        class hospital: Hospital {color[] = {0,0,0,0.25};};
+        class church: Church {color[] = {0,0,0,0.25};};
+        class lighthouse: Lighthouse {color[] = {0,0,0,0.25};};
+        class power: power {color[] = {0,0,0,0.25};};
+        class fuelstation: Fuelstation {color[] = {0,0,0,0.25};};
+        class transmitter: Transmitter {color[] =  {0,0,0,0.25};};
+
+    };
+    class MapCompass: RscMapControlEmpty {
+        idc = IDC_MAPCOMPASS;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        onDraw = QUOTE(_this call FUNC(mapOnDrawEH));
+
+        colorBackground[] = {0,0,0,1};
+        colorOutside[] = {0,0,0,1};
+        moveOnEdges = 0;
+    };
+};
+
+class controls {
+    class TopMenuClick: GVAR(RscActiveTextPicture) {
+        idc = -1;
+        text = "#(argb,8,8,3)color(0,0,0,0)";
+        x = X_PART(0);
+        y = Y_PART(0);
+        w = W_PART(25);
+        h = H_PART(2);
+        onbuttonclick = QUOTE([3] call FUNC(saveCurrentAndSetNewMode));
+    };
+
+    //Mode: Display
+    class ModeDisplay: RscControlsGroupNoScrollbars {
+        idc = IDC_MODEDISPLAY;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        class Controls {
+            class MGRSNew: GVAR(RscText) {
+                idc = -1;
+                text = "$STR_ACE_microdagr_controlMGRS";
+                x = W_PART(0.5);
+                y = H_PART(0);
+                w = W_PART(10);
+                h = H_PART(1);
+                sizeEx = H_PART(1);
+            };
+            class WGD: GVAR(RscText) {
+                idc = -1;
+                style = ST_RIGHT;
+                text = "$STR_ACE_microdagr_controlWGD";
+                x = W_PART(14.5);
+                y = H_PART(0);
+                w = W_PART(10);
+                h = H_PART(1);
+                sizeEx = H_PART(1);
+            };
+            class UTMGrid: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_UTMGRID;
+                // text = "15T XG";
+                x = W_PART(4.5);
+                y = H_PART(1.5);
+                w = W_PART(10);
+                h = H_PART(2);
+                sizeEx = H_PART(2);
+            };
+            class selfIcon: RscPicture {
+                idc = -1;
+                text = QUOTE(PATHTOF(images\icon_self.paa));
+                x = W_PART(0.5);
+                y = H_PART(2);
+                w = W_PART(4);
+                h = H_PART(3);
+            };
+            class Easting: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_EASTING;
+                // text = "11994e"; //--- ToDo: Localize;
+                style = ST_RIGHT;
+                x = W_PART(14.5);
+                y = H_PART(1.5);
+                w = W_PART(10);
+                h = H_PART(2);
+                sizeEx = H_PART(2);
+            };
+            class Northing: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_NORTHING;
+                // text = "11994n"; //--- ToDo: Localize;
+                style = ST_RIGHT;
+                x = W_PART(14.5);
+                y = H_PART(3.5);
+                w = W_PART(10);
+                h = H_PART(2);
+                sizeEx = H_PART(2);
+            };
+            class ElevationText: GVAR(RscText) {
+                idc = -1;
+                text = "$STR_A3_disp_editor_elevation";
+                x = W_PART(0.5);
+                y = H_PART(6);
+                w = W_PART(10);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.25);
+            };
+            class ElevationNum: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_ELEVATIONNUM;
+                // text = "+000232 MSL"; //--- ToDo: Localize;
+                style = ST_RIGHT;
+                x = W_PART(12);
+                y = H_PART(6);
+                w = W_PART(12.5);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+            };
+            class RscPicture_1201: RscPicture {
+                idc = -1;
+                text = "#(argb,8,8,3)color(1,1,1,0.75)";
+                x = W_PART(0.5);
+                y = H_PART(8.115);
+                w = W_PART(24);
+                h = H_PART(0.05);
+            };
+            class CompasIcon: RscPicture {
+                idc = -1;
+                text = QUOTE(PATHTOF(images\icon_infoCompass.paa));
+                x = W_PART(0.5);
+                y = H_PART(8.5);
+                w = W_PART(2);
+                h = H_PART(1.5);
+            };
+            class HeadingNum: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_HEADINGNUM;
+                // text = "097.2oM"; //--- ToDo: Localize;
+                x = W_PART(4);
+                y = H_PART(8.5);
+                w = W_PART(10);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+            };
+            class SpeedNum: GVAR(RscText) {
+                idc = IDC_MODEDISPLAY_SPEEDNUM;
+                // text = "34kph"; //--- ToDo: Localize;
+                style = ST_RIGHT;
+                x = W_PART(14.5);
+                y = H_PART(8.5);
+                w = W_PART(7.5);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+            };
+            class RscPicture_1204: RscPicture {
+                idc = -1;
+                text = "#(argb,8,8,3)color(1,1,1,0.75)";
+                x = W_PART(0.5);
+                y = H_PART(10.45);
+                w = W_PART(24);
+                h = H_PART(0.05);
+            };
+            class modePosTimeCG: RscControlsGroupNoScrollbars {
+                idc = IDC_MODEDISPLAY_MODEPOSTIMECG;
+                x = W_PART(0);
+                y = H_PART(10.5);
+                w = W_PART(25);
+                h = H_PART(8.5);
+                class controls {
+                    class TimeIcon: RscPicture {
+                        idc = -1;
+                        text = QUOTE(PATHTOF(images\icon_infoClock.paa));
+                        x = W_PART(0.5);
+                        y = H_PART(3.5);
+                        w = W_PART(2);
+                        h = H_PART(1.5);
+                    };
+                    class TimeDisplayGreen1: GVAR(RscText) {
+                        idc = IDC_MODEDISPLAY_TIMEDISPLAYGREEN1;
+                        x = W_PART(5);
+                        y = H_PART(2.75);
+                        w = W_PART(15);
+                        h = H_PART(1.5);
+                        style = ST_CENTER;
+                        sizeEx = H_PART(1.5);
+                        colorText[] = {0,0.67,0.22,1};
+                    };
+                    class TimeDisplayGreen2: TimeDisplayGreen1 {
+                        idc = IDC_MODEDISPLAY_TIMEDISPLAYGREEN2;
+                        y = H_PART(4.25);
+                    };
+                };
+            };
+            class modePosTargetCG: RscControlsGroupNoScrollbars {
+                idc = IDC_MODEDISPLAY_MODEPOSTARGETCG;
+                x = W_PART(0);
+                y = H_PART(10.5);
+                w = W_PART(25);
+                h = H_PART(8.5);
+                class controls {
+                    class TargetIcon: RscPicture {
+                        idc = IDC_MODEDISPLAY_TARGETICON;
+                        text = QUOTE(PATHTOF(images\icon_menuMark.paa));
+                        x = W_PART(0.5);
+                        y = H_PART(0.5);
+                        w = W_PART(2);
+                        h = H_PART(1.5);
+                    };
+                    class TrackNum: GVAR(RscText) {
+                        idc = IDC_MODEDISPLAY_TRACKNUM;
+                        // text = "097.2oM"; //--- ToDo: Localize;
+                        x = W_PART(4);
+                        y = H_PART(0.5);
+                        w = W_PART(10);
+                        h = H_PART(1.5);
+                        sizeEx = H_PART(1.5);
+                    };
+                    class TargetRangeText: GVAR(RscText) {
+                        idc = -1;
+                        text = "$STR_ACE_microdagr_controlRange";
+                        x = W_PART(0.5);
+                        y = H_PART(2);
+                        w = W_PART(7.5);
+                        h = H_PART(1.5);
+                        sizeEx = H_PART(1.25);
+                    };
+                    class TargetRangeNum: GVAR(RscText) {
+                        idc = IDC_MODEDISPLAY_TARGETRANGENUM;
+                        // text = "1250 m";
+                        style = ST_RIGHT;
+                        x = W_PART(14.5);
+                        y = H_PART(2);
+                        w = W_PART(10);
+                        h = H_PART(1.5);
+                        sizeEx = H_PART(1.5);
+                    };
+                    class TargetElevationText: GVAR(RscText) {
+                        idc = -1;
+                        text = "$STR_A3_disp_editor_elevation"; //--- ToDo: Localize;
+                        x = W_PART(0.5);
+                        y = H_PART(3.5);
+                        w = W_PART(10);
+                        h = H_PART(1.5);
+                        sizeEx = H_PART(1.25);
+                    };
+                    class TargetElevationNum: GVAR(RscText) {
+                        idc = IDC_MODEDISPLAY_TARGETELEVATIONNUM;
+                        // text = "+000232 MSL"; //--- ToDo: Localize;
+                        style = ST_RIGHT;
+                        x = W_PART(12);
+                        y = H_PART(3.5);
+                        w = W_PART(12.5);
+                        h = H_PART(1.5);
+                        sizeEx = H_PART(1.5);
+                    };
+                    class TargetName: GVAR(RscText) {
+                        idc = IDC_MODEDISPLAY_TARGETNAME;
+                        // text = "43243 33432"; //--- ToDo: Localize;
+                        style = ST_CENTER;
+                        x = W_PART(1);
+                        y = H_PART(5.5);
+                        w = W_PART(23);
+                        h = H_PART(2);
+                        sizeEx = H_PART(2);
+                    };
+                };
+            };
+        };
+    };
+
+    //Mode: Compass
+    class ModeCompass: RscControlsGroupNoScrollbars {
+        idc = IDC_MODECOMPASS;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        class Controls {
+
+            class CompassHeader: GVAR(RscText) {
+                idc = -1;
+                style = ST_CENTER;
+                text = "$STR_ACE_microdagr_compasDirection";
+                x = W_PART(0);
+                y = H_PART(0);
+                w = W_PART(25);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+            };
+            class CompassHeading: GVAR(RscText) {
+                idc = IDC_MODECOMPASS_HEADING;
+                style = ST_LEFT;
+                x = W_PART(0);
+                y = H_PART(1.5);
+                w = W_PART(25);
+                h = H_PART(1.25);
+                sizeEx = H_PART(1.25);
+                colorText[] = {0.533,0.769,0.76,1};
+            };
+            class CompassSpeed: CompassHeading {
+                idc = IDC_MODECOMPASS_SPEED;
+                style = ST_RIGHT;
+            };
+            class CompassBearing: CompassHeading {
+                idc = IDC_MODECOMPASS_BEARING;
+                y = H_PART(16.25);
+                style = ST_LEFT;
+                colorText[] = {1,0.564,0.564,1};
+            };
+            class CompassRange: CompassHeading {
+                idc = IDC_MODECOMPASS_RANGE;
+                y = H_PART(16.25);
+                style = ST_RIGHT;
+                colorText[] = {1,0.564,0.564,1};
+            };
+            class CompassTARGET: CompassHeader {
+                idc = IDC_MODECOMPASS_TARGET;
+                y = H_PART(17.5);
+            };
+        };
+    };
+
+
+    //Mode: Map
+    class mapTrackButton: GVAR(RscActiveTextPicture) {
+        onbuttonclick = QUOTE(['autotrack'] call FUNC(modeMapButtons));
+        idc = IDC_MODEMAP_MAPTRACKBUTTON;
+        text = QUOTE(PATHTOF(images\icon_mapTrack.paa));
+        x = X_PART(11);
+        y = Y_PART(18.75);
+        w = W_PART(3);
+        h = H_PART(2.25);
+    };
+    class mapZoomIn: mapTrackButton {
+        onbuttonclick = QUOTE(['zoomin'] call FUNC(modeMapButtons));
+        idc = IDC_MODEMAP_MAPZOOMIN;
+        text = QUOTE(PATHTOF(images\icon_mapPlus.paa));
+        color[] = {1,1,1,0.4};
+        x = X_PART(4);
+    };
+    class mapZoomOut: mapTrackButton {
+        onbuttonclick = QUOTE(['zoomout'] call FUNC(modeMapButtons));
+        idc = IDC_MODEMAP_MAPZOOMOUT;
+        text = QUOTE(PATHTOF(images\icon_mapMinus.paa));
+        color[] = {1,1,1,0.4};
+        x = X_PART(18);
+    };
+
+
+    // Mode: Menu
+    class ModeMenu: RscControlsGroupNoScrollbars {
+        idc = IDC_MODEMENU;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        class Controls {
+            class ButtonTL: GVAR(RscActiveTextPicture) {
+                idc = -1;
+                text = QUOTE(PATHTOF(images\icon_menuMark.paa));
+                x = W_PART(3);
+                y = H_PART(1.5);
+                w = W_PART(8);
+                h = H_PART(6);
+                onbuttonclick = QUOTE([4] call FUNC(saveCurrentAndSetNewMode));
+            };
+            class ButtonTR: ButtonTL {
+                text = QUOTE(PATHTOF(images\icon_menuWaypoints.paa));
+                x = W_PART(14);
+                y = H_PART(1.5);
+                onbuttonclick = QUOTE([5] call FUNC(saveCurrentAndSetNewMode));
+            };
+            class ButtonBL: ButtonTL {
+                text = "\A3\ui_f\data\igui\rscingameui\rscoptics\laser_designator_iconLaserOn.paa";
+                x = W_PART(3);
+                y = H_PART(10.5);
+                onbuttonclick = QUOTE(_this call FUNC(appMenuButtonConnectRangefinder));
+            };
+            class ButtonBR: ButtonTL {
+                text = QUOTE(PATHTOF(images\icon_menuSettings.paa));
+                x = W_PART(14);
+                y = H_PART(10.5);
+                onbuttonclick = QUOTE([6] call FUNC(saveCurrentAndSetNewMode));
+            };
+            class TextTL: GVAR(RscText) {
+                idc = -1;
+                style = ST_CENTER;
+                text = "$STR_ACE_microdagr_menuMark";
+                x = W_PART(0);
+                y = H_PART(7.5);
+                w = W_PART(14);
+                h = H_PART(1.2);
+                sizeEx = H_PART(1.2);
+            };
+            class TextTR: TextTL {
+                text = "$STR_ACE_microdagr_menuWaypoints";
+                x = W_PART(11);
+                y = H_PART(7.5);
+            };
+            class TextBL: TextTL {
+                text = "$STR_ACE_microdagr_menuConnectTo";
+                x = W_PART(0);
+                y = H_PART(16.5);
+            };
+            class TextBR: TextTL {
+                text = "$STR_ACE_microdagr_menuSettings";
+                x = W_PART(11);
+                y = H_PART(16.5);
+            };
+        };
+    };
+
+    // Mode: Mark
+    class ModeMark: RscControlsGroupNoScrollbars {
+        idc = IDC_MODEMARK;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        class Controls {
+            class InfoText: GVAR(RscText) {
+                idc = IDC_MODEMARK_HEADER;
+                x = W_PART(3);
+                y = H_PART(1);
+                w = W_PART(19);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+                colorText[] = {0.95,0.95,0.95,1};
+            };
+            class RscEdit_1400: RscEdit {
+                idc = IDC_MODEMARK_CORDSEDIT;
+                x = W_PART(3);
+                y = H_PART(2.75);
+                w = W_PART(17);
+                h = H_PART(1.5);
+                size = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+                colorText[] = {0.95,0.95,0.95,1};
+                font = "EtelkaMonospacePro";
+            };
+            class DeleteButton: GVAR(RscActiveTextPicture) {
+                idc = -1;
+                text = QUOTE(PATHTOF(images\icon_deleteButton.paa));
+                x = W_PART(20);
+                y = H_PART(2.75);
+                w = W_PART(2);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+                onbuttonclick = QUOTE(['del'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad1: RscButton {
+                idc = -1;
+                text = "1";
+                x = W_PART(3);
+                y = H_PART(5);
+                w = W_PART(6);
+                h = H_PART(3);
+                sizeEx = H_PART(3);
+                colorText[] = {0.95,0.95,0.95,1};
+                colorBackground[] = {0.3,0.3,0.3,1};
+                colorBackgroundDisabled[] = {0.3,0.3,0.3,1};
+                colorBackgroundActive[] = {0.3,0.3,0.3,1};
+                colorFocused[] = {0.3,0.3,0.3,1};
+                onbuttonclick = QUOTE(['1'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad2: Keypad1 {
+                text = "2";
+                x = W_PART(9.5);
+                onbuttonclick = QUOTE(['2'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad3: Keypad1 {
+                text = "3";
+                x = W_PART(16);
+                onbuttonclick = QUOTE(['3'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad4: Keypad1 {
+                text = "4";
+                x = W_PART(3);
+                y = H_PART(8.5);
+                onbuttonclick = QUOTE(['4'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad5: Keypad4 {
+                text = "5";
+                x = W_PART(9.5);
+                onbuttonclick = QUOTE(['5'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad6: Keypad4 {
+                text = "6";
+                x = W_PART(16);
+                onbuttonclick = QUOTE(['6'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad7: Keypad1 {
+                text = "7";
+                x = W_PART(3);
+                y = H_PART(12);
+                onbuttonclick = QUOTE(['7'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad8: Keypad7 {
+                text = "8";
+                x = W_PART(9.5);
+                onbuttonclick = QUOTE(['8'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad9: Keypad7 {
+                text = "9";
+                x = W_PART(16);
+                onbuttonclick = QUOTE(['9'] call FUNC(appMarkKeypadEntry));
+            };
+            class Keypad0: Keypad1 {
+                text = "0";
+                x = W_PART(3);
+                y = H_PART(15.5);
+                w = W_PART(12.5);
+                onbuttonclick = QUOTE(['0'] call FUNC(appMarkKeypadEntry));
+            };
+            class KeypadEnter: Keypad1 {
+                text = "OK";
+                x = W_PART(16);
+                y = H_PART(15.5);
+                onbuttonclick = QUOTE(['ok'] call FUNC(appMarkKeypadEntry));
+            };
+        };
+    };
+
+    // Mode: Waypoints
+    class ModeWaypoints: RscControlsGroupNoScrollbars {
+        idc = IDC_MODEWAYPOINTS;
+        x = X_PART(0);
+        y = Y_PART(2);
+        w = W_PART(25);
+        h = H_PART(19);
+        class Controls {
+            class ListOfWaypoints: RscListBox {
+                idc = IDC_MODEWAYPOINTS_LISTOFWAYPOINTS;
+                sizeEx = H_PART(1.5);
+                sizeEx2 = H_PART(1.5);
+                rowHeight = H_PART(1.75);
+                colorText[] = {0.75,0.75,0.75,1};
+                colorSelect[] = {0.75,0.75,0.75,1};
+                colorSelect2[] = {0.75,0.75,0.75,1};
+                colorBackground[] = {0,0,0,1};
+                colorSelectBackground[] = {0.3,0.3,0.3,1};
+                colorSelectBackground2[] = {0.3,0.3,0.3,1};
+
+                itemSpacing = 0.001;
+                x = W_PART(0.2);
+                y = H_PART(0.5);
+                w = W_PART(24.6);
+                h = H_PART(16.5);
+            };
+
+            class ButtonSetWP: RscButton {
+                idc = -1;
+                text = "$STR_ACE_microdagr_waypointsSet";
+                x = W_PART(1);
+                y = H_PART(17);
+                w = W_PART(7);
+                h = H_PART(1.5);
+                sizeEx = H_PART(1.5);
+                font = "EtelkaMonospacePro";
+                colorText[] = {0.95,0.95,0.95,1};
+                colorBackground[] = {0.3,0.3,0.3,1};
+                colorBackgroundDisabled[] = {0.3,0.3,0.3,1};
+                colorBackgroundActive[] = {0.3,0.3,0.3,1};
+                colorFocused[] = {0.3,0.3,0.3,1};
+                onbuttonclick = QUOTE(_this call FUNC(appWaypointsButtonSetWP));
+            };
+            class ButtonAdd: ButtonSetWP {
+                text = "$STR_ACE_microdagr_waypointsAdd";
+                x = W_PART(9);
+                onbuttonclick = QUOTE([APP_MODE_MARK] call FUNC(saveCurrentAndSetNewMode));
+            };
+            class ButtonDelete: ButtonSetWP {
+                text = "$STR_ACE_microdagr_waypointsDelete";
+                x = W_PART(17);
+                onbuttonclick = QUOTE(_this call FUNC(appWaypointsButtonDeleteWP));
+            };
+        };
+    };
+
+    class SettingsMenu: RscListBox {
+        idc = IDC_MODESETTINGS;
+        x = X_PART(0.2);
+        y = Y_PART(2);
+        w = W_PART(24.6);
+        h = H_PART(19);
+        onLBDblClick = QUOTE(_this call FUNC(appSettingsLBClick));
+        sizeEx = H_PART(1.5);
+        sizeEx2 = H_PART(1.5);
+        rowHeight = H_PART(1.75);
+        itemSpacing = 0.001;
+        colorText[] = {0.75,0.75,0.75,1};
+        colorSelect[] = {0.75,0.75,0.75,1};
+        colorSelect2[] = {0.75,0.75,0.75,1};
+        colorBackground[] = {0.05,0.05,0.05,1};
+        colorSelectBackground[] = {0.05,0.05,0.05,1};
+        colorSelectBackground2[] = {0.05,0.05,0.05,1};
+    };
+
+    class ButtonBG0: RscPicture {
+        idc = IDC_BUTTONBG0;
+        text = QUOTE(PATHTOF(images\button_pushedDown.paa));
+        x = X_PART(0 * (25/3));
+        y = Y_PART(21);
+        w = W_PART((25/3));
+        h = H_PART(4);
+    };
+    class ButtonBG1: ButtonBG0 {
+        idc = IDC_BUTTONBG1;
+        x = X_PART(1 * (25/3));
+    };
+    class ButtonBG2: ButtonBG0 {
+        idc = IDC_BUTTONBG2;
+        x = X_PART(2 * (25/3));
+    };
+    class ButtonIcon0: GVAR(RscActiveTextPicture) {
+        idc = -1;
+        text = QUOTE(PATHTOF(images\icon_info.paa));
+        x = X_PART(0 * (25/3));
+        y = Y_PART(21);
+        w = W_PART((25/3));
+        h = H_PART(4);
+        onbuttonclick = QUOTE([APP_MODE_INFODISPLAY] call FUNC(saveCurrentAndSetNewMode));
+    };
+    class ButtonIcon1: ButtonIcon0 {
+        text = QUOTE(PATHTOF(images\icon_compass.paa));
+        x = X_PART(1 * (25/3));
+        onbuttonclick = QUOTE([APP_MODE_COMPASS] call FUNC(saveCurrentAndSetNewMode));
+    };
+    class ButtonIcon2: ButtonIcon0 {
+        text = QUOTE(PATHTOF(images\icon_map.paa));
+        x = X_PART(2 * (25/3));
+        onbuttonclick = QUOTE([APP_MODE_MAP] call FUNC(saveCurrentAndSetNewMode));
+    };
+    //At the end: The Big Shell overlay
+    class MicroDagrShell: RscPicture {
+        idc = IDC_MICRODAGRSHELL;
+        text = QUOTE(PATHTOF(images\microDAGR_shellPicture.paa));
+        x = X_PART(-14.77);
+        y = Y_PART(-5.875);
+        w = W_PART(53.62);
+        h = H_PART(39.9);
+    };
+};
diff --git a/addons/microdagr/images/button_pushedDown.paa b/addons/microdagr/images/button_pushedDown.paa
new file mode 100644
index 0000000000..fc519a3235
Binary files /dev/null and b/addons/microdagr/images/button_pushedDown.paa differ
diff --git a/addons/microdagr/images/button_pushedUp.paa b/addons/microdagr/images/button_pushedUp.paa
new file mode 100644
index 0000000000..5aa18986be
Binary files /dev/null and b/addons/microdagr/images/button_pushedUp.paa differ
diff --git a/addons/microdagr/images/compass_needle.paa b/addons/microdagr/images/compass_needle.paa
new file mode 100644
index 0000000000..048518c8ad
Binary files /dev/null and b/addons/microdagr/images/compass_needle.paa differ
diff --git a/addons/microdagr/images/compass_starInverted.paa b/addons/microdagr/images/compass_starInverted.paa
new file mode 100644
index 0000000000..cc911848e3
Binary files /dev/null and b/addons/microdagr/images/compass_starInverted.paa differ
diff --git a/addons/microdagr/images/icon_compass.paa b/addons/microdagr/images/icon_compass.paa
new file mode 100644
index 0000000000..777eaffde4
Binary files /dev/null and b/addons/microdagr/images/icon_compass.paa differ
diff --git a/addons/microdagr/images/icon_deleteButton.paa b/addons/microdagr/images/icon_deleteButton.paa
new file mode 100644
index 0000000000..a1af618ea7
Binary files /dev/null and b/addons/microdagr/images/icon_deleteButton.paa differ
diff --git a/addons/microdagr/images/icon_info.paa b/addons/microdagr/images/icon_info.paa
new file mode 100644
index 0000000000..5dc94a444c
Binary files /dev/null and b/addons/microdagr/images/icon_info.paa differ
diff --git a/addons/microdagr/images/icon_infoClock.paa b/addons/microdagr/images/icon_infoClock.paa
new file mode 100644
index 0000000000..292cf29afb
Binary files /dev/null and b/addons/microdagr/images/icon_infoClock.paa differ
diff --git a/addons/microdagr/images/icon_infoCompass.paa b/addons/microdagr/images/icon_infoCompass.paa
new file mode 100644
index 0000000000..8390a24509
Binary files /dev/null and b/addons/microdagr/images/icon_infoCompass.paa differ
diff --git a/addons/microdagr/images/icon_map.paa b/addons/microdagr/images/icon_map.paa
new file mode 100644
index 0000000000..52c3931c68
Binary files /dev/null and b/addons/microdagr/images/icon_map.paa differ
diff --git a/addons/microdagr/images/icon_mapMinus.paa b/addons/microdagr/images/icon_mapMinus.paa
new file mode 100644
index 0000000000..8c9be4fb7d
Binary files /dev/null and b/addons/microdagr/images/icon_mapMinus.paa differ
diff --git a/addons/microdagr/images/icon_mapPlus.paa b/addons/microdagr/images/icon_mapPlus.paa
new file mode 100644
index 0000000000..5272bce099
Binary files /dev/null and b/addons/microdagr/images/icon_mapPlus.paa differ
diff --git a/addons/microdagr/images/icon_mapTrack.paa b/addons/microdagr/images/icon_mapTrack.paa
new file mode 100644
index 0000000000..f16ccbfe86
Binary files /dev/null and b/addons/microdagr/images/icon_mapTrack.paa differ
diff --git a/addons/microdagr/images/icon_mapWaypoints.paa b/addons/microdagr/images/icon_mapWaypoints.paa
new file mode 100644
index 0000000000..89f167f4c1
Binary files /dev/null and b/addons/microdagr/images/icon_mapWaypoints.paa differ
diff --git a/addons/microdagr/images/icon_menuMark.paa b/addons/microdagr/images/icon_menuMark.paa
new file mode 100644
index 0000000000..2c77aac04b
Binary files /dev/null and b/addons/microdagr/images/icon_menuMark.paa differ
diff --git a/addons/microdagr/images/icon_menuSettings.paa b/addons/microdagr/images/icon_menuSettings.paa
new file mode 100644
index 0000000000..cfb340247e
Binary files /dev/null and b/addons/microdagr/images/icon_menuSettings.paa differ
diff --git a/addons/microdagr/images/icon_menuWaypoints.paa b/addons/microdagr/images/icon_menuWaypoints.paa
new file mode 100644
index 0000000000..74ca3a59c1
Binary files /dev/null and b/addons/microdagr/images/icon_menuWaypoints.paa differ
diff --git a/addons/microdagr/images/icon_self.paa b/addons/microdagr/images/icon_self.paa
new file mode 100644
index 0000000000..79c41eaa69
Binary files /dev/null and b/addons/microdagr/images/icon_self.paa differ
diff --git a/addons/microdagr/images/microDAGR_item.paa b/addons/microdagr/images/microDAGR_item.paa
new file mode 100644
index 0000000000..ce6336c8a6
Binary files /dev/null and b/addons/microdagr/images/microDAGR_item.paa differ
diff --git a/addons/microdagr/images/microDAGR_shellPicture.paa b/addons/microdagr/images/microDAGR_shellPicture.paa
new file mode 100644
index 0000000000..93a14c3c11
Binary files /dev/null and b/addons/microdagr/images/microDAGR_shellPicture.paa differ
diff --git a/addons/microdagr/images/microDAGR_topBar.paa b/addons/microdagr/images/microDAGR_topBar.paa
new file mode 100644
index 0000000000..c4c28307f0
Binary files /dev/null and b/addons/microdagr/images/microDAGR_topBar.paa differ
diff --git a/addons/microdagr/readme.md b/addons/microdagr/readme.md
new file mode 100644
index 0000000000..f2dc25a656
--- /dev/null
+++ b/addons/microdagr/readme.md
@@ -0,0 +1,24 @@
+ace_microdagr
+===============
+
+Adds a microDAGR infentry GPS device.  
+Press home to open.  Then home again to toggle an interactive version. Press CTRL+Home to close.
+Info/Compass/Minimap modes are selectable by the bottom buttons.  Tap the top bar to open the menu and access Mark/Waypoints/Connect To/Settings modes.
+Tap the minimap button again to toggle map modes (if available).
+Enter waypoints from the menu or double tapping on the minimap.
+Can interface with the `ace_vector`. Hold Azimuth+Range and release (see page 14 of vector's manual)
+
+#### Items Added:
+
+`ACE_microDAGR`
+
+## For Mission Makers:
+
+#### Modules:
+* MicroDAGR Map Fill - Controls the amount of map data avaialbe for the minimap.  Can limit to just roads/topographical or disable entirely.
+
+## Maintainers
+
+The people responsible for merging changes to this component or answering potential questions.
+
+- [PabstMirror](https://github.com/PabstMirror)
diff --git a/addons/microdagr/script_component.hpp b/addons/microdagr/script_component.hpp
new file mode 100644
index 0000000000..72c5c125bc
--- /dev/null
+++ b/addons/microdagr/script_component.hpp
@@ -0,0 +1,83 @@
+#define COMPONENT microdagr
+#include "\z\ace\addons\main\script_mod.hpp"
+
+#ifdef DEBUG_ENABLED_MICRODAGR
+    #define DEBUG_MODE_FULL
+#endif
+
+#ifdef DEBUG_SETTINGS_MICRODAGR
+    #define DEBUG_SETTINGS DEBUG_SETTINGS_MICRODAGR
+#endif
+
+#include "\z\ace\addons\main\script_macros.hpp"
+
+#define DUMMY_POS [-1,-1]
+#define DUMMY_ZOOM 0.1
+
+#define MAP_DETAIL_NONE 0
+#define MAP_DETAIL_TOPOROADS 1
+#define MAP_DETAIL_SAT 2
+
+#define APP_MODE_NULL -1
+#define APP_MODE_INFODISPLAY 0
+#define APP_MODE_COMPASS 1
+#define APP_MODE_MAP 2
+#define APP_MODE_MENU 3
+#define APP_MODE_MARK 4
+#define APP_MODE_WAYPOINTS 5
+#define APP_MODE_SETUP 6
+
+#define DISPLAY_MODE_CLOSED 0
+#define DISPLAY_MODE_DISPLAY 1
+#define DISPLAY_MODE_DIALOG 2
+#define DISPLAY_MODE_HIDDEN 3
+
+#define IDC_RANGEFINDERCONNECTEDICON 77700
+#define IDC_CLOCKTEXT 77701
+#define IDC_MAPPLAIN 77702
+#define IDC_MAPDETAILS 77703
+#define IDC_MAPCOMPASS 77704
+
+#define IDC_MODEDISPLAY 144000
+#define IDC_MODEDISPLAY_UTMGRID 144001
+#define IDC_MODEDISPLAY_EASTING 144002
+#define IDC_MODEDISPLAY_NORTHING 144003
+#define IDC_MODEDISPLAY_ELEVATIONNUM 144004
+#define IDC_MODEDISPLAY_HEADINGNUM 144005
+#define IDC_MODEDISPLAY_SPEEDNUM 144006
+#define IDC_MODEDISPLAY_MODEPOSTIMECG 144010
+#define IDC_MODEDISPLAY_TIMEDISPLAYGREEN1 144011
+#define IDC_MODEDISPLAY_TIMEDISPLAYGREEN2 144012
+#define IDC_MODEDISPLAY_MODEPOSTARGETCG 144020
+#define IDC_MODEDISPLAY_TARGETICON 144021
+#define IDC_MODEDISPLAY_TRACKNUM 144022
+#define IDC_MODEDISPLAY_TARGETRANGENUM 144023
+#define IDC_MODEDISPLAY_TARGETELEVATIONNUM 144024
+#define IDC_MODEDISPLAY_TARGETNAME 144025
+
+#define IDC_MODECOMPASS 144100
+#define IDC_MODECOMPASS_HEADING 144110
+#define IDC_MODECOMPASS_SPEED 144111
+#define IDC_MODECOMPASS_BEARING 144112
+#define IDC_MODECOMPASS_RANGE 144113
+#define IDC_MODECOMPASS_TARGET 144114
+
+#define IDC_MODEMAP_MAPTRACKBUTTON 144211
+#define IDC_MODEMAP_MAPZOOMIN 144212
+#define IDC_MODEMAP_MAPZOOMOUT 144213
+
+#define IDC_MODEMENU 144300
+
+#define IDC_MODEMARK 144400
+#define IDC_MODEMARK_HEADER 144411
+#define IDC_MODEMARK_CORDSEDIT 144412
+
+#define IDC_MODEWAYPOINTS 144500
+#define IDC_MODEWAYPOINTS_LISTOFWAYPOINTS 144501
+
+#define IDC_MODESETTINGS 144600
+
+#define IDC_BUTTONBG0 77710
+#define IDC_BUTTONBG1 77711
+#define IDC_BUTTONBG2 77712
+#define IDC_MICRODAGRSHELL 77713
diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml
new file mode 100644
index 0000000000..99c4495732
--- /dev/null
+++ b/addons/microdagr/stringtable.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Edited with tabler - 2015-03-10 -->
+<Project name="ACE">
+  <Package name="microdagr">
+    <Key ID="STR_ACE_microdagr_itemName">
+      <English>MicroDAGR GPS</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_itemDescription">
+      <English>MicroDAGR advanced GPS receiver</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingUseMils">
+      <English>Angular Unit:</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingMils">
+      <English>Mils</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingShowWP">
+      <English>Show Waypoints On Map:</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingDegrees">
+      <English>Degrees</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingOn">
+      <English>On</English>
+      <Czech>Zapnuto</Czech>
+      <French>Oui</French>
+      <German>Ein</German>
+      <Italian>Sì</Italian>
+      <Polish>Wł.</Polish>
+      <Portuguese>Ativar</Portuguese>
+      <Russian>Вкл.</Russian>
+      <Spanish>Sí</Spanish>
+    </Key>
+    <Key ID="STR_ACE_microdagr_settingOff">
+      <English>Off</English>
+      <Czech>Vypnuto</Czech>
+      <French>Non</French>
+      <German>Aus</German>
+      <Italian>No</Italian>
+      <Polish>Wył.</Polish>
+      <Portuguese>Desativar</Portuguese>
+      <Russian>Выкл.</Russian>
+      <Spanish>No</Spanish>
+    </Key>
+    <Key ID="STR_ACE_microdagr_openUnit">
+      <English>Open MicroDAGR</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_closeUnit">
+      <English>Close MicroDAGR</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_wpEnterCords">
+      <English>Enter Grid Cords:</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_wpEnterName">
+      <English>Name of [%1]</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_controlMGRS">
+      <English>MGRS-New</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_controlWGD">
+      <English>WGD</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_controlRange">
+      <English>Range:</English>
+      <German>Reichweite:</German>
+    </Key>
+    <Key ID="STR_ACE_microdagr_compasDirection">
+      <English>Compass Direction</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_menuMark">
+      <English>Mark</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_menuWaypoints">
+      <English>Waypoints</English>
+      <German>Wegpunkte</German>
+    </Key>
+    <Key ID="STR_ACE_microdagr_menuConnectTo">
+      <English>Connect To</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_menuSettings">
+      <English>Settings</English>
+      <German>Einstellungen</German>
+      <Spanish>Configuración</Spanish>
+    </Key>
+    <Key ID="STR_ACE_microdagr_waypointsSet">
+      <English>SetWP</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_waypointsAdd">
+      <English>Add</English>
+    </Key>
+    <Key ID="STR_ACE_microdagr_waypointsDelete">
+        <English>Delete</English>
+        <Czech>Smazat</Czech>
+        <French>Supprimer</French>
+        <German>Löschen</German>
+        <Italian>Elimina</Italian>
+        <Polish>Usuń</Polish>
+        <Portuguese>Excluir</Portuguese>
+        <Russian>Удалить</Russian>
+        <Spanish>Suprimir</Spanish>
+    </Key>
+  </Package>
+</Project>
\ No newline at end of file
diff --git a/addons/vector/XEH_preInit.sqf b/addons/vector/XEH_preInit.sqf
index a0a20d3315..21ca573118 100644
--- a/addons/vector/XEH_preInit.sqf
+++ b/addons/vector/XEH_preInit.sqf
@@ -6,6 +6,7 @@ PREP(clearDisplay);
 PREP(convertToTexturesDegree);
 PREP(convertToTexturesDistance);
 PREP(convertToTexturesFOS);
+PREP(dataTransfer);
 PREP(showCenter);
 PREP(showP1);
 PREP(onKeyDown);
diff --git a/addons/vector/functions/fnc_dataTransfer.sqf b/addons/vector/functions/fnc_dataTransfer.sqf
new file mode 100644
index 0000000000..25403b82ee
--- /dev/null
+++ b/addons/vector/functions/fnc_dataTransfer.sqf
@@ -0,0 +1,25 @@
+/*
+ * Author: PabstMirror
+ * Data transfer over a connected cable. Based on page 14 of pdf.
+ *
+ * Arguments:
+ * Nothing
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [] call ace_vector_fnc_dataTransfer
+ *
+ * Public: No
+ */
+#include "script_component.hpp"
+
+private ["_distance", "_direction", "_azimuth", "_inclination"];
+
+_distance = call FUNC(getDistance);
+_direction = call FUNC(getDirection);
+_azimuth = _direction select 0;
+_inclination = _direction select 1;
+//Send Data to connected GPS
+["RangerfinderData", [_distance, _azimuth, _inclination]] call EFUNC(common,localEvent);
\ No newline at end of file
diff --git a/addons/vector/functions/fnc_onKeyHold.sqf b/addons/vector/functions/fnc_onKeyHold.sqf
index 57e76d57ea..aca31d95a5 100644
--- a/addons/vector/functions/fnc_onKeyHold.sqf
+++ b/addons/vector/functions/fnc_onKeyHold.sqf
@@ -74,6 +74,7 @@ switch (_this select 0) do {
             if (_isReady) then {
                 call FUNC(showDistance);
                 [false] call FUNC(showCenter);
+                [] call FUNC(dataTransfer);
             };
 
             [_this select 1] call CBA_fnc_removePerFrameHandler;
diff --git a/extras/assets/icons/icon_microDAGR.png b/extras/assets/icons/icon_microDAGR.png
new file mode 100644
index 0000000000..47bb75a146
Binary files /dev/null and b/extras/assets/icons/icon_microDAGR.png differ