Arma 3 has rather large and round cargo parachutes, which where not animated until recently, big thanks to The Most Venerable Order of Configuration, Lord Pettka. They might look cool for when you want to drop a supply crate or a small vehicle, but main battle tanks looks way too heavy to have just one parachute. I remember when I was a kid I used to watched programs about military exercises. They used to drop tanks on parachutes there while each tank was attached to 3 parachutes. Just before landing the parachutes shot off. So I decided to try to make something along these lines.

First of all, because of how parachute objects operate in Arma 3, I could not have 3 parachute set up without any modding. So I went for 5 parachutes which makes it even more epic :) . To make it more believable I added a particle effect simulating a charge going off detaching parachutes with sound. Because particle effects have to be created locally on each client, the script is in 2 parts, the server part that drops the tank and the client part that does particle effect.

As you can see from the video, there is some smoke coming off the tracks. This is actually dust, because for some reason the engine thinks that the tracks are touching the ground. It is a bug with dedicated server and hopefully this will get fixed. I’ve also added a 5 seconds delay to the script after which it tries to delete parachutes that did not fold. This is because of yet another bug, when a parachute would open again if it bounces. Anyway, here is the script, which can be copy pasted in init.sqf for example:

if (!isDedicated) then { KK_fnc_FX = { private "_veh"; _veh = _this select 0; _vel = _this select 1; for "_i" from 1 to 100 do { drop [ ["\A3\data_f\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 0, 1 + random 0.5, [0, -2, 1.5], [-20 + random 40, -20 + random 40, -15 + _vel], 1, 0.05, 0.04, 0, [0.5, 10 + random 20], [ [0,0,0,1], [0,0,0,0.3], [1,1,1,0.1], [1,1,1,0.03], [1,1,1,0.01], [1,1,1,0.003], [1,1,1,0.001], [1,1,1,0] ], [1], 0.1, 0.1, "", "", _veh, random 360, true, 0.1 ]; }; }; "#FX" addPublicVariableEventHandler {_this select 1 spawn KK_fnc_FX}; }; if (isServer) then { KK_fnc_paraDrop = { private ["_class","_para","_paras","_p","_veh","_vel","_time"]; _class = format [ "%1_parachute_02_F", toString [(toArray faction _this) select 0] ]; _para = createVehicle [_class, [0,0,0], [], 0, "FLY"]; _para setDir getDir _this; _para setPos getPos _this; _paras = [_para]; _this attachTo [_para, [0,2,0]]; { _p = createVehicle [_class, [0,0,0], [], 0, "FLY"]; _paras set [count _paras, _p]; _p attachTo [_para, [0,0,0]]; _p setVectorUp _x; } count [ [0.5,0.4,0.6],[-0.5,0.4,0.6],[0.5,-0.4,0.6],[-0.5,-0.4,0.6] ]; 0 = [_this, _paras] spawn { _veh = _this select 0; waitUntil {getPos _veh select 2 < 4}; _vel = velocity _veh; detach _veh; _veh setVelocity _vel; missionNamespace setVariable ["#FX", [_veh, _vel select 2]]; publicVariable "#FX"; playSound3D [ "a3\sounds_f\weapons\Flare_Gun\flaregun_1_shoot.wss", _veh ]; { detach _x; _x disableCollisionWith _veh; } count (_this select 1); _time = time + 5; waitUntil {time > _time}; { if (!isNull _x) then {deleteVehicle _x}; } count (_this select 1); }; }; };

To use the script you need to spawn a tank 150m or more above the ground and pass tank object reference to the script. For example (should be executed on the server side):

_tank = "I_MBT_03_cannon_F" createVehicle [0,0,0]; _tank setDir random 360; _tank setPos [someX,someY,150]; _tank call KK_fnc_paraDrop;

Enjoy,
KK