CfgAmmo Config Reference: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "\[\[[Cc]ategory:ArmA:[ _]?([^|]+)\]\]" to "{{GameCategory|arma1|$1}}") |
Lou Montana (talk | contribs) m (Text replacement - " (={2,})([^ = ])(.*)([^ = ])(={2,}) * " to " $1 $2$3$4 $5 ") |
||
Line 1: | Line 1: | ||
{{Cfg ref|start}} | {{Cfg ref|start}} | ||
==Introduction== | == Introduction == | ||
'''''cfgAmmo''''', '''''cfgMagazines''''', '''''cfgWeapons''''' and '''''cfgVehicles''''' are root classes defined in the engine's <tt>config.bin</tt>. | '''''cfgAmmo''''', '''''cfgMagazines''''', '''''cfgWeapons''''' and '''''cfgVehicles''''' are root classes defined in the engine's <tt>config.bin</tt>. | ||
Line 11: | Line 11: | ||
'''Note''' that engines accept ''integer'' values where a ''float'' would normally be expected. | '''Note''' that engines accept ''integer'' values where a ''float'' would normally be expected. | ||
===OFP Legacy Behaviour=== | === OFP Legacy Behaviour === | ||
All ''[[Real Virtuality]]'' games since ''Arma'' use the root class ''cfgMagazines''. In contrast, ''OFP/Arma: Cold War Assault'' relies on constructs within its ''cfgWeapons'' class to distinguish between weapon and magazine parameters. | All ''[[Real Virtuality]]'' games since ''Arma'' use the root class ''cfgMagazines''. In contrast, ''OFP/Arma: Cold War Assault'' relies on constructs within its ''cfgWeapons'' class to distinguish between weapon and magazine parameters. | ||
The ''cfgAmmo'' class is similar across every game engine, and aside from incremental additions of tokens with new game versions, the overall structure has not changed significantly. | The ''cfgAmmo'' class is similar across every game engine, and aside from incremental additions of tokens with new game versions, the overall structure has not changed significantly. | ||
===Modifications=== | === Modifications === | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
access = 1; | access = 1; | ||
Line 28: | Line 28: | ||
To allow YOUR addon to subsequently modify YOUR ammunition (should you wish other addons to do so), you '''must''' change the <tt>access=</tt> in YOUR ammunition. | To allow YOUR addon to subsequently modify YOUR ammunition (should you wish other addons to do so), you '''must''' change the <tt>access=</tt> in YOUR ammunition. | ||
===CamShake=== | === CamShake === | ||
New to ''[[{{arma3}}]]'' is the ability to introduce ''camera shake'' to the firing of weapons by including subclasses within each ''cfgAmmo'' definition. In all cases, ''CamShake'' only affects players (as obviously, ''AI'' have no screens to shake). | New to ''[[{{arma3}}]]'' is the ability to introduce ''camera shake'' to the firing of weapons by including subclasses within each ''cfgAmmo'' definition. In all cases, ''CamShake'' only affects players (as obviously, ''AI'' have no screens to shake). | ||
Line 62: | Line 62: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Alphabetical Order== | == Alphabetical Order == | ||
{{Cfg ref|abc}} | {{Cfg ref|abc}} | ||
===A=== | ===A=== | ||
====aiAmmoUsageFlags==== | ==== aiAmmoUsageFlags ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Tells the AI how to use this Ammo. NOTE: Feature still WIP, some functions may not work yet or be removed later. See: [http://forums.bistudio.com/showthread.php?159711-Development-Branch-Captain-s-AI-Log&p=2945231&viewfull=1#post2945231 AI Devbranch] | ;Description: Tells the AI how to use this Ammo. NOTE: Feature still WIP, some functions may not work yet or be removed later. See: [http://forums.bistudio.com/showthread.php?159711-Development-Branch-Captain-s-AI-Log&p=2945231&viewfull=1#post2945231 AI Devbranch] | ||
Line 102: | Line 102: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====airFriction==== | ==== airFriction ==== | ||
;Type:[[TokenNameValueTypes|Float]] | ;Type:[[TokenNameValueTypes|Float]] | ||
;Description: How much the air friction slows down the projectile. Tiny negative values for bullets and bigger positive values for self-propelled missiles and rockets. | ;Description: How much the air friction slows down the projectile. Tiny negative values for bullets and bigger positive values for self-propelled missiles and rockets. | ||
Line 115: | Line 115: | ||
:v - velocity | :v - velocity | ||
====airLock==== | ==== airLock ==== | ||
;Type: [[TokenNameValueTypes|Boolean]] | ;Type: [[TokenNameValueTypes|Boolean]] | ||
;Description: Declares if ammo can lock on air targets. Also makes ''AI'' to decide whether to engage air units with the particular ammo. | ;Description: Declares if ammo can lock on air targets. Also makes ''AI'' to decide whether to engage air units with the particular ammo. | ||
====allowAgainstInfantry==== | ==== allowAgainstInfantry ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Default <tt>1</tt>. If <tt>0</tt>, the ''AI'' will not (deliberately) employ this weapon against infantry targets. Used to override ''[[#cost|cost]]'' behaviour. | ;Description: Default <tt>1</tt>. If <tt>0</tt>, the ''AI'' will not (deliberately) employ this weapon against infantry targets. Used to override ''[[#cost|cost]]'' behaviour. | ||
====animated==== | ==== animated ==== | ||
====audibleFire==== | ==== audibleFire ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: How much can ''AI'' hear when given weapon is fired. | ;Description: How much can ''AI'' hear when given weapon is fired. | ||
Line 133: | Line 133: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====autoSeekTarget==== | ==== autoSeekTarget ==== | ||
;Description: Self-guided projectiles? Used in ''anti-tank'' artillery shells. | ;Description: Self-guided projectiles? Used in ''anti-tank'' artillery shells. | ||
===B=== | ===B=== | ||
====brightness==== | ==== brightness ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: The intensity of the light source. Used in ''illuminating flares''. | ;Description: The intensity of the light source. Used in ''illuminating flares''. | ||
Line 146: | Line 146: | ||
===C=== | ===C=== | ||
====caliber==== | ==== caliber ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Acts as penetration multiplier for the projectile. | ;Description: Acts as penetration multiplier for the projectile. | ||
Line 154: | Line 154: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====canLock==== | ==== canLock ==== | ||
This config parameter does not exist for ''CfgAmmo'' in Arma 3 (only for ''CfgWeapons''). | This config parameter does not exist for ''CfgAmmo'' in Arma 3 (only for ''CfgWeapons''). | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
Line 163: | Line 163: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====cartridge==== | ==== cartridge ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares the path to the cartridge ''P3D model'', which may be ejected on each shot. Like all model specifications, <tt>.p3d</tt> is inferred. | ;Description: Declares the path to the cartridge ''P3D model'', which may be ejected on each shot. Like all model specifications, <tt>.p3d</tt> is inferred. | ||
Line 171: | Line 171: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====cmImmunity==== | ==== cmImmunity ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Specifies a missile's resistance to countermeasures (such as ''chaff'' and ''flares''). | ;Description: Specifies a missile's resistance to countermeasures (such as ''chaff'' and ''flares''). | ||
Line 180: | Line 180: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====coefGravity==== | ==== coefGravity ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Undocumented feature. Multiplier for gravity influence (0 = no gravity, 0.5 = half gravity). Unknown if it works for all simulation classes. | ;Description: Undocumented feature. Multiplier for gravity influence (0 = no gravity, 0.5 = half gravity). Unknown if it works for all simulation classes. | ||
Line 188: | Line 188: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====cost==== | ==== cost ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: ''Cost-gain'' evaluation is performed to choose an appropriate weapon. | ;Description: ''Cost-gain'' evaluation is performed to choose an appropriate weapon. | ||
Line 199: | Line 199: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====CraterEffects==== | ==== CraterEffects ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares which crater effect to spawn on ''hit on ground''. | ;Description: Declares which crater effect to spawn on ''hit on ground''. | ||
Line 209: | Line 209: | ||
===D=== | ===D=== | ||
====dangerRadiusBulletClose==== | ==== dangerRadiusBulletClose ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Defines how far in meters the AI gets alerted by the bullet's pass. Default value -1 disables the detection. (works only for bullets, no other projectiles). | ;Description: Defines how far in meters the AI gets alerted by the bullet's pass. Default value -1 disables the detection. (works only for bullets, no other projectiles). | ||
Line 217: | Line 217: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====dangerRadiusHit==== | ==== dangerRadiusHit ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Defines how far in meters the AI gets alerted by the projectile's impact or explosion. Default value -1 makes this distance be automatically derived from the hit and indirectHit properties (hit * 0.5 + indirectHit * indirectHitRange * 0.5 - but there's also an energy factor). | ;Description: Defines how far in meters the AI gets alerted by the projectile's impact or explosion. Default value -1 makes this distance be automatically derived from the hit and indirectHit properties (hit * 0.5 + indirectHit * indirectHitRange * 0.5 - but there's also an energy factor). | ||
Line 225: | Line 225: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====deflecting==== | ==== deflecting ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Declares if ammo is deflecting and thus it is deflection angle. | ;Description: Declares if ammo is deflecting and thus it is deflection angle. | ||
Line 233: | Line 233: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====deflectionSlowDown==== | ==== deflectionSlowDown ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Modifier applied to projectile velocity after a deflection occurred. | ;Description: Modifier applied to projectile velocity after a deflection occurred. | ||
Line 241: | Line 241: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====deflectionDirDistribution==== | ==== deflectionDirDistribution ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Parameter for deflection direction randomization | ;Description: Parameter for deflection direction randomization | ||
Line 251: | Line 251: | ||
===E=== | ===E=== | ||
====effectsFire==== | ==== effectsFire ==== | ||
====effectsMissile==== | ==== effectsMissile ==== | ||
====effectsSmoke==== | ==== effectsSmoke ==== | ||
====explosionEffects==== | ==== explosionEffects ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares which explosion effect to spawn on ''hit''. | ;Description: Declares which explosion effect to spawn on ''hit''. | ||
;Possible values: <tt>BombExplosion</tt>, <tt>ExploAmmoExplosion</tt>, <tt>ExplosionEffects</tt>, and <tt>GrenadeExplosion</tt>. | ;Possible values: <tt>BombExplosion</tt>, <tt>ExploAmmoExplosion</tt>, <tt>ExplosionEffects</tt>, and <tt>GrenadeExplosion</tt>. | ||
====explosionTime==== | ==== explosionTime ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Declares after how many seconds ammo will explode (''e.g.'' used on ''timed hand grenades''). If set to -1, grenade will act as impact grenade. | ;Description: Declares after how many seconds ammo will explode (''e.g.'' used on ''timed hand grenades''). If set to -1, grenade will act as impact grenade. | ||
Line 270: | Line 270: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====explosive==== | ==== explosive ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Declares if ammo is explosive, and if it is, how much of the damage is done using explosion. The rest is assumed to be caused by kinetic impact. | ;Description: Declares if ammo is explosive, and if it is, how much of the damage is done using explosion. The rest is assumed to be caused by kinetic impact. | ||
Line 276: | Line 276: | ||
===F=== | ===F=== | ||
====fuseDistance==== | ==== fuseDistance ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: The ''minimum'' distance any ''explosive projectile'' has to travel, before it becomes ''armed'' and thus explodes on impact. | ;Description: The ''minimum'' distance any ''explosive projectile'' has to travel, before it becomes ''armed'' and thus explodes on impact. | ||
Line 285: | Line 285: | ||
===H=== | ===H=== | ||
====hit==== | ==== hit ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Damage on hit. In OFP total damage is calculated as: <tt>''Total damage'' = ''Hit damage'' - ''Indirect damage''</tt> (while hit value is larger than ''indirectHit''). Note that in Arma 3 damage calculation is different. For bullets with caliber=0 the standard damage is dealt. For bullets with caliber > 0 only a fraction of the "hit" value is dealt when the bullet completely penetrates the firegeometry. The damage behaviour in this case is nonlinear (depending on firegeometry thickness) and currently not possible to predict. | ;Description: Damage on hit. In OFP total damage is calculated as: <tt>''Total damage'' = ''Hit damage'' - ''Indirect damage''</tt> (while hit value is larger than ''indirectHit''). Note that in Arma 3 damage calculation is different. For bullets with caliber=0 the standard damage is dealt. For bullets with caliber > 0 only a fraction of the "hit" value is dealt when the bullet completely penetrates the firegeometry. The damage behaviour in this case is nonlinear (depending on firegeometry thickness) and currently not possible to predict. | ||
Line 293: | Line 293: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====HitEffects==== | ==== HitEffects ==== | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
class HitEffects | class HitEffects | ||
Line 302: | Line 302: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====hit...[]==== | ==== hit...[] ==== | ||
;Description: The list of sound effects, themselves defined as [[#sound....5B.5D|sound...[]]] arrays, to play whenever the specified events occur, with the loudness or intensity of the sound following. | ;Description: The list of sound effects, themselves defined as [[#sound....5B.5D|sound...[]]] arrays, to play whenever the specified events occur, with the loudness or intensity of the sound following. | ||
Line 326: | Line 326: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====hitArmor[]===== | ===== hitArmor[] ===== | ||
=====hitBuilding[]===== | ===== hitBuilding[] ===== | ||
=====hitConcrete[]===== | ===== hitConcrete[] ===== | ||
=====hitDefault[]===== | ===== hitDefault[] ===== | ||
=====hitFoliage[]===== | ===== hitFoliage[] ===== | ||
=====hitGlass[]===== | ===== hitGlass[] ===== | ||
=====hitGlassArmored[]===== | ===== hitGlassArmored[] ===== | ||
=====hitGround[]===== | ===== hitGround[] ===== | ||
;Description: OFP (only) | ;Description: OFP (only) | ||
=====hitGroundHard[]===== | ===== hitGroundHard[] ===== | ||
=====hitGroundSoft[]===== | ===== hitGroundSoft[] ===== | ||
=====hitIron[]===== | ===== hitIron[] ===== | ||
=====hitMan[]===== | ===== hitMan[] ===== | ||
=====hitMetal[]===== | ===== hitMetal[] ===== | ||
=====hitMetalplate[]===== | ===== hitMetalplate[] ===== | ||
=====hitPlastic[]===== | ===== hitPlastic[] ===== | ||
=====hitRubber[]===== | ===== hitRubber[] ===== | ||
=====hitWater[]===== | ===== hitWater[] ===== | ||
=====hitWood[]===== | ===== hitWood[] ===== | ||
===I=== | ===I=== | ||
====indirectHit==== | ==== indirectHit ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Damage in ''indirectHitRange''. | ;Description: Damage in ''indirectHitRange''. | ||
Line 372: | Line 372: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====indirectHitRange==== | ==== indirectHitRange ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Radius in metres where ''indirectHit'' damage is caused. See [[Arma_3_Damage_Description#IndirectHit|Arma 3 Damage Description]] fore detailed description. | ;Description: Radius in metres where ''indirectHit'' damage is caused. See [[Arma_3_Damage_Description#IndirectHit|Arma 3 Damage Description]] fore detailed description. | ||
Line 380: | Line 380: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====initTime==== | ==== initTime ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: How long (in seconds) the projectile waits before starting it is ''motor''. | ;Description: How long (in seconds) the projectile waits before starting it is ''motor''. | ||
Line 388: | Line 388: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====irLock==== | ==== irLock ==== | ||
;Type: [[TokenNameValueTypes|Boolean]] | ;Type: [[TokenNameValueTypes|Boolean]] | ||
;Description: Declares if ammo can lock on ''IR-targets''. | ;Description: Declares if ammo can lock on ''IR-targets''. | ||
===L=== | ===L=== | ||
====laserLock==== | ==== laserLock ==== | ||
;Type: [[TokenNameValueTypes|Boolean]] | ;Type: [[TokenNameValueTypes|Boolean]] | ||
;Description: Declares if ammo can lock on ''laser designator''. | ;Description: Declares if ammo can lock on ''laser designator''. | ||
====lightColor[]==== | ==== lightColor[] ==== | ||
;Type: [[TokenNameValueTypes|Array]] | ;Type: [[TokenNameValueTypes|Array]] | ||
;Description: Declares color of light (''e.g.'' on ''flares''). | ;Description: Declares color of light (''e.g.'' on ''flares''). | ||
Line 406: | Line 406: | ||
===M=== | ===M=== | ||
====maneuvrability==== | ==== maneuvrability ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Declares maneuvrability of guided missiles. | ;Description: Declares maneuvrability of guided missiles. | ||
Line 418: | Line 418: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====manualControl==== | ==== manualControl ==== | ||
;Type: [[TokenNameValueTypes|Boolean]] | ;Type: [[TokenNameValueTypes|Boolean]] | ||
;Description: If <tt>1</tt>, causes the projectile to be guided towards the firer's crosshairs. | ;Description: If <tt>1</tt>, causes the projectile to be guided towards the firer's crosshairs. | ||
Line 428: | Line 428: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====maxControlRange==== | ==== maxControlRange ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Declares in which distance to player ammo can be controlled during flight. | ;Description: Declares in which distance to player ammo can be controlled during flight. | ||
Line 444: | Line 444: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====maxSpeed==== | ==== maxSpeed ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Declares the maximum speed (metres per second). | ;Description: Declares the maximum speed (metres per second). | ||
Line 452: | Line 452: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====model==== | ==== model ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares path to model. For simulation="shotShell" the model gets displayed, but only up to a limit of somewhere between 390 and 450 m/s initspeed. Unknown if other simulationclasses behave different. The model does not get displayed when tracers are created [via the cfgmagazine token tracersevery=<number>; ]. Models for tracers get hardcode-deformed and scaled based on speed and ammo hit strength. | ;Description: Declares path to model. For simulation="shotShell" the model gets displayed, but only up to a limit of somewhere between 390 and 450 m/s initspeed. Unknown if other simulationclasses behave different. The model does not get displayed when tracers are created [via the cfgmagazine token tracersevery=<number>; ]. Models for tracers get hardcode-deformed and scaled based on speed and ammo hit strength. | ||
Line 460: | Line 460: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====min/mid/maxRange...==== | ==== min/mid/maxRange... ==== | ||
;Description: These tokens are present in {{Name|ofp|short}} only. They were badly classed in {{Name|ofp|short}}, causing all weapons using this specific ''bullet'' to exhibit this behaviour rather than the behaviour of the ''rifle''. As such they were transferred to Arma's ''cfgWeapons''{{Clarify}}. | ;Description: These tokens are present in {{Name|ofp|short}} only. They were badly classed in {{Name|ofp|short}}, causing all weapons using this specific ''bullet'' to exhibit this behaviour rather than the behaviour of the ''rifle''. As such they were transferred to Arma's ''cfgWeapons''{{Clarify}}. | ||
Line 466: | Line 466: | ||
:The tokens are found/put on each weapons "''firing modes''", or on the gun itself, if it has no separate firing modes{{Clarify}}. | :The tokens are found/put on each weapons "''firing modes''", or on the gun itself, if it has no separate firing modes{{Clarify}}. | ||
=====mineTrigger===== | ===== mineTrigger ===== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: is a in [[CfgMineTriggers_Config_Reference|CfgMineTriggers]] defined class | ;Description: is a in [[CfgMineTriggers_Config_Reference|CfgMineTriggers]] defined class | ||
=====minRange===== | ===== minRange ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Minimum'' engagement range for the ''AI''. | ;Description: ''Minimum'' engagement range for the ''AI''. | ||
Line 480: | Line 480: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====minRangeProbab===== | ===== minRangeProbab ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''minRange'' using ''this (current)'' firing mode. | ;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''minRange'' using ''this (current)'' firing mode. | ||
Line 490: | Line 490: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====midRange===== | ===== midRange ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Mid-Range'' engagement range for ''AI'''s using ''this (current)'' firing mode. | ;Description: ''Mid-Range'' engagement range for ''AI'''s using ''this (current)'' firing mode. | ||
Line 498: | Line 498: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====midRangeProbab===== | ===== midRangeProbab ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''midRange''. | ;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''midRange''. | ||
Line 508: | Line 508: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====maxRange===== | ===== maxRange ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Maximum'' range possible for the ''AI''. | ;Description: ''Maximum'' range possible for the ''AI''. | ||
Line 518: | Line 518: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=====maxRangeProbab===== | ===== maxRangeProbab ===== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''maxRange'' (or slightly below). | ;Description: ''Probability'' declaring how '''''high''''' the chance is that the ''AI'' will engage a target at ''maxRange'' (or slightly below). | ||
Line 529: | Line 529: | ||
===P=== | ===P=== | ||
====proxyShape==== | ==== proxyShape ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares the model of ''this weapon'' used in ''proxies'' on ''vehicles''. Note that ''proxies'' can be used '''only''' with air units. | ;Description: Declares the model of ''this weapon'' used in ''proxies'' on ''vehicles''. Note that ''proxies'' can be used '''only''' with air units. | ||
Line 537: | Line 537: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====penetrationDirDistribution==== | ==== penetrationDirDistribution ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Parameter for penetration direction randomization | ;Description: Parameter for penetration direction randomization | ||
Line 546: | Line 546: | ||
===S=== | ===S=== | ||
====shootDistraction==== | ==== shootDistraction ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: below 0 means it decreases dynamic error (DCE) which each shot, above 0 increases DCE which each shot, if the parameter is -1, the value will be calculated as 0.01 * (audibleFire^2 + visibleFire^2) | ;Description: below 0 means it decreases dynamic error (DCE) which each shot, above 0 increases DCE which each shot, if the parameter is -1, the value will be calculated as 0.01 * (audibleFire^2 + visibleFire^2) | ||
Line 554: | Line 554: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====sideAirFriction==== | ==== sideAirFriction ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Adjusts the drag of a projectile. Lower values decrease drag, higher values increase drag. | ;Description: Adjusts the drag of a projectile. Lower values decrease drag, higher values increase drag. | ||
Line 564: | Line 564: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====simulation==== | ==== simulation ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
;Description: Declares simulation type. | ;Description: Declares simulation type. | ||
Line 578: | Line 578: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====simulationStep==== | ==== simulationStep ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
====shadow==== | ==== shadow ==== | ||
====sound...[]==== | ==== sound...[] ==== | ||
=====soundFly[]===== | ===== soundFly[] ===== | ||
Especially cool for missiles - sound that the projectile makes while it is in flight | Especially cool for missiles - sound that the projectile makes while it is in flight | ||
=====soundEngine[]===== | ===== soundEngine[] ===== | ||
Sound gets played while the rocket engine is running | Sound gets played while the rocket engine is running | ||
=====soundHit[]===== | ===== soundHit[] ===== | ||
====supersonicCrackNear[]==== | ==== supersonicCrackNear[] ==== | ||
;Type: [[TokenNameValueTypes|Array]] | ;Type: [[TokenNameValueTypes|Array]] | ||
;Description: Declares sound and volume of the ''supersonic crack'' ('''near the player'''). Supersonic crack will only occur if ammo is flying with supersonic speed. | ;Description: Declares sound and volume of the ''supersonic crack'' ('''near the player'''). Supersonic crack will only occur if ammo is flying with supersonic speed. | ||
Line 599: | Line 599: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====supersonicCrackFar[]==== | ==== supersonicCrackFar[] ==== | ||
;Type: [[TokenNameValueTypes|Array]] | ;Type: [[TokenNameValueTypes|Array]] | ||
;Description: Declares sound and volume of the supersonic crack ('''far'''). Supersonic crack will only occur if ammo is flying with supersonic speed. | ;Description: Declares sound and volume of the supersonic crack ('''far'''). Supersonic crack will only occur if ammo is flying with supersonic speed. | ||
Line 607: | Line 607: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====suppressionRadiusBulletClose==== | ==== suppressionRadiusBulletClose ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Defines the max. distance in meters at which the AI becomes suppressed by the bullet's pass. Default value -1 disables the suppressive effect (works only for bullets, no other projectiles). | ;Description: Defines the max. distance in meters at which the AI becomes suppressed by the bullet's pass. Default value -1 disables the suppressive effect (works only for bullets, no other projectiles). | ||
Line 615: | Line 615: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====suppressionRadiusHit==== | ==== suppressionRadiusHit ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Defines the max. distance in meters at which the AI becomes suppressed by the projectile's impact or explosion. Default value -1 disables the suppressive effect. | ;Description: Defines the max. distance in meters at which the AI becomes suppressed by the projectile's impact or explosion. Default value -1 disables the suppressive effect. | ||
Line 624: | Line 624: | ||
===T=== | ===T=== | ||
====thrust==== | ==== thrust ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Engine power for ''missiles'' and ''rockets''. Thrust is acceleration in m/s².[https://forums.bistudio.com/forums/topic/189449-solved-simulate-rocket-flight-airfriction-correction-thrust-in-cfgammo-is-equal-to-acceleration/?do=findComment&comment=3001914] | ;Description: Engine power for ''missiles'' and ''rockets''. Thrust is acceleration in m/s².[https://forums.bistudio.com/forums/topic/189449-solved-simulate-rocket-flight-airfriction-correction-thrust-in-cfgammo-is-equal-to-acceleration/?do=findComment&comment=3001914] | ||
====thrustTime==== | ==== thrustTime ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Engine burn time for ''missiles'' and ''rockets''. | ;Description: Engine burn time for ''missiles'' and ''rockets''. | ||
Line 636: | Line 636: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====timeToLive==== | ==== timeToLive ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Time before the ammo ''vanishes'', used as optimization to avoid having to simulate stray bullets. | ;Description: Time before the ammo ''vanishes'', used as optimization to avoid having to simulate stray bullets. | ||
Line 646: | Line 646: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====tracerColor[]==== | ==== tracerColor[] ==== | ||
;Type: [[TokenNameValueTypes|Array]] | ;Type: [[TokenNameValueTypes|Array]] | ||
;Description: Declares ''tracer colour'' with "''easy''" settings (tracers enabled), format is <tt>{Red, Green, Blue, Transparency}</tt>. | ;Description: Declares ''tracer colour'' with "''easy''" settings (tracers enabled), format is <tt>{Red, Green, Blue, Transparency}</tt>. | ||
====tracerColorR[]==== | ==== tracerColorR[] ==== | ||
;Type: [[TokenNameValueTypes|Array]] | ;Type: [[TokenNameValueTypes|Array]] | ||
;Description: Declares ''tracer colour'' with "''realistic''" settings (tracers disabled), format is <tt>{Red, Green, Blue, Transparency}</tt>. | ;Description: Declares ''tracer colour'' with "''realistic''" settings (tracers disabled), format is <tt>{Red, Green, Blue, Transparency}</tt>. | ||
====trackLead==== | ==== trackLead ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: The amount of ''lead''{{Clarify}} a guided weapon will use when tracking a target. | ;Description: The amount of ''lead''{{Clarify}} a guided weapon will use when tracking a target. | ||
====trackOversteer==== | ==== trackOversteer ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: The factor at which a guided weapon will ''steer'' to meet ''trackLead''{{Clarify}}. | ;Description: The factor at which a guided weapon will ''steer'' to meet ''trackLead''{{Clarify}}. | ||
====triggerTime==== | ==== triggerTime ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: Used in ''illumination flares''. The time in seconds before the projectile ''begins emitting'' light. | ;Description: Used in ''illumination flares''. The time in seconds before the projectile ''begins emitting'' light. | ||
====typicalSpeed==== | ==== typicalSpeed ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: Hit value is valid when projectile moves at ''this speed''. With lower speed, the hit caused by ''the ammo'' is lower as well. | ;Description: Hit value is valid when projectile moves at ''this speed''. With lower speed, the hit caused by ''the ammo'' is lower as well. | ||
===V=== | ===V=== | ||
====visibleFire==== | ==== visibleFire ==== | ||
;Type: [[TokenNameValueTypes|Float]] | ;Type: [[TokenNameValueTypes|Float]] | ||
;Description: How much does ''AI'' see a unit firing this weapon. | ;Description: How much does ''AI'' see a unit firing this weapon. | ||
Line 679: | Line 679: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====visibleFireTime==== | ==== visibleFireTime ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: How long is one shot assumed to be noticeable by the ''AI''. | ;Description: How long is one shot assumed to be noticeable by the ''AI''. | ||
Line 690: | Line 690: | ||
===W=== | ===W=== | ||
====weaponLockSystem==== | ==== weaponLockSystem ==== | ||
;Type: [[TokenNameValueTypes|Integer]] or [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|Integer]] or [[TokenNameValueTypes|String]] | ||
;Description: For ''countermeasures'', this defines the types of enemy countermeasures that it is effective against. | ;Description: For ''countermeasures'', this defines the types of enemy countermeasures that it is effective against. | ||
Line 717: | Line 717: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====weaponType==== | ==== weaponType ==== | ||
;Type: [[TokenNameValueTypes|String]] | ;Type: [[TokenNameValueTypes|String]] | ||
Line 735: | Line 735: | ||
"special"</pre> | "special"</pre> | ||
====whistleDist==== | ==== whistleDist ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: The range at which ''the projectile'' is audible when moving through the air. Used for ''mortar shells'' and ''artillery shells''. Unknown units. | ;Description: The range at which ''the projectile'' is audible when moving through the air. Used for ''mortar shells'' and ''artillery shells''. Unknown units. | ||
====whistleOnFire==== | ==== whistleOnFire ==== | ||
;Type: [[TokenNameValueTypes|Integer]] | ;Type: [[TokenNameValueTypes|Integer]] | ||
;Description: If <tt>1</tt>, ''the projectile'' should begin ''whistling'' immediately after launch. | ;Description: If <tt>1</tt>, ''the projectile'' should begin ''whistling'' immediately after launch. |
Revision as of 18:49, 31 January 2021
Introduction
cfgAmmo, cfgMagazines, cfgWeapons and cfgVehicles are root classes defined in the engine's config.bin.
These classes can be subsequently added to by addons.
cfgAmmo defines the missile or projectile characteristics for ammunition held in a cfgMagazine which, in turn, is used by a cfgWeapon, which, in turn, is selected for use in a (series of) cfgVehicles or added as a portable weapon for a soldier.
The same ammunition can be used by multiple magazines, and the same magazine can be used by multiple weapons. Generally, the same ammunition and the same magazine are used where possible, for consistency amongst weapons and to allow tweaks and changes to any single cfgAmmo to propagate naturally through all sources that use it.
Note that engines accept integer values where a float would normally be expected.
OFP Legacy Behaviour
All Real Virtuality games since Arma use the root class cfgMagazines. In contrast, OFP/Arma: Cold War Assault relies on constructs within its cfgWeapons class to distinguish between weapon and magazine parameters.
The cfgAmmo class is similar across every game engine, and aside from incremental additions of tokens with new game versions, the overall structure has not changed significantly.
Modifications
access = 1;
- Ammunition classes can be added.
- Existing classes can (sometimes) be altered.
The default class for cfgAmmo specifies access = 3; - Almost all subsequent classes inherit this value, which means they cannot be altered in any way.
To allow YOUR addon to subsequently modify YOUR ammunition (should you wish other addons to do so), you must change the access= in YOUR ammunition.
CamShake
New to Arma 3 is the ability to introduce camera shake to the firing of weapons by including subclasses within each cfgAmmo definition. In all cases, CamShake only affects players (as obviously, AI have no screens to shake).
- CamShakeFire applies to anyone within the specified distance of the shooter.
- CamShakePlayerFire applies to the shooter directly, instead of the proximity effect.
- CamShakeHit applies to anyone struck by or within the area of effect (indirectHitRange) of the projectile. Parameters are the same as the addCamShake command.
Example:
class myAmmo: BulletCore
{
class CamShakeFire
{
power = 30;
duration = 0.5;
frequency = 20;
distance = 30;
};
class CamShakePlayerFire
{
power = 0.06;
duration = 0.1;
frequency = 20;
};
class CamShakeHit
{
power = 100;
duration = 1;
frequency = 20;
};
}
Alphabetical Order
A
aiAmmoUsageFlags
- Type
- Integer
- Description
- Tells the AI how to use this Ammo. NOTE: Feature still WIP, some functions may not work yet or be removed later. See: AI Devbranch
Value | Type | ! Description |
---|---|---|
0 | None | ??? |
1 | Light | used for illumination |
2 | Marking | ??? |
4 | Concealment | used for smokes |
8 | CounterMeasures | ??? |
16 | Mine | ??? |
32 | Underwater | used in underwater environment |
64 | OffensiveInf | against infantry |
128 | OffensiveVeh | against vehicles |
256 | OffensiveAir | against air |
512 | OffensiveArmour | against armored vehicles |
Multiple flags can be combined by adding the values together
aiAmmoUsageFlags = 4; //for concealment only
aiAmmoUsageFlags = "64 + 128"; //against infantry and light vehicles
airFriction
- Type
- Float
- Description
- How much the air friction slows down the projectile. Tiny negative values for bullets and bigger positive values for self-propelled missiles and rockets.
- If the ammo class has artilleryLock = 1 set, the config value for airfriction gets ignored and airfriction=0 is assumed ingame.
- airFriction is calculated differently for bullets and for missiles or rockets.
- For bullets use this formula:
- f = a / v2
- For self-propelled rockets and missiles use this one:
- f * -0.002 = a / v2[1]
- f - airFriction
- a - acceleration
- v - velocity
airLock
- Type
- Boolean
- Description
- Declares if ammo can lock on air targets. Also makes AI to decide whether to engage air units with the particular ammo.
allowAgainstInfantry
- Type
- Integer
- Description
- Default 1. If 0, the AI will not (deliberately) employ this weapon against infantry targets. Used to override cost behaviour.
animated
audibleFire
- Type
- Float
- Description
- How much can AI hear when given weapon is fired.
audibleFire = 5.0;
autoSeekTarget
- Description
- Self-guided projectiles? Used in anti-tank artillery shells.
B
brightness
- Type
- Float
- Description
- The intensity of the light source. Used in illuminating flares.
brightness = 2;
C
caliber
- Type
- Float
- Description
- Acts as penetration multiplier for the projectile.
- Penetration depth in mm
- velocity[m/s] * caliber * penetrability / 1000. Penetrability is a material property (for RHA steel it is 15, for concrete 80, for meat 250).
caliber = 1.5;
canLock
This config parameter does not exist for CfgAmmo in Arma 3 (only for CfgWeapons).
- Type
- Integer
- Description
- Declares if ammo is able to lock (necessary for airLock, irLock and laserLock).
- Possible values
- 0 = false, 1 = cadet mode only, and 2 = always.
canLock = 0;
cartridge
- Type
- String
- Description
- Declares the path to the cartridge P3D model, which may be ejected on each shot. Like all model specifications, .p3d is inferred.
cartridge = "FxCartridge[.p3d]";
cmImmunity
- Type
- Float
- Description
- Specifies a missile's resistance to countermeasures (such as chaff and flares).
- Possible range
- 0.0 to 1.0
cmImmunity = 0.9;
coefGravity
- Type
- Float
- Description
- Undocumented feature. Multiplier for gravity influence (0 = no gravity, 0.5 = half gravity). Unknown if it works for all simulation classes.
coefGravity = 1.0; //default value
cost
- Type
- Integer
- Description
- Cost-gain evaluation is performed to choose an appropriate weapon.
- Gain includes self-preservation.
- Cost includes time required to complete the attack.
As a result, weapons with high cost are unlikely to be used against common targets, esp. when low cost weapons are available. Still, there may be situation where AI may decide to use high cost weapon, esp. when it thinks it has little chance of survival and needs to attempt destroying enemy quickly.
cost = 5000;
CraterEffects
- Type
- String
- Description
- Declares which crater effect to spawn on hit on ground.
- Possible values
- BombCrater, ExploAmmoCrater, GrenadeCrater, ImpactEffectsBig, MissileCrater, and ShellCrater.
CraterEffects = "ExploAmmoCrater";
D
dangerRadiusBulletClose
- Type
- Integer
- Description
- Defines how far in meters the AI gets alerted by the bullet's pass. Default value -1 disables the detection. (works only for bullets, no other projectiles).
deflecting = -1;
dangerRadiusHit
- Type
- Integer
- Description
- Defines how far in meters the AI gets alerted by the projectile's impact or explosion. Default value -1 makes this distance be automatically derived from the hit and indirectHit properties (hit * 0.5 + indirectHit * indirectHitRange * 0.5 - but there's also an energy factor).
deflecting = -1;
deflecting
- Type
- Float
- Description
- Declares if ammo is deflecting and thus it is deflection angle.
deflecting = 10;
deflectionSlowDown
- Type
- Float
- Description
- Modifier applied to projectile velocity after a deflection occurred.
deflectionSlowDown=1.0;
deflectionDirDistribution
- Type
- Float
- Description
- Parameter for deflection direction randomization
deflectionDirDistribution=0.5;
E
effectsFire
effectsMissile
effectsSmoke
explosionEffects
- Type
- String
- Description
- Declares which explosion effect to spawn on hit.
- Possible values
- BombExplosion, ExploAmmoExplosion, ExplosionEffects, and GrenadeExplosion.
explosionTime
- Type
- Integer
- Description
- Declares after how many seconds ammo will explode (e.g. used on timed hand grenades). If set to -1, grenade will act as impact grenade.
explosionTime = 5;
explosive
- Type
- Float
- Description
- Declares if ammo is explosive, and if it is, how much of the damage is done using explosion. The rest is assumed to be caused by kinetic impact.
- 1 means fully explosive, 0 means fully kinetic.
F
fuseDistance
- Type
- Float
- Description
- The minimum distance any explosive projectile has to travel, before it becomes armed and thus explodes on impact.
Missiles hitting short of the given range still visually explode, causing no damage or shockwave effects.
Grenades will stick into the ground for x amount of time and then disappear causing no damage, or (in case explosionTime= is set) explode after x seconds, causing damage.
H
hit
- Type
- Float
- Description
- Damage on hit. In OFP total damage is calculated as: Total damage = Hit damage - Indirect damage (while hit value is larger than indirectHit). Note that in Arma 3 damage calculation is different. For bullets with caliber=0 the standard damage is dealt. For bullets with caliber > 0 only a fraction of the "hit" value is dealt when the bullet completely penetrates the firegeometry. The damage behaviour in this case is nonlinear (depending on firegeometry thickness) and currently not possible to predict.
hit = 8;
HitEffects
class HitEffects
{
vehicle = "ImpactMetal";
object = "ImpactConcrete";
};
hit...[]
- Description
- The list of sound effects, themselves defined as sound...[] arrays, to play whenever the specified events occur, with the loudness or intensity of the sound following.
All array values are defaulted to:
hitBuilding[] = {"soundHit", 1};
Example:
hitGroundSoft[] = {
"soundGroundSoft1", 0.2,
"soundGroundSoft2", 0.2,
"soundGroundSoft3", 0.1,
"soundGroundSoft4", 0.1,
"soundGroundSoft5", 0.1,
"soundGroundSoft6", 0.1,
"soundGroundSoft7", 0.1,
"soundGroundSoft8", 0.1
};
hitArmor[]
hitBuilding[]
hitConcrete[]
hitDefault[]
hitFoliage[]
hitGlass[]
hitGlassArmored[]
hitGround[]
- Description
- OFP (only)
hitGroundHard[]
hitGroundSoft[]
hitIron[]
hitMan[]
hitMetal[]
hitMetalplate[]
hitPlastic[]
hitRubber[]
hitWater[]
hitWood[]
I
indirectHit
- Type
- Float
- Description
- Damage in indirectHitRange.
indirectHit = 8;
indirectHitRange
- Type
- Float
- Description
- Radius in metres where indirectHit damage is caused. See Arma 3 Damage Description fore detailed description.
indirectHitRange = 75;
initTime
- Type
- Float
- Description
- How long (in seconds) the projectile waits before starting it is motor.
initTime = 0.2;
irLock
- Type
- Boolean
- Description
- Declares if ammo can lock on IR-targets.
L
laserLock
- Type
- Boolean
- Description
- Declares if ammo can lock on laser designator.
lightColor[]
- Type
- Array
- Description
- Declares color of light (e.g. on flares).
lightColor[] = {1, 1, 1, 0};
M
maneuvrability
- Type
- Float
- Description
- Declares maneuvrability of guided missiles.
Higher values than 30-33 cause the missile (when locked on) to spin wildly and rarely hit the target.
Tweaking sideAirFriction and simulationStep makes the missile track and hit it is target, but (especially in multiplayer) from other player's POV the missile will spin out of control, whilst from the shooters own POV, it will still fly straight and hit it is target.
manueuvrability = 30;
manualControl
- Type
- Boolean
- Description
- If 1, causes the projectile to be guided towards the firer's crosshairs.
See: SACLOS guidance behaviour, such as for TOW missiles.
manualControl = 0;
maxControlRange
- Type
- Float
- Description
- Declares in which distance to player ammo can be controlled during flight.
Using this on handheld launchers causes the missile to time-out after approximately 1.5km, loosing all control of the warhead, which causes the missile to spin around/take off in random directions (until it self-destructs - timeToLive), making higher values useless.
Using this on any vehicle mounted launchers (like the TOW, Hellfire or Maverick) allows the warhead to track and turn to follow it is target even if said target is behind the player's vehicle (and possibly AI-controlled ones too), which requires a high manueuvrability value on the missile.
That way, one can simply lock on, then pass the locked target and shoot a missile, which will follow the target even without direct line of sight.
Note that The missile follows the target regardless of obstacles, init-time or initspeed, meaning the missile might crash into the ground, especially at lower heights.
maxControlRange = 5000;
maxSpeed
- Type
- Float
- Description
- Declares the maximum speed (metres per second).
maxSpeed = 241;
model
- Type
- String
- Description
- Declares path to model. For simulation="shotShell" the model gets displayed, but only up to a limit of somewhere between 390 and 450 m/s initspeed. Unknown if other simulationclasses behave different. The model does not get displayed when tracers are created [via the cfgmagazine token tracersevery=<number>; ]. Models for tracers get hardcode-deformed and scaled based on speed and ammo hit strength.
model = "\ca\weapons\bullet[.p3d]"
min/mid/maxRange...
- Description
- These tokens are present in OFP only. They were badly classed in OFP, causing all weapons using this specific bullet to exhibit this behaviour rather than the behaviour of the rifle. As such they were transferred to Arma's cfgWeaponsClarify.
Above statement is not true; Even in Arma 2 and oa, these values still exist and affect the AI and only the AI in the following ways:
- The tokens are found/put on each weapons "firing modes", or on the gun itself, if it has no separate firing modesClarify.
mineTrigger
- Type
- String
- Description
- is a in CfgMineTriggers defined class
minRange
- Type
- Float
- Description
- Minimum engagement range for the AI.
Below given values, the AI will not engage but just "stare them down", even if they get shot at, and (most likely) killed.
Minrange = 5;
minRangeProbab
- Type
- Float
- Description
- Probability declaring how high the chance is that the AI will engage a target at minRange using this (current) firing mode.
Values are 0.0 to 1.0 where 1.0 equates to a 100% likelihood.
minRangeProbab = 0.02;
midRange
- Type
- Float
- Description
- Mid-Range engagement range for AI's using this (current) firing mode.
midRange = 150;
midRangeProbab
- Type
- Float
- Description
- Probability declaring how high the chance is that the AI will engage a target at midRange.
Values are 0.0 to 1.0 where 1.0 equates to a 100% likelihood.
midRangeProbab = 0.7;
maxRange
- Type
- Float
- Description
- Maximum range possible for the AI.
Although AI's may engage targets slightly beyond maxRange, this is how far the AI will try to shoot at targets. Targets definitely beyond maxRange are ignored.
maxRange = 500;
maxRangeProbab
- Type
- Float
- Description
- Probability declaring how high the chance is that the AI will engage a target at maxRange (or slightly below).
Values are 0.0 to 1.0 where 1.0 equates to a 100% likelihood.
maxRangeProbab = 0.51;
P
proxyShape
- Type
- String
- Description
- Declares the model of this weapon used in proxies on vehicles. Note that proxies can be used only with air units.
proxyShape = "\ca\air\sidewinder_proxy";
penetrationDirDistribution
- Type
- String
- Description
- Parameter for penetration direction randomization
penetrationDirDistribution = 0.25;
S
shootDistraction
- Type
- Float
- Description
- below 0 means it decreases dynamic error (DCE) which each shot, above 0 increases DCE which each shot, if the parameter is -1, the value will be calculated as 0.01 * (audibleFire^2 + visibleFire^2)
shootDistraction = 1.0;
sideAirFriction
- Type
- Float
- Description
- Adjusts the drag of a projectile. Lower values decrease drag, higher values increase drag.
When used with guided projectiles, higher values make it easier for the projectile to turn, while lower values make it more difficult to turn.
sideAirFriction = 0.5;
simulation
- Type
- String
- Description
- Declares simulation type.
Also affects the behaviour the projectile causes to the shooter/object hit;
- Changing "shotShell" to "shotBullet" makes a tank shell pass through more trees rather than being stopped by them, and also removes the recoil which usually affects the tank/vehicle the cannon is mounted to.
- Changing "shotBullet" to "shotSpread" (OA only) causes the changed ammo to behave like it is buckshot (again, OA only).
- Possible values
- Refer to Models & Classnames: Simulation Types for a list of all supported simulation types.
simulation = "shotShell";
simulationStep
- Type
- Float
shadow
sound...[]
soundFly[]
Especially cool for missiles - sound that the projectile makes while it is in flight
soundEngine[]
Sound gets played while the rocket engine is running
soundHit[]
supersonicCrackNear[]
- Type
- Array
- Description
- Declares sound and volume of the supersonic crack (near the player). Supersonic crack will only occur if ammo is flying with supersonic speed.
supersonicCrackNear[] = {"\ca\Weapons\Data\Sound\supersonic_crack_close.wss", 1, 1};
supersonicCrackFar[]
- Type
- Array
- Description
- Declares sound and volume of the supersonic crack (far). Supersonic crack will only occur if ammo is flying with supersonic speed.
supersonicCrackFar[] = {"\ca\Weapons\Data\Sound\supersonic_crack_50meters.wss", 1, 1};
suppressionRadiusBulletClose
- Type
- Integer
- Description
- Defines the max. distance in meters at which the AI becomes suppressed by the bullet's pass. Default value -1 disables the suppressive effect (works only for bullets, no other projectiles).
suppressionRadiusBulletClose = -1;
suppressionRadiusHit
- Type
- Integer
- Description
- Defines the max. distance in meters at which the AI becomes suppressed by the projectile's impact or explosion. Default value -1 disables the suppressive effect.
suppressionRadiusHit = -1;
T
thrust
thrustTime
- Type
- Float
- Description
- Engine burn time for missiles and rockets.
thrustTime = 0.200000;
timeToLive
- Type
- Integer
- Description
- Time before the ammo vanishes, used as optimization to avoid having to simulate stray bullets.
Note that this parameter has no effect in OFP where timeToLive is predefined by simulation.
timeToLive = 4;
tracerColor[]
- Type
- Array
- Description
- Declares tracer colour with "easy" settings (tracers enabled), format is {Red, Green, Blue, Transparency}.
tracerColorR[]
- Type
- Array
- Description
- Declares tracer colour with "realistic" settings (tracers disabled), format is {Red, Green, Blue, Transparency}.
trackLead
trackOversteer
triggerTime
- Type
- Float
- Description
- Used in illumination flares. The time in seconds before the projectile begins emitting light.
typicalSpeed
- Type
- Integer
- Description
- Hit value is valid when projectile moves at this speed. With lower speed, the hit caused by the ammo is lower as well.
V
visibleFire
- Type
- Float
- Description
- How much does AI see a unit firing this weapon.
visibleFire = 18;
visibleFireTime
- Type
- Integer
- Description
- How long is one shot assumed to be noticeable by the AI.
Values under 5 should be avoided, as AI can perform in cycles with 5s of no testing in between.
visibleFireTime = 18;
W
weaponLockSystem
- Type
- Integer or String
- Description
- For countermeasures, this defines the types of enemy countermeasures that it is effective against.
For weapons, declares the type of guidance system that the projectile uses (and if one is spoofed it can fall back on another). This can be either an integer by itself, or a string containing a mathematical expression, normally a sum of flags added together.
Flag | Guidance Type |
---|---|
0 | Undetectable |
1 | Visual/Contrast |
2 | Infra-red |
4 | Laser-Guided |
8 | Radar-Guided |
16 | Missile |
weaponLockSystem = 2; //infra-red guidance
weaponLockSystem = "2 + 8"; //infra-red and radar guided
weaponType
- Type
- String
Overrides the engine determination of weapon type based on ammo simulation, for vehicle weapon grouping.
weaponType = "cannon";
Definitions:
"cannon" "mGun" "rocket" "missileAA" "missileAT" "missileAAAT" "bomb" "special"
whistleDist
- Type
- Integer
- Description
- The range at which the projectile is audible when moving through the air. Used for mortar shells and artillery shells. Unknown units.
whistleOnFire
- Type
- Integer
- Description
- If 1, the projectile should begin whistling immediately after launch.