The Basics

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:

  1. The class mapping
  2. Equipment sets



Class Mapping

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

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:

  1. Equipment
  2. Definitions
  3. ClassMapping

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" 
    };  
};

  • displayName - This is the name of equipment set that is used in menus, make it pretty!
  • replaceGoggles - Determines if a user's custom face object (glasses, mask, etc.) should be replaced with the equipment set's values.
  • medicClasses - An array of classes that will be flagged as medics. Medics have basic field training, and can perform some advanced medical treatment.
  • doctorClasses - An array of classes what will be flagged as doctors. Doctors can perform all advanced medical treatment.
  • engineerClass -



Equipment

Equipment is defined in the Equipment class inside of your equipment set's class.

Property List

List of properties that support randomization

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_carryhandle
  • primaryWeapon[] = {“rhs_weap_m16a4_carryhandle”, “rhs_weap_m16a4_carryhandle_grip”}; This soldier will get a rhs_weap_m16a4_carryhandle or a rhs_weap_m16a4_carryhandle_grip
  • primaryWeapon[] = {“rhs_weap_m16a4_carryhandle”,“”}; This soldier has a chance to not get a primary weapon.

The list of properties supporting randomization are as follows:

  • primaryWeapon
  • primaryWeaponMagazine
  • primaryWeaponMagazineSecondary
  • primaryWeaponBipod
  • primaryWeaponMuzzle
  • primaryWeaponOptic
  • primaryWeaponRailAttachment
  • launcher
  • launcherMagazine
  • launcherOptic
  • launcherRailAttachment
  • sidearm
  • sidearmMagazine
  • sidearmMuzzle
  • sidearmOptic
  • sidearmRailAttachment
  • binocular
  • nightVision
  • headgear
  • uniform
  • vest
  • backpack
  • facegear
  • Last modified: 13 months ago
  • (external edit)