From Bohemia Interactive Community
Revision as of 19:18, 8 November 2023 by Lou Montana (talk | contribs) (Text replacement - "\[ +" to "[")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Hover & click on the images for description


Creates a loadout from given inventory structure and applies it to a unit. When String for class name is supplied, the command will search CfgVehicles for the given class in order to extract the loadout from config. If Config is given, it will search given config (including mission config) for the loadout information. In either case, the config should contain the following entries, which is standard for any unit class, for example:
class MyLoadout
	uniformClass = "U_B_CombatUniform_mcam";
	backpack = "B_AssaultPack_mcamo";
	linkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	weapons[] = {"arifle_MX_ACO_pointer_F","hgun_P07_F"};
	items[] = {"FirstAidKit","FirstAidKit","FirstAidKit"};
	magazines[] = {"30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","SmokeShell","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade","HandGrenade"};
Unit Inventory

Syntax 1

unit setUnitLoadout loadout
unit: Object
loadout: Array - Unit Loadout Array
Return Value:

Syntax 2

unit setUnitLoadout [loadout, fullMagazines]
unit: Object
loadout: Array - Unit Loadout Array
fullMagazines: Boolean - partially emptied magazines will be refilled when the loadout is applied
Return Value:

Syntax 3

unit setUnitLoadout name
unit: Object
name: String - class name (see description)
Return Value:

Syntax 4

unit setUnitLoadout config
unit: Object
config: Config - config class (see description)
Return Value:


Example 1:
player_2 setUnitLoadout (getUnitLoadout player_1); // Copies loadout from player_1 and applies it to player_2
Example 2:
player_2 setUnitLoadout [getUnitLoadout player_1, true]; // Copies loadout from player_1 and applies it to player_2 while topping up all magazines
Example 3:
_unit setUnitLoadout "B_Soldier_F";
Example 4:
_unit setUnitLoadout (configFile >> "CfgVehicles" >> "B_Soldier_F");
Example 5:
_unit setUnitLoadout (missionConfigFile >> "MyLoadout");
Example 6:
Strip unit of everything:
_unit setUnitLoadout (configFile >> "EmptyLoadout");

Additional Information

See also:


Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Posted on 2019-12-17 - 23:08 (UTC)
NOTE: Empty or used magazines in loadouts will be refilled under specific circumstance, even if the refill argument is false. This seems to happen if amount of used magazines is 2 or more.
player setUnitLoadout [ ["arifle_MX_ACO_pointer_F","","acc_pointer_IR","optic_Aco",[],[],""], [], ["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""], ["U_B_CombatUniform_mcam",[["30Rnd_65x39_caseless_mag",1,1]]], ["V_PlateCarrier1_rgr",[]], ["B_AssaultPack_mcamo_Ammo",[]], "H_HelmetB_grass","",[],["ItemMap","","ItemRadio","ItemCompass","ItemWatch","NVGoggles"] ]
Will result in 30Rnd magazine with one bullet in it.
player setUnitLoadout [ ["arifle_MX_ACO_pointer_F","","acc_pointer_IR","optic_Aco",[],[],""], [], ["hgun_P07_F","","","",["16Rnd_9x21_Mag",16],[],""], ["U_B_CombatUniform_mcam",[["30Rnd_65x39_caseless_mag",2,1]]], ["V_PlateCarrier1_rgr",[]], ["B_AssaultPack_mcamo_Ammo",[]], "H_HelmetB_grass","",[],["ItemMap","","ItemRadio","ItemCompass","ItemWatch","NVGoggles"] ]
Will result in 2 magazines but full, 30 rounds in it. This applies to any magazines count >2. They will never be with specified amount of rounds, even if you force the refill argument to false
Posted on 2020-10-23 - 21:16 (UTC)
Here is a command I wrote up that provides a fix for the ammo bug described by demellion above. Pass a loadout to your compiled command and it will provide one back that will not refill ammo
Posted on Aug 23, 2022 - 08:27 (UTC)
player setUnitLoadout [ nil, nil, nil, nil, nil, ["B_Bergen_sgg",nil], nil, nil, nil, nil ];
You can use nil to skip some desired parameter. The skipped part will be ignored and remain the same with old loadout.
This method is very slightly faster than the latter method:
private _loadout = getUnitLoadout player; _loadout#5 set [0,"B_Bergen_mcamo_F"]; player setUnitLoadout _loadout;