Skip to content

DEV Creating Faction Templates

Saveliy Tronza edited this page Aug 6, 2020 · 3 revisions

Creating New Faction Templates

This guide will explain how to create a new faction template, where to find current templates, and what to look out for when making a new template.

Copy an Existing Template

Navigate to Templates/Factions and make a copy of NATO.sqf. Make sure to use this template, and not the default template, or other custom templates. This way you are less likely to introduce errors. The NATO template contains vanilla Arma 3 units only, so a mistake should not cause any problems or missing addon dependencies.

Editing Units

Let's take a look at the first part of the file: infantry classnames.

_inf = [];
_inf resize T_INF_SIZE;
_inf set [T_INF_DEFAULT,  ["B_Soldier_F"]]; // = 0 Default if nothing found
_inf set [T_INF_SL, ["B_Soldier_SL_F"]]; // = 1
_inf set [T_INF_TL, ["B_Soldier_TL_F"]]; // = 2

Default unit must be some unarmed unit or rifleman of same set of units as used in this faction.

If there is no specific unit type in this faction which suits this unit type, specify the most suitable unit.

Missing entries are supported. So for instance if some faction has no HMG or helicopter, don't specify it. The resulting entry in the array must be nil in this case.

Editing a Classname

_inf set [T_INF_TL, ["CLASSNAME IN QUOTES"]];

Example:

_inf set [T_INF_TL, ["B_Soldier_TL_F"]];

You can specify several class names, in this case specific class name will be chosen randomly:

_inf set [T_INF_TL, ["B_Soldier_TL_F", "someOtherClassName"]];

You can also specify class names with weights. Specific class name will be chosen randomly, but this time all class names have not equal chance, but with specified weight.

_inf set [T_INF_TL, ["B_Soldier_TL_F", 3, "someOtherClassName", 1]];

Important Notes

  • For clarity, do not delete any lines. Instead comment out unused classes.
  • Keep in mind that there is an enemy progression from MRAPs to IFVs/APCs to tanks. If your template is not going to have tanks try to replace those with something equivalent.
  • Do not use an empty classname (like so: []) or an empty string for a classname (like so: ""). This will cause an error.