I will probably get some hate for this post from Arma vets for messing with realism aspect of the game, but being able to drive and gun tanks on your own is quite a bit of fun and that what games are all about (here is previous post about one man operation of Mk6 Mortar).

I’ve decided to make a little, easy to use code snippet for M2A1 Slammer tank shown in the video. Only driver position is available, so it is truly made for solo tank whoring :) . The code is MP compatible. To add, simply copy paste it in the INITIALIZATION field of M2A1 in the editor.

this call { if (isServer) then { _this lockTurret [[0], true]; _this lockTurret [[0,0], true]; _this lockCargo true; _this addMPEventHandler ["MPKilled", { if (isServer) then { _d = driver (_this select 0); _g = gunner (_this select 0); if (!isNull _d) then {deleteVehicle _d}; if (!isNull _g) then {_g setDamage 1}; }; }]; }; if (!isDedicated) then { _this addEventHandler ["GetIn", { enableSentences false; _tank = _this select 0; _unit = _this select 2; _unit allowDamage false; _unit action ["EngineOn", _tank]; _unit action ["MoveToGunner", _tank]; _tank lock true; _tank switchCamera "EXTERNAL"; _tank addAction [localize "str_action_getout", { _this select 0 removeAction (_this select 2); _this select 1 action ["GetOut", _this select 0]; }, "", 3, false, true, "GetOver"]; _tank spawn { waitUntil {!isNull gunner _this}; _ai = createAgent [ typeOf gunner _this, [0,0,0], [], 0, "NONE" ]; _ai allowDamage false; _ai moveInDriver _this; }; }]; _this addEventHandler ["GetOut", { _tank = _this select 0; _unit = _this select 2; deleteVehicle driver _tank; _unit allowDamage true; _unit action ["EngineOff", _tank]; _tank lock false; enableSentences true; }]; }; };

Few things… The way this works is by you being a gunner and giving move orders to your AI driver. So when you press WASD or arrow keys, your orders are silently relayed to the AI. Unfortunately there are some problems with AIs. For example it might not stop when reversing down hill or refuse to reverse and spin tank instead. I’ve made a few feedback tickets about it, as well as about some broken commands, so please upvote them if you care: Issue1, Issue2. As for the overall AI driving, it is actually not too bad.