Jump to content

scotg

Member
  • Content Count

    416
  • Joined

  • Last visited

  • Medals

Posts posted by scotg


  1. While developing this mod, I've come across many challenging hurdles to its success. As an individual with no team support, I don't have a clue about making extra scripts to fully shine the project, so maybe I can ask for certain features to become available. There are "feature request" posts all over the forums, but I wonder if those are in the right places. I figure since my requests will most likely help this mod the most, then here is the best place to present them. Maybe it's that these things exist but that I simply cannot find them, or maybe they don't exist. I'm not asking for new assets that can incorporate these features; I'm just asking for new config parameters that enable mod developers to use them. The reason we make mods is to provide something unique, but I run into a lot of roadblocks which force my (somewhat) unique-looking objects, like vehicles, to work the same as any other vanilla A3 asset. The following is a list of features that I see a need for in this mod.

    - Pilot turrets. The ability to control a turret with freelook and/or TrackIR. I have quite a few one-man flying vehicles with weapons on turrets. They are model assets I have made, but they cannot function properly as the game is. While I strongly support team play and solidarity, I believe it is not the right of the developers to prohibit full control pilot turrets all together. Such restrictions belong in their game, not in my mod. These turrets should be capable of integrating any necessary visual aids, huds, targeting, and such things.

    - Commander controls of auxiliary vehicle functions. This includes being able to turn on/off lights and engines, opening hatches, activating radars, and so on. While these tasks are usually delegated to other crewmen, they should still be available for example to a one-man tankette commander.

    - More VTOL parameters - VTOLs have come a long way, but in some cases they are more of a challenge to fly. This is great if your VTOL assets are strictly hard-to-fly machines; it surely enhances the realism. Mine should not be as hard, so it diminishes the fun factor. This is a sub-list of VTOL parameters that would make my planes more fun to fly:

    • VTOL minimal hover engine power - set a minimal percentage of the engine during hover mode to prevent losing too much thrust to recover.
    • VTOL hover throttle - while in hover mode, this would act like a throttle on a car, pushing the plane forward. It would have a direct influence on any tilt-engine animations, and can be analog controlled (e.g.: the trigger buttons on a gamepad). The more it's pressed, the more of the thrust is transferred to forward motion. The point here is to avoid relying on airframe tilting (like helicopters) to move forward while hovering.
    • VTOL reverse hover throttle - if applicable, allow airbrake to double as reverse flight during hover. Just like in a car, it needs weaker values. Most fictional VTOLs won't even use this, but it's better to have it for unforeseen applications. Might be useful if someone uses these VTOL parameters to make a ground hovercraft (essentially a plane that cannot takeoff).
    • VTOL hover throttle coefficient - define the balance of vertical thrust vs. horizontal thrust for throttle. The config editor person can specify how slowly or quickly the thrust is transferred, to either prevent or enhance altitude loss during transfer, respectively.
    • Disable manual VTOL - 0 for enabled, 1 for disabled, -1 for using strictly manual/disabling auto vectoring
    • Set manual VTOL increments - set how many ticks it takes to cover the complete range of VTOL positions for manual VTOL mode. Affects flight and visual.
    • Somehow allow for VTOLs with a dedicated throttle engine, which would greatly reduce altitude loss while throttling forward. Lifting engines will not be redirected to provide forward (or backward) movement.


    - Severely subdue the character animations. The vanilla A3 soldiers are military characters with no military bearing.

    - Attach the 1st person view to the character's head, and enable view-pilot headgear that should be seen.

    - Enable an official method of ground vehicle towing - vehicle tow vehicle and vehicle tow trailer. The towing line length should be adjustable, to allow for tow cables or tow hooks and hitches.

    Incidentally, I can only see how these potential parameters would help Arma 3 and mod developers. I see no downsides, should BI decide to make these a reality.


  2. So, I've been talking with @reyhard on the Discord channels about solutions to the pilot turret issue. This thread will hopefully explore that. Older, unresolved threads have done so in the past, as well, but digging them up is not allowed. Arma 3 has changed a little bit since then, so exploring the options for one-man pilot turrets can resurface anew. Here's my first implementation, trying to use pilotcamera as a turret control:



    Unfortunately, you need to enter a special optics mode to control it, and it cannot be moved with freelook/TrackIR. If you watched the video, it also demonstrated an alignment problem with the optics camera: it cannot be attached to animated parts and still move with them.

    At reyhard's request I am providing the model.cfg for inspection:

    Edit: This model.cfg is the most up to date.

    Spoiler
    
    class cfgSkeletons
    {
    	
    	class fangBones
    	{
    		skeletonInherit = "";
    		isDiscrete = 0;
    		SkeletonBones[]=
    		{
    			//"rotorshaftm"	,"",
    			"main_rotor" ,"",
    			"rotor_teeter" ,"",
    			"rotorheadm" ,"rotor_teeter",
    			"bladem_1",	"rotorheadm",
    			"bladeflex_1_1",	"rotorheadm",
    			"bladeflex_1_2",	"rotorheadm",
    			"bladeflex_1_3",	"rotorheadm",
    			"bladeflex_1_axis",	"rotorheadm",
    			"bladem_2",	"rotorheadm",
    			"bladeflex_2_1",	"rotorheadm",
    			"bladeflex_2_2",	"rotorheadm",
    			"bladeflex_2_3",	"rotorheadm",
    			"bladeflex_2_axis",	"rotorheadm",
    			"tail_rotor"	,"",
    			"engineFan" 	,"",
    			"stick_pilot"	,"",
    			"lever_pilot"	,"",
    			"throttle_pilot"	,"lever_pilot",
    			"throttle_switch_pilot"	,"lever_pilot",
    			"pedall"	,"",
    			"pedalr"	,"",
    			"i_speed"	,"",
    			"i_bank"	,"",
    			"i_horizont"	,"i_bank",
    			"i_alt_100f"	,"",
    			"i_alt_1000f"	,"",
    			"i_alt_10000f"	,"",
    			"i_rpm"	,"",
    			"i_compass"	,"",
    			"i_vspeed"	,"",
    			"i_torque"	,"",
    			"i_fuel"	,"",
    			"i_hour"	,"",
    			"i_minute"	,"",
    			"i_oiltemp"	,"",
    			"i_oilpress"	,"",
    			"i_tot"	,"",
    			"i_wp"	,"",
    			"i_temp"	,"",
    			"i_ac"	,"",
    			"damagehide"	,"",
    			"gear"	,"",
    			"z_tread"	,"gear",
    			"z_tread_short"	,"gear",
    			"i_rpm02"	,"",
    			"i_rpm03"	,"",
    			"i_compass02"	,"",
    			"glass1"	,"",
    			"glass2"	,"",
    			"glass3"	,"",
    			"mainturret"	,"",
    			"maingun"	,"mainturret",
    			"gunnerview"	,"maingun",
    			"gun_barrel"	,"maingun",
    			"pilotCam_pos"	,"maingun",
    			"pip_0_dir"	,"maingun",
    			"pip_0_dir"	,"maingun",
    			"positionlights"	,"",
    			"collisionlight_red"	,"",
    			"collisionlight_white"	,"",
    			"zasleh"	,"maingun"
    		};
    	};
    };
    class Rotation
    {
    	type = "rotation";
    	memory = 1;
    	minValue = 0;
    	maxValue = 1;
    	angle0 = 0;
    	angle1 = 1;
    };
    class CfgModels
    {
    	class Default
    	{
    		sections[] = {};
    		sectionsInherit="";
    		skeletonName = "";
    	};
    	class fang1: Default
    	{
    		skeletonName="fangBones";
    		sections[]=
    		{
    			"glass1",
    			"glass2",
    			"glass3",
    			"glass4",
    			"zbytek",
    			"light_hitpoint",
    			"tail rotor static",
    			"main rotor static",
    			"main rotor blur",
    			"rotorheadm",
    			"camo1",
    			"podsvit pristroju",
    			"zasleh",
    			"clan",
    			"tail rotor blur",
    			"light",
    			"landinglight01"
    		};
    
    		class Animations
    		{
    			class rotor_teeter_dive
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="rotor_teeter";
    				axis="rotor_teeter_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -28.647831
    				maxValue = 1.0;//rad 28.647831
    				angle0 = 0.174533;//rad -1.6666667;
    				angle1 = -0.174533;//rad 1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class rotor_teeter_bank
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="rotor_teeter";
    				axis="rotor_teeter_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -28.647831
    				maxValue = 1.0;//rad 28.647831
    				angle0 = 0.174533;//rad -1.6666667;
    				angle1 = -0.174533;//rad 1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			
    			class stick_pilot_dive_01
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -0.499999;//rad -28.647831
    				maxValue = 0.499999;//rad 28.647831
    				angle0 = 0.029088823;//rad 1.6666667;
    				angle1 = -0.029088823;//rad -1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_dive_02
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -0.849999;//rad -48.701355
    				maxValue = -0.5;//rad -28.64789
    				angle0 = 0.029088823;//rad 1.6666667;
    				angle1 = 0.0;//rad 0.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_dive_03
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -57.29578
    				maxValue = -0.85;//rad -48.701412
    				angle0 = 0.029088823;//rad 1.6666667;
    				angle1 = 0.0;//rad 0.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_dive_04
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 0.849999;//rad 48.701355
    				angle0 = 0.0;//rad 0.0;
    				angle1 = -0.029088823;//rad -1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_dive_05
    			{
    				type="rotationX";
    				source="cyclicForward";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.85;//rad 48.701412
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = -0.029088823;//rad -1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_bank_01
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -0.499999;//rad -28.647831
    				maxValue = 0.499999;//rad 28.647831
    				angle0 = 0.029088823;//rad -1.6666667;
    				angle1 = -0.029088823;//rad 1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_bank_02
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -0.849999;//rad -48.701355
    				maxValue = -0.5;//rad -28.64789
    				angle0 = 0.029088823;//rad -1.6666667;
    				angle1 = 0.0;//rad 0.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_bank_03
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -57.29578
    				maxValue = -0.85;//rad -48.701412
    				angle0 = 0.029088823;//rad -1.6666667;
    				angle1 = 0.0;//rad 0.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_bank_04
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 0.849999;//rad 48.701355
    				angle0 = 0.0;//rad 0.0;
    				angle1 = -0.029088823;//rad 1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class stick_pilot_bank_05
    			{
    				type="rotationZ";
    				source="cyclicAside";
    				selection="stick_pilot";
    				axis="stick_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.85;//rad 48.701412
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = -0.029088823;//rad 1.6666667;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			
    			class HRotor: Rotation
    			{
    				source="RotorH";
    				selection="main_rotor";
    				axis="main_rotor_axis";
    				angle1="2 * 3.1415926536"; //angle1 = 6.2831855;//rad 360.0;
    			};
    			class HRotorHead: HRotor
    			{
    				selection="rotorheadm";
    				axis="rotorheadm_axis";
    				angle1="2 * 3.1415926536"; //angle1 = 6.2831855;//rad 360.0;
    			};
    			class VRotor
    			{
    				type="rotation";
    				source="RotorV";
    				selection="tail_rotor";
    				axis="tail_rotor_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class Turbine
    			{
    				type="rotation";
    				source="RotorV";
    				selection="engineFan";
    				axis="engineFan_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			
    			class rotorblade_flex_1_1
    			{
    				type="translation";
    				source="rpm";
    				selection="bladeflex_1_1";
    				axis="bladeflex_1_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 12.0;//rad 687.5494
    				offset0 = 0.0;
    				offset1 = 1.1;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class rotorblade_flex_1_2: rotorblade_flex_1_1
    			{
    				selection="bladeflex_1_2";
    				offset0 = 0.0;
    				offset1 = 2.8;
    			};
    			class rotorblade_flex_1_3: rotorblade_flex_1_1
    			{
    				selection="bladeflex_1_3";
    				offset0 = 0.0;
    				offset1 = 5.5;
    			};
    			class rotorblade_flex_2_1: rotorblade_flex_1_1
    			{
    				selection="bladeflex_2_1";
    				axis="bladeflex_2_axis";//*probably*
    			};
    			class rotorblade_flex_2_2: rotorblade_flex_1_2
    			{
    				selection="bladeflex_2_2";
    				axis="bladeflex_2_axis";//*probably*
    			};
    			class rotorblade_flex_2_3: rotorblade_flex_1_3
    			{
    				selection="bladeflex_2_3";
    				axis="bladeflex_2_axis";//*probably*
    			};
    			
    			
    			
    			class I_Speed
    			{
    				type="rotation";
    				source="speed";
    				selection="i_speed";
    				axis="i_speed_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 10.288889;//rad 589.5099
    				angle0 = -0.03490659;//rad -2.0000002;
    				angle1 = 0.19198623;//rad 11.000001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Bank
    			{
    				type="rotation";
    				source="horizonBank";
    				selection="i_bank";
    				axis="i_bank_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = 6.2831855;//rad 360.0;
    				angle1 = -6.2831855;//rad -360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Altitude_100f
    			{
    				type="rotation";
    				source="altBaro";
    				selection="i_alt_100f";
    				axis="i_alt_100f_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 304.8;//rad 17463.752
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Altitude_1000f
    			{
    				type="rotation";
    				source="altBaro";
    				selection="i_alt_1000f";
    				axis="i_alt_1000f_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 3048.0;//rad 174637.53
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Altitude_10000f
    			{
    				type="rotation";
    				source="altBaro";
    				selection="i_alt_10000f";
    				axis="i_alt_10000f_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 30480.0;//rad 1746375.4
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_COmpass
    			{
    				type="rotation";
    				source="direction";
    				selection="i_compass";
    				axis="i_compass_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -3.1415927;//rad -180.0
    				maxValue = 3.1415927;//rad 180.0
    				angle0 = -3.1415927;//rad -180.0;
    				angle1 = 3.1415927;//rad 180.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_WP
    			{
    				type="rotation";
    				source="waypointDirection";
    				selection="i_wp";
    				axis="i_wp_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -3.1415927;//rad -180.0
    				maxValue = 3.1415927;//rad 180.0
    				angle0 = -3.1415927;//rad -180.0;
    				angle1 = 3.1415927;//rad 180.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_VSpeed
    			{
    				type="rotation";
    				source="vertSpeed";
    				selection="i_vspeed";
    				axis="i_vspeed_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -15.24;//rad -873.1877
    				maxValue = 15.24;//rad 873.1877
    				angle0 = -4.6076694;//rad -264.0;
    				angle1 = 1.43117;//rad 82.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = -0.9250245;//rad -53.0;
    				angle1 = -0.34906587;//rad -20.000002;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_OilPress
    			{
    				type="rotation";
    				source="HitEngine";
    				selection="i_oilpress";
    				axis="i_oilpress_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.17453294;//rad 10.000001;
    				angle1 = -2.321288;//rad -133.00002;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Temp
    			{
    				type="rotation";
    				source="altBaro";
    				selection="i_temp";
    				axis="i_temp_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 5400.0;//rad 309397.22
    				angle0 = 0.043633234;//rad 2.5000002;
    				angle1 = 1.8325958;//rad 105.00001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class DamageHide
    			{
    				type="hide";
    				source="damage";
    				selection="damagehide";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 1.0;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class lever_pilot
    			{
    				type="rotation";
    				source="collectiveRTD";
    				selection="lever_pilot";
    				axis="lever_pilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = -0.05235988;//rad -3.0;
    				angle1 = 0.20943952;//rad 12.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class lever_copilot
    			{
    				type="rotation";
    				source="collectiveRTD";
    				selection="lever_copilot";
    				axis="lever_copilot_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = -0.05235988;//rad -3.0;
    				angle1 = 0.20943952;//rad 12.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class pedalL
    			{
    				type="rotation";
    				source="rudderRTD";
    				selection="pedall";
    				axis="pedall_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -57.29578
    				maxValue = 1.0;//rad 57.29578
    				angle0 = -0.2617994;//rad -15.0;
    				angle1 = 0.2617994;//rad 15.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class pedalR
    			{
    				type="rotation";
    				source="rudderRTD";
    				selection="pedalr";
    				axis="pedalr_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -1.0;//rad -57.29578
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.2617994;//rad 15.0;
    				angle1 = -0.2617994;//rad -15.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class TailRotorImpactHide
    			{
    				type="hide";
    				source="tailRotorHFullyDestroyed";
    				selection="tail_rotor";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.99;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class I_Speed_02
    			{
    				type="rotation";
    				source="speed";
    				selection="i_speed";
    				axis="i_speed_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 10.28889;//rad 589.50995
    				maxValue = 41.155556;//rad 2358.0396
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 2.9496067;//rad 169.00002;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Speed_03
    			{
    				type="rotation";
    				source="speed";
    				selection="i_speed";
    				axis="i_speed_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 41.155556;//rad 2358.0396
    				maxValue = 46.3;//rad 2652.7944
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.36651918;//rad 21.000002;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Speed_04
    			{
    				type="rotation";
    				source="speed";
    				selection="i_speed";
    				axis="i_speed_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 46.3;//rad 2652.7944
    				maxValue = 92.6;//rad 5305.589
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 2.1816616;//rad 125.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_RPM
    			{
    				type="rotation";
    				source="rpm";
    				selection="i_rpm";
    				axis="i_rpm_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 12.0;//rad 687.5494
    				angle0 = 0.22689281;//rad 13.000001;
    				angle1 = 5.2708945;//rad 302.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_RPM02
    			{
    				type="rotation";
    				source="rpm";
    				selection="i_rpm02";
    				axis="i_rpm02_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 12.0;//rad 687.5494
    				angle0 = 0.22689281;//rad 13.000001;
    				angle1 = 5.2708945;//rad 302.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_RPM03
    			{
    				type="rotation";
    				source="rpm";
    				selection="i_rpm03";
    				axis="i_rpm03_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 12.0;//rad 687.5494
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 64.92625;//rad 3720.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_COmpass02
    			{
    				type="rotation";
    				source="direction";
    				selection="i_compass02";
    				axis="i_compass02_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -3.1415927;//rad -180.0
    				maxValue = 3.1415927;//rad 180.0
    				angle0 = -3.1415927;//rad -180.0;
    				angle1 = 3.1415927;//rad 180.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Horizont_Dive
    			{
    				type="rotation";
    				source="horizonDive";
    				selection="i_horizont";
    				axis="i_horizont_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Torque
    			{
    				type="rotation";
    				source="torqueRTD";
    				selection="i_torque";
    				axis="i_torque_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.1;//rad 63.02536
    				angle0 = -3.3161259;//rad -190.00002;
    				angle1 = 1.9547689;//rad 112.00001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_01a
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.25;//rad 14.323945
    				maxValue = 0.374999;//rad 21.485859
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.27052605;//rad 15.500001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_01b
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.375;//rad 21.485918
    				maxValue = 0.499999;//rad 28.647831
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.23561947;//rad 13.500001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_02a
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 0.624999;//rad 35.809803
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.19198623;//rad 11.000001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_02b
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.625;//rad 35.809864
    				maxValue = 0.749999;//rad 42.971775
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.17453294;//rad 10.000001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_03a
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.75;//rad 42.971836
    				maxValue = 0.874999;//rad 50.13375
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.17453294;//rad 10.000001;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_Fuel_03b
    			{
    				type="rotation";
    				source="fuel";
    				selection="i_fuel";
    				axis="i_fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.875;//rad 50.13381
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 0.08726647;//rad 5.0000005;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_OilTemp
    			{
    				type="rotation";
    				source="rpm";
    				selection="i_oiltemp";
    				axis="i_oiltemp_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 5.3;//rad 303.66763
    				angle0 = -0.6108653;//rad -35.000004;
    				angle1 = 0.2617994;//rad 15.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class I_OilTemp_random
    			{
    				type="rotation";
    				source="torqueRTD";
    				selection="i_oiltemp";
    				axis="i_oiltemp_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = -0.08726647;//rad -5.0000005;
    				angle1 = 0.08726647;//rad 5.0000005;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class AddBenches
    			{
    				type="hide";
    				source="AddBenches";
    				selection="z_benches";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.5;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class AddScreen1
    			{
    				type="hide";
    				source="AddScreen1";
    				selection="z_screen1";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.5;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class AddGunHolder
    			{
    				type="hide";
    				source="AddGunHolder";
    				selection="z_gunholder";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.5;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			
    			class hidePG_1
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb1";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.95833343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_2
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa1";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.9166668;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_3
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb2";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.8750001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_4
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa2";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.83333343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_5
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb3";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.7916668;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_6
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa3";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.7500001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_7
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb4";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.70833343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_8
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa4";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.6250001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_9
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb5";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.6250001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_10
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa5";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.58333343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_11
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb6";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.5416668;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_12
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa6";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.5000001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_13
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb7";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.45833343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_14
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa7";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.41666675;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_15
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb8";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.3750001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_16
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa8";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.33333343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_17
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb9";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.29166675;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_18
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa9";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.2500001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_19
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb10";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.20833343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_20
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa10";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.16666678;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_21
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb11";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.1250001;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_22
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa11";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.08333343;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_23
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketb12";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 0.04166677;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hidePG_24
    			{
    				type="hide";
    				source="Missiles_revolving";
    				selection="rocketa12";
    				sourceAddress = mirror;
    				minValue = -1.0;//rad -57.29578
    				maxValue = 0.0;//rad 0.0
    				hideValue = 1e-007;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class zaslehROT
    			{
    				type="rotationZ";
    				source="Muzzle_flash";
    				selection="zasleh";
    				axis="zasleh_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 4.0;//rad 229.18312
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class PositionLights
    			{
    				type="hide";
    				source="collisionLights";
    				selection="positionlights";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.0;
    				unHideValue = 0.5;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class CollisionLight_Red_blinking
    			{
    				type="hide";
    				source="CollisionLightRed_source";
    				selection="collisionlight_red";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.0;
    				unHideValue = 0.5;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class CollisionLight_White_blinking
    			{
    				type="hide";
    				source="CollisionLightWhite_source";
    				selection="collisionlight_white";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.0;
    				unHideValue = 0.5;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class RotorImpactHide
    			{
    				type="hide";
    				source="rotorHFullyDestroyed";
    				selection="rotorshaftm";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.99;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			
    			class rotorBlur_phase_1_hide
    			{
    				type="hide";
    				source="rpm";
    				selection="phase_1";
    				sourceAddress= mirror;
    				minValue = 0.0;//rad 0.0
    				maxValue = 0.0001;//rad 57.29578
    				hideValue = 0.0;
    //				unHideValue = 0.5;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class rotorBlur_phase_2_hide
    			{
    				type="hide";
    				source="rpm";
    				selection="phase_1";
    				sourceAddress= mirror;
    				minValue = 0.0001;//rad 0.0
    				maxValue = 0.0002;//rad 57.29578
    				hideValue = 0.0;
    //				unHideValue = 0.5;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class MainTurret
    			{
    				type="rotationY";
    				source="pilotcamerarotx";
    				selection="mainturret";
    				axis="mainturret_axis";// *probably*
    				sourceAddress = loop;
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class MainGun
    			{
    				type="rotationX";
    				source="pilotcameraroty";
    				selection="maingun";
    				axis="maingun_axis";// *probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = 6.2831855;//rad -360.0;
    				angle1 = -6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    		};//Animations
    	};//modelclass
    };//CfgModels

     


    ...and here's the most up to date config.cpp:
     

    Spoiler
    
    
    #define _ARMA_
    
    //Class E:/Program Files (x86)/Steam/SteamApps/common/Arma 3/@GIJOE/Addons/GIJOE/cobra/vehicle/cobra_heli/config.bin{
    class CfgPatches
    {
    	class CobraHeli
    	{
    		units[] = {"Fang_Pilot","Fang1"};
    		weapons[] = {};
    		requiredVersion = 1;
    		requiredAddons[] = {"A3_Air_F","A3_Weapons_F"};
    	};
    };
    class CfgMovesBasic
    {
    	class DefaultDie;
    	class ManActions
    	{
    		wyvern_Pilot = "wyvern_Pilot";
    	};
    };
    class CfgMovesMaleSdr: CfgMovesBasic
    {
    	class States
    	{
    		class Crew;
    		class Wyvern_Dead: DefaultDie
    		{
    			actions = "DeadActions";
    			file = "vhx_heli\cobra_fang\Anims\Wyvern_Dead.rtm";
    			speed = 0.5;
    			looped = 0;
    			terminal = 1;
    			soundEnabled = 0;
    			connectTo[] = {"Unconscious",0.1};
    		};
    		class KIA_Wyvern_Pilot: DefaultDie
    		{
    			actions = "DeadActions";
    			speed = 0.5;
    			looped = 0;
    			terminal = 1;
    			file = "vhx_heli\cobra_fang\Anims\KIA_Wyvern_Pilot.rtm";
    			connectTo[] = {"Unconscious",0.1};
    		};
    		class Wyvern_Pilot: Crew
    		{
    			file = "vhx_heli\cobra_fang\Anims\pilot_Wyvern_static.rtm";
    			interpolateTo[] = {"KIA_Wyvern_Pilot",1};
    		};
    	};
    };
    class CfgWeapons
    {
    	class LMG_Minigun;
    	class RocketPods;
    	class Safe: RocketPods
    	{
    		CanLock = 0;
    		displayName = "Safe";
    		displayNameMagazine = "Safe";
    		shortNameMagazine = "Safe";
    		nameSound = "";
    		cursor = "EmptyCursor";
    		cursorAim = "EmptyCursor";
    		magazines[] = {};
    		burst = 0;
    		reloadTime = 0.01;
    		magazineReloadTime = 0.1;
    	};
    	class LMG_Minigun2: LMG_Minigun
    	{
    		class gunParticles
    		{
    			class effect1
    			{
    				positionName = "machinegun2_eject_pos";
    				directionName = "machinegun2_eject_dir";
    				effectName = "MachineGunCartridge1";
    			};
    		};
    	};
    	class HMG_127: LMG_Minigun
    	{
    		class gunParticles
    		{
    			class effect1
    			{
    				positionName = "machinegun_eject_pos";
    				directionName = "machinegun_eject_dir";
    				effectName = "MachineGunCartridge1";
    			};
    		};
    	};
    	class HMG_127_APC: HMG_127
    	{
    		class gunParticles
    		{
    			class effect1
    			{
    				positionName = "machinegun2_eject_pos";
    				directionName = "machinegun2_eject_dir";
    				effectName = "MachineGunCartridge1";
    			};
    		};
    	};
    };
    class WeaponFireGun;
    class WeaponCloudsGun;
    class WeaponFireMGun;
    class WeaponCloudsMGun;
    class RCWSOptics;
    class Optics_Armored;
    
    class CfgVehicles
    {
    	class B_Helipilot_F;
    	class Wyvern_Pilot: B_Helipilot_F
    	{
    		class SpeechVariants
    		{
    			class Default
    			{
    				speechSingular[] = {"veh_infantry_pilot_s"};
    				speechPlural[] = {"veh_infantry_pilot_p"};
    			};
    		};
    		textSingular = "$STR_A3_nameSound_veh_infantry_pilot_s";
    		textPlural = "$STR_A3_nameSound_veh_infantry_pilot_p";
    		nameSound = "veh_infantry_pilot_s";
    		scope = 2;
    		side = 2;
    		faction = "VIBORA";
    		identityTypes[] = {"LanguageENG_F","Head_NATO","G_NATO_pilot"};
    		modelSides[] = {3,1};
    		uniformClass = "cobra_troop_kit03";
    		displayName = "Wyvern Pilot";
    		linkedItems[] = {"cobra_scho"};
    		respawnLinkedItems[] = {"cobra_scho"};
    		weapons[] = {"hgun_Rook40_F","Throw","Put"};
    		respawnWeapons[] = {"hgun_Rook40_F","Throw","Put"};
    		magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShellGreen","Chemlight_green","SmokeShellGreen","B_IR_Grenade","Chemlight_green"};
    		respawnMagazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShellGreen","Chemlight_green","SmokeShellGreen","B_IR_Grenade","Chemlight_green"};
    		cost = 160000;
    		camouflage = 2;
    	};
    	class AllVehicles;
    	class Air;
    	class Helicopter: Air
    	{
    		class Turrets
    		{
    			class MainTurret;
    		};
    		class NewTurret;
    		class AnimationSources;
    		class HitPoints;
    		class ViewPilot;
    		class ViewOptics;
    	};
    	class FANG_Base: Helicopter
    	{
    		class SpeechVariants
    		{
    			class Default
    			{
    				speechSingular[] = {"veh_air_gunship_s"};
    				speechPlural[] = {"veh_air_gunship_p"};
    			};
    		};
    		scope = 0;
    		side = 2;
    		faction = "COBRA";
    		vehicleClass = "Cobra_Air";
    		accuracy = 0.5;
    		availableForSupportTypes[] = {"CAS_Heli"};
    		displayName = "FANG";
    		hiddenSelections[] = {"Camo1","Camo2"};
    		driverCanEject = 0;
    		altFullForce = 2000;
    		altNoForce = 3000;
    		fuelCapacity = 100;
    		fuelConsumptionRate = 0.05;
    		LockDetectionSystem = "2 + 8 + 4";
    		incomingMissileDetectionSystem = 16;
    		bodyFrictionCoef = 0.9;
    		supplyRadius = 0;
    		simulation = "helicopterX";
    		maxFordingDepth = 1.5;
    		mainBladeRadius = 3.65;
    		mainRotorSpeed = 1.5;
    		backRotorSpeed = 4;
    		liftForceCoef = 1.2;
    		cyclicAsideForceCoef = 1.0;
    		cyclicForwardForceCoef = 1.0;
    		backRotorForceCoef = 1.2;
    		
    		#include "sounds.hpp"
    		
    		class MFD
    		{
    			class AirplaneHUD
    			{
    				class Pos10Vector
    				{
    					type = "vector";
    					pos0[] = {0.502,0.49};
    					pos10[] = {1.112,1.03};
    				};
    				topLeft = "HUD LH";
    				topRight = "HUD PH";
    				bottomLeft = "HUD LD";
    				borderLeft = 0;
    				borderRight = 0;
    				borderTop = 0;
    				borderBottom = 0;
    				color[] = {0,1,0,0.1};
    				class Bones
    				{
    					class PlaneW
    					{
    						type = "fixed";
    						pos[] = {0.502,0.49};
    					};
    					class WeaponAim: Pos10Vector
    					{
    						source = "weapon";
    					};
    					class GunnerAim: Pos10Vector
    					{
    						source = "weapon";
    						pos0[] = {0,-0.0025};
    						pos10[] = {0.01,0.0025};
    					};
    					class Target: Pos10Vector
    					{
    						source = "target";
    					};
    					class Velocity: Pos10Vector
    					{
    						type = "vector";
    						source = "velocity";
    						pos0[] = {0.5,0.49};
    						pos10[] = {1.11,1.03};
    					};
    					class ILS_H
    					{
    						type = "ils";
    						pos0[] = {0.5,0.49};
    						pos3[] = {0.683,0.49};
    					};
    					class ILS_W: ILS_H
    					{
    						pos3[] = {0.5,0.652};
    					};
    					class Level0: Pos10Vector
    					{
    						pos0[] = {0.5,0.49};
    						pos10[] = {1.11,1.03};
    						type = "horizon";
    						angle = 0;
    					};
    					class LevelP10: Level0
    					{
    						angle = 10;
    					};
    					class LevelM10: Level0
    					{
    						angle = -10;
    					};
    					class LevelP20: Level0
    					{
    						angle = 20;
    					};
    					class LevelM20: Level0
    					{
    						angle = -20;
    					};
    					class LevelP30: Level0
    					{
    						angle = 30;
    					};
    					class LevelM30: Level0
    					{
    						angle = -30;
    					};
    					class LevelP40: Level0
    					{
    						angle = 40;
    					};
    					class LevelM40: Level0
    					{
    						angle = -40;
    					};
    					class LevelP50: Level0
    					{
    						angle = 50;
    					};
    					class LevelM50: Level0
    					{
    						angle = -50;
    					};
    				};
    				class Draw
    				{
    					alpha = 0.6;
    					color[] = {0,1,0};
    					condition = "on";
    					class PlaneW
    					{
    						clipTL[] = {0,1};
    						clipBR[] = {1,0};
    						type = "line";
    						width = 4;
    						points[] = {{ "PlaneW",{ 0,-0.0177049 },1 },{ "PlaneW",{ 0.014,-0.0123934 },1 },{ "PlaneW",{ 0.02,0 },1 },{ "PlaneW",{ 0.014,0.0123934 },1 },{ "PlaneW",{ 0,0.0177049 },1 },{ "PlaneW",{ -0.014,0.0123934 },1 },{ "PlaneW",{ -0.02,0 },1 },{ "PlaneW",{ -0.014,-0.0123934 },1 },{ "PlaneW",{ 0,-0.0177049 },1 },{  }};
    					};
    					class PlaneHeading
    					{
    						clipTL[] = {0,1};
    						clipBR[] = {1,0};
    						type = "line";
    						width = 4;
    						points[] = {{ "Velocity",{ 0,-0.0177049 },1 },{ "Velocity",{ 0.014,-0.0123934 },1 },{ "Velocity",{ 0.02,0 },1 },{ "Velocity",{ 0.014,0.0123934 },1 },{ "Velocity",{ 0,0.0177049 },1 },{ "Velocity",{ -0.014,0.0123934 },1 },{ "Velocity",{ -0.02,0 },1 },{ "Velocity",{ -0.014,-0.0123934 },1 },{ "Velocity",{ 0,-0.0177049 },1 },{  },{ "Velocity",{ 0.04,0 },1 },{ "Velocity",{ 0.02,0 },1 },{  },{ "Velocity",{ -0.04,0 },1 },{ "Velocity",{ -0.02,0 },1 },{  },{ "Velocity",{ 0,-0.0354098 },1 },{ "Velocity",{ 0,-0.0177049 },1 },{  }};
    					};
    					class Static
    					{
    						clipTL[] = {0,0.1};
    						clipBR[] = {1,0};
    						type = "line";
    						width = 4;
    						points[] = {{ { 0.79,0.52 },1 },{ { 0.81,0.5 },1 },{ { 0.79,0.48 },1 },{  },{ { 0.52,"0.08+0.06" },1 },{ { 0.5,"0.06+0.06" },1 },{ { 0.48,"0.08+0.06" },1 },{  },{ { "0.5-0.1","0.9-0.04" },1 },{ { "0.5-0.1","0.9+0.04" },1 },{ { "0.5+0.1","0.9+0.04" },1 },{ { "0.5+0.1","0.9-0.04" },1 },{ { "0.5-0.1","0.9-0.04" },1 },{  },{ { "0.5-0.1",0.9 },1 },{ { "0.5-0.092",0.9 },1 },{  },{ { "0.5+0.1",0.9 },1 },{ { "0.5+0.092",0.9 },1 },{  },{ { 0.5,"0.9-0.04" },1 },{ { 0.5,"0.9-0.032" },1 },{  },{ { 0.5,"0.9+0.04" },1 },{ { 0.5,"0.9+0.032" },1 },{  }};
    					};
    					class Gunner
    					{
    						type = "line";
    						width = 4;
    						points[] = {{ "GunnerAim",{ "0.5-0.015","0.9-0.008" },1 },{ "GunnerAim",{ "0.5-0.015","0.9+0.008" },1 },{ "GunnerAim",{ "0.5+0.015","0.9+0.008" },1 },{ "GunnerAim",{ "0.5+0.015","0.9-0.008" },1 },{ "GunnerAim",{ "0.5-0.015","0.9-0.008" },1 }};
    					};
    					class MGun
    					{
    						condition = "mgun";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "WeaponAim",{ 0.05,0 },1 },{ "WeaponAim",{ 0.015,0 },1 },{  },{ "WeaponAim",{ 0,0.0442623 },1 },{ "WeaponAim",{ 0,0.0132787 },1 },{  },{ "WeaponAim",{ -0.05,0 },1 },{ "WeaponAim",{ -0.015,0 },1 },{  },{ "WeaponAim",{ 0,-0.0442623 },1 },{ "WeaponAim",{ 0,-0.0132787 },1 },{  }};
    						};
    					};
    					class Bomb
    					{
    						condition = "bomb";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "WeaponAim",{ 0,-0.0885246 },1 },{ "WeaponAim",{ 0.05,-0.0770164 },1 },{ "WeaponAim",{ 0.087,-0.0442623 },1 },{ "WeaponAim",{ 0.1,0 },1 },{ "WeaponAim",{ 0.087,0.0442623 },1 },{ "WeaponAim",{ 0.05,0.0770164 },1 },{ "WeaponAim",{ 0,0.0885246 },1 },{ "WeaponAim",{ -0.05,0.0770164 },1 },{ "WeaponAim",{ -0.087,0.0442623 },1 },{ "WeaponAim",{ -0.1,0 },1 },{ "WeaponAim",{ -0.087,-0.0442623 },1 },{ "WeaponAim",{ -0.05,-0.0770164 },1 },{ "WeaponAim",{ 0,-0.0885246 },1 },{  },{ "Velocity",0.001,"WeaponAim",{ 0,0 },1 },{ "Velocity",{ 0,0 },1 },{  },{ "Target",{ 0,-0.0619672 },1 },{ "Target",{ 0.07,0 },1 },{ "Target",{ 0,0.0619672 },1 },{ "Target",{ -0.07,0 },1 },{ "Target",{ 0,-0.0619672 },1 }};
    						};
    					};
    					class AAMissile
    					{
    						condition = "AAmissile";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "WeaponAim",{ 0,-0.221311 },1 },{ "WeaponAim",{ 0.125,-0.192541 },1 },{ "WeaponAim",{ 0.2175,-0.110656 },1 },{ "WeaponAim",{ 0.25,0 },1 },{ "WeaponAim",{ 0.2175,0.110656 },1 },{ "WeaponAim",{ 0.125,0.192541 },1 },{ "WeaponAim",{ 0,0.221311 },1 },{ "WeaponAim",{ -0.125,0.192541 },1 },{ "WeaponAim",{ -0.2175,0.110656 },1 },{ "WeaponAim",{ -0.25,0 },1 },{ "WeaponAim",{ -0.2175,-0.110656 },1 },{ "WeaponAim",{ -0.125,-0.192541 },1 },{ "WeaponAim",{ 0,-0.221311 },1 },{  },{ "Target",{ 0,-0.0619672 },1 },{ "Target",{ 0.07,0 },1 },{ "Target",{ 0,0.0619672 },1 },{ "Target",{ -0.07,0 },1 },{ "Target",{ 0,-0.0619672 },1 }};
    						};
    					};
    					class ATMissile
    					{
    						condition = "ATmissile";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "WeaponAim",{ -0.15,-0.15 },1 },{ "WeaponAim",{ -0.15,"-0.15+0.02" },1 },{  },{ "WeaponAim",{ -0.15,0.15 },1 },{ "WeaponAim",{ -0.15,"+0.15-0.02" },1 },{  },{ "WeaponAim",{ 0.15,-0.15 },1 },{ "WeaponAim",{ 0.15,"-0.15+0.02" },1 },{  },{ "WeaponAim",{ 0.15,0.15 },1 },{ "WeaponAim",{ 0.15,"+0.15-0.02" },1 },{  },{ "WeaponAim",{ -0.15,-0.15 },1 },{ "WeaponAim",{ "-0.15+0.02",-0.15 },1 },{  },{ "WeaponAim",{ -0.15,0.15 },1 },{ "WeaponAim",{ "-0.15+0.02",0.15 },1 },{  },{ "WeaponAim",{ 0.15,-0.15 },1 },{ "WeaponAim",{ "0.15-0.02",-0.15 },1 },{  },{ "WeaponAim",{ 0.15,0.15 },1 },{ "WeaponAim",{ "0.15-0.02",0.15 },1 },{  }};
    						};
    					};
    					class Rockets
    					{
    						condition = "Rocket";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "WeaponAim",{ -0.25,-0.25 },1 },{ "WeaponAim",{ -0.25,"-0.25+0.05" },1 },{  },{ "WeaponAim",{ -0.25,0.25 },1 },{ "WeaponAim",{ -0.25,"+0.25-0.05" },1 },{  },{ "WeaponAim",{ 0.25,-0.25 },1 },{ "WeaponAim",{ 0.25,"-0.25+0.05" },1 },{  },{ "WeaponAim",{ 0.25,0.25 },1 },{ "WeaponAim",{ 0.25,"+0.25-0.05" },1 },{  },{ "WeaponAim",{ -0.25,-0.25 },1 },{ "WeaponAim",{ "-0.25+0.05",-0.25 },1 },{  },{ "WeaponAim",{ -0.25,0.25 },1 },{ "WeaponAim",{ "-0.25+0.05",0.25 },1 },{  },{ "WeaponAim",{ 0.25,-0.25 },1 },{ "WeaponAim",{ "0.25-0.05",-0.25 },1 },{  },{ "WeaponAim",{ 0.25,0.25 },1 },{ "WeaponAim",{ "0.25-0.05",0.25 },1 },{  }};
    						};
    					};
    					class SpeedNumber
    					{
    						type = "text";
    						align = "right";
    						scale = 1;
    						source = "speed";
    						sourceScale = 3.6;
    						pos[] = {{ 0.06,0.47 },1};
    						right[] = {{ "0.14-0.02",0.47 },1};
    						down[] = {{ 0.06,0.52 },1};
    					};
    					class AltNumber: SpeedNumber
    					{
    						source = "altitudeAGL";
    						sourceScale = 1;
    						pos[] = {{ "0.86-0.15",0.47 },1};
    						right[] = {{ "0.94-0.15-0.02",0.47 },1};
    						down[] = {{ "0.86-0.15",0.52 },1};
    					};
    					class AltScale
    					{
    						type = "scale";
    						scale = 1;
    						source = "altitudeAGL";
    						sourceScale = 1;
    						align = "right";
    						width = 4;
    						pos[] = {0.86,0.82};
    						right[] = {"0.94-0.02",0.82};
    						down[] = {0.86,0.87};
    						lineXleft = 0.825;
    						lineYright = 0.835;
    						lineXleftMajor = 0.825;
    						lineYrightMajor = 0.845;
    						bottom = 0.2;
    						top = 0.85;
    						center = 0.5;
    						step = 20;
    						StepSize = "(0.85- 0.2)/20";
    						horizontal = 0;
    						min = "none";
    						max = "none";
    						numberEach = 5;
    						majorLineEach = 5;
    					};
    					class weapons
    					{
    						type = "text";
    						source = "weapon";
    						align = "right";
    						scale = 0.5;
    						sourceScale = 1;
    						pos[] = {{ 0.1,0.88 },1};
    						right[] = {{ "0.16-0.02",0.88 },1};
    						down[] = {{ 0.1,0.92 },1};
    					};
    					class ammo
    					{
    						type = "text";
    						source = "ammo";
    						align = "right";
    						scale = 0.5;
    						sourceScale = 1;
    						pos[] = {{ 0.1,0.93 },1};
    						right[] = {{ "0.16-0.02",0.93 },1};
    						down[] = {{ 0.1,0.97 },1};
    					};
    					class HeadingScale
    					{
    						type = "scale";
    						scale = 1;
    						source = "Heading";
    						sourceScale = 1;
    						align = "center";
    						width = 4;
    						pos[] = {"0.32-0.01","0.0+0.05"};
    						right[] = {"0.38-0.01","0.0+0.05"};
    						down[] = {"0.32-0.01","0.04+0.05"};
    						lineXleft = "0.06+0.05";
    						lineYright = "0.05+0.05";
    						lineXleftMajor = "0.07+0.05";
    						lineYrightMajor = "0.04+0.05";
    						bottom = 0.7;
    						center = 0.5;
    						top = 0.3;
    						step = 10;
    						StepSize = "(0.70- 0.3)/15";
    						horizontal = 1;
    						min = "none";
    						max = "none";
    						numberEach = 3;
    						majorLineEach = 3;
    					};
    					class HorizontalLine
    					{
    						clipTL[] = {0.2,0.12};
    						clipBR[] = {0.8,0.96};
    						class HorizontalLineDraw
    						{
    							type = "line";
    							source = "Level0";
    							points[] = {{ "Level0",{ "-6*0.075/2",0.02 },1 },{ "Level0",{ "-5*0.075/2",0.02 },1 },{  },{ "Level0",{ "-4*0.075/2",0.02 },1 },{ "Level0",{ "-3*0.075/2",0.02 },1 },{  },{ "Level0",{ "-2*0.075/2",0.02 },1 },{ "Level0",{ "-1*0.075/2",0.02 },1 },{  },{ "Level0",{ "1*0.075/2",0.02 },1 },{ "Level0",{ "2*0.075/2",0.02 },1 },{  },{ "Level0",{ "3*0.075/2",0.02 },1 },{ "Level0",{ "4*0.075/2",0.02 },1 },{  },{ "Level0",{ "5*0.075/2",0.02 },1 },{ "Level0",{ "6*0.075/2",0.02 },1 }};
    						};
    					};
    				};
    				helmetMountedDisplay = 1;
    				helmetPosition[] = {-0.025,0.025,0.1};
    				helmetRight[] = {0.055,0,0};
    				helmetDown[] = {0,-0.05,0};
    			};
    		};
    	};
    	class fang1: FANG_Base
    	{
    		selectionHRotorStill = "rotor_static";
    		selectionHRotorMove = "rotor_blur";
    		selectionVRotorStill = "tailRotorStatic";
    		selectionVRotorMove = "tailRotorBlurred";
    		memoryPointLMissile = "Missile_1";
    		memoryPointRMissile = "Missile_2";
    		memoryPointLRocket = "Rocket_1";
    		memoryPointRRocket = "Rocket_2";
    		selectionFireAnim = "muzzleflash";
    		availableForSupportTypes[] = {"CAS_Heli"};
    		memoryPointCM[] = {"flare_launcher1","flare_launcher2"};
    		memoryPointCMDir[] = {"flare_launcher1_dir","flare_launcher2_dir"};
    		radarType = 4;
    		LockDetectionSystem = "2 + 8 + 4";
    		incomingMissileDetectionSystem = 16;
    		threat[] = {0.8,1,0.8};
    		weapons[] = {"M134_minigun"};
    		magazines[] = {"5000Rnd_762x51_Belt"};
    		memoryPointGun = "z_gun_muzzle";
    		gunBeg = "z_gun_muzzle";
    		gunEnd = "z_gun_chamber";
    		laserScanner = 1;
    		hiddenSelectionsTextures[] = {};
    		crew = "Wyvern_Pilot";
    		scope = 2;
    		side = 2;
    		faction = "VIBORA";
    		displayName = "<V> Wyvern";
    		vehicleClass = "Vibora_Air";
    		accuracy = 1;
    		driverAction = "wyvern_Pilot";
    		memoryPointsGetInDriver = "pos_driver";
    		memoryPointsGetInDriverDir = "pos_driver_dir";
    		//driverAction = "Chopperlight_L_Static_H";
    		//getInAction = "ChopperLight_L_In_H";
    		getInAction = "GetInLow";
    		getOutAction = "GetOutLow";
    		driverlefthandanimname = "lever_pilot";
    		driverleftleganimname = "";
    		driverrighthandanimname = "stick_pilot";
    		driverrightleganimname = "";
    		maxSpeed = 200;
    		typicalCargo[] = {"B_Helipilot_F"};
    		class Exhausts
    		{
    			class Exhaust1
    			{
    				position = "exhaust1";
    				direction = "exhaust1_dir";
    				effect = "ExhaustsEffectHeliCom";
    			};
    		};
    		class MarkerLights
    		{
    			class WhiteStill
    			{
    				name = "bily pozicni";
    				color[] = {1,1,1};
    				ambient[] = {0.1,0.1,0.1};
    				blinking = 1;
    				intensity = 75;
    				blinkingPattern[] = {0.1,0.9};
    				blinkingPatternGuarantee = 0;
    				drawLightSize = 0.2;
    				drawLightCenterSize = 0.04;
    			};
    			class RedStill
    			{
    				name = "cerveny pozicni";
    				color[] = {0.8,0,0};
    				ambient[] = {0.08,0,0};
    				intensity = 75;
    				drawLight = 1;
    				drawLightSize = 0.15;
    				drawLightCenterSize = 0.04;
    				activeLight = 0;
    				blinking = 0;
    				dayLight = 0;
    				useFlare = 0;
    			};
    			class GreenStill
    			{
    				name = "zeleny pozicni";
    				color[] = {0,0.8,0};
    				ambient[] = {0,0.08,0};
    				intensity = 75;
    				drawLight = 1;
    				drawLightSize = 0.15;
    				drawLightCenterSize = 0.04;
    				activeLight = 0;
    				blinking = 0;
    				dayLight = 0;
    				useFlare = 0;
    			};
    			class RedBlinking
    			{
    				name = "bily pozicni blik";
    				color[] = {0.9,0.15,0.1};
    				ambient[] = {0.09,0.015,0.01};
    				intensity = 75;
    				blinking = 1;
    				blinkingPattern[] = {0.1,0.9};
    				blinkingPatternGuarantee = 0;
    				drawLightSize = 0.2;
    				drawLightCenterSize = 0.04;
    			};
    			class WhiteBlinking
    			{
    				name = "cerveny pozicni blik";
    				color[] = {0.9,0.15,0.1};
    				intensity = 75;
    				ambient[] = {0.09,0.015,0.01};
    				blinking = 1;
    				blinkingPattern[] = {0.2,1.3};
    				blinkingPatternGuarantee = 0;
    				drawLightSize = 0.25;
    				drawLightCenterSize = 0.08;
    			};
    		};
    		class Reflectors
    		{
    			class Middle
    			{
    				color[] = {7000,7500,10000,1};
    				ambient[] = {100,100,100,0};
    				position = "searchlight";
    				direction = "searchlight_end";
    				hitpoint = "searchlight";
    				selection = "searchlight";
    				size = 1;
    				innerAngle = 20;
    				outerAngle = 60;
    				coneFadeCoef = 10;
    				intensity = 50;
    				useFlare = 1;
    				dayLight = 0;
    				FlareSize = 6;
    				class Attenuation
    				{
    					start = 1;
    					constant = 0;
    					linear = 0;
    					quadratic = 4;
    				};
    			};
    		};
    		class HitPoints: HitPoints{};
    		armor = 30;
    		damageResistance = 0.01039;
    		cost = 30000000;
    		model = "vhx_heli\cobra_fang\fang1.p3d";
    		picture = "vhx_heli\cobra_fang\data\ui\map_fang_a.paa";
    		mapSize = 10;
    		Icon = "vhx_heli\cobra_fang\data\ui\map_fang_a.paa";
    		/* 
    		weapons[] = {"Safe","rockets_Skyfire","CMFlareLauncher"};
    		magazines[] = {"38Rnd_80mm_rockets","168Rnd_CMFlare_Chaff_Magazine"};
    		 */
    		//enableManualFire = 1;
    		//hasDriver = -1;
    		//hasGunner = 0;
    		//driverIsCommander = 1;
    		class MFD
    		{
    			class AirplaneHUD
    			{
    				topLeft = "HUD_top_left";
    				topRight = "HUD_top_right";
    				bottomLeft = "HUD_bottom_left";
    				borderLeft = 0;
    				borderRight = 0;
    				borderTop = 0;
    				borderBottom = 0;
    				color[] = {1,1,1,1};
    				helmetMountedDisplay = 1;
    				helmetPosition[] = {-0.025,0.025,0.1};
    				helmetRight[] = {0.05,0,0};
    				helmetDown[] = {0,-0.05,0};
    				class Bones
    				{
    					class HUDCenter
    					{
    						type = "fixed";
    						pos[] = {0.5,0.5};
    					};
    					class WeaponAim
    					{
    						type = "vector";
    						source = "weapon";
    						pos0[] = {0.5,0.5};
    						pos10[] = {0.847,0.845};
    					};
    					class VelocityVector
    					{
    						type = "vector";
    						source = "velocityToView";
    						pos0[] = {0.5,0.5};
    						pos10[] = {0.847,0.845};
    					};
    					class ForwardVector
    					{
    						type = "vector";
    						source = "forward";
    						pos0[] = {0,0};
    						pos10[] = {0.347,0.345};
    					};
    					class HorizonVector
    					{
    						type = "horizon";
    						pos0[] = {0.5,0.5};
    						pos10[] = {0.990727,0.987899};
    						angle = 0;
    					};
    					class GunnerAim
    					{
    						type = "vector";
    						source = "weapon";
    						pos0[] = {0,-0.0025};
    						pos10[] = {0.01,0.0025};
    					};
    					class VerticalSpeedBone
    					{
    						type = "linear";
    						source = "vspeed";
    						sourceScale = 1;
    						min = -15;
    						max = 15;
    						minPos[] = {0,-0.15};
    						maxPos[] = {0,0.15};
    					};
    				};
    				class Draw
    				{
    					alpha = 1;
    					color[] = {0.25,1,0.25};
    					condition = "on";
    					class Static
    					{
    						type = "line";
    						width = 4;
    						points[] = {{ { 0.48,0.14 },1 },{ { 0.5,0.12 },1 },{ { 0.52,0.14 },1 },{  },{ { 0.4,0.86 },1 },{ { 0.4,0.94 },1 },{ { 0.6,0.94 },1 },{ { 0.6,0.86 },1 },{ { 0.4,0.86 },1 },{  },{ { 0.4,0.9 },1 },{ { 0.408,0.9 },1 },{  },{ { 0.6,0.9 },1 },{ { 0.592,0.9 },1 },{  },{ { 0.5,0.86 },1 },{ { 0.5,0.868 },1 },{  },{ { 0.5,0.94 },1 },{ { 0.5,0.932 },1 }};
    					};
    					class CollectiveGroup
    					{
    						condition = "simulRTD";
    						class CollectiveText
    						{
    							type = "text";
    							source = "static";
    							text = "%";
    							align = "right";
    							scale = 1;
    							pos[] = {{ 0.22,0.2 },1};
    							right[] = {{ 0.28,0.2 },1};
    							down[] = {{ 0.22,0.24 },1};
    						};
    						class CollectiveNumber
    						{
    							type = "text";
    							source = "rtdCollective";
    							sourceScale = 100;
    							align = "left";
    							scale = 1;
    							pos[] = {{ 0.22,0.2 },1};
    							right[] = {{ 0.28,0.2 },1};
    							down[] = {{ 0.22,0.24 },1};
    						};
    					};
    					class SpeedNumber
    					{
    						type = "text";
    						source = "speed";
    						sourceScale = 3.6;
    						align = "right";
    						scale = 1;
    						pos[] = {{ 0.16,0.48 },1};
    						right[] = {{ 0.22,0.48 },1};
    						down[] = {{ 0.16,0.52 },1};
    					};
    					class AltNumber
    					{
    						type = "text";
    						source = "altitudeAGL";
    						sourceScale = 1;
    						align = "left";
    						scale = 1;
    						pos[] = {{ 0.84,0.48 },1};
    						right[] = {{ 0.9,0.48 },1};
    						down[] = {{ 0.84,0.52 },1};
    					};
    					class Weapons
    					{
    						type = "text";
    						source = "weapon";
    						sourceScale = 1;
    						align = "right";
    						scale = 0.5;
    						pos[] = {{ 0,0.85 },1};
    						right[] = {{ 0.04,0.85 },1};
    						down[] = {{ 0,0.89 },1};
    					};
    					class Ammo
    					{
    						type = "text";
    						source = "ammo";
    						sourceScale = 1;
    						align = "right";
    						scale = 0.5;
    						pos[] = {{ 0,0.9 },1};
    						right[] = {{ 0.04,0.9 },1};
    						down[] = {{ 0,0.94 },1};
    					};
    					class VerticalSpeedScale
    					{
    						type = "line";
    						width = 4;
    						points[] = {{ "VerticalSpeedBone",{ 0.85,0.48 },1 },{ "VerticalSpeedBone",{ 0.87,0.5 },1 },{ "VerticalSpeedBone",{ 0.85,0.52 },1 },{  },{ { 0.875,0.35 },1 },{ { 0.885,0.35 },1 },{  },{ { 0.875,0.4 },1 },{ { 0.885,0.4 },1 },{  },{ { 0.875,0.45 },1 },{ { 0.885,0.45 },1 },{  },{ { 0.875,0.5 },1 },{ { 0.895,0.5 },1 },{  },{ { 0.875,0.55 },1 },{ { 0.885,0.55 },1 },{  },{ { 0.875,0.6 },1 },{ { 0.885,0.6 },1 },{  },{ { 0.875,0.65 },1 },{ { 0.885,0.65 },1 }};
    					};
    					class HeadingScale
    					{
    						type = "scale";
    						horizontal = 1;
    						source = "heading";
    						sourceScale = 1;
    						width = 4;
    						top = 0.2;
    						center = 0.5;
    						bottom = 0.8;
    						lineXleft = 0.11;
    						lineYright = 0.1;
    						lineXleftMajor = 0.11;
    						lineYrightMajor = 0.09;
    						majorLineEach = 2;
    						numberEach = 2;
    						step = 22.5;
    						stepSize = "(0.80 - 0.20) / 6";
    						align = "center";
    						scale = 1;
    						pos[] = {0.2,0.05};
    						right[] = {0.26,0.05};
    						down[] = {0.2,0.09};
    					};
    					class HorizonLine
    					{
    						clipTL[] = {0.2,0.145};
    						clipBR[] = {0.8,0.855};
    						class HorizonLineDraw
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "HorizonVector",{ "-6 * 0.0375",0 },1 },{ "HorizonVector",{ "-5 * 0.0375",0 },1 },{  },{ "HorizonVector",{ "-4 * 0.0375",0 },1 },{ "HorizonVector",{ "-3 * 0.0375",0 },1 },{  },{ "HorizonVector",{ "-2 * 0.0375",0 },1 },{ "HorizonVector",{ "-1 * 0.0375",0 },1 },{  },{ "HorizonVector",{ "1 * 0.0375",0 },1 },{ "HorizonVector",{ "2 * 0.0375",0 },1 },{  },{ "HorizonVector",{ "3 * 0.0375",0 },1 },{ "HorizonVector",{ "4 * 0.0375",0 },1 },{  },{ "HorizonVector",{ "5 * 0.0375",0 },1 },{ "HorizonVector",{ "6 * 0.0375",0 },1 }};
    						};
    					};
    					class Gunner
    					{
    						type = "line";
    						width = 4;
    						points[] = {{ "GunnerAim",{ "0.5 - 0.015","0.9 - 0.008" },1 },{ "GunnerAim",{ "0.5 - 0.015","0.9 + 0.008" },1 },{ "GunnerAim",{ "0.5 + 0.015","0.9 + 0.008" },1 },{ "GunnerAim",{ "0.5 + 0.015","0.9 - 0.008" },1 },{ "GunnerAim",{ "0.5 - 0.015","0.9 - 0.008" },1 }};
    					};
    					class MGun
    					{
    						condition = "mgun";
    						class Circle
    						{
    							type = "line";
    							width = 4;
    							points[] = {{ "ForwardVector",1,"WeaponAim",{ 0.025,0 },1 },{ "ForwardVector",1,"WeaponAim",{ 0.01,0 },1 },{  },{ "ForwardVector",1,"WeaponAim",{ 0,0.0248559 },1 },{ "ForwardVector",1,"WeaponAim",{ 0,0.00994236 },1 },{  },{ "ForwardVector",1,"WeaponAim",{ -0.025,0 },1 },{ "ForwardVector",1,"WeaponAim",{ -0.01,0 },1 },{  },{ "ForwardVector",1,"WeaponAim",{ 0,-0.0248559 },1 },{ "ForwardVector",1,"WeaponAim",{ 0,-0.00994236 },1 }};
    						};
    					};
    				};
    			};
    		};
    		memoryPointDriverOptics = "pilotCam_pos";
    		//
    		class PilotCamera
    		{
    			class OpticsIn
    			{
    				class Wide
    				{
    					opticsDisplayName = "WFOV";
    					initAngleX = 0;
    					minAngleX = 0;
    					maxAngleX = 0;
    					initAngleY = 0;
    					minAngleY = 0;
    					maxAngleY = 0;
    					initFov = "(56 / 120)";
    					minFov = "(56 / 120)";
    					maxFov = "(56/ 120)";
    					directionStabilized = 1;
    					visionMode[] = {"Normal","NVG","Ti"};
    					thermalMode[] = {0,1};
    					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
    					opticsPPEffects[] = {"OpticsCHAbera2","OpticsBlur2"};
    				};
    				class Medium: Wide
    				{
    					opticsDisplayName = "MFOV";
    					initFov = "(12 / 120)";
    					minFov = "(12 / 120)";
    					maxFov = "(12 / 120)";
    					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d";
    				};
    				class Narrow: Wide
    				{
    					opticsDisplayName = "NFOV";
    					initFov = "(4 / 120)";
    					minFov = "(4 / 120)";
    					maxFov = "(4 / 120)";
    					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
    				};
    				class VeryNarrow: Wide
    				{
    					opticsDisplayName = "NFOV";
    					initFov = "(2 / 120)";
    					minFov = "(2 / 120)";
    					maxFov = "(2 / 120)";
    					gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
    				};
    			};
    			minTurn = -75;
    			maxTurn = 75;
    			initTurn = 0;
    			minElev = -40;
    			maxElev = 60;
    			initElev = -10;
    			maxXRotSpeed = 1.3;
    			maxYRotSpeed = 1.3;
    			maxMouseXRotSpeed = 0.5;
    			maxMouseYRotSpeed = 0.5;
    			pilotOpticsShowCursor = 1;
    			LODDriverOpticsIn = 1201;
    			controllable = 1;
    		};
    		class UserActions
    		{
    			class fang_gun_yaw_left
    			{
    				priority = 0.05;
    				displayName = "";
    				shortcut = "LookLeft"; 
    				condition = "this animationPhase 'gun_yaw' < 1.001 and player in this";
    				statement = "this animate ['gun_yaw',1]; this animate ['Rightwing',1]; this say3D 'Plane_Fighter_01_foldwing_sound'";
    				position = "pilotcontrol";
    				radius = 10;
    				onlyforplayer = 1;
    				showWindow = 0;
    				hideOnUse = 1;
    			};      
    		};
    		class AnimationSources: AnimationSources
    		{
    			class gun_yaw
    			{
    				source = "user";
    				animPeriod = 1;
    				initPhase = 0;
    				displayName = "";
    				mass = 0;
    				forceAnimatePhase = 0;
    				//forceAnimate[] = {"Leftwing",1,"Rightwing",1};
    			};
    			class AddScreen1
    			{
    				source = "user";
    				animPeriod = 1e-006;
    				initPhase = 0;
    			};
    		};
    		class RenderTargets
    		{
    			class DriverCam
    			{
    				renderTarget = "rendertarget0";
    				class DriverView
    				{
    					pointPosition = "pip0_pos";
    					pointDirection = "pip0_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 0.8;
    				};
    			};
    		};
    		class Turrets{};class Library
    		{
    			libTextDesc = "AH-1";
    		};
    		class Damage
    		{
    			tex[] = {};
    			mat[] = {"vhx_heli\cobra_fang\data\fang_ext.rvmat"};
    		};
    	};
    };
    
    //};

     

     

    • Like 1

  3. Thanks for pointing me in that direction, @.kju! It's a better experience on discord.

    Here's the updated video:

     

    Here's the latest config.cpp:

    Spoiler
    
    #define _ARMA_
    #include "basicdefines_A3.hpp"
    enum {
    	destructengine = 2,
    	destructdefault = 6,
    	destructwreck = 7,
    	destructtree = 3,
    	destructtent = 4,
    	stabilizedinaxisx = 1,
    	stabilizedinaxesxyz = 4,
    	stabilizedinaxisy = 2,
    	stabilizedinaxesboth = 3,
    	destructno = 0,
    	stabilizedinaxesnone = 0,
    	destructman = 5,
    	destructbuilding = 1
    };
    class CfgPatches
    {
    	class Mauler
    	{
    		addonRootClass = "A3_Armor_F_EPB";
    		units[] = {"mauler_F"};
    		weapons[] = {};
    		requiredVersion = 0.1;
    		requiredAddons[] = {"A3_Armor_F_EPB"};
    	};
    };
    class CfgFactionClasses
    {
    	class SixOneJTF
    	{
    		displayName = "61st JTF";
    		author = "Scot Gilmore";
    		icon = "data_f\faction_gijoe_co.paa";
    		priority = 3;
    		side = 1; 
    	};
    };
    class CfgVehicleClasses
    {
    	class SixOneJTF_Armor
    	{
    		displayName = "61st JTF Armor";
    	};
    };
     class CfgMovesBasic
    {
    	class Default;
    	class DefaultDie;
    	class ManActions
    	{
    		mauler_Driver = "mauler_driver";
    		mauler_Commander = "mauler_cmdr";
    		mauler_Gunner = "mauler_gunner";
    	};
    }; 
    class CfgMovesMaleSdr: CfgMovesBasic
    {
    	class States
    	{
    		class Crew;
    		class mauler_driver: Crew
    		{
    			file = "vhx_armor\gijoe_mauler\anims\mauler_driver";
    			actions = "CargoActions";
    			aiming = "aimingNo";
    			aimingBody = "aimingNo";
    			//legs = "legsNo";
    			//head = "headNo";
    			disableWeapons = 1;
    			interpolationRestart = 1;
    			soundEdge[] = {0.45};
    			boundingSphere = 2.5;
    			canPullTrigger = 0;
    			leaning = "crewShake";
    			rightHandIKCurve[] = {1};
    			leftHandIKCurve[] = {1};
    			rightLegIKCurve[] = {1};
    			leftLegIKCurve[] = {1};
    			ConnectTo[] = {};
    			InterpolateTo[] = {"Unconscious",0.1};
    		};
    		class mauler_commander: mauler_driver
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\commander\mauler_commander";
    			interpolateTo[] = {"mauler_KIA_Commander",1};
    		};
    		class mauler_commanderOut: Crew
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\commanderOut\mauler_commanderOut";
    			interpolateTo[] = {"mauler_KIA_CommanderOut",1};
    		};
    		class mauler_KIA_commanderOut: DefaultDie
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\commander\mauler_commander";
    			speed = 0.5;
    			looped = 0;
    			terminal = 1;
    			soundEnabled = 0;
    			connectTo[] = {"Unconscious",0.1};
    		};
    		class mauler_KIA_commander: mauler_KIA_CommanderOut
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\commander\mauler_commander";
    		};
    		class mauler_KIA_gunner: mauler_KIA_CommanderOut
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\mauler_gunner";
    		};
    		//---------------------------------------------------------
    		class mauler_Gunner: mauler_driver
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\mauler_gunner";
    			interpolateTo[] = {"mauler_KIA_gunner",1};
    		};
    		class mauler_GunnerOut: Crew
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\mauler_gunner";
    			interpolateTo[] = {"mauler_KIA_gunnerOut",1};
    		};
    		class mauler_KIA_GunnerOut: mauler_KIA_CommanderOut
    		{
    			file = "vhx_armor\gijoe_mauler\data\Anims\mauler_KIA_gunner";
    		};
    	};
    };
    
    class DefaultEventhandlers;
    class WeaponFireGun;
    class WeaponCloudsGun;
    class WeaponFireMGun;
    class WeaponCloudsMGun;
    class RCWSOptics;
    class Optics_Armored;
    class Optics_Commander_02: Optics_Armored
    {
    	class Wide;
    	class Medium;
    	class Narrow;
    };
    class Optics_Gunner_MBT_02: Optics_Armored
    {
    	class Wide;
    	class Medium;
    	class Narrow;
    };
    class CfgVehicles
    {
    	class LandVehicle;
    	class Tank: LandVehicle
    	{
    		class NewTurret;
    		class Sounds;
    		class HitPoints;
    		class CommanderOptics;
    	};
    	class Tank_F: Tank
    	{
    		class Turrets
    		{
    			class MainTurret: NewTurret
    			{
    				class ViewGunner;
    				class Turrets
    				{
    					class CommanderOptics;
    				};
    			};
    		};
    		class AnimationSources;
    		class ViewPilot;
    		class ViewOptics;
    		class ViewCargo;
    		class HeadLimits;
    		class HitPoints: HitPoints
    		{
    			class HitHull;
    			class HitEngine;
    			class HitLTrack;
    			class HitRTrack;
    		};
    		class Sounds: Sounds
    		{
    			class Engine;
    			class Movement;
    		};
    	};
    	class mauler_Base: Tank_F
    	{
    		author = "Scot Gilmore";
    		model = "vhx_armor\gijoe_mauler\mauler1.p3d";
    		picture = "vhx_armor\gijoe_mauler\data\UI\pic_mauler_co.paa";
    		Icon = "vhx_armor\gijoe_mauler\data\UI\map_mauler_co.paa";
    		scope = 0;
    		MapSize = 7;
    		features = "Randomization: No						<br />Camo selections: 2 - turret, hull						<br />Script door sources: None						<br />Script animations: HideTurret						<br />Executed scripts: None						<br />Firing from vehicles: No						<br />Slingload: No						<br />Cargo proxy indexes: 1 to 7";
    		textSingular = "Black Bear";
    		textPlural = "Black Bears";
    		nameSound = "veh_vehicle_APC_s";
    		vehicleClass = "GIJoe_Armor";
    		displayname = "Black Bear LT";
    		accuracy = 0.3;
    		#include "sounds.hpp"
    // physx
    		numberPhysicalWheels = 12;
    		simulation = "tankX";
    		normalSpeedForwardCoef = 1.0;
    		slowSpeedForwardCoef = 0.45;
    		torqueCurve[] = {
    			{"(0/8000)","(2300/2300)"},
    			{"(1143/8000)","(2300/2300)"},
    			{"(2286/8000)","(2300/2300)"},
    			{"(3429/8000)","(2300/2300)"},
    			{"(4572/8000)","(2300/2300)"},
    			{"(5715/8000)","(2300/2300)"},
    			{"(6858/8000)","(2300/2300)"},
    			{"(8000/8000)","(2300/2300)"}
    		};
    		maxOmega = 272.27;
    		enginePower = 520;
    		peakTorque = 1660;
    		idleRPM = 850;
    		redRPM = 2600;
    		thrustDelay = 0.2;
    		clutchStrength = 105.0;
    		fuelCapacity = 640;
    		brakeIdleSpeed = 1.78;
    		tankTurnForce = 167531; //mass=24321. tTF = mass X 11 
    		engineLosses = 25;
    		transmissionLosses = 15;
    		cost=1500000;
    		damageResistance = 0.02;
    		crewVulnerable = false;
    		armor = 260;
    		armorStructural = 280;
    		driverAction = "mauler_driver";
    		driverInAction = "mauler_driver";
    		insideSoundCoef = 0.9;
    		smokeLauncherGrenadeCount = 6; //Number of smoke shells launched at once
    		smokeLauncherVelocity = 14; //Velocity which smoke shells are launched at
    		smokeLauncherOnTurret = 1; //0 if smoke launchers are on hull, 1 if on turret
    		smokeLauncherAngle = 120; //Angle within which smoke grenades are launched (actual spacing may end up smaller so use slighty higher number)
    		category = "Armored";
    		destrType = "DestructDefault";
    		maxFordingDepth = 1.5;
    		waterResistance = 0;
    		waterDamageEngine = 0.2;
    		waterLeakiness = 10;
    		changeGearMinEffectivity[] = {0.95,0.0,0.85};
    		switchTime = 0.1;
    		latency = 1.0;
    		crew = "mauler_driver";
    		tracksSpeed = 1.375;
    		maxSpeed = 73;
    		viewCargoShadow = 1;
    		viewCargoShadowDiff = 0.05;
    		viewCargoShadowAmb = 0.5;
    		transportSoldier = 0;
    		getInAction = "GetInLow";
    		getOutAction = "GetOutLow";
    		cargoGetInAction[] = {"GetInHigh"};
    		cargoGetOutAction[] = {"GetOutHigh"};
    		forceHideDriver = 0;
    		viewDriverInExternal = 1;
    		DriverForceOptics = 0;
    		driverDoor = "hatchDriver";
    		radarType = 1;
    		LockDetectionSystem = 4;
    		IncommingMisslieDetectionSystem = 16;
    		irscanrangemax = 3000;
    		irscanrangemin = 500;
    		irtarget = 1;
    		irScanGround = 0;
    		laserscanner = 0;
    		threat[] = {0.9,0.9,0.4};
    		//driverCompartments = "Compartment1";
    		class complexGearbox
    		{
    			GearboxRatios[] = {"R1",-2.0,"N",0,"D1",1.0};
    			TransmissionRatios[] = {"High",6.25};
    			gearBoxMode = "auto";
    			moveOffGear = 3;
    			driveString = "D";
    			neutralString = "N";
    			reverseString = "R";
    			transmissionDelay = 0.1;
    		};
    		/*
    		class complexGearbox
    		{
    			GearboxRatios[]    = {"R2",-3.9,"N",0,"D1",4.7,"D2",3.5,"D3",2.6,"D4",2.0,"D5",1.5,"D6",1.125,"D7",0.85};
    			TransmissionRatios[] = {"High",15};
    			gearBoxMode        = "auto"; //gearbox can be of type: full-auto (only requires 'W' or 'S'), auto (requires shift between drive and reverse), semi-auto, manual
    			moveOffGear        = 1; // defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default.
    			driveString        = "D"; // string to display in the HUD for forward gears.
    			neutralString      = "N"; // string to display in the HUD for neutral gear.
    			reverseString      = "R"; // string to display in the HUD for reverse gears.
    			transmissionDelay  = 0.1;
    		};
    		*/
    		driveOnComponent[] = {"pasoffsetL, pasoffsetP"};
    		class Wheels
    		{
    			class L2
    			{
    				wheelBrakeFrictionCoef = 0.01;
    				boneName = "wheel_podkoloL1";
    				center = "wheel_1_2_axis";
    				boundary = "wheel_1_2_bound";
    				damping = 65.0;
    				steering = 0;
    				side = "left";
    				weight = 130;
    				mass = 130;
    				MOI = 30;
    				latStiffX = 28;
    				latStiffY = 280;
    				longitudinalStiffnessPerUnitGravity = 100000;
    				maxBrakeTorque = 4520;
    				sprungMass = 1520; // mass/12
    				springStrength = 198000; // 50668.75; // sprungMass*5^2 (try 5^2 up to 10^2, then tweak)
    				springDamperRate = 14811; // 2026.75; // sDR = dampingRate X 2 X sqrt(springStrength X sprungMass)
    				dampingRate = 1.0; // ~0.1 to ~0.8;
    				dampingRateInAir = 5000;
    				dampingRateDamaged = 10;
    				dampingRateDestroyed = 10000;
    				maxDroop = 0.15;
    				maxCompression = 0.15;
    				//frictionVsSlipGraph[] = {{0.0,1.5},{0.5,1.5},{1,1.5}};
    			};
    			class L3: L2
    			{
    				boneName = "wheel_podkolol2";
    				center = "wheel_1_3_axis";
    				boundary = "wheel_1_3_bound";
    			};
    			class L4: L2
    			{
    				boneName = "wheel_podkolol3";
    				center = "wheel_1_4_axis";
    				boundary = "wheel_1_4_bound";
    			};
    			class L5: L2
    			{
    				boneName = "wheel_podkolol4";
    				center = "wheel_1_5_axis";
    				boundary = "wheel_1_5_bound";
    			};
    			class L6: L2
    			{
    				boneName = "wheel_podkolol5";
    				center = "wheel_1_6_axis";
    				boundary = "wheel_1_6_bound";
    			};
    			class L7: L2
    			{
    				boneName = "wheel_podkolol6";
    				center = "wheel_1_7_axis";
    				boundary = "wheel_1_7_bound";
    			};
    			class L1: L2
    			{
    				boneName = "";
    				center = "wheel_1_1_axis";
    				boundary = "wheel_1_1_bound";
    				sprungMass = 1500.0;
    				springStrength = 37500;
    				springDamperRate = 7500;
    				maxDroop = 0;
    				maxCompression = 0;
    			};
    			class L9: L2
    			{
    				boneName = "wheel_podkoloL9";
    				center = "wheel_1_9_axis";
    				boundary = "wheel_1_9_bound";
    				sprungMass = 1500.0;
    				springStrength = 37500;
    				springDamperRate = 7500;
    				maxDroop = 0;
    				maxCompression = 0;
    			};
    			//-------------------------------------------------
    			class R2: L2
    			{
    				boneName = "wheel_podkolop1";
    				center = "wheel_2_2_axis";
    				boundary = "wheel_2_2_bound";
    				side = "right";
    			};
    			class R3: R2
    			{
    				boneName = "wheel_podkolop2";
    				center = "wheel_2_3_axis";
    				boundary = "wheel_2_3_bound";
    			};
    			class R4: R2
    			{
    				boneName = "wheel_podkolop3";
    				center = "wheel_2_4_axis";
    				boundary = "wheel_2_4_bound";
    			};
    			class R5: R2
    			{
    				boneName = "wheel_podkolop4";
    				center = "wheel_2_5_axis";
    				boundary = "wheel_2_5_bound";
    			};
    			class R6: R2
    			{
    				boneName = "wheel_podkolop5";
    				center = "wheel_2_6_axis";
    				boundary = "wheel_2_6_bound";
    			};
    			class R7: R2
    			{
    				boneName = "wheel_podkolop6";
    				center = "wheel_2_7_axis";
    				boundary = "wheel_2_7_bound";
    			};
    			class R1: R2
    			{
    				boneName = "";
    				center = "wheel_2_1_axis";
    				boundary = "wheel_2_1_bound";
    				sprungMass = 1500.0;
    				springStrength = 37500;
    				springDamperRate = 7500;
    				maxDroop = 0;
    				maxCompression = 0;
    			};
    			class R9: R2
    			{
    				boneName = "wheel_podkoloP9";
    				center = "wheel_2_9_axis";
    				boundary = "wheel_2_9_bound";
    				sprungMass = 1500.0;
    				springStrength = 37500;
    				springDamperRate = 7500;
    				maxDroop = 0;
    				maxCompression = 0;
    			};
    		};
    		class HitPoints: HitPoints
    		{
    			class HitHull: HitHull
    			{
    				armor = 0.4;
    				material = -1;
    				name = "telo";
    				visual = "zbytek";
    				passThrough = 0;
    				minimalHit = 0.08;
    				explosionShielding = 0;
    				radius = 0.1;
    			};
    			class HitEngine: HitEngine
    			{
    				armor = 0.45;
    				material = -1;
    				name = "motor";
    				passThrough = 0;
    				minimalHit = 0.139;
    				explosionShielding = 0.009;
    				radius = 0.17;
    			};
    			class HitLTrack: HitLTrack
    			{
    				armor = 0.5;
    				material = -1;
    				name = "pas_L";
    				passThrough = 0;
    				minimalHit = 0.15;
    				explosionShielding = 0.35;
    				radius = 0.3;
    			};
    			class HitRTrack: HitRTrack
    			{
    				armor = 0.5;
    				material = -1;
    				name = "pas_P";
    				passThrough = 0;
    				minimalHit = 0.15;
    				explosionShielding = 0.35;
    				radius = 0.3;
    			};
    		};
    		class ViewOptics: ViewOptics
    		{
    			visionMode[] = {"Normal","NVG"};
    			initFov = 0.7;
    			minFov = 0.7;
    			maxFov = 0.7;
    		};
    		class Turrets: Turrets
    		{
    			class MainTurret: MainTurret
    			{
    				
    				class Turrets: Turrets
    				{
    					class CommanderOptics: CommanderOptics
    					{
    						memoryPointGunnerOutOptics = ""; //"commanderview";
    						memoryPointGunnerOptics = "pip4_pos"; //"commanderview";
    						minElev = -5;
    						maxElev = 30;
    						initElev = 0;
    						minTurn = -360;
    						maxTurn = 360;
    						initTurn = 0;
    						weapons[] = {"SmokeLauncher"};
    						magazines[] = {"SmokeLauncherMag","SmokeLauncherMag"};
    						outGunnerMayFire = 0;
    						inGunnerMayFire = 1;
    						gunnerAction = "mauler_commanderOut";
    						gunnerInAction = "mauler_commander";
    						gunnerGetInAction = "GetInHigh";
    						gunnerGetOutAction = "GetOutHigh";
    						gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Commander_02_F";
    						gunnerOutOpticsModel = "";
    						gunnerOpticsEffect[] = {};
    						isPersonTurret = 1;
    						personTurretAction = "vehicle_turnout_1";
    						minOutElev = -10;
    						maxOutElev = 15;
    						initOutElev = 0;
    						minOutTurn = -45;
    						maxOutTurn = 90;
    						initOutTurn = 0;
    						gunnerForceOptics = 0;
    						usePip = 1;
    						animationSourceStickX = "com_turret_control_x";
    						animationSourceStickY = "com_turret_control_y";
    						gunnerRightHandAnimName = "com_turret_control";
    						turretFollowFreeLook = 2;
    						viewGunnerShadowAmb = 0.5;
    						viewGunnerShadowDiff = 0.05;
    						LODTurnedIn = 1000;
    						LODTurnedOut = 1000;
    						LODOpticsIn = 0;
    						class ViewGunner: ViewGunner
    						{
    							initAngleX = -5;
    							initAngleY = 0;
    							initFov = 0.9;
    							minFov = 0.25;
    							maxFov = 1.25;
    							minAngleX = -65;
    							maxAngleX = 85;
    							minAngleY = -150;
    							maxAngleY = 150;
    							minMoveX = -0.075;
    							maxMoveX = 0.075;
    							minMoveY = -0.075;
    							maxMoveY = 0.075;
    							minMoveZ = -0.075;
    							maxMoveZ = 0.1;
    						};
    						class ViewOptics: ViewOptics
    						{
    							initAngleX = 0;
    							minAngleX = -30;
    							maxAngleX = 30;
    							initAngleY = 0;
    							minAngleY = -100;
    							maxAngleY = 100;
    							initFov = 0.31;
    							minFov = 0.034;
    							maxFov = 0.31;
    							visionMode[] = {"Normal","TI"};
    							thermalMode[] = {2,3};
    						};
    						class OpticsIn: Optics_Commander_02
    						{
    							class Wide: Wide{};
    							class Medium: Medium{};
    							class Narrow: Narrow{};
    						};
    						turretInfoType = "RscWeaponRangeFinder";
    						showCrewAim = 1;
    						startEngine = 0;
    						gunnerHasFlares = 1;
    						stabilizedInAxes = 3;
    						maxHorizontalRotSpeed = 1.8;
    						maxVerticalRotSpeed = 1.8;
    						viewGunnerInExternal = 1;
    						/*  
    						body = "obsTurret";
    						gun = "obsGun";
    						animationSourceBody = "obsTurret";
    						animationSourceGun = "obsGun";
    						memoryPointsGetInGunner = "pos commander";
    						memoryPointsGetInGunnerDir = "pos commander dir";
    						gunnerDoor = "hatch_cmdr";
    						//gunnerCompartments = "Compartment3";
    						*/
    						class HitPoints
    						{
    							class HitTurret
    							{
    								armor = 0.3;
    								material = -1;
    								name = "vezVelitele";
    								visual = "vezVelitele";
    								passThrough = 0;
    								minimalHit = 0.03;
    								explosionShielding = 0.001;
    								radius = 0.25;
    							};
    							class HitGun
    							{
    								armor = 0.3;
    								material = -1;
    								name = "zbranVelitele";
    								visual = "zbranVelitele";
    								passThrough = 0;
    								minimalHit = 0.03;
    								explosionShielding = 0.001;
    								radius = 0.25;
    							};
    						};
    					};
    				};
    				gunBeg = "Usti hlavne";
    				gunEnd = "Konec hlavne";
    				memoryPointGun = "usti hlavne3";
    				weapons[] = {"cannon_125mm","LMG_coax"};
    				magazines[] = {"24Rnd_125mm_APFSDS_T_Green","24Rnd_125mm_APFSDS_T_Green","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"};
    				soundServo[] = {"A3\sounds_f\dummysound",0.031622775,1.0,30};
    				minElev = -9;
    				maxElev = 62;
    				initElev = 0;
    				gunnerForceOptics = 0;
    				gunnerAction = "mauler_gunner";
    				gunnerInAction = "mauler_gunner";
    				gunnerGetInAction = "GetInHigh";
    				gunnerGetOutAction = "GetOutHigh";
    				gunnerDoor = "hatch_gunner";
    				memoryPointsGetInGunner = "pos gunner";
    				memoryPointsGetInGunnerDir = "pos gunner dir";
    				memoryPointGunnerOutOptics = ""; //"commanderview";
    				memoryPointGunnerOptics = "scopeGNR"; //"commanderview";
    				lodTurnedIn = 1100;
    				LODTurnedOut = 1100;
    				hideWeaponsGunner = 1;
    				outGunnerMayFire = 1;
    				inGunnerMayFire = 1;
    				viewGunnerInExternal = 1;
    				castGunnerShadow = 1;
    				forceHideGunner = 0;
    				stabilizedinaxes = 3;
    				gunnerOpticsModel = "\A3\weapons_f\reticle\Optics_Gunner_02_F";
    				gunnerOutOpticsModel = "";
    				turretInfoType = "RscOptics_MBT_01_gunner";
    				discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1200,1400,1600,1800,2000,2400,2800};
    				discreteDistanceInitIndex = 5;
    				selectionFireAnim = "zasleh";
    				lockWhenDriverOut = 0;
    				usePip = 1;
    				gunnerHasFlares = 0;
    				maxhorizontalrotspeed = 1.3;
    				maxverticalrotspeed = 1.3;
    				startengine = 0;
    				class OpticsIn
    				{
    					class Wide
    					{
    						initAngleX = 0;
    						minAngleX = -30;
    						maxAngleX = 30;
    						initAngleY = 0;
    						minAngleY = -100;
    						maxAngleY = 100;
    						initfov = "0.33333/ 4";
    						minFov = 0.117;
    						maxFov = 0.117;
    						visionMode[] = {"Normal","Ti"};
    						thermalMode[] = {4};
    						gunnerOpticsModel = "\rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\gunnerOptics_M2A2";
    						gunnerOpticsEffect[] = {};
    					};
    					class Narrow: Wide
    					{
    						gunnerOpticsModel = "\rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\gunnerOptics_M2A2_2";
    						initfov = "0.33333/ 12";
    						minFov = 0.039;
    						maxFov = 0.039;
    					};
    				};
    				class HitPoints
    				{
    					class HitTurret
    					{
    						armor = 0.5;
    						material = -1;
    						name = "vez";
    						visual = "vez";
    						passThrough = 0;
    						minimalHit = 0.14;
    						explosionShielding = 0.001;
    						radius = 0.08;
    					};
    					class HitGun
    					{
    						armor = 1.2;
    						material = -1;
    						name = "zbran";
    						visual = "";
    						passThrough = 0;
    						minimalHit = 0.13;
    						explosionShielding = 0.001;
    						radius = 0.1;
    					};
    				};
    			};
    		};
    		class AnimationSources : AnimationSources
    		{
    			class muzzle_rot_cannon {source = "ammorandom"; weapon = "cannon_120mm";};
    			class muzzle_rot_coax {source = "ammorandom"; weapon = "LMG_M200";};
    			class muzzle_rot_HMG {source = "ammorandom"; weapon = "HMG_NSVT";};
    			class recoil_source {source = "reload"; weapon = "cannon_120mm";};
    		};
    		class Damage {
    			tex[] = {};
    			mat[] = {
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_damage.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_destruct.rvmat",
    
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_body.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_body_damage.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_body_destruct.rvmat",
    
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_tracks.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_tracks_damage.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_tracks_destruct.rvmat",
    
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_turret.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_turret_damage.rvmat",
    				"A3\Armor_F_Gamma\MBT_02\Data\MBT_02_turret_destruct.rvmat",
    
    				"A3\Armor_F_Gamma\MBT_01\Data\MBT_01_scorcher.rvmat",
    				"A3\Armor_F_Gamma\MBT_01\Data\MBT_01_scorcher_damage.rvmat",
    				"A3\Armor_F_Gamma\MBT_01\Data\MBT_01_scorcher_destruct.rvmat"
    			};
    		};
    		class RenderTargets
    		{
    			class BackUpCam
    			{
    				renderTarget = "rendertarget0";
    				class CameraView0
    				{
    					pointPosition = "pip0_pos";
    					pointDirection = "pip0_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 1.0;
    				};
    			};
    			class DriverCam
    			{
    				renderTarget = "rendertarget1";
    				class CameraView1
    				{
    					pointPosition = "pip1_pos";
    					pointDirection = "pip1_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 0.8;
    				};
    			}; 
    			class MGCam
    			{
    				renderTarget = "rendertarget2";
    				class CameraView2
    				{
    					pointPosition = "pip2_pos";
    					pointDirection = "pip2_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 0.2;
    				};
    			};
    			class CannonCam
    			{
    				renderTarget = "rendertarget3";
    				class GunnerMainView
    				{
    					pointPosition = "pip3_pos";
    					pointDirection = "pip3_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 0.2;
    				};
    			};
    			class CommanderCam
    			{
    				renderTarget = "rendertarget4";
    				class CommanderView
    				{
    					pointPosition = "pip4_pos";
    					pointDirection = "pip4_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 1.0;
    				};
    			};
    			class GunnerClone
    			{
    				renderTarget = "rendertarget5";
    				class MainView
    				{
    					pointPosition = "pip3_pos";
    					pointDirection = "pip3_dir";
    					renderQuality = 2;
    					renderVisionMode = 0;
    					fov = 1.5;
    				};
    			};
    		};
    		class Exhausts
    		{
    			class Exhaust1
    			{
    				position = "exhaust1";
    				direction = "exhaust1_end";
    				effect = "ExhaustEffectTankSide";
    			};
    			class Exhaust2
    			{
    				position = "exhaust2";
    				direction = "exhaust2_end";
    				effect = "ExhaustEffectTankSide";
    			};
    		};
    		class Reflectors {
    			class Left {
    				color[] 	= {1900, 1300, 950};
    				ambient[]	= {5,5,5};
    				position 	= "Light_L";
    				direction 	= "Light_L_end";
    				hitpoint 	= "Light_L";
    				selection	= "Light_L";
    				size 		= 1;
    				innerAngle 	= 100;
    				outerAngle 	= 179;
    				coneFadeCoef = 10;
    				intensity 	= 1; //17.5
    				useFlare 	= 0;
    				dayLight 	= 0;
    				flareSize 	= 1.0;
    				class Attenuation {
    					start 		= 1.0;
    					constant 	= 0;
    					linear 		= 0;
    					quadratic 	= 0.25;
    					hardLimitStart = 30;
    					hardLimitEnd = 60;
    				};
    			};
    			class Right: Left {
    				position 	= "Light_R";
    				direction 	= "Light_R_end";
    				hitpoint 	= "Light_R";
    				selection 	= "Light_R";
    			};
    			class Right2: Right {
    				position 	= "light_R_flare";
    				useFlare 	= 1;
    			};
    			class Left2: Left {
    				position 	= "light_L_flare";
    				useFlare 	= 1;
    			};
    		};
    		aggregateReflectors[] = {{"Left","Right","Left2","Right2"}};
    		armorLights = 0.1;
    		class ViewPilot: ViewPilot
    		{
    			initAngleX = 7;
    			minAngleX = -15;
    			maxAngleX = 25;
    			initAngleY = 0;
    			minAngleY = -90;
    			maxAngleY = 90;
    		};		
    		class TransportBackpacks
    		{};
    		class TransportMagazines
    		{};
    		class TransportItems
    		{};		
    		class TransportWeapons
    		{};		
    		class EventHandlers
    		{
    			hitpart = "_this call SLX_XEH_EH_HitPart;_this call rhs_fnc_hitHandler";
    			getIn = "_this call SLX_XEH_EH_GetIn;_this call rhs_fnc_m2_doors";
    			getOut = "_this call SLX_XEH_EH_GetOut;_this call rhs_fnc_m2_doors";
    		};
    		
    	};
    	class mauler_F: mauler_Base
    	{
    		scope = 2;
    		faction = "SixOneJTF";
    		vehicleClass = "SixOneJTF_Armor";
    		crew = "mauler_driver";
    		author = "Scot Gilmore";
    		displayName = "== Black Bear LT ==";
    		side = 1;
    		class Library
    		{
    			libTextDesc = "The Mauler Light Tank exists because much of GIJOE's purpose hinges on the ability to move quickly into a hot zone. A re-evaluation of the Rapid Deployment Force/Light Tank project (RDF/LT) caught the attention of GIJOE brass. The US DoD had long decided not to renew the tank's development contract in an official capacity, but it was far enough along in development to be picked up for ''other uses''. After another five years of development, the RDF/LT would start to roll off top secret assembly lines, and became the Mauler LT. The original RDF/LT had accounted for future planning since its inception, and the Mauler features technological upgrades that had been expensive and unreliable during the project's early phases - such as digital displays for all crew, automatic fire extinguisher systems, and 3D holographic projection display to name a few.";
    		};
    		model = "vhx_armor\gijoe_mauler\mauler1.p3d";
    		armor = 400;
    		class Damage
    		{
    			tex[] = {};
    			mat[] = {"rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV1.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV1_damage.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV1_destruct.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2_damage.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2_destruct.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2_ERAon.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2_ERAon_damage.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\brad_UV2_ERAon_destruct.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\M2_tracks.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\M2_tracks_damage.rvmat","rhsusf\addons\rhsusf_a2port_armor\M2A2_Bradley\data\M2_tracks_destruct.rvmat","a3\data_f\default.rvmat","a3\data_f\default.rvmat","a3\data_f\default_destruct.rvmat"};
    		};
    		class AnimationSources
    		{
    			class recoil_source
    			{
    				source = "reload";
    				weapon = "RHS_weap_M242BC";
    			};
    			class muzzle_hide_hmg: recoil_source{};
    			class muzzle_rot_hmg: recoil_source
    			{
    				source = "ammorandom";
    			};
    			class muzzle_rot_hmg2: muzzle_rot_hmg
    			{
    				weapon = "rhs_weap_m240veh";
    			};
    			class HatchC
    			{
    				source = "door";
    				animPeriod = 0.8;
    			};
    			class HatchG: HatchC{};
    			class HatchDriver: HatchC{};
    			class ramp
    			{
    				source = "door";
    				animPeriod = 5;
    				initPhase = 0;
    				sound = "ServoRampSound_2";
    				soundPosition = "ramp_axis";
    			};
    		};
    	};
    };

     


    ...and my model.cfg here:

    Spoiler
    
    class cfgSkeletons
    {
    	class blackbear_Skeleton
    	{
    		skeletonInherit = "";
    		isDiscrete = 0;
    		SkeletonBones[]=
    		{
    			"kolL1"	,"",
    			"kolL2","",
    			"kolL3","",
    			"kolP1","",
    			"kolP2","",
    			"kolP3","",
    			"podkoloL1","",
    			"podkoloL2","",
    			"podkoloL3","",
    			"podkoloL4","",
    			"podkoloL5","",
    			"podkoloL6","",
    			"podkoloL7","",
    			"podkoloL8","",
    			"podkoloL9","",
    			"podkoloP1","",
    			"podkoloP2","",
    			"podkoloP3","",
    			"podkoloP4","",
    			"podkoloP5","",
    			"podkoloP6","",
    			"podkoloP7","",
    			"podkoloP8","",
    			"podkoloP9","",
    			"koloL1","podkoloL1",
    			"koloL2","podkoloL2",
    			"koloL3","podkoloL3",
    			"koloL4","podkoloL4",
    			"koloL5","podkoloL5",
    			"koloL6","podkoloL6",
    			"koloP1","podkoloP1",
    			"koloP2","podkoloP2",
    			"koloP3","podkoloP3",
    			"koloP4","podkoloP4",
    			"koloP5","podkoloP5",
    			"koloP6","podkoloP6",
    			"podkoloL1_hide","podkoloL1",
    			"podkoloL2_hide","podkoloL2",
    			"podkoloL3_hide","podkoloL3",
    			"podkoloL4_hide","podkoloL4",
    			"podkoloL5_hide","podkoloL5",
    			"podkoloL6_hide","podkoloL6",
    			"podkoloP1_hide","podkoloP1",
    			"podkoloP2_hide","podkoloP2",
    			"podkoloP3_hide","podkoloP3",
    			"podkoloP4_hide","podkoloP4",
    			"podkoloP5_hide","podkoloP5",
    			"podkoloP6_hide","podkoloP6",
    			"i_speed"	,"",
    			"i_speed2"	,"",
    			"i_rpm"	,"",
    			"i_radar"	,"",
    			"i_compass"	,"",
    			"damagehide"	,"",
    			"mainturret"	,"",
    			"maingun"	,"mainturret",
    			"stick_cmdr" ,"mainturret",
    			"kb_cmdr"	,"mainturret",
    			"hatch_lock"	,"mainturret",
    			"commander_turret"	,"mainturret",
    			"scopeCMDR"	,"commander_turret",
    			"scopeGNR"	,"mainturret",
    			"scopeGdoorL"	,"mainturret",
    			"scopeGdoorR"	,"mainturret",
    			"gunFan"	,"maingun",
    			"gunrecoil"	,"maingun",
    			"muzzleflash"	,"gunrecoil",
    			"muzzlehmg"	,"gunrecoil",
    			"hatch_cmdr"	,"mainturret",
    			"hatch_driver"	,"",
    			"hatch_gunner"	,"",
    			"scopeDriver"	,"",
    			"podkoloL1_solid"	,"",
    			"podkoloP1_solid"	,"",
    			"turbine1"	,"",
    			"turbine2"	,"",
    			"i_mph"	,"",
    			"i_fuel"	,"",
    			"i_rpm1"	,"",
    			"i_rpm2"	,"",
    			"i_rpm3"	,""
    		};
    	};
    };
    class CfgModels
    {
    	class Default
    	{
    		sections[] = {};
    		sectionsInherit="";
    		skeletonName = "";
    	};
    	class mauler1:Default
    	{
    		skeletonName="blackbear_Skeleton";
    		sections[]=
    		{
    			"zbytek",
    			"vez",
    			"pas_p",
    			"pas_l",
    			"motor",
    			"l svetlo",
    			"p svetlo",
    			"zbran",
    			"podsvit pristroju",
    			"camo2",
    			"camo1",
    			"pasoffsetL",
    			"pasoffsetP",
    			"brzdove svetlo",
    			"zadni svetlo",
    			"zasleh2"
    		};
    
    		class Animations
    		{
    			class damageHide
    			{
    				type="hide";
    				source="damage";
    				selection="damagehide";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 1.0;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class Wheel_kolL1 {
    				type="rotationX";
    				source="wheelL";
    				selection="kolL1";
    				axis="";
    				memory="false";
    				animPeriod=0;
    				minvalue=0.5;
    				maxvalue = 1.0;
    				angle0=0;
    				angle1="rad -360";
    				sourceAddress="loop";
    			};
    			class Wheel_kolL2: Wheel_kolL1 {
    				selection="kolL2";
    			};
    			class Wheel_kolL3: Wheel_kolL1 {
    				selection="kolL3";
    			};
    			
    			class Wheel_koloL1: Wheel_kolL1 {
    				selection="koloL1";
    			};
    			class Wheel_koloL2: Wheel_koloL1 {
    				selection="koloL2";
    			};
    			class Wheel_koloL3: Wheel_koloL1 {
    				selection="koloL3";
    			};
    			class Wheel_koloL4: Wheel_koloL1 {
    				selection="koloL4";
    			};
    			class Wheel_koloL5: Wheel_koloL1 {
    				selection="koloL5";
    			};
    			class Wheel_koloL6: Wheel_koloL1 {
    				selection="koloL6";
    			};
    			class Wheel_koloL7: Wheel_koloL1 {
    				selection="koloL7";
    			};
    			class Wheel_koloL8: Wheel_koloL1 {
    				selection="koloL8";
    			};
    			
    			class Wheel_kolP1: Wheel_kolL1 {
    				source="wheelR";
    				selection="kolP1";
    			};
    			class Wheel_kolP2: Wheel_kolP1 {
    				selection="kolP2";
    			};
    			class Wheel_kolP3: Wheel_kolP1 {
    				selection="kolP3";
    			};
    			
    			class Wheel_koloP1: Wheel_koloL1 {
    				source="wheelR";
    				selection="koloP1";
    			};
    			class Wheel_koloP2: Wheel_koloP1 {
    				selection="koloP2";
    			};
    			class Wheel_koloP3: Wheel_koloP1 {
    				selection="koloP3";
    			};
    			class Wheel_koloP4: Wheel_koloP1 {
    				selection="koloP4";
    			};
    			class Wheel_koloP5: Wheel_koloP1 {
    				selection="koloP5";
    			};
    			class Wheel_koloP6: Wheel_koloP1 {
    				selection="koloP6";
    			};
    			class Wheel_koloP7: Wheel_koloP1 {
    				selection="koloP7";
    			};
    			class Wheel_koloP8: Wheel_koloP1 {
    				selection="koloP8";
    			};
    			
    			class Wheel_podkoloL1 {
    				type="translation";
    				source="damper";
    				selection="podkoloL1";
    				axis="Basic_Damper_Destruct_Axis";
    				memory="true";
    				animPeriod=0;
    				minValue="0";
    				maxValue="0.83";
    				offset0= "0.18";
    				offset1= "-0.15";
    			};
    			class Wheel_podkoloL2: Wheel_podkoloL1 {
    				selection="podkoloL2";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloL3: Wheel_podkoloL1 {
    				selection="podkoloL3";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloL4: Wheel_podkoloL1 {
    				selection="podkoloL4";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloL5: Wheel_podkoloL1 {
    				selection="podkoloL5";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloL6: Wheel_podkoloL1 {
    				selection="podkoloL6";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			
    			
    			class Wheel_podkoloP1 {
    				type="translation";
    				source="damper";
    				selection="podkoloP1";
    				axis="Basic_Damper_Destruct_Axis";
    				memory="true";
    				animPeriod=0;
    				minValue="0";
    				maxValue="0.83";
    				offset0= "0.18";
    				offset1= "-0.15";
    			};
    			class Wheel_podkoloP2: Wheel_podkoloP1 {
    				selection="podkoloP2";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloP3: Wheel_podkoloP1 {
    				selection="podkoloP3";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloP4: Wheel_podkoloP1 {
    				selection="podkoloP4";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloP5: Wheel_podkoloP1 {
    				selection="podkoloP5";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			class Wheel_podkoloP6: Wheel_podkoloP1 {
    				selection="podkoloP6";
    				axis="Basic_Damper_Destruct_Axis";
    			};
    			
    			class podkoloL1_hide_damage: damageHide {
    				selection="podkoloL1_hide";
    			};
    			class podkoloL2_hide_damage: damageHide {
    				selection="podkoloL2_hide";
    			};
    			class podkoloL3_hide_damage: damageHide {
    				selection="podkoloL3_hide";
    			};
    			class podkoloL4_hide_damage: damageHide {
    				selection="podkoloL4_hide";
    			};
    			class podkoloL5_hide_damage: damageHide {
    				selection="podkoloL5_hide";
    			};
    			class podkoloL6_hide_damage: damageHide {
    				selection="podkoloL6_hide";
    			};
    			class podkoloP1_hide_damage: damageHide {
    				selection="podkoloP1_hide";
    			};
    			class podkoloP2_hide_damage: damageHide {
    				selection="podkoloP2_hide";
    			};
    			class podkoloP3_hide_damage: damageHide {
    				selection="podkoloP3_hide";
    			};
    			class podkoloP4_hide_damage: damageHide {
    				selection="podkoloP4_hide";
    			};
    			class podkoloP5_hide_damage: damageHide {
    				selection="podkoloP5_hide";
    			};
    			class podkoloP6_hide_damage: damageHide {
    				selection="podkoloP6_hide";
    			};
    			
    			class damageVez
    			{
    				type="hide";
    				source="damage";
    				selection="damagevez";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 1.0;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class IndicatorSpeed
    			{
    				type="rotation";
    				source="speed";
    				selection="mph";
    				axis="mph_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 16.67;//rad 955.12067
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 5.061455;//rad 290.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class RPM1
    			{
    				type="rotation";
    				source="rpm";
    				selection="rpm1";
    				axis="rpm1_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 3.0;//rad 171.88734
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 1.5707964;//rad 90.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class RPM2
    			{
    				type="rotation";
    				source="rpm";
    				selection="rpm2";
    				axis="rpm2_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 2.0;//rad 114.59156
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 1.5707964;//rad 90.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class RPM3
    			{
    				type="rotation";
    				source="rpm";
    				selection="rpm3";
    				axis="rpm3_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 3.0;//rad 171.88734
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 1.5707964;//rad 90.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class IndicatorFuel
    			{
    				type="rotation";
    				source="fuel";
    				selection="fuel";
    				axis="fuel_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 1.5707964;//rad 90.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class hatch_driver_1
    			{
    				type="translation";
    				source="hatchDriver";
    				selection="hatch_driver";
    				axis="hatch_driver_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 0.05;//rad 57.29578
    				offset0 = 0.0;//
    				offset1 = 0.215;//
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class hatch_driver_2
    			{
    				type="rotation";
    				source="hatchDriver";
    				selection="hatch_driver";
    				axis="hatch_driver_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.20001;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//
    				angle1 = -1.623;// rad -93
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class Hatch_Gunner_1
    			{
    				type="translation";
    				source="hatchGunner";
    				selection="hatch_gunner";
    				axis="hatch_gunner_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 0.05;//rad 57.29578
    				offset0 = 0.0;//
    				offset1 = 0.215;//
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class Hatch_Gunner_2
    			{
    				type="rotation";
    				source="hatchGunner";
    				selection="hatch_gunner";
    				axis="hatch_gunner_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.20001;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//
    				angle1 = 1.623;// rad 93
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class HatchCommander
    			{
    				type="rotation";
    				source="hatchCommander";
    				selection="hatch_cmdr";
    				axis="hatch_cmdr_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				angle0 = 0.0;//rad 75.0;
    				angle1 = -3.264;//rad -187.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class MainTurret
    			{
    				type="rotationY";
    				source="mainTurret";
    				selection="mainturret";
    				axis="mainturret_axis";//*probably*
    				sourceAddress = loop;
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class MainGun
    			{
    				type="rotationX";
    				source="mainGun";
    				selection="maingun";
    				axis="maingun_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class GunnerScope
    			{
    				type="rotationX";
    				source="mainGun";
    				selection="scopeGNR";
    				axis="scopeGNR_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class ObsGun
    			{
    				type="rotationX";
    				source="obsGun";
    				selection="maingunvelitele";
    				axis="maingunvelitele_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class CommanderScope
    			{
    				type="rotationX";
    				source="obsGun";
    				selection="scopeCMDR";
    				axis="scopeCMDR_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = ‪-6.2831855;//rad -360.0
    				angle1 = 6.2831855;//rad 360.0
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class recoilL_BEGIN
    			{
    				type="translation";
    				source="recoil_source";
    				selection="gunrecoilL";
    				axis="gunrecoilL_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 0.8;//rad 45.836624
    				offset0 = 0.0;
    				offset1 = 0.2;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class recoilL_END
    			{
    				type="translation";
    				source="recoil_source";
    				selection="gunrecoilL";
    				axis="gunrecoilL_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.85;//rad 48.701412
    				maxValue = 1.0;//rad 57.29578
    				offset0 = 0.0;
    				offset1 = -0.2;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class recoilR_BEGIN
    			{
    				type="translation";
    				source="recoil_source";
    				selection="gunrecoilR";
    				axis="gunrecoilR_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.5;//rad 28.64789
    				maxValue = 0.8;//rad 45.836624
    				offset0 = 0.0;
    				offset1 = 0.2;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class recoilR_END
    			{
    				type="translation";
    				source="recoil_source";
    				selection="gunrecoilR";
    				axis="gunrecoilR_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = 0.85;//rad 48.701412
    				maxValue = 1.0;//rad 57.29578
    				offset0 = 0.0;
    				offset1 = -0.2;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class ObsTurret
    			{
    				type="rotationY";
    				source="obsTurret";
    				selection="commander_turret";
    				axis="commander_turret_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class FLIRTurret
    			{
    				type="rotationY";
    				source="obsTurret";
    				selection="flir_turret";
    				axis="flir_turret_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class FLIRGun
    			{
    				type="rotationX";
    				source="obsGun";
    				selection="flir_gun";
    				axis="flir_gun_axis";//*probably*
    //				sourceAddress = clamp;// (default)
    				minValue = -6.2831855;//rad -360.0
    				maxValue = 6.2831855;//rad 360.0
    				angle0 = -6.2831855;//rad -360.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class podkoloL1_solid_hide_damage
    			{
    				type="hide";
    				source="damage";
    				selection="podkoloL1_solid";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 1.0;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class podkoloP1_solid_hide_damage
    			{
    				type="hide";
    				source="damage";
    				selection="podkoloP1_solid";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 1.0;
    //				unHideValue = -1.0;//(default)
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hmg_muzzle_flash
    			{
    				type="hide";
    				source="muzzle_hide_hmg";
    				selection="muzzleflash";
    //				sourceAddress = clamp;// (default)
    				minValue = 0.0;//rad 0.0
    				maxValue = 1.0;//rad 57.29578
    				hideValue = 0.0;
    				unHideValue = 0.93;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    			};
    			class hmg_muzzleFlashROT
    			{
    				type="rotationZ";
    				source="muzzle_rot_hmg";
    				selection="muzzleflash";
    				axis="muzzleflash_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 4.0;//rad 229.18312
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    			class zaslehROT_HMG2
    			{
    				type="rotationZ";
    				source="muzzle_rot_HMG2";
    				selection="muzzlehmg";
    				axis="muzzlehmg_axis";//*probably*
    				sourceAddress = loop;
    				minValue = 0.0;//rad 0.0
    				maxValue = 4.0;//rad 229.18312
    				angle0 = 0.0;//rad 0.0;
    				angle1 = 6.2831855;//rad 360.0;
    				animPeriod = 0.0;
    				initPhase = 0.0;
    //				memory = true;//(default assumed)
    			};
    		};//Animations
    	};//modelclass
    };//CfgModels

     


     

     


  4. Since 1.82, you can completely remove the driver of a tank or car, and allow the commander full control of the vehicle - driving and gunning, with the parameter hasDriver=-1. This is great for little one-man tanks, and there's no invisible AI trying to drive off with it. However, it only allows the CMDR to move the vehicle, not turn on/off lights, engine, or other driver operations. I was hoping to find an answer here... maybe it has something to do with

    On 11/18/2016 at 1:03 AM, Grumpy Old Man said:

    setPilotLight command. ... "LightOn" or "LightOff".

    No clue why this command has been introduced since it... [does nothing] different than the light on/off actions.

     


  5. @.kju Sweet. Is that the Arma 3 channel on Discord, or something more specific? I've gotten some good tips from both of them, directly and indirectly. Reyhard seems to be the aircraft guy, while X3KJ is more an armor/tracked expert.

    As you replied, I was editing my post with this next bit, but I decided to just put it here: What I don't need in a helicopter is to have the flight controls to be moving the turret, too. The "aiming" commands I have set to kb, mouse, and gamepad for turrets are also used for pilot controls in planes and helis (since historically they have been available). However, I'm afraid if the turret is enabled for a pilot then there might be a conflict between flight and aiming controls, hence the need for freelook/TrackIR to be set as aiming control method in specific aircraft of my own design. I guess what I'm saying is I hope pilot turrets work, but I'm afraid they will work wrong.


  6. 3 minutes ago, .kju said:

    be aware hasdriver=-1 doesnt work for AI. so you may want to have a separate version for AI

    Good to know! I'm not sure AI are suited for tank driving at all in the first place, but this is informative.
    Any idea how to pull off the same feat with a 1-man attack helicopter? Also, I need the gun turret to follow freelook/TrackIR. I've got the parameter turretFollowFreelook=1; in the turret class, but it's not doing anything while I have hasDriver=-1. Haven't tried it other ways, yet.


  7. Aside from the turret configs, I also mentioned the need for a hidden AI driver to make it appear the commander is the only person in the tank. This was an old trick, and kind of a janky way to fake one-man tanks with turret, such as the Varmint. When you exit the tank, the AI driver has the tendency to move around and break the illusion. Today, I just discovered this:

    		hasDriver = -1;

    After initial testing, this seems to be exactly the solution this tank needed. It eliminates the driver and allows the top commander to drive the tank and use his turret. In a 1-man tank, that means the player has full control without running the risk of the invisible AI driving off when you get out. THANK YOU SO MUCH BIS DEVS!!! I'm not giving you guys my first child or anything, but much love to you for this simply delicious line of code!

    Now... I'mma try it on my 1-man helicopter. I hope it works!
     



    Further updates on the first post video:
    Varmint (Small Tank)
    - Speed is now adjusted. The problem was coming from having the wheel boundaries too much off the ground, and the solution was to lower the memory points about 2 cm. New problems have arisen from having too much stopping power and a super fast reverse speed. Tweaking certain values to ease the jerking makes it go faster in a curve than it can in a straight line. Tweaking it another way makes it do the endless neutral steer thing. I'm having a look at the Nyx' code to see how it handles, since it's about the same size and weight, and has the same number of wheels. More to come on that.
    - Commander position not appearing in 3rd person was from a missing proxy. At some point I must have deleted it, but I never checked because I didn't have a reason to delete it on purpose. Now it's fixed.
    - Head motion with turret... It's fixed. I'm not sure what it was exactly, but I just replaced a chunk of code with turret code that was working, and started tweaking it to fit the small tank's interior.

    The other two tanks
    - I haven't gotten to their problems, yet, but I will keep y'all updated.


  8. On 10/8/2018 at 1:43 PM, scotg said:

    Get eleven more views by the end of October 9, to reach 1K views for the AWE Striker video.

    Thanks everyone for helping me reach this!

     

     

    On 10/8/2018 at 1:43 PM, scotg said:

    Get one hundred seventeen more views by October 20, to reach 1k for the HISS video.

    Almost there! One week away, and only 94 views to go.

    • Like 1

  9. It's a tweaking inward spiral. You just have to fine adjust all the factors until you reach your goal - FLUSH! Latstiffx/y controls the grippiness of the "tires." Even for tanks, you probably don't need much more than latStiffX=25. Too little, and your tank will start going faster when turning than it would while going straight forward o_O. Incidentally, you may want a much larger latStiffY, like 200 to 300, if you like climbing hills in your tank. It can also help in slowing it down.

    MOI and dampingRateInAir (dRIA) of course affect top speed, but it can be fine-tuned easier if the numbers are higher. You'll just have to play around with their numbers, because afaik there isn't a simple formula. If you have a high MOI, but your tank is launching itself, then keep raising the dRIA until it calms down. If your tank is stopping and starting too quickly, like jerky, it could also be that your MOI is too low. Raise it, but be sure to raise the dRIA as well. EDIT: Be careful not to tweak MOI too high or you could suffer from unstoppable turning syndrome.

    Another factor that can slow down or speed up your tank is your wheel bounds in the memLOD. If they are too high close to the hub they can effectively put your high powered engine to a dull crawl - same with virtual wheels of different sizes. You do all the work and tweaking on MOI, dRIA, gears, torque, etc... then you free up your wheel bounds and suddenly you're licking the moon. Back to the drawing board. I suspect you don't have this problem, but I hope future readers might benefit from this understanding.


  10. While testing my mod tank's speed, I noticed it was going faster in a turn than it would in a straight line. I don't have a speed boost available on my tank. I thought it might have something to do with one of the tire slip properties, but just a random guess. To see if this is just mine or a common issue, I tested the Bobcat and Sochor the same way. The Bc was doing the same thing as mine - turning about 5kph faster top speed than going straight, as long as I didn't use speed boost/max speed. The Sochor went too fast in a straight line and then rolled over before I could observe its turning speed. I don't know if any of this is supposed to happen or not. If not, what should I start tweaking in order to fix my tank?


  11. Since my last post, I tried lining up two "screens" for a wide view. Getting the FOVs right is the issue, because it can align in the foreground at the expense of splitting the background, and vice-versa. There was indeed a performance issue in the PIPs as well. It was worth a shot. I just wish there was a way to make better periscopes.


  12. 1 hour ago, pingopete said:

    increasing the PIP above "512x512" will simply cnter tile the PIP render area and stretch the edge pixels out at the sides

     

    21 hours ago, scotg said:

    all it did was fill the top-left quadrant of the square. The rest was bled from the right and bottom edges.

    I guess your outcome was different from mine. Both are unfavorable, but distinct. The edge pixels stretching/bleeding is what we don't want, but I am curious why your render area was centered while mine was left-top aligned. The only change I had made to do this was setting the (512, 512, 1) to (1024, 1024, 1). Either way, it doesn't support it, sure enough; I just wonder if the difference in outcome has any bearing on a potential work around, like fusing together 4 PIPs to fake a higher resolution.

    In my tests, I also discovered that if you don't fit your longest edges to the bounds of the square, then you lose even more resolution.


  13. Hey all. I was wondering if this thread is about specific interiors of vanilla models, or about the general interior capabilities the engine sports now? In other words, I want to know if talking about interiors in regards to how it affects mod vehicles is allowed. I have a few enclosed vehicles I've made that could benefit from some of these discussions, I think.

    I am all for interior immersion, and being able to look around my environment instead of being forced to look through a fixed view. I have one tank, especially, which has its gunner cannons directly in front of his periscopes. I don't know if there's a fix, but I just wanted to explore the matter because it presents a unique situation. Here is a video with better explanation:

     

    • Like 2

  14. On 5/12/2018 at 3:13 PM, pingopete said:

    Do you guys know if there's anyway to render PIP/RTT screens above 512x512 pixels?

    I tried this, and all it did was fill the top-left quadrant of the square. The rest was bled from the right and bottom edges. I get what you're hoping to do; you want a higher resolution for your PIPs. I was hoping to do this as well for some of my periscopes that shouldn't look like video.

    Anybody have a better understanding of the bounding boxes? The guide doesn't really explain it well.


  15. Sorry to dig this up, but I figure readers may want to have a conclusion - and an answer to @chronicsilence's question.

    If XYZ is the virtual 3-D coordinates of the geometrical shapes that comprise the model, UV's are the coordinates of the 3-D model laid out in a flat plane (sometimes called UVW's even though there's no 3rd dimension). 2-D textures and the coordinates are aligned to each other, which provides the pretty details that show color, reflection, shininess, and the illusion of touchable texture (like bumps). Think of it kind of like virtual origami. Changing the proportions of the laid out shapes affects how they stretch over the model. You need to be able to edit the UVs, in either Object Builder or a 3-D sculpting program like Max, Blender, Maya, etc, in order to change the shape proportions. Reshaping a rectangle is the most basic UV editing you could ask for; however, vanilla A3 assets cannot be edited. You probably figured it out after all this time, but it looks like you've hit an impenetrable wall.

    Changing the aspect ratio setting was a great idea, but it seems to have no effect when I change it even in my models' texture settings in OB. The BIS config guides are a bit misleading, but this probably works in some other application of the engine, like ToH.


  16. 55 minutes ago, blanca12 said:

    This is fantastic. Will You consider adding versions with vanilla Arma 3 M134 Minigun and/or .50 cal M2 MG on the roof?

    Some vehicle assets will have my M2 models on the roof, some will have other NATO, WP, or GC weapons attached, and some will have hybrids and customs (which is what BIS did with A3 assets). I have to rely on A3 vanilla for environments, structures, and most of the gear for now, including weapons. Most early action figure file cards specified real-life weapons in their specialties, but they also had some fictional stuff. IF we (me and my team-to-be) get to make weapons, they will largely be real life weapons like M2s (already made), M16s, AKs, Vz61 Skorpions (already made), and so on. Even though there are mods which already have these weapons, the ultimate idea is to be compatible with other mods, but to rely on them as little as possible. It's a mixed bag, but the concept here is to create something that looks like action figures, but with realism.


  17. 4 hours ago, Noks - Ohliger said:

    Every cargo unit (pilot, crew, turrets) is placed in your visual LODs (here 1.000 + ViewPilot).

    Make sure you do not have a turret or commander proxy in those LODs.

    Thanks for watching the video! I have corrected the co-pilot problem. It turns out that airplane class inherits a vehicle turret with an added crewman position. The solution was to create an empty turret class. BTW, thanks to @DSabre and others for pointing that out to me in PM.


  18. Thanks! I was able to get its flight handling more controllable, but it's still far from perfect. The elevator force is important, but first I need to smooth out the vertical bouncing that occurs after a climb or descent.

    I found an error - a missing semicolon - that was being dismissed by the compiler. When I fixed it, there were some things that suddenly started working differently with the dampers. Mind you this is all physical handling. I think the visual stuff is right, but it will likely need adjusting once the physical handling is behaving right.

    I have to make another video to explain what's still wrong, I think it'll be easier to explain, and get my memory jogged over it. I have moved back to working on my tanks for the time being, and since I am finding new success with them it's easier to keep on them.


  19. 1 hour ago, DSabre said:

    Note that I use wheel_l,r and c (left, center, right) instead of wheel_1,2 and 3.

    I never know which is the left or center wheel with the stupid numbers.

    I always assumed, for planes anyway, that the order is front to back, left to right. So in a tricycle plane wheel_1 would be the front wheel, wheel_2 would be the left main wheel, and then wheel_3 is the right main. In taildragger layout I would think wheel_1 is left main, wheel_2 right main, and wheel_3 is the rear wheel. That's my assumption, but since I haven't tried making a taildragger it has little merit.

    Any idea how many wheels total per plane are supported in A3?
    Tanks are something like 10 ground wheels per side, and I think cars are 8 in total... or at least I haven't seen anything more than 8.


  20. @Donnie_Plays Yeah, you can fairly imitate GI Joe characters with some vanilla A3 assets. Snake Eyes and Beachhead just need the balaclava and some chest gear, but give SE some goggles. Plop a beret on a dark skin soldier's head, and you've got Stalker. Put some aviator sunglasses on a helicopter pilot with his helmet, and it's how Wild Bill should be dressed for flight. Many other combinations can create some decent stand-ins for other Joes and Cobras as well.


  21. ...Except that they did not. It's too far in the past for me to remember correctly the how's and why's. It was a long, convoluted ordeal just to get back to having compile functionality after trying to rely on mikero's free tools. I didn't understand their limitations, and the documentation that came with them was misleading.

     

    On 3/17/2018 at 7:27 PM, mikero said:

    dertm is part of the subscriber toolset. But you can use any model.cfg (such as the one from samples) that contains an ofp2_manskeleton. What is provided in dertm is the skeletons for three different games. you only want arma3

     

    On 5/1/2018 at 4:16 PM, mikero said:

    If you don't have the tool, you don't have the documentation...If i update the tools that you DO have, that documentation doesn't occur for you either.


    My conundrum was that the docs related to RTMs are only available in the subscriber tools, if I understand that correctly. There was nothing in the free tools docs, which mikero said shouldn't exist, explaining how to pack RTMs. I kind of felt like monkey in the middle.

    The long-to-short is:

    • I could compile with AB before.
    • I wanted to re-structure my mod folders and have P:\ drive and buldozer working smoothly.
    • I tried to accomplish this while converting to MT (free), but then I couldn't pack RTMs into my mod.
    • I then went back to AB, only using MTfree as a helper.
    • All is well.

    I moved on, and have had better success with AB, using pboProject only as an error checking tool. RTMs are being packed (except for one unusual case which I haven't been able to look in to). This isn't a bad review of Mikero's tools, it's just an indication of what I can do at this time. I am super-busy with the artwork and promoting of my mod, and for lots of other reasons I don't have time to sift through technical docs right now. Perhaps when the artwork load calms down I can justify getting the subscriber version of MT and put out cleaner, fully inclusive PBOs - and have more time to get better acquainted with the tools.

×