====== ArmA 3 Character Re-Texturing Tutorial ====== **Basic Retexturing Tutorial of ArmA 3 Character** by Stiltman So, this will be a quick tutorial of how to get the retextures working. of course this also means you have some basic knowledge of how to extract the content of the arma 3 pbo files and making new pbo files and making configs with proper classnames. and the structure of a proper addon Using [[arma2:tools:eliteness|Mikeros Eliteness]] would probably work best in my opinion. //the textures that would be used for these example items would be found in the characters_f.pbo and in the bluefor/data folder\\ \\ Uniform = clothing1_co.paa\\ Vest = vests_rgr_co.paa\\ Helmet = equip1_co.paa// the basis is to add to the main class of the thing to retexture (if not already present) hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; and seems that you only need one of them in the class iteminfo. hiddenSelections[] = {"camo"}; ====== Vests ====== so the basic vest config would be added to CfgWeapons class V_PlateCarrier1_rgr : Vest_Base { scope = 2; displayName = "Example Platecarrier"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; class ItemInfo : VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; containerClass = "Supply100"; //how much it can carry mass = 50; //how much it weights armor = 5*0.5; passThrough = 0.7; }; and adding the hidden selections it would be class V_PlateCarrier1_rgr : Vest_Base { scope = 2; displayName = "Example Platecarrier"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; containerClass = "Supply100"; mass = 50; armor = 5*0.5; passThrough = 0.7; hiddenSelections[] = {"camo"}; }; Example of the full config: class CfgPatches { class example_vest_config { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class cfgWeapons { class Vest_Base; class VestItem; class example_PlateCarrier1_rgr : Vest_Base { scope = 2; displayName = "Example Platecarrier"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; containerClass = "Supply100"; mass = 50; armor = 5*0.5; passThrough = 0.7; hiddenSelections[] = {"camo"}; }; }; }; ====== Helmet (once its working) ====== would look like this in the cfgweapons. class H_HelmetB : ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "Example Helmet"; picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : HeadgearItem { mass = 100; uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; modelSides[] = {3, 1}; armor = 3*0.5; passThrough = 0.8; hiddenSelections[] = {"camo"}; }; Example of full config: class CfgPatches { class example_helmet_config { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class cfgWeapons { class ItemCore; class HeadgearItem; class example_HelmetB : ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "Example Helmet"; picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : HeadgearItem { mass = 100; uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; modelSides[] = {3, 1}; armor = 3*0.5; passThrough = 0.8; hiddenSelections[] = {"camo"}; }; }; }; ====== Uniforms ====== Uniforms seem to be working a little bit diffrent from what i gather they are in fact soldiers and when switching uniform the game just switches class/model on your soldier. So one would have to make a new soldier aswell as a new item. This example will put your soldier under bluefor as Uniform Test Soldier for the soldier its in CfgVehicles. class Example_Soldier_F : B_Soldier_base_F { _generalMacro = "B_Soldier_F"; //unsure what this does scope = 2; displayName = "Uniform Test Soldier"; uniformAccessories[] = {}; nakedUniform = "U_BasicBody"; //class for "naked" body uniformClass = "Example_CombatUniform_mcam"; //the uniform item hiddenSelections[] = {"Camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; and then the uniform item linking it to the soldier class making it an item in the gear menu without this it works as regular arma 2 and it will show no uniform in gear. class Example_CombatUniform_mcam : Uniform_Base { scope = 2; displayName = "Example Mcam uniform"; picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; class ItemInfo : UniformItem { uniformModel = "-"; uniformClass = "Example_Soldier_F"; //would be same as our made soldier class containerClass = "Supply20"; //how much it can carry mass = 80; //how much it weights }; Example of full config: class CfgPatches { class example_uniform_config { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class CfgVehicles { class B_Soldier_base_F; class Example_Soldier_F : B_Soldier_base_F { _generalMacro = "B_Soldier_F"; //unsure what this does scope = 2; displayName = "Uniform Test Soldier"; nakedUniform = "U_BasicBody"; //class for "naked" body uniformClass = "Example_CombatUniform_mcam"; //the uniform item hiddenSelections[] = {"Camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; }; }; class cfgWeapons { class Uniform_Base; class UniformItem; class Example_CombatUniform_mcam : Uniform_Base { scope = 2; displayName = "Example Mcam uniform"; picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; class ItemInfo : UniformItem { uniformModel = "-"; uniformClass = "Example_Soldier_F"; //would be same as our made soldier class containerClass = "Supply20"; //how much it can carry mass = 80; //how much it weights }; }; }; And a full config with everything in it and all gear on the soldier. Testing this ingame though without texture will make all parts invicible :) Full config: class CfgPatches { class example_retexture_config { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F_BLUFOR"}; }; }; class CfgVehicles { class B_Soldier_base_F; class Example_Soldier_F : B_Soldier_base_F { _generalMacro = "B_Soldier_F"; //unsure what this does scope = 2; displayName = "Uniform Test Soldier"; nakedUniform = "U_BasicBody"; //class for "naked" body uniformClass = "Example_CombatUniform_mcam"; //the uniform item hiddenSelections[] = {"Camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; linkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; respawnLinkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; }; }; class cfgWeapons { class Uniform_Base; class UniformItem; class Example_CombatUniform_mcam : Uniform_Base { scope = 2; displayName = "Example Mcam uniform"; picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; class ItemInfo : UniformItem { uniformModel = "-"; uniformClass = "Example_Soldier_F"; //would be same as our made soldier class containerClass = "Supply20"; //how much it can carry mass = 80; //how much it weights }; }; class ItemCore; class HeadgearItem; class example_HelmetB : ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "Example helmet"; picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : HeadgearItem { mass = 100; uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; modelSides[] = {3, 1}; armor = 3*0.5; passThrough = 0.8; hiddenSelections[] = {"camo"}; }; }; class Vest_Base; class VestItem; class example_PlateCarrier1_rgr : Vest_Base { scope = 2; displayName = "Example Platecarrier"; picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"}; class ItemInfo : VestItem { uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; containerClass = "Supply100"; mass = 50; armor = 5*0.5; passThrough = 0.7; hiddenSelections[] = {"camo"}; }; }; };