#arma3_config
1 messages Β· Page 25 of 1
the thing is the config is correct there is no missing thing as such Hitpoints
something in your setup causes it
its not correct if the error pops up
either you create a class without correct parameters
or you break some exisiting inheritance rendering a class broken
but i took the config from one of my helicopters that doesnt show this message
some mistake has been made inbetween
all I can say is that the error does not come up without reason
could be a required addon thing ?
was looking at the wrong helicopter it was not the one when i placed it
I cant seem to get my main menu mission to show.
the mission only has a player down
class CfgPatches
{
class PTf_Menu
{
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
requiredAddons[] = {"A3_Data_F_Enoch_Loadorder"};
};
};
class CfgWorlds {
class CAWorld; // External class reference
class Altis : CAWorld {
cutscenes[] = {"mymainmenu"};
};
class Stratis : CAWorld {
cutscenes[] = {"mymainmenu"};
};
class Enoch : CAWorld {
cutscenes[] = {"mymainmenu"};
};
class hellanmaa : CAWorld {
cutscenes[] = {"mymainmenu"};
};
class hellanmaaw : CAWorld {
cutscenes[] = {"mymainmenu"};
};
class VR : CAWorld {
cutscenes[] = {"mymainmenu"};
};
initWorld = "VR";
demoWorld = "VR";
};
class CfgMissions
{
class Cutscenes
{
class mymainmenu // Class referenced in 'cutscenes' property in CfgWorlds
{
directory = "\PTF_Menu\mainmenu.vr"; // Path to scenario with the scene
};
};
};
try newer loadorder maybe
what would be the newest one? oldman?
its in one of the pinned messages if I remember right
when i run it with "A3_Data_F_Decade_Loadorder"
it still just flashes and gose to a static image
it dose show that its starting in my rpt
17:31:00 Starting mission:
17:31:00 Mission file: mainmenu
17:31:00 Mission world: vr
17:31:00 Mission directory: \PTF_Menu\mainmenu.vr\
How are hidden selections configured on the Mk32 GMG variants? I'm trying to make a retexture but the configs don't have the entry arrays filled out (so they are defined in the model, which I cannot see)
you can test by using the setObjectTextuere for various selection numbers
I tried that but yielded no results, since hiddenSelections[] = {};. Currently testing what happens if I define some of these using some common selection names - maybe they're in the model but unused.
However, I did locate the textures inside \static_f_gamma\data
it is possible it does not have any
camo1 camo2 camo3 seems to be present
Found that out for myself when I discovered that after defining the HS[] but not the HST[] the turret disappeared!
Tex 01 is the colored part of the turret, Tex 02 is the stand + optic(?), Tex 03 is the autonomous addon module
Confirmed that the turrets are retexturable - you just need to manually define hidden selections; sample config and results below, same textures work for raised, low, autonomous variants:
class B47_WZ_M307X1_Raised_base: B47_WZ_M307X1_Raised_base2{
author = "brendob47";
hiddenSelections[] = {"camo1", "camo2", "camo3"};
hiddenSelectionsTextures[] = {"\a3\static_f_gamma\data\staticturret_01_co.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\a3\static_f_gamma\data\staticturret_03_co.paa"};
textureList[] = {"B47_WZ_Olive", 1};
class TextureSources{
class B47_WZ_Olive{
author = "brendob47";
displayName = "Olive";
textures[] = {"\a3\static_f_gamma\data\staticturret_01_co.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\a3\static_f_gamma\data\staticturret_03_co.paa"};
};
class B47_WZ_Black{
author = "brendob47";
displayName = "Black";
textures[] = {"\b47_Wz_factions\data\tex\statics\b47_m307_01_dark.paa", "\a3\static_f_gamma\data\staticturret_02_co.paa", "\b47_Wz_factions\data\tex\statics\b47_m307_03_dark.paa"};
};
};
};```
Can any one tell me what i do wrong The first uniform is glitch but the seccond one work just fine
class HitPoints {
class HitFuel {
name="myHPname"; //you are missing this parameter
};
};
So I tried to increase radar range on a vehicle through class AirTarget and while on the panels it shows the range is increased it doesn't really detect anything over like 21-22 KM is it like a engine limitation or am I just doing something wrong (I have both objectDistanceLimitCoef and view DistanceLimitCoef set to -1 btw)
could very well be engine limit
I did not idk what was wrong but it works now.
I have been looking at this for a while, trying to figure out if this is the same issue I am having. When I press RBM to go into the optics, the camera seems to be looking "straight ahead", but the default direction of my barrel is offset some 12 degrees, and I would need to create this same offset for the optics.
My assumption was memorypointCamera controls the initial camera position, and cameraDir controls the direction the camera is looking, but I reckon this is not true, since it does not work for me.
class MainTurret : MainTurret {
gunnerAction = "Mortar_Gunner";
gunnergetInAction = "GetInLow";
gunnergetOutAction = "GetOutLow";
weapons[] = {QUOTE(TBD_2B9_WEAPON)};
elevationMode = 1;
initCamElev = 20;
minCamElev = -35;
maxCamElev = 35;
initElev = 0;
minTurn = -30;
maxTurn = 30;
initTurn = 0;
cameraDir = "look";
discreteDistance[] = {};
discreteDistanceCameraPoint[] = {"gunnerview"};
gunnerForceOptics = 0;
maxVerticalRotSpeed = 0.05;
maxHorizontalRotSpeed = 0.1;
memoryPointCamera = "gunnerview";
memoryPointGunnerOptics = "gunnerview";
gunnerOpticsModel = QPATHTOF(TBD_2B9_VASILEK\scope.p3d);
gunnerUsesPilotView = 1;
disableSoundAttenuation = 1;
class ViewOptics : ViewOptics {
initAngleX = 0;
minAngleX = -30;
maxAngleX = 30;
initAngleY = 20;
minAngleY = -100;
maxAngleY = 100;
initFov = 0.174;
minFov = 0.0077778;
maxFov = 0.14;
visionMode[] = {"Normal"};
};
minelev = -12;
maxelev = 68;
gunBeg = "usti_hlavne";
gunEnd = "konec_hlavne";
ejectDeadGunner = 1;
usepip = 2;
discreteDistanceInitIndex = 0;
primaryGunner = 1;
memoryPointsGetInGunner = "pos_gunner";
memoryPointsGetInGunnerDir = "pos_gunner_dir";
proxyType = "CPGunner";
};
};```
Hey peeps, i got a problem with my turrets: in this tracked apc with no commander seat, an unknown and unnamed turret keeps popping up in the available slots. There should be just cargo seats, which work fine, but this undefined turret is somehow there. This is the bit of code related to turrets in the config:
you are supposed to define memory points in ViewOptics
class DaysightWFOV: ViewOptics
{
camPos = "m151_dk_pos";
camDir = "m151_dk_dir";
opticsDisplayName = "DK";
gunnerOpticsModel = "\rhsusf\addons\rhsusf_optics\data\rhsusf_CROWS_monitor";
initFov = 0.7;
minFov = 0.0233333;
maxFov = 0.7;
visionMode[] = {"Normal", "TI"};
thermalMode[] = {0,1};
hitpoint = "Hit_Optic_CROWS_Day";
};
So you have 7 cargo seats and their CARGO proxies are 1 to 7?
cargoProxyIndexes[]={1,2,3,4,5,6,7};
transportSoldier = 7;
You have 1 driver and 1 GUNNER proxy?
Correct yep
Can an item be configured such that it ocupies the Radio slot but the radio protocol remains unavailable?
likely not
the item slots are meant for the specific items
not for anything else
generic or other purpose items are usually set up as magazines etc that can be just in the inventory
Ugh I wanted to make a Radio (Defunct) that would be inventory-swapped in my EMP script. Thanks anyway.
look into contact stuff if there was any solution for that
deactivated NVGs were added there
dont remember about radio
Oh I have NVG (Defunct) covered alright! Even made a static-ed/grayed-out NVG modeloptics from the Arma 2 samples. Much easier to understand than Contact's black screen if you didn't realize you got EMP'd and tried to turn on your NVG.
Maybe I'll mess with enableRadio in the script itself.
id wager that may be the right approach
Ehh but I have permanent variations of the module, and I have no way to account for players picking up a new (functional) radio from a supply crate. They'd still be left radio-less according to the script.
Oh well, it's already more detailed than I had initially hoped.
problaby you could remove the working radio and add a broken/disabled radio item to the inventory
the broken one dont need to be in the radio slot
Ooh, good idea! Now I actually have to think about TFAR compatibility now. Maybe a generic broken radio and an isKindOf check should work.
well if you dont have compatible radio on you you dont have radio
if you remove radio then you dont have radio
and the broken radio would be generic item type
or magazine
that wont trigger TFAR
Oh true. Still need consideration for TFAR LR backpacks and vehicle radios then. Given how interesting one of my campaign missions was when a player who was RP'in a little hard faked a radio blackout, an actual LR blackout with TFAR would be very nice.
Mikero's tools release 9.46
Improved syntax listing for dos exes . Plus,
-# will show the arg,u,ments. good for tracing what went bang.
This 'improvement' only happens when the exe itself needs fixing/improved.
new improved dos dertm(again)
dos rapify now uses a -dayz option. (Added to the ofp,arma,xbox and vbslite stable)
The output for dayz is currently identical to arma. Until it isn't.
But (some) different warning messages are issued.
Under the covers the dll has been tweaked in several areas. Like all installer.exes,
the list of them is in depbofixes.txt
Enjoy
How do I fix the suspension to where my vehicle doesn't bounce while standing still.
I've done the math for the suspension configurations to a T according to the formulas, but it still bounces side to side as soon as I start it up, then bounces front to rear when I start moving
i'm trying to make my weapon to have RHS grips, but they are all invisible, ie no model is showing, even though the grips are available in the menu?
basic bipods etc are showing, and i really dont know where to start or what to do to fix
EDIT: NVM i fixed it by creating a custom gripslot
next question, where was the weapon impact stat defined?
Need to see
- memory points for wheels (centre, bounds, damper axis)
- Geometry LOD total mass and centre of gravity
- Geo Phys LOD
- model.cfg (bones and anims) pertaining to wheels and dampers
- config.cpp class Wheels {}
Also check in Buldozer that your wheels move up/down correctly with the damper source (ie direction)
looking to animate the raising of an ATGM launcher, ideally when the weapon is selected. but also fine with manual raising via scroll menu.
been looking around model.cfgs/animationSources & userActions but can't quite figure out what I'm missing from the model.cfg to the config.cpp to get this to animate.
Vertex groups are assigned & axis are present. any points of interest would be helpful here, cheers
There was something wrong in this? πππ»ππ»
What's actually the problem?
It doesn't match with your picture which shows 1 driver, 2 turrets and 3 cargo.
3 cargo because i just slapped in there a 4 man squad; the additional unnamed turret is the problem yep
Just to show the unnamed turret
I've now managed to get it to animate however its instant.
vehicle player animateSource ["spike_rail", 1, false]; works but the animation is instant, no interpolation between 0 & 1. have adjusted animPeriod but no luck
Have you put the animPeriod in class AnimationSources?
Use Leopards Advanced Developer Tools to get a better config viewer.
Go in game, open the config viewer and look at the turret structure, see what it shows and where it is inheriting from?
Screenshot it here if you need help with understanding it.
I believe you can make it pop up with isSelected source(animationSource needs defined with the weapon) or with maxHoldsterValue source (holdster value needs to be defined in the weapon class)
That works on vehicles?
yeah its in the animSources & the model CFG
holdster value for sure. the isSelected ,maybe
awesome, any basegame vehicles that do this I could maybe look through for reference?
planes with weapon bays
all I can think of is the comanche but looking at that I couldn't see much
I'm dubious that isSelected works
Is it a "user" type animation source?
Have you also put it in the virtual garage?
AnimationSources :
if this is what you mean, then no π
I figured source pointed to the model CFG
ah so the class "name" {
is what actually points to the right selection?
no, the source in model.cfg is the class name from animationSources
copy, that explains why it was somewhat working lol
testing now
awesome, animating now cheers.
looking around for pylonbay stuff atm, not much joy yet. will keep searching
weapon would have this
and this would then correspond to at what value the model.cfg animation happens
the value can be anything to allow multiple different weapons use it in same vehicle
when a vehicle has this weapon selected the maxholdster value is 1
another example with different value
ahh, I was searching for "holster"
this holdster value would open up different bay
I see. then I'd need to work something out with the model cfg
I see the "isSelected" & "maxHoldsterValue" in there, how would I go about having the launcher react to that value change
ahh right, right
Mmm could this be the problem? The fact that this viewpilot shows up in turrets?
all setup now, working exactly as described. cheers
I also checked the rpt file, and there are error messages about viewpilot
Yep, click on ViewPilot to see where it comes from
Remove that
Oh God, always these stupid errors. Thanks Apollo
Most of us make the same errors, but after a while you get to know how to find them yourself.
while = few years π
I need some help with making a config for head/face. i am super duper lost
never done it before and would love some help
Start off by downloading the Arma 3 Samples from Steam and look through the Test_Character_01 files.
alright, ill take a look . right now i had made a custom face (on photoshop) and found an arm then put tats on that (on ps) now im trying to link them together and get into game with it
this stuff really hurts my brain π LOL
sorry I don't mean to spam questions in here(more so, don't want to look like I'm not trying to figure things out myself first), buuut. I can't figure out how I'd go about changing the muzzle firing position of a second weapon in the gunner seat.
eg, my ATGM is firing from the cannon barrel instead of the launcher, I've read over the gorgon config(which does this correctly) for over an hour now but can't find what I'm missing
Try something like this:
gunBeg = "usti hlavne"; // ATGM
gunEnd = "konec hlavne"; // ATGM
selectionFireAnim = "";```
testing now, cheers
well no joy, both weapons firing from the same pos still. do now have this constant muzzle flash going on though lol
Because you have two weapons you'll have to do a manual muzzle flash animation using model.cfg
Obviously the memory point names need to match those in the weapon config
Having a cannon AND an ATGM on the same turret is not trivial
What determines if you can access a vic's inventory from outside of it?
I believe its this memory point but I could be very wrong. "doplnovani" though subject to change via config I imagine
its the center of the access area, so in my case the rear would be the side you can rearm from
there is a value for how long radius it can be accessed from
and the name of the point can also be defined in config
I got rid of my bouncing in place issue by using the sample car weight for my geo lod and used its physx, model, and config.
Now my vehicle Flys away if I don't spawn it slightly above ground, and when it touches the ground; only two wheels make contact with the ground.
And I mean when two wheels only make contact; the other two are like a players height in the air
most likely your wheel diameter points still have some sort of issue that the physX wheels become too big
is there a way to assign weight to verts in blender? I've seen the object properties for it but never a way to edit them
what weights?
these, Geo LOD
object needs to be geometry lod and in edit mode you can find this dialog open
ahh damn, spent ages searching. doesn't show up outside of edit mode
Trying to make a turret right now, but I am having an issue. I want this turret to not have a camera that you right click into. How can I disable this camera to make it similar to a vanilla hmg?
simplest way is to inherit vanilla HMG config to get its view setup
mimick what it has
So instead of inheriting 'MainTurret', just do vanilla hmg instead?
yes you can inherit the turret config directly from the existing vehicle
though it too might have its onw MainTurret
Im pretty sure it just an empty gunnerOpticsModel that does it for vehicles
empty as in, an empty string, not an empty p3d
empty p3d is for when you want to do ironsights
Yeah, I wanna have the turret use Iron sights. So is that a config or p3d thing?
both you can just set
gunnerOpticsModel = "\A3\weapons_f\reticle\optics_empty";
in the turret config tho
Damn, I already have that and it still has the camera screen thing
you might have some opticsIn definition then or similar which overrides it
How do you have components in edit appearance in the garage be set default enabled?
From checking my aio config, I am guessing it is animationList. Additionally, can set forceAnimate for better configurations
Having some trouble with implementing the component animation source customization. Options are not selected on init in component list in garage and do not hold when clicked and applied.
Is anyone aware if it's possible to have a grenade explode on impact with a soldier?
I've been trying to set up a config for a impact grenade which will explode immediately when it hits someone.
This is where I'm at right now.
class GrenadeHand_Impact: GrenadeHand
{
hit = 1;
indirectHit = 30;
indirectHitRange = 1;
dangerRadiusHit = 1;
suppressionRadiusHit = 10;
typicalspeed = 200;
model = "\tc\impact\impact.p3d";
CraterEffects = "NoCrater";
explosionEffects = "NoExplosion";
soundHit[] = {"",1,1};
explosive = 0;
deflecting = 7;
fuseDistance = 0;
explosionTime = -1;
cost = 1;
whistleDist = 0;
timeToLive = 18;
class EventHandlers
{
hit = "systemChat format ['hit EH output: %1 [time: %2]', _this, time]";
ammoHit = "systemChat format ['ammoHit EH output: %1 [time: %2]', _this, time]";
};
};
The grenade goes through soldiers and explodes behind them.
The ammoHit event does fire, but only once it has exploded.
Does Hit fire?
It doesn't appear to.
Ohh. Thank you
Oh wait these EHs are something different
Ammo Config Events
There are three event handlers that can be set on ammo in config:
I guess you need to add Fired event handler which then adds HitPart to the projectile (_this select 6)
Then you check if HitPart hit a unit (_this select 1 isKindOf "Man"?), then you force trigger it with triggerAmmo
But all this will work ONLY if grenades fire HitPart when they hit something
shotShell certainly do, but grenades are something else
shotGrenade?
Are you saying that HitPart is dependent on Fired being bound? I'm not quite sure what you mean here
There is no way to add HitPart from config it seems
You'll have to do it through fired which is add-able in config
Ah I see
fired = "_this select 6 addEventHandler ['HitPart', {systemChat format ['I just hit %1', _this select 1]; if(_this select 1 isKindOf 'Man') then {systemChat 'Boom?'; triggerAmmo (_this select 0);}}]";
haven't tested
Oh there is also init
init = "_this addEventHandler ['HitPart', {systemChat format ['I just hit %1', _this select 1]; if(_this select 1 isKindOf 'Man') then {systemChat 'Boom?'; triggerAmmo (_this select 0);}}]";
I think _this is not an array but the entity itself?
Don't know which _this but init has [entity] too
Guess we can only figure out through test
Some EHs provide the entity and not an array with entity, thought maybe its the case here
I'll be trying out these options tomorrow. Thank you for the pointers
Applies when loaded in mission but box doesnβt stay checked. Good enough
AnimationSource class name in config.cpp and animation class name in model.cfg have to be identical for the VG iirc.
Quick question, can I use spaces between words for class names?
Like "class desert bdu"
Or does it have to be "class desert_bdu"
no spaces
Thanks. Seems the selection/bone name needs to be the same as well.
that's because the classname is triggered by the bone
Set its view optics to 0
If adding OpticsModes to a weapon from scratch, do you need to define anything other than the OpticsModes class itself?
Running into an issue where I can't seem to use an optic even though it's defined.
class BNA_KC_arifle_base;
class BNA_KC_arifle: BNA_KC_arifle_base {
class OpticsModes {
class Zoom {
cameraDir = "";
distanceZoomMax = 200;
distanceZoomMin = 200;
memoryPointCamera = "Optics1";
opticsDisablePeripherialVision = 0;
opticsFlare = 0;
opticsID = 1;
opticsPPEffects[] = {"Default"};
opticsZoomInit = 0.75;
opticsZoomMax = 1.25;
opticsZoomMin = 0.25;
useModelOptics = 0;
visionMode[] = {};
};
};
};
Is the optic built in? Or separate
//Optics and zeroing
modelOptics = "\OPTRE_Weapons\Sniper\Sniper_Oracle10_Optic"; //TODO?
opticType = 1;
optics = 1;
opticsID = 1;
useModelOptics = 1;
opticsZoomMin = 0.01;
opticsZoomMax = 0.25;
opticsZoomInit = 0.25;
opticsFlare = 1;
opticsDisablePeripherialVision = 1;
reloadAction = "WBK_M99_Reload";
reloadMagazineSound[] = {"\OPTRE_Wbk_WeaponImprovements\reload\srs99_reload.ogg",2,1,25};
opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"};
visionMode[] = {"Normal","NVG","TI"};
thermalMode[] = {0,1,5,6,7};
discretefov[] = {0.25,0.05,0.025,0.01};
discreteinitIndex = 0;
discreteDistance[] = {
50,
100, 150,
200, 250,
300, 350,
400, 450,
500, 550,
600, 650,
700, 750,
800, 850,
900, 950,
1000, 1050,
1100, 1150,
1200, 1250,
1300, 1350,
1400, 1450,
1500, 1550,
1600, 1650,
1700, 1750,
1800, 1850,
1900, 1950,
2000
};
discreteDistanceInitIndex = 1;
distanceZoomMin = 100;
distanceZoomMax = 2000;```
Make modelOptics an array if you have more than one zoom level scope UI
What determines the muzzle flash of a gun?
It is zasleh selection by default
the flash is zasleh?
Yes
And it does mean it is a part of model
Ohhh... So changing a gun's muzzleflash without having access to the model isnt possible?
Correct

Is it possible to edit weapon config settings while the game is running? I want to tweak sqf scripts and reload them live.
Check pinned
I'm not having much luck with this.
When the grenade is thrown the 'HitPart' message is printed. But it trigger againt when the grenade hits someone.
class EventHandlers
{
init = "_entity addEventHandler ['HitPart', systemChat 'HitPart']";
};
_entity is not defined there
I was trying to follow the documentation for the init here - https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#Init
This is my first time doing this so I'm not quite sure how the syntax is meant to be written
params ['_entity'];```This is how `_entity` is defined
So I'm guessing that the event handler init should be written like this
init = "this addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";
Since it's being called on the object itself
init = "(_this#0) addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";```or
```cpp
init = "params ['_entity']; _entity addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";```
Thanks, that's taken me a step further.
I'm able to run the following
class EventHandlers
{
init = "params ['_entity']; systemChat 'Added Event'; _entity addEventHandler ['HitPart', {systemChat format ['HitPart at %1', time]}];";
};
This doesn't trigger the HitPart message when the grenade goes through a soldier
I know this is functionally adding a event handler as I can change the Event to 'Explode' and it will fire.
need some help with inheriting RHS blackhawk and changing gunners, current code is this but i breaks the rightdoorgun;
class RHS_UH60M_d;
class PB_AUS_UH60M_A: RHS_UH60M_d
{
class Turrets;
};
class PB_AUS_UH60M_B: PB_AUS_UH60M_A
{
class Turrets: Turrets
{
class CopilotTurret;
class MainTurret;
class RightDoorGun;
class CargoTurret;
class CargoTurret_01;
class CargoTurret_03;
};
};
class PB_AUS_UH60M: PB_AUS_UH60M_B
{
class Turrets: Turrets
{
class CopilotTurret: CopilotTurret
{
};
class MainTurret: MainTurret
{
gunnerType = "PB_AUS_SOL_HP";
};
class RightDoorGun: MainTurret
{
gunnerType = "PB_AUS_SOL_HP";
};
class CargoTurret_01: CargoTurret
{
};
class CargoTurret_02: CargoTurret_01
{
};
class CargoTurret_03: CargoTurret_01
{
};
class CargoTurret_04: CargoTurret_03
{
};
};
};```
class RightDoorGun: MainTurret?
thats how it is in the RHS config atleast
But it is your UH60 config no?
yeah, but im inheriting it from the rhs one, so i should have roughly same class names at is has, no?
But your config is inheriting PB_AUS_UH60M_B's MainTurret
Don't you have to inherit from RightDoorGun?
ah, i see
If a bullet class was to add an event for Penetrated (https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#Penetrated)
Would it fire if the bullet travelled through a soldier?
{
};```
any 'empty' statements like this are effectively a nop. (not to be confused with
class elephants{}; // empties the entire contents
Even though the inheritance there looks wrong, turrets need to be declared like that to make it work, AFAIK
also RHS should know better than to fully uppercase their classnames. They scream #defines, you should not mimic a very., very, bad practice.
Just inherit doesn't work on turrets
yeah they need to be done like that, otherwise things will not work
Try it
class elephants{}; // empties the entire contents
it doesn't
you might be confusing it with
class elephants;
Nope. I'm not. {} doesn't make it empty
that's how turrets{} are removed from 'vehicles' that don't need them.
yes, that's by definining an empty class instead of inheriting a one from the parent.
But it's not "emptying the entire contents"
that is simply misleading.
also
class elephants;
and
class elephants {};
do exactly the same if there's no class to import.
Ok! Have to agree here that I'm wrong and misleading.
yeah as veteran said you need to inherit turret from its parent:
class CfgVehicles {
class All {};
class AllVehicles: All {};
class Land: AllVehicles {};
class LandVehicle: Land {};
class Tank: LandVehicle {};
class Tank_F: Tank {
class Turrets {};
};
class MBT_01_base_F: Tank_F {
class Turrets: Turrets {};
};
};
if you try this nothing will become empty even tho you have {}s all over the place (but you need the correct mod dependency ofc)
Having problem with preprocessor commands by using pboProject
\\ shotTimer.hpp
#define SHOTTIMERITEM(CN,DN,DS,AUTHOR,WEIGHT) \
class ##CN##: ItemCore \
{ \
displayName = ##DN##; \
descriptionShort = ##DS##; \
author = ##AUTHOR##; \
scope = 2; \
type = 131072; \
class ItemInfo : InventoryItem_Base_F \
{ \
allowedslots[] = {701, 801, 901}; \
type = 620; \
mass = ##WEIGHT##; \
}; \
};
\\config.cpp
#include "\leon\shot_timer\commons\shotTimer.hpp"
class CfgWeapons
{
class ItemCore;
class InventoryItem_Base_F;
SHOTTIMERITEM("LEON_ST_ClubTimer2","Club Timer 2","Shot Timer by PACT","Leon",2);
};
pboProject error about this
\leon\shot_timer\club_timer_2\config.cpp Rapify:Rap: In File \leon\shot_timer\club_timer_2\config.cpp: circa Line 7 label is not alphanumeric
.preprocessing files produced an error
Problem solved, the replacement should be what it excatly
// from SHOTTIMERITEM("LEON_ST_ClubTimer2") to SHOTTIMERITEM(LEON_ST_ClubTimer2)
-"LEON_ST_ClubTimer2"
+LEON_ST_ClubTimer2
##CN##
Thats nonsense. ## is used as a separator between non-whitespace characters.
But you have whitespace there, you don't need any separator. It should be just CN
Same for all your others that are like that
It was like that here:
https://community.bistudio.com/wiki/Arma_3:_Characters_And_Gear_Encoding_Guide#Using_Macros
So i am guessing he was following the example.
yes. had to absorb all the above. the rapify module of the dll is parsing that macro quite happily. It is also coping with the ## word delimeters. It would have warned you that neither of them were necessary.
"label is not alphanumeric"
because it had " characters
'label' isn't really sufficient, it should say 'class label'. will fix on next release.
Anyone else having issues making variable zoom optic using CBA Accessory Functions?
I am having some of my optics just disappearing rather than switching
class NAVSPECWARGRU2_NF_ATACR18_x1: ItemCore
{
weaponInfoType = "scope_1x_pip_handler";
author = "Natan Brody";
scope = 2;
displayName = "[NSW] Nightforce ATACR 1-8x24mm";
picture = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Equipment_Uniform_Base\UI\NAVSPECWARGRU2_ca.paa";
model = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Armory_Weapons_Optics\Optics\ATACR\18\ATACR18_1x.p3d";
ace_scopeZeroRange = 100; // Overwrites the ace_setting default zero range
ace_scopeHeightAboveRail = 3.9625; // Distance between center of scope and rail in centimeters
ace_scopeAdjust_vertical[] = {-15, 15}; // Maxmimum vertical adjustment limits
ace_scopeAdjust_horizontal[] = {-15, 15}; // Maximum horizontal adjustment limits
ace_scopeAdjust_verticalIncrement = 0.1; // Vertical increment
ace_scopeAdjust_horizontalIncrement = 0.1; // Horizontal increment
MRT_SwitchItemNextClass = "NAVSPECWARGRU2_NF_ATACR18_x2";
MRT_SwitchItemPrevClass = "NAVSPECWARGRU2_NF_ATACR18_x1";
MRT_switchItemHintText = "Magnification 1x";
class ItemInfo: InventoryOpticsItem_Base_F
{
mass = 6;
RMBhint = "Adjustable Range Optics";
opticType = 1;
optics = 1;
modelOptics = "\A3\Weapons_f_beta\acc\reticle_MRCO_F";
memoryPointCamera = "eye";
class OpticsModes
{
class IronSight
{
opticsID = 1;
useModelOptics = 0;
opticsPPEffects[] = {};
opticsFlare = 0;
opticsDisablePeripherialVision = 0;
opticsZoomMin = 0.75;
opticsZoomMax = 0.75;
opticsZoomInit = 0.75;
memoryPointCamera = "eye";
visionMode[] = {};
discreteDistance[] = {100};
discreteDistanceInitIndex = 0;
distanceZoomMin = 100;
distanceZoomMax = 100;
};
};
};
inertia = 0.6;
};
class NAVSPECWARGRU2_NF_ATACR18_x2: NAVSPECWARGRU2_NF_ATACR18_x1
{
weaponInfoType = "scope_2x_pip_handler";
author = "Natan Brody";
scope = 1;
model = "\NAVSPECWARGRU2\NAVSPECWARGRU2_TACDEV_Armory_Weapons_Optics\Optics\ATACR\18\ATACR18_2x.p3d";
MRT_SwitchItemNextClass = "NAVSPECWARGRU2_NF_ATACR18_x3";
MRT_SwitchItemPrevClass = "NAVSPECWARGRU2_NF_ATACR18_x1";
MRT_switchItemHintText = "Magnification 2x";
class ItemInfo: InventoryOpticsItem_Base_F
{
mass = 6;
RMBhint = "Adjustable Range Optics";
opticType = 1;
optics = 1;
modelOptics = "\A3\Weapons_f_beta\acc\reticle_MRCO_F";
memoryPointCamera = "eye";
class OpticsModes
{
class IronSight
{
opticsID = 1;
useModelOptics = 0;
opticsPPEffects[] = {};
opticsFlare = 0;
opticsDisablePeripherialVision = 0;
opticsZoomMin = 0.75;
opticsZoomMax = 0.75;
opticsZoomInit = 0.75;
memoryPointCamera = "eye";
visionMode[] = {};
discreteDistance[] = {100};
discreteDistanceInitIndex = 0;
distanceZoomMin = 100;
distanceZoomMax = 100;
};
};
};
inertia = 0.6;
};
Theoretically based upon their wiki it should all work
Would anyone here have any idea how to go about making a config to make an unarmed player have the same movement options and move at the same speed as someone armed with a rifle?
I'm in a WWII unit and am trying to make this for our unarmed medics so they can stay at the same pace with the infantry during formations.
I'm not even sure if it's intentional that the movement speeds vary :P
As far as I know it's based on animations, so I suspect it won't be easy to equalize.
I've tried changing the speed of the unarmed running animation to match that of the rifle animation and it doesnt seem that the "speed = " modifier is actually what controls how far a person moves in the world.
One attempt had me changing the walking animation of the unarmed to the running animation of the unarmed and then tweaking both the walking and running speed classes' speed to be the same as the rifle tac movement animation and running animation.
The problem I encountered was that in game by default the unarmed running moves the player faster than both the tac rifle movement and the running rifle movement, but the unarmed running animation plays by default at a speed halfway between both of those in the config.
So that makes me think that "speed = " doesnt actually control the traversal rate of a player.
Well, the animation would have an inherent movement speed as well.
I'd have thought you could use speed to tweak it until they were equal.
Ignore the values and just adjust them until it works.
Assuming that changing speed does also change the traversal speed.
I guess to rephrase, based on the animation viewer in the editor where it shows how long an animation plays before it loops, with a speed setting of 1, the unarmed running animation plays for 0.6 seconds, while the rifle running animation plays for 2.48 seconds and the rifle tac movement speed plays for 0.416 seconds. With these values you would expect the unarmed running to be faster than the tac rifle movement but slower than the running rifle movement, but thats not the case.
Unarmed running is faster than both
I guess I could try to brute force it with multiple iterations of the speed value change but its really hard to test solo.
I had another idea for an attempt at doing this where I would just add an invisible rifle and have the medics carry that in their weapon slot, affording them the same speed and movement options of infantry. But I don't know how to go about doing that and have the hands not be holding an invisible rifle.
If you want a better method than brute force, try running this to get a readout of your true speed:
onEachFrame {
hint format ["Speed %1", vectorMagnitude velocity player];
};
Then you can do a tiny bit of maths to rescale.
I am assuming that speed in the animations is linearly related. Not my thing.
from what I've read speed is the percentage value of the animation play time. So a value of 0.5 would play 50 frame of a 100 frame animation.
Would you have any insight on how to accomplish this method? It would be the most feature complete if implemented.
Nah, you'd need someone who knows what they're talking about with animations.
Thanks for you help. Seriously that line of code above that you posted was a life saver. I think I'm getting close.
Doing this though will eliminate the ability to walk normally. Would you happen to know how to make my changes apply via a toggle keypress?
You can't change config live. There is https://community.bistudio.com/wiki/setAnimSpeedCoef, but it might trip over other mods.
animation playback speed does control how fast movement is
but each move animation can have different direction vector set
I got that. Was just confused.
so just looking at animations and their playback speed, you wont get anything useful for actual movement speed
Proper way of binding keys now is this, I think: https://community.bistudio.com/wiki/Arma_3:_Modded_Keybinding
I achieved my goal. Thank you guys for your help 
hello, for some reason i have infinite ammo when im shooting with my custom weapon, and when i reload the secondary my primary weapon comes up and messes up the animation, is there a way to fix that\handle that? or is that the rtm file that does?
Do you test your mod with some extra mods on top
If yes, disable everything else
i test with RHS, ace and CBA
i tested without ACE and same results
RHS is a dependency for the mod
It is possible your rtm is messed up for the secondary weapon.
guessed so :\
Is there something out of ordinary you try to do?
i dont know if thats crazy, but i put the grenade launcher in the secondary slot as a "pistol"
but other than that, im not adding anything else for that
i took insperation from the basic cpp from the assets
so the RTM ill fix it, but the infinite ammo is the biggest problem here
it dosent have anything that messes up the ammo counter
Anyone alive?
That's not how the channel works. You ask the question and someone reads it when they have time.
It's crazy yes
You need a separate model for that and it will be held like a pistol
Separate model because pistol needs to be little off center to not clip into the hand
so basicly 2 models?
Because the pistol proxy is designed poorly
oh, ok
How important is it to have it as secondary weapon?
And how much are you willing to compromise with it
You re unlikely to be able to make it same as primary
the weapon needs to be in the secondary slot or the third slot
will that still be the problem?
or it needs to be in the primary slot?
Yes
understood, ill convert it to primary weapon and save myself the headache
For weapon like that anything but primary weapon is difficult
yeah, i searched in the forums and nothing poped out about the infinite ammo bug in the secondary weapon
or no mentions
but ill figure something out
thanks for the help π
can say I recall hearing such happening
probably some error in your configs
maybe you set it to use 0 ammo on each shot or something
nope, i dont play around with the ammo count everytime im shooting
Guys I'm trying to add a uniform it works but the texture it's the default uniform texture
It's like I copied that uniform and changed the name
copied it how?
I reskined an uniform and I wanted to add it
It worked
But not the texture
It's already retextured
but you did also a retexture?
I retextured a Paramilitary uniform and I wanted to add it as a new uniform
It worked
But the texture of that uniform its still the vanilla texture
uniforms are 2 part
the uniform item in cfgWeapon
the uniform character/unit in cfgVehicles
retexturing via hiddenselections needs to be applied on both but the cfgVehicles unit is what you see on you/on a character
the cfgVehicles Item is what you see in inventory
do you have both parts?
2 texture files or 2 lines in config?
Yes it has both
found the problem
i initialized the class Mode_SemiAuto; inside of CfgWeapons, fix is to initialize it outside of the CfgWeapons
game should be complaining about that if you try to create a weapon called Mode_SemiAuto like that
well now i found out that the game dosent care, same case with mikeros tools
anyone know which example in arma 3 samples has the CfgSurfaces
cant seem to locate it
none?
but you can find that in vanilla config
so what its just a new class name i chuck in to my code?
trying to make it so my ship interior has metal footstep sound when im walking about it
do you need new surcace for that?
im fairly sure there is a metal surface already in you could use
from what im reading theres a couple of existing things already im just wondering how do i go about telling the code
hey i want it to sound like this when a player walks on this surface and when it gets shot
theres these:
soundEnviron = "drygrass"
soundHit = "concrete";
metal
metal_plate
and thats the metal Valid values
roadway mesh surface texture is what defines what sounds you make when you walk on it
ive got that so far afaik
check sample house roadway for reference
thanks amigo
Anyone know off hand how to hide shells ejecting from a custom ammo type?
I forgot.
Nvm, think I found it "cartridge" in cfgammo.
can planes be sling loaded by a helo? We're trying to add this to the Unsung O-1 Bird Dog, so it can be lifted by a heavy transport helo, like Chinook or CH-53, but so far I don't see it in the sling load assistant. Mem points are present in config and model
Yes, vanilla UAV can
thx! not sure what's missing then. mass is 1600, well within a Huron max lift capacity
Anyone can help?
Post your config, maybe it shows some error you're making
I used an app
these are wrong for the uniform model you use
this is what the model uses
That's for Paramilitary ?
yes. Always when you use vanilla things it is important to check the original class and its parents for all the relevant information
as you can see here this is the original class that uses that character and its parent is the class in the previous screenshot
and the hiddenselections are defined in that base class as I have marked
I just don't know how to add another uniform
I mean don't need to add number 2 or something like that?
you can name your classes whatever you like but it does help to keep the naming somewhat logical
Ok thanks π
if you look at how vanilla classes are built you can see that the base classes are not actually used by anything in game but act as the name says bases for furhter classes and the base classes compile the shared properties that need to be same in all further child classes
so you could have your current baseclass
and then someething like
class Myblackhand_01 : base_class
class Myblackhand_02: base_class
class Myblackhand_03: base_class
class Myblackhand_04: base_class
Still doesn't work
So i am new in modding sound, but what Settings in config changes the βechoβ Level when firing a gun?
zzzzzzzzzzzz
im not allowed to do this am i
agreed, you can't. You CAN inherit a common base class instead.
{ blah blah
}:
class Object
{
class attributeCategories
{
class KJW_Radiate: KJW_radiate_base{};
};
};
class Trigger
{
etc```
that's hardly your fault. it's the manner in which the inheritence chain is designed to maximise speed in operation. By no means a bad trade off. It's just possible but unlikely that their script.c language is even more efficient. (I'd vote for it regardless, if it replaced bloody awful sqX)
Config files are not really related to SQF. And the enfusion config format is way worse for humans to read.
haaaaaaaaaaa Have to (almost) agree. But the sooner sqX dissapears,the better the world will be. I am, biased.
And i was relating the compilability of script.c text rather than it's use.
@opal craterI am uploading a tiny bat file here that automatically greps any .rpt file for 'your' project
if not allowed, pls delete it
(just plunk this text in a bat file, into your .rpt folder)
Hmm? Where did that come from.
Anyone?
Can't find the problem
Goat already told you how to fix it
Where?π
Next comment after your question
U mean that pic?
@molten musk
Changed that to camo,camo still doesn't work
Any error or it just doesn't show up?
Doesn't show up
units[] = {"BlackHand"}
Change to
units[] = {"BlackHand_UniformBase"}
And add backslash to data paths,
"\BlackHand\Data\.."
Don't see anything else difference to uniform/ unit example config
https://community.bistudio.com/wiki/Arma_3:_Characters_And_Gear_Encoding_Guide
it makes sense i just dont like throwing base classes up there πββοΈ
Hey, anyone know what I'm doing wrong here?
Get an error message when booting up arma: File test\config.cpp, line 15: '/CfgEditorSubcategories.': '{' encountered instead of '='
File in question:
class CfgFactionClasses
{
class B_USAArmy_SOAR {
scope = 2;
curatorScope = 2;
displayName = "[GI] US Army - 160th SOAR";
side = 1;
priority = 10;
};
};
class CfgEditorSubcategories
{
{
class air_crew
{
displayName = "Air Crew";
};
};
{
class ground_crew
{
displayName = "Ground Crew";
};
};
{
class special_forces
{
displayName = "Special Forces";
};
};
};
#include "CfgPatches.hpp"
#include "CfgIdentities.hpp"
#include "CfgVehicles.hpp"```
{{ in cfgeditorsubcategories
youre enclosing all your classes in {}
but not the {} from editorsubcat
ah right, I see it now. Thanks!
so this, right? ```cpp
class CfgEditorSubcategories
{
class air_crew
{
displayName = "Air Crew";
};
class ground_crew
{
displayName = "Ground Crew";
};
class special_forces
{
displayName = "Special Forces";
};
}; ```
yes
thanks
hey, any idea what i might be doing wrong here?
vehicle is tilted
viewpilot is ok
viewcargo cargoturret is ok
viewcargo mainturret view doesnt tilt with the vehicle
I think vanilla boats have/had this issue
no idea why though, but I remember it
Your vehicle?
Only a problem in one turret view, all others ok?
Yes, every other view is ok
ok, and q1?
Yes, also my vehicle
So there's likely something wrong with the proxy / turret naming / configuration / animation
Does this turret move?
And should the character rotate around with it?
except for the view itself
does not, although, another vehicle with basically the same configuration inherited, in which the character does move, also reproduces this issue
Two things to check
- character proxy in p3d is upright (not leaning)
- character rtm applied in config (
gunnerActiongunnerInAction) doesn't have a lean to it - change for different poses
Also check what named selection is applied to the proxy and what animations are occuring on it
it seems to be an issue with the mainturret config itself
something being inherited from mainturret class defined by bohemia
need to investigate.
is the whole vehicle tilted or is it animated to tilt?
4 seems to be default in class Car mainTurret
and on boats
3 instances in all vanilla config with value 4
Why not just try an alternative stabilizedInAxes = 0 and see what if it fixes the issue?
π solid idea
I don't get people (in general), seems obvious to experiment and then report the result.
Probably come from a by-gone age where there was no vast knowledge of internet and it was easier to experiment than to try looking it up in your neighbours Encyclopaedia Britannica.
Which is why I reported it as the issue right above.
Ah, your one word report wasn't sufficiently verbose to give the idea that you had solved the issue or what you had changed it to.
Glad it's fixed though.
Sorry if it wasn't enough to understand, I'll make sure to utilize more clarifying terms next time. π
splendid ^ π
Getting error: File tfg_us_soar\tfg_us_soar_units.hpp, line 21: /CfgVehicles/tfg_us_soar_base.respawnlinkeditems: Member alteady defined:
#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"
class B_Soldier_Base_F;
class tfg_us_soar_base : B_Soldier_Base_F {
author = "Nibbles";
scope = 0
scopeCurator = 0;
displayname = "Bob";
genericNames = "tfg_us_names";
identityTypes = "tfg_us_men";
side = 1;
faction = "tfg_us_soar";
uniformClass[] = {"acp_US_OCP_core_U_Aetfgs_O_Soldier_03_US_OCP_insignia","acp_US_OCP_core_U_Aetfgs_O_Soldier_04_US_OCP_insignia"};
linkedItems[] = {"DEFAULT_ITEMS_RADIO"};
respawnLinkedItems[] = {"DEFAULT_ITEMS_RADIO"};
magazines[] = {R2("SmokeShell")};
respawnMagazines[] = {R2("SmokeShell"};
items[] = {"DEFAULT_MEDICAL"};
respawnItems[] = {"DEFAULT_MEDICAL"};
};
class tfg_us_soar_pilot : tfg_us_soar_base {
editorPreview = \x\\addons\busaarmysoar\data\preview\B_USAArmy_Pilot_SOAR_01.JPG;
author = "Nibbles";
scope = 2;
scopeCurator = 2;
displayName = "Pilot";
editorSubcategory = "air_crew";
linkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
respawnlinkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
weapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
respawnWeapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
magazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
respawnMagazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
};```
I can't seem to find the problem, could use an extra set of eyes...
seems like its probably causing it
the editorpreview part
(addon builder error messages suck)
in typical kjw fashion π
unfortunately, same error still
I removed the entire editorPreview line
according to the forums there's a class which has been defined twice... but there are only two classes and they're both unique lol
And this is under/in cfgVehicles?
You are including your macros and other classes in cfgVehicles or you haven't defined class cfgVehicles where your units should be
class CfgVehicles {
#include "tfg_us_soar_units.hpp"
#include "tfg_us_soar_vehicles.hpp"
};
Is what my cfgVehicles looks like, "tfg_us_soar_units.hpp" is what i posted above. "_vehicles.hpp" is currently empty
I am including my macro's, so that's probs what I'm doing wrong
yeh
if I do:
class CfgVehicles {
#include "tfg_us_soar_units.hpp"
#include "tfg_us_soar_vehicles.hpp"
};
#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"
Will that fix it?
so in your file should just be
// #include "tfg_us_soar_units.hpp"
class B_Soldier_Base_F;
class tfg_us_soar_base : B_Soldier_Base_F {
author = "Nibbles";
scope = 0
scopeCurator = 0;
displayname = "Bob";
genericNames = "tfg_us_names";
identityTypes = "tfg_us_men";
side = 1;
faction = "tfg_us_soar";
uniformClass[] = {"acp_US_OCP_core_U_Aetfgs_O_Soldier_03_US_OCP_insignia","acp_US_OCP_core_U_Aetfgs_O_Soldier_04_US_OCP_insignia"};
linkedItems[] = {"DEFAULT_ITEMS_RADIO"};
respawnLinkedItems[] = {"DEFAULT_ITEMS_RADIO"};
magazines[] = {R2("SmokeShell")};
respawnMagazines[] = {R2("SmokeShell"};
items[] = {"DEFAULT_MEDICAL"};
respawnItems[] = {"DEFAULT_MEDICAL"};
};
class tfg_us_soar_pilot : tfg_us_soar_base {
editorPreview = \x\\addons\busaarmysoar\data\preview\B_USAArmy_Pilot_SOAR_01.JPG;
author = "Nibbles";
scope = 2;
scopeCurator = 2;
displayName = "Pilot";
editorSubcategory = "air_crew";
linkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
respawnlinkedItems[] = {"ASZ_GearHelyPilot_MM","rhsusf_hgu56p_visor_black","rhsusf_ANPVS_15"};
weapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
respawnWeapons[] = {"tfg_M4A1_CCO","Tier1_P320","Binocular"};
magazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
respawnMagazines[] = {R7("rhs_mag_30Rnd_556x45_M855A1_Stanag"), R4("Tier1_17Rnd_9x19_P320_JHP")};
};
And rest of include in config.hpp
#include "..\tfg_main\tfg_script_macros.hpp"
#include "..\tfg_identities\tfg_identities_us.hpp"
#include "..\tfg_identities\tfg_identities_us_names.hpp"
#include "tfg_us_soar_weapons.hpp"
class CfgVehicles {
#include "tfg_us_soar_units.hpp"
#include "tfg_us_soar_vehicles.hpp"
};
perfect, thanks
and make sure you don't have multiple times
//soar_units.hpp
class tfg_us_soar_base: ...
//soar_vehicles
class tfg_us_soar_base: ..
I applied the changes you suggested - going to give it a try
I'm a bit puzzled about the error because I thought if you redefined the class then it told you so.
And redefining a member var is fine?
it's still not working - there are no other classes tfg_us_soar_base, just the one
But my inclination is that it's something in the includes causing the issue.
Whenever there's a sufficiently weird error it's in the code you didn't paste :P
can you paste your vehicles.hpp , if this what you post is units.hpp
good shout, I'm thinking it's the "DEFAULT_ITEMS" macro, but can't find it
vehicles is currently empty, it's a blank file
// Inventory
#define ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
name = #ITEM; \
count = COUNT; \
}
#define ADDMAG(ITEM,COUNT) class _xx_##ITEM { \
magazine = #ITEM; \
count = COUNT; \
}
#define R2(ITEM) ITEM,ITEM
#define R3(ITEM) ITEM,ITEM,ITEM
#define R4(ITEM) ITEM,ITEM,ITEM,ITEM
#define R5(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM
#define R6(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R7(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R8(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R9(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define R10(ITEM) ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM,ITEM
#define DEFAULT_ITEMS "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"
#define DEFAULT_MEDICAL R2("FirstAidKit")
Is the scripts_macro.hpp, DEFAULT_ITEMS is defined here
I was thinking, it might be here - but looks fine to me
missing )
``
no way
lmao
good catch
Arma launched, that's a good sign
I think it works
thank you @molten musk and @chilly tulip
Trying to work out what that preprocesses to with the missing bracket :P
how does one use the custom effects created in an ammo class?
If I get this correctly, the steps are:
- Create class for custom Effect in root of game? (Complex Effect)
- Create a custom entry in cfgCloudlets for you fantastic effect.
- Call custom effect/cloudlet from a class defined within the complex effect using simulation type as particles
- do stuff within the effect
- set explosionEffect in the entry of cfgAmmo using the complex effect
Is this correct?
I think you get the idea correctly
@wintry tartan
?
Hi I'm trying to figure out my problem idk whats wrong
I'm trying to add uniform with different texture
@wintry tartan here the config
And why you ping me
Cuz others couldn't help?
It's Paramilitary shirt
It's add uniform but the texture won't change
It shows the default texture
Camo,camo?
this
I changed that didn't worked
The problem is your parent class B_Soldier_F is wrong
Changed that to ind
Nothing worked
Needs to be I_C_Soldier_base_F
βDidn't workedβ βNothing workedβ without your code, yeah, it won't work
class BlackHand_UniformBase: B_soldier_F {
author = "β Punisherβ ";
vehicleClass = "BlackHand";
scope = 1;
displayName = "BlackHand Unit Base";
identityTypes[] = {"Head_NATO", "G_NATO_default"};
genericNames = "NATOMen";
model = "\A3\characters_f_exp\Syndikat\I_C_Soldier_Para_3_F.p3d";
uniformClass = "BlackHand_CamoBase";
hiddenSelections[] = {"camo1","camo2"};
hiddenSelectionsTextures[] = {"#(argb,1,1,1)color(1,0,0,1,co)"};
};```I've changed a BIT of your code and it worked, though
Yes and didn't showed the texture
How do u know it worked? u don't have my texture file
I put a procedural texture
"camo1","camo2"
Alrighty, thanks.
In another question; The ammo/projectiles event handlers behave differently if they are grenades vs bullets right?
Is a Hit considered an explosion on grenades? Since everything else pretty much seems to activate the hit handler on impact with other stuff in the world.
Not 100% sure. But EHs you can set in config are identical to things you can set in script, so you can test it easily
Ill try then, thanks for the input
The base game scientist clothing, the texture I applied to it is not showing in game but it is showing up as a selection in Ace arsenal, anyone wanna help me out?
You can also execute a script in cfgCloudlets
Yeah, I've been trying to set up the effects properly in order to execute functions from the coudlets, but I think the classes im inheriting from have limitations (flareShell) so I might have to set up the effects manually (more likely I dont know how they are supposed to work).
In the mean time I wanted to use the hit handler in order to test if the projectiles behaved properly in regard of actual script execution on impact.
Trying to make a projectile that falls like a flare but with a different pfx? I think I had to set them up as a submunition for doing like canopy smoke shells in RHS. i.e. I made a normal grenade that can be fired then turns in to the submunition that's set up as a flare
Its more of grenade that has the flare effects upon activation (or atleast thats the idea).
The only missing piece is the actual effects, as everything else behaves as expected. Might just as well create a particle effect from scratch and use the stone as parent xD.
I imagine this is config related, but I am creating a mortar with a new model and p3d wise it should be good (it rotates and elevates in game fine), but in the artillery computer it gives me this hexagon range. if I manually aim with page up and page down the tube aims and the shell goes in that direction. Anything simple I might be missing?
Is it custom shell too?
Is the configs derived from existing weapon/magazaine/ammo
just mortar model is diff, rest should be base game
Do you have the short, med, long range muzzles?
These are my only important config changes
class Turrets: Turrets
{
class MainTurret: MainTurret
{
elevationMode = 3;
magazines[] = {"8Rnd_82mm_Mo_shells","8Rnd_82mm_Mo_Flare_white","8Rnd_82mm_Mo_Smoke_white","8Rnd_82mm_Mo_guided","8Rnd_82mm_Mo_LG"};
initCamElev = 0;
maxelev = 45;
minElev = 0.0;
maxHorizontalRotSpeed = 3.6;
maxVerticalRotSpeed = 3.6;
disableSoundAttenuation = 0;
};
};
Yes
Do those give different ranges?
yes, the weird hexagon changes, heres far
Or is that the minimum range actually
looks to be min range
The hexagon means drawing circle has failed (more like the radius is minus)
Which means... yeah, it failed to calc the range
is it cause I have the minElev to 0?
let me try like, idk 5 for minElve
In your ui
oh
wait, should usti hlavne be the bottom or top of the tube
Depends what they correspond to in your config
Okay I think its p3d issue, the shells are launching the opposite direction so I prob messed up there, ill revist the p3d and try again
If you try to create circle marker but give it negative size it's a hexagon of that size.
So it's most likely something similar. The range might be negative π
Hey! I'm still trying to learn the possibilities and limitations of config files and was wondering about the following.
Say I wanted to make a custom unit, that uses a weapon with a random attachment, could I theoretically create a new class like:
};
class weapon_attachments {
class eotech : "rhsusf_acc_eotech_552";
class compm2 : "CUP_optic_CompM2_low";
};
Reference said class in cfgWeapons like:
class CfgWeapons {
class rhs_weap_m4a1_carryhandle;
class M4A1_CCO : rhs_weap_m4a1_carryhandle {
scope = 0;
class LinkedItems {
class LinkedItemsOptic {
slot = "CowsSlot";
item[] = {"weapon_attachments"};
};
class LinkedItemsAcc
{
slot = "PointerSlot";
item = "";
};
class LinkedItemsBipod
{
slot = "BipodSlot";
item = "";
};
class LinkedItemsMuzzle {
slot = "MuzzleSlot";
item = "";
};
};
};
};
And later reference the weapon class in cfgVehicles?
short answer is no. classes with inheritence attached need class bodies {}
okay, is there a way to achieve it tho?
or is the long answer also no, but with more steps?
Random attachment not doable in config
okay, too bad. Brings me to my next question: Can I do it with faces and voices?
for cfgIdentities?
Nothing in config no
Some numbers you could randomize somewhat. It would be random value at game start or at mission start.
But all units spawned off of it will still have the same value. Because the randomization is only done once
Okay, makes sense. I have seen face and voice presets somewhere before, but can't find them anymore. Do you happen to know where I can find them? I'd like to see how they were made
Konec hlavne is start point. Usti hlavne is direction
we love learning new languages
Hey there, I want to make my vehicle sling loadable by helicopters, but I found next to no documentation to this what so ever. (possibly google skill issue)
I defined two points in config as slingLoadCargoMemoryPoints[], but that did not allow me to hook it.
Is there anything else config related that needs to be edited?
(Or do I need at least three points?)
what did you define as the points? positions
selections in memory lod
it's memory points names.
I would try 4 points for the start
and make sure your item is not heavier than max capacity of the helo
slingLoadMaxCargoMass
on it!
I would expect at least 3 points to be minimum so it's stable.
the mass of the gun is way heavier than the slingloading capacity of the heli 
It'se set to 350 tons for some reason
yep, thanks for the pointer
sent over to my model guy to fix his geo lod 
(350 tons becasue of the mags I spawn dangerously close to it when finished firing)
Make the shells with particles
I want the mag to hurt you if it hits you. The problem was the Arma moment of gun if mag colided during spawning. But that was sorted. The 320 tons is not necessary anymore, but I'll keep it and change it with code to 650 when folded, so it can be sling loaded only in folded state. A cheat? Maybe. But I like those
there's enableRopeAttach command.
How to fully delete the option "turn out" in a vehicle per cfg? I tried so many different things, and propably just overlook something. π Its causing bugs in a mod.
forceHideGunner = 1;
https://community.bistudio.com/wiki/Turret_Config_Reference#forceHideGunner_=_false
I have a mortar where the elevation limits are
minelev = -45;
initelev = -1;
maxelev = -1;
but the problem is the camera when u right click is also effected by this, and the below doesnt seem to have any effect
minCamElev
maxCamElev
initCamElev
so what should I do? the mortar is pointing straight up in p3d
Looking at a silly idea
Can a driver position be set as firing from vehicle?
Hmm, could do a ugv then
elevationMode = 3 or 2 if im right
I am currently on elevationMode 3, ill try 2.
the camera does move, its just stuck at the same restirctions that the mortar tube has
You got to try.. i had some problems with my own Artillery if you have used the Artillerycomputer the 3rd Personview was stuck in the air after targeting/use, it needed a second model.cfg entry for the view.. Arty stuff is a bit weird done..
Im not sure if its mode 2 or 3..
But your problem could be what i had
UGV/UAV/any autonomous are not the exception also. They are actually manned by invisible AIs
I know
I think I get your idea then. Yeah guess having an invisible AI to do it might be the way
Should work but you wont be able to turn turret or elevate.. horn is also a weapon
Being silly is a part of Real Virtuality
sadly that didnt work, the camera is still looking at -45 to -1 degrees

Doesnt work, the ai still peaks out every time.
For context, its a Nyx with UAV AI driver, and empty gunner for the player to sit in.
No matter what i do it turns out. So i have to actually remove turnout, instead of disallowing it.
You added it to the Turret class?
Directly in (pseudocode):
class newNyx: Nyx
{
forcehidedriver=1;
};
As that location so far had effects on driver, and idk if they have their own turret, i thought only mainturret and commanderoptics had those.
I dont know anything about this vehicle but forcehidegunner should work, worked for me always
should 
Anyone else has an idea? I tried hundreds of things at this point...
Hello guys. I m having a problem with Vehicle configuration. I have one vehicle a car, that has many parts. like bumper and so on that need to be applied by proxy. I was able to make it work in the Virtual garage. However I cant seem to have my vehicle appear with the proper parts designated by its class. I m using the code line "animationList" as you can see here ```class BRAF_LR110_gendarmerie: BRAF_LR_01_Base /// some class that is going to be visible in editor
{
scope = 2; /// makes the car visible in editor
scopeCurator=2; // scope 2 means it's available in Zeus mode (0 means hidden)
crew = "braf_soldier_light"; /// we need someone to fit into the car
side = 1;
faction = "BLU_GEN_F";
displayname = "Land Rover 110 SW (Hard Top)";
hiddenSelections[] = {"camo1","camo2"}; ///we want to allow changing the color of this selection
hiddenSelectionsTextures[] = {
"braf_land\LR\Data\Skins\GEN\braf_landrover_GENout_co.paa",
"braf_land\LR\Data\Skins\GEN\braf_landrover_GENin_co.paa",
};
hiddenSelectionsMaterials[] = {
"braf_land\LR\Data\Skins\GEN\braf_GEN_landrover_out.rvmat",
"braf_land\LR\Data\Skins\GEN\braf_GEN_landrover_in.rvmat",
};
animationList[] = {"hidebumper1",0,"HideBumper2",0,};
};``` I m not sure how to call those proxy. Please any help could is Welcome. Thank you
You have AnimationSources classes set up for the components in the animationList?
Do you mean this ```class AnimationSources: AnimationSources
{
class HideDoor1
{
scope = 0;
};
class HideDoor2: HideDoor1
{
scope = 0;
};
class HideGlass2
{
scope = 0;
};
class HideDoor3: HideDoor1
{
scope = 0;
};
class HideBackpacks
{
scope = 0;
};
class hidebumper1
{
displayName = "Hide Bumper Brazilian Army";
source = "Proxy";
initPhase = 1;
forceAnimatePhase = 0;
forceAnimate[] = {"HideBumper2",1};
mass = -50;
};
class HideBumper2: hidebumper1
{
displayName = "Hide Bumper Gendarmerie";
forceAnimate[] = {"hidebumper1",1};
mass = -90;
};
class HideConstruction
{
scope = 0;
};
class hidePolice
{
scope = 0;
};
class HideServices
{
scope = 0;
};
class BeaconsStart
{
scope = 0;
};
class BeaconsServicesStart
{
scope = 0;
};
class Hide_Dashboard
{
scope = 0;
};
class Doors
{
scope = 0;
};
class Proxy
{
source = "user";
animPeriod = 0.001;
initPhase = 1;
};
class Beacons
{
scope = 0;
};
class Destruct
{
scope = 0;
};
};```
So the question, if I'm understanding it correctly, is "in a tank, can the driver be set to not have a turn-out option?"
Exactly! Ive been trying around since days on this one. π The ai is ignoring all cfg values and scripts i tried, so i want to completly remove the turnout itself.
Any help would be fantastic.
Maybe try changing the source type:
{
displayName = "Hide Bumper Brazilian Army";
source = "user";
initPhase = 1;
forceAnimatePhase = 0;
forceAnimate[] = {"HideBumper2",1};
mass = -50;
};```
and make sure your model.cfg animation class for the hide is also called `hidebumper1`
Cosmetically you could set the driverAction to be the same as the driverInAction
doesnt have any effect
Of course it has an effect - it changes the animation rtm for the driver when turned out compared to turned in?
It won't remove the option to turn-out, but at least the driver wouldn't appear to move position.
Its not about looks, its that driverforceoptics doesnt work if the uav ai is turned out (which it still does).
When remote controlling it, the viewpoint is at the bottom of the driver seat as it doesnt have a human model, and opticsview isnt forced.
This doesnt happen with driver and gunner being uav ai. It does when only the driver is, and the gunner is empty.
Can this in the init have to do with it? The superior in the group being deleted having some negative effect on the driver?
waitUntil {!isNull gunner _this}; _this deleteVehicleCrew gunner _this;};
If you remove the gunner turret from the config does that fix the driver?
I need to test that if it gives us some info, but the gunner is meant to be player controlled.
Like this?
delete Turrets;
In your new vehicle class, class Turrets {};
Yes, animation source is good it seems class hidebumper1 { type="hide"; source="proxy"; selection="bumper_EB_proxy"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 1.0; // unHideValue = -1.0;//(default) animPeriod = 0.0; initPhase = 0.0; }; class hidebumper2 { type="hide"; source="proxy"; selection="bumper2_ENG_proxy"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 1.0; // unHideValue = -1.0;//(default) animPeriod = 0.0; initPhase = 0.0; }; what sorce type should i change to?
Gonna try it, but general question does delete not work? Ive seen it in the stomper cfg.
delete mainturret;
*edit this doesnt work, or has a different effect so im now gonna test {};
config.cpp
{
displayName = "Hide Bumper Brazilian Army";
source = "user";
initPhase = 1;
forceAnimatePhase = 0;
forceAnimate[] = {"HideBumper2",1};
mass = -50;
};```
model.cfg
```class hidebumper1
{
type="hide";
source="hidebumper1";
selection="bumper_EB_proxy";
minValue = 0.0;
maxValue = 1.0;
hideValue = 1.0;
};```
No effect, driver ai still turns out, optics arent forced.
Did you verify by looking at the config in game that there were no class Turrets?
Yes, its completly empty. (config viewer devtools)
Ok, so it is still purely a question of can the driver in a tank be restricted to no turn-out? Nothing immediate is coming to mind. Are there any examples where this is true?
UGV's?
*also the same happens in wheeled apc class
UGV is a car
What then is different between apc/tank, and car, and how to remove it? :/
It's probably hard coded to the simulation type. Tanks and APC's are typically tankx.
UGV is carx.
That would be reeeeally unfortunate. π₯Ή
Car drivers don't get a turn-out option, but they also don't have tracks.
Im gonna just try simulation carx, and see what effect it has, to confirm it or not atleast.
yeah no luck here. i dont know what i m doing wrong. Spend so much time on this already. LOL it should be simple!
Nope, it wasnt simulation. Same thing still happens with carx.
Removing the gunner def has some effect on it, when not removing it the driver turnout bug doesnt happen.
waitUntil {!isNull gunner _this}; _this deleteVehicleCrew gunner _this;};
But ofc the intention is to have the player sit in the gunner seat. Are there other ways to remove it?
dontCreateAI=1; had no effect
Drivers in cars don't have turn-out options by default, even when they have gunners. Check Hunter HMG.
driverInAction = "";
driverAction = "driver_MRAP_01";
Your saying driverInAction would be the option for turnout?
No, usually the other way around, but those are the entries for the Hunter
Super wierd.
In this case it has:
driverInAction="Driver_LT_01_AT_F_in";```
so if you have a driverInAction try replacing it with ""
Doesnt work. π This is so wierd.
@nimble sequoia Still thanks for the help. π πββοΈ
I'm intrigued by this, so will do some more research later today.
On a different note, where in cfg is declared who is "effectivecommander"? Is it always the commanderseat, or who has the highest commanding value?
Or something lese?
Highest commanding value, yeah
Commander usually has like, 2 I think
Or 1 idk
Yes, as already confirmed, highest commanding value is commander. If you have an AI in your group occupying that seat, expect to be annoyed by it forcing you to sit in other locations or making other seats unavailable.
Also make sure you only have 1 primaryGunner and 1 primaryObserver in your vehicle, or face game instability.
primaryGunner = 0;
primaryObserver = 1;```
I had a wierd effect:
-> Marshall IFV, with a UAV_AI driver (commanding=2;), and removed gunner/commander.
-> Sitting in commander (commanding=2;), with a friend besides me sitting in gunner (commanding=3;).
To bypass the locality issue, my friend the gunner connected to the driver, waited until it reacted to WASD, then released controls, and it didnt react to driving controls.
While for me sitting on the commander (with a intentionally lower commanding value), the same approach worked.
We swapped seats, and it also didnt work for me on gunner.
π€
How should i best set up the commanding values for this case? Or is it a different issue?
Think I've found it...
class ascent_nyx: I_LT_01_AT_F
{
scope = 2;
scopeCurator = 2;
displayName = "Ascent Nyx";
hideProxyInCombat = 0;
driverAction = "Driver_LT_01_AT_F_in";
};```
That removes the turn-out option, but he's turned out by default.
This doesnt fully work, im gonna send you the cfg when im back home.
In my case this forces driver optics, but at the cost of both hatches being permanently open.
And the player gunner being unable to turn in, being unable to use the gun. π
If you use forceHideDriver, forceHideGunner or forceHideCommander, it should work
At least per BIKI
Nope. The word should works different in this game. 
Currently attempting to make a crate that can be air dropped. When I airdrop the crate from the vehicle the parachute will deploy, but the crate itself will breakaway and just fall straight to the ground. The parachute itself will continue to float down until it hits the ground.
It doesn't seem the parachute itself connects to the crate after it is dropped for the vehicle.
Do you have the proper points on the model
Is there a specific memory point for parachutes?
I think you need some memory points for it. But, Iβve never done it before so I canβt really help much
I have a question: what is handling vehicle instruments ? I read bohemia's config for boats and cars but i dont understand how instruments like speedomeeters are handled. What script is handling it ? Do i have to add an init event ?
It's in cfgModel, animation source should be "speed"
https://community.bistudio.com/wiki/Model_Config#Animation_sources
Ok, so i unerstand now for a speedomeeter with a pointer. But what for a digital speedomeeter with numbers ? You can't use animationSource
Yes it's made same way. Just animated to swap numbers. Often by making the numbers on sides of a cylinder and animating the cylinder to rotate
hi folks, does anyone here know if there's a way to fix my vehicles from spawning in the ground as seen below with configs? I'm in no way versed well enough in arma stuff to start messing around with the 3d model
are you able to increase turret rotation speed?
maxVerticalRotSpeed = 1.8;```
change these values to your prefered one
this is in your turret config
Is 1.8 the default speed?
i dont know if its default, its just one im currently using
Gotcha, thank you π
So, for a vehicle going up to 250hm/h i hve to make a 250 faces cylinder ? Isn't that a lot ?
Or maybe i could use 3 cylinders for one speedomeeter......
By the way, if i use cylinders for a digital speedomeeter, shouln't i see the cylinders rotation ?
Yes one roll for each
It can be made to rotate in instant increments. You have likely seen such numbers in game sometime. They are made in this way
What's the attribute for hiding backpacks when wearing a certain uniform? I know this happens with the Full Ghillie's from Marksman DLC but I'm curious about how I can do it myself for other equipment.
No backpack proxy I think?
Huh, could've sworn it was an attribute in the config...
Thanks anyways.
I dont work much with uniforms, so that's what comes to mind
How o i make the rotation instnt ? For example, i have a boat which max speed will be 40 km/h, if i set the animation minValue to 0 and maxValue to 40 it will be instant ?
How to put this script into an cfg init?
this addEventHandler ["GetIn", {
params ["_vehicle", "_role", "_unit", "_turret"];
if (_role =="gunner") then { _vehicle setEffectiveCommander _unit};
if (isNull (driver _vehicle)) then {
_agent = createAgent [format["%1_Soldier_F", (typeOf _unit) select [0,1]], position _vehicle, [], 0, "NONE"];
_agent moveInDriver _vehicle;
};
}];
This has error at [|#|'GetIn' , generic error in expression, what did i do wrong?
class EventHandlers: EventHandlers
{
init="(_this select 0) addEventHandler ['GetIn', {params ['_vehicle', '_role', '_unit', '_turret']; if (_role =='gunner') then { _vehicle setEffectiveCommander _unit}; if (isNull (driver _vehicle)) then {_agent = createAgent [format['%1_Soldier_F', (typeOf _unit) select [0,1]], position _vehicle, [], 0, 'NONE']; _agent moveInDriver _vehicle;};];";
};
I remember something like this, but what of the script to put in there? π€
class EventHandlers: EventHandlers
{
class GetIn
{
init="?";
};
};
Actually it gave me ".../GetIn/' is not a value", but i think there was something similar like this.
Not sure if this helps:
https://github.com/CBATeam/CBA_A3/wiki/Extended-Event-Handlers-(new)#extended_init_eventhandlers
{
init = "_this execVM '\yourModPath\scripts\yourScript.sqf';";
};```
Saviour! π
Hi everyone I am getting no entry/bin/config.bin/cfgpatches/6b47s.units for any mission on my server and idk what to do could someone help out please
are you using own mods or mods by other developers?
Others compiled for the community
sounds like its a problem by such mod so you got to find out which mod causes this and contact that mod to fix that
so it's either RHS or CUP since those are the only ones adding that russian helmet
@winter rain appreciate it very much btw
could i use this with my custom ammo?
I created this inside cfgAmmo but the cfg dosent execute\work
class EventHandlers
{
hit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
};
you could add this script into your own explosion effect in class cfgCloudlets
beforeDestroyScript = "\yourAddonPath\scripts\yourScript.sqf";
do i need to import a separate class for that?
maybe try this
class EventHandlers
{
AmmoHit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
};
thx π ill try that later on
dont compile mods like that
they are bound to break
use the original mods like they are intended to be used
Mods were compiled in full cooperation with mod developers so it wasn't supposed to happen, also found the issue my dev is working on it. Appreciate the help very much!
its still one of the most common mod breaking reasons when people bash together stuff and break it
Hello i have some question. What define passenger seat in CfgVehicles?
in what way?
crew seats are combination of model things and config things
so do explain what is it you try to do
I would like to try adding passenger seats to the APC model.
your own model?
you would need cargo proxies in the model to define the positions of passengers
and then corresponding cargoActions for the passengers sitting poses
you can check sample car for reference
ok, thanks.
are mortars effected by maxHorizontalRotSpeed and maxVerticalRotSpeed?
doesnt seem to be working for me
having a bit of a struggle with adding visual items in vehicle appearance; I am trying to have the spoiler as an optional extra on my vehicle. it appears as an option in-game however it is not clickable, and bulldozer seems to not recognise it as an animation - so I feel this is a vehicle config thing? I've never done it before so I'm not entirely sure how to set it up.
class spoiler { type="hide"; source="user"; selection="spoiler"; memory=1; minValue=0; maxValue=1; };
For whatever reason it's not picking this up?
should be, is it under class MainTurret ?
should also be noted that "maxHorizontalRotSpeed" seems to be tied to "maxTurn" so it may be that that is affecting it?
maxTurn and minTurn is just degrees has nothing to do with its speed
Hmm, yeah the wiki is worded a bit iffy on that, I see now
You also need an AnimationSources class in your config.cpp
source = "user";
animPeriod = 0.001;
initPhase = 0;
};```
Add `"spoiler", ""` to your skeleton bones and change the animation to
source = "spoiler";
hideValue = 1;
the only thing I had to change was source = "spoiler"; and added , "" after "spoiler" skeleton.
Now Fixed, don't quite understand why, but I appreciate it man, thanks!
That will fix it for buldozer but without the animationSources class it won't work in game.
that was already in place, and correctly, apparently.
It was just the model config that was scuffed
Because bones are defined in pairs
The empty "" is the root of the object
sadly this dosent work, do i have to put that inside of CfgMagazines?
class CfgMagazines
{
class CA_Magazine;
class dca_tear_gas_1rnd : CA_Magazine
{
magazineGroup[] = {"dca_tear_gas_1rnd"};
author = "Ilya";
scope = 2;
type = 16;
displayName = "40mm Tear Gas";
picture = "";
ammo = "SmokeGasShell";
initSpeed = 80;
maxSpeed = 200;
count = 1;
nameSound = "";
descriptionShort = "Used in: UGL";
mass = 6;
beforeDestroyScript = "\DCA\weapons\data\Ringo\teargas_ammo.sqf";
class EventHandlers
{
AmmoHit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
};
};
class dca_tear_gas_6rnd : dca_tear_gas_1rnd
{
displayName = "40mm Tear Gas x6";
count = 6;
descriptionShort = "Used in: UGL, 6 Rounds";
mass = 14;
picture = "";
class EventHandlers
{
AmmoHit = "_this execVM '\DCA\weapons\data\Ringo\teargas_ammo.sqf';";
};
};
};
class CfgAmmo
{
class GrenadeBase;
class SmokeGasShell : GrenadeBase
{
timeToLive = 60;
timeToLiveSmoke = 60;
ace_frag_enabled = 0;
simulation = "shotSmoke";
deflectionSlowDown = 0;
initSpeed = 30;
thrust = 30;
airFriction = -0.001;
sideAirFriction = 0.1;
hit = 0;
indirectHit = 0;
indirectHitRange = 0;
dangerRadiusHit = 0;
suppressionRadiusHit = 0;
suppressionRadiusBulletClose = 0;
suppressionRadiusHitClose = 0;
model = "\DCA\weapons\data\Ringo\gas_grenade.p3d";
effectsSmoke = "SmokeShellWhiteEffect";
explosionTime = 1.2;
caliber = 0.5;
maxControlRange = 75;
displayName = "40mm Tear Gas Grenade";
descriptionShort = "40mm Tear Gas Grenade";
smokeColor[] = {1, 1, 1, 1};
};
};
no, in your cfgAmmo
yep I got it defined in class MainTurret
Hey! Quick question
Is it possible to use the #define and #has_include macros together?
Like so:
#if __has_include(\TEX(Collar))
#define TEXCOLLAR TEX(Collar)
#else
#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif```
IIRC such nested thing is impossible
yes of course
__has_include(\TEX(Collar)) don't know if this works, I think it just reads the macro name as string, not as sub-macro
Hmm okay
If I put a \ in the macro do you reckon itβd work?
yes has include also specifically requires quotation marks to be used
I donβt think that answered my question, sorry π
So would it be like
__has_include(βMACROβ)
Or __has_include(MACRO)
Assuming MACRO in the second case would have quotations built in?
Got it
__has_include("*")
Okay, trying it now
Doesn't seem to work properly- like it just defaults to the #else
Current code so far
#if __has_include("TEX(Collar)")
#define TEXCOLLAR TEX(Collar)
#else
#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif
(Fixed, had it backwards)
What's weird is that TEX(Collar) isn't quote-enclosed
DedMen said it would work with a macro
why don't you siimply use
apples....
#else
oranges ....
#endif```
That's what we ended up using as a placeholder, however it'd be more ideal to have it automatically check file presence
ah ok.
you can and #quotes within a define,,, moment.....
Right now it packs fine with the code below, but it never actually shows the correct texture despite it existing
//#ifdef CUSTOM_COLLAR
#if __has_include(QUOTES(TEX(Collar)))
#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
//#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#else
//#define TEXCOLLAR TEX(Collar)
#define TEXCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif```
Moment??
Wait I'm stupid
That one's wrong
One sec
give me a moment to get the syntax
Got it
thing1 = QUOTE(\one\TWO.three);```
macros are not evaluated in double quoted strings
As I said... __has_include("*") The quotes are required, you cannot remove them
Hmmm... got it, okay
the macro operates on >>>var<<< then surrounds it in quotes for the __has_include
Got it, okay
For some reason it just isn't working properly even though TEX(Collar) shouldn't be encased in quotes
pls show this mysterious TEX(Collar)
#define QUOTE(var) #var
is all you need to pass the file\name generated by TEX() to satisfy __has_include . In fact any include needs those quotes.
Okay so
Relevant macros are as follows:
#define JOIN2(A,B) A##B
#define FAMILY Camo
#define ELEMENT Arid
#define PATHPARENT \41st_ODST_Internal_Assets\41Armor\Armor
#define PATH JOIN5(PATHPARENT,\,FAMILY\,ELEMENT,\)
//Recurring definition due to use of repeat macros
#ifndef TEX
#define TEX(A) JOIN2(PATH,ELEMENT##A##.paa)
#endif
#define TEXCOLLAR TEX(Collar)```
So the end result should be something like:
TEXCOLLAR
\41st_ODST_Internal_Assets\41Armor\Armor\Camo\Arid\AridCollar.paa
So what I want to do it this:
//#ifdef CUSTOM_COLLAR //Macro solution
//#ifdef CUSTOM_COLLAR //Macro solution
#if __has_include("TEXCOLLAR")
#define TEXHELMCOLLAR TEX(Collar)
#else
#define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif
Wait one sec
A little bit messy but you get the idea
I'm trying to work to see if it's an error with one of my earlier definitions
Nope, still no joy
I've gotten to about here
#define TEXCOLLAR Tex(Collar)
#if __has_include("TEXCOLLAR")
#define TEXHELMCOLLAR TEX(Collar)
#else
#define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif
for the purposes of __has_include
__has_include( QUOTE( TEX(Collar)) )
no
Got it
No. You CANNOT omit the quotes.
The syntax is __has_include(" ") INCLUDING the quotes. You cannot skip them
Also got it
In that case- any idea why it's not working?
#define TEXCOLLAR Tex(Collar)
#if __has_include("TEXCOLLAR")
#define TEXHELMCOLLAR TEX(Collar)
#else
#define TEXHELMCOLLAR "41st_ODST_Internal_Assets\41Armor\Armor\Soft_Packs_Co.paa"
#endif
you cannot use "TEX"
the QUOTE() will surround the text for __has_include. effectively (" blah ")
Wait so, it's not possible to use a macro in __has_include(" ")?
correct
https://en.cppreference.com/w/cpp/preprocessor/include The c++ spec from which that is supports it though, so we should add that too
Anyhow, thanks for the info
You totally should π It would be a MASSIVE help
If you give it serious consideration, ping me so I can cheer you guys on :P
Anyhow
I'm now going to go away and cry since I wasted my morning on this
Cheers!
#define QUOTE(x) #x
__has_include(QUOTE(initvars.sqf))
in 2.18 this will work. But also this
#define QUOTE(x) x
__has_include(QUOTE(initvars.sqf))
The quotes aren't really needed there
What's the dealio with numbers in configs for some of the vanilla data to have weird decimal points- is this a byproduct of binarization or something? i.e. thisParameter=4.6999998; instead of =4.7;
Had same question, and I bet it goes same. Because float
#arma3_troubleshooting message
4.6999998; instead of =4.7;
welcome to the world of IEEE 32 bit floating point maths.
Contrary to popular belief, floating point math is imprecise. It simply cannot store the exact number in 32 bits for most values.
When you compile a float eg: 4.7, the nearest value that can actually be stored in 32 bits is 4.6999999999
so you get a difference betweem the value you wrote, and when decoded (debinarised) the result is more often than not, fractionally different.
if you think for a moment, how could you possibly store 1/3rd of something. Eg it;s not 0.3, it's 0.333333333333333333
(some decompilers btw hide this discrepency by rounding the value)
Hello everyone, i need help with a tracked vehicle im making. For some reason i cant make it exceed 23 km/h, i tried changing the physx values the bound mem point and still nothing. Does anyone know what might be causing this?
Multiple engine parameters in physX, gearbox, etc
so its not on the wheels, but the engine that i should focus?
I have a problem that really baffles me, maybe someone has an idea. I have a car with 10 windows, glass1 to glass10. Each of the windows is animated in model.cfg by an appropriate HitGlassXX to disappear when HitGlassXX is 1, and I can verify in buldozer that this works for both the "normal" geometry as well as the Fire Geometry LOD. Hitpoints are setup normally:
#define GLASS(x) \
class HitGlass##x \
{ \
passthrough = 0; \
visual = glass##x ; \
armor = 0.05; \
explosionShielding = 2; \
radius = 0.2; \
name = glass##x; \
minimalHit = 0.10; \
}
GLASS(1);
GLASS(2);
GLASS(3);
GLASS(4);
GLASS(5);
GLASS(6);
GLASS(7);
GLASS(8);
GLASS(9);
GLASS(10);
Previously, I had also tried naming the hit points differently (hit_glass##x). glass1 through glass3 work perfectly fine. glass4 works too, HOWEVER; when I destroy hitpoint HitGlass4, glass5 to glass10 ALSO disappears, even though diag shows that the hitpoints HitGlass5 to HitGlass10 are all zero damage. If I only destroy HitGlass4, then HitGlass1 through 3 stay zero and the fire geometry and glass geometry stays.
This really has me scratching my head, and I can't figure out what is wrong.
It works in Buldozer but not in game?
You have animationSources set-up for all the windows?
eg
{
source = "Hit";
hitpoint = "hitGlass6";
raw = 1;
};```
Check the glass selections aren't double-named (glass1 AND glass 4), also not part of any other selections such as camo
Geez, you are right... all of the HitGlassX after 4 have HitGlass4 as hhitpoint π
Thank you, I think that was the problem, testing...
It was indeed the problem. Copy-pasted, stuck into an include file, and forgotten Thanks for the help
Excellent, you're welcome.
Happens a lot to me too. I forget the most basic shit π
Yeah, it's confirmatiojn bias... "I am sure that stuff is correct, so it must be Arma's fault" π
how is mass calculated, is it a certain weight unit or something?
Mass in what sense?
mass as in weight
What kind of thing you are doing?
Mass for what?
gear, weapons, equipment, anything
Ace mass?
propably?
figured it out myself
Do tell what you found so we can tell next one who wonders the same thing!
hello guys, in a vehicle, how can i make an animation play when a weapon is selected? i would like for it to work like in the vanilla vehicles with atgms, where if switch to that weapon the launcher covers open
animations need to use HoldsterValue source and weapons need to be configured with a corresponding value
thanks, im trying to find documentation on this topic, but by searching HoldsterValue i find nothing
you wont probably find anything specific
its described in the modelc.cfg wiki page
but not much else
maybe in the BIforums there may be few questions/answers too
MaxHoldsterValue is the full name of it
Despite my all-to-frequent criticisms of BI, that document is the clearest and best i've seen on the biki. Better in fact that many wiki tutes. You owe it to yourselves to be aquainted with it so that you understand the total absence of #includes, and the straightforward manner in how bones connect to each other.
its been one of the most frequented wiki page for me along the years π
if you haven't read it, then you are garanteed to introduce typos in (eg) ofpManSkeleton, or keep pasting the same , often wrong, 'skeleton' from one project to the next one instead of simply declaring it once at the root of your P drive.
there is never a reason to declare class rotation eg in each separate project you make.
And yet the official samples still have all sorts of errors that continue to be replicated...
Sad truth
Cause found:
https://www.reddit.com/r/armadev/comments/7vz67h/uav_ai_dilemma_config_editing_question/
Didnt yet found a direct solution.
But i was lucky that atleast the Nyx is tracked. So hasDriver=-1; works on it, compared to wheeled vehicles. Which some of the other vehicles im working on are. :/
I have a useraction that creates a say3d with a varname but in a second useraction I cannot delete the declared varname, do i need to make the varname public?
is there a way to assign a prefix to a subfolder that way p3ds can refrence proxies? ie change path from /prefix/subfolder/data to /subfolder/data
I tried assigning prefixes to each subfolder but no luck
How would I go about implementing something similar to backup optics on rifle scopes but for a binocular? I'm working on an improved laser designator and would like to separate NV and TI from the daysight as I will be using a different shaped optic body for the them.
Sounds complicated. Why not just use the path the proxy is at?
It may not be possible
Organization, if it were serious I would edit all p3ds and proxy paths
You'll need to se the path in p3ds If you change folder structure
Not sure if this is something I have "understood" correctly but when I tap Ctrl+RMB it does look like it is attempting to switch to another optic of some kind as it flickers out to a different view very, very briefly.
Have you ever seen such feature work in any binocular
If it can work, it would be done same way as with other weapons
Yeah, fair point.
Got it. Yeah I tried to do it the same way as the regular weapon but I'm guessing because modelOptics[] = {}; is defined in the first level config it isn't possible.
Thanks anyways.
I cant say for sure its not possible but at least I cant say Id have never seen that done
gut feeling is that it dont work because binocular is not quite same as the weapons
I think you can add extra optics to it
whether they work though im unsure
the only use ive seen of it was a long time ago there was a 'iron sight' mode for binocs - cuz iirc in arma 2 it would force you into optics view when using them
and the ironsight view was basically to do what arma 3 does normally where you just hold them but arent in the optic
could be it works then π
Where we can get values for minFov entry inside opticsIn class of vehicle?
Right now it is initFov = 0.269231; and i have 0.9x zoom with it. Which value should i put to have x2 zoom e.g. ? How to calculate this stuff?
zoom level = 0.25 / initFOV
or
initFOV = 0.25 / zoom level
If you're using CBA, CBA has a handy magnification helper
@nimble sequoia ty
@shy knot can you share a link for it ?
(desired zoom #) call (uiNamespace getVariable 'cba_optics_fnc_setOpticMagnificationHelper')
So, if you want 4 times zoom, it would just be 4
Though, if you're mod doesnt rely on CBA, this would make it a dependency
Is there a way to add hit points (i.e. health) to a vehicle without increasing the armor? Is armor the only form of health?
Armor value in config is health
armor type is tied to the model and what penetration material the hit geometry uses
if you explain what the use case is perhaps better advice can be given
Want a vehicle to have a larger health pool but still be able to take damage from small arms fire like an assault rifle.
Once I bumped the armor up to 250 it stopped taking damage from small arms fire.
let me mess with the penetration value.
there is no penetration value
its part of the model itself
It is.
right, yeah if you have access you can change that sure
but having more health is controlled by the armor value
and possibly modulated by hitpoints (in config)
Got another question here, in the config under 'Class HitPoints', are these all tied to just the 'Hit-Point'? What is the general use for this class?
There is a wiki page about damage modeling which might be good read and answer a lot of your questions
I'll give it a look, thanks.
need to lower / set to 0 the mindamagethreshold or whatever its called
minTotalDamageTreshold
and minimal hit on hitpoints
although id recommend looking at armorStructural, because if you set armor too high AI wont shoot even if they can damage it
with small arms
does __has_include work within define macros? 
im using #define for doing bulk textures but when i try and do a #__has_include for if rvmat exists adjacent to _co then to include it as a hiddenselectionmaterial
i forgot to finish that sentence
when i try and do that addonbuilder refuses to build
but when not within a #define its fine
yes i am remembering \ at the end of each line
the answer is yes
__has include works within a define
paste your code
just confirm with my tools (if you want to) that your syntax is correct.
i dont use your tools
ive deleted it now but literally ctrl+x'ing the same thing out and getting rid of the \ at the end of each line worked fine so i have no idea
That was asked a few days ago by Stoney.
You need to be more clear.
Can you #define in a #if block? Of course.
Can you use a macro, as the filename in has include.
Not before yesterday's dev/profiling branch.
Can you use preprocessor commands inside a #define macro definition? No. At least I've never seen that anywhere (Arma or C) and I don't think the Arma preproc processes commands when inserting macro replacements
roger doger third one answers thanks
do you need to define
ammo[]={}
magazines[]={}
in CfgPatches
Neither of these exists/has any purpose in the engine, and I'm pretty sure you have already been told as such
I was in the ACE3 discord when figuring out another issue but I wanted to confirm as I saw CDLC S.O.G, defines it which made me want to double check.
probably gets used in scripts by them
i doubt it since its just ignored I would assume if its not required to be defined.
everything you write in config gets put into the classes so long as its syntaxically correct
cfgpatches is no exception
magazines[]={}```
rapify (part of mikero's toolset) lists all *public* items in cfgVehicles, cfgWeapons, cfgAmmo, cfgMagazines. The latter two cause no harm and are only written IF there is in fact some ammo or magazines! They are there to assist you with informatian on sometimes very large config files. (same reason in fact why missions use units[]= and weapons[]=).
note *public*. pboProject ignores anything you scribble into units and weapons and re-writes those arrays[] with the truth. If it aint public, it aint there.
Hello, I'm probably not doing it right at all, but would this be the appropriate method to get a map to inherit the sky from another map?
class CfgWorlds {
class Enoch;
class chernarus: Enoch
{
};
class chernarus_summer: chernarus
{
};
class chernarus_winter: chernarus
{
};
};
Unless you're writing those configs from scratch (as in this isn't a replacement addon), you'll mess up the inheritance chain for those maps and cause a lot of strange mismatches.
If you want to swap out the lighting with those used by the Livonia terrain, you'll have to tweak the lighting settings line by line.
I'd suggest taking a look at how the First Contact campaign's version of Livonia does it (in \a3\data_f_contact\config.bin).
Any reason this always runs the #else section? (dev branch)
#ifdef __A3_DEBUG__
#define XPS_DEBUG 1
#endif
#ifdef XPS_DEBUG
#define XPS_ISFINAL isFinal = 0
#define XPS_RECOMPILE recompile = 1
#else
#define XPS_ISFINAL isFinal = 1
#define XPS_RECOMPILE recompile = 0
#endif```
It was just A3_DEBUG in place of XPS_DEBUG before but wouldn't work so I am trying to figure out why.
tried w/ no mods same result
tried on stable branch. I can confirm XPS_DEBUG is working. Here's the full story then...
#define XPS_CFG_TYP(typName) class typName {\
file = FILEPATH_C_Q(typedefs\typName.sqf);\
type = "typ";\
preprocess = 1;\
allowNils = 1;\
noStack = 1;\
XPS_RECOMPILE;\
XPS_ISFINAL;\
}```
in preInit : sqf XPS_DebugMode = false; #ifdef XPS_DEBUG XPS_DebugMode = true; #endif
so XPS_DebugMode is true/false according to the -debug startup param. but isFinal is always 1 and recompile is always 0
if I comment out the _A3_DEBUG then everything works fine?
// #ifdef __A3_DEBUG__
#define XPS_DEBUG 1
// #endif```
if this is in a config.cpp, do not binarise it. (all #preprocessing is removed)
it's in a script.macros.hpp file. config is binarizeed (HEMTT) but here's the weird thing... XPS_DEBUG is working fine. So XPS_DEBUG is being defined. But as soon as I #ifdef/#ifndef either XPS_DEBUG or A3_DEBUG it is neither "defined" nor "undefined" . It just runs the #else branch or nothing if no #else branch.
or does binarizing the config.cpp file cause this even outside of it?
This might be a HEMTT issue now that I look at it. I am running .\HEMMT dev -O and technically my config.cpp should NOT be binarized but it clearly is
new version downloaded but still same issue. I'd try disabling binarizing but there's only a xwitch to enable it according to docs. "-b" and I'm not including that switch π€
disabled in project.tonl and still binarizing config.cpp and now it's even worse. I have sqfc files everywhere I dont want built. well ffs
packaged it manually. still not working. I'll see if I can repro on something smaller
i think i know the problem!!!
arma needs
#define true 1
#define false 0
if you were using my tools you would never need to do this.
without the defines
thing = false; is converted to as string and always presents as being non-zero
Hey guys I have a APC that the AI does not shooting /engage, only engaging when very close and even then shooting at the ground? Please help!
That's only true if it's a config, preInit is often sqf, which does have the true or false / boolean datatypes
you are quite right for sqf. In fact, it's 'true' and 'false' not a boolean.
when sqf is used in configs, "it is enclosed in quotes" so the defines don;t affect it
It's not a config though, I went and checked his git repo, it's a function that's packed as part of the mod
in an sqf file
ok. that was not at all clear. 
But mikero is right, hemtt is binarizing rapifying at build/packing which is stopping your #ifdef __A3_DEBUG__ from working the way you want it as those macros have to evaluated to binarize rapify (as far as I know). Looking at the documentation for hemtt you can stop it from binarizing rapifying by changing the "addon.toml".
(corrected by veteran below)
https://brettmayson.github.io/HEMTT/configuration/addon.html
Everything you need to build Arma 3 mods with HEMTT
and everything you need to know to build any bis engine? <silent grin>
one more comment about sqX. #includes were first used by the community (SickBoy and Kju). You have them to thank for CBA etc. One unfortunate act was to call their includes HPP instead of (say) SQH.
we have been living with this confusion ever since. The least of which in including acres of useless config.cpp related files in pbos because you can't filter. (well you can with pboPro, but it's painful)