#arma3_config

1 messages · Page 20 of 1

chrome grail
#

I changed the hidden selections n what not lemme reboot the mod and see if the textures apply

wintry fox
#

Yes, I've found that items load a lot faster, there's a search bar added so you can find the exact class you're looking for, as well as a number of other useful features.

chrome grail
#

I will add it then thank you very much sir I appreciate the help with me trying to figure out the clustered fuck of modding lol

chrome grail
#

The textures still are not working for me for some reason

hearty sandal
#

textures not working typically means the path to file inside pbo does not match what is in config

chrome grail
#

well its within the same path that my vest textures are in

#

which is working

#

so tbh im confused asf

wintry fox
#

Show your config, for both the uniform and the unit

chrome grail
#

wdym the unit im not making it into spawnable units if you mean yet im just trying to get them to work in the arsenal

#

but uh heres the config

#

class CfgPatches
{
class eclipse_infantry
{
units[]={};
weapons[]={};
requiredVersion=0.1;
requiredAddons[]=
{
"rhs_c_troops"
};
author="NitroZeus";
};
};

class CfgWeapons
{
class ItemCore;
class Vest_Camo_Base: ItemCore
{
class ItemInfo;
};
class rhs_6b23;
class UniformItem;
class Uniform_Base;
class rhs_uniform_6sh122_gloves_v1;
class InventoryItem_Base_F;

class eclipse_6b23 : rhs_6b23 
{
    _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
    scope = 2;
    displayName = "ERD 6B23 BlackDigital";
    nakedUniform = "U_BasicBody"; //class for "naked" body
    uniformClass = "eclipse_6b23"; //the uniform item
    hiddenSelections[] = 
    {
    "Camo",
    "Camo1",
    "Camo2"
    };
    hiddenSelectionsTextures[] = 
    {
    "eclipse_infantry\data\6b23_eclipse_co.paa",
    "eclipse_infantry\data\gearpack1_6sh92_eclipse_co.paa"
    };
};

class eclipse_122_uniform : rhs_uniform_6sh122_gloves_v1
{
    _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
    scope=2;
    displayName="ERD Ratnik";
    model = "\A3\Characters_F\Common\Suitpacks\suitpack_universal_F.p3d";
    nakedUniform = "U_BasicBody"; //class for "naked" body
    uniformClass = "eclipse_122"; //the uniform item
    author="NitroZeus";
    hiddenSelections[]=
    {
        "Camo",
        "Camo1",
        "Camo2"
    };
    hiddenSelectionsTextures[]=
    {
        "eclipse_infantry\data\eclipse_top_co.paa",
        "eclipse_infantry\data\eclipse_bottom_co.paa",
        "eclipse_infantry\data\gloves_co.paa"
    };
};

};

class CfgVehicles
{
class rhs_uniform_6sh122_gloves_v1;

class eclipse_122 : rhs_uniform_6sh122_gloves_v1
{
    scope=2;
    uniformClass="eclipse_122_uniform";
    nakedUniform = "U_BasicBody";
    hiddenSelections[]=
    {
        "Camo",
        "Camo1",
        "Camo2"
    };
    hiddenSelectionsTextures[]=
    {
        "eclipse_infantry\data\eclipse_top_co.paa",
        "eclipse_infantry\data\eclipse_bottom_co.paa",
        "eclipse_infantry\data\gloves_co.paa"
    };
};

};

wintry fox
#

wdym the unit im not making it into spawnable units if you mean yet im just trying to get them to work in the arsenal
Every uniform needs a unit, every unit needs a uniform. Whether they are shown in Eden/Zeus or not

chrome grail
#

I did not know that thats my config for what I have anyway if I am missing something then I guess that has sum todo with it

#

also here shown the vest is working but uniform is not

#

well the uniform is showing up I should say

#

but the actual custom textures are not its just showing the ones RHS Put

wintry fox
#

Is rhs_uniform_6sh122_gloves_v1 the correct class for the unit? That would be very odd for the unit and uniform to use the same class name

chrome grail
#

okay so is the unit the bit in cfg vehicle then perhaps i do indeed have it wrong

chilly tulip
#

Units (and backpacks, lol) go in CfgVehicles, uniforms and vests go in CfgWeapons.

chrome grail
#

alright

#

so i need to go change the unit class in cfg vehicles and that will fix it i hope

chrome grail
#

okay so

#

I replaced the cfg vehicles bit with the cfg vehicles equivalent

#

and the textures still dont work for some reason

#

so like

#

what is going on

#

i dont know what my mistake is

wintry fox
#

The uniform class in eclipse_6b23 is not in the correct place, it should be in an ItemInfo class

chrome grail
#

nooooo

#

thats the vest

wintry fox
#

Then why does it have a uniform class at all?

chrome grail
#

Idk i copied it from a bod

#

mod

#

template

#

look vest is working

wintry fox
#

Well there's not point in a vest specifying a uniform class

chrome grail
#

alright ill get rid of it but the uniform itself

#

still isnt working

wintry fox
#

Either way, the same thing is true for eclipse_122_uniform. It should be something like:

class parent_class;
class rhs_uniform_6sh122_gloves_v1: parent_class // this should be whatever rhs_uniform_6sh122_gloves_v1 inherits from
{
    class ItemInfo;
};
class eclipse_122_uniform: rhs_uniform_6sh122_gloves_v1
{
    class ItemInfo: ItemInfo
    {
        uniformClass = "eclipse_122";
    };
};
chrome grail
#

thats for CFG Vehicles correct

wintry fox
#

CfgWeapons, it's for the uniform

chrome grail
#

alright

#

let me add that too it

#

this is all the things listed in the parent class of that uniform

#

["Default","ItemCore","Uniform_Base","rhs_uniform_flora","rhs_uniform_vkpo","rhs_uniform_6sh122_v1"]

#

parentclass would be Uniform base correct

wintry fox
#

No, the direct parent class would be whatever the last item is, in this case, rhs_uniform_6sh122_v1

chrome grail
#

"class rhs_uniform_6sh122_gloves_v1: parent_class // this should be whatever rhs_uniform_6sh122_gloves_v1 inherits from" but you said here whatever the parentclass of said uniform is

#

so its parent class would be itself?

wintry fox
#

The order that the items are in is the inheritance
Default is the original class, then ItemCore inherits from Default, Uniform_Base inherits from ItemCore, etc. etc.

wintry fox
#

rhs_uniform_6sh122_gloves_v1 inherits from rhs_uniform_6sh122_v1

#

Notice the missing _gloves?

chrome grail
#

oOOOh wait im dumb

#

I am sorry I did not notice that my brain is starting to rot lol

#

alright so is there anything else I need todo before I package this up

#

here is the full config again to confirm

#

class CfgWeapons
{
class ItemCore;
class Vest_Camo_Base: ItemCore
{
class ItemInfo;
};
class rhs_6b23;
class UniformItem;
class Uniform_Base;
class rhs_uniform_6sh122_gloves_v1;
class rhs_uniform_6sh122_v1
class InventoryItem_Base_F;

class eclipse_6b23 : rhs_6b23 
{
    _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
    scope = 2;
    displayName = "ERD 6B23 BlackDigital";
    nakedUniform = "U_BasicBody"; //class for "naked" body
    uniformClass = "eclipse_6b23"; //the uniform item
    hiddenSelections[] = 
    {
    "Camo",
    "Camo1",
    "Camo2"
    };
    hiddenSelectionsTextures[] = 
    {
    "eclipse_infantry\data\6b23_eclipse_co.paa",
    "eclipse_infantry\data\gearpack1_6sh92_eclipse_co.paa"
    };
};
class rhs_uniform_6sh122_gloves_v1 : rhs_uniform_6sh122_v1
{
class ItemInfo;
};
class eclipse_122_uniform: rhs_uniform_6sh122_gloves_v1
{

};
class eclipse_122_uniform : rhs_uniform_6sh122_gloves_v1
{
    class ItemInfo: ItemInfo
    {
    uniformClass = "eclipse_122";
    };
    _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
    scope=2;
    displayName="ERD Ratnik";
    model = "\A3\Characters_F\Common\Suitpacks\suitpack_universal_F.p3d";
    nakedUniform = "U_BasicBody"; //class for "naked" body
    author="NitroZeus";
    hiddenSelections[]=
    {
        "Camo",
        "Camo1",
        "Camo2"
    };
    hiddenSelectionsTextures[]=
    {
        "eclipse_infantry\data\eclipse_top_co.paa",
        "eclipse_infantry\data\eclipse_bottom_co.paa",
        "eclipse_infantry\data\gloves_co.paa"
    };
};

};

class CfgVehicles
{
class rhs_6sh122_gloves_v1_base;

class eclipse_122 : rhs_6sh122_gloves_v1_base
{
    _generalMacro = "SoldierGB";
    scope=2;
    uniformClass="eclipse_122_uniform";
    nakedUniform = "U_BasicBody";
    hiddenSelections[]=
    {
        "Camo",
        "Camo1",
        "Camo2"
    };
    hiddenSelectionsTextures[]=
    {
        "eclipse_infantry\data\eclipse_top_co.paa",
        "eclipse_infantry\data\eclipse_bottom_co.paa",
        "eclipse_infantry\data\gloves_co.paa"
    };
};

};

chrome grail
wintry fox
#

You're defining the class twice

chrome grail
#

alright removed the accidental one

#

Im guessing if thats it than I shall package it n hope lol

chrome grail
#

you said too like define the parent of the 122

#

but even though the parent and the child are clearly defined differently it says theyre the same

wintry fox
#

Show your config again, preferabbly in a code block, like this:
```cpp
config
```

chrome grail
#

alright

chrome grail
# wintry fox Show your config again, preferabbly in a code block, like this: \`\`\`cpp config...
class CfgPatches
{
    class eclipse_infantry
    {
        units[]={};
        weapons[]={};
        requiredVersion=0.1;
        requiredAddons[]=
        {
            "rhs_c_troops"
        };
        author="NitroZeus";
    };
};

class CfgWeapons
{    
    class ItemCore;
    class Vest_Camo_Base: ItemCore
    {
        class ItemInfo;
    };
    class rhs_6b23;
    class UniformItem;
    class Uniform_Base;
    class rhs_uniform_6sh122_gloves_v1;
    class rhs_uniform_6sh122_v1;
    class InventoryItem_Base_F;

    class rhs_uniform_6sh122_gloves_v1 : rhs_uniform_6sh122_v1
    {
    class ItemInfo;
    };
    
    class eclipse_6b23 : rhs_6b23 
    {
        _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
        scope = 2;
        displayName = "ERD 6B23 BlackDigital";
        nakedUniform = "U_BasicBody"; //class for "naked" body
        uniformClass = "eclipse_6b23"; //the uniform item
        hiddenSelections[] = 
        {
        "Camo",
        "Camo1",
        "Camo2"
        };
        hiddenSelectionsTextures[] = 
        {
        "eclipse_infantry\data\6b23_eclipse_co.paa",
        "eclipse_infantry\data\gearpack1_6sh92_eclipse_co.paa"
        };
    };
    class eclipse_122_uniform: rhs_uniform_6sh122_gloves_v1
    {
        class ItemInfo: ItemInfo
        {
        uniformClass = "eclipse_122";
        };
        _generalMacro = "rhsusf_infantry_army_base"; //unsure what this does
        scope=2;
        displayName="ERD Ratnik";
        model = "\A3\Characters_F\Common\Suitpacks\suitpack_universal_F.p3d";
        nakedUniform = "U_BasicBody"; //class for "naked" body
        author="NitroZeus";
        hiddenSelections[]=
        {
            "Camo",
            "Camo1",
            "Camo2"
        };
        hiddenSelectionsTextures[]=
        {
            "eclipse_infantry\data\eclipse_top_co.paa",
            "eclipse_infantry\data\eclipse_bottom_co.paa",
            "eclipse_infantry\data\gloves_co.paa"
        };
    };
};

class CfgVehicles
{
    class rhs_6sh122_gloves_v1_base;
    
    class eclipse_122 : rhs_6sh122_gloves_v1_base
    {
        _generalMacro = "SoldierGB";
        scope=2;
        uniformClass="eclipse_122_uniform";
        nakedUniform = "U_BasicBody";
        hiddenSelections[]=
        {
            "Camo",
            "Camo1",
            "Camo2"
        };
        hiddenSelectionsTextures[]=
        {
            "eclipse_infantry\data\eclipse_top_co.paa",
            "eclipse_infantry\data\eclipse_bottom_co.paa",
            "eclipse_infantry\data\gloves_co.paa"
        };
    };
};```
wintry fox
#

You're still defining the class twice

chrome grail
#

i thought thats what im suppose todo

#

define the 122 and its parent

#

and my uniform and its parent ie the 122 with gloves

chrome grail
wintry fox
#

But you still have another rhs_uniform_6sh122_gloves_v1 in your config

#

Remove the "class rhs_uniform_6sh122_gloves_v1;" line

chrome grail
#

thank you sire

#

i got it to work

chrome grail
#

Also now that i have my configs fully working how do i make a thing appear in both NVG And Face wear

tawdry coral
#

how do I make quotes in a string again? x3

wintry tartan
#

You can use '' within a ""

#

Or vice versa

tawdry coral
#

hmmm-

#

are '' and "" treated differently?

#

or, should only one be used in an array?
'Starting during the Vietnam War, the government began to "cry wolf" whenever economic aid, no matter how minor, was required. Sometimes even going so far as having local personnel brandish foreign uniforms!',

wheat sluice
#

Use " instead.

#

Loading screen texts are a bit weird in that regard because xml normally allows for " and " to be used in text containers.

tawdry coral
#

alright. Next pack, it will be implemented, will check then. ^^

narrow swallow
#

There's not a config method to have a unit exiting a vehicle take a particular stance, like prone, right?

sick knoll
#

How would I go about filling the SpawnerType attribute which is a combo with values from a public Variable SPI_SpawnerTypes

class SPI_vehicleSpawnerModule: Module_F
{
    scope = 2;
    author = "Suppressor Industries";
    category = "SPI_functions";
    displayName = "Vehicle Spawner";
    function = "SPI_Vehicles_fnc_VehicleSpawnerModule";
    //icon = "105th_Vehicles\textures\Icons\vehicleSpawner.paa";
    //picture = "105th_Vehicles\textures\Icons\vehicleSpawner.paa";
    functionPriority = 10;
    isGlobal = 1;

    class Attributes: AttributesBase
    {
        class SpawnerType: Combo
        {
            property = "SPI_VehicleSpawner_SpawnerType";
            displayName = "Spawner Type";
            typeName = "STRING";
            tooltip = "What type of spawner is this";
        };
        class SpawnPad: Edit
        {
            property = "SPI_VehicleSpawner_SpawnPad";
            displayName = "Spawn Pad";
            tooltip = "Object variable name of where vehicles should be spawned";
            defaultValue = """""";
        };
    };
    class ModuleDescription: ModuleDescription
    {
        description[] = {
            "Enables players to spawn vehicles on the object defined ""SpawnPad"".",
            "You can create custom SpawnerTypes within the configs if you want to spawn",
            "your own custom assets or you can use a default setup that already exists",
            "",
            "Usage: Sync an object to this module to add the vehicle spawner action to them."
        };
    };
};
urban basin
#

So I'm trying to use the config to save what essentially is a composition with my own custom functions and such for the creation of said composition. I'd like to have something of an origin object that is an object that could be spawned in zeus or eden and use the init EH for creating the rest of the composition relative to the spawned object. So I would assume it would go something like this? Also could I create the custom variables within the class like is it possible or use only stuff like scope and such, also would that be able to be passed into the init like "[classname,distTo,dirTo,heightTo,simulation] exec someFUNC" and what would (_this select 0) be? Sorry not too well versed with this stuff yet

class Sign_Sphere10cm_F;
class tag_composition_originObject: Sign_Sphere10cm_F
{
    scope = 2;
    author = "";
    category = "";
    displayName = "";

    class object01 
    {
        classname = "Land_TimberLog_05_F";
        distTo = 1;
        dirTo = 1;
        heightTo = 1;
        simulation = false;
        init = "[(_this select 0)] exec FUNC_toCreateThisObjectRelativeToTheOriginObj";
    };
};
graceful tree
#

Quick question. Offset values for Laser are set up in x,y,z format with Negative (-) values being closer,down,left to player, and Positive (+) values being further,up,right from the player right?

wintry tartan
#

What part of config you talk about?

graceful tree
#

class UKSF_SIDE_Vis_Laser
{
offset[]={0,0.16,0.12};
};

wintry tartan
#

I don't really know what it is. Mod related most likely

graceful tree
#

Yeah it is BettIR related, I guess i'll go snoop around in related articles for that.

wintry tartan
#

Or you can just try some exaggerated values

graceful tree
#

I suppose.

#

Trial and error has been how I fixed numerous other things with this game. lol

wintry tartan
#

You can always use Diag exe for on the fly config change

graceful tree
#

Never tried that

wintry tartan
#

May do a quick tut after I'm back

nimble sequoia
wintry tartan
#

On-the-fly config modifying

Diagnostics Exe can do a on-the-fly config reload/update.
The exe is available as a part of Arma 3 Development Branch that can be accessed from Arma 3 > Beta tab on Steam.
You can overwrite any config on-the-fly and check the effect for almost everything (some cannot).
https://community.bistudio.com/wiki/Arma_3:_Diagnostics_Exe

  1. Launch Diagnostics Exe
  • arma3diag_x64.exe in Arma 3 installation folder it is.
  • You can rename it into arma3.exe (and rename the default arma3.exe into something else) so you can launch Diag Exe from Launcher easily, by setting Parameters > Platform > 32-bit.
  1. Prepare a config.cpp file
  • You can put this file anywhere you want.
  • CfgPatches is not needed for this.
  • Inheritance and any other rules still applied.
  1. Run diag_mergeConfigFile

This method is very useful because you don't need to restart game upon a very small config change.
Note: Diagnostics Exe does not support Multiplayer.

wintry tartan
#

You can point anything you want and I put it into this

wintry tartan
#

I don't see a typo?

#

Mhm, I've just looked up Wiktionary and looks inheritance is better wording?

ashen chasm
#

thanks

urban basin
#

I'm having an error setting up some XEH stuff. This is also my first mod so I'm not well versed with this stuff
Error: Script \x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preStart.sqf not found

File Setup

@Entrenchment
  >addons
    >wag_entrenchment_functions
      -config.cpp
      -CfgEventHandlers.hpp
      -script_component.hpp
      -initSettings.sqf
      -XEH_missionDisplayLoad.sqf
      -XEH_postInit.sqf
      -XEH_preInit.sqf
      -XEH_PREP.sqf
      -XEH_preStart.sqf
    >wag_entrenchment_main
      -config.cpp
      -script_component.hpp
      -script_macros.hpp
      -script_mod.hpp
      -script_version.hpp

wag_entrenchment_functions\Config.cpp Has other stuff like CfgPatches and such but this is just XEH stuff

class Extended_PreStart_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preStart.sqf'";
    };
};
class Extended_PreInit_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preInit.sqf'";
    };
};
class Extended_PostInit_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_postInit.sqf'";
    };
};

wag_entrenchment_functions\script_component.cpp Where COMPONENT is defined

#define COMPONENT wag_entrenchment_functions
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp"
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_macros.hpp"

Addon Builder Prefix: wag_entrenchment
I believe this is all: COMPONENT is defined, Prefix is defined, has Extended_PreStart_EventHandlers
Anyone know what I've done wrong? meowheart

molten musk
urban basin
molten musk
#

and you have $PBOPREFIX$ ?

\x\wag_entrenchment\addons\wag_entrenchment_functions
urban basin
#

I need that as well? I was not aware. The tutorial and mod I've been referencing both didn't have that. Would that go within each addon component file?

molten musk
urban basin
#

oh I see

#

one sec

quaint wadi
#

Hey guys
is there anyone here tat would be able to help me creating a compat Mod
I have no expierence or understanding of cosing ect and i dont understand the instructions that are being provided
I am basiclly looking for an ITN compat to be made

urban basin
#

I think this happened when I added #include "script_component.hpp" in the config for both main and functions

molten musk
#

So, what you have in main config.cpp and what you have in function cpp

#

script component in main

#define COMPONENT wag_entrenchment_main
#define COMPONENT_NAME "Main"
#include "script_mod.hpp"

and in functions

#define COMPONENT wag_entrenchment_functions
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp"
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_macros.hpp"

right?

urban basin
#

main.cpp

#include "script_component.hpp"
class CfgPatches
{
    class wag_entrenchment_main
    {
        name=CSTRING(component);
        units[]={};
        weapons[]={};
        requiredVersion= REQUIRED_VERSION;
        requiredAddons[]={
            "CBA_main",
            "ACE_main"
        };
        author="ThyHolyWagon"
        version=0;
        versionStr="0";
        versionAr[]={0};
    };
};

function.cpp

#include "script_component.hpp"
class CfgPatches
{
    class wag_entrenchment_functions
    {
        name=CSTRING(component);
        units[]={
            "wag_entrenchment_woodenbarrier_short"
        };
        weapons[]={};
        requiredVersion= REQUIRED_VERSION;
        requiredAddons[]={
            "wag_entrenchment_main",
            "ace_trenches"
        };
        authors[]=
        {
            "ThyHolyWagon"
        };
        version=0;
        versionStr="0";
        versionAr[]={0};
    };
};

class Extended_PreStart_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preStart.sqf'";
    };
};
class Extended_PreInit_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preInit.sqf'";
    };
};
class Extended_PostInit_EventHandlers
{
    class wag_entrenchment_functions
    {
        init="call compile preprocessFileLineNumbers '\x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_postInit.sqf'";
    };
};
class Extended_Deleted_EventHandlers
{
    ...
};
class Extended_Init_EventHandlers
{
    ...
};
#

script component main

#define COMPONENT main
#include "script_mod.hpp"
#include "script_macros.hpp"

script component functions

#define COMPONENT functions
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp"
#include "\x\wag_entrenchment\addons\wag_entrenchment_main\script_macros.hpp"
urban basin
#

I should have #include "script_component.hpp" in my configs right?

#

cause I still keep getting build errors

urban basin
#

I have no idea where the error is possibly coming from

narrow swallow
#

Is your main folder actually named wag_entrenchment_main or just main?

urban basin
#

Has the tag as well but tried without it

narrow swallow
#

go in game and find what the path actually is to your file with fileExists

urban basin
#

I don't think the filepath is setup correctly then

quaint wadi
#

Hi guys i did ask earlier sorry for the repeat questions would anyone know or be able to help with making MOD Compats?
Specifically for ITN ?

toxic solar
#

What makes it so Ai switches to their secondary even though the primary would be suitable for combat? (say like rifle for primary, and it has ammo)

harsh zenith
#

would this be the right place to figure out how to make more than 10 channel presets with acre?

pallid sierra
harsh zenith
#

I think I got it, but it’s just not working on the server

opal crater
#

Instead of asking the same question again you could attach the links you've got on our discord... We gave him a full code example but redirected here as we're not teaching total basics if somebody does not even know about init scripts.

urban basin
#

Following up my issue from yesterday I started a new project file still with the same goal but just only having the bare minimum to first get the file setup correctly using a tutorial instead of just copying the file setup of a mod. Following: https://community.bistudio.com/wiki/Arma_3:_Creating_an_Addon

Mod Files Setup
@Entrenchment
>addons
>wag_entrenchment_functions
< $PBOPREFIX$

\z\wag_entrenchment\addons\wag_entrenchment_functions
        < ***config.cpp***
        #include "script_component.hpp"
        
        class CfgPatches {
            class ADDON {
                name = QCOMPONENT;
                units[] = {};
                weapons[] = {};
                requiredVersion = REQUIRED_VERSION;
                requiredAddons[] = {};
                author = QAUTHOR;
                VERSION_CONFIG;
            };
        };
        < ***script_component.hpp***
        #define COMPONENT wag_entrenchment_functions
        #include "\z\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp"
        #include "\z\wag_entrenchment\addons\wag_entrenchment_main\script_macros.hpp"
    **>wag_entrenchment_main**
        < ***$PBOPREFIX$***
\z\wag_entrenchment\addons\wag_entrenchment_main
        < ***config.cpp***```cpp
    #include "script_component.hpp"

    class CfgPatches {
        class ADDON {
            name = QCOMPONENT;
            units[] = {};
            weapons[] = {};
            requiredVersion = REQUIRED_VERSION;
            requiredAddons[] = {};
            author = QAUTHOR;
            VERSION_CONFIG;
        };
    };
#

. < script_component.hpp

        #define COMPONENT wag_entrenchment_main
        #include "\z\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp"
        #include "\z\wag_entrenchment\addons\wag_entrenchment_main\script_macros.hpp"
        < ***script_macros.hpp***```cpp
    #include "\x\ace\addons\wag_entrenchment_main\script_macros.hpp"

    #define QCOMPONENT QUOTE(COMPONENT)
    #define QADDON QUOTE(ADDON)
    #define AUTHOR ThyHolyWagon
    #define QAUTHOR QUOTE(AUTHOR)
            < ***script_mod.hpp***
```cpp
        #define MAINPREFIX z
        #define PREFIX wag_entrenchment
        
        #define VERSION_CONFIG 1.1.1
        
        #define REQUIRED_VERSION 2.02
        #define REQUIRED_CBA_VERSION { 3, 5, 0 }
        #define REQUIRED_ACE_VERSION { 3, 15, 1 }
#

Wait I may have finally fixed it after like 15 hours

#

I didn't get an error

molten musk
urban basin
#

double checking that me not getting an error isn't a fluke

#

but this right here is just trying to fix the \z\wag_entrenchment\addons\wag_entrenchment_main\script_mod.hpp not found when it's called from wag_entrenchment_function\config.cpp. The error from yesterday was Script \x\wag_entrenchment\addons\wag_entrenchment_functions\XEH_preStart.sqf not found and then when I got help the error I'm fixing right now showed up which seemed to be at least one of the root causes of the error from yesterday if that made sense

#

ok yeah it was a fluke bc I didn't even load it as a local mod meowfacepalm

ebon pivot
#

i assume \x\ is a mistake in you copying the errror

urban basin
#

Just making sure my Addon Builder is setup correctly the settings should be as follows right?
yes | Clear temp folder
yes | sign output PBO file
no | binarize
no | binarize all textures
no | enable extended logging

[Options]
Files to copy directly: *.sqf;*.xml;
Addon Prefix: wag_entrenchment
Path to private key: setup
Path to temp folder: setup
Path to project folder: blank
Author: ThyHolyWagon

ebon pivot
#

addon prefix should include \z\ etc

#

$PBOPREFIX$ is for hemtt

urban basin
ebon pivot
#

what

#

youre using addon builder not hemtt

#

pboprefix file is for hemtt

#

addon builder you have to set it in the options

urban basin
#

oh I see so the addon prefix setting should be: \z\wag_entrenchment right?

ebon pivot
#

it should be the pboprefix for each pbo you are building

#

youre trying to build a hemtt system with addon builder

urban basin
#

I'm might be using addon builder wrong then

ebon pivot
#

using addon builder is the problem in the first place

#

you should be using hemtt for a hemtt system

urban basin
ebon pivot
#

then dont use a hemtt system

#

use a setup for addon builder if using addon builder

#

use a setup for hemtt if using hemtt

urban basin
#

but from what I found hemtt is the more modern and better system right?

#

also the main reason I stopped using the hemtt system was because it didn't do the cba preset setup like the person did in the tutorial and didn't find info on it within the hemtt book

lucid cedar
#

Any idea why this is happening? (the flag is flipping on the back)

#
    {
        class SimpleObject
        {
            animate[] = {{"Flag",0}};
            hide[] = {};
            verticalOffset = 0;
        };
        editorPreview = "";
        scope = 2;
        scopeCurator = 2;
        displayName = "Flag (UltraNationalists)";
        editorCategory = "EdCat_Signs";
        editorSubcategory = "edSubcat_Strangerealflags";
        class EventHandlers
        {
            init = "(_this select 0) forceFlagTexture '\GriffinsFlags\GriffinsFlags\flags\Flag_UltraNationalist_co.paa'";
        };
    };
};```
dusk jungle
#

Flag's back side is inverted texture

lucid cedar
#

cool

#

how do i fix it😬

#

ive been looking through the a3 flags but i cant find a config file for them

#

i assume im just missing something

hearty sandal
#

but you do have option to try the other one

#

you now use asym variant

lucid cedar
#

so change class FlagCarrier_Asym; to class FlagCarrier; ?

#

FlagCarrier is just the mast i thought

hearty sandal
#

try it

urban basin
#

Trying to figure out how to use Hemtt and I'm not sure I fully understand it based on what seems to be a lightly documented "The Hemtt book" and a 2 year old video in German.

Do I use this to only setup the addons and such? Then go in and work with the files or is it all done from Hemtt in the toml files?

#

Or am I just missing another site or video that has documentation on it?

ebon pivot
lucid cedar
lucid cedar
harsh zenith
#

i've got my radio presets working in the mission file in editor but its not working when I go onto the server anyone know how to fix it?

pallid sierra
wintry fox
#

How do you set a specific face for a unit?
I looked at some of the Miller units as a reference, and they seem to do set the face by changing identityTypes and an init event handler. I set up the same sort of format but my unit still spawns with just the default face.
(Classes have obviously been simplified)

https://pastebin.com/pDL81efu

#

Got kinda long so I put it in a pastebin

wintry fox
#

It does apply the face correctly when the mission starts, meaning the init=... works, but doesn't apply when the editor is placed in the editor

hearty sandal
#

for editor you need different eventhandler

#

or you might need to create a custom identity type you assign to the unit

ashen chasm
#

or just stop caring if it works in missions 🙃

hearty sandal
#

that is also a valid option

wintry fox
wintry fox
harsh zenith
pallid sierra
pallid sierra
#

let me take a look in a sec

harsh zenith
pallid sierra
#

@harsh zenith so in the documentation for ACRE, it says to set the preset settings BEFORE giving the player the item. also need to wait for initialization before doing things. So make sure the player doesn't have a radio at start.

haven't tested on dedi yet:

https://sqfbin.com/qagesajuwecasomahexu

harsh zenith
pallid sierra
harsh zenith
pallid sierra
#

btw, it looks like "ACRE_PRC117F" requires a backpack for it to be added.

harsh zenith
pallid sierra
#

stay as is, adding it without a backpack will just fail the add silently

#

but everyone with a backpack will have that radio (if there is space). so, you'll have to do additional customization if you don't want that

harsh zenith
#

@pallid sierra It didn’t work, I put the sqf in the mission folder and then uploaded the mission PBO to the server and it’s giving me the default presets(PLTNET, COYNET, etc)

tacit zealot
#

Is it a common/known issue for smoke rounds to not work right with launchers?

wintry fox
#

I'm getting "Uniform is not supported by soldier" errors even though the unit's side is in modelSides, any ideas? The thing I find strange about it though, is that the issue doesn't occur for the units they inherit from. Wording may seem a bit odd so I'll give some samples.

EPF is the faction that has the issues, TU is the faction units they inherit from
(May seem a bit odd organization wise, but the EPF is basically a reskin of the TU, so I found it easier to just swap the textures)

// RPT
23:20:05 ERROR: Switch uniform! Uniform is not supported by soldier
23:20:05 Uniform EPF_Uniform is not allowed for soldier class EPF_Unit // Not exact class names, just shortened them

I have modelSides[] = {0}; in my base opfor unit class, which both TU and EPF inherit from (Base -> TU -> EPF) and the value is not set anywhere else, so there's no place where the value could be changed. Opening any of the EPF units confirms this, as they still have modelSides[] = {0};. None of the TU units give this error, it's specifically the EPF ones.

// CfgVehicles
class BNA_KC_OPFOR_Unit_Base {
    displayName = "OPFOR Unit Base";
    uniformClass = "BNA_KC_OPFOR_Uniform_Base";

    side = 0;
    modelSides[] = {0};
};
// ...
class BNA_KC_TU_Unit_Base: BNA_KC_OPFOR_Unit_Base {
    // Textures, model, etc. etc. No Error
};
// ...
class BNA_KC_EPF_Unit_Base: BNA_KC_TU_Unit_Base {
    // Textures, model, etc. etc. ! Side Error
};
#

When I've had issues with sides not matching correctly in the past (due to me forgetting to set it), the units don't wear the uniform at all; however, in this case they still wear the uniform and function correctly, even with the error.

#

Ah, issue turned out to be an incorrect uniformClass in the uniform's config

faint token
#

Hi, can anyone help me with CfgDefaultKeysPresets?
I want to have (Left Ctrl + Mouse wheel) combination as a keybind, I been searching for answers for a while but no luck. Would appreciate your help.

urban basin
#

Okay after having trouble with first blending the Hemtt and addon builder systems for my mod and then trying hemtt and failing I decided to just use the addon builder method. However I can't figure out how the file path should go for some reason
File Setup

@Entrenchment
  >addons
    >wag_entrenchment_main
      -config.cpp
      -script_component.hpp
      -script_macros.hpp
      -script_mod.hpp
      -script_version.hpp
      -CfgEventHandlers.hpp
      -script_component.hpp
      -initSettings.sqf
      -XEH_missionDisplayLoad.sqf
      -XEH_postInit.sqf
      -XEH_preInit.sqf
      -XEH_PREP.sqf
      -XEH_preStart.sqf

Within the config I'm trying to setup XEH using what's below but not matter what I used for the file path it was wrong for some reason and could never find the XEH_preStart.sqf file

class Extended_PreStart_EventHandlers
{
    class wag_entrenchment_main
    {
        init="call compile preprocessFileLineNumbers '\XEH_preStart.sqf'";
    };
};
class Extended_PreInit_EventHandlers
{
    class wag_entrenchment_main
    {
        init="call compile preprocessFileLineNumbers '\XEH_preInit.sqf'";
    };
};
class Extended_PostInit_EventHandlers
{
    class wag_entrenchment_main
    {
        init="call compile preprocessFileLineNumbers '\XEH_postInit.sqf'";
    };
};
#

or is XEH only for Hemtt and will not work otherwise?

faint token
# urban basin Okay after having trouble with first blending the Hemtt and addon builder system...

Try this, use separate class names and full path to your mod folder

class Extended_PreStart_EventHandlers
{
    class wag_entrenchment_main_preStart
    {
        init="call compile preprocessFileLineNumbers '\wag_entrenchment_main\XEH_preStart.sqf'";
    };
};
class Extended_PreInit_EventHandlers
{
    class wag_entrenchment_main_preInit
    {
        init="call compile preprocessFileLineNumbers '\wag_entrenchment_main\XEH_preInit.sqf'";
    };
};
class Extended_PostInit_EventHandlers
{
    class wag_entrenchment_main_postInit
    {
        init="call compile preprocessFileLineNumbers '\wag_entrenchment_main\XEH_postInit.sqf'";
    };
};
urban basin
plain tapir
#

Hello I wanna make a custom emblem for global mobilization and a change the texture on vechicles how do I do that with config structure?

wintry fox
#

Is there an easier way to "repeating" macros?
I had some macros that were just like ITEM_2(a) a, a, mostly meant for unit inventories and such. Was just wondering if there was an easier way that wasn't just re-using some of the same macros

winter rain
#

looks like same xD

wintry fox
#

What's the mag_8 macro look like though?

winter rain
#

#define mag_8(a) a, a, a, a, a, a, a, a

wintry fox
#

Okay so yeah, the same thing

winter rain
#

yep

#
#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}
#define item_xx(a,b) class _xx_##a {name = a; count = b;}```
wintry fox
#

Yeah I have the same macro as well, although shouldn't it be name = #a to make it a string?

winter rain
#

Dont actually know where to put this in but for me it looks like a config issue at all kekw2

11:26:57 Warning Message: No entry 'bin\config.bin/CfgVehicles.'.

This is a randomly rare happening error i get ingame. While packing my addons with pboProject i dont get any kind of errors.

Is there a more detailed way to find where it comes from or is the RPT last station?

swift yacht
#

Where can I find more information on how to make unit equipment replacement configs? I am making a mod that replaces default CSAT equipment with gear from the Aegis mods, my mod works for some units (replaces uniform, vest, and helmet) however it does not replace the vests and helmets for other units (only replaces uniform), despite the config being the same for all of them.

swift yacht
#

How exactly do I share the config? do I paste it into this chat?

wintry tartan
#

If it is too long enough, you can just drag and drop config.cpp

swift yacht
wintry tartan
#

You have no requiredAddons

swift yacht
#

I will add the addons then

wintry tartan
#

That is not how it works

#

Check the pinned

swift yacht
#

I see

#

I will follow the steps and see if it works

#

It works, thanks.

#

Also just to clarify, if my config is not working but the code seems correct, I should double check the required addons and see if that's the problem, correct?

wintry tartan
#

requiredAddons is always required and it should tell where/when the config will be added into the game. If it is empty, the config will be loaded in the very first and will be overwritten by the config you wanted to overwrite

swift yacht
#

Understood, thanks for the help

dense gorge
#

So I was taking a look at Kajman's config and it seems like it's lacking memorypoint definition for gun? Is it supposed to be like this? It's same for all 4 config files of different Kajman types that are visible in the screenshot
||Once again, sorry if this is wrong channel for asking this, just have no idea which channel would suit this sort of question better||

harsh zenith
#

anyone here use acre and have made custom presets for it?
Im trying to rack my head around on how to do this and Im completely lost

vast tartan
#

Hey guys. Trying to add a FiredNear Event Handler on the player every time they load into the server. Tried using PostInit & PreInit, and the Handler is never preserved. Where would be the best place to have it?

chilly tulip
#

Issue would be that the player object still doesn't exist in PostInit?

#

So you'd have to spawn something that waited for !isNull player

vast tartan
#

Ah okay, so basically something like

waitUntil {!isNull player};
// do something
chilly tulip
#

with a short sleep in there preferably.

vast tartan
#
waitUntil { 
    sleep 1; 

    if !(isNull player) exitWith { true }; 
    false 
};
#

Something like that?

wintry tartan
chilly tulip
#

waitUntil { sleep 1; !isNull player }; is fine

zenith drift
#

Anybody able to explain to me why an audio "panner" doesn't transition to 3d sound, instead the sound just gets quieter. The sound plays seteo, but with NO 3d component.

wintry fox
#

Say if you were going to make a mod and wanted all of the mod's units to inherit from a single base unit you make, what would make a good base class for it?

Quick example of what I mean

??? > Base_Mod_Unit > Base_West_Unit > ...
      Base_Mod_Unit > Base_East_Unit > ...
      Base_Mod_Unit > Base_Civ_Unit > ...
#

Would it be better to use one of the soldier classes (say B_Soldier_F) and then just change the side when needed, or use something like CAManBase and re-add things as needed?

novel lava
#
SoldierEB
SoldierWB
SoldierGB

are the 'right' classes to inherit from

#

EB = east
WB = west
GB = indie

#

and Civilian should be obvious

#

you're probably better off having a base class per side rather than a base class that covers everything

novel lava
#

basically just causes a headache for no good reason

wintry fox
#

Yeah I was just curious more than anything

wintry fox
#

Since modelSides are defined in a the unit's config, what happens if you have multiple units on different sides that all wear the same uniform and set their own modelSides properties?

wintry fox
#

I'd assume they would (kind of) overwrite each other, and give errors saying that the unit(s) aren't allowed to wear the uniform

zenith drift
#

Does anybody know how I can curtail wild sweving when AI drives certain tracked vehicles? For example: CUP Bradley.

lime needle
#

Hello everyone. I am trying to create a helmet retexture of the CWR3's Ssh-68 helmet. I modified the .paa texture file and got a little mod set up. My problem is that the helmet's texture does not show up when it is being worn on a soldier. However, the texture works when the helmet is on the floor as a loot object. I am confused what I am doing wrong here ?

wintry fox
lime needle
#

Well, the texture does shows up correctly in the game. But it defaults to the standar's helmet texture once worn by a character

wintry fox
#

Might be the hiddenSelections, can't really know unless you show your config

lime needle
#

Alright, here it goes

class cfgWeapons 
{
    class HeadgearItem;
    class ItemCore;
    
    class filzarro_ssh68 : ItemCore {
        scope = 2;
        weaponPoolAvailable = 1;
        displayName = "SSh-68 Steel Helmet (Filzarro)";
        picture = "\cwr3\humans\cwr3_soldiers_rus\ui\cwr3_h_ssh68_ca.paa";
        model = "\pulau_misfits\cwr3_headgear_ssh68.p3d";
        hiddenSelections[] = {"camo"};
        hiddenSelectionsTextures[] = {"\pulau_misfits\filzarro_helmet.paa"};
        
        class ItemInfo : HeadgearItem {
            mass = 30;
            uniformModel = "\pulau_misfits\cwr3_headgear_ssh68.p3d";
            allowedSlots[] = {UNIFORM_SLOT, BACKPACK_SLOT, VEST_SLOT, HEADGEAR_SLOT};
            modelSides[] = {6};
            hiddenSelections[] = {"camo"};
        };
        class HitpointsProtectionInfo
        {
            class Head
            {
                hitpointName    = "HitHead"; // reference to the hit point class defined in the man base class
                armor        = 6; // addition to armor of referenced hitpoint
                passThrough    = 0.5; // multiplier of base passThrough defined in referenced hitpoint
            };
        };
    };

I looked it up and it seems to be the hiddenSelections. Apparently, I need to get a CfgVehicles class set up, but the only one I could find was for a uniform, not a helmet

wintry fox
#

You don't need a unit for a helmet

#

There's a lot of unnecessary code there, why not just inherit from whatever helmet you want to make another version of?

lime needle
#

Gotta admit this is a terrible mix of a least 4 different tutorials to try and make it work. However I wonder how it will make the right texture to show up

wintry fox
#

Not sure whatever mod you're inheriting from, but you can simplify this a lot by inheriting from whatever class you're wanting to modify

wintry fox
#

No idea what that mod is

lime needle
#

well anyway, i got the model from it and that's all i need right now

wintry fox
#

Did you take the model (.p3d) out of the original mod?

lime needle
#

yup

wintry fox
#

Do you have permission?

lime needle
#

idk, it don't plan to make this public by any means

wintry fox
#

Doesn't matter, it's still ripping assets from a mod

#

Besides, you'll be missing the model's config to actually set it up properly. It's far easier to just use the model from the mod you're inheriting from instead of ripping it

#

Aside from the whole moral part of stealing someone else's work

lime needle
#

well i see some retexture mods on the workshop using their addon as a dependency.

wintry fox
#

Yes, as a dependency.

#

Taking the model out of another mod is not adding it as a dependency

lime needle
#

Welp, that made it work

#

I'm sorry if I broke a rule doing this. I'm new to this
If I get it right, making a config entry for a helmet with class importations from an addon to provide modifications (such as textures) is the leggit way to go ?

pallid sierra
#

yes

lime needle
#

Anyway, this made it work.

class cfgWeapons 
{
    class HeadgearItem;
    class cwr3_o_headgear_ssh68;
    
    class filzarro_ssh68 : cwr3_o_headgear_ssh68 {
        scope = 2;
        weaponPoolAvailable = 1;
        displayName = "SSh-68 Steel Helmet (Filzarro)";
        picture = "\cwr3\humans\cwr3_soldiers_rus\ui\cwr3_h_ssh68_ca.paa";
        model = "\pulau_misfits\cwr3_headgear_ssh68.p3d";
        hiddenSelections[] = {"camo"};
        hiddenSelectionsTextures[] = {"\pulau_misfits\filzarro_helmet.paa"};
    };
};
wintry fox
#

You don't need to specify the model

lime needle
#

Yeah I get the difference. The previous one was actually containing the original texture & model, while this one only creates a new entry from the original files with the applied modifications

wintry fox
#

You're still referencing another model though

lime needle
#

oh wait shit

#

Yup. It works without the model referencement. I know how to make this properly now

wintry fox
#

The reason it didn't work is because model files also require a model config, which won't exist in the pbo. A model won't work properly without it

wintry fox
wintry fox
#

At least from when I just tried it

winter rain
#

Bad physX vs good physX

remote mist
#

Help request: Working on a training bomb to help pilots and JTACs visualize their strikes better, so I essentially want an exploding flare. Intent is to use the SDB as the base, but nothing I'm doing actually makes it more visible. Any suggestions?

wintry fox
#

I'm having some issues with trying to texture the basic "underwear" uniform. It has a single selection, "camo", but I can't actually get a texture to apply to it, either in config or by using setObjectTexture. Is there something different about it that makes it unable to be retextured normally?

lime needle
#

Hi, i've got an issue regarding vehicle retexturing
I am making a custom faction with vehicles retextures. I've made a custom texture and set the textureList[]= and have set the custom texture as the one and only texture that the vehicle is probable to spawn with. I even have set the probability for the original textures to 0.
However, every time I spawn the vehicle in Zeus or the Editor, the vehicle has a broken texture instead of the one I made (and works). I need to enter the virtual garage and properly select my custom texture (that is the only one in the textures list also) to fix this issue.
Do you have any idea of what could be the problem ?

    class btr40_pla : vn_o_wheeled_btr40_01
    {
        displayName = "BTR-40 Transport";
        faction = O_PLA;
        vehicleClass = Test;
        hiddenSelections[]= {"camo1","camo2","camo3","d_decal_01","d_decal_02"};
        class textureSources
        {
            class btr_07; // OG texture
            class lightgreen_pla : btr_07 // Custom texture
            {
                displayName = "Light Green (PLA)";
                textures[] = {"\vn\wheeled_f_vietnam\btr40\data\vn_wheeled_btr40_01_01_co.paa","\vn\wheeled_f_vietnam\btr40\data\vn_wheeled_btr40_02_01_co.paa","\vn\wheeled_f_vietnam\btr40\data\vn_wheeled_btr40_03_01_co.paa","\pulau_misfits\data\btr40_pla_roundels.paa","\pulau_misfits\data\btr40_pla_roundels.paa"};
                faction = O_PLA;
            };
            textureList[]= {"lightgreen_pla",1,"btr_03",0,"btr_04",0};
        };
    };
wintry tartan
#

IIRC textureList is not in textureSources

wintry fox
#

textureList should be in the root vehicle config yeah

lime needle
#

Oh alright. I might have overlooked it but I'm pretty sure it was supposed to be inside of it

wintry fox
#

Nope

lime needle
#

Ah yeah, i see the issue

wintry fox
#

Vanilla vehicle, there's nothing in TextureSources itself, just the classes for each texture set

#

If your vehicle still doesn't have some textures loading after that fix, I've had issues on specific vehicles where even though the TextureSources/List are set up, they don't load properly. My solution was just to pick a set to use as the default.

lime needle
wintry fox
wintry tartan
#

It may have no hiddenSelections, if so, add one

wintry fox
wintry tartan
#

🤔 Are you sure the name of the selection is correct? I may run a test after I'm back

wintry fox
#

Ah, slightly wrong names.
The unit (Underwear_F) has hiddenSelections[] = {"camo1","insignia"};, while the uniform (U_BasicBody) has hiddenSelections[] = {"camo"};

#

Trying both camo and camo1 both did nothing

wintry tartan
#

Tried camo1 where?

wintry tartan
#

Hm

wintry fox
#

I had thought it might have been wrong as well, since Underwear_F references a darker/grey texture, but the actual uniform comes out as white

lime needle
#

Do you think it is possible to create a character config (like a rifleman) with a random weapon selection on spawn ?

wintry fox
#

You'd have to script it

wintry fox
wintry tartan
#

Will do if I don't forget

novel lava
#

@wintry fox The vanilla underwear model? It's supposed to have hidden selections nad randomised textures yeah - but I think BI messed up the selection name

#

it is meant to be 'camo' but the config for it is wrong iirc

#
    class Underwear_F: B_Soldier_F
    {
{"camo1","insignia"};
        hiddenSelectionsTextures[] = {"\A3\Characters_F\Common\Data\basicbody_black_co.paa"};

yeah 'camo1' is wrong it should be 'camo'

#

do note they also have ```cpp
class EventHandlers: EventHandlers
{
init = "(_this select 0) execVM ""\A3\Characters_F\Common\scripts\randomize.sqf""";
};

so if you're fixing it this might be overriding it
wintry fox
#

I was just making a retexture for it and couldn't figure out why the texture wasn't changing

#

I'll try updating the selection name in my unit and see if that fixes it

#

Yep that was it

lime needle
#

Hi, I am having two more issues
I am working towards making a custom faction. The sample units I made have two issues :
1 - Two of them uses headgearList[]= to have randomized helmets. This does not works as they do not wear anything at all in the headgear slot.
headgearList[]={"vn_o_helmet_vna_09",1,"vn_b_helmet_m1_01_01",1,"vn_i_helmet_m1_02_01",1}; (i double checked the helmet classes, they are correct)

2 - These units comes from pre-made classes. An issue is that their CfgVehicleClass does not changes toward the new one and they retain their original one
vehicleClass = Men;

wintry tartan
#

headgearList does not do anything without script

lime needle
#

oh, it is a script thing and not a config ?

wintry tartan
#

Both

lime needle
#

That's odd because it is in both the unit sample 's config and the official character & gear encoding

#

ok I think I found out

wintry tartan
#
class EventHandlers: EventHandlers
{
    init = "if (local (_this select 0)) then {[(_this select 0), [], []] call BIS_fnc_unitHeadgear;};";
};```
lime needle
#

This will actually draft one of the helmets in the list ?

wintry tartan
#

Yes

lime needle
#

Alright. I was afraid I ahd to adapt it to what I wished to do. Will try

#

Mmh... that didn't worked. And I get this error when loading in the editor :
"No entry 'bin\config.bin/CfgVehicles/EventHandlers.side'. "
the EventHandlers is defined in my CfgVehicles

wintry tartan
#

That is not how EH works

lime needle
#

huh?

wintry tartan
#
class CfgVehicles
{
  class something
  {
    class EventHandlers
    {
      init = "systemChat str _this";
    };
  };
};
```Basically this
lime needle
#

So, I need to define the EventHandlers in the very class of my unit ?

wintry tartan
#

Yes

grand zinc
wintry fox
#

Was testing a base class I made for something and forgot that Civilian_F sets the model, not Civlian

wintry fox
lime needle
#

I do not believe i need CBA, i am basing myself on the official samples :

    {
        scope = 2; /// scope needs to be 2 to have a visible class
        displayName = "Test Soldier"; /// what's displayed in editor or on cursor over
        class EventHandlers;
    };

    class Test_Soldier_02_F: Test_Soldier_F
    {
        displayName = "Test Solder (random headgear and facewear)";
        headgearList[] =
        {
            /* [headgearClass1, probability1, headgearClass2, probability2, ...] */
            "", 0.1, // Empty array means no headgear nor face wear
            "H_Test_Headgear_2", // Our test headgear, defined in CfgHeadegar.hpp
            "H_FakeHeadgear", 0.9, // In this case, there is no headgear but there is a face wear
            "H_HelmetB_light", 0.6,
            "H_Booniehat_khk_hs", 0.4,
            "H_HelmetIA_net", 0.4,
            "H_HelmetIA_camo", 0.4,
            "H_HelmetB_grass", 0.4
        };
        class EventHandlers: EventHandlers
        {
            // Documentation: https://community.bistudio.com/wiki/BIS_fnc_unitHeadgear
            // Args: Units, [] (headgear pool), [] (face wear pool)
            init = "if (local (_this select 0)) then {[(_this select 0), [], []] call BIS_fnc_unitHeadgear;};";
        };
    };
lime needle
#

Ok so uh, I am switching back to a single helmet defined for the units for now. However, I have another issue :
One of my units does not receives the uniform he should have. What is happening in game is the unit is visually wearing a uniform, but actually doesn't as the uniform slot is empty.

class pla_rifleman : template_african
    {
        scopecurator =2;
        displayName = "Rifleman (SKS)"
        uniformClass = "pla_uniform_01"; // <=== Doesn't shows up
        weapons[] = {"vn_sks_bayo", "Throw", "Put"};
        magazines[] = {"vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_rgd33_grenade_mag","vn_rgd33_grenade_mag","vn_rgk3_grenade_mag","vn_rdg2_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"cwr3_o_headgear_ssh68","vn_o_vest_02","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
        faction = O_PLA;
        vehicleClass = Men;
    };

I thought at first than either the target uniform (which is a SOG's Prairie Fire Blufor side uniform) wouldn't work because my unit is on the opfor side, so I made a new uniform class for the opfor side :

class cfgWeapons 
{
      class vn_b_uniform_macv_01_02;
    class pla_uniform_01 : vn_b_uniform_macv_01_02 {
        displayName = "PLA Uniform 1";
        scope = 2;
        side = "0";
    };
};```
But this doesn't work still. My unit has no uniform.
What I do not understand also is that I have another unit based on the same soldier class that does receives its designated uniform.
Any ideas ?
wintry fox
#

Also side should be a number, not a string

#

And also putting side in a uniform does nothing

lime needle
#

good to know

#

still, I do not get why the unit doesn't receive his uniform

wintry fox
#

It doesn't look like you're assigning a uniformClass

lime needle
wintry fox
#

That's the unit, you're not assigning a uniformClass in the uniform's config

lime needle
#

uh

wintry fox
#
class SomeUniform: SomeUniform_Base
{
    class ItemInfo: UniformItem
    {
        uniformClass = "SomeUnit";
    };
};
lime needle
#

so you attribute a uniform in the uniform's class, not in the unit's class ?

wintry fox
#

You do it in both

lime needle
#

mmh

wintry fox
#

uniformClass in the uniform's config essentially tells the game what unit to use for the uniform's model, textures, etc. etc.
uniformClass in the unit's config tells the game what uniform it's wearing.

#

If you're setting up a new uniform, you need both

lime needle
#

What I find strange is,
I have another unit defined with a similar template :
And yet, this one has the uniform I assigned in game

class police_officer : template_spanish
    {
        scopecurator =2;
        displayName = "Officer";
        uniformClass = "vn_o_uniform_nva_army_02_03";

Both should use a original SOG uniform. I just assumed the one that doesn't work didn't because of a side issue

wintry fox
#

It might be, what sides can wear a uniform is set up in the unit for the uniform with the modelSides property

lime needle
#

The thing is, I am pretty sure I had defined uniformClass = pla_rifleman; in the uniform class I made and still got no results

wintry fox
#

Show the whole config for you're uniform

lime needle
#

I removed the uniformClass from my uniform since then

wintry fox
#

That's probably what's causing your issue if you're not even assigning a unit to it

lime needle
#

Well I had, but it didn't worked

#

Will try again

wintry fox
#

Did you do it in the uniform's ItemInfo class?

lime needle
#

Nope, I guess it was not in the right place then

#

Didn't worked sadly

class pla_uniform_01 : vn_b_uniform_macv_01_02 {
        displayName = "PLA Uniform 1";
        scope = 2;
        side = 0;
        class ItemInfo
        {
            uniformClass = pla_rifleman;
        };
    };
winter rain
lime needle
#

addon builder

winter rain
#

yeah thats trash and lets pack you mostly everything without any errors and ingame you dont know whats happening

#

show us your cfgVehicles stuff and your cfgWeapons stuff so we can figure it out

chilly tulip
#

There's no inheritance for ItemInfo there so it's not going to work.

lime needle
#
{
    class vn_o_men_nva_04;
    class vn_b_men_aus_sas_66_03;
    
    // Infantrymen #############################################################################################################

        // Templates ######################################################
    class template_spanish : vn_b_men_aus_sas_66_03
    {
        side = 0;
        factions[] = {"O_PLA","O_MP","O_PLC","C_PULAU"};
        genericNames = SpanishMen;
        identityTypes[] = {"LanguageGRE_F","Head_Greek","vn_g_vc_default"};
        backpack = "";
    };
    class template_african : vn_b_men_aus_sas_66_03
    {
        side = 0;
        factions[] = {"O_PLA","O_MP","O_PLC","C_PULAU"};
        genericNames = TanoanMen;
        identityTypes[] = {"LanguageGRE_F","Head_Tanoan","vn_g_vc_default"};
        backpack = "";
    };
    class template_native : vn_o_men_nva_04
    {
        side = 0;
        factions[] = {"O_PLA","O_MP","O_PLC","C_PULAU"};
        identityTypes[] = {"LanguageCHI_F","Head_Asian","vn_g_vc_default"};
        backpack = "";
    };
    
        // Policia Nacional ######################################################
    
    class police_officer : template_spanish
    {
        scopecurator =2;
        displayName = "Officer";
        uniformClass = "vn_o_uniform_nva_army_02_03";
        weapons[] = {"vn_p38s", "Throw", "Put"};
        magazines[] = {"vn_m10_mag","vn_m10_mag","vn_m10_mag","vn_m10_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"cap_pulau","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
        faction = O_PLC;
        vehicleClass = Men;
    };
        // Policia Militar ######################################################
    
    class mp_rifleman : template_native
    {
        scopecurator =2;
        displayName = "Rifleman (SMG)"
        uniformClass = "vn_o_uniform_nva_army_01_03";
        weapons[] = {"vn_pps52", "Throw", "Put"};
        magazines[] = {"vn_pps_t_mag","vn_pps_t_mag","vn_pps_t_mag","vn_pps_t_mag","vn_pps_t_mag","vn_pps_t_mag","vn_rgd33_grenade_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"vn_o_helmet_nva_09","vn_o_vest_vc_02","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
        faction = O_MP;
        vehicleClass = Men;
    };
        // Pulau Liberation Army ######################################################

    class pla_rifleman : template_african
    {
        scopecurator =2;
        displayName = "Rifleman (SKS)"
        uniformClass = "pla_uniform_01"; // Doesn't shows up
        weapons[] = {"vn_sks_bayo", "Throw", "Put"};
        magazines[] = {"vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_rgd33_grenade_mag","vn_rgd33_grenade_mag","vn_rgk3_grenade_mag","vn_rdg2_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"cwr3_o_headgear_ssh68","vn_o_vest_02","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
        /*
        headgearList[]={"cwr3_o_headgear_ssh68",1,"cwr3_o_headgear_ssh68_camo",1,"cwr3_o_headgear_ssh68_net",1};
        class EventHandlers: EventHandlers
        {
            // Documentation: https://community.bistudio.com/wiki/BIS_fnc_unitHeadgear
            // Args: Units, [] (headgear pool), [] (face wear pool)
            init = "if (local (_this select 0)) then {[(_this select 0), [], []] call BIS_fnc_unitHeadgear;};";
        };*/
        faction = O_PLA;
        vehicleClass = Men;
    };
};

class cfgWeapons 
{
    class HeadgearItem;
    class vn_b_uniform_macv_01_02;
    
  class pla_uniform_01 : vn_b_uniform_macv_01_02 {
        displayName = "PLA Uniform 1";
        scope = 2;
        side = 0;
        class ItemInfo
        {
            uniformClass = pla_rifleman;
                };
  };
};```
wintry fox
chilly tulip
#

btw with this stuff you can check where it's breaking down in config viewer.

lime needle
#

mmh, I am not used to work with ItemInfo, how would I call the class ItemInfo from the uniform i'm inheriting ?

wintry fox
#

The same way you would with any other class

class /* Put whatever vn_b_uniform_macv_01_02 inherits from here*/;
class vn_b_uniform_macv_01_02: /* Put whatever vn_b_uniform_macv_01_02 inherits from here*/
{
    class ItemInfo;
};
class pla_uniform_01: vn_b_uniform_macv_01_02
{
    class ItemInfo: ItemInfo
    {
        uniformClass = "pla_rifleman";
    };
};
lime needle
#

ah I see

#

I never inherited a class from inside a class before

lime needle
#

Ok I don't get it now
The model and texture of the uniform are completly different now

atomic jetty
#

Is there anywhere I can find the "armor medium" values (eg. RHA = 15, Concrete = 80, Flesh = 250) for things like plywood or mild steel?

atomic jetty
hearty sandal
#

penetration materials from objects firegeoemtry handle that

#

its not a config parameter

ashen chasm
#

something like a3/data_f/penetration/*.bisurf

hearty sandal
#

there yeah

#

firegeometry model is assigned a penetration rvmat that then points to a bisurf file for the resistance properties

hearty sandal
atomic jetty
#

I understand that, I just need to know what I need to set the caliber to based on the projectile speed.

atomic jetty
hearty sandal
#

they would be unpacked on your P drive if you have the development environment set up

#

bisurf itself is a text file

atomic jetty
#

I mean specifically the bisurf

#

I'll check it out once I'm home.

hearty sandal
#

for caliber you might have better success in comparing with existing bullets and their speeds/calibers to figure out what fits your case

atomic jetty
hearty sandal
#

as while the penetration rvmat sets the material of a hit geometry part, its thickness will decide if a bullet actually gets through

#

there are few penetration materials that override the geometry shape with a set thickness though

#

but most of the time the geometry thickness is actually respected

atomic jetty
#

I can't help it if something isn't configed right 🤷‍♂️ I'm just trying to make things as good on my end as I can.

hearty sandal
#

what is it you try to make then? just the calculator or are you trying to configure new ammo?

atomic jetty
wintry fox
#

Trying to figure out what addon from a mod (not my own) is referencing a class that doesn't exist. Would there be a better way to go about it than just having to check every addon manually?

chilly tulip
#

Add a fake copy of the class, then use configSourceAddonList etc.

wintry fox
#

Oh nice, forgot that I could've just use the advanced dev tools to see that as well

#

Hm, both ADT and the configSourceAddonList both return an empty array. configSourceMod/List also both return empty values

chilly tulip
#

What's the actual error?

wintry fox
#

Just refering a WeaponSlotsInfo class in CfgWeapons, so it generates a bunch of no entry errors

#

I made a bug report to the mod but was trying to find out the exact addon causing it, turns out they're aware of the error and it's from legacy code that they're working on updating

chilly tulip
#

oh, those

#

Those are pretty much impossible to trace.

#

It's scripts trying to look up things that don't exist in config, usually.

#

IIRC even debug mode won't give you context for them.

vagrant idol
#

Can I override a stringtable of a mission/campaign mod with my own mod w/ stringtable, without overriding everything else in the PBO files? Any specific config entry to do that?

winter rain
vagrant idol
#

but do I name the PBO the same as the original one or how do I reference the stringtable to load it over the original one?

wintry tartan
#

Actually a stringtable can be overwritten by a Mod

grand zinc
#

pboprefix matters, not pbo name
But you would get loadorder issues with that

All stringtables are merged together, so if you just define the same STR name twice, the second loaded one should overwrite the first

ashen chasm
#

except if not pbo prefix is defined - pbo name is used instead, right? 🙃

lime needle
#

Ok I need help here because I am completely lost about something
So, I am calling these uniform classes to equip my soldiers with. The uniforms I'm inheriting from (vn_b_uniform_macv_01_02 and vn_b_uniform_macv_02_02) both have a tiger camo.

class cfgWeapons 
{
    class vn_b_uniform_macv_01_02
    {
        class ItemInfo;
    };
    class vn_b_uniform_macv_02_02
    {
        class ItemInfo;
    };
    
    class pla_uniform_01 : vn_b_uniform_macv_01_02 {
        displayName = "PLA Uniform 1";
        scope = 2;
        class ItemInfo : ItemInfo
        {
            uniformClass = "pla_rifleman";
        };
    };
    class pla_uniform_02 : vn_b_uniform_macv_02_02 {
        displayName = "PLA Uniform 2";
        scope = 2;
        class ItemInfo : ItemInfo
        {
            uniformClass = "pla_rifleman";
        };
    };

However, once I declare the ItemInfo : ItemInfo {uniformClass} class, they suddenly change to another uniform entirely, without that said uniform being called anywhere in my config.
I really don't know what to do and why it does that

nimble lodge
#

I mean, whatever you have written under class pla_rifleman, somewhere down in the file

lime needle
#

The thing is, I have no lines changing any textures or whatnot

class pla_rifleman : template_african
    {
        scopecurator =2;
        displayName = "Rifleman (SKS)"
        uniformClass = "pla_uniform_02"; // Doesn't shows up correctly
        weapons[] = {"vn_sks_bayo", "Throw", "Put"};
        magazines[] = {"vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_sks_t_mag","vn_rgd33_grenade_mag","vn_rgd33_grenade_mag","vn_rgk3_grenade_mag","vn_rdg2_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"cwr3_o_headgear_ssh68","vn_o_vest_02","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};

        faction = O_PLA;
        vehicleClass = Men;
    };
nimble lodge
#

What uniform does it show instead?

#

Also does anyone know how to define what weapons pilot takes control of when he selects manualfire?

lime needle
# nimble lodge What uniform does it show instead?

I think I know the issue
See, that soldier class I am defining pla_rifleman is based on a class I made , template_african (i'm conceiving a multi-etcnical faction therefore I need 3 templates of different genericNames/Heads/SOG PrairieFire's ambient voices).
This template_african class is based on a class of soldier from SOG. I figured out that this soldier has the uniform's textures set as his hiddenSelectionsTextures.
So, to answer your question, pla_rifleman overrides my pla_uniform_02 with the textures from his inherited soldier's textures.

The thing I do NOT understand however is that, I also have another soldier inheriting the same class as a base, and this one does not override the uniform's texture with the inherited ones. Also , I do not need to create a class uniform to assign them a uniform.

#

I'm just very confused why it works fine with one, but not with another

lime needle
#

I feel like for any soldier class, I need to define their uniform textures. I wanted to work with naked tempaltes (just like how you would have a "empty" loadout in your arsenal) then work from here

nimble lodge
#

Also does anyone know how to define what weapons pilot takes control of when he selects manualfire?

zenith drift
toxic solar
#

what controls how much a mine moves down once its activated?

novel lava
#

the model

#

the armed ones are offset

novel lava
#

minePlaceDist exists in the config of the mine/ammo but its how far away its gets placed when the unit plants it

#

was helpful for the bangalores in spearhead

full pagoda
#

Can you link two configs together? For example, I want to declare my CfgWorlds in a separate folder for my terrain under map_data, where my map source is just in map?

If so, how do I call the main config in map, to look for cfgworlds in map_data?

nimble sequoia
frozen bluff
#

Okay here's a question. I've been trying to make my own containers work, like the Huron ones. The good thing is that it works, sort of. I don't know what to put in the config to make the various congtainers to work, such as Medical, Repair, and Fuel, much like the Huron ones. Again I got it in-game, but configging it is been a nightmare and don't know where to look (I tried looking at the configs of the Heli addon) to get them working right. Or do I need to do something with the p3d to make them work?

frozen bluff
narrow swallow
frozen bluff
frozen bluff
frozen bluff
frozen bluff
#

Never mind on the config, I figured out how to get it to work

fringe radish
#

has anyone done any full auto launcher slot weapons?

#

I tried it but it didn't seem to work, even though UI wise it shows the full bars

wheat sluice
frozen bluff
wheat sluice
#

doplnovani seems to be BI's standard name for the memory point in all vanilla vehicles so refer to it as that in your config + model.

frozen bluff
#

Cool, thanks

#

That did the trick! Thanks very much!

wintry tartan
fringe radish
#

also UI wise it didn't show the full bars, I double checked now to make sure

#

im waiting for it to be something dumb missing kekw

wintry tartan
#
class Mode_FullAuto;

class CfgWeapons
{
    class launch_RPG7_F;
    class launch_RPG7_test_F:launch_RPG7_F
    {
        magazines[] = {"RPG7_test_F"};
        baseWeapon = "launch_RPG7_test_F";
        modes[] = {"FullAuto"};
        class FullAuto: Mode_FullAuto
        {

        };
    };
};
class CfgMagazines
{
    class RPG7_F;
    class RPG7_test_F: RPG7_F
    {
        count = 10;
    };
};```This simple config could make it happened. So it is something in your config's end
fringe radish
#

I'll simplify mine to find the culprit, ty

wintry tartan
#

Yeah, do small first, then expand. Still not sure what's going on your config though

fringe radish
#

at least I know its possible now, wasnt sure if it was

cursive cliff
#

I want to increase the backwards speed of an bicycle, does someone know which parameters I have to change ?

nimble sequoia
cursive cliff
toxic solar
fringe radish
#

well, idk what I did but just simplifying the FullAuto mode to reloadTime, dispersion and the sound I wanted, fixed it

chilly tulip
#

recoil maybe?

#

I'm curious because we had a similar issue trying to make planes drop multiple bombs at once and never pinned it down.

winter rain
chilly tulip
#

The IFA planes do that. Tried to play spot-the-difference and failed.

lime needle
#

Hi, why is my soldier missing in the editor ?

class PulauMen
{
    class Man;
    class CAManBase: Man
    {
        class HitPoints
        {
            class HitHead;
            class HitBody;
            class HitHands;
            class HitLegs;
        };
    };

    class SoldierWB: CAManBase
    {
        threat[] = {1, 0.5, 0.1};
    };

    //Base class for BLUFOR soldiers
    class Template_Pulau: SoldierWB
    {
        faceType = Man_A3; /// this soldier is going to use standard faces
        side = 0; /// that means BLUFOR
        factions[] = {"O_PLA","O_MP","O_PLC","C_PULAU"}; /// Standard NATO faction
        vehicleClass = Men; /// Should be listed under Men
        scope = 0; /// base class should not be visible in editor&
        class Wounds /// changes material of skin according to damage
        {
         [...]
        };

        modelSides[]     = {1, 2, 3};                 /// what sides could use this uniform, means civilians and BLUFOR can use it
        nakedUniform = "vn_b_uniform_basecharacter_01";        /// what "uniform" does this soldier use without any other uniform
        camouflage        = 1.4;                     /// how easy is to spot soldier -> bigger means better spotable, used by uniform

        class UniformInfo /// defines allowed slots of the uniform
        {
                  [...]
        };

        class HitPoints
        {
         [...]
        };

        armor                    = 2; // keep constant among various soldiers so that the hit points armor coefficients remains on the same scale
        armorStructural            = 4; // divide all damage taken to total hit point, either directly or through hit point passThrough coefficient, must be adjusted for each model to achieve consistent total damage results
        explosionShielding        = 0.04; // for consistent explosive damage after adjusting = ( armorStructural / 10 )
        minTotalDamageThreshold    = 0.001; // minimalHit for total damage
        impactDamageMultiplier    = 0.5; // multiplier for falling damage

        hideProxySelections[] = {"ghillie_hide"}; /// names of selections hidden on proxies (used in vest in this case, see overlaySelectionsInfo[])
        class EventHandlers;
    };
    
    class Template_Spanish : Template_Pulau
    {
        genericNames = SpanishMen;
        identityTypes[] = {"LanguageGRE_F","Head_Greek","vn_g_vc_default"};
    };

    class Police_Officer : Template_Spanish
    {
        displayName = "Officer";
        scope = 2;
        scopecurator = 2;
        editorCategory = "Cat__PLC";
        faction = O_PLC;
        editorSubCategory = "Cat_Men";
        vehicleClass = Men;

        model = "\vn\characters_f_vietnam\OPFOR\uniforms\vn_o_nva_army_bdu_02.p3d";
        uniformClass = "vn_o_uniform_nva_army_02_03";
        hiddenSelections[] = {"camo1","camo2","insignia"};
        hiddenSelectionsTextures[] = {"\vn\characters_f_vietnam\OPFOR\uniforms\data\vn_o_nva_army_bdu_shirt_03_co.paa","\vn\characters_f_vietnam\OPFOR\uniforms\data\vn_o_nva_army_bdu_pants_03_co.paa"};
        
        weapons[] = {"vn_p38s", "Throw", "Put"};
        RespawnWeapons[] = {"vn_p38s", "Throw", "Put"};
        magazines[] = {"vn_m10_mag","vn_m10_mag","vn_m10_mag","vn_m10_mag"};
        respawnMagazines[] = {"vn_m10_mag","vn_m10_mag","vn_m10_mag","vn_m10_mag"};
        Items[] = {"vn_o_item_firstaidkit"};
        RespawnItems[] = {"vn_o_item_firstaidkit"};
        linkedItems[] = {"cap_pulau","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
        respawnLinkedItems[] = {"cap_pulau","vn_b_item_watch","vn_b_item_compass","vn_o_item_map"};
    };
}; (included in cfgVehicles)```
wintry fox
lime needle
#

It does not appear in both of them

wintry tartan
#

class PulauMen
What is this?

lime needle
#

the class where I put my units. It is included in cfgVehicles

wintry tartan
#

That's the issue

winter rain
#

you dont need all of that

you can do
B_Soldier_F;
class PulauMen: B_Soldier_F
and add there your faction / editorcat

lime needle
#

When I tried basing myself on pre existing units, their uniforms would never have the right texture

lime needle
wintry tartan
#
class CfgVehicles
{
  class B_Soldier_F;
  class YourSoldier: B_Soldier_F
  {
    something = 1;
  };
};```Like this
lime needle
#

I'm going to try this now

winter rain
#

also take care if this is right

editorCategory = "Cat__PLC";
or is it
editorCategory = "Cat_PLC";

#

but this is not needed when you defined a Faction

lime needle
#

Yeah I notcied, and fixed it after posting here, yet It still did not worked

winter rain
#

for soldier is only needed
faction=
editorSubCategory=
editorPreview=

editorCategory is not needed

wintry tartan
#

Technically editorPreview is not also required

winter rain
#

if you want to add a own preview picture to final tweak your stuff it is

winter rain
lime needle
lime needle
#

Ok I made it work now

paper flume
#

Does anyone know how to change a vehicle class when making a faction mod? (e.g.; making the quad bike display in 3den/Zeus under "IFV" instead of "Cars" in my new faction)

paper flume
paper flume
wintry fox
#

How do you change what set of faces a unit can spawn with?

#

I saw that one unit (seemingly) used a value in identityTypes, but I can't find any sort of class that matched the value

wintry tartan
#

Do you mean like, Miller should have Miller face upon the spawn?

#
class CfgFaces
{
    class PersianHead_A3_01: Default
    {
        identityTypes[] = {"Head_TK"};
    };
};```It is defined like this
wintry fox
#

I assumed it would be in CfgFaces but I didn't see any of the classes for the faces

#

Oh they're in CfgFaces >> Man_A3 >> ...

wintry tartan
#

Oh sorry I meant CfgFaces > Man_A3

wintry fox
#

All good, I kept looking at CfgFaces thinking I should have seen something, but I've never messed with them so I didn't realized it'd be in a class in CfgFaces

toxic solar
novel lava
#
model
mineModelDisabled
#

and then theres a model for the magazine

#

not even sure if the disabled model gets used it didnt at one point

swift yacht
#

I have a question, if I want to make a replacement config for a unit, what class should I inherit from? I am making a mod to replace the equipment on CSAT & Russia units using equipment from the Aegis Modset.

dusk jungle
#

You can check that by looking at original config

#

Or running a scripting command like:
configName inheritsFrom (configFile >> "CfgVehicles" >> "C_Man_1")

#

to get what class provided one inherits to use in your config

lime needle
#

Hey uhm I am confused how to obtain custom mod icons for the arsenal equipment and assets.
I see many MANY different ways of doing it online and none have worked so far :

mod.cpp

name = "Pulau Misfits";
picture = "pla_decal.paa";
logoSmall = "pla_roundel6_x64";
logo = "pla_roundel6_x128";
logoOver = "data\pla_roundel6_x128";
action = "a discord link";

Kinda confused how i am supposed to make it work

wintry tartan
#

logo should define that

#

Where is your mod.cpp?

lime needle
#

located in the root of my mod, with the config.cpp

nimble sequoia
#

mod.cpp usually goes in the root of the pbo, outside of addons

wintry tartan
#

That's not where it should be

lime needle
#

ah

wintry tartan
#

What Apollo said

nimble sequoia
#

and you'll need to provide paths to the icons

lime needle
#

and I see what do you mean

nimble sequoia
#

logo = "\filzar_mod\some_folder\some_sub_folder\pla_roundel6_x128_ca.paa";

#

You should also put _ca (transparency) or _co on your icon names BEFORE converting from tga to paa

wintry tartan
#

It is a good habit (more of mandatory) to have proper texture name suffix too

#

Oh man, we're having the same thoughts same time

lime needle
#

converting from tga ?
I convert from png

nimble sequoia
#

Sure, that's fine

wintry tartan
#

We're talking about the name

lime needle
#

that's odd because I do not have transparency issues with my .paa

wintry tartan
#

tga vs png is not really a big concern

nimble sequoia
#

icon_name_ca.png >>> icon_name_ca.paa

wintry tartan
#

Well, terms of UI it is not really a big concern to have no suffix, but basically, _ca can have better transparency

nimble sequoia
#

It's a similar reason to wear a car seat belt. You might never have crashed, but one day you'll thank us for making you wear it because it will save you time.

lime needle
#

I'll look into it

wintry tartan
#

Meanwhile you can crash Arma 3 easily

nimble sequoia
#

Don't put semi-colons in the #define, only in the calling statement

lime needle
nimble sequoia
#

filzar_mod is the root folder of the pbo, ie filzar_mod.pbo

#

In debug console

MACRO;```
produces AHHHH in the system chat
lime needle
#

that's odd, I defined the path correctly and it doesn't work still

picture = "\pulau_misfits\pla_decal.paa";
logoSmall = "\pulau_misfits\pla_roundel6_x64.paa";
logo = "\pulau_misfits\pla_roundel6_x128.paa";
logoOver = "\pulau_misfits\pla_roundel6_x128.paa";

The mod.cpp now resides in the Addons folder, with the pbo

wintry tartan
#

Not there

nimble sequoia
#

You forgot about the seatbelts too

wintry tartan
#

It should be located not within the addons, but above of it

lime needle
#

ah damn

nimble sequoia
#

mod.cpp usually goes in the root of the pbo, outside of addons

#

Is this even a thing? test = 'MACRO;';

#

Does your code work if you put test = 'systemChat "AHHHH";';

#

doubt it

#

quotation marks are probably bad, double semi-colons are probably bad and I'm not sure if you can set a random variable name like test in this way

#

test = 'MACRO';

#

Eh?

#

Don't put a closing semi-colon in the #define, that was the first thing we covered.

opal crater
#

Macros are just replacing text

#

So doesn't matter what it holds

#

' is not valid config string. It will get auto quoted with "

#

Not true, not seeing how it's related.

#

You should be using quote macro here

opal crater
#

Or inverse it and use ' in sqf

#

As single quote is valid sqf string

#

No

#

#define QUOTE(var) #var

paper flume
#

I'm using acenouniform restrictions (I believe I Set it up correctly), and some uniforms are still not appearing on my npcs, does anyone know why this may be?

#

All embassy guards uniforms do appear on them, as well as the fixed wing pilot, but the rest do not have their uniforms. Backpacks and vests seem unaffected

#

unloading ace nouniformrestrictions does not appear to solve the problem

chilly tulip
#

But the pilot has exactly the same uniform as a bunch of other units?

#

Ah wait, two pilots.

#

It looks like your problem is specifically with "USP_G3C_RBS"?

paper flume
#

it just stopped working today when I added subcategories

#

but I don't think that would cause it?

chilly tulip
#

Test it with addUniform in the editor.

paper flume
#

haven't used addUniform before, would it just be addUniform [this] "USP_G3C_RBS";

chilly tulip
#

player addUniform "USP_G3C_RBS"

#

If you don't have 3rd person enabled then you'd have to place an AI and use cursorObject instead of player.

urban basin
#

So it's my first time creating a mod an no matter what method I use to create functions and compile them and whatever I just can't seem to get it working. The main issue seems to be the pathing to the files and such but I've tried so many times and just don't know what's wrong. I've got the most basic setup I think there is and it still says it can't find the script. Is there something wrong with my file path?

File Structure

@Deployment
>addons
>wag_deployment_main
>functions
fn_deployUnit.sqf
config.cpp

config.cpp

class CfgFunctions
{
    class wag
    {
        class deployment
        {
            file="\wag_deployment\functions";
            class deployUnit {};
        };
    };
};
paper flume
chilly tulip
#

@urban basin So you're building a PBO called wag_deployment_main.pbo?

urban basin
#

yes

#

well I at least believe so

#

only good at the sqf stuff not config

chilly tulip
#

@paper flume Does forceAddUniform work?

paper flume
chilly tulip
#

@urban basin I mean, you can look at the thing afterwards and read the filenames?

paper flume
chilly tulip
#

uniform restriction mods change specific uniforms, not the game itself.

#

You'd need a mod that changed that uniform. Or do it yourself.

urban basin
#

I was just saying in case that's wrong as my knowledge is just from looking at the inside of mods and mixing tutorials

chilly tulip
#

Ok, do you know what the prefix is of this PBO you created?

urban basin
#

as no one tutorial seems to work for some reason

#

I currently have no prefix

paper flume
chilly tulip
#

@urban basin If you don't specify a prefix for a PBO then it uses the PBO name or something like that. I don't know the exact rule.

#

As your file path in CfgFunctions is \wag_deployment\functions and your PBO name is wag_deployment_main, this is definitely not going to work.

urban basin
chilly tulip
#

If you set the prefix to wag_deployment then it would.

urban basin
#

I can't believe I missed that

chilly tulip
#

I don't know the rule for unprefixed PBOs. Not sure it's documented.

urban basin
#

so seeing as it's only one pbo anyways I just set all the wag_deployment_mains to wag_deployment. However with the filepath being right it still gives a script not found error

paper flume
#

I know how to do this now if you were wondering

#

oh same person lmao

paper flume
#

Does anyone know why only some of the vehicles/units I designate in a config would be appearing in the 3den editor?

#

The Mi-8's don't appear, neither do the BRDM-2s, the PBX, all embassy guards beside the medic, and the li-2

frozen bluff
#

I would think the culprit would be the Units part, but then again not sure either.

#

Maybe there's something wrong with the config, but if it's packing then it shouldn't be an issue, but maybe the faction has a misspelling somewhere, otherwise it should show up in the eden editor.

paper flume
#

if it's packing

I use EliteNess so I kinda have to comb through by hand

frozen bluff
#

Hmm. You don't need Editor SubCategory

#

It'll automatically populate by faction and so on without it

paper flume
#

I know I don't need it,but it's helpful

#

I figured it out

frozen bluff
#

Okay

paper flume
#

I use MSF_ as my tag

#

but

#

I didn't add a distinction between different factions in my modpack

#

so

#

they're being overwritten

#

easy fix

frozen bluff
#

Ahh good to know

paper flume
# paper flume

And my final question on this .pbo, I got the uniforms working on all the npcs except for the embassy guards and idk why

wintry tartan
#

Do you mean MSF_EG_Rifleman and such doesn't have proper uniform?

paper flume
wintry tartan
#

In where and how?

paper flume
#

when placed down in the 3den editor

wintry tartan
#

Are you sure CUP_U_O_TK_Green is the proper uniform class?

paper flume
#

Yep, just double checked

wintry tartan
#

What if you put another class, either from a Mod or vanilla?

paper flume
paper flume
wintry tartan
#

It is almost impossible to have an uniform that is not available for an AI

paper flume
#

It's so weird because a uniform of the same class works on another ai in the same mod

#

Forcewearuniform doesn't seem to work either

#

wait, no, it does

#

Hold on

#

I have nouniformrestrictions loaded what-

#

hold on

#

Yeah I don't get it, It just isn't working

wintry tartan
#

What if you try to use forceAddUniform script command?

paper flume
#

I'm confused though, as the base class of the unit I'm using is a vanilla asset and should be covered by ace nouniformrestrictions

#

Plus, other units of the same base class are able to use uniforms which are normally restricted

wintry tartan
#

Then it could be a Mod conflict

paper flume
#

That is definitely possible, actually

paper flume
wintry fox
#

You can just use the same subcategory for them

#

There's not really a point of having different subcategories with the same names for different factions

lime needle
#

Ok I have no idea why the uniform slot of my unit is empty. In game, they show up wearing the uniform but in reality they don't.

{
    [...]
    model = "\vn\characters_f_vietnam\BLUFOR\uniforms\vn_b_macv_bdu_05";
    uniformClass = "vn_b_uniform_macv_05_02";
    hiddenSelections[] = {"camo1","camo2","insignia","d_pocket_l","d_pocket_r"};
    hiddenSelectionsTextures[] = {"\vn\characters_f_vietnam\BLUFOR\uniforms\data\vn_b_uniform_shirt_02_co.paa","\vn\characters_f_vietnam\BLUFOR\uniforms\data\vn_b_uniform_pants_02_co.paa"};
    [...]
};```
I copied those lines from a original soldier's config and I have no idea why it doesn't works.
I have done the same for two other units but it worked... altough those are about a different uniform
winter rain
lime needle
#

no luck

winter rain
lime needle
#

No, there is simply no uniform equiped. Yet the soldier is shown wearing the correct uniform

winter rain
#

can you show in images what you mean?

lime needle
#

I can't post images here

#

Guess I can , now

#

As you can see,

wintry fox
lime needle
#

Anyway as you can see, the unit is shown wearing the uniform I specified in the config,
config lines which I copy pasted from a original soldier's config who wears that uniform (model, hiddenselection, uniformclass ect....) and yet he does not have any uniform equiped in the editor and in game

#

Since I have two other working units with OPFOR uniforms (all 3 being opfor), I thought it was a side issue.
So I made a uniform class inheriting the target uniform's class and changed the side to opfor with no success

winter rain
#

is this:
model = "\vn\characters_f_vietnam\BLUFOR\uniforms\vn_b_macv_bdu_05";
the base soldier or already the uniform soldier

lime needle
#

the uniform soldier

winter rain
#

ok cause when i got as example the base BLUFOR Soldier i got this

#

when i select empty (leer in my langauge) i get this

winter rain
# lime needle

when i look to yours and you got empty selected you still got the uniform on

lime needle
#

Oh I think you shouldn't pay attention to this
As soon as I click "Empty", it actually empties the uniform and sets it to the naked

winter rain
#

okey

lime needle
#

My issue is why doesn't it equips the uniform properly because it seemingly receives the correct model, texutre

wintry fox
#

Oh nevermind, you're using an already defined uniform

lime needle
#

Yup

#

and like I said I tried making a opfor copy of the uniform with the soldier in the uniformClass but didn't had any sucess

lime needle
#
toxic solar
#

is there anything that controls if a mine shows up on mine detector, or how close you have to be for it to show up on the detector? like how planes have radarTargetSize

teal basin
#

what does subclass "Library" of CfgWeapons doing for?

wintry tartan
#

Should be related with Field Manual

stuck fog
#

So from what I understand, it is possible to modify the config of a mod using another mod, right?
I'm trying to make the flashlights of one mod appear brighter, though I'm not sure which settings to actually change. I'm also not sure how you would implement this as a mod?

wintry tartan
#

Yes and basically requiredAddons is the most crucial part

#

For more info check pinned

stuck fog
#

Obviously

wintry tartan
#

Maybe I need to write down why it is crucial after all 🤔

stuck fog
#

I understand that arma cares about the most recently loaded mod, and that will overwrite prexisting information. Using requiredAddons makes sure that if mod B requires mod A, then arma will ensure that A is loaded before B. Atleast that's what I gather

wintry tartan
#

Well if you understand that I guess you know how it works

stuck fog
#

👍

stuck fog
#

Using the arma3diag trick, the weapon attachment no longer appears on my weapon, but appears in ace arsenal

class CfgWeapons 
{
    class Tier1_MW_NGAL_M603V_FL
    {
        class ItemInfo
        {
            class FlashLight
            {
                coneFadeCoef=8;
                FlareSize=1.4;
                class Attenuation
                {
                    start=0;
                    constant=0.5;
                    linear=0.1;
                    quadratic=0.2;
                };
            };
        };
    };
};
#

I should only be updating values within the existing config, right?

wintry tartan
#

You need to inherit too

stuck fog
#

Mmm

#

Got it

#
class CfgWeapons 
{
    class Tier1_MW_NGAL_M603V_FL
    {
        class ItemInfo: InventoryFlashLightItem_Base_F
        {
            class FlashLight
            {
                coneFadeCoef=8;
                FlareSize=1.4;
                class Attenuation
                {
                    start=0;
                    constant=0.5;
                    linear=0.1;
                    quadratic=0.2;
                };
            };
        };
    };
};

So that'll work?
The original config has class Tier1_MW_NGAL_M603V_FL: acc_pointer_IR but that caused my game to crash

wintry tartan
#

Because you're missing the parents

stuck fog
#

Yeah, that'll do it, any idea how to import those?

#

or whatever I need to do?

wintry tartan
stuck fog
#

Appreciate the help

#
class CfgWeapons 
{
    class acc_pointer_IR;
    class InventoryFlashLightItem_Base_F;
    
    class Tier1_MW_NGAL_M603V_FL: acc_pointer_IR
    {
        class ItemInfo: InventoryFlashLightItem_Base_F
        {
            class FlashLight
            {
                coneFadeCoef=8;
                FlareSize=1.4;
                class Attenuation
                {
                    start=0;
                    constant=0.5;
                    linear=0.1;
                    quadratic=0.2;
                };
            };
        };
    };
};

once I start using my brain, it starts working. Thanks for pointing me in the right direction

teal basin
#

If I want override some token's value with another addon but leave alone rest token,what should I do? Declare the class that I want modify then inherit and modify?

#

I m making a ACE compat for my mod,I want to use "skipWhenMissingDependencies = 1;" in CfgPatches to unload the compat PBO automatically when detected game not load ACE

pallid sierra
molten musk
# teal basin I m making a ACE compat for my mod,I want to use "skipWhenMissingDependencies = ...
Skipped loading of addon 'PSR_test' as required addon 'ace_common' is not present
class CfgPatches
{
    class PSR_test
    {
        name = "Prisoner Test";
        author = "prisoner";
        units[]=
        {
        };
        requiredVersion=0.1;
        requiredAddons[]= {
            "ace_common"
        };
        skipWhenMissingDependencies = 1;

    };
};

So like this?
If i dont have ace loaded, it doenst load my addon. It will shown skipped loading addon in .RPT file.

wintry fox
molten musk
lethal shuttle
#
class CfgWeapons
{
    class Pistol;
    class Pistol_Base_F: Pistol
    {
        class WeaponSlotsInfo;
        class GunParticles;
    };

    class PTNI_Pistol_01_Base_F: Pistol_Base_F 
    {
        magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_red_Mag","16Rnd_9x21_green_Mag","16Rnd_9x21_yellow_Mag","30Rnd_9x21_Mag","30Rnd_9x21_Red_Mag","30Rnd_9x21_Yellow_Mag","30Rnd_9x21_Green_Mag"}; 
        magazineWell[] = {"Pistol_9x21"};
        reloadAction = "GestureReloadPistol"; 
        magazineReloadSwitchPhase = 0.4;
        discreteDistanceInitIndex = 0; 
        sounds[] = {"StandardSound","SilencedSound"};
        drySound[] = {"A3\Sounds_F\arsenal\weapons\Pistols\P07\dry_P07",0.39810717,1,20};
        reloadMagazineSound[] = {"A3\Sounds_F\arsenal\weapons\Pistols\P07\reload_P07",1.0,1,10};
        maxRecoilSway=0.0125;
        swayDecaySpeed=1.25;
        inertia = 0.5;
#

My pistol seem to does not have produce any sound when firing

#

id figure it would be the "sounds" code but vanilla weapons seem to have sounds[] = {"StandardSound","SilencedSound"}; as well

frozen bluff
#

Did you create a SoundSet? You need to do that so you have sounds in-game now. You need to get Arma 3 Samples from the store (It's free) and follow the examples in the Addons folder.

lethal shuttle
#

i prefer to just take a soundset from vanilla (specifically the P07). How do I do that?

hearty sandal
#

check its config and copy the sound parameters

lethal shuttle
lethal shuttle
#

sounds[] = {"StandardSound","SilencedSound"};

#

im merely focusing on the gunfire sound btw

hearty sandal
lethal shuttle
#

thats strange, this is what i see in my config

#

this is on \a3\weapons_f\Pistols\P07

hearty sandal
#

blobdoggoshruggoogly mine is all in on config dump

lethal shuttle
hearty sandal
#

its not where I read it

#

I have a file that is dumped from all runtime configs via a debug script command

lethal shuttle
#

would you mind copy pasting it here since i dont know how to do that 👉 👈

#

the soundset parts

hearty sandal
#
            sounds[]=
            {
                "StandardSound",
                "SilencedSound"
            };
            class BaseSoundModeType
            {
            };
            class StandardSound: BaseSoundModeType
            {
                soundSetShot[]=
                {
                    "P07_Shot_SoundSet",
                    "P07_Tail_SoundSet",
                    "P07_InteriorTail_SoundSet"
                };
            };
            class SilencedSound: BaseSoundModeType
            {
                SoundSetShot[]=
                {
                    "P07_silencerShot_SoundSet",
                    "P07_silencerTail_SoundSet",
                    "P07_silencerInteriorTail_SoundSet"
                };
            };```
lethal shuttle
#

sweet, thanks ill check it out

hearty sandal
#

I do recommend getting one of these done

#

it is a huge advantage to be able to search and crossreference in single file

lethal shuttle
#

you have to do this in game?

hearty sandal
#

yes

#

with dev branch exe

#

(either activate devBranch on steam or use SteamDepotDownloader to just get the exe)

lethal shuttle
#

nice i got it working thanks for the help!

hearty sandal
#

👍

urban basin
#

Okay it's been a week of constant pain but another day so I'm back at it again. Trying another another method this time still not knowing what the hell I'm doing wrong but crying my way through the errors. Still getting script not found errors so something has to be wrong with the file path

File Structure

(P:)
>z
>@Deployment
>addons
>wag_deployment_main
>functions
deployUnit.sqf
config.cpp
initsettings.sqf
script_component.hpp
script_macros.hpp
script_mod.hpp
script_version.hpp
XEH_preInit.sqf
XEH_PREP.hpp

#

config.cpp

class CfgPatches
{
    class wag_deployment_main
    {
        name="wag_deployment_main";
        units[]={};
        weapons[]={};
        requiredVersion=2.02;
        requiredAddons[]={};
        author="ThyHolyWagon";
        version=0;
        versionStr="0";
        versionAr[]={0};
    };
};

class Extended_PreInit_EventHandlers
{
    class wag_deployment_main
    {
        init="call compile preprocessFileLineNumbers '\wag_deployment_main\XEH_preInit.sqf'";
    };
};
#

script_component.hpp

#define COMPONENT main
#include "script_mod.hpp"
#include "script_macros.hpp"
#

script_macros.hpp

#include "\z\ace\addons\main\script_macros.hpp"
#include <\a3\editor_f\Data\Scripts\dikCodes.h>
#

script_mod.hpp

#define MAINPREFIX x
#define PREFIX wag_deployment

#include "script_version.hpp"

#define REQUIRED_VERSION 2.02
#define REQUIRED_CBA_VERSION { 3, 5, 0 }
#define REQUIRED_ACE_VERSION { 3, 15, 1 }
#

XEH_preInit.sqf

#include "script_component.hpp"

systemChat "Here";

ADDON = false;

PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;


#include "initSettings.sqf"

ADDON = true;
#

XEH_PREP.sqf

PREP(deployUnit);
wintry tartan
#

Which software you use to pack? Do you have PBOPREFIX?

urban basin
#

$pboprefix$ is just for hemtt right?

true fossil
urban basin
#

I use pbo manager with addon builder tho

true fossil
#

Pbo manager uses $prefix$

urban basin
#

oh

#

where in the world is that documentation as I never saw that

true fossil
urban basin
#

oh

#

well I somehow didn't come across that page in my week of trying this

#

does caps matter?

true fossil
#

Sorry I don't use that toolchain, to be safe just copy the case and use $prefix$

urban basin
#

oh okay

#

Using that I get the error script \x\wag_deployment_addons\main\XEH_preInit.sqf not found

#

from the config.cpp

chilly tulip
#

Addon builder ignores $PBOPREFIX$. You feed the desired prefix to it directly, either in the UI or the command line.

true fossil
#

Good to know

chilly tulip
#

not sure what the question is there

urban basin
#

I don't know what the prefix has to do whatever with the UI or command line that you're talking about

wintry tartan
urban basin
#

I'm confused as there is no mention of UI or a command line in the article nor anything about addon builder

wintry tartan
#

AB's Options

chilly tulip
#

The prefix is a value set on the PBO, which you can read with PBO manager. Every method of packing PBOs has a different method of setting the prefix.

#

The prefix determines where the files from the PBO are placed in the virtual filesystem on loading.

urban basin
#

so should I not be using both addon building and pbomanager? Cause I use the manager to pack it into a pbo where I then use addon builder on the @mod file

#

is that not right

chilly tulip
#

Well, PBO manager is busted for packing anyway. If you pack with PBO manager then it won't load with signature verification enabled, even if you add a signature to it.

#

So generally you pack with anything but that.

urban basin
#

oh

#

addon builder is only used on the @mod folder right?

#

I'm confused

chilly tulip
#

No, I don't know what you mean there. Addon builder builds PBOs.

urban basin
#

that might explain some stuff

chilly tulip
#

The addon builder UI is pretty useless once you have more than one addon/PBO.

#

And the addon builder command line is kinda broken. So people end up using third party tools mostly.

urban basin
#

omg I've been using addon builder wrong this entire time

chilly tulip
#

Also an orphan.

urban basin
#

I read that page many many times but yet still got it wrong

chilly tulip
#

You do also want to look at other people's mods using PBO manager.

urban basin
#

I have been :/

#

somehow got it wrong despite all this

paper flume
#

Does anyone have a list on the CUP attachment point class names? they use different attachment point class names and the ones I used from the config viewer don't appear to be working

#

class MSF_MS_CUP_arifle_Mk17_CQC_FG_black_muzzle_snds_HXQD762_black_HCUP_acc_ANPEQ_15_BlackCUP_optic_G33_HWS_BLK: CUP_arifle_Mk17_CQC_FG_black
  {
    displayName="Mk 17 CQC (Grip/Black)";
    scope=1;
    class LinkedItems
    {
      
      class LinkedItemsOptic
      {
        slot="CowsSlot";
        item="CUP_optic_HensoldtZO_low_RDS_od";
      };

      class LinkedItemsMuzzle
      {
        slot="MuzzleSlot";
        item="muzzle_snds_HXQD762_black_H";
      };

      class LinkedItemsAcc
      {
        slot="CUP_PicatinnySideMount";
        item="CUP_acc_ANPEQ_15_Black";
      };

    };
  };```
#

^doesn't work, even for the muzzle

#
class MSF_MS_CUP_arifle_Mk17_CQC_FG_black_muzzle_snds_HXQD762_black_HCUP_acc_ANPEQ_15_BlackCUP_optic_G33_HWS_BLK: CUP_arifle_Mk17_CQC_FG_black
  {
    displayName="Mk 17 CQC (Grip/Black)";
    scope=1;
    class LinkedItems
    {
      class LinkedItemsMuzzle
      {
        slot="MuzzleSlot";
        item="muzzle_snds_HXQD762_black_H";
      };


    };
  };```
#

^Does work, but only for the muzzle

wintry tartan
#

You always want to check a config viewer if you wonder if it is caused by wrong name

paper flume
wintry tartan
#

Make sure you're referencing the correct class. How it does tell about the slot name?

paper flume
#

item= is the name of the optic

#

or whatever else is being attached

wintry tartan
#

I am talking about how CUP done that

paper flume
#

Oh, it's individual to their guns

#

From what I can tell they don't make the list available online and it's not 100% standardized from gun to gun

wintry tartan
#

Then follow how Mk17 done that

paper flume
wintry tartan
#

?

#

What's unclear? Follow how CUP Mk17 done that job

paper flume
#

I'm having a hard time parsing the sentance, are you saying to look at CUP factions and see how they use the Mk17?

wintry tartan
#

No, how they made CUP Mk17

#

If the goal for you is just to make a scope=1 with certain accs, check how they've done for Mk17

paper flume
#

Oh, I'm just trying to make a faction and add attachments. I figured it out, there was an error in my syntax somewhere else in the doc, what i was doing was fine

#

Thank you though 🙂

wintry tartan
#

Hm then you want to report the issue on the doc

paper flume
#

I was using Drongo's config editor and the class names of the weapons I was generating with attachments did not match with the class names I had for the npcs because I had changed them earlier

hearty sandal
#

It seems Drongos config generator starts to get bit iffy the more complex things you do.

#

you are not the first one who has had problems with it

#

you could also just manually write your configs

paper flume
lime needle
#

Hello. I've been suing the line crew = to change the crew of a vehicle to my units. This worked until I get to modify multi-crewed vehicles. Only the driver is changed to my unit but not the gunner/commander who remains inherited. Do you know what line changes this setting ?

ashen chasm
lime needle
#

No luck

wintry tartan
#

Post your config then

ashen chasm
#

deja vu

nimble sequoia
# lime needle Hello. I've been suing the line `crew = ` to change the crew of a vehicle to my ...

This is a typical type of code block used inside your new vehicle class, to change the crew in the gunner and commander turrets. Note you'll need to use the correct turret names, and that also ALL turrets need to be stated, even if you are not changing them, or they will be lost (hence the cargo turrets, which are external FFV in this tank).

{
    class MainTurret: MainTurret
    {
        gunnerType = "vn_o_men_pl_20";
    };
    class CommanderTurret: CommanderTurret
    {
        gunnerType = "vn_o_men_pl_18";
    };
    class CargoTurret_1: CargoTurret_1 {};
    class CargoTurret_2: CargoTurret_2 {};
};```
ashen chasm
#

And all the needed inheritance shenanigans above that notlikemeowcry

nimble sequoia
#

I'm leaving that bit for you to explain 😉

ashen chasm
#

Imagine having something like class Turrets: * that says "i don't care, just don't change the inheritance" to config parser

#

And using mobile discord makes me even worse at explaining things praise_the_sun

nimble sequoia
#

You'll have the machine code purists chasing you with pitchforks saying things like that (but, yes, 'tis the dream for us amateur configurators)

ashen chasm
#

Let dedmen chase them back with the new and improved array[] += {...} MillerTarget

wintry tartan
# lime needle No luck

Well discussing the potential issue without having your config is not really constructive or effective. Please post yours

lime needle
nimble sequoia
lime needle
#

ye ye I was trying every gunnerType= I could find in the vehicle's config . I would have eventualy found the MainTurret but you kind sir made it easier

lime needle
#
class vn_o_wheeled_btr40_01
{
    class AnimationSources
    {
        class canopy_hide;
        class hatch_right;
        class hatch_left;
        class user_periscope_driver;
        class user_periscope_codriver;
    };
};
class btr40_pla : vn_o_wheeled_btr40_01
{
  [...]
    class AnimationSources
    {
        class user_periscope_driver : user_periscope_driver
        {
            initPhase = 1;
        };
        class user_periscope_codriver : user_periscope_codriver
        {
            initPhase = 1;
        };
    };
  [...]
};

Any idea why I am getting a "Undefined base class 'user_periscope_driver' " error ??? The class is defined

#

Nevermind I think I found it

nimble sequoia
lime needle
#

yeh I found out

#

However it did not do what I'm trying to achieve

urban basin
# urban basin Okay it's been a week of constant pain but another day so I'm back at it again. ...

Okay so the stuff from my issue before seems to be fixed however the next file path issue has arrived apparently. When I load up the game and before it even loads arma it crashes saying script script_component.hpp can't be found which I believe is coming from the XEH_preInit and it not being the right path. I've tried these paths so far but none have worked...
#include "script_component.hpp"
#include "\z\wag_deployment\addons\wag_deployment_main\script_component.hpp"
#include "\wag_deployment_main\script_component.hpp"
#include "..\wag_deployment_main\script_component.hpp"
#include "..\script_component.hpp"
#include "..\z\wag_deployment\addons\wag_deployment_main\script_component.hpp"

What am I doing wrong? tanking

chilly tulip
#

If this is from a script in your functions folder then the relative path would be #include "..\script_component.hpp"

#

If it's from something in the root folder then #include "script_component.hpp"

ashen chasm
#

inb4 Addon Builder with "*.hpp" blacklisted 🙃

urban basin
ashen chasm
#

🤷‍♂️ check your settings

chilly tulip
#

You can look in the PBO afterwards with PBO manager and check it.

urban basin
#

oh that's weird

#

yeah they're gone

chilly tulip
#

Are you binarizing or not?

urban basin
#

I am

#

should I not be?

chilly tulip
#

It adds some extra problems :P

urban basin
#

oh ok

#

I think I just hate binerizing anything now bc it also fucks up mission files as well

#

there they are

nimble sequoia
#

Most errors are our own making, no good blaming the tools (apart from when it is their fault).

urban basin
#

yeah I know that

chilly tulip
#

Well, the tools are awful in this case.

urban basin
#

was just mentioning the mission file thing bc it usually corrupts them

#

which makes me lose like 8 hours of progress usually

nimble sequoia
#

It doesn't corrupt them, it binarises them. And you can't unbinarise if you didn't keep a copy.

urban basin
#

ok so now that problem is gone

#

onto the next :/

urban basin
lethal shuttle
#

ok so where i put my axis memory in my weapons (e.g. firemode switch, trigger axis) does not work as intended

#

instead of turning where the memory axis is located in the model, it has a different rotation origin point, sometimes being almost a meter away from the weapon itself

#
            class safety_mode_rot
            {
                type            = rotation;
                source            = weaponMode;
                selection        = "safety";
                axis            = "safety_axis";
                memory            = 1;
                minValue        = 0;
                maxValue        = 0.25;
                angle0            = 0;
                angle1            = (rad -52);```
id assume its a problem with the model cfg
#

here is an example in game, the red circle is the safety switch

digital pier
#

more of a config question I think than scripting, per se...
Q: about mass ... given a class sourced to its corresponding best fit CONFIG, whether weapon, container (i.e. uniform, vest, backpack), magazine, simple item, etc.
where do we typically find: getNumber (_cfg >> "mass")?
in the root config? can it be elsewhere, i.e. ItemInfo, things of this nature? and in how many other places, i.e. besides ItemInfo?
thanks...

Q: follow on question... is it this which is typically used to determine whether a thing can be loaded into an inventory? i.e. sum total mass over the range of classes, weapons, weapon accessories, etc? compared against the container maxLoad, for instance.

grand zinc
#

Sum total mass, yes

digital pier
grand zinc
#

Dunno. You could search in ace arsenal code

ashen chasm
#

((_mass * 0.1 * (1 / 2.2046) * 100) / 100) toFixed 2 notlikemeowcry

digital pier
#

what? meowfacepalm

nimble sequoia
ashen chasm
#

...) would be noticeable with other animations, but still check if you have autocenter=0 in geometry lod notlikemeow

digital pier
#

re: mass, okay doke, easy enough to contain. already have a function for it, actually, so can handle it.

digital pier
#

prefer WeaponSlotsInfo over ItemInfo over the root config, which ever is the first to have a mass property.

ashen chasm
digital pier
#

although that is an interesting kg conversion

digital pier
#

so I appreciate the verbosity

grand zinc
digital pier
grand zinc
#

I don't know what enhanced function view is

digital pier
#

don't know what ASC is... at least as far as 3den Enhanced Functions Viewer claims:

format ["%1kg (%2lb)",((_mass * 0.1 * (1/2.2046) * 100) / 100) ToFixed 2, ((_mass * 0.1 * 100) / 100) ToFixed 2]
dull bolt
#

Are there tools that will build cfgPatches weapons[],units[], or vehicles[] automatically?

sullen fulcrum
#

I've noticed that on the last "round" of magazine the recoil animation for the barrel on things like artillery, or vehicles, anywhere where there is supposed to be some barrel animation doesn't play. It only plays if there is a round loaded afterwards from the same magazine.

I know it's due to the source being 'reload' - I've looked on the wiki but couldn't find a valid alternative, I want the animation to basically always make the barrel recoil even if it's the last round in the 'magazine' or if it's a 1 round magazine, does anyone know any alternatives?

class recoil_source{
    source="reload";
    weapon="weap_veh_fr_panhard_defa_cn90f1";
};
sullen fulcrum
#

It gets me there it's just not great due to it playing the animation if they reload a new magazine and there's a delay between firing the last round in the magazine, and the animation being played as it's linked to the reload

#

I guess I'd need it linked to the event of beinf 'fired' rather than any predefined source for animation, I'm assuming this would be done via something like eventhandler

wintry fox
#

Is there anything actually tied to a specific faction for it's side? Cleaning up some old code I wrote where I had some units on two sides (as in the "normal" unit and then another _opfor version of the unit) and they had separate factions (with the same name).

ebon pivot
#

think uniform restrictions uses configged sides? not 100% sure on that one tho

wintry fox
#

Should just be the actual side of the unit trying to put it on, no?

#

Basically just checking if the side value of the unit is in the modelSides of the uniform's unit

frosty geyser
#

Hi guys, what if I want to add direction indicator radar to my vehicle (like old vanilla, was removed some time ago), just

        commanderCanSee = "2 + 4 + 8 + 16 + 32";
        driverCanSee = "2 + 4 + 8 + 16 + 32";
        gunnerCanSee = "2 + 4 + 8 + 16 + 32";
        radarType = 8;

doesnt work unfortunately. Is there any additional parameter?

frosty geyser
#

@nimble sequoia yes, I know about the new system, but I want old simple radar which displays only heading (azimuth) information on hud.

swift fox
#

In Spearhead DLC german guns with german crew refuse to fire at german vehicles if there is a enemy inside the vehicle, and it is not captive. IFA3 guns in the same situation fire well. Could it be a config issue? What I should look for?
NB: missed irLock = 1; parameter for the ammo.

wintry fox
#

What does cursorAimOn do? I was doing some testing on what each cursor property does (cursor, cursorAim, cursorAimOn) but I never could get the cursor set for it to appear.

Here's what I found them to do, but please correct me if something is wrong.
cursor - Standard cursor for the weapon, roughly follows the center of the screen or the object that is blocking the gun.
cursorAim - Follows the barrel's "line of sight", will appear roughly in the center of the screen when standing still but will sway slightly with the gun.
cursorAimOn - Unknown, never appeared in game and couldn't find any results for it online.

dusk jungle
#
        Crash0[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_1",1,1,900};
        Crash1[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_2",1,1,900};
        Crash2[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_3",1,1,900};
        Crash3[] = {"A3\Sounds_F\vehicles\crashes\cars\cars_coll_big_default_ext_4",1,1,900};
        soundCrashes[] = {"Crash0",0.25,"Crash1",0.25,"Crash2",0.25,"Crash3",0.25};
```More of an engine question, but am I right to assume that giving no file extension means its `.wss` in a context of sound and not `.ogg`?
sullen fulcrum
#

From my experience yes, when using .ogg files I have to declare .ogg - if I may additionally ask, the tree parameters after the soundfile are those volume, pitch and distance?

dusk jungle
#

Yea, looks to be the same as CfgSounds from description.ext

grand zinc
teal basin
lean bloom
#

Hello, what exactly is the workflow for creating mortar ammunition with a certain max range, and the tables for it?

Say, the mortar needs a max range of 1200 meters and a min range of 80 meters.

Is this more or less a guessing game between finding the correct velocity for the round and limiting the elevation of the mortar accordingly?

wintry fox
teal basin
#

what are these marco in sample doing for?

#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}
#define item_xx(a,b) class _xx_##a {name = a; count = b;}
#define bag_xx(a,b) class _xx_##a {backpack = a; count = b;}
ashen chasm
calm pilot
#

Struggling in trying to understand why my custom rocket launcher rockets behave in this way. The rockets do not tilt or change angle when they should as any other body affected by gravity. Distances works, but the rocket stay in the same angle as it exited the launcher. Tested air friction, initspeed and maxspeed from different configs and different mods. Still same problem. Is it config or model related? I can't understand it anymore

hearty sandal
calm pilot
hearty sandal
#

I mean have you checked how vanilla rockest look like when they fly

calm pilot
#

Well, the difference is that they tilt when reaching a specific altitude and velocity, pointing their noses towards the ground. Mines are static

#

Talking about rocket launchers rockets

calm pilot
calm pilot
#

Oh hell no. They behave like mine. I'm gettimg crazy then, confirmed. So i'm creating a problem where there is actually no problem. Noice

novel lava
#

sideAirfriction is also important

remote salmon
#

Any ideas on why I would be getting this error? I've solved it in the past but honestly don't remember how.

wintry tartan
#

Put \ as the first character

#

It is more of an engine issue

remote salmon
#

Ah, Yikes

#

Yeah, that fixed it. Appreciate it.

cursive cliff
#

Hey guys, Im trying to make a glowing plankton which moves around underwater. I took the Fire Fly config and changed the avgHeight, minHeight and max Height but it still spawns above water.

{
class Insect;
    class Plankton : Insect
    {
        scope = 2;
        model = "\A3S_Client\data\Plankton.p3d";
        acceleration = 5;
        airFriction0[] = {200,20,60};
        airFriction1[] = {7500,700,100};
        airFriction2[] = {125,12,2.5};
        animated = 0;
        avgHeight = "(-1 * waterDepth)/4";
        maxHeight = -1.5;
        minHeight = "(-1 * waterDepth)";
        minSpeed = -0.1;
        canBeShot = 0;
        flySound[] = {"\A3\sounds_f\dummysound",0.000562341,1,1};
        reversed = 0;
        simulation = "SeaGull";
        singSound[] = {"",0.0316228,1,1};
        straightDistance = 10;
        turning = 2;
    };};```
#

I guess CfgNonAiVehicles cannot spawn underwater and I have to use CfgVehicles instead?

#

or is it because of the simulation seagull

teal basin
#

I have some questions on Class Inheritance:

class A
{
    class B
    {
        // whatever
    };
};

class C : A
{
    class D
    {
        // whatever
    };
};

class E : C
{
    class D
    {
        // change things
    }; //would it completely overwrite class D with new properties?
    class B;  //I just Declare it here to let me know I had inherited Class B from inheritance Tree,would it affect something?
};
hearty sandal
cursive cliff
hearty sandal
#

There are things in animal behavior loop that may prevent anything but fish type be under water

fathom coyote
#

does anyone have config for Advanced Modular Helmet?

cursive cliff
hearty sandal
fathom coyote
hearty sandal
#

Into the config viewer?

#

Google will help. You can also get "advanced developer tool" mod to improve the ingame config viewer with better search tool

plush dragon
#

I have some very strange issues with making NVGs work with particular scopes

#

I tried to make the DMS/Burris XTR II compatible with NVGs and the base scope doesn't work with NVGs still, causes the green hex version to break completely (can't aim down with it at all), but the weathered variants from Contact work completely fine with NVGs as I intended?

hearty sandal
plush dragon
#

Righto, let me post my config

#
class CfgWeapons
{
    class ItemCore;
    class InventoryOpticsItem_Base_F;

    class optic_DMS : ItemCore
    {
        class ItemInfo : InventoryOpticsItem_Base_F
        {
            class OpticsModes
            {
                class Snip
                {
                    visionMode[]={};
                    opticsDisablePeripherialVision=0;
                };
            };
        };
    };

    class optic_DMS_ghex_F : optic_DMS
    {
        class ItemInfo : InventoryOpticsItem_Base_F
        {
            class OpticsModes
            {
                class Snip
                {
                    visionMode[]={};
                    opticsDisablePeripherialVision=0;
                };
            };
        };
    };

    class optic_DMS_weathered_F : optic_DMS
    {
        class ItemInfo : InventoryOpticsItem_Base_F
        {
            class OpticsModes
            {
                class Snip
                {
                    visionMode[]={};
                    opticsDisablePeripherialVision=0;
                };
            };
        };
    };

    class optic_DMS_weathered_Kir_F : optic_DMS_weathered_F
    {
        class ItemInfo : InventoryOpticsItem_Base_F
        {
            class OpticsModes
            {
                class Snip
                {
                    visionMode[]={};
                    opticsDisablePeripherialVision=0;
                };
            };
        };
    };
};
#

To me at least the config doesn't seem to differ in a way that should matter

plush dragon
#

as far as I can tell optic_dms does inherit from ItemCore from what the splendid config viewer says

hearty sandal
#

id your required addons setup in cfgPatches so your mod loads after vanilla configs?

plush dragon
#

Actually that'd probably do it.

#

haven't gotten to that yet, so it's likely not working correctly because of it

#

How do I know what addons i need to load?

brazen merlin
#

does anyone know if it's possible to change vehicle wheel height via config only? i mean the suspension or dampers, etc

#

or is that something that needs to be adjusted in the model directly?

hearty sandal
#

model.cfg animation for dampers dictate their length

#

config can alter how stiff the springs are and thus little bit alter the resting height

#

but I dont think it can go over the animation distance

brazen merlin
#

hm. i changed the offset of the dampers in the model.cfg - it worked, but at the same time now the wheels are sinking a little into the ground

hearty sandal
#

are the wheel physX points at the aligned with the visual model?

brazen merlin
#

yeah

#

in current "normal" configuration, everything is fine. i just thought of setting the vehicle itself a little higher.

nimble sequoia
#

What is often forgotten is that the physical distance moved of the suspension is a product of the translation offset values with the distance between the damper axis points. So if you want to put 0.1 as a value for the offset, expecting to get a 0.1m compression, then your damper axis memory points need to be 1m apart.

plush dragon
#

Alright, I got the scope NVG stuff working. Thanks Goat for the suggestion it had something to do with inheritance!

wintry fox
plush dragon
toxic solar
#

I cant for the life of me find where this is, but is recoil in the base level of a weapon definition, or in the firemode classes?