I'm going to post here, since I'm having a similar issue, maybe @PuFu will have any idea.
I'd like to point out that I pack with HEMTT Build System, not Mikero's or BI Tools.

So here's the thing:
I've made a vest, it has textures and rvmats setup properly (through Arma Toolbox for Blender). It works like a charm in Object Builder.
Now here's my old version of config.cpp: class CfgPatches { class armawkaexternal { name = "ArmawkaGear"; author = "ArmedVeteran and JJayRex"; url = "https://armawka.dev"; units[] = {}; weapons[] = { //////////////VESTS "Armawka_TacTec_Base"; }; requiredVersion = 0.1; requiredAddons[] = {"A3_Characters_F","armawka"}; }; }; class cfgFactionClasses { class Armawczaki; }; class UniformSlotInfo { slotType = 0; linkProxy = "-"; }; class cfgWeapons { //////////UNIFORMS class ItemCore; class InventoryItem_Base_F; class VestItem; class Vest_Camo_Base: ItemCore { class ItemInfo; }; class Armawka_TacTec_Tan: Vest_Camo_Base { scope = 2; /// scope needs to be 2 to have a visible class displayName = "[JBnA] TacTec (Tan)"; /// how would the stuff be displayed in inventory and on ground picture = ""; /// this icon fits the vest surprisingly well model = "\z\ArmawkaGear\Addons\armawkaexternal\TacTec.p3d"; /// what model does the vest use hiddenSelections[]= { "camo", "camo1" }; hiddenSelectionsTextures[] = { "\z\ArmawkaGear\Addons\armawkaexternal\data\TacTecMaterial_CO.paa", "\z\ArmawkaGear\Addons\armawkaexternal\data\TacticalBeltMaterial_CO.paa" }; /// what texture is going to be used hiddenSelectionsMaterials[] = { "\z\ArmawkaGear\Addons\armawkaexternal\data\TacTecMaterial.rvmat", "\z\ArmawkaGear\Addons\armawkaexternal\data\TacticalBeltMaterial.rvmat" }; class ItemInfo: VestItem { uniformModel = "\z\ArmawkaGear\Addons\armawkaexternal\TacTec.p3d"; /// what model does the vest use overlaySelectionsInfo[] = {}; /// name of selections to be hidden while wearing certain uniforms containerClass="Supply200"; mass=50; passThrough=1; hiddenSelections[]= { "camo", "camo1" }; class HitpointsProtectionInfo { class Chest { hitpointName = "HitChest"; armor = 24; passThrough = 0.1; }; class Diaphragm { hitpointName = "HitDiaphragm"; armor = 24; passThrough = 0.1; }; class Abdomen { hitpointName = "HitAbdomen"; armor = 24; passThrough = 0.1; }; class Body { hitpointName = "HitBody"; passThrough = 0.1; }; }; }; }; };
Strangely, to make it work I need to have $PREFIX$ file (not $PBOPREFIX$), which as far as I know is $PBOPREFIX$ after packing into .pbo. If I don't have it (or have $PBOPREFIX$ instead of $PREFIX$) the game throws an error that it can't find the model. I could leave it like that, with $PREFIX$ in my file and all would be great, but I need CBA implemented for the future (I'm planning on adding customization menu in the future).

With CBA every other addon works great, except for the one where I have my vest models (these are the only models I have added, the other addons are retextures). The problem here is that textures load well, but the RVMATs are not loaded at all (as if they were ignored). It does not throw any errors while loading or going into arsenal, the paths are correct in Config Viewer and I have no idea what the problem might be.

The code with CBA is separated between config.cpp, CfgWeapons.hpp and script_component.hpp:
CfgWeapons.hpp class CfgWeapons { //////////VESTS class ItemCore; class InventoryItem_Base_F; class VestItem; class Vest_Camo_Base: ItemCore { class ItemInfo; }; class Armawka_TacTec_Tan: Vest_Camo_Base { scope = 2; /// scope needs to be 2 to have a visible class displayName = "[JBnA] TacTec (Tan)"; /// how would the stuff be displayed in inventory and on ground picture = ""; /// this icon fits the vest surprisingly well model = QPATHTOF(TacTec.p3d); /// what model does the vest use hiddenSelections[]= { "camo", "camo1" }; hiddenSelectionsTextures[] = { QPATHTOF(data\TacTecMaterial_CO.paa), QPATHTOF(data\TacticalBeltMaterial_CO.paa) }; /// what texture is going to be used hiddenSelectionsMaterials[] = { QPATHTOF(data\tactecmaterial.rvmat), QPATHTOF(data\tacticalbeltmaterial.rvmat) }; class ItemInfo: VestItem { uniformModel = QPATHTOF(TacTec.p3d); /// what model does the vest use overlaySelectionsInfo[] = {}; /// name of selections to be hidden while wearing certain uniforms containerClass="Supply200"; mass=50; passThrough=1; hiddenSelections[]= { "camo", "camo1" }; class HitpointsProtectionInfo { class Chest { hitpointName = "HitChest"; armor = 24; passThrough = 0.1; }; class Diaphragm { hitpointName = "HitDiaphragm"; armor = 24; passThrough = 0.1; }; class Abdomen { hitpointName = "HitAbdomen"; armor = 24; passThrough = 0.1; }; class Body { hitpointName = "HitBody"; passThrough = 0.1; }; }; }; }; }; config.cpp
  #include "script_component.hpp" class CfgPatches { class ADDON { name = COMPONENT_NAME; author = "ArmedVeteran and JJayRex"; url = "https://www.facebook.com/groups/armawka/"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "A3_Characters_F", QGVARMAIN(armawka) }; author = ECSTRING(Main, AuthorName); authors[] = {ECSTRING(Main, AuthorName)}; url = ECSTRING(Main, URL); VERSION_CONFIG; }; }; #include "CfgWeapons.hpp" script_component.hpp #define COMPONENT armawkaexternal #define COMPONENT_BEAUTIFIED ArmawkaExternal #include "\z\armawkagear\addons\main\script_mod.hpp" // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE #ifdef DEBUG_ENABLED_LANGUAGE #define DEBUG_MODE_FULL #endif #ifdef DEBUG_SETTINGS_LANGUAGE #define DEBUG_SETTINGS DEBUG_SETTINGS_LANGUAGE #endif #include "\z\armawkagear\addons\main\script_macros.hpp"
Also, the paths to textures and rvmats are setup correctly in the model, because it works in O2 and it worked without CBA.
I've tried using QPATHTO_R macro instead of QPATHTOF, as I've seen it has been used in ACE for RVMATs, no luck. I've also tried simply adding "z\armawkagear\addons\armawkaexternal\data\tactecmaterial.rvmat" and the same for the other selection, it didn't work. Honestly, I'm starting to lose my mind here, because there are no errors and it simply doesn't work XD If you guys won't be able to help me I'll try starting a new thread.

Here's my file tree:


@EDIT And I've also tried changing RVMAT's names and it did not throw any errors, so as I've said it looks like it completely ignores them. The $PREFIX$ file in CBA version is also my attempt to fix this, because at first I've only had $PBOPREFIX$, which is needed for both CBA and HEMTT.