diff --git a/SQF (arma)/3D%20Pythagorus.Altis/description.ext b/SQF (arma)/3D%20Pythagorus.Altis/description.ext
new file mode 100644
index 0000000..db9d721
--- /dev/null
+++ b/SQF (arma)/3D%20Pythagorus.Altis/description.ext
@@ -0,0 +1,3 @@
+class cfgFunctions {
+ #include "functions.hpp"
+};
diff --git a/SQF (arma)/3D%20Pythagorus.Altis/functions.hpp b/SQF (arma)/3D%20Pythagorus.Altis/functions.hpp
new file mode 100644
index 0000000..1c4819d
--- /dev/null
+++ b/SQF (arma)/3D%20Pythagorus.Altis/functions.hpp
@@ -0,0 +1,7 @@
+class RR {
+ tag = "RR";
+ class functions {
+ file = "functions";
+ class distance {};
+ };
+};
diff --git a/SQF (arma)/3D%20Pythagorus.Altis/functions/fn_distance.sqf b/SQF (arma)/3D%20Pythagorus.Altis/functions/fn_distance.sqf
new file mode 100644
index 0000000..d581089
--- /dev/null
+++ b/SQF (arma)/3D%20Pythagorus.Altis/functions/fn_distance.sqf
@@ -0,0 +1,21 @@
+/**
+ * Function to calculate distance between 2 sets of coordinates
+ *
+ * Expects the first two args to be an array of coordinates (x, y, z)
+ * The third arg is expected to be a flag for 3D calculation
+ * If no flag is provided it is assumed 2D.
+ *
+ * @param {array} point a
+ * @param {array} point b
+ * @param [bool=false]
+ */
+
+params [
+ ["_a", [0, 0, 0]],
+ ["_b", [0, 0, 0]],
+ ["_3D", false, [false]]
+];
+
+hint "Called!";
+
+_x = 10;
diff --git a/SQF (arma)/3D%20Pythagorus.Altis/init.sqf b/SQF (arma)/3D%20Pythagorus.Altis/init.sqf
new file mode 100644
index 0000000..1991498
--- /dev/null
+++ b/SQF (arma)/3D%20Pythagorus.Altis/init.sqf
@@ -0,0 +1,4 @@
+
+private _lol = [] call RR_fnc_distance;
+
+hint _lol;
diff --git a/SQF (arma)/3D%20Pythagorus.Altis/mission.sqm b/SQF (arma)/3D%20Pythagorus.Altis/mission.sqm
new file mode 100644
index 0000000..bd4309d
Binary files /dev/null and b/SQF (arma)/3D%20Pythagorus.Altis/mission.sqm differ
diff --git a/SQF (arma)/Car%20Workshop.Altis/.adc/custom_controls.xml b/SQF (arma)/Car%20Workshop.Altis/.adc/custom_controls.xml
new file mode 100644
index 0000000..89a4db9
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/.adc/custom_controls.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml b/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml
new file mode 100644
index 0000000..e1de470
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml.backup b/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml.backup
new file mode 100644
index 0000000..e1de470
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/.adc/resources/global-resources.xml.backup
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/SQF (arma)/Car%20Workshop.Altis/change_colour.sqf b/SQF (arma)/Car%20Workshop.Altis/change_colour.sqf
new file mode 100644
index 0000000..33bc0f9
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/change_colour.sqf
@@ -0,0 +1,6 @@
+private _r = (sliderPosition 100) / 50;
+private _g = (sliderPosition 101) / 50;
+private _b = (sliderPosition 102) / 50;
+
+// This is soooo broken, the colours flash n shit
+Car setObjectTextureGlobal [ 0, format [ "#(rgb,8,8,3)color(%1,%2,%3,1)", _r, _g, _b ] ]
diff --git a/SQF (arma)/Car%20Workshop.Altis/description.ext b/SQF (arma)/Car%20Workshop.Altis/description.ext
new file mode 100644
index 0000000..be31b4b
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/description.ext
@@ -0,0 +1,137 @@
+class RscTitles;
+class MyDialog
+{
+ idd = 2;
+
+ class ControlsBackground
+ {
+ class Back
+ {
+ type = 0;
+ idc = -1;
+ x = safeZoneX + safeZoneW * 0.29375;
+ y = safeZoneY + safeZoneH * 0.3712963;
+ w = safeZoneW * 0.12395834;
+ h = safeZoneH * 0.32685186;
+ style = 0;
+ text = "";
+ colorBackground[] = {0,0,0,0.7};
+ colorText[] = {1,1,1,1};
+ font = "PuristaMedium";
+ sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
+ shadow = 0;
+
+ };
+
+ };
+ class Controls
+ {
+
+ class SliderR
+ {
+ type = 43;
+ idc = 100;
+ x = safeZoneX + safeZoneW * 0.308125;
+ y = safeZoneY + safeZoneH * 0.60777778;
+ w = safeZoneW * 0.099375;
+ h = safeZoneH * 0.01555556;
+ style = 1024;
+ arrowEmpty = "\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa";
+ arrowFull = "\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa";
+ border = "\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa";
+ color[] = {0.6,0,0,1};
+ colorActive[] = {1,1,1,1};
+ thumb = "\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa";
+ tooltipColorShade[] = {0.6,0,0,1};
+
+ onSliderPosChanged = "hint format [ '%1', _this ]; [] execVM 'change_colour.sqf'; uisleep 0.2;"
+ };
+
+ class SliderG
+ {
+ type = 43;
+ idc = 101;
+ x = safeZoneX + safeZoneW * 0.308125;
+ y = safeZoneY + safeZoneH * 0.63666667;
+ w = safeZoneW * 0.099375;
+ h = safeZoneH * 0.01555556;
+ style = 1024;
+ arrowEmpty = "\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa";
+ arrowFull = "\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa";
+ border = "\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa";
+ color[] = {0,0.2,0,1};
+ colorActive[] = {1,1,1,1};
+ thumb = "\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa";
+
+ onSliderPosChanged = "hint format [ '%1', _this ]; [] execVM 'change_colour.sqf'; uisleep 0.2;"
+ };
+
+ class SliderB
+ {
+ type = 43;
+ idc = 102;
+ x = safeZoneX + safeZoneW * 0.308125;
+ y = safeZoneY + safeZoneH * 0.66666667;
+ w = safeZoneW * 0.099375;
+ h = safeZoneH * 0.01444445;
+ style = 1024;
+ arrowEmpty = "\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa";
+ arrowFull = "\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa";
+ border = "\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa";
+ color[] = {0.102,0.2,0.6,1};
+ colorActive[] = {1,1,1,1};
+ thumb = "\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa";
+
+ onSliderPosChanged = "hint format [ '%1', _this ]; [] execVM 'change_colour.sqf'; uisleep 0.2;"
+ };
+
+ class Button1
+ {
+ type = 1;
+ idc = -1;
+ x = safeZoneX + safeZoneW * 0.29427084;
+ y = safeZoneY + safeZoneH * 0.70740741;
+ w = safeZoneW * 0.04635417;
+ h = safeZoneH * 0.01388889;
+
+
+ style = 0;
+ action = "closeDialog 2;";
+ text = "Exit";
+ borderSize = 0;
+ colorBackground[] = {0.302,0.502,0.302,1};
+ colorText[] = {1,1,1,1};
+ font = "PuristaMedium";
+ sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
+ soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0};
+ soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0};
+ soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0};
+ soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0};
+ };
+
+ class button2
+ {
+ type = 1;
+ idc = -1;
+ x = safeZoneX + safeZoneW * 0.37291667;
+ y = safeZoneY + safeZoneH * 0.70648149;
+ w = safeZoneW * 0.04635417;
+ h = safeZoneH * 0.01296297;
+
+
+ style = 0;
+ action = "hint 'Confirmed'; closeDialog 2;";
+ text = "Confirm";
+ colorBackground[] = {0.302,0.502,0.302,1};
+ colorText[] = {1,1,1,1};
+ font = "PuristaMedium";
+ sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1);
+ soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1.0};
+ soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1.0};
+ soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1.0};
+ soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1.0};
+ };
+
+ };
+
+};
diff --git a/SQF (arma)/Car%20Workshop.Altis/get_textures.sqf b/SQF (arma)/Car%20Workshop.Altis/get_textures.sqf
new file mode 100644
index 0000000..e69de29
diff --git a/SQF (arma)/Car%20Workshop.Altis/mission.sqm b/SQF (arma)/Car%20Workshop.Altis/mission.sqm
new file mode 100644
index 0000000..1d2f770
Binary files /dev/null and b/SQF (arma)/Car%20Workshop.Altis/mission.sqm differ
diff --git a/SQF (arma)/Car%20Workshop.Altis/untitled 2019-4-14 9-59pm/project.xml b/SQF (arma)/Car%20Workshop.Altis/untitled 2019-4-14 9-59pm/project.xml
new file mode 100644
index 0000000..bacecd2
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/untitled 2019-4-14 9-59pm/project.xml
@@ -0,0 +1 @@
+-10-1safeZoneX + safeZoneW * 0.29375safeZoneY + safeZoneH * 0.37111112safeZoneW * 0.12375safeZoneH * 0.3266666700000.51591111PuristaMedium(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)01-1safeZoneX + safeZoneW * 0.29427084safeZoneY + safeZoneH * 0.70740741safeZoneW * 0.04635417safeZoneH * 0.01388889000.3020.5020.30210.3020.5020.30210.3020.5020.302100000.20.20.210.20.20.2100011111PuristaMedium0.010.010.010.01(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)\A3\ui_f\data\sound\RscButton\soundClick0.091.0\A3\ui_f\data\sound\RscButton\soundEnter0.091.0\A3\ui_f\data\sound\RscButton\soundEscape0.091.0\A3\ui_f\data\sound\RscButton\soundPush0.091.00-1safeZoneX + safeZoneW * 0.37291667safeZoneY + safeZoneH * 0.70648149safeZoneW * 0.04635417safeZoneH * 0.0129629700.3020.5020.30211111PuristaMedium(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)43-1safeZoneX + safeZoneW * 0.308125safeZoneY + safeZoneH * 0.60777778safeZoneW * 0.099375safeZoneH * 0.015555561024\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa0.60011111\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa0.600143-1safeZoneX + safeZoneW * 0.308125safeZoneY + safeZoneH * 0.63666667safeZoneW * 0.099375safeZoneH * 0.015555561024\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa00.2011111\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paa43-1safeZoneX + safeZoneW * 0.308125safeZoneY + safeZoneH * 0.66666667safeZoneW * 0.099375safeZoneH * 0.014444451024\A3\ui_f\data\GUI\Cfg\Slider\arrowEmpty_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\arrowFull_ca.paa\A3\ui_f\data\GUI\Cfg\Slider\border_ca.paa0.1020.20.611111\A3\ui_f\data\GUI\Cfg\Slider\thumb_ca.paaMyDialogC:\Users\Ben\Documents\Arma 3\missions\Car%20Workshop.Altis\untitled 2019-4-14 9-59pmfalsefalse.h
\ No newline at end of file
diff --git a/SQF (arma)/Car%20Workshop.Altis/workshop.sqf b/SQF (arma)/Car%20Workshop.Altis/workshop.sqf
new file mode 100644
index 0000000..1a62368
--- /dev/null
+++ b/SQF (arma)/Car%20Workshop.Altis/workshop.sqf
@@ -0,0 +1,10 @@
+hint "Okay, this is epic";
+
+private _dialouge = createDialog "MyDialog";
+
+private _carTextures; // Get available textures of car
+
+waitUntil { !_dialouge };
+hint "closed";
+
+// Car setObjectTexture [ 0, "#(rgb,8,8,3)color(1,0,0,1)" ]