PMC websites shut down September 13th 2025 unless yearly web hosting fees are paid. Please Support PMC to help keep these websites online.

Enjoyed or found this pages content useful, please Support PMC to help me keep this web page online beyond september 13th 2025 when yearly web hosting fees are due.

User Tools

Site Tools


arma2:config:custom_face

This is an old revision of the document!


ArmA 2 Custom Face

ArmA 2 Custom Face

This is how you add custom faces to your soldiers.

BIS CfgFaces config can be found on Dta\bin.pbo config.

class CfgFaces
{
	class Default
	{
		class Default
		{
			name = "";
			head = "";
			material = "";
			texture = "#(rgb,8,8,3)color(0.5,0.5,1,1)";
			east = 0;
			west = 0;
			identityTypes[] =
			{
				"Default"
			};
		};
 
		class Custom
		{
			name = "";
			head = "";
			material = "";
			texture = "#(rgb,8,8,3)color(1,1,1,1)";
			front = "#(rgb,8,8,3)color(1,1,1,1)";
			side = "#(rgb,8,8,3)color(1,1,1,1)";
			back = "#(rgb,8,8,3)color(1,1,1,1)";
			east = 0;
			west = 0;
			identityTypes[] = {};
		};
	};
};

And then more in the characters.pbo

class CfgFaces
{
	class Default
	{
		class Custom;
	};
 
	class Man : Default
	{
		class Default
		{
			name = $STR_CFG_FACES_DEFAULT;
			texture = "\ca\characters\hhl\hhl_46_CO.paa";
			head = "defaultHead";
			identityTypes[] = {};
			material = "\ca\characters\heads\male\defaulthead\data\hhl_white.rvmat";
		};
 
		class Custom : Custom
		{
			name = $STR_CFG_FACES_CUSTOM;
			texture = "#(argb,8,8,3)color(0.596,0.412,0.365,1)";
			head = "defaultHead";
			identityTypes[] = {};
			material = "\ca\characters\heads\male\defaulthead\data\hhl_white.rvmat";
		};
 
		class Face01 : Default
		{
			name = "$STR_FN_Man_Face01";
			texture = "\ca\characters\hhl\hhl_01_CO.paa";
			disabled = 0;
			identityTypes[] =
			{
				"Default",
				"",
				"",
				"Head_RU",
				"Head_RU_CO",
				"Head_CDF",
				"Head_CDF_CO",
				"Head_INS",
				"Head_GUE",
				"Head_CIV",
				""
			};
		};
 
		class Face01_camo1 : Face01
		{
			head = "defaultHead_camo1";
			name = "$STR_FN_Man_Face01_camo1";
			material = "\CA\characters\Heads\Male\DefaultHead\Data\Camo1_hhl.rvmat";
			disabled = 1;
			identityTypes[] =
			{
				"",
				"",
				"Head_RU_Camo",
				"Head_RU_CO_Camo",
				"Head_CDF_Camo",
				"Head_CDF_CO_Camo",
				"Head_INS_Camo",
				"Head_GUE_Camo"
			};
		};
 
		class Face01_camo2 : Face01_camo1
		{
			head = "defaultHead_camo2";
			name = "$STR_FN_Man_Face01_camo2";
			material = "\CA\characters\Heads\Male\DefaultHead\Data\Camo2_hhl.rvmat";
			disabled = 1;
		};

CfgFaces

ArmA 2 CfgFaces

Used in conjunction with setFace.

person SetFace "cfgFaces.ClassName"; // quotes required
 
this SetFace "Marylin";
soldier1 SetFace "Face33";

“Face01” to “Face107”.

A subset of 6 Camo faces are available for each of above.

The full set of class names for “face77” would be:

Face77, Face77_camo1, Face77_camo2, Face77_camo3, Face77_camo4, Face77_camo5 and Face77_camo6

Structure

class CfgFaces
{
	class Default; // held in engine's ca_bin
	class Man: Default
	{
		class Default; // held in ca_chars
		class FaceWhatever: Default
	{
		name = "$STR_Whatever"; // every class, different string name
		texture = "\some\texture\somewhere.paa"; // THE face for this
		head = defaultHead; //classname in cfgHeads
		material = "\some\rvmat\somewhere.rvmat";
		disabled = false; // always TRUE for inherited camo faces
	};
 
	class OneOfSixCamos: FaceWhatever
	{
		/* uses the same face texture (obviously) */
		disabled = true; // always
		name = "$STR_UniqueName";
		head = "alwaysOneOf6Classes"; // changes wounds
		material = "\AlwaysOneOfSix\Different\FacePaints.rvmat";
	}

One single head model is used for ALL faces. On which, a different base texture is applied for EVERY 'face'.

Separately, each of these faces have different face paint, and they, require a separate head class to reflect the different wound appearances.

ALL of the camo derivatives use one of six common face paints.

Specifying \root and .paa extension are essential.

head = inevitably leads to one, single, defaultp3d held in \ca\characters\man\defaulthead\defaulthead.p3d;

Subset themes

The above 107 faces are duplicated, class wise in black and green masks also a women models, and, a few face models for some special US soldiers.

Adding a Face

Camouflage subclasses are not required.

class CfgFaces
{
	class Default; // held in engine's ca_bin
	class Man: Default
	{
		class Default; // held in ca_chars
		class FaceWhatever: Default
		{
			disabled = false; // should be part of default, but was overlooked
 
			name = "$STR_Whatever";
			texture = "\some\texture\somewhere.paa"; // THE face for this
			identityTypes[] =
			{
				"Default",
				"Head_USMC",
				"Head_USMC_CO",
				"",
				"",
				"Head_CDF",
				"Head_CDF_CO",
				"",
				"Head_GUE",
				"Head_CIV",
				""
			};
		};

Example African (black) Faces

African black faces for characters

African names:

class CfgWorlds
{
	class GenericNames
	{
		class PMC_Somali_Names
		{
			class FirstNames
			{
				adalberto = "Adalberto";
				//etc
			};
			class LastNames
			{
				morales = "Morales";
				// etc

Face configs:

class CfgFaces
{
	class Man;
	class PMC_Somali_Faces: Man
	{
		class Default
		{
			name = "$STR_CFG_FACES_DEFAULT";
			texture = "\ca\characters\hhl\hhl_31_CO.paa";
			head = "BlackHead";
			identityTypes[] = {};
			material = "\ca\characters\heads\male\BlackHead\data\hhl_black.rvmat";
		};
		class Custom: Default
		{
			name = "$STR_CFG_FACES_CUSTOM";
			texture = "#(argb,8,8,3)color(0.596,0.412,0.365,1)";
			head = "BlackHead";
			identityTypes[] = {};
			material = "\ca\characters\heads\male\BlackHead\data\hhl_black.rvmat";
		};
		class Face26: Default
		{
			name = "$STR_FN_Man_Face26";
			texture = "\ca\characters\hhl\hhl_26_CO.paa";
			disabled = 0;
			identityTypes[] = {"Default","","","Head_USMC","Head_USMC_CO","Head_CDF","Head_CDF_CO","Head_INS","Head_GUE","Head_CIV",""};
		};
		class Face27: Default
		{
			name = "$STR_FN_Man_Face27";
			texture = "\ca\characters\hhl\hhl_27_CO.paa";
			disabled = 0;
			identityTypes[] = {"Default","","","Head_USMC","Head_USMC_CO","Head_CDF","Head_CDF_CO","Head_INS","Head_GUE","Head_CIV",""};
		};
		// etc

Then in character's class you make:

genericNames = "PMC_Somali_Names";
faceType = "PMC_Somali_Faces";
arma2/config/custom_face.1484464415.txt.gz · Last modified: 2017/01/15 07:13 by snakeman