AlphaWolF 10 Posted March 8, 2015 (edited) Ive been away from Arma 3 for around 6 months but juse before I took a break I have just managed to finally get a handle on modding. But upon coming back a few days ago I was really impressed with the VR arsenal addition and instantly thought this Is a really useful tool for checking out modded content and a good tool for viewing your own stuff to check its ok. So I fired up a mod I mad and I can see the mask is selectable in the headgear options. The mask is called otocamo mask. config below. class CfgPatches { class TEST_UNITS { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {a3_characters_F, a3_characters_f_beta, a3_characters_f_gamma}; }; }; class cfgFactionClasses { class TEST_FACTION //Faction Calling Name { displayName = "FOXHOUND"; //Faction name in-game icon = "TEST\img.paa"; //Path to texture next to the faction name in editor "PBOname\filename.paa" priority = 1; //How far down it is on the menu side = 1; // 1 Blufor 2 opfor 3 independant i think. }; }; class CfgVehicleClasses { class TEST_Units //Name of unit group e.g Air, Infantry, Armour { displayName = "Black ops"; //In-game name priority = 2; // How far down it is on the menu }; }; class CfgVehicles { class B_Soldier_base_F; //Blufor Soldier class TEST_Marksman: B_Soldier_base_F //Unit Class name: Class getting info from { side = 1; //Blufor faction = "TEST_FACTION"; //Your Faction vehicleclass = "TEST_Units"; //Unit Group author = "AlphaWolF"; _generalMacro = "TEST_Marksman"; //Class Name scope = 2; displayName = "SOLID SNAKE"; //In-Game Name weapons[] = {"TEST_GUN","hgun_Pistol_heavy_01_MRD_F","Throw","Put"}; respawnWeapons[] = {"TEST_GUN","hgun_Pistol_heavy_01_MRD_F","Throw","Put"}; magazines[] = {"20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","HandGrenade"}; respawnMagazines[] = {"20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","20Rnd_762x51_Mag","11Rnd_45ACP_Mag","11Rnd_45ACP_Mag","11Rnd_45ACP_Mag","11Rnd_45ACP_Mag","11Rnd_45ACP_Mag","HandGrenade","HandGrenade","HandGrenade"}; cost = 300000; threat[] = {1,0.7,0.3}; linkedItems[] = {"TEST_Vest","TEST_Helmet","ItemMap","ItemCompass","ItemWatch","Rangefinder","ItemRadio","NVGoggles"}; respawnLinkedItems[] = {"TEST_Vest","TEST_Helmet","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"}; model = "\FOXHOUND\Solid_Snake"; //Path to model uniformClass = "TEST_Uniform"; //uniform you are using camouflage = 1.6; }; }; class cfgWeapons { class Uniform_Base; class UniformItem; class TEST_Uniform: Uniform_Base { scope = 2; displayName = "OCTOCAMO"; //In-Game name picture = "\A3\characters_f_epa\data\ui\icon_U_B_CTRG_uniform_ca.paa"; //Menu Picture model = "\FOXHOUND\Solid_Snake.p3d"; class ItemInfo: UniformItem { uniformModel = "Solid_Snake.p3d"; uniformClass = "Stealth"; //A Unit that wears it containerClass = "Supply40"; //Carry Amount mass = 30; //Weight }; }; class V_PlateCarrier3_rgr; class ItemInfo; class TEST_Vest: V_PlateCarrier3_rgr { picture = "\A3\Characters_F_EPA\Data\ui\Icon_V_plate_carrier_snake_ca.paa"; //Menu Picture displayName = "Snakes Tactical Vest"; //In-Game name class ItemInfo: ItemInfo { uniformModel = "\FOXHOUND\Snake_vest"; //Vest model you are using containerClass = "Supply100"; //Carry Amount mass = 40; // Weight armor = "5*1.4"; passThrough = 0.4; }; }; class ItemCore; class HeadgearItem; class TEST_Helmet: ItemCore { scope = 2; weaponPoolAvailable = 1; displayName = "octocamo mask"; //In-Game name picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; //Menu Picture model = "\FOXHOUND\octo_mask"; // Model hiddenSelections[] = {"camo"}; hiddenSelectionsTextures[] = {"TEST\data\TEST_Helmet_co.paa"}; // Path to your texture. class ItemInfo: HeadgearItem { mass = 40; // Weight uniformModel = "\FOXHOUND\octo_mask"; modelSides[] = {3,1,2}; armor = "3*0.6"; passThrough = 0.6; }; }; }; But now this time i Want to add a hockey mask I sculpted in zbrush, and I used the headgear.hpp template thats in the samples folder juast incase there were any updates, and it looks like more options available to the item I made the necessary changes the path to the model but its just not showing as an option anywhere in VR arsenal , Can anybody see what ive missed. cfgHeadgear.hpp class HeadgearItem: InventoryItem_Base_F { allowedSlots[] = {BACKPACK_SLOT, HEADGEAR_SLOT}; /// defines where can be the cap placed, it is small enough to fit in backpack type = HEADGEAR_SLOT; /// standard slot for the cap is on head hiddenSelections[] = {}; /// default caps don't have any changeable selections hitpointName = "HitHead"; /// what hitpoint is covered with the cap to have additional protection }; class H_Test_Headgear: ItemCore { scope = 2; /// scope needs to be 2 to have a visible class displayName = "Test Headgear"; /// how would the stuff be displayed in inventory and on ground picture = "\A3\characters_f\Data\UI\icon_H_Cap_blk_CA.paa"; /// this looks fairly similar model = "\Hockey Mask\Hockey Mask.p3d"; /// what model does the cap use hiddenSelections[] = {"camo"}; /// what selection in model could have different textures hiddenSelectionsTextures[] = {"\a3\characters_f\common\data\capb_police_co.paa"}; /// what texture is going to be used class ItemInfo: HeadgearItem { mass = 10; /// combined weight and volume of the cap, this equals to single magazine uniformModel = "\Hockey Mask\Hockey Mask.p3d"; /// what model is used for this cap allowedSlots[] = {UNIFORM_SLOT, BACKPACK_SLOT, VEST_SLOT, HEADGEAR_SLOT}; /// this cap is so small and flexible that it fits everywhere modelSides[] = {6}; /// available for all sides armor = 0; /// this cap doesn't provide any protection passThrough = 1; /// this cap doesn't provide any protection hiddenSelections[] = {"camo"}; /// what selection in model could have different textures }; }; Config file class CfgSkeletons { class Default { isDiscrete = 1; skeletonInherit = ""; skeletonBones[] = {}; }; class OFP2_ManSkeleton { isDiscrete = 0; skeletonInherit = ""; skeletonBones[] = { "Pelvis","", "Spine","Pelvis", "Spine1","Spine", "Spine2","Spine1", "Spine3","Spine2", "Camera","Pelvis", "weapon","Spine1", "launcher","Spine1", //Head skeleton in hierarchy "neck","Spine3", "neck1","neck", "head","neck1", //New facial features "Face_Hub","head", "Face_Jawbone","Face_Hub", "Face_Jowl","Face_Jawbone", "Face_chopRight","Face_Jawbone", "Face_chopLeft","Face_Jawbone", "Face_LipLowerMiddle","Face_Jawbone", "Face_LipLowerLeft","Face_Jawbone", "Face_LipLowerRight","Face_Jawbone", "Face_Chin","Face_Jawbone", "Face_Tongue","Face_Jawbone", "Face_CornerRight","Face_Hub", "Face_CheekSideRight","Face_CornerRight", "Face_CornerLeft","Face_Hub", "Face_CheekSideLeft","Face_CornerLeft", "Face_CheekFrontRight","Face_Hub", "Face_CheekFrontLeft","Face_Hub", "Face_CheekUpperRight","Face_Hub", "Face_CheekUpperLeft","Face_Hub", "Face_LipUpperMiddle","Face_Hub", "Face_LipUpperRight","Face_Hub", "Face_LipUpperLeft","Face_Hub", "Face_NostrilRight","Face_Hub", "Face_NostrilLeft","Face_Hub", "Face_Forehead","Face_Hub", "Face_BrowFrontRight","Face_Forehead", "Face_BrowFrontLeft","Face_Forehead", "Face_BrowMiddle","Face_Forehead", "Face_BrowSideRight","Face_Forehead", "Face_BrowSideLeft","Face_Forehead", "Face_Eyelids","Face_Hub", "Face_EyelidUpperRight","Face_Hub", "Face_EyelidUpperLeft","Face_Hub", "Face_EyelidLowerRight","Face_Hub", "Face_EyelidLowerLeft","Face_Hub", "EyeLeft","Face_Hub", "EyeRight","Face_Hub", //Left upper side "LeftShoulder","Spine3", "LeftArm","LeftShoulder", "LeftArmRoll","LeftArm", "LeftForeArm","LeftArmRoll", "LeftForeArmRoll","LeftForeArm", "LeftHand","LeftForeArmRoll", "LeftHandRing","LeftHand", "LeftHandRing1","LeftHandRing", "LeftHandRing2","LeftHandRing1", "LeftHandRing3","LeftHandRing2", "LeftHandPinky1","LeftHandRing", "LeftHandPinky2","LeftHandPinky1", "LeftHandPinky3","LeftHandPinky2", "LeftHandMiddle1","LeftHand", "LeftHandMiddle2","LeftHandMiddle1", "LeftHandMiddle3","LeftHandMiddle2", "LeftHandIndex1","LeftHand", "LeftHandIndex2","LeftHandIndex1", "LeftHandIndex3","LeftHandIndex2", "LeftHandThumb1","LeftHand", "LeftHandThumb2","LeftHandThumb1", "LeftHandThumb3","LeftHandThumb2", //Right upper side "RightShoulder","Spine3", "RightArm","RightShoulder", "RightArmRoll","RightArm", "RightForeArm","RightArmRoll", "RightForeArmRoll","RightForeArm", "RightHand","RightForeArmRoll", "RightHandRing","RightHand", "RightHandRing1","RightHandRing", "RightHandRing2","RightHandRing1", "RightHandRing3","RightHandRing2", "RightHandPinky1","RightHandRing", "RightHandPinky2","RightHandPinky1", "RightHandPinky3","RightHandPinky2", "RightHandMiddle1","RightHand", "RightHandMiddle2","RightHandMiddle1", "RightHandMiddle3","RightHandMiddle2", "RightHandIndex1","RightHand", "RightHandIndex2","RightHandIndex1", "RightHandIndex3","RightHandIndex2", "RightHandThumb1","RightHand", "RightHandThumb2","RightHandThumb1", "RightHandThumb3","RightHandThumb2", //Left lower side "LeftUpLeg","Pelvis", "LeftUpLegRoll","LeftUpLeg", "LeftLeg","LeftUpLegRoll", "LeftLegRoll","LeftLeg", "LeftFoot","LeftLegRoll", "LeftToeBase","LeftFoot", //Right lower side "RightUpLeg","Pelvis", "RightUpLegRoll","RightUpLeg", "RightLeg","RightUpLegRoll", "RightLegRoll","RightLeg", "RightFoot","RightLegRoll", "RightToeBase","RightFoot" }; // location of pivot points (local axes) for hierarchical animation pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d"; }; }; class CfgModels { class Default { sectionsInherit=""; sections[] = {}; skeletonName = ""; }; class ArmaMan : Default { htMin = 60; // Minimum half-cooling time (in seconds) htMax = 1800; // Maximum half-cooling time (in seconds) afMax = 30; // Maximum temperature in case the model is alive (in celsius) mfMax = 0; // Maximum temperature when the model is moving (in celsius) mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)). tBody = 37; // Metabolism temperature of the model (in celsius) sections[] = { "osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands", "clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head" }; skeletonName = "OFP2_ManSkeleton"; }; class Hockey_Mask : ArmaMan {} }; Link to Pic of Mask if anybodys intrested in seeing it http://alphawolf-uk.deviantart.com/art/Jason-mask-Front-463963445 Path to PBO \Arma 3\@Hockey Mask\Addons\ Hockey mask.pbo Edited March 8, 2015 by AlphaWolF Share this post Link to post Share on other sites
ante185 2 Posted March 8, 2015 You should use the [php] tag instead of the spoiler tag[/php] Share this post Link to post Share on other sites