CfgVehicles Config Reference
From Bohemia Interactive Community
Introduction
TokenName Config.cpp Reference
Simply put, Token Name & Value pairs are as follows
SomeName = SomeValue;
Token Names are used extensively throughout ofp 'text' files.
An example is, when creating a model using class statements inside a Config.cpp, to access it later, via the mission editor
scope=2;
This article details the token-names specifically available within the CfgVehicles class of a Config.cpp. The primary focus of this document is the TokenNames used for various aspects of controlling models within Addons.
Unlike a command reference, where one meaning fits all, Token names are not verbs. The meaning of the name, it's effect, can be different, depending on context. You are advised therefore, that these names, as listed, apply only to the CfgVehicles class. They may, or may not, have identical meanings (if found), in other classes.
This article lists token names, their value ranges, and their type.
TokenTypes
Integer: A signed value that will be held in 4 bytes.
Boolean: An Integer value of 0 or 1. This is a 'convenience type' in humanly readable text. The engine stores it as an integer.
String: Any string value.
For elite only (not ArmA, or OFP) ALL STRINGS MUST BE ENCLOSED IN QUOTES.
Array: An array []={...}
float Array: An array of floats only
string Arrray: should be obvious
integer Array: ditto
Complex Array: A mixture of multiple types, includig embedded arrays.
Variable Array: the number of elements for this array in this class model can have a varying number of elements (depending on context)
Filenames and Paths
Filenames are case insensitive.
Pbo File conventions
The root path of the filename is (generally) the name of the pbo
model= "\anypbofile\anywhere\....";
note the pbo extension is inferred
anywhere is an (optional) (series of) folder(s) INSIDE the pbo.
Depending on the file referred to, eg a p3d file for a model, the extension (in this case .p3d) is not required.
p3d files
model="\anypbofilename\anyp3d(.p3d)";
paa/pac
wherever these file types are indicated, the default extension is paa
icon=\somepbo\anyicon(.paa);
jpeg
jpeg pictures are useable anywhere a pac (or pac) file is indicated. It is never default.
Exception: Operation Flashpoint Elite specifically, cannot handle jpg.
picture="\AnyPbo\AnyPicture.jpg";
Sound files
wss is the default extension if not declared.
sound="\AnyPbo\AnySoundFolder\AnySound(.wss)";
Otherwise use Ogg Vorbis format (extension .ogg).
ArmA
Token Names found only in Armed Assault config.bins are indicated in bold
Your mileage will vary as to their compatibility / usefulness / buginess if used in 'compatible' missions on the older game versions.
See the ArmA Disclaimer
Vehicle vs 'Vehicle'
In this document. a vehicle, is a true vehicle of some kind. Be it a tank, or a car.
A 'vehicle' on the other hand covers cfgVehicles as defined in a config.cpp which would include men or buildings, since ofp considers them all to be 'vehicles'
Config.bin vs Config.cpp
By convention only, config.cpp is the humanly readable text equivalent of config.bin.
The engine will accept either or both.
When both are encountered, it is the text file that is predominant (the raPified file is ignored). (Which is the text file, and which is the 'binary' is moot, see below).
While unusual to have both, it is common for an addon, eg a pbo, to have both inside where the config.cpp is a 'work in progress' that might later be 'binarised' to raP, and the cpp removed.
raP files
so called 'binarised, or binary' files are encoded in raP format. They are not, in the conventional sense a binary, machine readable code or data, but rather a more convenient (from the engine's perspective), encoded form of the text file. They represent the stripping out of comments and extraneous crud, with bells on.
Save files eg, are raP encoded, just as much as a config.bin is.
By convention only, a config.cpp is a text file. The engine, does not care. If it encounters a config.cpp with a raP signature, it is treated as per a config.bin.
The engine, unconditionally converts text files, to raP encoding before it uses it further. This, (obviously) slows game or mission loading, and (obviously) is a source of 'undocumented features'. Prior to finishing your addon, it is a good idea (tm) to 'binarise' the config into raP encoding (and rename the cpp file to .txt for documentation purposes).
A
...Action
String : defaults ManActCargo
commanderAction = "ManActM60CommanderOut"; driverAction = "ManActShipDriver"; gunnerAction = "ManActJeepGunner"; commanderInAction = "ManActTestDriver"; driverInAction = "ManActM113Driver"; gunnerInAction = "ManActM1A1Gunner"; getInAction = ManActGetInTank; //default getOutAction = ManActGetOutTank; //default
cargoAction
Variable String Array: default {ManActCargo}
cargoAction[] = {"ManActM113Medic","ManActM113Medic","ManActM113Injured"};
Note that unlike driverAction and gunnerAction this is an array. (for multiple positions)
The number of elements in this array correspond to the #transportSoldier value declared for this class.
see #cargoIsCoDriver
...AngleX/Y
Float Degrees
initAngleX = 0; minAngleX = -30; maxAngleX = 30;
initAngleY = 0; minAngleY = -100; maxAngleY = 100;
initFov = 0.700000; minFov = 0.420000; maxFov = 0.850000;
used by car.ViewPilot class
angle
Float: Degrees
angle = -240;
see #Indicator... Class Or #Hatch... Class
access
Integer: Determines the manipulability of the class.
access=1;
0 ReadAndWrite additional values can be added 1 ReadAndCreate only adding new class members is allowed 2 ReadOnly no modifications enabled 3 ReadOnlyVerified no modifications enabled, CRC test applied
All BIS classes are ReadOnlyVerified and can only be inherited into a new class
accuracy
Float: Default value = 0.02.
Determines how easy an object is to identify. Smaller values are easier to detect.
Typically, buildings are 0.2, vehicles, 0.5
A value of 1000 causes the underlying class to be identified instead. Eg bushy trees, pink trees and yellow trees, can all be 'identified' as "trees". The description "bushy trees" is then used solely when Editing. See #VehicleClass
accuracy = 0.2; // buildings accuracy = 0.5; //small vehicles accuracy = 0.9;//truck accuracy = 3.500000;//sniper accuracy = 1.500000;//lawsoldier accuracy = 1000;//soldier // identify (most) solders as 'man'
Relationship to #camouflage:
accuracy defines how hard it is for the AI to recognise the correct class of a unit. But even if it can't recognise the correct class it can still recognise it as an enemy and engage it.
camouflage defines how hard it is for the AI to see that the unit is there.
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
acceleration
acceleration = 7;
airFriction
ArmA Array: 3 separate tokens, airFriction0[],airFriction1[],airFriction2[] that define the X Y and Z component respectively.
airFriction2[] = {25,12,2.500000};
ambient
Float Array:
ambient[] = {0.07,0.07,0.07,1.0};
See #Reflectors Class, #Light Class, #CargoLight Class
animated
Bool : Default Value true
Used by class models that inherit an animated 'vehicle' to turn those aspects of the vehicle off.
animated = false;
model is animated, or not.
when set true, the animation class, if any, happens, otherwise it doesn't
see animations class
animPeriod
float: Seconds.
This TokenName is generally used inside AnimationSources class (ArmA only). It's use in OFP:R is as follows
animPeriod = 1.33; // a fountain
animation...
ArmA String: These animation strings point to rtm files to create the movement.
animationFlag = "\AnyAddon\AnyRTM(.rtm)";// to wiggle flag in wind animationOpen = "\AnyAddon\AnyRTM(.rtm)";// to open or close doors (eg) animationDrop = "\AnyAddon\AnyRTM(.rtm)";
animationSource...
animationSourceBody = "Turret_2"; animationSourceGun = "Gun_2"; animationSourceHatch = "hatchCommander";
armor (integer)
Float: A strength value of the object, how much external damage can be taken before 'destruction'. It is calculated together with object volume size! (bounding sphere calculated in geometry) Below are general ranges to give some idea.
aprox strenght = (0.27/tgtRadius)^2 / armorInConfig
armor = 3; // man armor = 10; // motorcycle armor = 20; // a small car armor = 15..60; // aircraft armor = 150; // buildings armor = 150..300; // bmp armor = 400...900; // tank armor = 300; // boat armor = 10000; // ship
If unspecified (or not inherited) the default value is 30
1 bullet will kill armor <=20
2 bullets <=40
3 bullets 50
armor (float)
Float: The floating version of armor type is only used in Hit... classes, eg HitTurret HitBody
armor = 1.4; // a bee armor = 0.8;// a turret
Related TokenNames: #armor (float), #material, #name, #passThrough
armor...
armorBody = 0.4; // default // for vehicles general armorStructural= 1; //ranges between 1 and 4.0, default 1 armorFuel = 1.4;// default armorGlass = 0.5;// default armorLights = 0.4; // default 0.4 in all models. armorWheels = 0.05;//default // for tanks armorHull = 1; armorTurret = 0.8; armorGun = 0.6; armorEngine = 0.8; armorTracks = 0.6; // for men armorHead = 0.7; armorBody = 0.8; armorHands = 0.5; armorLegs = 0.5; // helicopters armorHull = 0.5; armorEngine = 0.6; armorAvionics = 1.4; armorVRotor = 0.5; armorHRotor = 0.7; armorMissiles = 1.6; armorGlass = 0.5;
attendant
Bool: Default false
Used for 'vehicles' to repair other 'vehicles'. Thus a hospital has an attendant that can repair soldiers. Adds the action "Heal at XXX"
attendant = true;
Related TokenNames: #hiddenSelections
audible
float: Default Value 1
audible = .05; //man audible = 3;//motorcyle audible = 6;//tank/ship
how loud you are
see #camouflage
autocenter
bool: Default true
autocenter = false; // man
axis
axis = osa_poklop_driver;
see #Indicator... Class Or #Hatch... Class, IndicatorWatch Class
B
body
body = "mainTurret";
see #Turret Class
brakeDistance
Float: default 5 meters per sec
brakeDistance= 1; // man brakeDistance= 14; // tank brakeDistance= 500; // plane brakeDistance= 50; // boat
brightness
brightness = 1.0;
See #Reflectors Class, #Light Class, #CargoLight Class
C
...CanSee
Used to describe which sensory inputs are available to which crew members. 1=Radar; 2=Eye; 4= Optics; 8= Ear; 16= Compass; 32=Peripheral vision
Multiple values can be added (or binary ored, giving the same result) together.
commanderCanSee = 31;//default gunnerCanSee = 4+8+16;//default driverCanSee = 2+8+16;//default
...CargoAngleY
Float Degrees
Found within vehicle classes.
Orientation of the man sitting in the cargo space.
initCargoAngleY = 185; //Truck5t initCargoAngleY = 90;//M113
initCargoAngleY = 10; // UH60 minCargoAngleY = -60; maxCargoAngleY = 120;
camouflage
Float: Default Value = 2.
how difficult to spot. bigger = easier
camouflage = 0.6; // snipers camouflage = 1; // man camouflage = 4; // trucks camouflage = 8; // tanks
Relationship to #accuracy:
camouflage defines how hard it is for the AI to see that the unit is there. The AI will not spot an enemy that has a camouflage setting of 0 (maybe this needs some more testing) even if it stands directly in front of it as long as the enemy doesn't fire.
accuracy defines how hard it is for the AI to recognise the correct class of a unit. But even if it can't recognise the correct class it can still recognise it as an enemy and engage it.
Related TokenNames #scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
can...
canBeShot
ArmA Boolean: Declares whether bullets have any effect
canBeShot = true;
canDeactivateMines
Boolean: Default false
part of the man class.
canDeactivateMines= true; //SoldierEngineer
canFloat
Boolean: Default value: false
Used to allow vehicles (such as BMP) not to sink !
canFloat = true;
canHideBodies
Boolean: Default false
part of the man class.
canHideBodies = true; //SoldierWSaboteur
canLock
This token declares if the weapon is able to lock targets.
Values: 0 = false, 1 = cadet mode only, 2 = always.
canLock = 0;
cargoIsCoDriver
Variable Boolean Array : Default {false};
This token declares which (if any) cargo positions are 'in the front' (Ie front windscreen)
cargoIsCoDriver[] = {true,true,false};// 1st two passenger positions for a 5T truck
The number of elements in this array correspond to the #transportSoldier value declared for this class model.
cast...Shadow
Boolean: Default false
castCargoShadow = false; castCommanderShadow = false; castDriverShadow = false; castGunnerShadow = true;
Normally used to shadow 'soldiers' standing up in vehicle objects, such as the MG Jeep and Machine Guns.
Classes Embedded
cloud...
Various(Strings,Floats,Arrays)
cloudletDuration = 0.9;
cloudletAnimPeriod = 1.0;
cloudletSize = 0.1;
cloudletAlpha = 0.8;
cloudletGrowUp = 0.4;
cloudletFadeIn = 0.0;
cloudletFadeOut = 5.0;
cloudletAccY = -0.1;
cloudletMinYSpeed = 0.3;
cloudletMaxYSpeed = 1.5;
cloudletShape = "\ca\data\cl_basic";
cloudletColor[] = {1,1,1,0};
See #Smoke Class
cobraLight
ArmA String : Used as a core model for all other 'air' craft.
cobraLight = "AnyAddon\AnyP3d(.p3d)";
coefInside...
coefInside = 2;// default coefInsideHeur = 4.3; // default
Used by the static class for non moving objects such as buildings
coefInside = 1; // forest coefInsideHeur = 0.25;
color
Float Array: of floats.
color[] = {0.8,0.8,1.0,1.0};
This is a fixed four dimension array consisting of the color values for a cmyk model.
See #Reflectors Class, #Light Class, #CargoLight Class, #Smoke Class
commanding
ArmA Integer: part of Turret class
commanding = -1;
cost
Float: Default Value 50,0000
This value reflects the attractiveness of the target to the enemy AI. When all other considerations are equal. A soldier eg is not interested in Air, despite it's highly attractive cost values. On the other hand, he is interested in a medic, since a medic (in normal configs) has a (while small) a higher cost, than others in the group, including the officer.
cost = 10000000;// an air vehicle is typically this value cost = 8; // a medic; cost = 1; // a grunt cost = 4; // an officer cost = 0; // most buildings;
Related TokenNames: type , #cost , #threat
count
String or Integer: (math formula).
weapon = M60; count = "30*1";
this token is always associated in a weapon or magazine couplet, inside a TransportWeapons, or TransportMagazines class.
The value is mostly represented as a string as above (a math formula), or it can be (unusually)
count= 2;
See At the End of the Day in the TokenNameValueTypes page for an explanation how this duality is possible.
crew
String: Default Civilian
Reflects whether vehicle is manned, and what with.
crew = <ClassName> crew = "SoldierWPilot";
'SoldierWPilot' is a class declared in same file.
D
dammage...
Variable String Array:
dammageHalf[] = {"\AnyAddon\AnyPAA.paa","\AnyAddon\AnyOtherPAA.paa", ...};
dammageFull[] = {"\AnyAddon\AnyPAA.paa","\AnyAddon\AnyOtherPAA.paa", ...};
When 'vehicle' is considered at least half way to destruction, the series of pictures is applied to the model.
damageResistance
Since ArmA 1.00 Only for AI, to know when to shoot and when not.
damageResistance = 0.004;
You can calculate it from vehicle armor and hit value of weapon that should be able to harm the vehicle. tgtRadius is radius of virtual bounding sphere calculated in vehicle geometry. CfgVehicles_Config_Reference#armor_.28integer.29
damageResistance = (HIT*HIT)/Armor*((0.27/tgtRadius)*(0.27/tgtRadius))
damper...
damperSize = 0.1;// default damperForce = 3; //default
deltaT
deltaT = -500;
See #Smoke Class
density
density = 0.5;
See #Smoke Class
destrType
String: Default Value= DestructDefault
Used for animation, sound, and final 'look' of vehicle.
destrType = "DestructNo"; // nothing happens destrType = "DestructBuilding"; // smoke. explosion destrType = "DestructEngine"; // smoke only destrType = "DestructTree"; // smoke, crushing, falls over destrType = "DestructTent"; // smoke, crushing, flattens destrType = "DestructMan"; destrType = "DestructDefault"; // =building
Tent and Tree are no longer identifiable when destroyed if not class 'things'
disappearAtContact
Bool: Default false;
disappearAtContact = true;//FxCartridge
direction
direction = "konec L svetla";
displayName
String: Default value = "Unknown" or "Vehicle"
Selects object uniquely in the Mission Editor, and separately, is used to identify object in game according to #accuracy. For instance when pointing your men to an object while in a mission, it is this displayName that is used.
It is good practice to use a stringtable.csv that should accompany your addon so that
- All names and labels are in one place instead of hunting for them.
- For language differences
displayName = "$STR_DN_AH1Z";
Note, that will careful crafting of classes, different colored 'rocks' can all be called the same displayName (rock) in the mission itself. See #scope and #accuracy for details.
See #nameSound for definition of what is actually 'said'
Related TokenNames #scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
displayNameShort
displayNameShort = "$STR_DN_UH60";
driverIsCommander
Bool : Default false.
driverIsCommander = true;
For boat, MG Jeep and helicopters
see #has...
driverForceOptics
driverForceOptics = true;
E
...Elev
Integers:Degrees
initElev = -80; minElev = -60; maxElev = 10;
part of any #Turret Class (tanks eg)
ejectDamageLimit
ArmA Float: If the damage value of the vehicle is higher than the ejectDamageLimit, AI will disembark the vehicle.
ejectDamageLimit = 0.75;
ejectDead...
Boolean : Default false
ejectDeadGunner = false; ejectDeadCargo = false; ejectDeadDriver = false; ejectDeadCommander = false;
Causes that unit to 'unmount' the vehicle. Such as an MG nest, or motorcycle.
ejectSpeed
Array: Speed vector of ejection seat. Therefore only applies to planes.
ejectSpeed[] = {0,0,0}; // cant eject in a cessna
Embedded ClassNames
Some Token Names are encountered only within an embedded classname, rather than the main 'vehicle' body.
An embedded classname conveniently adds a unique feature to the 'vehicle'. Such as smoke, such as, a turret for a tank.
Emmbedded class names are used extensively in animated buildings for the quite logical reason that identical Token Names for door1 cannot be the same as Door2.
Below is a list of embedded classnames that (in most cases) use a TokenName uniquely. It is not found elsewhere and is better served describing that Token Name in the context it is found in, ie, an embedded class.
Hatch... Class
class HatchDriver {
selection = poklop_driver;
axis = osa_poklop_driver;
angle = -100;
};
Indicator... Class
class IndicatorSpeed {
selection = ukaz_rychlo;
axis = osa_rychlo;
angle = -240;
min = 0;
max = 60 / 3.6;
};
Light Class
class Light {
ambient[] = {0.3,0.15,0.0,1.0};
brightness = 0.08;
color[] = {1.0,0.5,0.0,1.0};
position = ohniste;
shape = koulesvetlo;
size = 0.3;
};
CargoLight Class
class CargoLight {
ambient[] = {0.6,0,0.15,1};
brightness = 0.007;
color[] = {0,0,0,0};
};
Reflectors Class
Reflectors ::LandVehicle {
ambient[] = {0.1,0.1,0.1,1.0};
brightness = 0.25;
color[] = {0.9,0.8,0.8,1.0};
position = L svetlo;
size = 0.5;
direction = konec L svetla;
hitpoint = L svetlo;
selection = L svetlo;
};
Smoke Class
class Smoke {
density = 0.5;
deltaT = -500;
in = 0.0;
out = 0.0;
initT = 1000;
initYSpeed = 1.7;
interval = 0.01;
size = 0.1;
timeToLive = 100000002004087730000.0;
//
cloudletDuration = 0.9;
cloudletAnimPeriod = 1.0;
cloudletSize = 0.1;
cloudletAlpha = 0.8;
cloudletGrowUp = 0.4;
cloudletFadeIn = 0.0;
cloudletFadeOut = 5.0;
cloudletAccY = -0.1;
cloudletMinYSpeed = 0.3;
cloudletMaxYSpeed = 1.5;
cloudletShape = cl_basic;
cloudletColor[] = {1,1,1,0};
class Table {
class T1 {
maxT = 0;
color[] = {0.8,0.8,0.8,1};
};
class T2 {
maxT = 900;
color[] = {0.3,0.3,0.3,1};
};
class T3 {
maxT = 1000;
color[] = {1,0.5,0,0.5};
};
};
};
Turret Class
(Tanks eg)
class TurretBase {
body = OtocVez;
gun = OtocHlaven;
gunAxis = OsaHlavne;
gunBeg = usti hlavne;
gunEnd = konec hlavne;
minElev = -4;
maxElev = 20;
minTurn = -360;
maxTurn = 360;
soundServo[] = {Vehicles\gun_elevate,0.031623,1.000000};
turretAxis = OsaVeze;
};
Embedded TokenNames
enableSweep
Bool: Default true. Used by Helicopter class
enableSweep = false; //UH60MG
Is sweeping over the target a valid technique for given helicopter?
envelope
/// lift (G) based on speed
envelope[]=
{
// speed relative to max. speed -> lift
// 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 // rel. speed
0.0,0.2,0.9,2.1,2.5,3.3,3.5,3.2,2.5,2.0,1.5,1.0,0.9,0.7,0.5 // lift
};
extCameraPosition[]
float Array: Default {0,2,-20};
extCameraPosition[] = {0,5,-30};//plane
extCameraPosition[] = {0,1,-10};//cars
extCameraPosition[] = {0,1.500000,-9};//tankls
extCameraPosition[] = {0,0.300000,-3.500000};//man
F
minFireTime
Integer: Default 20 seconds
minFireTime = 20;
fired
fired = "_this exec ""\AnyAddon\AnySQS.sqs"""; // note the ""
flapsFrictionCoef
Float: Default 0.5
flapsFrictionCoef = 2; // can be integer too.
forceHide...
Boolean : Default false;
forceHideDriver = true;//shilka forceHideGunner = true; //tank forceHideCommander=true;
Disables the turnout option for that particular crew member
forceSupply
Boolean : Default
forceSupply = true;
Found only in Weapon holders (ammo boxes) to force supply?
formation...
formationX = 10;// default meters formationZ = 20; // default meters formationTime = 10; // default seconds
One or both X Z values are used to keep objects separated (in meters) depending on wedge, echelon, V,single line, fomations.
fov
fov = 0.85; // cessna fov = 0.85; // man fov = 1.0; // truck
...Fov
minFov = 0.420000;// man maxFov = 0.850000; minFov = 0.600000;//truck maxFov = 1.400000;
also used by ViewPilot Classes
fuelCapacity
Integer: Default Value 0 (litres)
fuelCapacity = 50; // motorcyle fuelCapacity = 100; // car fuelCapacity = 700; // tank fuelCapacity = 1000; // air
G
...Gun...
Integer:degrees
minGunElev = -60; maxGunElev = 60; minGunTurn = -5; maxGunTurn = 5; minGunTurnAI = -30; maxGunTurnAI = 30;
...GunnerMayFire
Boolean: Default false
outGunnerMayFire = true;// m113
inGunnerMayFire = false;
...GunClouds Class
This is a reference to the external WeaponCloudsGun classes
most models simply inherit the defaults
class GunClouds: WeaponCloudsGun{};
class MGunClouds: WeaponCloudsMGun{};
here is an example of over-rides for class man
class GunClouds:WeaponCloudsGun {
cloudletGrowUp = 0.200000;
cloudletFadeIn = 0;
cloudletFadeOut = 0.400000;
cloudletDuration = 0.200000;
cloudletAlpha = 1;
cloudletAccY = 2;
cloudletMinYSpeed = -10;
cloudletMaxYSpeed = 10;
interval = 0.020000;
size = 0.300000;
sourceSize = 0.015000;
};
...GunFire Class
This is a reference to the external WeaponFireGun classes
most models simply inherit the defaults
class GunFire: WeaponFireGun {};
class MGunFire: WeaponFireMGun {};
gearRetracting
Bool: Default true
gearRetracting = false; // cessna
more correctly viewed as HasRetractingGear.
gun
gun = OtocHlaven;
see #Turret Class
gunAimDown
gunAimDown = 0.07;
gunAxis
gunBeg
gunEnd
gunnerHasFlares
gunnerHasFlares = false;
gunnerName
gunnerName = "$STR_POSITION_CREWCHIEF";
gunnerOutOptics...
gunnerOutOpticsModel = "";
gunnerOutOpticsColor[] = {0,0,0,1};
gunnerOutForceOptics = false;
gunnerOutOpticsShowCursor = false;
H
...Height
minHeight = 5; //Min height in metres above sealevel. maxHeight = 50;//max height above sea level. avgHeight = 10;
has...
Bool:
hasDriver = true; // default hasGunner = false;// default hasCommander =true; // default
Depending on vehicle model.
Controls the 'get in' commands.
...HeadTurnAI
Integer Degrees
minHeadTurnAI = -70;// man class maxHeadTurnAI = 70;
hiddenSelections
Here you can define selections on the model, which are not shown at mission startup. This is usefull for creating variations of one model, where the different selections are left out with hiddenSelections. (ex: Soldiers have the hidden selection "medic", as they should not have a red cross at their body):
Aside from this, the hidden selections are used for runtime texture assignment. Every element in the hidden selection-array corresponds to an index, with the first element being 0.
hiddenSelections[] = {"pruh"}; // bmp/tank
Try this setObjectTexture [0, "\data\duha.pac"] in the initline of a BMP and you'll see which parts are meant by the selection "pruh".
Don't forget to add the model and the selections in the CfgModels, as the hidden selections won't work otherwise (at least not after binarizing).
hide...
hideProxyInCombat = false;// default (true for tanks) hideUnitInfo = false;// default see #unitInfoType hideWeaponsCargo = false;// default hideWeaponsCommander= true; // default hideWeaponsDriver = true; // default hideWeaponsGunner = true; // default
hitpoint
hitpoint = "L svetlo";
hitSound...
hitSound1[] = {voices\Hit11,0.056234,1};
...
hitSound20[] = {voices\Hit30,0.056234,1};
hitSounds[] = {hitSound1,0.05,hitSound2,0.05,....
hitSounds is used by the engine to reference user generated hitSound...s
the number of user generated sounds, is limited only by the author.
hour
part of the IndicatorWatch class
class IndicatorWatch {
hour = hodinova;
minute = minutova;
axis = osa_time;
reversed = 0;
};
I
icon
String: Default Value = "unknown_object.paa"
This value us used by the map editor to show the building or vehicle when editing. It is not normally visible during game play. (but can be)
The icon can be any jpg, paa, or pac file. paa is default. Note that Elite cannot handle jpegs.
icon = "\AnyAddon\AnyPAA(.paa)";
Related TokenName(s): #mapSize
in/out
Float: These TokenNames are used inside the #Smoke Class
in= 0.0; out=0.0;
init
init = "[(_this select 0)] exec ""\AnyAddon\AnySqs.sqs"""; // note the ""
initT
Integer: This TokenName is used inside the #Smoke Class
initT = 1000;
initYSpeed
Float: This TokenName is used inside the #Smoke Class
initYSpeed = 1.7;
insideSoundCoef
Float: default 0.5
insideSoundCoef = 0.05;// air vehicels are 2%
interval
Float: This TokenName is used inside the #Smoke Class
interval = 0.01;
irScanGround
Bool: Default true.
Probaly used to stop ai looking down
irScanGround = false; // tanks
irScanRange...
Integer: Default 0
irScanRange = 4000; // outdated (since Resistance) irScanRangeMin = 500; // tanks general irScanRangeMax = 4000; irScanRangeMin = 2000; // air irScanRangeMax = 10000; irScanRangeMin = 4000; // a vulcan irScanRangeMax = 10000;
irScanToEyeFactor
Integer: Default 1
irScanToEyeFactor = 2;//air irScanToEyeFactor = 5;//shilka
irTarget
Bool: Default true.
Used for (some) buildings so that they don't show up on tank radar
irTarget = false; // man
isBicycle
Bool: Default false.
this value inside the motorcycle class is used to turn it on when inheriting to a real bicycle
isMan
Bool: Default true.
isMan = 1;
Defined within the man class
K
killed
killed = "[(_this select 0),1,1,0,0] exec ""\AnyAddon\AnySQS.sqs""";// note the ""
L
ladders
Embedded Array: The ladders array is used to declare one or more ladder pairs inside the model.
ladders[] = { {"start","end" } };// a building with one ladder
ladders[] = { {"start1","end1" } , {"start2","end2" } };// two ladder building
//...etc
Note that unfortunately, the 'start' and 'end' labels are arbitrary for each model. You cannot have a generic ladder building as such.
laser...
Boolean: Default false
Determines if a vehicle has laser capability.
laserScanner = true;
laserTarget = true;// used as a generic class of All {} to default things true
landingAoa
MathFormula String Default 10*3.1415/180
Landing Angle of Approach. Used by plane class
landingAoa = 7*3.1415/180;//Cessna
landingSpeed
Integer: Default 0 Kph.
landingSpeed = 75; // plane vehicles
library
ArmA String: This TokenName is associated with the library class of a vehicle (if any). It is used to give a 'memo' style full screen info on the given object. Example of use:
class Library
{
libTextDesc = "$STR_LIB_AH1Z";
};
M
magazine
Array: used in TransportMagazines class this specifies the type of ammo in the magazine and the amount.
{
magazine = "30Rnd_556x45_Stanag";
count = "30*1";
}
Each of these couplets are contained within a 'weapon' classname within the magazineS class itself. Example
class TransportMagazines {
class _xx_M16 {
magazine = M16;
count = 30*1;
};
class _xx_M60 {
......
};
class _xx_PK {
......
};
...
};
magazines
Variable string Array: default {}
see #weapons for proper description
mapSize
Float: Default Value = 10 (meters).
Used for the map editor to show the icon associated with this model class.
There is no x y component to this, the meaurement units are meters.
To creat a circular, rectangular or other 'non sqaure' image, you need to make a pac file for the icon with, a transparent layer.
mapSize = 0.7; // small object such as a tree mapSize = 4; // a small'ish building
The Mission Editor map is not very good in this regard (as noted above). However, the main problem is the base classes of the engine. The mapSize= for most objects, particularly buildings, is a one shoe fits all. A forest, eg, is the same mapSize= as a tree !!!
Later Oem addons, *generally* are better and more specific in this regard, making position and fitting a little easier.
marker
ArmA String : used as a core for all other air craft when looking on map.
marker = "\AnyAddon\AnyP3d.(p3d")";
material
Used in Hit... classes, eg HitTurret HitBody
material = 50;
Related TokenNames: #armor (float), #material, #name, #passThrough
maxT
Integer: This TokenName is used inside the #Smoke Class
maxT = 0;
min/max
String Degrees Math Formula
min = 0; max = 60 / 3.6;
Note for readability, these values are normally expressed as strings which the engine itself will convert.
see Indicator Class
memoryPointExhaust...
memoryPointExhaust = "exhaust_start"; memoryPointExhaustDir = "exhaust_end";
memoryPointGun
memoryPointGun = "machinegun";
memoryPointGunnerOptics
memoryPointGunnerOptics = "gunnerview";
memoryPointGunnerOutOptics
memoryPointGunnerOutOptics = "commander_weapon_view";
memoryPoint...Missile
memoryPointLMissile = "Missile_1"; memoryPointRMissile = "Missile_2";
memoryPoint...Rocket
memoryPointLRocket = "Rocket_1"; memoryPointRRocket = "Rocket_2";
memoryPointsGetIn...
memoryPointsGetInCargo = "pos_cargo"; memoryPointsGetInCoDriver = "pos_codriver"; memoryPointsGetInCommander = "pos_commander"; memoryPointsGetInDriver = "pos_driver"; memoryPointsGetInGunner = "pos gunner";
memoryPointsGetIn...Dir
memoryPointsGetInCargoDir = "pos_cargo_dir"; memoryPointsGetInCoDriverDir = "pos_codriver_dir"; memoryPointsGetInCommanderDir = "pos_commander_dir"; memoryPointsGetInDriverDir = "pos_driver_dir"; memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointSupply
memoryPointSupply = "supply";
memoryPointTrack...
memoryPointTrackFLL = "tyreTrack_1_1l"; memoryPointTrackFLR = "tyreTrack_1_1r"; memoryPointTrackBLL = "tyreTrack_1_2l"; memoryPointTrackBLR = "tyreTrack_1_2r"; memoryPointTrackFRL = "tyreTrack_2_1l"; memoryPointTrackFRR = "tyreTrack_2_1r"; memoryPointTrackBRL = "tyreTrack_2_2l"; memoryPointTrackBRR = "tyreTrack_2_2r";
microMimics
String: Man class
This token refers to the class within the external cfgMimics class
microMimics = Micro;
minute
part of the IndicatorWatch class
see #hour
model
String: Default Value= "empty.p3d"
Location in the addon where the p3d model resides.
model = "\AddonName\anyp3d(.p3d)";
Whera a class is not a visible 'object', such as a BaseClass. You can specify
model="";
this cuts down on load and access.
Related TokenName: #simulation, #reversed
moves
String: Default = NoDefaultMoves
applies to the man class and refers to a cfgMoves class
moves = CfgMovesMC; // civilian, in fact, there isn't another
N
...NightLights...
spotableNightLightsOff = 0.05; //default spotableNightLightsOn = 4;//default visibleNightLightsOff = 0.1; //default visibleNightLightsOn = 0.2;//default
name
name = "motor";
Used in Hit... classes, eg HitTurret HitBody
Related TokenNames: #armor (float), #material, #name, #passThrough
nameSound
String: Default value: "Target"
Namesound is used by the AI audio to indicate verbally where to go, what 'vehicle' to attack. Thus the audio speech "move to 'rock' 3 o'clock' is derived from the nameSound.
nameSound = "rock";
Many different nameSounds can be selected. Here are just a few.
nameSound = crew; nameSound = target; nameSound = tank; nameSound = house;
The actual descriptive text accompanying the 'sound' can be different see #displayName
Typically, a collection of buildings (eg) will be configured as follows
class GenBuilding : NonStrategic
{
scope=private; // internal use only
VehicleClass="Some Editor Group Name";
namesound="house";
};
class YellowBuilding: GenBuilding
{
scope=public;
name="YellowBuilding";
model="Some yellow building.p3d";
};
Related TokenNames #scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage