#arma3_config

1 messages Β· Page 11 of 1

hearty sandal
#

Id go with the new buildings

#

lot easier

#

you have control over what you do

#

Mikes mod works ok because he just adds snow

#

changing facade texture on a building thats not designed with that surface material in mind will not look good

sand ocean
#

I suppose replacing the rvmat wouldnt help with that either think_turtle

hearty sandal
#

it would be required, but the issue is more connected to building design and brick/concrete buildings being different from plank covered ones

#

the replacement would stand out

sand ocean
#

Yeah thats what we thought a bit about too πŸ˜„

#

Well, that should answer it then, thanks for the help!

sly ice
#

quick question, how do i implement spaces in define macro's, for example

class ##baseclass; 
will end up with 
classExampleClass; 
opal crater
#

remove ##

#

I assume baseclass is macro param?

#

these should be UPPER case by convention to make them more easily recognizable.

sly ice
#

just an example one

#

ah, i was under the impression either a # or ## was necessary

opal crater
#

you use it to concatenate multiple macro params

#

VAR1##VAR2

#

or concatenate in general.

#

VAR1##NotAMacroParam

sly ice
#

all good, cheers for the help

ebon pivot
#

Does anybody have any software recommendations for generating all combinations of hiddenselections for provided textures and selections etc?

tawdry coral
#

What is ItemInfo exactly? Do I need it for every vest/uniform/helemt?

...
class HelmetBase: ItemCore
{
  ...
  class ItemInfo: HeadgearItem
  {
    ....
  };
};
class UsableHelmet: HelmetBase
{
... // Would it need it's own ItemInfo class or can it inherit from the `HelmetBase`?
};
hearty sandal
finite surge
#

For making my sounds work indoors and outdoors do I change the class name of my CfSoundShaders from class T_soundtweak_Flash_closeExp_SoundShader to class T_soundtweak_Flash_Indoor_closeExp_SoundShader?

#

Or how exactly would I make sounds differentiate from indoor to outdoor?

hearty sandal
finite surge
#

Ok so it just needs to be different names got it

#

So CfgSoundSets is what determines what sound is played at what distance and if it's indoor and outdoor or what?

hearty sandal
#

You can compare vanilla sound configs

finite surge
#

Where would the directory be for grenades or flashbangs

#

Only Weapons I'm finding

hearty sandal
#

Not sure what you mean. Vanilla has no flashbangs

#

You can also browse configs with the ingame config viewer (and make that easier with mods that add improved config viewer like leopards advanced developer tools mod)

finite surge
#

Vanilla doesn't have flashbangs?

#

Didn't know that

hearty sandal
#

You have played the game right...

finite surge
#

I don't play Vanilla

#

Never have

ebon pivot
#

problem solved

ashen chasm
#

why, though O_o

ebon pivot
#

im lazy so ill just automate the process instead of constant copy pasting

#

can just swap the optional entry for a macro or w/e

ashen chasm
#

i mean, why non-consistent hiddenSelections with what seems to be the same model tanking

ebon pivot
#

shit you right

#

(i think thats how usp does it at the moment but it shouldnt be)

#

either way its not a big deal to change lole

#

oh no thats how they used to do it

ashen chasm
#

yeah, scripting is godsent for long repeatish walls of text

ebon pivot
#

amen to that

#

ty for pointing that out, solved now lol

hearty sandal
ebon pivot
#

yuh

#

its all fixed now anyways

limber citrus
#

Hey peeps, is it possible to set a default patch for a soldier class?

opal crater
#

patch?

#

if you mean the insignia you can set it via hiddenSelectionTextures.

orchid delta
#

Hello, I need help ! I'm trying to retexture a vehicle (it has sirens, lightbars and all that), and I get an error I don't understand :/ '/CfgVehicles.Car_F': '{' encountered instead of '='. But I don't see why a = should be there.

{
    class Car_F
    {
        class UserActions;
    };
    class aka_vsav_cube_base;Car_F{};
    class aka_vsav_cube_sdis70 : aka_vsav_cube_base{};
    class Ambulance_Altis_Secours : aka_vsav_cube_sdis70;
    {
        scope = public;
        crew = "C_man_1";
        side = 3;
        faction = CIV_F;
        displayName = "Ambulance Altis Secours";
        author = "Aka-Mods, Napsius";
        hiddenSelectionsTextures[] = {"Ambulance\textures\body.paa","#(argb,8,8,3)color(0.945098,0.866667,0.223529,1.0,CO)","Ambulance\textures\roof.paa","aka_vsav_cube\textures\чэї*ΡΡŸΡˆΠ°Ρ•Ρ“Π€.paa","Aka_data_base\datas\plaque\Plaque.paa"};```
#

(There's more after that but I'm not going to send 100 lines of code, it will be hard to read)

ashen chasm
#

class aka_vsav_cube_base*;*Car_F{}; huh?

orchid delta
ashen chasm
#

it;s ; there, not :

orchid delta
#

OOOOOOOH

#

FUCKING HELL A STUPID SYNTAX ERROR

#

Thanks !

#

It worked, thanks !

hearty sandal
#

(HEMMT might also have that?)

orchid delta
#

I'll check those, thanks !

pallid sierra
#

its anal, but not mikeros anal

hearty rivet
#

Hello!

I was trying to configure my config and it was all good but when I hop on into the launcher and clicked on the vest to load it loaded on the incorrect position, What could I do and what can I do to fix it?

Also 1 .p3d doesn't shows up even if it's on the Config.C++

toxic solar
#

So I saw this somewhere here a longtime ago but cant seem to find, but is there away to draw the lines of a MFD in photoshop and export the (X,Y) positions? or was this a fever dream idea πŸ™‚

#

This would be for creating a hud, and I really dont want to be restarting the game for every tiny little change

ember acorn
#

Would it be possible to add a fire mode (ModeClass) to the Throw weapon class? And would that fire mode be able to influence the speed at which grenades are being thrown?

hearty sandal
#

Don't think there is key to swap fire mode with it.

ember acorn
#

What I'm thinking is not to switch the fire mode like that. But to have a scripted hotkey call the "fire" function with the fire mode as a parameter.

#

Second argument can be firemode: https://community.bistudio.com/wiki/fire In the examples for throwables it's always their main weapon class being passed in. Perhaps it could be a different fire mode instead is what I am thinking. Would only be useful if the fire mode can actually influence the grenade throwing though.

#

Grenade throw speed is defined in the magazine though, which makes it doubtful an an approach...

hearty rivet
shy knot
hearty rivet
#

I only have one the Config.c++

Modelname: "Name of the model"
Picture: "The picture that will be on the game"
Model " The model on.p3d"

Is that the model.cfg?

hearty sandal
#

model.cfg is additional file that contains things like skeleton and animation definitions

#

you can find example from the arma 3 samples on steam

hearty rivet
#

Lovely!

Thanks!

hearty sandal
#

and the BI wiki contains some explanation for it too

hearty rivet
hearty rivet
carmine crypt
#

does CfgVehicles have class for MP EventHandlers like it does for EventHandlers?

hearty sandal
#

no there is just one class eventhandlers

carmine crypt
#

tanks

hearty sandal
carmine crypt
#

flexing with them superreacts...

undone patio
#

Is there any way for cfgRespawnInventories to be... extended? Say you've got a rifleman and a medic but the only difference between them is some extra gear. In normal OOP you could just be like medic extends rifleman and have it inherit the gear and everything... can that be done with arma

meager salmon
#

weird question but, is it possible to write an config so that certain items in the arsenal for example are hidden?

lapis nacelle
#

That would just be scopeArsenal = 0 No?
scopeArsenal = 2 makes it show in the Virtual Arsenal

meager salmon
#

like how basically most mods do sight magnifiers, how the magnified variant is actually a completely different sight but hidden in the arsenal

meager salmon
#

wow that is

#

simpler than i thought

#

LMAO

wheat sluice
#

For weapons and magazines, scopeArsenal = 0 is usually sufficient. In the case of weapons with predetermined attachments, you can use baseWeapon on the parent weapon class. For vehicles, use forceInGarage = 0.

meager salmon
#

liek helmets, vests, uniforms

wheat sluice
#

Clothes are considered to be weapons (don't question BI's naming logic).

meager salmon
#

well actually

#

if you really think about it, anything can be a weapon

#

its just how you use it

#

so they're technically...correct

wintry tartan
#

The worst is a backpack is a vehicle

wheat sluice
#

Humans are vehicles too. πŸ˜„

wintry tartan
#

Vests are both vehicle and weapon 🀯

lapis nacelle
#

Anything is a vehicle if you try hard enough

wintry tartan
#

Optical sight: vroom vroom /s

lapis bough
#

is it possible to modify a vehicles driving behavior on certain surfaces? i.e make them drive normal or not slow on certain surfaces?

#

could be this terrainCoef in the vehicles config entry?

ebon pivot
undone patio
#

so in the case of cfgRespawnInventories do we have to redeclare the whole array of linkedItems or can we just add to it somehow

undone patio
ebon pivot
undone patio
#

you're a saint

ashen chasm
#

iirc += only worked if you redefine (update?) the same class in the different config file. And only for the members defined in the class tanking

#

and i don't really see any viable usecases except adding new muzzles to "Throw'/"Put" weapons πŸ™ƒ

pallid sierra
#

@stoic lily would you mind sharing how IFA3 mod changes the look of the hint command to that nice sleek grey look?

stoic lily
#

@pallid sierra the border part o the background itself?

pallid sierra
stoic lily
#

imageCornerElement = "\WW2\Core_t\IF_Gui_t\CfgInGameUI\cornern_ca.paa";

#

in class CfgInGameUI

#

class CfgInGameUI
{
class Actions
{
background = "\WW2\Core_t\IF_Gui_t\CfgInGameUI\cornern_ca.paa";
};
imageCornerElement = "\WW2\Core_t\IF_Gui_t\CfgInGameUI\cornern_ca.paa";
};

#

actual background color not sure as this is commented
class RscHint
{
class Hint: RscStructuredText
{
background = "WW2\Core_t\IF_GUI_t\igui_hud_corner.paa";
};
};

#

best to search in AIO config for class hint or just hint

ocean gyro
#

Would something like the ENVG-B nods overlay be technically possible in the arma 3 engine

#

this would probably involve an edge detection filter in arma

ebon pivot
#

technically? yes
practically? no

#

reshade and stuff may be more likely to work better -- but sqf side it's not going to work well if at all

ocean gyro
#

I'm looking to achieve the closest effect using plain SQF

ebon pivot
#

edge detection isn't doable performantly from what i've been able to test in the past, your best bet is doing something similar to A3TI and switching textures and stuff -- but you wouldn't have edges

ocean gyro
#

I'm guessing re-doing every RVMAT in the game

#

and _ti texture

ebon pivot
#

I don't think so; else A3TI would be ginormous and not work with most mods -- I don't know how they do it though, take a look

ocean gyro
#

how about the compass overlay at the top

ebon pivot
#

cant remember what that looks like but that should be trivial

#

just a drawicon that rotates most likely

hearty sandal
#

technically you might be able to calculate silhouette of a model and draw 3d lines in your own view around them

#

buuuut is that practical or even really possible

#

but gut feeling is that there is nothing that would work properly to do this

ebon pivot
#

yeah that's what I was thinking but would be too poor performing in sqf

carmine crypt
#

Whats the best class to use as base for unit?

#

O_Soldier_VR_F doesnt seem to work in some cases

hearty sandal
#

for what kind of a unit?

#

soldiers usually inherit from a side soldier base classes

carmine crypt
#

solider basically. model doesnt matter

#

A_B_solider_F?

hearty sandal
#

cant remember off the top of my head but the vanilla configs should reveal that pretty easily

carmine crypt
#

hmm probs O_Soldier_base_F

#

sounds like a solid base

hearty sandal
#

sooounds familiar yes

lapis nacelle
#

I use B_Soldier_F for Blufor
Opfor O_Soldier_F

carmine crypt
#

O_Soldier_VR_F worked just fine. Just that it had some compatibility issues when RHS was loaded.
So ill try something that requires minimal amount of work for same result

#

On Cfg topic is class CfgWorlds -> class GenericNames omitted from all documentation on purpose, or something that vanilla doesnt even use? I found exactly 1 mention of it on the forums...

lapis nacelle
#

It looks like just a list of Names for the game to Pull from, not sure how it's applied though

carmine crypt
lapis nacelle
#

That is interesting

carmine crypt
#

So unless you know where to set said names, good luck have fun finding the place

lapis nacelle
#

I genuinely didn't even think about how Names were chosen for Units, Now I do, thanks XD

hearty sandal
#

there are quite a lot of non documented things.. blobcatsweats

#

is there something you would like to do with it?

ocean gyro
lapis nacelle
#

I found the other day that the Insert Syntax for Hashmaps was incorrect or rather misleading, that was a fun time

ocean gyro
#

what's the proper way of doing that in SQF

#

post processing?

ebon pivot
#

errrr iirc its just a number that does all that

#

but you could try postprocess

ocean gyro
#

yeah that's what I'm thinking

ebon pivot
#

fwiw I've tried doing ENVG stuff before and just came to the conclusion that it's not that doable at all in RV

#

then again people thought the same about a lot of what A3TI is doing so

carmine crypt
hearty sandal
#

I dont think anything has been omitted by purpose, just have not been added thats all

carmine crypt
#

cause vanilla doesnt seem to draw directly from these, but rather from cfgIdentities

lapis nacelle
#

Are you sure? It looks like the Vanilla Units have Generics Defined.
Unless I had a mod that gives them the property

carmine crypt
#

Im not sure anymore. it seems like hot mess alltogether, multiple stuff doing basically same thing but some mods like ace draws from genericNames somethings draw from identities, and some stuff comes from displayName/Short

#

Like in vanilla if you look at unit it seems to display displayName or displayNameShort

#

but then you load ace and what ive set to be called ASDF, becomes Leroy Jenkins and im wondering why

hearty sandal
#

all units have a name property always

#

when they are created the get a name randomized from the name pool defined for them

#

in cfgIdentities if I remember right

#

what game shows when you look at a unit might vary between vanilla and mods yea

lapis nacelle
#

CfgIdentities seems reserved for Specific Units from what I can understand, like Adams and Kerry

hearty sandal
#

but if vanilla shows "rifleman" then thats the type of the unit in config and thats what vanilla is made to show

#

but they do stiill have name property too

carmine crypt
#

If they join your squad then bottom bar seems to show either genericNames or Identities

#

i guess thats what you get from years of backwards compatibility.

hearty sandal
lapis nacelle
#

Without probing further into it myself it just seems like genericNames is for regular grunts and CfgIdentities is for Specific Units, Hero Units or Important Characters.

hearty sandal
carmine crypt
#

Identities also allow you to set the name but that seems to be overriden by genericNames...

#

and face for that matter. But as you can see there is specific faceType entry too...

hearty sandal
#

should be other way around since the generic names is inherited parameter

#

special characters set identity on init evenhandler

#

to force their name and look

carmine crypt
#

but you can also toss it into identityTypes

#

Anyways i got it to work, without any rpt errors. well except

21:48:15 No speaker given for '? ?'

#

but i can live with that. Tanks again tanking

finite surge
#

this flash mod im working on only plays 1 sound no matter where i throw the flash

#

don't know why tho

#

my config looks fine

pure bobcat
#

any idea if IR lasers in weapon attachments can have a changeable thickness and dot size like the colored ones? I know it was a limitation but not sure if anything changed in that manner

carmine crypt
pure bobcat
carmine crypt
#

Set beam thickness to 0

pure bobcat
#

I'll try again later, but iirc it didnt affect the IR lasers at all

carmine crypt
#

It has that isIr param check

hearty sandal
#

Or make it a tight spot ir only flashlight.

ebon pivot
#

That a base game thing now?

cold quartz
#

Anyone have a link to RHS config dumps?

pure bobcat
#

plus, I need it to work alongside the IR illuminator, and afaik I cant add two lights to one attachment combo BlobFearSweat

shy knot
cold quartz
#

So there are no RHS config available then? Surely a download link would be much faster than trying to figure out how to do all that, that been done to death just need a active link.

grand zinc
hearty sandal
cold quartz
#

Well shit...that sucks

hearty sandal
#

Have to understand that someone would have to do thta stuff regularly and it's not really fair to expect someone do it when you yourself are also reluctant to do it.

lapis nacelle
# grand zinc Which one do you mean? Do you mean the insert command being bugged and not accep...

Syntax 4 hashMap insert [splitArray, [keysAndValues]]
with splitArray being True, It actually should look like this hashMap insert [splitArray, [Key1, Key2], [Value1, Value2]]

It showing as [splitArray, [keysAndValues]] implies that Keys and Values should be Arrays within [keysAndValues], meaning insert is being given 2 elements.
TLDR
Wiki makes it look like
hashMap insert [splitArray, [[Key1, Key2], [Value1, Value2]]]
but it actually needs to be
hashMap insert [splitArray, [Key1, Key2], [Value1, Value2]]

Again this could be me just being stupid and misunderstanding it, But I do feel like anyone could make that mistake.

cold quartz
# hearty sandal Have to understand that someone would have to do thta stuff regularly and it's n...

100% true, my expectation was since vanilla, DLC and cDLC have been done and are freely available atm along with that post i linked were the major mods were also made available (links which are dead now). This had me conclude that finding and existing active link to those who have made a RHS config and posted it would be infinitely faster that spending the time figuring out how to make my own as i have not done it before nor even know where to start.

My assumption was that if it was available a few years ago it would still be available today, even if out dated, seems my assumption was incorrect...like i said, that sucks

grand zinc
cold quartz
jovial zephyr
#

I have been going through the config viewer and cannot find what line of script adds backpacks to units. I am putting together a factions mod.

Does anyone know what line of script does this?

jovial zephyr
#

Thanks a ton guys. Will investigate when I get back home

Edit: that worked thanks guys

fringe radish
#

I had to do it once for one of my mods, made the crew of my vehicle have no names, no voice for example:

class CfgWorlds {
    class GenericNames {
        class YourNewNameClass {
            class FirstNames {
                None = "";
            };
            class LastNames {
                None = "";
            };
        };
    };
};
class CfgIdentities {
    class YourNewIdentity {
        name = "";
        nameSound = "Ghost";
        face = "Default";
        pitch = 1.0;
        glasses = "None";
        speaker = "NoVoice";
    };
};
class CfgVehicles {
    class YourVehicle {
        genericNames = "YourNewNameClass";
        identityTypes[] = {"YourNewIdentity"};
    };
};
#

leaving this up here for posterity in case someone tries to do something similar at one point

carmine crypt
#

Also probs last place i would look in is cfgWorlds

fringe radish
finite surge
#
{
    class T_Bang_Config
    {
        units[] = {};
        weapons[] = {};
        magazines[] = {};
        requiredVersion = 2.10;
        requiredAddons[] = {};
        name = "T_Bang_Config";
        author = "Toka";
    };
};
class CfgSoundShaders
{
    class T_soundtweak_Flash_Close_Outdoor_SoundShader
    {
        range = 15;
        rangeCurve[] = {{0,1},{5,0.75},{15,0}};
        samples[] = {{"T_Bang_Sound\Sounds\grenade_flash_start_outdoor_close_1.ogg",1}};
        volume = volume="1 * (1 - interior)";
    };
    class T_soundtweak_Flash_Distant_Outdoor_SoundShader
    {
        range = 2200;
        rangeCurve[] = {{0,1},{100,1},{500,0},{2200,0}};
        samples[] = {{"T_Bang_Sound\Sounds\grenade_flash_start_outdoor_distant_1.ogg",1}};
        volume = volume="1 * (1 - interior)";
    };
    class T_soundtweak_Flash_Close_Indoor_SoundShader
    {
        samples[] = {{"T_Bang_Sound\Sounds\grenade_flash_start_indoor_close_1.ogg",1}};
        volume="1 * interior";
        range=50;
        rangeCurve[]=
        {
            {0,1},
            {25,0.69999999},
            {50,0}
        };
    };
    class T_soundtweak_Flash_Distant_Indoor_SoundShader
    {
        samples[] = {{"T_Bang_Sound\Sounds\grenade_flash_start_indoor_distant_1.ogg",1}};
        volume="1 * interior";
        range=250;
        rangeCurve[]=
        {
            {0,0},
            {25,0.5},
            {50,1},
            {250,0}
        };
    };
};
class CfgSoundSets
{
    class T_soundtweak_Flash_Exp_Outdoor_SoundSet
    {
        distanceFilter = "explosionDistanceFreqAttenuationFilter";
        doppler = 0;
        loop = 0;
        sound3DProcessingType = "ExplosionLight3DProcessingType";
        soundShaders[] = {"T_soundtweak_Flash_Distant_Outdoor_SoundShader","T_soundtweak_Flash_Close_Outdoor_SoundShader"};
        spatial = 1;
        volumeCurve = "InverseSquare2Curve";
        volumeFactor = 1;
    };
    class T_soundtweak_Flash_Tail_SoundSet
    {
        distanceFilter = "explosionTailDistanceFreqAttenuationFilter";
        doppler = 0;
        frequencyRandomizer = 0.05;
        loop = 0;
        sound3DProcessingType = "ExplosionLightTail3DProcessingType";
        soundShaders[] = {"GrenadeHe_tailForest_SoundShader","GrenadeHe_tailMeadows_SoundShader","GrenadeHe_tailHouses_SoundShader"};
        soundShadersLimit = 2;
        spatial = 1;
        volumeCurve = "InverseSquare2Curve";
        volumeFactor = 0.05;
    };
    class T_soundtweak_Flash_Exp_Indoor_SoundSet
    {
        soundShaders[]=
        {
            "T_soundtweak_Flash_Close_Indoor_SoundShader","T_soundtweak_Flash_Distant_Indoor_SoundShader"};
        volumeFactor=5;
        volumeCurve="InverseSquare2Curve";
        sound3DProcessingType="ExplosionLightTail3DProcessingType";
        distanceFilter="T_rifleShotDistanceFilter";
        occlusionFactor=0.15000001;
        obstructionFactor=0.15000001;
        spatial=1;
        doppler=0;
        loop=0;
    };
};
class cfgDistanceFilters
{
    class T_rifleShotDistanceFilter
    {
        type="lowPassFilter";
        minCutoffFrequency=250;
        qFactor=1.3;
        innerRange=150;
        range=1800;
        powerFactor=32;
    };
};``` Does this look right? When I test it out in game the only sound that plays is `grenade_flash_start_outdoor_distant_1.ogg` no matter where or how far I throw the flash.
carmine crypt
pure bobcat
carmine crypt
pure bobcat
#

Yeah, it's just gonna be complicated to handle

cloud perch
#

Is there a way to give a gunner/wso on a vehicle the same type of camera that would be given by class pilotCamera?

cloud perch
#

specifically one that can be stabilized with Ctrl+T and track vehicles

shy knot
cloud perch
shy knot
#

ARMA 3 has a copilot turret you can give to the gunner

#

Under class turrets

cloud perch
#

the vehicle i'm messing with (firewill F-16D) already has that, but the actual locking capabilities of the turret are janky

#

i can't toggle stabilization, or track a moving vehicle or anything

#

i'm seeing if i can change the turret that it's already got to the same type as the one the pilot has

shy knot
cloud perch
ashen chasm
#

except pilot can also have pilotCamera that doesn't behave like a turret iirc?

shy knot
cloud perch
zenith drift
#

Can anybody tell me why a weapon's muzzle still rises when it's recoil and recoilprone are zeroed out?

ashen chasm
#

the ones in the firemode or the recoil= property on the weapon itself?

zenith drift
#

in the firemode.

#

i presume the ones in the firemode totally override the ones in the weapon itself

#

presuming the firemode is used

ashen chasm
#

the one on the weapon is newer. And is supposedly independent

zenith drift
#

meaning both recoils happen at once??

ashen chasm
#

either that or only weapon's one is used. I'm not sure if the old recoil system is disabled or what

zenith drift
#

well, zeroing the ones in the fire mode did change the recoil... however the muzzle was still rising.

#

i guess i need to try zeroing both of them to figure out what's going on

ashen chasm
#

yaaay for two independent recoil systems working at the same time then

zenith drift
#

I wonder if this is why ai cannot control recoil when they're close to a player.

#

oh my god, I think it is. If a weapon has non-zero recoil in a fire mode used by the ai, the ai cannot compensate fore recoil when the ai is near a player.

ashen chasm
#

well, cpp class CfgRecoils { class recoil_mx { muzzleOuter[]={0.0,0,0.0,0.0}; muzzleInner[]={0,0,0.0,0.0}; kickBack[]={0.0,0.0}; permanent=0.0; temporary=0.0; }; recoil_single_mx[]={0,0,0}; recoil_single_prone_mx[]={0,0,0}; recoil_auto_mx[]={0,0,0}; recoil_auto_prone_mx[]={0,0,0}; };this is enough to make MX not move (but the screen shake is still there)

zenith drift
#

In the hands of the ai, there appears to be a bug related to a conflict between the weapon's base recoil, and the recoil defined in its fire modes. The result is the ai cannot correctly compensate for recoil when they are near a player, regardless what they're shooting at.

ashen chasm
#

yaaay for more stuff interacting in unintended ways

zenith drift
#

For example, LMG_03_F has different recoils defined in its fire modes and its base weapon

#

zeroing out the recoil in its fire modes causes the ai to behave correctly

#

correctly in this regard anyway πŸ™‚

#

Finally the machine gunners in my squad can fire accurately!

ashen chasm
#

recoils in firemodes and base weapon are different by definition. Because base weapon uses class that basically defines a bunch of boundaries for random kick/climb. And a firemode uses an old straight array of angles blobdoggoshruggoogly

zenith drift
#

well, apparently the thing to do is to zero the recoil for fire modes used by AI. THey still appear to have recoil, but they can now compensate for it correctly.

ashen chasm
#

and for the player it's enough to only zero out "new" class, it seems

zenith drift
#

Oh shit, I think I actually found the TRUE cause of the problem. The problem I think, isn't that there are recoils defined for the fire modes used by the ai. I think the real problem is that ALL of the old style recoils are configured incorrectly! The timings are all piled on top of each other, instead of measured from the start of the recoil.

#

Example:

recoil_auto_primary_10outof10[] = {0, 0, 0, 0.06, 0.036943, 0.014348, 0.06, 0.031817, 0.005004, 0.06, 0.019755, 0.003056, 0.06, 0.007388, 0.00114, 0.06, 0, 0};

Should actually be something more like this:

```recoil_auto_primary_10outof10[] = {0, 0, 0, 0.06, 0.036943, 0.014348, 0.12, 0.031817, 0.005004, 0.18, 0.019755, 0.003056, 0.24, 0.007388, 0.00114, 0.30, 0, 0};````

#

The *FIRST number in each triplet is the time component of the impulse

ashen chasm
#

i don't know, tbh

#

straight {0,0,0} doesn't prevent nearby AI from shooting skywards. And that same AI at some distance shoots the entire Zafir belt into a chest-height target

#

also "Recoil is defined as three numbers in a row indicating time taken,kick back,kick up."

zenith drift
#

Just as a test, what I did is for the fire modes the AI are using, I set their recoils to this: zero_recoil[] = {0,0,0,0.04,0.04,0.03, 0.08, 0, -0.03};
And as a consequence they are shooting accurately even when I am near them.

ashen chasm
zenith drift
#

Whereas before, they would shoot skyward as you say

#

I'm checking to see if the final correction down (-0.03) is actually necessary

ashen chasm
#

still skywards when overwriting recoil_auto_mk200/recoil_auto_prone_mk200 that Zafir uses with your values

zenith drift
#

Initially I was just zeroing it completely like this: zero_recoil[] = {0,0,0}; But I found that they didn't seem to animate a recoil in that case.

#

So I think the real problem is the time component of the recoil impulses is measured incorrectly

#

Meaning that whoever designed the original recoil configs was incorrectly measuring the time of impulse from the previous impulse, instead of from the beginning of the recoil

ashen chasm
#

yaaay, more config values that don't make sense

zenith drift
#

What is really strange is that the ai can compensate for recoil as long as they are more than 100 meters away from the player. I wonder if this is because the game just doesn't bother to animate recoil for units that far from the nearest player.

ashen chasm
#

inb4 it's intended mechanic for players to not instantly die in CQB

zenith drift
#

There's definitely a number of things that are not intentional here. But for it to go undetected for more than 10 years is alarming.

#

While I was working on this, I discovered another unintentional "feature". When the AI shoots a burst of auto fire, the timing between the first two shots is bugged. It is always much shorter than the timing between subsequent shots in the burst. Sometimes the time between the first two shots is actually zero!!!!

ashen chasm
#

the amount of shots AI uses with the same firemode changes when player is inside 100 meters notlikemeow

zenith drift
#

The rate of fire changes too

#

I think the number of shots it fires actually only APPEARS to change because of my previous point, the timing is bugged. sometimes two shots fire very close to each other, even sometimes with zero time between shots.

#

I have a feedback report if you want to add your input to it. The more people who draw attention to this, maybe they'll actually do something to fix it.

#

This is the recoil I'm just going to go ahead and use for AI machine gun fire modes:

zero_recoil[] = {0,0,0,0.04,0.04,0.03, 0.08, 0, -0.028};

the -0.028 at the end brings the muzzle back toward target, to make it easier for the ai.

zenith drift
#

Does anybody know what the "value" parameter is in cfgweapons?

winter void
#

Hello I want to change the Galat to use the Mk14 magazimes and be able to fire in single mode, the questiong here is where do I start, and what tools I need?

hearty sandal
#

Well it may be the magazine does not fit it very well, but you can try it out by adding it into the magazine well config of the galat

winter void
#

Ok so will be adding just the mag classname? To the config?

hearty sandal
#

Thta I think should make it compatible

winter void
#

Got it i'll try it thank you

novel lava
cloud perch
#

anyone able to provide some insight as to why this code is adding an uncontrollable targeting pod that's in the cockpit as opposed to it's expected result of putting one on the bottom of the plane that's controllable?

        {
            class OpticsIn                
            {          
                    class Wide
                    {
                        opticsDisplayName = "W";
                        initAngleX = 0;
                        minAngleX = -360;
                        maxAngleX = 360;
                        initAngleY = 0;
                        minAngleY = -350;
                        maxAngleY = 350;
                        initFov = "(60 / 120)";
                        minFov = "(60 / 120)";
                        maxFov = "(60 / 120)";
                        directionStabilized = 1;
                        visionMode[] = {"Normal","NVG","Ti"};
                        thermalMode[] = {0,1};
                        gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
                    };
                    class Medium: Wide
                    {
                        opticsDisplayName = "M";
                        initFov = "(12 / 120)";
                        minFov = "(12 / 120)";
                        maxFov = "(12 / 120)";
                        gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d";
                    };
                    class Narrow: Wide
                    {
                        opticsDisplayName = "N";
                        initFov = "(4 / 120)";
                        minFov = "(4 / 120)";
                        maxFov = "(4 / 120)";
                        gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
                    };
                    class VeryNarrow: Wide
                    {
                        opticsDisplayName = "NFOV";
                        initFov = "(2 / 120)";
                        minFov = "(2 / 120)";
                        maxFov = "(2 / 120)";
                        gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
                    };
                    class HyperNarrow: Wide
                    {
                        opticsDisplayName = "HNFOV";
                        initFov = "(.25 / 120)";
                        minFov = "(.25 / 120)";
                        maxFov = "(.25 / 120)";
                        gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
                    };
                showMiniMapInOptics                             = true;
                showUAVViewpInOptics                    = false;   
                showSlingLoadManagerInOptics    = false;   
            };
            minTurn                 = -360;        
            maxTurn                 = 360;       
            initTurn                = 0;               
            minElev                 = -90;          
            maxElev                 = 90;        
            initElev                = 0;             
            maxXRotSpeed            = 1;           
            maxYRotSpeed            = 1;          
            pilotOpticsShowCursor   = 1;          
            controllable            = true;   
        };
#

this is the view i get when i control+right click to go into the camera, i can't do anything with it, except zoom

nimble sequoia
# cloud perch anyone able to provide some insight as to why this code is adding an uncontrolla...

Try this:

{
    class OpticsIn
    {
        class Wide
        {
            opticsDisplayName = "W";
            initAngleX = 0;
            minAngleX = 0;
            maxAngleX = 0;
            initAngleY = 0;
            minAngleY = 0;
            maxAngleY = 0;
            initFov = 0.5;
            minFov = 0.5;
            maxFov = 0.5;
            directionStabilized = 1;
            visionMode[] = {"Normal","NVG","Ti"};
            thermalMode[] = {0,1};
            gunnerOpticsModel = "A3\drones_f\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
        };
        // other modes
    };
    minTurn = -180;
    maxTurn = 180;
    initTurn = 0;
    minElev = -90;
    maxElev = 90;
    initElev = 0;
    maxXRotSpeed = 1;
    maxYRotSpeed = 1;
    maxMouseXRotSpeed = 0.5;
    maxMouseYRotSpeed = 0.5;
    pilotOpticsShowCursor = 1;
    controllable = 1;
};```
ashen chasm
#

memoryPointDriverOptics="PilotCamera_pos"; in the plane config itself seems related as well

cloud perch
#

hrmmm, alright, i'm just trying to make a quick and dirty patch to add the pod so it's very likely that hasn't been defined

#

but let me try the previous code real quick

cloud perch
cloud perch
ashen chasm
#

the mempoints are generally defined in the model

nimble sequoia
#

Yes of course the memory point referenced in memoryPointDriverOptics must be in the Memory LOD of the model.

cloud perch
#

hrmmm, that's unfortunate

ashen chasm
#

misconfiguring memoryPointDriverOptics on the vanilla A-164 made it look like the screenshot of yours. Maybe try to find some pre-existing mempoint located roughly where you want that. Maybe some wheels are marked or something

cloud perch
#

alright, i'll look into the config and see what i can find

ashen chasm
#

cursorObject selectionNames "Memory" in the debug console when looking onto the vehicle in question should give you the list

cloud perch
#

alright, well i'll try the point "exhaust1", where would i need to put that in the PilotCamera class?

#

it doesn't seem to have a place to put it in there by default

nimble sequoia
#

memoryPointDriverOptics = "exhaust1"; in the main config.cpp

cloud perch
#

alright, let's give that a whirl

#

hopefully it works

#

alright, it's working now, do you happen to know if there's a way to manually offset the position?

#

as in, now that it's at the memorypoint, can i manually move it left without having access to the original model?

nimble sequoia
#

I don't think so.

cloud perch
#

damn

#

it's something though, so i can probably hack something that works together

hearty sandal
#

adding nonexisting elements to vehicles is always a bit of a hit and miss. Many things cant be done fully when they lack the necessary parts in model.

cloud perch
#

yeah i figured

hearty sandal
#

would have been pretty sweet if such points could be replaced with generated point but its not always quite that simple since most of the time those points would also need to be part of some animations to move right

cloud perch
#

well, it's not like i need an actual model that moves and all that, all i need is the location of the camera to be on the bottom of the fuselage

#

unfortunately there aren't any memory points in central positions, and they're kinda obscured

shy knot
#

@cloud perch You can define the pilot camera points with cameraPos and cameraDir

cloud perch
shy knot
#
class PilotCamera
        {
            class OpticsIn
            {
                class Wide
                {
                    camDir = "gunner1";
                    camPos = "gunnerview";
                    opticsDisplayName = "W";
                    initAngleX = 0;
                    minAngleX = 0;
                    maxAngleX = "+0";
                    initAngleY = 0;
                    minAngleY = 0;
                    maxAngleY = "+0";
                    initFov = 0.5;
                    minFov = 0.5;
                    maxFov = 0.5;
                    visionMode[] = { NML, NVG, TI };
                    thermalMode[] = { 0,1 };
                    gunnerOpticsModel = "A3\drones_f\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
                };
                class Medium: Wide
                {
                    opticsDisplayName="MFOV";
                    initFov="(14.4 / 120)";
                    minFov="(14.4 / 120)";
                    maxFov="(14.4 / 120)";
                    gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d";
                };
                class Narrow: Wide
                {
                    opticsDisplayName="NFOV";
                    initFov="(4.8 / 120)";
                    minFov="(4.8 / 120)";
                    maxFov="(4.8 / 120)";
                    gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
                };
                showMiniMapInOptics = 0;
                showUAVViewpInOptics = 0;
                showSlingLoadManagerInOptics = 1;
            };
            minTurn = 0;
            maxTurn = 360;
            initTurn = 0;
            minElev = -80;
            maxElev = 80;
            initElev = 0;
            maxXRotSpeed = 0.5;
            maxYRotSpeed = 0.5;
            pilotOpticsShowCursor = 1;
            controllable = 1;
        };```
#

@cloud perch this’ll give you a working pilot camera

#

Edit as needed

cloud perch
#

alright, let me give that a whirl

shy knot
#

Be sure to change Camdir and Campos with memory points that exist on your model

cloud perch
#

alright, but even with that, there's no way to actually move the position away from the preset memory point? because there's no specific memory point in the location i want it

shy knot
cloud perch
#

i've done that, and the camera is in that position, the problem is that pretty much all the positions have their view heavily obscured

#

like, i can control the camera and zoom and such, but i can't actually see all that much because the model's in the way

molten musk
#

Hello
Way to get name of attributes changed?
Currenlty have
Object Specifics - Object <name of object>
Current config is just copied from Eden attributes example and there wasn't value to change name of attribute category name

#

Like ACE have,
Object: ACE Arsenal

lapis nacelle
molten musk
# lapis nacelle If you mean the one from <https://community.bistudio.com/wiki/Eden_Editor:_Confi...

Yeah, sorry.
I'm doing to specific object. Not for all. Sorry i didn't mentaioned that.
and in wiki its declared
`Entity Specific
Some entities can also have attributes available only for them. This is most commonly used by systems - for example Air Strike module can have attribute for picking attack type and plane used, both of which would be unusable by other modules.

Entity specific attributes are configured directly in the entity class. For user, they are visible in single category which also shows entity name.
`
So it shown on specifics and object name. So i think i cannot change that

lapis nacelle
#

Oh I see, I am following what you mean now, My apologies

#

Judging by how the Menu is laid out I think what you can change about the name might be minimal at best.
I don't believe you can change it At all, they look predefined based on the Cfg they Belong to with the Class name of the Object being Appended to the end.

molten musk
#

Yeah, seems so. Thanks for help anyway

viral rover
#

Is it possible to lower vehicle armor through configs alone or is it tied to p3d?

hearty sandal
viral rover
#

For example the y32 tanks 4-5 rockets depending on where it is hit.

hearty sandal
#

theres couple of things to consider.

#

model/p3d contains the shape and material of hit geometries so what parts are what material (armor, glass, wood etc) and how thich those parts are and then where hitpoints/hit geometries are (usually beneath the armor)
This affects calculations if a shot penetrates armor to begin with

#

then in config you have the setup for different hitpoints and how much "armor" = health they have (and how much overall HP the vehicle has)

#

and the hitpoint configs can also alter what kind of damage resistance those different parts have

#

in addition there can be setup for different ammo types to be better/worse against the vehicles armor parts

#

so in short yes you can likely affect how easy something is to destroy but it may be a bit more complicated than just flipping couple of values

#

Also some weapons may be set up to be rather underpowered

#

and some mods can also affect weapon performance

zenith drift
#

I'm trying to scale invisible targets down to a smaller size. Is there any straightforward way of doing that in configs?

zenith drift
#

Also, is a target's model the only thing that controls whether ai fire anti-tank weapons at it?

hearty sandal
#

there is a point in the model that can be used to affect a bit what AI tries to look at

#

typically its in the middle of the model (which is why AI might not see a tank behind a low wall though its turret is over it)

zenith drift
#

How difficult is it to make a new invisible target model? Also, can they be made arbitrarily small and still allow ai to detect and engage them naturally? For example, can I have a "vehicle" target that's 1 inch in size?

#

The problem being that bullets collide with the invisible target vehicle models that exist in cba already

toxic solar
#

if I add the necessary memory points, can launchers support bipoding?

hearty sandal
#

dont think they can

#

it could be worth to try

#

but I have a feeling that no

toxic solar
#

I shall try

#

once I get a rocket πŸ™‚

#

else I could just make it a primary and just the dual primary mod lol

dry mantle
#

Whats the basics of configuring a miscellaneous item? like something that could be picked up? I want to make an item that can fit a backpack but has no specific function or anything of that sort.

#

and on that note, was is the basics of configuring explosive charges?

undone patio
# ebon pivot Inherit the class with ```cpp class myclass: baseclass { //change shit here };``...

So can you verify I'm understanding, the following code would produce a squad leader loadout that is the same as the rifleman's except for the uniform and backpack, and with slightly different items?

class rifleman 
{    displayName = "Rifleman";
    role = "Rifle"; 
    icon = "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa";
    uniformClass = "U_I_C_Soldier_Para_2_F";
    backpack = "B_AssaultPack_blk";
    weapons[] = {"arifle_MX_Black_F", "hgun_ACPC2_F", "Binocular", "Throw", "Put"};
    magazines[] = {"9Rnd_45ACP_Mag","30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag"};
    items[] = { "ACE_elasticBandage", "ACE_CableTie", "ACE_DefusalKit"};
    linkedItems[] = {"V_vest_new", "ItemMap", "ItemCompass", "ItemRadio", "ItemGPS", "ACE_NVG_Gen2_Black", "optic_mrco"};};

class team_lead: rifleman {
    displayName = "Team Leader"; // Name of the respawn inventory
    role = "TL"; // Role the respawn inventory is assigned to
    icon = "\A3\ui_f\data\map\VehicleIcons\iconManLeader_ca.paa"; 
    uniformClass = "U_BG_Guerrilla_6_1";
    backpack = "B_RadioBag_01_black_F";
    items[] = { "ACE_elasticBandage", "ACE_CableTie", "ACE_personalAidKit"};
};```
undone patio
cloud saddle
#

You can do that with macros

#
#define MAGS_PLUS "mag1", "mag2", "mag3"
magazines[] = {MAGS_PLUS, "mag4", "mag5"};
cloud saddle
undone patio
#

right

#

I want them to have nearly the same kit

#

especially when it comes to magazines

#

Is the syntax I have on it right?

#

this is just so if I decide to buff the number of base mags, for instance, I can just edit that Once

cloud saddle
#

I'd use the macro thing i wrote out for that.

undone patio
#

instead of once per loadout

#

ok cool

#

thank you

#

If I was going to move cfgrespawninventories to its own file, and then call it from description.ext, how should I do that

cloud saddle
#

create a file named CfgRespawnInventories.hpp

inside Description.ext

#include "CfgRespawnInventories.hpp"

undone patio
#

ok cool

#

and that #define isn't supposed to have {} or [] or anything?

cloud saddle
#

That's up to you

#
#define MAGS_PLUS "mag1", "mag2", "mag3"

#define MAG_ARRAY magazines[] = {"mag1", "mag2", "mag3"}
undone patio
#

ok

cloud saddle
#

It can be whatever you want it to be

undone patio
#

thanks, you're a huge help

undone patio
wintry tartan
#

Pretty much

undone patio
#

ok cool

#

is that the right syntax to do so

wintry tartan
#

I think #DEFINE is invalid IIRC tho

cloud saddle
#

I'd use this to learn good practice on it, for example:

#define BASE_ITEMS "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"
#define SQL_ATTACHMENTS "optic_hamr", "acc_pointer_IR"

etc.

#

And typically only macro the common things you use everywhere

undone patio
#

I'm almost sure it is at this point, but
#include "fw/CfgFunctions.hpp" #include "fw/CfgRoles.hpp" #include "fw/CfgRespawnInventories.hpp"
is viable, right?

cloud saddle
#

if fw is a folder, yup.

undone patio
#

yeah for "framework"

#

ok thanks

cloud saddle
#

Np

undone patio
#

Does the macro title need to be in caps?

wintry tartan
#

Preferred. But not mandatory

undone patio
#

if I'm going array[] = { MACRO1 MACRO2 }
do I need a comma there, like MACRO1, MACRO2

cloud saddle
#

Yes

undone patio
#

so it's just letter for letter pasting it

#

ok

#

I understand a little better now.

cloud saddle
#

yeah

#

But don't leave trailing commas in any macros

undone patio
#

right

#

here's a question

wintry tartan
#

Actually depends, you can have a comma in a macro so

#

But it is wise to put not in a macro and put one when you use them

undone patio
#

for linkeditems[]
if the macro has ItemWatch
and I go
linkeditems[] = {ChemicalDetector + BASE_ITEMS} (detector occupies watch slot)

#

will the detector be slotted in instead

#

and the watch goes in the inventory

cloud saddle
#

Unsure of the order, but + won't do anything

undone patio
#

right i mean

#

Chem, BASE_ITEMS

cloud saddle
#

Try it

undone patio
#

yeah I'll have to experiment

#

thanks

cloud saddle
#

Whichever is added last will probably overwrite

wintry tartan
#

Think that #define and its use is simple and dumb copy and paste-r, it does nothing more or less

#

Which I mean - even if the code/config has a macro, none of rules are changed

ebon pivot
velvet current
#

How do I add RPG-7 ammo to backpack in existing unit config?

ashen chasm
#

by defining a new backpack that contains RPG-7 ammo and redefining a backpack property of a unit. Or by adding an "Init" EH into config

velvet current
ashen chasm
#

include whatever hpp defines mag_xx(...) macro blobdoggoshruggoogly

ashen chasm
#
        class B_AssaultPack_rgr_Medic: B_AssaultPack_rgr
        {
            author = "Bohemia Interactive";
            _generalMacro = "B_AssaultPack_rgr_Medic";
            scope = 1;
            class TransportItems
            {
                class _xx_Medikit
                {
                    name = "Medikit";
                    count = 1;
                };
                class _xx_FirstAidKit
                {
                    name = "FirstAidKit";
                    count = 10;
                };
            };
        };```an example of properly formatted backpack config
velvet current
ashen chasm
lapis nacelle
#

If I'm reading that right It doesn't know the macro

ashen chasm
#

just define the class properly. Like vanilla game does blobdoggoshruggoogly

velvet current
#

class rhs_rpg_new : rhs_rpg_empty
{
scope = 1;
_generalMacro = rhs_rpg_new;
class TransportItems {
mag_xx(rhs_rpg7_PG7VL_mag, 2);
};
};

#

like this?

lapis nacelle
#

Something like so unless I am mistaken

class rhs_rpg_new : rhs_rpg_empty
{
    scope = 1; 
    class TransportItems
    {
        class _xx_PG7VL
        {
            magazine = "rhs_rpg7_PG7VL_mag";
            count = 2;
        };
    };
};

yes I know the tabs aren't lining up, discord broke it Fixed it

#

the mag_xx(Thing,Number) is a Macro which is why it's complaining
Since that Macro basically would just do the same thing, I use them myself, but you don't have it defined anywhere hence the complaining.

velvet current
#

yeah now it works, thanks

lapis nacelle
#

Just double check because the name may need to be magazine, I just double checked my own configs

velvet current
#

And also I'd like to know how do I attach scope to a gun in config

lapis nacelle
#

You have to effectively Duplicate the weapon

velvet current
lapis nacelle
#

Here is an Example of me using a Tier 1 Weapon to put on my Custom Units

class Tier1_M249_light_S_Desert;
class FF_Desert_Autorifle1 : Tier1_M249_light_S_Desert {
    scope = 2;
    class LinkedItems {
        class LinkedItemsOptic {
            slot = "CowsSlot";
            item = "Tier1_EXPS3_0_3xMag_Riser_Desert_Up";
        };
        class LinkedItemsAcc {
            slot = "PointerSlot";
            item = "Tier1_M249_LA5_M600V";
        };
        class LinkedItemsUnder {
            slot = "UnderBarrelSlot";
            item = "Tier1_SAW_Bipod_DD_Desert";
        };
        class LinkedItemsMuzzle {
            slot = "MuzzleSlot";
            item = "Tier1_SRD762_Black";
        };
    };
};

Edit: just added the Muzzle to the end for Example purposes

velvet current
#

strange, I defined scope = 1 but there is my new RPG bag
(upper one is rhs_rpg_new which is shouldn't be in arsenal)

lapis nacelle
#

use scopeArsenal

hearty sandal
#

scopeArsenal may need to be set too

velvet current
#

oh K

narrow swallow
feral arch
#

Is there any easy way of finding CfgTurrets classes? Currently trying to make a faction mode but I'm unable to define the gunnerType of the Commander's seat in multiple vehicles due to not knowing the class name of that seat. It's cdlc as well so I'm unable to look any further than the config viewer but that doesn't seem to show the class names anywhere

hearty sandal
#

or there is command to write all loaded configs into a single file which can be quite handy to search through

viral dragon
#

I am trying to config custom factions, which I have not done before.
I want to make a new vehicle class, which is identical to the vanilla class it inherits from except for changing a couple of properties in subclasses.
I have units and weapons that inherit working fine. But when I try to do something inside a subclass, everything goes to hell. Even though I'm inheriting every step of the way, every property that I'm not explicitly defining is being skipped. My understanding of inheritance is that it's supposed to bring things forward automatically so that I don't have to explicitly define every single property when I only want to change one thing, but...

Instances where I am having problems with this:
Static HMG assembleInfo and animationSources > https://github.com/NikkoJT/DuctTapeFactions/blob/main/DuctTapeFactionsCW/genericCfgVehicles.cpp
APC turrets > https://github.com/NikkoJT/DuctTapeFactions/blob/main/DuctTapeFactionsCW/sweden/swedenCfgVehicles.cpp
Note that cfgPatches is taken care of in config.cpp and lists all relevant patches.

I have been going around in circles on this for some time and would now love to hear a clear explanation of what's going wrong.

viral dragon
#

I see it but I don't understand it.
It declares externalBaseClass and then never references it.
It references externalChildClass which is not declared. I've been through that in earlier iterations and trying to do that causes errors.

narrow swallow
#

For example how to get to initPhase

class HMG_02_base_F; // want to use this
class B_HMG_02_F : HMG_02_base_F // using it
{
    class animationSources; // want to use this
};

class njt_dtfcw_hmg_02_f_base : B_HMG_02_F
{
    class animationSources: animationSources // using it
    {
        class hide_rail; // want to use this
        class hide_shield; // want to use this
    };
};

class njt_dtfcw_hmg_02_bare : njt_dtfcw_hmg_02_f_base
{
    class animationSources : animationSources // using it
    {
        class hide_rail : hide_rail // using it
        {
            initPhase = 1;
        };
        class hide_shield : hide_shield // using it
        {
            initPhase = 1;
        };
    };    
};
viral dragon
#

Okay, that's working now, thanks. I'm not sure I follow why it works but it's a start.
Now to try and untangle the APC turrets :|

toxic solar
#

I am getting the following error

Error compiling 'HitPelvis max HitAbdomen max HitDiaphragm max HitChest' in 'hitbody'
how can I find out what class its erroring on? none of the uniforms or vest change the depends field in hitpoints class

novel lava
#

are you changing the order? it seems for depends the order of the classes matters

#

like if you have hitPelvis etc after hitbody you'd get that error

toxic solar
#

On my phone right now so like

Class hithead:hithead {}
Class hitpelvis:hitpelvis {armor = 5;}
viral dragon
# viral dragon Okay, that's working now, thanks. I'm not sure I follow _why_ it works but it's ...

Part II:
I've resolved the inheritance problems (....apparently), but the thing I was actually trying to do with the APC turret configs does not seem to be working.
I am attempting to add the thermalResolution property. It is appearing in the final config, but not having any actual effect on the vehicle. Unfortunately, documentation on this property is pretty slim, so I'm kind of guessing about where is the right place to put it, and I have no idea why it would not be working.
https://github.com/NikkoJT/DuctTapeFactions/blob/main/DuctTapeFactionsCW/sweden/swedenCfgVehicles.cpp#L83

ashen chasm
# toxic solar On my phone right now so like ``` Class hithead:hithead {} Class hitpelvis:hitpe...
    class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F
    {
        author="$STR_A3_Bohemia_Interactive";
        _generalMacro="B_APC_Wheeled_01_base_F";
        side=1;
        faction="BLU_F";
        crew="B_crew_F";
        typicalCargo[]=
        {
            "B_soldier_F"
        };
    };``` this seems to be the entirety of `B_APC_Wheeled_01_base_F` class. It doesn't contain its own "Turrets" subclass. So it can't be a parent class for anything
oof, sorry, wrong ping
viral dragon
#

Well, the turrets class is coming from APC_Wheeled_01_base_F (no B_), the level above.
And the turrets are working normally without errors.

ashen chasm
#

blobdoggoshruggoogly in all of my testing using non-existing classes in the inheritance chain never ended up well

viral dragon
#

Yes, usually it causes a massive error that says "non-existent base class" and stops the game from launching. That's why I'm trying not to do it.

#

I did check against vanilla, and the turrets have all the inherited config properties they're supposed to have.

ashen chasm
viral dragon
#

The game appears to be following up the rest of the chain on its own. I see RCWSOptics as the root parent of my vehicle's zoom levels even though I never explicitly declare it myself. And all the inherited properties are there. And, again, the turret works exactly like its vanilla counterpart.

ashen chasm
#

then yeah, disregard me tanking

feral arch
#

So I'm having some trouble retexturing a vehicle currently, I've got multiple vehicles done already however with the latest one it simply gives me an error saying it can't load the texture. I've attached the relevant parts of the config to see if there's anything obvious that can be pointed out

feral arch
#

this is the error I get

ebon pivot
#

bad path

rancid lotus
#

Got a weird error

#

...circa Line 36 #define altered without an #undef

#


    #ifndef TEX
        #define TEX(A) JOIN2(PATH,ELEMENT##A##.paa)
    #endif


    //1: Vest

        #ifndef TEX1 

            //#if __has_include(TEX(Vest))
            #if __has_include("\41st_ODST_MFR_Declassified_Assets\41Core\Armor\Away\41Vest.paa")

                #define TEX1 TEX(Vest)
                
            #else
                #define TEX1 "41st_ODST_MFR_Declassified_Assets\41Core\Armor\Away\41Vest.paa"
            #endif
        #else
        #endif
#

TEX1 is previously defined earlier

#

Any help...?

#

😒

rancid lotus
#

Does __has_include work with macros?

rancid lotus
#

I wish it worked with macros :(

#

It should work with macros >:(

shy knot
#

Is it possible to make the vehicle have to open something through model.cfg before firing?

#

Say, open doors for the missile to be fired

#

Something like this?

#

Or would it need to be script based

undone patio
#

`hmm

#

for some reason this one class in cfgRespawnInventory isn't understanding its base class

#

even though all the others are

hearty sandal
#

and ammo count can be used to hide/open missile tube covers for example

#

cant make delayed launch very easily though

undone patio
#

So a full 4 other classes inherit from Rifleman's loadout

#

but ONLY this last one is complaining

hearty sandal
#

perhpas typo/missing { } ; somewhere

undone patio
#

oh damnit

#

that was it

hearty sandal
hearty sandal
#

πŸ‘€

undone patio
#

Well, I thought that was it

#

but I keep going over the classes and I don't see any ; missing

ashen chasm
#

except the bit where you're missing all of ; on the second-level classes blobdoggoshruggoogly

#

and on the first-level one as well

undone patio
#

yeah I'm just learning this lesson in scripting

#

in most langauages } is implicitly ;

#

I gotta go add those

undone patio
#

All right

#

having done that

#

and carefully looked at basically every occurence of the character }

#

I still don't see what's wrong.

#

unless it is caching shit

#

ok, it's responsive to changes so it's not caching that file

#

It really must be just RIGHT in front of my face, huh

ashen chasm
#

class alex , linkedItems is used instead of correct linkedItems[] blobdoggoshruggoogly

#

error messages aren't always the most useful blobdoggoshruggoogly

undone patio
#

oof

#

okay

#

that explains it

#

goddamnit

viral dragon
grand zinc
grand zinc
grand zinc
# rancid lotus Any help...?

I don't understand why.
My guess is, the ifndef still processes the things inside it, but just ignores their output to skip over them, maybe that still finds the #define TEX1 and throws the error wronlgy, even though it ignores it (or.. should)

rancid lotus
#

Thanks for the reply!

tulip glade
#

Forgive me if this question already has some authoritative reference somewhere but does anyone know the specifics behind the game engine's implementation of the CfgWeapon's dispersion parameter?

I'm interested in the mathematical/statistical implementation of it (i.e. what the parameter represents [e.g. a standard deviation, variance, CEF, maximum value to a uniform distriubution, etc]). I'm looking to be able to mathematically model (to some extent) game ballistics outside of the game.

I have already made a forum post here with more details here:
https://forums.bohemia.net/forums/topic/242234-game-engine-weapon-dispersion-math/

where a response suggested that I posted the question here and perhaps ping @grand zinc

grand zinc
#

max value for uniform distrib I think

#

though not sure if our rng is uniform really

tulip glade
#

So essentially a uniform dist from [0, dispersion] representing an angle that's randomly added to the muzzle vector?

grand zinc
#

yes

#

The rng is probably called twice for X and Y axis

#

I can check on monday if you remind me then

tulip glade
#

Sure thanks. I made the post merely because I have already done some statistical tests and most were too noisy (probably due to game engine frame rate variability) to give me a definitive answer (and my own models were not accurately matching in-game behaviour)

carmine crypt
#

I face a predicament, i have this (among other things) in the CfgVehicles for my unit

model = "\A3\Characters_F_Bootcamp\Common\VR_Soldier_F.p3d";
modelSides[] = {3, 2, 1, 0};
nakedUniform = "U_O_Soldier_VR";
hiddenSelections[] = {"Camo_arm_left","Camo_arm_right","Camo_body","Camo_head","Camo_leg_left","Camo_leg_right"};
hiddenSelectionsMaterials[] = {"\MST\data\transparent.rvmat","\MST\data\transparent.rvmat","\MST\data\transparent.rvmat","\MST\data\transparent.rvmat","\MST\data\transparent.rvmat","\MST\data\transparent.rvmat"};
hiddenSelectionsTextures[] = {"#(argb,8,8,3)color(0,0,0,0,ca)","#(argb,8,8,3)color(0,0,0,0,ca)","#(argb,8,8,3)color(0,0,0,0,ca)","#(argb,8,8,3)color(0,0,0,0,ca)","#(argb,8,8,3)color(0,0,0,0,ca)","#(argb,8,8,3)color(0,0,0,0,ca)"};
shadow = 0;
``` inherited from class `O_Soldier_F`
Which makes unit invisible, but unlike with `hideObject`, still allows AI to see it and fire upon it. And that works as advertised.

However, predicament begins if someone JIPs while unit has already been spawn.
hiddenSelectionsMaterials is not applied, and shadow is visible 😐 (naked uniform is visible, to be specific)
Am i doing something wrong here, or is there another solution for such shenanigans?
hearty sandal
#

Modified BIS object?

#

So it's not a custom object, you just set up turret in config?

#

Have you opened up vanilla p3ds?

#

This is a bannable offence.

#

What you are doing is strictly forbidden.

open kite
#

ok, then I restart with arma3 samples

hearty sandal
#

You have been member of this discord for some years now, this should not come as a surprise

open kite
#

btw, is there any possible cause of the issue I talked, https://forums.bohemia.net/forums/topic/210813-sensor-display-heading-to-the-backward/ this one?
Of course I'm gonna delete the model I used in the 1st post and restart from scratch, but I think I may catch the same problem (inverted sensor) again.

hearty sandal
#

I'm not really inclined to offer any help at this time.

open kite
#

ok, no problem

dry mantle
#

I'm making some sci-fi ships and I want them to be compatible with the nato turrets to snap on just like they to for the nato ship in vanilla arma

hearty sandal
#

pls no ping on every question. I usually read the channel pretty often. that kind of proxy making is not possible though, you would have to look into how the vanilla ship configs make the connections

#

probably through memorypoints

dry mantle
#

Gotcha thanks chief

dry mantle
#

I got a question about p3d geo lod limitations

i've heard that you can't make a geometry lod larger than 50x50x50m. Is that because there is a box around the model space which cuts off 50m in all directions from the center....

OR

is that a limitation on an individual basis per geo lod component?

hearty sandal
ebon pivot
#

is there any way to get a smoke grenade to make its smoke come out quicker in either ammo/magazines config or is it tied to the particle effect?

hearty sandal
#

tied to particle effect

ebon pivot
#

rip

#

thanks anyways

opal crater
#

if you can edit ammo config you can also make your own particle effects class.

ebon pivot
#

i do not know how to and cannot figure it out from the config that easily

opal crater
#

configFile >> "CfgAmmo" >> "SmokeShell"
effectsSmoke = "SmokeShellWhiteEffect";
=>
configFile >> "SmokeShellWhiteEffect" >> "SmokeShell"
type = "SmokeShellWhite";
=>
configFile >> "CfgCloudlets" >> "SmokeShellWhite"
size[] = {0.1,2,6};

#

smoke come out quicker
idk what do you mean by that.

#

So it's bigger faster?

ebon pivot
#

like erm
more arcade-y similar to csgo

opal crater
#

size[] = {6};

ebon pivot
#

guh

opal crater
#

the size array is basically an interpolation array.

ebon pivot
#

oh right

opal crater
#

So during the lifetime of the particle it goes from min to max value in the array.

ebon pivot
#

so 2 is basically just weighting it to the lower end?

#

i.e making it spend more time nearer to min value

opal crater
#

I guess.

ebon pivot
#

so i could shift that to like 5 for example and still make it look like its growing just quicker

opal crater
#

yes

ebon pivot
#

i shall give it a try and see how it looks

#

thanks

opal crater
#

this one is something between Splendid Smoke and vanilla, optimized for performance.

ebon pivot
#

never used splendid smoke myself but i shall tinker around with size bits thanks

#

yeah, size[] = {0.1,5,6}; works surprisingly well tbh

#

thanks vet

opal crater
#

yw

frail orbit
ebon pivot
#

is it possible to use preprocessor commands to do unit conversions in config? from what im reading on the wiki i dont think so but im also not the brightest of fellows

#

(i.e just a multiplication/division)

carmine crypt
#

Perhaps __EVAL?

ebon pivot
#

still have to write it all out at which point would be easier to just... put it in google

#

want to just be able to do kmh(123) and it'll convert 123kmh to ms

opal crater
#

make ma macro?

#

expressions in strings are evaluated if engine needs a number.

#

So you can just put simple sqf in here.

ebon pivot
#

oh thats amazing

opal crater
#

Applies to getNumber too

ebon pivot
#

so i can just erm

#define kmh(number) number*whateverthemultiplieris```?
opal crater
#

Bear in mind a lot of the configs are cached so it is calculated only once, so don't get too crazy with that.

opal crater
#

All UI stuff works like this basically.

ebon pivot
#

yeah it's just because im using wiki data for a lot of properties that i cant be bothered converting every time im already 30 seconds from burning out

#

oh nice

opal crater
#

safeZoneX + 123 it gets autoquoted to "safeZoneX + 123", when engine needs the number it's evaled.

ebon pivot
#

oh right so it's not done at the time the config is put into an addon or w/e?

opal crater
#

no

#

You can't know size of the user screen during addon packing πŸ˜…

ebon pivot
#

that's true

ebon pivot
#

i'll probably have to skip this then as it looks up very often and would rather save the small amount of performance πŸ˜…

opal crater
#

a lot of configs are cached so it will evaluate it only once.

#

unless it's stuff like mission configs etc.

ebon pivot
#

oh right i understand now

#

pea brain has been overworking himself

opal crater
#

I recall Brett was thinking about making HEMTT calculate simple maths during preprocessing too.

ebon pivot
#

i still use bi tools addon builder πŸ˜…

#

im a one man team so no github or anything so setting up hemtt is more trouble than it's worth for me

opal crater
#

it's literally 5 mins

#

It's quite likely you lost more time due to packing some broken shit that addon builder allows for.

ebon pivot
#

never had those issues with addon builder tbh

#

i dont have a p drive i build from folders in my documents

#

no model stuff either

hearty sandal
#

Addon builder won't tell you if you pack something faulty. πŸ˜…

frail orbit
#

On this page written that players can control UAV simultaneously.
https://community.bistudio.com/wiki/UAVControl
[player1, "DRIVER", player2, "GUNNER"] - player1 is controlling the UAV and is the pilot, player2 is controlling UAV and is the gunner
Can anyone provide an example of a UAV configuration with such capabilities?

tulip glade
grand zinc
tulip glade
#

What exactly does random correspond to here? The SQF random function?

grand zinc
#

ye same thing

tulip glade
#

So essentially 4 random variables from [0, 1] roughly uniform are drawn to form a pseudo-Gaussian (via central limit theorem) and then the dispersion acts as a 'standard deviation' to that?

#

Also is the config varable dispersion (in CfgWeapons) referring to weaponModeDispersion in your pseudocode above?

grand zinc
#

blobdoggoshruggoogly
Yes

tulip glade
#

I did also find this parameter called artilleryDispersion, is that another multiplier stacked on top of dispersion?

cloud dust
#

Quick question, i've made a custom object for A3 and i want to have it use the surface texture that its above, i've been looking into surfaceTexture and setObjectTextureGlobal, but im unsure how to mash those together to use for a custom 3d model

#

im hoping to have it as an eventhandler or something, so when you move the object around it swaps to the correct texture in 3den and zeus, any help would be much appreciated

wintry tartan
#

Do you mean layered texture or something?

cloud dust
#

like the global mobilization berms

#

that use the terrain texture under them, then swap to it

wintry tartan
#

Ah

#

Clarify: Do you need to fetch a texture of the surface and apply to the object?

cloud dust
#

yep thats what im after, though the way i want to do it would be an automatic application of the script (?) to the object in 3den

#

so when you place it, it changes texture itself, no need to add it to init or anytrhing

opal crater
#

Init or postInit EH

#

When in 3den add 3den object edited eh, when not add Zeus equivalent.

fading talon
#

Who wants to fix one config for some money?

wintry tartan
#

A. If you want to hire one, #creators_recruiting
B. Or you can simply ask what's wrong with your config here

cloud dust
#

i dunno whether this belongs in scripting or coding so please direct me if im wrong

#

im trying desperately to apply an eventhandler to my custom object in config, but i cant manage to get it to work, i've tried regular 3den stuff for it, i've tried cba ones which is this one, i just, really need help

{
    class Extended_Init_EventHandlers {
    class Land_TestTerrainObject {
        class TestTerrainObjectEH {
            edenObject addEventHandler ["Dragged3DEN", {
            params ["_object"];
        }];
    };
};```
#

i can not for the life of me understand this, i know barely anything about code

opal crater
#

You're mixing config with SQF

cloud dust
#

i see

#

im just, trying to get it to work in eden atm and cant find out how

#

if anyone has ideas ping me please, as im going to bed haha, spent too much time on thsi today

carmine crypt
# cloud dust if anyone has ideas ping me please, as im going to bed haha, spent too much time...

Inside your CfgVehicles, inside your object, you can define event handlers

class MUH_Object : inherited
{
    //object cfg stuff
    class EventHandlers
    {
      init = "<sqf script here>";
      RegisteredToWorld3DEN = "<sqf script here>";
      UnregisteredFromWorld3DEN = "<sqf script here>";
    };
};

In all cases only parameter will be your object.
However carefulings must be taken as init will fire both, when created in eden AND when created in mission perhaps if (is3DEN) then.
RegisteredToWorld3DEN will fire if object is deleted from eden, then action is undone (it might also fire if its just created, im not sure)
UnregisteredFromWorld3DEN will fire when object is deleted from eden.
There are more object related ehs listed ere: https://community.bistudio.com/wiki/Arma_3:_Eden_Editor_Event_Handlers#Object_Event_Handlers

opal crater
# cloud dust if anyone has ideas ping me please, as im going to bed haha, spent too much time...

Object that changes texture depending on underneath surface:

class CfgVehicles {
    class Box_NATO_Equip_F;
    class vet_terrain_camo_box: Box_NATO_Equip_F {
        displayName = "My textured box";
        class EventHandlers {
            postInit = "\
                params ['_object'];\
                if (!local _object) exitWith {};\
                _object setObjectTextureGlobal ['camo', surfaceTexture getPos _object];\
            ";
            dragged3DEN = "\
                params ['_object'];\
                _object setObjectTextureGlobal ['camo', surfaceTexture getPos _object];\
            ";
        };
    };
};
opal crater
#

yes

#

the recommended one when working with textures.

carmine crypt
#

You may have just solved unrelated issue of mine

opal crater
#

BI switched to it in their initVehicle function calls.

carmine crypt
#

Undocumented on event handlers wiki page ofc 😦

opal crater
#

I might it myself I guess, I'm just unsure what is the exact delay.

carmine crypt
#

Wheels of documentation turn slowly.

If i were to guess it follows initialization order. And fires before or after postInit functions. But i can test that later.

opal crater
#

It's unreleated to postInit functions.

carmine crypt
#

I have a sneaky suspicion.
Well yeah, i mean only if its spawned at mission start.
But i can test delay between init eh and post.
Is there also pre?

opal crater
#

no, object can't be preInitialized xD

carmine crypt
#

Who knows πŸ™‚

carmine crypt
#

Awesome, thanks!

fiery vault
#

hey - this is a bit of a #arma3_config and #arma3_model question, but what's required to make a physics object be sling-loadable?
I've done a bit of digging around, and I've found out I need memory points (one per rope), aswell as a matching config entry (slingLoadCargoMemoryPoints). However, I'm unable to get my barrel (a custom PhysX-object, 100kg mass, derived from Land_MetalBarrel_F) to register as slingable to a Ghost Hawk. Did I miss anything?

quaint citrus
#

so i am in a korean war unit and usually run the BAR, the problem is that the one in one of the dlcs wont take the mags for one of the mods and vice versa, i would do this myself but i am horrible at code. you should be able to reuse the models and textures and the animations, even if they don't line up just right i don't care

carmine crypt
#

If you redefine CfgMagazineWells for bar and include mags from mod, they will become compatibile

stuck nest
#

Anyone know if its possible to modify the fall animations (at a mod config level) to make them have more air control while falling? I figured this might be the spot to ask.

hearty sandal
#

At config level not really. Would require new animations be made too

stuck nest
#

Oof.

#

I discovered it was possible to increase the movement speeds of parachutes and their fall velocities and stuff, was hoping perhaps the halo animations and the fall animations had something similar.

humble plinth
#

how i make a pbo of this
class CfgPatches
{
class DisablePeripheralVision
{
units[] = {};
weapons[] = {};
requiredVersion = 1.0;
requiredAddons[] = {"CAData","CAUI","LIB_core"};
};
};
class CfgInGameUI
{
class PeripheralVision
{
bloodColor[] = {0,0,0,0};
cueColor[] = {0,0,0,0};
cueEnemyColor[] = {0,0,0,0};
cueFriendlyColor[] = {0,0,0,0};
};
};
which name must i use it this name? DisablePeripheralVision

latent monolith
#

so im trying to make a tank using the example tank as a base but i keep getting an error each time i do?

its telling me ive got a duplicate but upon searching my file its coming up with 1 result.

confused as hell as to whats going on here. any help would be greatly appreciated cheers.

#

heres the error it keeps giving me

grand zinc
#

Show where you include CfgVehicles

latent monolith
#

that class was already laid out in the example

#

so im confused as to why its saying theres a duplicate

grand zinc
#

Show me where you include it

humble plinth
#

how i make a pbo of this
class CfgPatches
{
class DisablePeripheralVision
{
units[] = {};
weapons[] = {};
requiredVersion = 1.0;
requiredAddons[] = {"CAData","CAUI","LIB_core"};
};
};
class CfgInGameUI
{
class PeripheralVision
{
bloodColor[] = {0,0,0,0};
cueColor[] = {0,0,0,0};
cueEnemyColor[] = {0,0,0,0};
cueFriendlyColor[] = {0,0,0,0};
};
};
which name must i use it this name? DisablePeripheralVision

latent monolith
grand zinc
#

Please show me where you #include your CfgVehicles.hpp

ashen chasm
#

(which is very likely in config.cpp)

latent monolith
#

is this what you meant?

#

apologies im running on like 3hrs of sleep

grand zinc
#

Maybe one of your other included files also has a CfgVehicles in them

#

search through them too

humble plinth
#

how i make a pbo of this
class CfgPatches
{
class DisablePeripheralVision
{
units[] = {};
weapons[] = {};
requiredVersion = 1.0;
requiredAddons[] = {"CAData","CAUI","LIB_core"};
};
};
class CfgInGameUI
{
class PeripheralVision
{
bloodColor[] = {0,0,0,0};
cueColor[] = {0,0,0,0};
cueEnemyColor[] = {0,0,0,0};
cueFriendlyColor[] = {0,0,0,0};
};
};
which name must i use it this name? DisablePeripheralVision

ashen chasm
#

you can use any class name in CfgPatches, as long as it doesn't match any other CfgPatches. And you can use any filename for PBO blobdoggoshruggoogly

dry mantle
#

How can I add glass sound effect and glass impact to one of my props?

lethal shuttle
#
class CfgPatches {
    class tfsi_csat_tni_vehicles {    
        author = "Heisenbruh";
        requiredVersion = 0.1;
        requiredAddons[]= {
            "A3_Characters_F_BLUFOR"
        };
        units[] = {};
        weapons[] = {};
    };
};

class CfgVehicles
{
    class O_MRAP_02_F;    
    class tfsi_csat_tni_mrap : O_MRAP_02_F    // Define of a new class, which parameters are inherited from B_Soldier_base_F, with exception of those defined below.
    {
        author = "Heisenbruh";
        displayName = "Ifrit";
        hiddenSelectionsTextures[] = {"\tfsi_csat_tni_vehicles\Data\MRAPtni_02_ext_01_ghex_CO.paa","\tfsi_csat_tni_vehicles\Data\MRAPtni_02_ext_02_ghex_CO.paa"};
    };
};```
#

Why does this retexture config for the ifrit not work? Only the vanilla texture show up

ashen chasm
#

try to add a third texture to hiddenSelectionsTextures[] blobdoggoshruggoogly

wheat sluice
#
  1. Wrong requiredAddons[] in your CfgPatches. Use "A3_Data_F_AoW_Loadorder" instead.
  2. The Ifrit technically has three selections (camo1, camo2, camo3) so your hiddenSelectionsTextures array needs to have the third for the RCWS turret included (i.e. \A3\Data_F\Vehicles\turret_opfor_co.paa). But if you only intend on using the unarmed Ifrit, you can get away with only two textures defined.
  3. You need to add your own custom texture to the vehicle's textureList[]. By default, O_MRAP_02_F uses the default "Hex" texture so it automatically overrides your custom textures.
#

Try adding this to your class:

    class tfsi_csat_tni_mrap : O_MRAP_02_F
    {
        class TextureSources
        {
            class tfsi_csat_tni
            {
                displayName = "Green Hex [TFSI]";
                author = "Heisenbruh";
                textures[] = 
                {
                    "\tfsi_csat_tni_vehicles\Data\MRAPtni_02_ext_01_ghex_CO.paa", 
                    "\tfsi_csat_tni_vehicles\Data\MRAPtni_02_ext_02_ghex_CO.paa", 
                    "\A3\Data_F_Exp\Vehicles\Turret_ghex_CO.paa"
                };
                factions[] = 
                {
                    "OPF_F"
                };
            };
        };
        textureList[] = 
        {
            "tfsi_csat_tni",
            1
        };
    };
#

Note that factions doesn't have to be OPF_F (the vanilla CSAT faction). You can include as many factions in that array as you want.

ashen chasm
#

or probably just textureList[] = {}; πŸ™ƒ

#

and bis_fnc_initVehicle looks even messier notlikemeowcry

velvet current
#

is there a way to do BIS_fnc_unitHeadgear but with uniforms?

normal kelp
#

hey, if I want to modify the BWA3_Puma_Fleck's crew, how do I do that? I'm trying to figure out where the crew is defined, I checked both CargoTurrets and Turrets and the gunner is set there but not the commander

viral rover
#

what defines how accurate a weapon is over distance? I made a custom gun and over 800m if you zero in at 1400 with lrps it hits at 1700m

viral dragon
lethal shuttle
wheat sluice
#

Only if the vehicle has more than one texture variant.

wintry fox
#

Can you create classes with macros?

opal crater
#

yes

#

Macros just result in a text after preprocessing.

wintry fox
#

Okay I thought so, wasn't sure if they weren't able to or if I just writing something incorrectly.

This is the macro I was making that's intended to set up ground holders for different helmet classes, so that I don't have to manually type each and every one of them.

#define HELMET_HOLDER(CLASS_NAME, DISPLAY_NAME, HELM_NAME) \
class CLASS_NAME: BNA_KC_HelmetHolder_P2_CR \
{ \
    displayName = DISPLAY_NAME; \
    class TransportItems \
    { \
        class HELM_NAME \
        { \
            name = HELM_NAME; \
            count = 1; \
        }; \
    }; \
};

And is being used with:

HELMET_HOLDER("BNA_KC_HelmetHolder_P2_CR_Legacy", "[KC] INF P2 Helm 00 (Recruit, Legacy)", "BNA_KC_Helmet_Phase2_CR_Legacy")
HELMET_HOLDER("BNA_KC_HelmetHolder_P2_CT", "[KC] INF P2 Helm 01 (Trooper)", "BNA_KC_Helmet_Phase2_CT")

It seems as though I've done something wrong though, since this results in the error shown below.

#

The error says that it was expecting "" and instead got an opening brace ({), but I'm not sure why

ashen chasm
#

defines don't may not care about , being inside the ". Because macros don't care about " at all blobdoggoshruggoogly

#

HELMET_HOLDER("BNA_KC_HelmetHolder_P2_CR_Legacy", "[KC] INF P2 Helm 00 (Recruit, Legacy)", "BNA_KC_Helmet_Phase2_CR_Legacy") => arg1="BNA_KC_HelmetHolder_P2_CR_Legacy", arg2="[KC] INF P2 Helm 00 (Recruit, arg3= Legacy)", arg4="BNA_KC_Helmet_Phase2_CR_Legacy"

#

and class "BNA_KC_HelmetHolder_P2_CR_Legacy":... looks non-conventional at the very least

wintry fox
#

I figured it would have thrown an error if they weren't placed in quotes
Although thinking about it now it would be very strange for it to do so, since ints exist

lethal shuttle
#
class tfsi_csat_tni_orca : O_Heli_Light_02_dynamicLoadout_F
    {
        class TextureSources
        {
            class tfsi_csat_tni
            {
                displayName = "DPM";
                author = "Heisenbruh";
                textures[] = 
                {
                    "\tfsi_csat_tni_vehicles\Data\Helitni_Light_02_ext_OPFOR_CO.paa",
                };
            };
        };
        textureList[] = 
        {
            "tfsi_csat_tni",
            1
        };
    };
};```

Can someone tell me why my orca retexture does not work here?
wheat sluice
#

You have an extra comma at the end of the textures[] array:

                textures[] = 
                {
                    "\tfsi_csat_tni_vehicles\Data\Helitni_Light_02_ext_OPFOR_CO.paa", <---
                };
wintry fox
# wintry fox Okay I thought so, wasn't sure if they weren't able to or if I just writing some...

Having another issue with this macro here.
I wanted to add another argument to allow me to specify a subcategory that the new helmet where belong to, so I added the following line:
editorSubcategory = "BNA_KC_Objects_Helmets_#SUBCAT"; \

The wiki (https://community.bistudio.com/wiki/PreProcessor_Commands#Replacing_parts_of_words) says that only one pound sign is needed to convert the argument to a string, so I went with that. Even though it also says that:

If only a part of the word should be replaced, use the ## instruction. This is necessary when either the start or the end of the argument connects to another character that is not a ; (semi-colon) or (space).

I also then changed the "call" to it by adding P2 to it:
HELMET_HOLDER(BNA_KC_HelmetHolder_P2_CR_Legacy, [KC] INF P2 Helm 00 (Recruit, Legacy), BNA_KC_Helmet_Phase2_CR_Legacy, P2)

However when viewing it in-game, the helmet appears in an undefined category, and the "build" code looks like:

class BNA_KC_HelmetHolder_P2_CR_Legacy: BNA_KC_HelmetHolder_P2_CR
{
    displayName="[KC] INF P2 Helm 00 (Recruit Legacy)";
    editorSubcategory="BNA_KC_Objects_Helmets_#SUBCAT";
    class TransportItems
    {
        class BNA_KC_Helmet_Phase2_CR_Legacy
        {
            name="BNA_KC_Helmet_Phase2_CR_Legacy";
            count=1;
        };
    };
};

I tried using ##SUBCAT## and ##SUBCAT as well, and neither of those seemed to work either.

opal crater
#

use quote macro

#

you also can't use commas inside your macro arguments.

#

you have one in displayName

opal crater
# wintry fox Having another issue with this macro here. I wanted to add another argument to a...
#define QUOTE(VAR) #VAR
#define CONCAT(A,B) A##B
#define HELMET_HOLDER(CLASS_NAME,DISPLAY_NAME,HELM_NAME,SUBCAT) \
    class CLASS_NAME: BNA_KC_HelmetHolder_P2_CR \
    { \
        displayName = #DISPLAY_NAME; \
        editorSubcategory = QUOTE(CONCAT(BNA_KC_Objects_Helmets_,SUBCAT)); \
        class TransportItems \
        { \
            class HELM_NAME \
            { \
                name = #HELM_NAME; \
                count = 1; \
            }; \
        }; \
    }

#define COMMA ,
HELMET_HOLDER(BNA_KC_HelmetHolder_P2_CR_Legacy,[KC] INF P2 Helm 00 (CONCAT(Recruit,COMMA) Legacy),BNA_KC_Helmet_Phase2_CR_Legacy,P2);
#

this should work.

#

Bit ugly tho. Use stringtable for your displayNames so it won't need to be so ugly.

wintry fox
#

Ngl that looks horrid lmao

I fiddled around with it a bit more and finally got to a point where it was doing editorSubcategory = "BNA_KC_Objects_Helmets_ P2";, for example. I found out the extra space was just coming from how I called it

coral knoll
#

How would one make a turret appear on the radar?

lethal shuttle
#

i tried using the hiddentextureselection code instead but it still does not work

wintry tartan
#

*hittenSelectionsTextures

lethal shuttle
#

i dont understand. i thought its hiddenSelectionsTextures (literally just copied this from the a3 codes)

wintry tartan
#

i tried using the hiddentextureselection code instead but it still does not work
You've said so

lethal shuttle
#

hittenSelectionsTextures achieves the same thing i presume?

wintry tartan
#

Let me rephrase: I've thought you've use hiddentextureselection so I tried to correct it

#

Also you can post your current config so we can review

lethal shuttle
#
class tfsi_csat_tni_orca : O_Heli_Light_02_dynamicLoadout_F
    {
        class TextureSources
        {
            class tfsi_csat_tni
            {
                displayName = "DPM";
                author = "Heisenbruh";
                textures[] = 
                {
                    "\tfsi_csat_tni_vehicles\Data\Helitni_Light_02_ext_OPFOR_CO.paa"
                };
            };
        };
        textureList[] = 
        {
            "tfsi_csat_tni",
            1
        };
    };
};```
wintry tartan
#

Where is your hiddenSelectionsTextures?

lethal shuttle
#

drebin told me to use this, and it seems to work for the other vehicles, but not the orca

#

this is the current config, i changed the config earlier with the hiddenselectionstexture which did not work, hence why i reverted back to the current one

wintry tartan
#

Okay, two things:

  • How you've put hiddenSelectionsTextures? Post config please
  • What exactly is your issue? It doesn't work but how? What exactly you expect?
lethal shuttle
#

i will switch the config real quick

#

i am expecting a retexture of the orca, but when i spawn it it only uses the vanilla texture

wintry tartan
#

How do you spawn?

lethal shuttle
#

in the editor

#

ok this one doesnt even work, it doesnt even show up in the editor

#

hold up

#

wrong display name\

wintry tartan
#

Can you select the texture via the Context Menu > Edit Vehicle Appearance?

lethal shuttle
#

ok it works now, there mustve been an issue with my earlier code of hiddentextureselections then, im not very sure.

but thanks for the help

atomic jetty
#

Does anyone know if there is a passive radar / RWR equivalent to pointsCar / pointsTank / etc. for making a custom aircraft HUD?

dry mantle
#

any idea why an ai anti air wouldnt fire at a heli variant of an aircraft? and planes seem to not fire their aa missiles at it either

nimble sequoia
cinder turret
#

any idea why a custom unit might be spawning with the model of its uniform correct, but with the arsenal claiming the uniform slot is actually empty?

molten musk
#

Maybe you should test add

scope = 2;         // 2 = class is available in the editor; 1 = class is unavailable in the editor, but can be accessed via a macro; 0 = class is unavailable (and used for inheritance only).
scopeCurator = 2;  // 2 = class is available in Zeus; 0 = class is unavailable in Zeus.
scopeArsenal = 2;  // 2 = class is available in the Virtual Arsenal; 0 = class is unavailable in the Virtual Arsenal.
cinder turret
#

to which class?

#

I can load the uniform okay fwiw when I select it, like it does work properly, and if I select and then de-select it the character displays the base underwear model correctly

cinder turret
#

okay actually

#

nevermind!

#

I think I figured it out

mortal dove
#

How are tracers defined?
Some magazines have certain tracers; how do I define what tracer ammo gets used?

ashen chasm
#

here's how vanilla does it: hpp class B_556x45_Ball_Tracer_Red: B_556x45_Ball { model="\A3\Weapons_f\Data\bullettracer\tracer_red"; nvgOnly=0; }; blobdoggoshruggoogly

#

sorry, that's in CfgAmmo

#

here's CfgMagazines: hpp class 30Rnd_556x45_Stanag_green : 30Rnd_556x45_Stanag { ... ammo = "B_556x45_Ball_Tracer_Green"; };

mortal dove
ashen chasm
#
    class 30Rnd_45ACP_Mag_SMG_01 : 30Rnd_9x21_Mag
    {
        tracersEvery = 0; // don't draw any tracers
        lastRoundsTracer = 4; // except on last 4 shots of the magazines
        ammo = "B_45ACP_Ball";
        initSpeed = 280;
    };
    class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green : 30Rnd_45ACP_Mag_SMG_01
    {
        tracersEvery = 1; // draw the tracers every shot
        lastRoundsTracer = 30; // and on all the shots, just to be sure
        ammo = "B_45ACP_Ball_Green";
    };```<https://community.bistudio.com/wiki/CfgMagazines_Config_Reference#tracersEvery.3D4> for doc
novel lava
#

yeah tracers are just them hiding the bullet model every x number of shots etc

coral knoll
#

When creating a UGL variant of a gun im assuming you need to define the location of the UGL muzzle somewhere, I dont have the skills to do so. is there anyway to have them fire out of the same muzzle?

muzzles[]=
{
"this",
"MG_UGL"
};```
#

Cause atm this just make the GL shoot sideways

novel lava
#

set

        muzzlePos = "Usti hlavne";
        muzzleEnd = "Konec hlavne";

in MG_UGL

coral knoll
#

I'll try that, thank you

wheat sluice
# mortal dove But how does that work when its 1 in 5 thats a tracer?

If you want to do a tracer mix of 1/5 you just set the magazine to tracersEvery = 5; (as in the BIKI article linked by artemoz) and leave out or set lastRoundsTracer to zero.

Unfortunately, Arma 3 doesn't allow you to customise the magazine with more than one ammo type unless you do some silly stuff with submunitions. Only Reforger allows you to adjust the ammo type of each round individually and let you make a magazine that has (for example) mix of ball/tracer/AP/subsonic, etc.

lethal shuttle
#

can anybody help why this results in an empty group? the faction is available on the dropdown, but there is no name for the sentry group nor does it spawn anything

class CfgGroups
{
    class East
    {
        class csat_tni_inf
        {
            name="CSAT (Indonesia)";
            class Infantry
            {
                name = "Infantry";
                class O_T_InfSentry;
                class csat_tni_InfSentry : O_T_InfSentry
                {
                    faction="csat_tni";
                    class Unit0
                    {
                        vehicle="tfsi_csat_tni_GL";
                    };
                    class Unit1
                    {
                        vehicle="tfsi_csat_tni_fatigues";
                    };
                };
            };
        };
    };
};```
cloud saddle
lethal shuttle
ebon pivot
cloud saddle
#

Because you're not inheriting anything to them.

lethal shuttle
#

I put O_T_InfSentry as the inheritance

cloud saddle
#

and the units are different classes

lethal shuttle
#

Oh, no way to do it automatically then?

#

All i want is csat groups with my reskinned units

cloud saddle
#
class Unit0 {
    vehicle = "tfsi_csat_tni_GL";
    side = 0;
    rank = "CORPORAL";
    position[] = {0, 0, 0};
};
class Unit1: Unit0 {
    vehicle = "tfsi_csat_tni_fatigues";
    rank = "PRIVATE";
    position[] = {5, -5, 0};
};

Unless you're changing the original groups, this is how you do it.

lethal shuttle
#

Ah, means i have to do it manually for all of them, what a bummer. Thanks

coral knoll
void berry
#

Let's say I wanted an AI fixed wing to fire a number of A2A missiles in a short burst, what cfg values should I look at? (Making an A2A rocketpod)

latent monolith
#

howdy people so what are the required things that i need to make a "NEW WEAPON" for a tank.

in particular the bits im looking for are:
I want to make an explosion but the explosion effect to be green
Id like to change the sound effect of the weapon firing and the "Shell" impact

im assuming itll use the base weapon code for alot of it which looks like this: (see attached)

but i dont know how to do the bits im looking for. any help would be greatly appreciated.

topaz kettle
#

Where are the picture suppose to go???

#
//CFGWeapons
class TU_1 : U_simc_SF_TS
    {
        displayname ="[NOVA] Tiger Stripe";
        picture="NovaUniforms\data\arvn_ts_ca.paa";
        uipicture="NovaUniforms\data\arvn_ts_ca.paa";
        class XtdGearInfo
        {
            displayname ="[NOVA] Tiger Stripe";
            model="NOVATIGER";
            top="jacket";
            sleeves="full";
            camo="one";
            pants="regular";
        };
        class ItemInfo: ItemInfo
        {
            uniformClass = "TUni1";
        };
    };
//CFGVehicles
class TUni1: simc_SF_TS
    {
        picture="NovaUniforms\data\arvn_ts_ca.paa";
        uipicture="NovaUniforms\data\arvn_ts_ca.paa";
        scope=1;
        displayname ="[NOVA] Tiger Stripe";
        uniformClass="TU_1";
        modelSides[]= { 0, 1, 2, 3, 4, 5, 6, 7 };
        hiddenSelections[]=
        {
            "camo",
            "camo2",
            "rank",
            "insignia",
            "nom"
        };
        hiddenSelectionsTextures[]=
        {
            "\simc_uaf_68\data\SF_TS_1_co.paa",
            "\simc_uaf_68\data\SF_TS_1_co.paa",
            "",
            ""
        };
    };
soft wasp
cloud saddle
#

.paa.paa is your issue.

topaz kettle
#

I tripled checked i didn’t have a bad name

#

I thought it would be pathing but it is pulling it for ace Arsenal and everything except player inventory

wintry tartan
#

Had similar issue recently. IIRC was because lack of \ as the first character in the path

topaz kettle
sacred gate
#

Hey. Is there a way to decrease the turning speed of a turret (e.g. tank)

hearty sandal
#

there are config parameters for that yeah

nimble sequoia
lethal shuttle
#
class O_T_Soldier_lite_F;
#
class tfsi_csat_tni_lite : O_T_Soldier_lite_F
    {
        author = "Heisenbruh";
        faction = csat_tni;
        uniformClass = "U_tfsi_csat_tni_fatigues";
        linkedItems[] = {tfsi_csat_tni_bandollier, CSAT_TNI_PatrolCap, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};                // Which items the character has.
        respawnLinkedItems[] = {tfsi_csat_tni_bandollier, CSAT_TNI_PatrolCap, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};    // Which items the character respawns with.
    };```
#

im having this issue, can anyone help please?

hearty sandal
#

O_T_Soldier_lite_F this is non existing class

#

@lethal shuttle

#

cant inherit from it or create empty class like it

lethal shuttle
#

gotcha thanks

glacial spear
#

i have an issuie im trying to fix, we use the turret direction of the helicopter gunner for some scripts in the pilot seat but from time to time in mp, what the pilot client sees in terms of turret direction and the gunner sees are 2 different things
i cant accurately recreate the issuie to troubleshoot it, wondering if anyone else has experience

silk drift
#

Is there a way to config a uniform as civilian? For example, the uniform would be recognized as civilian in scenarios such as Old Man, Antistasi, and Vindicta.

wheat sluice
# lethal shuttle

One thing to note: watch out for missing classes from expansions/DLCs.

BI did not consistently create all soldier classes for vanilla DLC factions so many units will be missing from their rosters (and vice versa with non-DLC factions). In this case, you're better off inheriting from the basic Pacific CSAT Rifleman class since the Pacific CSAT faction doesn't have a Rifleman (Light) soldier class.

lethal shuttle
#

oh yeah i got all the inheritance as tanoa except the light class and survivor

steady beacon
#

So word on the street is at some point gun particles work with gunpods/pylon weapons now? Is there any documentation? I can't find anything about it, and does it only work in MP? SP doesn't show at all

teal canyon
#

I am looking to make a config that will change an existing class, like so:

class CfgVehicles
{
    class Car_F;
    class ivory_m3_base: Car_F
    {
        class complexGearbox
        {
            transmissionDelay = 1;
            TransmissionRatios[] = {"High", 3.5};
        };
    };
};

But I know that this will override complexGearbox instead of simply modifying it. How do I properly inherit the complexGearbox?

narrow swallow
opal crater
#

no, Car_F does not have complexGearbox class

#

assuming the ivory_m3_base actually inherits from Car_F the originally posted config is correct.

opal crater
narrow swallow
#

Ah, oops. So either

  1. inherit Car_F and define complete complexGearbox, or
  2. inherit from a class that actually has complexGearbox and make changes
    right?
opal crater
#

why, no?

#

assuming the ivory_m3_base already has complexGearbox and you just want to tweak few values, the originally posted config is fine.

#

It'll patch transmissionDelay and TransmissionRatios properties.

#

Needs correct requiredAddons[] otherwise the originall addon can load after yours and undo your changes.

#

going by the name ivory_m3_base I assume it's an addon that patches somebody elses addon.

teal canyon
#

Can confirm that the original one I posted works as it should and doesn't update base classes

opal crater
#

nothing to update if original class has no parent

narrow swallow
#

Ah. thanks, I was confused. Sorry about that!

opal crater
#

people often assume class Name {}; deletes the original class content.

#

It does not.

#

It patches the original class with no changes effectively doing nothing.

#

(assuming the class Name does not have a parent ofc.)

grand zinc
#

requiredAddons*

opal crater
#

yes, brain not worky

latent monolith
#

so im adding 3 turrets onto the test_tank i can get the first turret to work but when i add turret 2 & 3 it stops working and breaks the main gun as well.

heres what my skeleton looks like in model.cfg

class Test_Tank_01_base: Tank_F {
        skeletonInherit = "Tank_F";
        skeletonBones[]= {
"zasleh2","otocHlaven","FRTURRET","","FRGUN","FRTURRET"
"BRTURRET", "",
"BRGUN", "BRTURRET"
"BLTURRET", "","BLGUN", "BLTURRET"
};
};

(FRTURRET = Front Right Turret, FRGUN = Front Right Gun, BRTURRET = Back Right Turret, BRGUN = Back Right Gun, BLTURRET = Back Left Turret, BLGUN = BackLeftGun)

#

heres what the code looks like in the config

#
class FRturret: NewTurret
            {
                gunnerName = "Front Right Gunner";
                gunBeg = "FRMuz";
                gunEnd = "FRCham";
                body = "FRTURRET";
                gun = "FRGUN";
                gunnerOpticsModel = "\A3\Weapons_F\Reticle\Optics_Gunner_MTB_02_w_F.p3d";
                gunnerOpticsEffect[] = {};
                animationSourceBody = "FRTURRET";
                animationSourceGun = "FRGUN";
                memoryPointGun = "FRmuz";
                memoryPointGunnerOptics = "FRSight";
                class Turrets{};
                weapons[]={LMG_M200};
                magazines[]={2000Rnd_65x39_belt};
                startEngine = 0;
                stabilizedInAxes = 3;
                minElev = -80;
                maxElev = +80;
                initElev = +10;
                minTurn = -50;
                maxTurn = +50;
                initTurn = 0;
                forceHideGunner = 1;
                primaryGunner = 0;
            };
        };
hearty sandal
#

makes it far easier to understand

#

like they are in the sample

latent monolith
hearty sandal
#

bones are declared in pairs
"bone", "bone_parent",

latent monolith
#

OHHHHHHH

hearty sandal
#

if its bone,"", it means its parented to the root of the model

#

"bone1","",
"bone2","bone1"

#

bone2 follows bone1 movement

#

and can then have additionally its own movememnt

#

like turret and gun

latent monolith
hearty sandal
#

yes

latent monolith
#

wasnt sure if it followed the same sentence structure as say the classes in the cfg

latent monolith
# hearty sandal yes

so i re did my bones in the model cfg

my classes in my cfgVehicles.hpp all mirror the one that actually works but its the same thing.

I can have 2 turrets working fine but the minute i try to add more it breaks everything.

#

confused as to why

hearty sandal
#

maybe they in wrong place

#

are all turrets separate or are they turrets on top of other turrets

latent monolith
#

4 seperate turrets on 4 corners

hearty sandal
#

and how does "breaks everything" express itself

latent monolith
#

fires fine

#

but static

#

thats whats confusing me about it is im repeating the process that i did for the 2nd turret to the remaining 2 turrets and somehow it breaks?

hearty sandal
#

are you accidentally nesting the turrets inside other turret classes in the config?

latent monolith
#

wait one ill share my turret config

#

was trying to share it as code but discord said NO

#

so attachment it is

elfin tide
#

So I’m not sure if this is the right place to ask, but I’m wanting to create my own set of mods for gear and uniforms that function similar to how USP gears setup is where I can choose the length of sleeves, Kit specifics like how many mags or if they want a belt etc from just a single click. Is it a script on how it’s done or is it the way the mods are compiled?

hearty sandal
#

they have built their own system for that, its not a native thing

#

so yes relies on scripting

sullen fulcrum
#
TopDown
+
ascendAngle = 90.0;

?

steady beacon
lethal shuttle
#
picture = "\tfsi_csat_tni_clothing\gui\logo1.paa";
logoSmall = "\tfsi_csat_tni_clothing\gui\logo1.paa";
logo = "\tfsi_csat_tni_clothing\gui\logo1.paa";
logoOver = "\tfsi_csat_tni_clothing\gui\logo1_hover.paa";
action = "https://community.bistudio.com/wiki/Mod_Presentation";
#

Why does the .paa not show in game in the mod.cpp?

#

The directory is correct

ebon pivot
#

should the following preprocessor work? doesn't seem to be but wondering if ive done it wrong; wiki is unclear whether string eval or anything should work thonk

class CfgWeapons {
  #define CURRENTCLASS CfgWeapons
  #if CURRENTCLASS == CfgWeapons
    //this is considered success
  #else
    //this is success if in cfgvehicles etc
  #endif
};```
ebon pivot
#

realised i can just do #define CURRENTCLASSCFGWEAPONS 1 and #undefine CURRENTCLASSCFGWEAPONS instead for the same effect for my uses

vast tartan
#

Anyone know how to modify the speed of a parachute, or the desecent rate?

#

Been looking around, and haven't found much

grand zinc
ebon pivot
ebon pivot
#

ah yeah its said but a bit wishy washy

#

any specific reason why you can't macro filepaths for #include btw?

grand zinc
#

yes no maybe

ebon pivot
#

is there any point making a request or not interested?

opal crater
#

preprocessor is hell

grand zinc
#

never seen any preprocessor support macros as include path

teal sluice
#

Is there a easy way to inherit two classes into one class? Like I want to create a new config in CfgVehicles which I also want to inherit from two already existing classes. As multiple inheritance isn't possible, doing this:

class CfgVehicles {
    class alreadyExistingClassOne;
    class alreadyExistingClassTwo;
    
    class myNewClass: alreadyExistingClassOne {
        // do some things
    };
    
    class myNewClass: alreadyExistingClassTwo {
        // do some things
    };
};

will result in duplicated definied class. So, what would be the easiest possible way?

grand zinc
#

No way

ebon pivot
lethal shuttle
#

how do i add factions to zeus? i just realized my characters are only available in the editor

wintry tartan
#

Make sure:

  • scopeCurator = 2;
  • CfgPatches have their names in units[]
lethal shuttle
#

i have the units inherited from vanilla classes. why do i still need to do scopecurator? (its a lot)

this is my cfgpathces

class CfgPatches {
    class tfsi_csat_tni_clothing {    
        author = "Heisenbruh";
        requiredVersion = 0.1;
        requiredAddons[]= {
            "A3_Characters_F_BLUFOR"
        };
        units[] = {};
        weapons[] = {};
    };
};```
ebon pivot
#

this is why everybody should macro everything

ebon pivot
lethal shuttle
#

still doesnt work

#
class CfgPatches {
    class tfsi_csat_tni_clothing {    
        author = "Heisenbruh";
        requiredVersion = 0.1;
        requiredAddons[]= {
            "A3_Characters_F_BLUFOR"
        };
        units[] = {"tfsi_csat_tni_fatigues", "tfsi_csat_tni_officer"};
        weapons[] = {};
    };
};```
#
class CfgVehicles        // Character classes are defined under cfgVehicles.
{
    class O_T_Soldier_F;
    
    class tfsi_csat_tni_fatigues : O_T_Soldier_F    // Define of a new class, which parameters are inherited from B_Soldier_base_F, with exception of those defined below.
    {
        author = "Heisenbruh";            // The name of the author of the asset, which is displayed in the editor.
        faction = csat_tni;
        scopeCurator = 2;                    // 2 = class is available in Zeus; 0 = class is unavailable in Zeus.
        displayName = "Rifleman";        // The name of the soldier, which is displayed in the editor.
        uniformClass = "U_tfsi_csat_tni_fatigues";                            // This links this soldier to a particular uniform. For the details, see below.
        hiddenSelectionsTextures[] = {"\tfsi_csat_tni_clothing\Data\clothing_tni_CO.paa","\tfsi_csat_tni_headgear\Data\tech_tni_CO.paa"};
        linkedItems[] = {tfsi_csat_tni_harness, CSAT_TNI_Modular, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};                // Which items the character has.
        respawnLinkedItems[] = {tfsi_csat_tni_harness, CSAT_TNI_Modular, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};    // Which items the character respawns with.
    };```
ebon pivot
#

```cpp
stuff

plz
#

and is the faction visible in zeus?

lethal shuttle
#

yea the problem is its not visible in zeus

lethal shuttle
# ebon pivot \```cpp stuff ``` plz
class CfgPatches {
    class tfsi_csat_tni_clothing {    
        author = "Heisenbruh";
        requiredVersion = 0.1;
        requiredAddons[]= {
            "A3_Characters_F_BLUFOR"
        };
        units[] = {"tfsi_csat_tni_fatigues", "tfsi_csat_tni_officer"};
        weapons[] = {};
    };
};
class CfgVehicles        // Character classes are defined under cfgVehicles.
{
    class O_T_Soldier_F;
    
    class tfsi_csat_tni_fatigues : O_T_Soldier_F    // Define of a new class, which parameters are inherited from B_Soldier_base_F, with exception of those defined below.
    {
        author = "Heisenbruh";            // The name of the author of the asset, which is displayed in the editor.
        faction = csat_tni;
        scopeCurator = 2;                    // 2 = class is available in Zeus; 0 = class is unavailable in Zeus.
        displayName = "Rifleman";        // The name of the soldier, which is displayed in the editor.
        uniformClass = "U_tfsi_csat_tni_fatigues";                            // This links this soldier to a particular uniform. For the details, see below.
        hiddenSelectionsTextures[] = {"\tfsi_csat_tni_clothing\Data\clothing_tni_CO.paa","\tfsi_csat_tni_headgear\Data\tech_tni_CO.paa"};
        linkedItems[] = {tfsi_csat_tni_harness, CSAT_TNI_Modular, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};                // Which items the character has.
        respawnLinkedItems[] = {tfsi_csat_tni_harness, CSAT_TNI_Modular, ItemMap, ItemCompass, ItemWatch, ItemRadio, NVGoggles_OPFOR};    // Which items the character respawns with.
    };```
ebon pivot
#

what faction is it in

lethal shuttle
#

OPFOR

ebon pivot
#

which opfor faction

lethal shuttle
#

its my own faction

#

its in the cpp, but i didnt include it in the code above (its way too long)

ebon pivot
#

show the faction part

lethal shuttle
#
class CfgFactionClasses
{
    class csat_tni
    {
        displayName = "faction test";
        author = "Heisenbruh";
        icon = "-"; // Needs to be 16x16 in resolution and it needs to be in the form of a PAA.
        priority = 2;
        side = 1; // Blufor
    };
};```
ebon pivot
#

cant remember what priority does but mine is 1 and works in zeus

lethal shuttle
wheat sluice
lethal shuttle
#

okay this works, im not sure what happened, because it was out of nowhere as well. regardless thank you

latent monolith
#

so trying to pack my pbo for my headgear mod got slapped with this error

latent monolith
novel lava
#

what's the deal with the delete keyword? I know its not meant to work if its a parent of something but i'm having it not work when it's just on its own with no children nor parents

#

I'm trying to remove a vehicle from being available in a particular cas module and it just doesn't work

    class ModuleCASMissile_F: ModuleCASGun_F
    {
        class Arguments: Arguments
        {
            class Vehicle: Vehicle
            {
                class values: values
                {
                    delete LIB_FW190F8;
                };
            };
        };
    };
grand zinc
#

requiredAddons set correctly?
So their definition is loaded before your deletion

novel lava
#

well that's the thing its my own definition

#
    class ModuleCAS_F: Module_F
    {
        class Arguments
        {
            class Type;
            class Vehicle
            {
                class values
                {
                    class LIB_FW190F8
                    {
                        name = "$STR_LIB_DN_FW190F8";
                        value = "LIB_FW190F8";
                    };
                };
            };
        };
    };
    class ModuleCASGun_F: ModuleCAS_F
    {
        class Arguments: Arguments
        {
            class Vehicle: Vehicle
            {
                class values: values
                {};
            };
        };
    };
    class ModuleCASMissile_F: ModuleCASGun_F
    {
        class Arguments: Arguments
        {
            class Vehicle: Vehicle
            {
                class values: values
                {
                    delete LIB_FW190F8;
                };
            };
        };
    };
#

It doesn't have missiles so I don't want it in the missile module, but do want it for the gun/bomb ones

ashen chasm
#

delete doesn't work on inherited members. It only works if you change/update previously defined class from other config in your own config.cpp blobdoggoshruggoogly

novel lava
#

fug, so would I have to make a whole config cpp just to remove it?

ashen chasm
#

blobdoggoshruggoogly it doesn't seem to use any inheritance on Arguments and below in vanilla(-ish) anyways

#

and you can only delete your class where it was defined. Not where it got inherited. So, in your example, you can make another config that gets loaded later and deletes LIB_FW190F8 from ModuleCAS_F

novel lava
#

oh that's not useful at all

#

if I was gonna do that why bother putting it there in the first place

ashen chasm
#

to, say, delete buttons from the main menu blobdoggoshruggoogly

#

there's also += that can only modify arrays specifically defined in the class you're modifying. With the only usage i can think about being adding extra muzzles to "Put" and "Throw" weapons for new throwables/mines blobdoggoshruggoogly

novel lava
#

it was useful for magazines pre magazine wells too

lament thicket
#

Hi, how would I make it so that when a unit turns out of a vehicle their head follows the movement of their view?

grand zinc
ashen chasm
#

vanilla doesn't seem to have any inheritance at all there. And Arguments seems to inherit from parent's Arguments?

grand zinc
#

When you modify a existing class, your inheritance needs to be the same as the original.
So if it was class Arguments in the original, making it class Arguments: Arguments will break stuff
If parent-less class is already present it should just merge it together

ashen chasm
#

correction. When actually looking at config dump, child classes seem to not have class Arguments of their own at all notlikemeow

#

inheritance makes my head hurt

grand zinc
#

It does have Arguments

#

With no inheritance

#

So that code above is definitely wrong