{"name":"weaponsTurret","operator":null,"title":"weaponsTurret","type":"command","url":"https://community.bistudio.com/wiki/weaponsTurret","revid":377486,"updated":"2026-01-02T06:49:06Z","groups":["Turrets"],"status":"ok","replaced_by":[],"games":[{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.52"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.52"},"arma3_since":"0.50","branch":null,"locality":{"argument":"global","effect":null,"server_exec":false},"exec":null,"description":"Returns all weapons of a given turret. Use turret path [-1] for driver's turret.","syntaxes":[{"syntax":"vehicle weaponsTurret turretPath","since":null,"effect":null,"exec":null,"params":[{"name":"vehicle","type":"Object","optional":false,"default":null,"description":null,"types":["Object"],"since":null,"text":"vehicle: Object"},{"name":"turretPath","type":"Turret Path","optional":false,"default":null,"description":null,"types":["Turret Path"],"since":null,"text":"turretPath: Turret Path"}],"returns":{"type":"Array of Strings","types":["Array","String"],"description":null,"text":"Array of Strings"},"form":"binary","operator":null,"left":{"text":"vehicle","types":["Object"]},"right":{"text":"turretPath","types":["Turret Path"]}}],"examples":[{"text":"```sqf\n_weapons = vehicle player weaponsTurret [0,0];\n```","code":["_weapons = vehicle player weaponsTurret [0,0];"]},{"text":"```sqf\n_weapons = _tank weaponsTurret [0];\n```","code":["_weapons = _tank weaponsTurret [0];"]},{"text":"```sqf\n_driverWeapon = _ka50pilot weaponsTurret [-1];\n```","code":["_driverWeapon = _ka50pilot weaponsTurret [-1];"]},{"text":"```sqf\n_weaponsForAnyTurrentPosition = (vehicle player) weaponsTurret ((assignedVehicleRole player) select 1);\n```","code":["_weaponsForAnyTurrentPosition = (vehicle player) weaponsTurret ((assignedVehicleRole player) select 1);"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["addMagazineTurret","magazinesTurret","removeMagazinesTurret","removeMagazineTurret","weapons","assignedVehicleRole","addWeaponTurret","removeWeaponTurret","turretLocal"],"notes":[{"user":".kju","date":"2011-03-11T07:49:00Z","text":"Use assignedVehicleRole in combination to easily determine the weapons for any vehicle position. You need to check for -1 if the unit is in the driver/pilot position. See example 3 and 4."},{"user":"DenV","date":"2012-05-30T16:26:00Z","text":"Returns information (including the turrets paths) about all weapons on turrets\n\n```sqf\nfuncGetTurretsWeapons = {\n    private [\"_result\", \"_getAnyMagazines\", \"_findRecurse\", \"_class\"];\n    _result = [];\n    _getAnyMagazines = {\n        private [\"_weapon\", \"_mags\"];\n        _weapon = configFile >> \"CfgWeapons\" >> _this;\n        _mags = [];\n        {\n            _mags = _mags + getArray (\n                (if (_x == \"this\") then { _weapon } else { _weapon >> _x }) >> \"magazines\"\n            )\n        } forEach getArray (_weapon >> \"muzzles\");\n        _mags\n    };\n    _findRecurse = {\n        private [\"_root\", \"_class\", \"_path\", \"_currentPath\"];\n        _root = (_this select 0);\n        _path = +(_this select 1);\n        for \"_i\" from 0 to count _root -1 do {\n            _class = _root select _i;\n            if (isClass _class) then {\n                _currentPath = _path + [_i];\n                {\n                    _result set [count _result, [_x, _x call _getAnyMagazines, _currentPath, str _class]];\n                } forEach getArray (_class >> \"weapons\");\n                _class = _class >> \"turrets\";\n                if (isClass _class) then {\n                    [_class, _currentPath] call _findRecurse;\n                };\n            };\n        };\n    };\n    _class = (\n        configFile >> \"CfgVehicles\" >> (\n            switch (typeName _this) do {\n                case \"STRING\" : {_this};\n                case \"OBJECT\" : {typeOf _this};\n                default {nil}\n            }\n        ) >> \"turrets\"\n    );\n    [_class, []] call _findRecurse;\n    _result;\n};\n```\n\nThis call:\n\n```sqf\n\"M1A2_US_TUSK_MG_EP1\" call funcGetTurretsWeapons;\n```\n\nwill return all turrets weapons, their magazines and their paths:\n\n```\n[\n    [\"M256\", [\"20Rnd_120mmSABOT_M1A2\", \"20Rnd_120mmHE_M1A2\"], [0], \"bin\\config.bin/CfgVehicles/M1A2_US_TUSK_MG_EP1/Turrets/MainTurret\"],\n    [\"M240_veh\", [\"100Rnd_762x51_M240\", \"1200Rnd_762x51_M240\"], [0], \"bin\\config.bin/CfgVehicles/M1A2_US_TUSK_MG_EP1/Turrets/MainTurret\"],\n    [\"M2BC\", [\"100Rnd_127x99_M2\"], [0, 0], \"bin\\config.bin/CfgVehicles/M1A2_US_TUSK_MG_EP1/Turrets/MainTurret/Turrets/CommanderOptics\"],\n    [\"SmokeLauncher\", [\"SmokeLauncherMag\"], [0, 0], \"bin\\config.bin/CfgVehicles/M1A2_US_TUSK_MG_EP1/Turrets/MainTurret/Turrets/CommanderOptics\"],\n    [\"M240_veh_2\", [\"100Rnd_762x51_M240\", \"1200Rnd_762x51_M240\"], [0, 1], \"bin\\config.bin/CfgVehicles/M1A2_US_TUSK_MG_EP1/Turrets/MainTurret/Turrets/LoaderTurret\"]\n]\n```"}],"categories":["Arma 2: Operation Arrowhead: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 3: Scripting Commands","Command Group: Turrets","Introduced with Arma 2: Operation Arrowhead version 1.52","Scripting Commands","Take On Helicopters: Scripting Commands"]}