Jump to content
mikidave89

Custom texture mod: helmets and stats troubles

Recommended Posts

Hi Community :)

I started around 10 days ago in doing my mod with custom textures for uniforms, vests and... helmets.

I'm afraid there is something wong in my config.cpp : I can see my custom helmets and hats but vanilla ones disappeared! I used Modular AAF helmet model. Now AAF wear no such helmet; nor in arsenal this appears. Same story for Military blue cap and a boonie. This does NOT happen with vests and uniforms.

my cfg

 //       Headgear                 
 class HeadgearItem;

 class H_HelmetIA: ItemCore 
    { 
        class ItemInfo; 
    }; 
     
	 class H_AUSCAM: ItemCore
    {
		scope = 2; 
        displayName = "AUSCAM helm";
        //picture = "-";
        model = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
        hiddenSelections[] = {"Camo1","Camo2"};
        hiddenSelectionsTextures[] = {"\LaskoCamo\Data\H_AUSCAM.paa","\LaskoCamo\Data\H_AUSCAM.paa"};
        class ItemInfo: HeadgearItem
        {
            mass = 20;
            allowedSlots[] = {901,605};
            uniformModel = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
            modelSides[] = {3,1};
            hiddenSelections[] = {"Camo"};
            armor = "3*0.4";
            passThrough = 0.65;
        };
    };

 

I started doing my cfg from Astartes Gaming youtube tutorial Cfg. I used his template logic but didn't work too (this is the original one)

 class H_HelmetB: ItemCore 
    { 
        class ItemInfo; 
    }; 
     
    class CUstom_Helmet1: H_HelmetB
    {
        displayName = "Custom ECH SF";
        picture = "";
        model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
        hiddenSelections[] = {"Camo"};
        hiddenSelectionsTextures[] = {"\Custom_Uniform\Data\custom_helmet_co.paa"};
        class ItemInfo: ItemInfo
        {
            mass = 20;
            allowedSlots[] = {901,605};
            uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
            modelSides[] = {3,1};
            hiddenSelections[] = {"Camo"};
            armor = "3*0.4";
            passThrough = 0.65;
        };
    };

 

 

 

2nd (but minor) problem: all my uniforms have no statistic in arsenal (balistic protection, explosive resistance, load and weight)

class CfgVehicles {
class B_Soldier_F; 
	class O_soldier_F;
    
    class Lasko_Man_Lizard_Rhodie: B_soldier_F {
        author = "Lasko Miki, Astartes template"; 
        _generalMacro = "B_soldier_F"; 
        scope = 2; 
        displayName = "Lasko Soldier"; 
        identityTypes[] = {"Head_NATO", "G_NATO_default"}; 
        genericNames = "NATOMen"; 
        faction = "Lasko_Faction";
        model = "\A3\characters_f_beta\INDEP\ia_soldier_01.p3d"; //Default NATO 
        uniformClass = "Lasko_Lizard_Rhodie"; 
        hiddenSelections[] = {"Camo","Insignia"}; 
        hiddenSelectionsTextures[] = {"\LaskoCamo\Data\U_Lizard_Rhodie.paa"}; 
        weapons[] = {"Throw","Put"}; 
        respawnWeapons[] = {"Throw","Put"}; 
        magazines[] = {"HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"}; 
        respawnMagazines[] = {"HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"};
        linkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio"}; 
        respawnLinkedItems[] = {"ItemMap","ItemCompass","ItemWatch","ItemRadio"}; 
    };
//etc etc
};

class cfgWeapons 
{ 
    //Uniforms
    class ItemCore; 
    class UniformItem; 
    class Uniform_Base: ItemCore 
    { 
        class ItemInfo; 
    }; 

													//LIZARD RHODIE
    class Lasko_Lizard_Rhodie: Uniform_Base 
    { 
        scope = 2; 
        displayName = "Lizard Rhodie"; 
        //picture = "-"; 
        model = "\A3\characters_f_beta\INDEP\ia_soldier_01.p3d"; 
        class ItemInfo : UniformItem { 
            uniformClass = "Lasko_Man_Lizard_Rhodie"; 
            containerClass = "Supply50"; 
            mass = 50; 
        }; 
    }; 

//etc etc 
};

Thx for helping me :)

Share this post


Link to post
Share on other sites

It looks like the tutorial you're following may be using older standards. Here's how the BI wiki tell you to do helmets, vests and uniforms - https://community.bistudio.com/wiki/Arma_3_Characters_And_Gear_Encoding_Guide#Headgear_configuration

 

class cfgWeapons
{
    class ItemCore;
    class HeadgearItem;
    class H_HelmetB: ItemCore
    {
        author = "Bohemia Interactive";
        scope = 2;
        weaponPoolAvailable = 1;
        displayName = "ECH";
        picture = "\A3\characters_f\Data\UI\icon_H_helmet_plain_ca.paa";
        model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_plain";
        hiddenSelections[] = {"camo"};
        hiddenSelectionsTextures[] = {"\A3\Characters_F\BLUFOR\Data\equip1_co.paa"};
        class ItemInfo: HeadgearItem
        {
            mass = 40;
            uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_plain";
            modelSides[] = {TCivilian, TWest};
            hiddenSelections[] = {"camo"};
 
            //subItems[] = {"Integrated_NVG_F"}; //if defined, this headgear item gains functionality (visual modes) of given NVG item and will occupy its slot as well. Currently works only for Headgear + NVG + Radio item combinations.
 
            class HitpointsProtectionInfo //more info at: https://community.bistudio.com/wiki/Arma_3_Soldier_Protection
            {
                class Head
                {
                     hitPointName = "HitHead";
                     armor = 6;
                     passThrough = 0.5;
                };
            };
        };
    };
};

 

Share this post


Link to post
Share on other sites

Thx!

The 1st problem was this:

 class H_HelmetIA: ItemCore

I had to use " H_HelmetB : ItemCore ", of course!! Instead, I tryed to force a substitution of vanilla helmet with mine.

 

Still I haven't succeded in make the uniform stats to be visible in arsenal.

 

Then, I have modify the paa file that gives textures to platecarrier, platecarrier lite and Kerry's platecarrier. First and second work, Kerry's don't.

													//Works
class T_CADPAT_Plate: Vest_Camo_Base 
    { 
        scope = 2; 
        displayName = "CADPAT Platecarrier"; 
        //picture = "-"; 
        model = "A3\Characters_F\BLUFOR\equip_b_Vest01"; 
        hiddenSelections[] = {"Camo"}; 
        hiddenSelectionsTextures[] = {"LaskoCamo\Data\T_CADPAT.paa"}; 
        class ItemInfo: VestItem 
        { 
            uniformModel = "A3\Characters_F\BLUFOR\equip_b_Vest01";
            containerClass = "Supply120"; 
            mass = 80; 
           // armor = "5"; 
            //passThrough = 0.3; 
            hiddenSelections[] = {"camo"}; 
			class HitpointsProtectionInfo {
                class Chest {
                    HitpointName = "HitChest";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Diaphragm {
                    HitpointName = "HitDiaphragm";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Abdomen {
                    hitpointName = "HitAbdomen";
                    armor = 16;
                    passThrough = 0.3;
                };

                class Body {
                    hitpointName = "HitBody";
                    passThrough = 0.3;
                };
            };
			
        };
	};		
																//Works
	class T_CADPAT_Plate_Lite: Vest_Camo_Base 
    { 
        scope = 2; 
        displayName = "CADPAT Platecarrier Lite"; 
        //picture = "-"; 
        model = "A3\Characters_F\BLUFOR\equip_b_Vest02"; 
        hiddenSelections[] = {"Camo"}; 
        hiddenSelectionsTextures[] = {"LaskoCamo\Data\T_CADPAT.paa"}; 
        class ItemInfo: VestItem 
        { 
            uniformModel = "A3\Characters_F\BLUFOR\equip_b_Vest02";
            containerClass = "Supply120"; 
            mass = 80; 
           // armor = "5"; 
            //passThrough = 0.3; 
            hiddenSelections[] = {"camo"}; 
			class HitpointsProtectionInfo {
                class Chest {
                    HitpointName = "HitChest";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Diaphragm {
                    HitpointName = "HitDiaphragm";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Abdomen {
                    hitpointName = "HitAbdomen";
                    armor = 16;
                    passThrough = 0.3;
                };

                class Body {
                    hitpointName = "HitBody";
                    passThrough = 0.3;
                };
            };
			
        };
	};
													//Does not work
	class T_CADPAT_Sorry: Vest_Camo_Base 
    { 
        scope = 2; 
        displayName = "CADPAT Platecarrier 'Sorry'"; 
        //picture = "-"; 
        model = "LaskoCamo\sorry"; 
        hiddenSelections[] = {"Camo"}; 
        hiddenSelectionsTextures[] = {"LaskoCamo\Data\T_CADPAT.paa"}; 
        class ItemInfo: VestItem 
        { 
        model = "LaskoCamo\sorry"; 
            containerClass = "Supply120"; 
            mass = 80; 
           // armor = "5"; 
            //passThrough = 0.3; 
            hiddenSelections[] = {"camo"}; 
			class HitpointsProtectionInfo {
                class Chest {
                    HitpointName = "HitChest";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Diaphragm {
                    HitpointName = "HitDiaphragm";
                    armor = 16;
                    PassThrough = 0.3;
                };

                class Abdomen {
                    hitpointName = "HitAbdomen";
                    armor = 16;
                    passThrough = 0.3;
                };

                class Body {
                    hitpointName = "HitBody";
                    passThrough = 0.3;
                };
            };
			
        };
	};

model = "LaskoCamo\sorry" previously was model = "\A3\Characters_F_EPA\BLUFOR\equip_b_vest_kerry.p3d";  but didn't work; so I tryed to copy and rename equip_b_vest_kerry.p3d in sorry.p3d and put it in my folder... didn't work. I can select it in the arsenal but is an empty model

Share this post


Link to post
Share on other sites

Kerry vest fixed... I missed "uniformModel" instead of "model" .... shame on me

Share this post


Link to post
Share on other sites

I am having issues with retexturing headgear as well. I have config.cpp, cfgWeapons.hpp and cfgPatches.hpp packed in pbo but the helmet does not show up in the VR no matter what. I have searched for every possible tutorial and quide there is but nothing helps. Any idea why it is not working?

 

My cfgWeapons.hpp

class cfgWeapons
{
    class HeadgearItem;
    class H_HelmetB_TI_tna_F;
	class SR_Helmet : H_HelmetB_TI_tna_F
	{
        author = "FLying-FINN";
        scope = 2;
        weaponPoolAvailable = 1;
        displayName = "Helmet SR (OD)";
		picture = "\A3\Characters_F_Exp\BLUFOR\Data\UI\icon_H_HelmetB_TI_tna_F_ca.paa";
		model = "\A3\Characters_F_Exp\BLUFOR\H_HelmetB_TI_tna_F.p3d";
        hiddenSelections[] = {"camo"};
        hiddenSelectionsTextures[] = {"\@SRmod\addons\Helmet\data\headgear\CTRG_Helmet_retex_ODco.paa"};
        
		class ItemInfo: HeadgearItem
        {
            mass = 40;
            uniformModel = "\A3\Characters_F_Exp\BLUFOR\H_HelmetB_TI_tna_F.p3d";
            modelSides[] = {TCivilian, TWest};
            hiddenSelections[] = {"camo"};
 
            //subItems[] = {"Integrated_NVG_F"};
 
            class HitpointsProtectionInfo
            {
                class Head
                {
                     hitPointName = "HitHead";
                     armor = 6;
                     passThrough = 0.5;
                };
            };
        };
	};
};

My cfgPatches.hpp

class CfgPatches
{
    class SR_mod
    {
        units[]=
        {
            
        };
        weapons[]=
        {
            "SR_Helmet"
        };
        requiredVersion=0.1;
        requiredAddons[]={"A3_Characters_F_Exp_Headgear"};
    };
};

And the config.cpp

class cfgWeapons
{
	#include "cfgPatches.hpp"
    #include "cfgWeapons.hpp"
};

 

Share this post


Link to post
Share on other sites
1 hour ago, FLying-FINN said:

And the config.cpp


class cfgWeapons
{
	#include "cfgPatches.hpp"
    #include "cfgWeapons.hpp"
};

 

 

Hello there FLying-FINN !

 

Check :

class cfgPatches
{
    #include "cfgPatches.hpp"
};

class cfgVehicles
{
	#include "cfgVehicles.hpp"	// just for the example
};

class cfgWeapons
{
	#include "cfgWeapons.hpp"
};

 

Share this post


Link to post
Share on other sites
Just now, FLying-FINN said:

Nope! Does not show up.

 

I'll post below an example of mine , for you to check it .

Hold on .

Share this post


Link to post
Share on other sites

The are also some stuff not needed below , because , i just copy pasted only a part of.

 

config.cpp

class CfgPatches
{
	class GF_GEAR
	{
		version = "0.1";
		units[] = {};
		weapons[] = {};
		requiredVersion = "0.1";
		requiredAddons[] = {"A3_Characters_F","A3_Characters_F_Beta","A3_Characters_F_Gamma","A3_Characters_F_EPA","A3_Characters_F_EPB"};
	};
};


#define private		0
#define protected		1
#define public		2



class cfgWeapons {
    class Uniform_Base;
    class UniformItem;	
	class Vest_Base;
    class VestItem;
	class V_HarnessO_brn;
	class HeadGearItem;
	class H_Booniehat_khk;
	class H_HelmetB;
	class H_HelmetB_light;
	class ItemInfo;
	class Headgear_Base_F;
    class Item_Base_F;
	class None;    // External class reference 
	class ItemCore;	// External class reference
	class InventoryItem_Base_F;	// External class reference

			
	//____________ indep ______ Canvas_Helmet __ Headgear ___________

	class GF_Canvas_Greek_Lizard_Helmet: Itemcore
	{
	author="[GR]GEORGE";
	scope=2;
	weaponPoolAvailable = 1;
	displayName = "GF Canvas Greek Lizard Helmet";
	picture = "\A3\characters_F_Beta\data\UI\icon_H_I_Helmet_canvas_ca.paa";
	model = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
			hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
			hiddenSelections[] = {"Camo"};
		class ItemInfo : HeadgearItem {
		mass = 10;
		uniformModel = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
		modelSides[] = {3,1};
		class HitpointsProtectionInfo
		{
			class Head
			{
				hitpointName = "HitHead";
				armor = 6;
				passThrough = 0.5;
			};
		};
		hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
					hiddenSelections[] = {"Camo"};
		};
	};
		
		
};

 

Share this post


Link to post
Share on other sites
Just now, FLying-FINN said:

put all of this in the config.cpp

 

Yes , off course !:f:

  • Thanks 1

Share this post


Link to post
Share on other sites

Alright! Now it shows up in the VR Arsenal but for some reason the texture is invisible. Thanks alot anyways! This helped me quite alot.

  • Thanks 1

Share this post


Link to post
Share on other sites

Nvm. It was the folders wich were fucking it up. Works perfectly now! Thanks for the fast response and help!

  • Like 1

Share this post


Link to post
Share on other sites
On 1/27/2019 at 11:57 PM, GEORGE FLOROS GR said:

Check :

Now you have CfgPatches>>CfgPatches instead of CfgPatches, and CfgWeapons>>CfgWeapons instead of CfgWeapons.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 2/1/2019 at 10:29 AM, Dedmen said:

Now you have

 

Thanks Dedmen , i got it , so just to understand better , this is actuall , how it looks , if i #include something with the same Name right?

Share this post


Link to post
Share on other sites
On 2/1/2019 at 4:46 PM, GEORGE FLOROS GR said:

 

Thanks Dedmen , i got , so just to understand better , this is actuall , how it looks , if i #include something with the same Name right?

I don't understand what you are trying to say.
#include is just literally one-to-one copy-pasting the text from the included file into your file.

Share this post


Link to post
Share on other sites
11 minutes ago, Dedmen said:

I don't understand what you are trying to say.

 

On 2/1/2019 at 10:29 AM, Dedmen said:

Now you have CfgPatches>>CfgPatches instead of CfgPatches, and CfgWeapons>>CfgWeapons instead of CfgWeapons.

 

I'm trying to understand what you are saying above , so any further explanation ?

 

Share this post


Link to post
Share on other sites
3 hours ago, GEORGE FLOROS GR said:

I'm trying to understand what you are saying above , so any further explanation ?

I don't get it.

CfgWeapons.hpp is

class CfgWeapons {...}

Thus.

class CfgWeapnos {
#include "CfgWeapons.hpp"
};

Will turn into

class CfgWeapons {
class CfgWeapons {...};
};

Thus "CfgWeapons>>CfgWeapons" instead of just "CfgWeapons".

Share this post


Link to post
Share on other sites
14 minutes ago, Dedmen said:

Thus "CfgWeapons>>CfgWeapons" instead

 

So the correct code , should be as my example above , right?

Spoiler
On 1/28/2019 at 1:26 AM, GEORGE FLOROS GR said:

config.cpp



class CfgPatches
{
	class GF_GEAR
	{
		version = "0.1";
		units[] = {};
		weapons[] = {};
		requiredVersion = "0.1";
		requiredAddons[] = {"A3_Characters_F","A3_Characters_F_Beta","A3_Characters_F_Gamma","A3_Characters_F_EPA","A3_Characters_F_EPB"};
	};
};


#define private		0
#define protected		1
#define public		2



class cfgWeapons {
    class Uniform_Base;
    class UniformItem;	
	class Vest_Base;
    class VestItem;
	class V_HarnessO_brn;
	class HeadGearItem;
	class H_Booniehat_khk;
	class H_HelmetB;
	class H_HelmetB_light;
	class ItemInfo;
	class Headgear_Base_F;
    class Item_Base_F;
	class None;    // External class reference 
	class ItemCore;	// External class reference
	class InventoryItem_Base_F;	// External class reference

			
	//____________ indep ______ Canvas_Helmet __ Headgear ___________

	class GF_Canvas_Greek_Lizard_Helmet: Itemcore
	{
	author="[GR]GEORGE";
	scope=2;
	weaponPoolAvailable = 1;
	displayName = "GF Canvas Greek Lizard Helmet";
	picture = "\A3\characters_F_Beta\data\UI\icon_H_I_Helmet_canvas_ca.paa";
	model = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
			hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
			hiddenSelections[] = {"Camo"};
		class ItemInfo : HeadgearItem {
		mass = 10;
		uniformModel = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
		modelSides[] = {3,1};
		class HitpointsProtectionInfo
		{
			class Head
			{
				hitpointName = "HitHead";
				armor = 6;
				passThrough = 0.5;
			};
		};
		hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
					hiddenSelections[] = {"Camo"};
		};
	};
		
		
};

 

Share this post


Link to post
Share on other sites
1 hour ago, GEORGE FLOROS GR said:

So the correct code , should be as my example above , right? 

 

that looks correct but doesn't #include anything, i always get confused using this...

 

to use your example it should look something like this:

 

CfgWeapons.hpp:

 

//no class cfgWeapons header as this is already in main config
class Uniform_Base;
    class UniformItem;	
	class Vest_Base;
    class VestItem;
	class V_HarnessO_brn;
	class HeadGearItem;
	class H_Booniehat_khk;
	class H_HelmetB;
	class H_HelmetB_light;
	class ItemInfo;
	class Headgear_Base_F;
    class Item_Base_F;
	class None;    // External class reference 
	class ItemCore;	// External class reference
	class InventoryItem_Base_F;	// External class reference

			
	//____________ indep ______ Canvas_Helmet __ Headgear ___________

	class GF_Canvas_Greek_Lizard_Helmet: Itemcore
	{
	author="[GR]GEORGE";
	scope=2;
	weaponPoolAvailable = 1;
	displayName = "GF Canvas Greek Lizard Helmet";
	picture = "\A3\characters_F_Beta\data\UI\icon_H_I_Helmet_canvas_ca.paa";
	model = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
			hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
			hiddenSelections[] = {"Camo"};
		class ItemInfo : HeadgearItem {
		mass = 10;
		uniformModel = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
		modelSides[] = {3,1};
		class HitpointsProtectionInfo
		{
			class Head
			{
				hitpointName = "HitHead";
				armor = 6;
				passThrough = 0.5;
			};
		};
		hiddenSelectionsTextures[] = {"\GF_GEAR\data\textures\Headgear\Canvas_Greek_Lizard_Helmet.paa"};
					hiddenSelections[] = {"Camo"};
		};
	};

then in main config this gets added like so:

 

class CfgPatches
{
	class GF_GEAR
	{
		version = "0.1";
		units[] = {};
		weapons[] = {};
		requiredVersion = "0.1";
		requiredAddons[] = {"A3_Characters_F","A3_Characters_F_Beta","A3_Characters_F_Gamma","A3_Characters_F_EPA","A3_Characters_F_EPB"};
	};
};


#define private		0
#define protected		1
#define public		2



class cfgWeapons {
#include "cfgWeapons.hpp"
};

erm... i think thats right?

 

Edited by lordfrith
missing quote marks

Share this post


Link to post
Share on other sites
28 minutes ago, lordfrith said:

erm... i think thats right?

No. Missing quotes around the name of the #include. But I'd just move the class CfgWeapons into CfgWeapons.hpp

And then just have something like

 

#include "CfgPatches.hpp"

#include "CfgWeapons.hpp"

in the config.cpp

  • Thanks 1

Share this post


Link to post
Share on other sites
34 minutes ago, Dedmen said:

I'd just move the class CfgWeapons into CfgWeapons.hpp

And then just have something like

 

#include "CfgPatches.hpp"

#include "CfgWeapons.hpp"

in the config.cpp 

 

Now i understand what you ment Dedmen thanks !

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×