Skip to content
Per_von_Harke edited this page Feb 22, 2024 · 26 revisions

Standardization

The following format is to be followed when naming any file in this repository: [countrycode]_[era]_[unit]_[camouflage]_[additionalInfo].sqf

  • The entire name should be in lower case for case sensitive searches. For compatability with Arma instances running on Linux.
  • Whitespaces should not be used for the same reason as above.
  • Keywords are to be delimited by an underscore _.

Format and Syntax Description

countrycode

Country code should use the ISO 3166 Alpha 3 country codes to denote the loadout's country. If a country isn't listed in the ISO 3166 standard or if the loadout isn't linked to a particular country other short-format codes should be used. It is important however that these short-format codes do not match any existing country codes from ISO 3166 and thus when one is made it is important that the newly created code is checked against the ISO 3166 list. To create some early standardizations for missing codes I suggest the following to be standardized:

  • fic: Fictional
  • irg: Irregular
  • pmc: Private Military Contractor

era

The era would denote a time period for the loadout. It should be one of the following formats (where Y is year): YYYY, YYYY-YYYY, YYs, YYs-YYs, timeperiod (e.g. coldwar) or na (for Not Applicable)

unit

Unit is an optional parameter, the only requirements are that it is in lowercase. This keyword can be omitted if deemed unnecessary for describing the loadout or if it's not applicable.

camouflage

is a mandatory parameter that describes the most prevalent camouflage of the loadout. The standardized codes are:

  • mixed: used if there is no major camo pattern in every kit in the loadout file.
  • civ: used if the loadout only has civilian clothing in it with minor appearances of camouflaged items.

Other camouflages are to be written in length (ie.: Flecktarn, Multicam). If the names are too long or have spaces in their name they are to be shortened to the most commonly used acronym for them (ie.: Desert Nigth Camouflage --> DNC).

additionalinfo

Additional Info is an optional parameter, the only requirements are that it is in lowercase. This keyword can be omitted if deemed unnecessary for describing the loadout or if it's not applicable.


Loadout/Logistics/AI/Garage Header

The loadout header contains the author, compatable Cluster Commmunity modpack version, a descriptioin and a link to the CMF3 example file for the type of file.

Loadout Header

/*
 * Made for Arma 3 Virtual MILSIM
 *
 * Author: [Author]
 * CC Modpack Version: [Modpack Version]
 * [Description]
 *
 * https://github.com/clustermod/CMF3/blob/dev/framework/rsc/loadouts/!arsenal_template.sqf
 */

Logistics Header

/*
 * Made for Arma 3 Virtual MILSIM
 *
 * Author: [Author]
 * CC Modpack Version: [Modpack Version]
 * [Description]
 *
 * https://github.com/clustermod/CMF3/blob/dev/framework/rsc/loadouts/!logistics_template.sqf
 */

AI Header

/*
 * Made for Arma 3 Virtual MILSIM
 *
 * Author: [Author]
 * CC Modpack Version: [Modpack Version]
 * [Description]
 *
 * https://github.com/clustermod/CMF3/blob/dev/framework/rsc/loadouts/!ai_arsenal_template.sqf
 */

AI Header

/*
 * Made for Arma 3 Virtual MILSIM
 *
 * Author: [Author]
 * CC Modpack Version: [Modpack Version]
 * [Description]
 *
 * https://github.com/clustermod/CMF3/blob/dev/framework/rsc/loadouts/!garage_template.sqf
 */

File Structure

This structure is to be followed by any pull request submitted to this repository. Any pull request not following this standard will not be merged.

loadouts
├── [Country] (e.g. germany)
│   ├── loadout (contains all player loadouts)
│   │   ├── [Kosher Arsenal Loadout] (template file)
│   │   └── README.md (overview of loadouts, and relevant garage, logistics or ai templates)
│   ├── garage
│   │   ├── [Kosher Garage Loadout] (template file)
│   │   └── README.md (overview of loadouts, and relevant garage, logistics or ai templates)
│   ├── logistics
│   │   ├── [Logistics Template] (template file)
│   │   └── README.md (overview of loadouts, and relevant garage, logistics or ai templates)
│   └── ai
│       ├── [Kosher AI Loadout] (template file)
│       └── README.md (overview of loadouts, and relevant garage, logistics or ai templates)
└── README.md (for documentation of this directory)

The README in the loadouts directory is mainly for creating a route selection for users. So they can navigate through the repository using links in the readme files. Additionally this can be used for documentation of the directory structure or file structure.

The README inside the sub-directories of the Country directories serve to list each of the files, information about the files, relevant or associated templates (garage, logistics or AI) and a direct download link of the files. This works into the navigation system described above making it easier for the standard user to more easily find what they are searching for.

Standard loadout folder README Structure

--- 
<!--Divider-->
## YEAR NAME
**file:** `<!--REPLACE WITH FILENAME-->.sqf`

**Modpack Version:** `<!--REPLACE WITH MODPACKVERSION-->`

**Template Version:** `1.3`

**Roles:** 
- `RFL` Rifleman
- `SL` Squadleader
- `FTL` Fireteam Leader
- `MED` Medic
- `AR` Autorifleman
- `LAT` Anti-Tank, Light
- `GRD` Grenadier

**Description:**
<!--Description-->

**Contry:** <!--REPLACE WITH COUNTRYNAME-->

**Year**: <!--REPLACE WITH YEAR-->

**Associated Files:**
<!--List files here or write "None"-->

<!--Change FILENAME and COUNTRYNAME in link in `href` below!-->
<a href="https://github.com/clustermod/HCMF3-Loadouts/blob/master/loadouts/CHANGECOUNTRYNAME/loadouts/CHANGEFILENAME.sqf">
  <img alt="Static Badge" src="https://img.shields.io/badge/File-Download_(CTRL_%2B_S)-orange?style=flat-square">
</a>

Example of logistics folder README structure

## 2005 U.S. Delta Forces (CAG) Logistics
**Modpack Version:** `cc_core_v5`

**Template Version:** `1.0`
<!-- Crates -->
**Crates:** 
- x2 `Fireteam`
- x1 `Medical`
- x1 `Breacher`

<!-- Description -->
Logistical crates for 2005 U.S. Delta Forces (CAG)
<!-- Information about file e.g. country: Russia-->

**Country:** United States

**Associated Files:**
- usa_2005_delta_3cd
<!-- List of templates associated with this e.g. garage and logistics templates -->
<br/><br/>
<a href="https://raw.githubusercontent.com/clustermod/HCMF3-Loadouts/master/loadouts/united_states/logistics/usa_2005_delta_logistics.sqf">
  <img alt="Static Badge" src="https://img.shields.io/badge/File-Download_(CTRL_%2B_S)-orange?style=flat-square">
</a>

---

Role Variables

These are the standard role variables that should be used when contributing to this repository. This is not a standard for CMF3, only for this repository.

Role Variable
Rifleman RFL
Squad Leader SL
Medic MED
Autorifleman AR
Grenadier GRD
Medium Machinegunner MMG
Heavy Machinegunner HMG
Light Anti-Tank LAT
Medium Anti-Tank MAT
Heavy Anti-Tank HAT
Designated Marksman DMR
Engineer ENG
Crewman CRW
Sniper SNIPER
JTAC JTAC
Forward Air Controller FAC
UAV/Drone Operator UAV
Fixed Wing Pilot FPLT
Rotary Wing Pilot RPLT

Defining ACE Roles

ACE roles and their different skill levels can be set for individual roles inside the loadout files.

/* Sets Engineer, 0 = Untrained only repairs wheels based on settings, 1 = Engineer, 2 = Advanced Engineer allowing a higher level of repairs */
_unit setVariable ["ace_isEngineer", 1, true];

/* Sets EOD */
_unit setVariable ["ACE_isEOD", true, true]

/* Sets Medic, 0 = Untrained, 1 = Medic, 2 = Doctor */ 
_unit setVariable ["ace_medical_medicclass", 2, true];

Example:

/* Medic */
if (_condition && _role in ["MED"]) then {
    _unit setVariable ["ace_medical_medicclass", 2, true];
    _availableUniforms = ["BWA3_Uniform_Fleck"];
    _availableWeapons = ["BWA3_G36A3"];
    _availableAttachments = ["bwa3_optic_zo4x30_rsas_brown", "bwa3_acc_varioray_irlaser"];
    _availableMagazines = [];
    _availableVests = ["CUP_V_JPC_medicalbelt_rngr"];
    _availableItems = ["ACE_personalAidKit", "ACE_plasmaIV", "ACE_plasmaIV_250", "ACE_plasmaIV_500", "ACE_surgicalKit", "kat_chestSeal", "kat_larynx", "kat_stethoscope", "kat_amiodarone", "kat_lidocaine", "kat_IO_FAST", "kat_IV_16", "KAT_Empty_bloodIV_500", "KAT_Empty_bloodIV_250", "kat_AED", "kat_aatKit"];
    _availableGrenades = [];
    _availableBackpacks = ["BWA3_Kitbag_Fleck_Medic"];
    _availableHeadgear = ["BWA3_OpsCore_FastMT_SOF_Fleck"];
    _availableFacewear = ["BWA3_G_Combat_clear", "CUP_G_RUS_Balaclava_Ratnik", "FGN_CauR_Shemag_green", "rhsusf_shemagh2_od", "rhsusf_shemagh_od"];
};