{"name":"Arma 3: Arsenal","title":"Arma 3: Arsenal","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_Arsenal","revid":370888,"updated":"2025-02-21T10:44:04Z","aliases":["Arma 3 Arsenal","Arsenal"],"markdown":"Arsenal is, essentially, a character, equipment and weapon viewer which has been added to Arma 3 in the Bootcamp update.\nThis tool offers an overview of the available content, and enables customized loadouts to be exported to script, which can be used in the editor, other game modes, such as Zeus, and by community scenarios/mods.\n\nYou can access it from the main menu by clicking on **LEARN > VIRTUAL ARSENAL**.\n\n### Using\n\n#### Export\n\n##### Export to SQF\n\nClicking on EXPORT button or pressing <kbd>Ctrl</kbd> + <kbd>C</kbd> will copy the current loadout to clipboard in SQF format. You can paste it to soldier's init field or use it in a script.\n\nYou can take the same code and import it via <kbd>Ctrl</kbd> + <kbd>V</kbd> back to Arsenal. Use this to share loadouts with other players.\n\n**Example:**\n\n```sqf\ncomment \"Exported from Arsenal by DavidArmstrong85\";\n\ncomment \"Remove existing items\";\nremoveAllWeapons this;\nremoveAllItems this;\nremoveAllAssignedItems this;\nremoveUniform this;\nremoveVest this;\nremoveBackpack this;\nremoveHeadgear this;\nremoveGoggles this;\n\ncomment \"Add containers\";\nthis forceAddUniform \"U_I_CombatUniform\";\nfor \"_i\" from 1 to 4 do {this addItemToUniform \"30Rnd_556x45_Stanag\";};\nthis addItemToUniform \"16Rnd_9x21_Mag\";\nthis addVest \"V_PlateCarrierIA2_dgtl\";\nfor \"_i\" from 1 to 4 do {this addItemToVest \"FirstAidKit\";};\nfor \"_i\" from 1 to 6 do {this addItemToVest \"HandGrenade\";};\nfor \"_i\" from 1 to 3 do {this addItemToVest \"16Rnd_9x21_Mag\";};\nthis addBackpack \"B_TacticalPack_oli\";\nfor \"_i\" from 1 to 2 do {this addItemToBackpack \"SatchelCharge_Remote_Mag\";};\nfor \"_i\" from 1 to 4 do {this addItemToBackpack \"DemoCharge_Remote_Mag\";};\nthis addHeadgear \"H_Cap_headphones\";\nthis addGoggles \"G_Bandanna_oli\";\n\ncomment \"Add weapons\";\nthis addWeapon \"arifle_Mk20C_F\";\nthis addPrimaryWeaponItem \"muzzle_snds_M\";\nthis addPrimaryWeaponItem \"acc_flashlight\";\nthis addPrimaryWeaponItem \"optic_MRCO\";\nthis addWeapon \"hgun_P07_F\";\n\ncomment \"Add items\";\nthis linkItem \"ItemMap\";\nthis linkItem \"ItemCompass\";\nthis linkItem \"ItemWatch\";\nthis linkItem \"ItemRadio\";\nthis linkItem \"ItemGPS\";\n\ncomment \"Set identity\";\nthis setFace \"GreekHead_A3_03\";\nthis setSpeaker \"Male03GRE\";\n[this, \"TFAegis\"] call BIS_fnc_setUnitInsignia;\n```\n\n##### Export to CPP\n\nPressing <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>C</kbd> will export the loadout in **config format**, which can then be used in CfgRespawnInventory.\n**Example:**\n\n```cpp\n// Exported from Arsenal by R3vo\nuniform = \"U_B_CombatUniform_mcam_tshirt\";\nbackpack = \"B_AssaultPack_rgr_Medic\";\nweapons[] = { \"arifle_MX_F\", \"hgun_P07_F\", \"Throw\", \"Put\" };\nmagazines[] = { \"30Rnd_65x39_caseless_mag\", \"30Rnd_65x39_caseless_mag\", \"Chemlight_green\", \"30Rnd_65x39_caseless_mag\",\n\"30Rnd_65x39_caseless_mag\", \"30Rnd_65x39_caseless_mag\", \"16Rnd_9x21_Mag\", \"16Rnd_9x21_Mag\", \"SmokeShell\",\n\"SmokeShellGreen\", \"SmokeShellBlue\", \"SmokeShellOrange\", \"Chemlight_green\" };\nitems[] = { \"FirstAidKit\", \"Medikit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\" };\nlinkedItems[] = { \"V_PlateCarrierSpec_rgr\", \"H_HelmetB_light_desert\", \"G_Combat\", \"ItemMap\", \"ItemCompass\", \"ItemWatch\", \"ItemRadio\", \"NVGoggles\" };\n```\n\n#### Zeus Ammo Box\n\nAs Zeus, you can create virtual ammo box where players can endlessly resupply. Instead going through the classic inventory screen, they'll be able to access Arsenal and select any item you'll give them.\n\n1. Play a scenario as Zeus\n1. Place an ammo box (*Units > Empty > Other > Ammo > [anything from the list]*)\n1. Select an item you want to make available in the Arsenal\n1. Decrease number of items to 0. Button on the left should change from '-' to '∞'\n1. Click on the button once more. Number of items should now be infinite\n1. After confirming, players will be able to access Arsenal through a new action attached to the box.\n\n#### Zeus Unit Arsenal\n\nZeus can use **Arsenal** module to quickly customize gear of any AI soldier. It doesn't work on players, dead units or vehicles.\n\n1. Play a scenario as Zeus\n1. Find a unit you want to customize\n1. Select *Modules > Zeus > Arsenal*\n1. Place the module on top of the unit\n1. Arsenal interface will be opened. You can either set specific items, or you can load previously saved loadout.\n\n#### Zeus Respawn Loadouts\n\nSaved loadout can be given to players as respawn loadouts by Zeus. Works only in scenarios with MenuInventory respawn template enabled.\n\n1. Save your loadout\n1. Play a scenario as Zeus\n1. Place *Modules > Respawn > Loadouts*\n1. Select side tab\n1. Expand *Arsenal* category\n1. Select the saved loadout.\n1. After confirming, players of the given side will be able to respawn with your loadout.\n\n#### Shortcuts\n\n| Shortcut | Description |\n|---|---|\n| <kbd>Ctrl</kbd> + <kbd>C</kbd> | Exports current loadout in script format |\n| <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>C</kbd> | Copies current loadout in config format to the clipboard, can be used for CfgRespawnInventory |\n| <kbd>Ctrl</kbd> + <kbd>V</kbd> | Applies loadout from clipboard to currently viewed unit |\n| <kbd>Ctrl</kbd> + <kbd>O</kbd> | Opens the Load interface |\n| <kbd>Ctrl</kbd> + <kbd>S</kbd> | Opens the Save interface |\n| <kbd>⟵ Backspace</kbd> | Hide UI |\n| <kbd>Return ↵</kbd> | Start preview |\n| <kbd>Ctrl</kbd> + <kbd>R</kbd> | Randomise loadout |\n| <kbd>N</kbd> | Toggle view mode (normal/night vision/thermals) |\n| <kbd>Esc</kbd> | Leave Arsenal |\n\n### Modding\n\n#### Blacklisting Items\n\nYou can prevent players from loading saved loadouts that contain unwanted items by blacklisting. This is possible by defining the arsenalRestrictedItems property in Description.ext.\n\n`arsenalRestrictedItems[] = { /* unwanted classes */ };`\n\n#### Access\n\nYou can use Arsenal in a scenario you're designing simply by calling the following function:\n\n```sqf\n[] spawn BIS_fnc_arsenal;\n```\n\nThis version has several limitations as opposed to the Virtual one:\n\n- Voice, Face and Insignia are not available (to avoid clashing with profile)\n- Not all assets are automatically present, designer has to whitelist allowed classes. By default, only player's current equipment is available.\n\nTo open Arsenal with full options, execute:\n\n```sqf\n[\"Open\", true] spawn BIS_fnc_arsenal;\n```\n\n#### Virtual Ammo Box\n\nYou can also use Arsenal as virtual inventory, allowing players to get unlimited number of items of given types from an ammo box. Action to access the Arsenal will be added automatically on all clients, you don't need to use addAction to enable it.\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[\"AmmoboxInit\", ammoBox] spawn BIS_fnc_arsenal;\n```\n\nor\n\n```sqf\n[\"AmmoboxInit\", [ammoBox, allowAll, condition]] spawn BIS_fnc_arsenal;\n```\n\n- ammoBox: Object - ammo box on which the action will be added\n- allowAll: Boolean - (Optional) true to add all available weapons, magazines, items and backpacks in the box\n- condition: Code - (Optional, default `{ true }`) condition for showing the Arsenal action\n  - Passed arguments are the same as in addAction condition, i.e., *_target* - the box, *_this* - caller\n\n**Returned value:**\nNothing\n\n**Example** (paste it into init field of a box)\n\n```sqf\n[\"AmmoboxInit\", [this, true]] spawn BIS_fnc_arsenal;\n```\n\nTo set which specific items should be available, use functions mentioned below.\n\n> [!NOTE]\n> You can preview all functions in in-game Functions viewer (while in editor, press Functions button or <kbd>Ctrl</kbd> + <kbd>F</kbd>)\n\n##### Add\n\nFunctions:\n\n- BIS_fnc_addVirtualBackpackCargo\n- BIS_fnc_addVirtualItemCargo\n- BIS_fnc_addVirtualMagazineCargo\n- BIS_fnc_addVirtualWeaponCargo\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target, classes, isGlobal, doAddAction] call BIS_fnc_addVirtualWeaponCargo;\n```\n\n- target: Object or Namespace - ammo box to which classes will be added. When missionNamespace is used, they will be available across all boxes.\n- classes: Boolean or Array of Strings - whitelisted classes. Alternatiovely, use true to whitelist everything of the given type\n- isGlobal: Boolean - (Optional, default false) true to add classes globally\n- doAddAction: Boolean - (Optional, default true) true to add \"Arsenal\" action which players can access the Arsenal\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\n[myBox, [\"arifle_MX_F\", \"arifle_MX_SW_F\", \"arifle_MXC_F\"], true] call BIS_fnc_addVirtualWeaponCargo;\n```\n\nTo add everything, use:\n\n```sqf\n[myBox, true, true] call BIS_fnc_addVirtualWeaponCargo;\n// or the equivalent:\n[myBox, [\"%ALL\"], true] call BIS_fnc_addVirtualWeaponCargo; // note that %ALL is ALL CAPITAL LETTERS\n```\n\n##### Remove\n\nFunctions:\n\n- BIS_fnc_removeVirtualBackpackCargo\n- BIS_fnc_removeVirtualItemCargo\n- BIS_fnc_removeVirtualMagazineCargo\n- BIS_fnc_removeVirtualWeaponCargo\n\n> [!NOTE]\n> Only specifically whitelisted cargo can be removed via these commands e.g creating an arsenal container with a whitelist of true (<allowAll>) and then trying to remove \"arifle_MX_ACO_pointer_F\" will not work.\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target, classes, isGlobal] call BIS_fnc_removeVirtualWeaponCargo;\n```\n\n- target: Object or Namespace - ammo box from which classes will be removed.\n- classes: Array of Stringss - removed classes\n- isGlobal: Boolean - (Optional, default false) true to remove classes globally\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\n[myBox, [\"arifle_MXC_F\"], true] call BIS_fnc_removeVirtualWeaponCargo;\n```\n\nIf an arsenal container has been created by using true as the whitelist (<allowAll>) then a string of \"%ALL\" (ALL CAPITAL LETTERS) will be inserted into the category array. To remove this kind of whitelist instead use..\n\n```sqf\n[myBox, true, true] call BIS_fnc_removeVirtualWeaponCargo;\n// or the equivalent:\n[myBox, [\"%ALL\"], true] call BIS_fnc_removeVirtualWeaponCargo; // note that %ALL is ALL CAPITAL LETTERS\n```\n\n##### Get\n\nFunctions:\n\n- BIS_fnc_getVirtualBackpackCargo\n- BIS_fnc_getVirtualItemCargo\n- BIS_fnc_getVirtualMagazineCargo\n- BIS_fnc_getVirtualWeaponCargo\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target] call BIS_fnc_getVirtualWeaponCargo;\n```\n\n- target: Object or Namespace\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\nmyBox call BIS_fnc_getVirtualWeaponCargo;\n```","sections":[{"heading":null,"level":1,"markdown":"Arsenal is, essentially, a character, equipment and weapon viewer which has been added to Arma 3 in the Bootcamp update.\nThis tool offers an overview of the available content, and enables customized loadouts to be exported to script, which can be used in the editor, other game modes, such as Zeus, and by community scenarios/mods.\n\nYou can access it from the main menu by clicking on **LEARN > VIRTUAL ARSENAL**."},{"heading":"Using","level":3,"markdown":""},{"heading":"Export","level":4,"markdown":""},{"heading":"Export to SQF","level":5,"markdown":"Clicking on EXPORT button or pressing <kbd>Ctrl</kbd> + <kbd>C</kbd> will copy the current loadout to clipboard in SQF format. You can paste it to soldier's init field or use it in a script.\n\nYou can take the same code and import it via <kbd>Ctrl</kbd> + <kbd>V</kbd> back to Arsenal. Use this to share loadouts with other players.\n\n**Example:**\n\n```sqf\ncomment \"Exported from Arsenal by DavidArmstrong85\";\n\ncomment \"Remove existing items\";\nremoveAllWeapons this;\nremoveAllItems this;\nremoveAllAssignedItems this;\nremoveUniform this;\nremoveVest this;\nremoveBackpack this;\nremoveHeadgear this;\nremoveGoggles this;\n\ncomment \"Add containers\";\nthis forceAddUniform \"U_I_CombatUniform\";\nfor \"_i\" from 1 to 4 do {this addItemToUniform \"30Rnd_556x45_Stanag\";};\nthis addItemToUniform \"16Rnd_9x21_Mag\";\nthis addVest \"V_PlateCarrierIA2_dgtl\";\nfor \"_i\" from 1 to 4 do {this addItemToVest \"FirstAidKit\";};\nfor \"_i\" from 1 to 6 do {this addItemToVest \"HandGrenade\";};\nfor \"_i\" from 1 to 3 do {this addItemToVest \"16Rnd_9x21_Mag\";};\nthis addBackpack \"B_TacticalPack_oli\";\nfor \"_i\" from 1 to 2 do {this addItemToBackpack \"SatchelCharge_Remote_Mag\";};\nfor \"_i\" from 1 to 4 do {this addItemToBackpack \"DemoCharge_Remote_Mag\";};\nthis addHeadgear \"H_Cap_headphones\";\nthis addGoggles \"G_Bandanna_oli\";\n\ncomment \"Add weapons\";\nthis addWeapon \"arifle_Mk20C_F\";\nthis addPrimaryWeaponItem \"muzzle_snds_M\";\nthis addPrimaryWeaponItem \"acc_flashlight\";\nthis addPrimaryWeaponItem \"optic_MRCO\";\nthis addWeapon \"hgun_P07_F\";\n\ncomment \"Add items\";\nthis linkItem \"ItemMap\";\nthis linkItem \"ItemCompass\";\nthis linkItem \"ItemWatch\";\nthis linkItem \"ItemRadio\";\nthis linkItem \"ItemGPS\";\n\ncomment \"Set identity\";\nthis setFace \"GreekHead_A3_03\";\nthis setSpeaker \"Male03GRE\";\n[this, \"TFAegis\"] call BIS_fnc_setUnitInsignia;\n```"},{"heading":"Export to CPP","level":5,"markdown":"Pressing <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>C</kbd> will export the loadout in **config format**, which can then be used in CfgRespawnInventory.\n**Example:**\n\n```cpp\n// Exported from Arsenal by R3vo\nuniform = \"U_B_CombatUniform_mcam_tshirt\";\nbackpack = \"B_AssaultPack_rgr_Medic\";\nweapons[] = { \"arifle_MX_F\", \"hgun_P07_F\", \"Throw\", \"Put\" };\nmagazines[] = { \"30Rnd_65x39_caseless_mag\", \"30Rnd_65x39_caseless_mag\", \"Chemlight_green\", \"30Rnd_65x39_caseless_mag\",\n\"30Rnd_65x39_caseless_mag\", \"30Rnd_65x39_caseless_mag\", \"16Rnd_9x21_Mag\", \"16Rnd_9x21_Mag\", \"SmokeShell\",\n\"SmokeShellGreen\", \"SmokeShellBlue\", \"SmokeShellOrange\", \"Chemlight_green\" };\nitems[] = { \"FirstAidKit\", \"Medikit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\", \"FirstAidKit\" };\nlinkedItems[] = { \"V_PlateCarrierSpec_rgr\", \"H_HelmetB_light_desert\", \"G_Combat\", \"ItemMap\", \"ItemCompass\", \"ItemWatch\", \"ItemRadio\", \"NVGoggles\" };\n```"},{"heading":"Zeus Ammo Box","level":4,"markdown":"As Zeus, you can create virtual ammo box where players can endlessly resupply. Instead going through the classic inventory screen, they'll be able to access Arsenal and select any item you'll give them.\n\n1. Play a scenario as Zeus\n1. Place an ammo box (*Units > Empty > Other > Ammo > [anything from the list]*)\n1. Select an item you want to make available in the Arsenal\n1. Decrease number of items to 0. Button on the left should change from '-' to '∞'\n1. Click on the button once more. Number of items should now be infinite\n1. After confirming, players will be able to access Arsenal through a new action attached to the box."},{"heading":"Zeus Unit Arsenal","level":4,"markdown":"Zeus can use **Arsenal** module to quickly customize gear of any AI soldier. It doesn't work on players, dead units or vehicles.\n\n1. Play a scenario as Zeus\n1. Find a unit you want to customize\n1. Select *Modules > Zeus > Arsenal*\n1. Place the module on top of the unit\n1. Arsenal interface will be opened. You can either set specific items, or you can load previously saved loadout."},{"heading":"Zeus Respawn Loadouts","level":4,"markdown":"Saved loadout can be given to players as respawn loadouts by Zeus. Works only in scenarios with MenuInventory respawn template enabled.\n\n1. Save your loadout\n1. Play a scenario as Zeus\n1. Place *Modules > Respawn > Loadouts*\n1. Select side tab\n1. Expand *Arsenal* category\n1. Select the saved loadout.\n1. After confirming, players of the given side will be able to respawn with your loadout."},{"heading":"Shortcuts","level":4,"markdown":"| Shortcut | Description |\n|---|---|\n| <kbd>Ctrl</kbd> + <kbd>C</kbd> | Exports current loadout in script format |\n| <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>C</kbd> | Copies current loadout in config format to the clipboard, can be used for CfgRespawnInventory |\n| <kbd>Ctrl</kbd> + <kbd>V</kbd> | Applies loadout from clipboard to currently viewed unit |\n| <kbd>Ctrl</kbd> + <kbd>O</kbd> | Opens the Load interface |\n| <kbd>Ctrl</kbd> + <kbd>S</kbd> | Opens the Save interface |\n| <kbd>⟵ Backspace</kbd> | Hide UI |\n| <kbd>Return ↵</kbd> | Start preview |\n| <kbd>Ctrl</kbd> + <kbd>R</kbd> | Randomise loadout |\n| <kbd>N</kbd> | Toggle view mode (normal/night vision/thermals) |\n| <kbd>Esc</kbd> | Leave Arsenal |"},{"heading":"Modding","level":3,"markdown":""},{"heading":"Blacklisting Items","level":4,"markdown":"You can prevent players from loading saved loadouts that contain unwanted items by blacklisting. This is possible by defining the arsenalRestrictedItems property in Description.ext.\n\n`arsenalRestrictedItems[] = { /* unwanted classes */ };`"},{"heading":"Access","level":4,"markdown":"You can use Arsenal in a scenario you're designing simply by calling the following function:\n\n```sqf\n[] spawn BIS_fnc_arsenal;\n```\n\nThis version has several limitations as opposed to the Virtual one:\n\n- Voice, Face and Insignia are not available (to avoid clashing with profile)\n- Not all assets are automatically present, designer has to whitelist allowed classes. By default, only player's current equipment is available.\n\nTo open Arsenal with full options, execute:\n\n```sqf\n[\"Open\", true] spawn BIS_fnc_arsenal;\n```"},{"heading":"Virtual Ammo Box","level":4,"markdown":"You can also use Arsenal as virtual inventory, allowing players to get unlimited number of items of given types from an ammo box. Action to access the Arsenal will be added automatically on all clients, you don't need to use addAction to enable it.\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[\"AmmoboxInit\", ammoBox] spawn BIS_fnc_arsenal;\n```\n\nor\n\n```sqf\n[\"AmmoboxInit\", [ammoBox, allowAll, condition]] spawn BIS_fnc_arsenal;\n```\n\n- ammoBox: Object - ammo box on which the action will be added\n- allowAll: Boolean - (Optional) true to add all available weapons, magazines, items and backpacks in the box\n- condition: Code - (Optional, default `{ true }`) condition for showing the Arsenal action\n  - Passed arguments are the same as in addAction condition, i.e., *_target* - the box, *_this* - caller\n\n**Returned value:**\nNothing\n\n**Example** (paste it into init field of a box)\n\n```sqf\n[\"AmmoboxInit\", [this, true]] spawn BIS_fnc_arsenal;\n```\n\nTo set which specific items should be available, use functions mentioned below.\n\n> [!NOTE]\n> You can preview all functions in in-game Functions viewer (while in editor, press Functions button or <kbd>Ctrl</kbd> + <kbd>F</kbd>)"},{"heading":"Add","level":5,"markdown":"Functions:\n\n- BIS_fnc_addVirtualBackpackCargo\n- BIS_fnc_addVirtualItemCargo\n- BIS_fnc_addVirtualMagazineCargo\n- BIS_fnc_addVirtualWeaponCargo\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target, classes, isGlobal, doAddAction] call BIS_fnc_addVirtualWeaponCargo;\n```\n\n- target: Object or Namespace - ammo box to which classes will be added. When missionNamespace is used, they will be available across all boxes.\n- classes: Boolean or Array of Strings - whitelisted classes. Alternatiovely, use true to whitelist everything of the given type\n- isGlobal: Boolean - (Optional, default false) true to add classes globally\n- doAddAction: Boolean - (Optional, default true) true to add \"Arsenal\" action which players can access the Arsenal\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\n[myBox, [\"arifle_MX_F\", \"arifle_MX_SW_F\", \"arifle_MXC_F\"], true] call BIS_fnc_addVirtualWeaponCargo;\n```\n\nTo add everything, use:\n\n```sqf\n[myBox, true, true] call BIS_fnc_addVirtualWeaponCargo;\n// or the equivalent:\n[myBox, [\"%ALL\"], true] call BIS_fnc_addVirtualWeaponCargo; // note that %ALL is ALL CAPITAL LETTERS\n```"},{"heading":"Remove","level":5,"markdown":"Functions:\n\n- BIS_fnc_removeVirtualBackpackCargo\n- BIS_fnc_removeVirtualItemCargo\n- BIS_fnc_removeVirtualMagazineCargo\n- BIS_fnc_removeVirtualWeaponCargo\n\n> [!NOTE]\n> Only specifically whitelisted cargo can be removed via these commands e.g creating an arsenal container with a whitelist of true (<allowAll>) and then trying to remove \"arifle_MX_ACO_pointer_F\" will not work.\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target, classes, isGlobal] call BIS_fnc_removeVirtualWeaponCargo;\n```\n\n- target: Object or Namespace - ammo box from which classes will be removed.\n- classes: Array of Stringss - removed classes\n- isGlobal: Boolean - (Optional, default false) true to remove classes globally\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\n[myBox, [\"arifle_MXC_F\"], true] call BIS_fnc_removeVirtualWeaponCargo;\n```\n\nIf an arsenal container has been created by using true as the whitelist (<allowAll>) then a string of \"%ALL\" (ALL CAPITAL LETTERS) will be inserted into the category array. To remove this kind of whitelist instead use..\n\n```sqf\n[myBox, true, true] call BIS_fnc_removeVirtualWeaponCargo;\n// or the equivalent:\n[myBox, [\"%ALL\"], true] call BIS_fnc_removeVirtualWeaponCargo; // note that %ALL is ALL CAPITAL LETTERS\n```"},{"heading":"Get","level":5,"markdown":"Functions:\n\n- BIS_fnc_getVirtualBackpackCargo\n- BIS_fnc_getVirtualItemCargo\n- BIS_fnc_getVirtualMagazineCargo\n- BIS_fnc_getVirtualWeaponCargo\n\n**Syntax** (shared by all mentioned functions):\n\n```sqf\n[target] call BIS_fnc_getVirtualWeaponCargo;\n```\n\n- target: Object or Namespace\n\n**Returned value:**\nArray of Arrays: All virtual items within the target's space in format [<items>, <weapons>, <magazines>, <backpacks>]\n\n**Example:**\n\n```sqf\nmyBox call BIS_fnc_getVirtualWeaponCargo;\n```"}],"categories":["Arma 3: Editing"],"groups":["General"]}