All gear config data is lies inside of the Gear class inside of the CBB_Framework config class.
The gear system has 2 major components those components being:
For each unit in Arma 3, vanilla or otherwise, the framework contains a mapping of what a certain unit's role is. For example, rhsusf_army_ocp_rifleman is of type Rifleman. All class mapping data exists inside of the ClassMapping class, inside of the Gear class. Units are defined via their classname as a property name, with their value being the role they are. An example:
/**
*
* [RHS] US Army OCP
*
**/
rhsusf_army_ocp_aa = "AntiAir";
rhsusf_army_ocp_autorifleman = "AutomaticRifleman";
rhsusf_army_ocp_autoriflemana = "AutomaticRifleman_Assistant";
rhsusf_army_ocp_combatcrewman = "Vehicle_Commander";
rhsusf_army_ocp_crewman = "Vehicle_Crew";
rhsusf_army_ocp_driver = "Vehicle_Crew";
rhsusf_army_ocp_driver_armored = "Vehicle_Commander";
rhsusf_army_ocp_engineer = "Engineer";
rhsusf_army_ocp_explosives = "Engineer";
rhsusf_army_ocp_fso = "JTAC";
Class mappings can be overridden in an equipment set, but more on that later.
Equipment sets are a set of rules with which to regear players. They exist inside of the Sets class inside, of the Gear config class. Each set is it's own subclass of the set's class. That subclass then contains some basic settings about said equipment set. The classname for the equipment set should only contain lowercase letters, numbers, underscores. For example, rhs_usarmy. It also contains 2 (or 3) subclasses, those being:
But more on those later.
An example of the basic settings:
class rhs_usarmy
{
displayName = "RHS US Army";
replaceGoggles = 0;
medicClasses[] = {};
doctorClasses[] = {"Medic"};
engineerClasses[] = {"Vehicle_Commander"};
repairClasses[] = {"Repairman", "Engineer", "Vehicle_Crew"};
eodClasses[] = {"Engineer"};
class Definitions
{
#include "definitions.hpp"
};
class Loadouts
{
#include "loadouts.hpp"
};
};
Equipment is defined in the Equipment class inside of your equipment set's class.
Each of these properties are defined as an array, supporting randomization. Some examples and their descriptions:
primaryWeapon[] = {}; This soldier will not get a primary weapon.primaryWeapon[] = {“rhs_weap_m16a4_carryhandle”}; This soldier will get an rhs_weap_m16a4_carryhandleprimaryWeapon[] = {“rhs_weap_m16a4_carryhandle”, “rhs_weap_m16a4_carryhandle_grip”}; This soldier will get a rhs_weap_m16a4_carryhandle or a rhs_weap_m16a4_carryhandle_gripprimaryWeapon[] = {“rhs_weap_m16a4_carryhandle”,“”}; This soldier has a chance to not get a primary weapon.The list of properties supporting randomization are as follows:
primaryWeaponprimaryWeaponMagazineprimaryWeaponMagazineSecondaryprimaryWeaponBipodprimaryWeaponMuzzleprimaryWeaponOpticprimaryWeaponRailAttachmentlauncherlauncherMagazinelauncherOpticlauncherRailAttachmentsidearmsidearmMagazinesidearmMuzzlesidearmOpticsidearmRailAttachmentbinocularnightVisionheadgearuniformvestbackpackfacegear