====== OFP CfgVehicles Config Reference ======
[[https://www.pmctactical.org/forum/viewforum.php?f=43|OFP Forum]], [[:ofp|OFP Home]], [[ofp:file_formats|OFP File Formats]], [[ofp:tools|OFP Tools]], [[ofp:missions|OFP Missions]], [[ofp:modeling|OFP 3D Modeling]], [[ofp:terrain|OFP Terrain]]
**Operation Flashpoint (OFP)** aka ArmA: Cold War Assault (CWA)
**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 ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: A signed value that will be held in 4 bytes.
[[ofp:modeling:tokennamevaluetypes|Boolean]]: An [[ofp:modeling:tokennamevaluetypes|Integer]] value of 0 or 1. This is a 'convenience type' in humanly readable text. The engine stores it as an integer.
[[ofp:modeling:tokennamevaluetypes|String]]: Any string value.
For elite only (not ArmA, or OFP) //ALL STRINGS MUST BE ENCLOSED IN QUOTES//.
[[ofp:modeling:tokennamevaluetypes|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 **in**sensitive.
**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**
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]] : Default false.
Your mileage will vary as to their compatibility / usefulness / buginess if used in 'compatible' missions on the older game versions.
See the [[arma:tokennames|ArmA TokenNames]]
====== 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__, [[ofp:modeling:config.cpp|Config.**cpp**]] is the humanly readable text equivalent of [[ofp:modeling:config.bin|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 ======
[[ofp:modeling:tokennamevaluetypes|String]] : defaults ManActCargo
commanderAction = "ManActM60CommanderOut";
driverAction = "ManActShipDriver";
gunnerAction = "ManActJeepGunner";
commanderInAction = "ManActTestDriver";
driverInAction = "ManActM113Driver";
gunnerInAction = "ManActM1A1Gunner";
getInAction = ManActGetInTank; //default
getOutAction = ManActGetOutTank; //default
**cargoAction**
Variable String [[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Degrees
angle = -240;
see [[#Indicator... Class]] Or [[#Hatch... Class]]
====== access ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Float]]: metres per second
acceleration = 7;
====== airFriction ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Array]]: 3 separate tokens, airFriction0[],airFriction1[],airFriction2[] that define the X Y and Z component respectively.
airFriction2[] = {25,12,2.500000};
====== ambient ======
Float [[ofp:modeling:tokennamevaluetypes|Array]]:
ambient[] = {0.07,0.07,0.07,1.0};
See [[#Reflectors Class]], [[#Light Class]], [[#CargoLight Class]]
====== animated ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|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... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]
animationSourceBody = "Turret_2";
animationSourceGun = "Gun_2";
animationSourceHatch = "hatchCommander";
====== armor (integer) ======
[[ofp:modeling:tokennamevaluetypes|Float]]: A strength value of how much external damage can be taken before 'destruction'. Below are general ranges to give some idea.
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) ======
[[ofp:modeling:tokennamevaluetypes|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... ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|float]]: Default Value 1
audible = .05; //man
audible = 3;//motorcyle
audible = 6;//tank/ship
how loud you are
see [[#camouflage]]
====== autocenter ======
[[ofp:modeling:tokennamevaluetypes|bool]]: Default true
autocenter = false; // man
====== axis ======
[[ofp:modeling:tokennamevaluetypes|String]]:
axis = osa_poklop_driver;
see [[#Indicator... Class]] Or [[#Hatch... Class]], [[#hour|IndicatorWatch Class]]
====== B ======
====== body ======
[[ofp:modeling:tokennamevaluetypes|String]]:
body = "mainTurret";
see [[#Turret Class]]
====== brakeDistance ======
[[ofp:modeling:tokennamevaluetypes|Float]]: default 5 meters per sec
brakeDistance= 1; // man
brakeDistance= 14; // tank
brakeDistance= 500; // plane
brakeDistance= 50; // boat
====== brightness ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
brightness = 1.0;
See [[#Reflectors Class]], [[#Light Class]], [[#CargoLight Class]]
====== C ======
====== ...CanSee ======
[[ofp:modeling:tokennamevaluetypes|Integer]]
Used on vehicles that have zoom.
1 = Radar;\\
2 = Eye;\\
4 = Optics;\\
8 = Ear;\\
16 = Compass;\\
30 = ?;\\
31 = Compass & Radar;\\
32 = ?
commanderCanSee = 31;//default
gunnerCanSee = 4+8+16;//default
driverCanSee = 2+8+16;//default
====== ...CargoAngleY ======
[[ofp:modeling:tokennamevaluetypes|Float]] Degrees
found within vehicle classes
initCargoAngleY = 185; //Truck5t
initCargoAngleY = 90;//M113
initCargoAngleY = 10; // UH60
minCargoAngleY = -60;
maxCargoAngleY = 120;
====== camouflage ======
[[ofp:modeling:tokennamevaluetypes|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:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]]: Declares whether bullets have any effect
canBeShot = true;
**canDeactivateMines**
[[ofp:modeling:tokennamevaluetypes|Boolean]]: Default false
part of the man class.
canDeactivateMines = true; //SoldierEngineer
**canFloat**
[[ofp:modeling:tokennamevaluetypes|Boolean]]: Default value: false
Used to allow vehicles (such as BMP) not to sink !
canFloat = true;
**canHideBodies**
[[ofp:modeling:tokennamevaluetypes|Boolean]]: Default false
part of the man class.
canHideBodies = true; //SoldierWSaboteur
**canLock**
[[arma:tokennames|Arma] [[ofp:modeling:tokennamevaluetypes|Integer]]:
This token declares if the weapon is able to lock targets.\\
Values: 0 = false, 1 = cadet mode only, 2 = always.
canLock = 0;
====== cargoIsCoDriver ======
Variable [[ofp:modeling:tokennamevaluetypes|Boolean]] [[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
see [[#Embedded ClassNames]]
====== cloud... ======
Various([[ofp:modeling:tokennamevaluetypes|Strings]],[[ofp:modeling:tokennamevaluetypes|Floats]],[[ofp:modeling:tokennamevaluetypes|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:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]] : Used as a core model for all other 'air' craft.
cobraLight = "AnyAddon\AnyP3d(.p3d)";
====== coefInside... ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
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 [[ofp:modeling:tokennamevaluetypes|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:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Integer]]: part of Turret class
commanding = -1;
====== cost ======
[[ofp:modeling:tokennamevaluetypes|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 (threat)|type]] , [[#cost]] , [[#threat]]
====== count ======
[[ofp:modeling:tokennamevaluetypes|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 [[ofp:modeling:tokennamevaluetypes|At the End of the Day]] in the TokenNameValueTypes page for an explanation how this duality is possible.
====== crew ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default Civilian
Reflects whether vehicle is manned, and what with.
crew =
crew = "SoldierWPilot";
'SoldierWPilot' is a class declared in same file.
====== D ======
====== dammage... ======
Variable String [[ofp:modeling:tokennamevaluetypes|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.
====== damper... ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
damperSize = 0.1;// default
damperForce = 3; //default
====== deltaT ======
[[ofp:modeling:tokennamevaluetypes|Float]]
deltaT = -500;
See [[#Smoke Class]]
====== density ======
[[ofp:modeling:tokennamevaluetypes|Float]]
density = 0.5;
See [[#Smoke Class]]
====== destrType ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default false;
disappearAtContact = true; //FxCartridge
====== direction ======
[[ofp:modeling:tokennamevaluetypes|string]]:
direction = "konec L svetla";
see [[#Reflectors Class]]
====== displayName ======
[[ofp:modeling:tokennamevaluetypes|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**
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
displayNameShort = "$STR_DN_UH60";
====== driverIsCommander ======
[[ofp:modeling:tokennamevaluetypes|Bool]] : Default false.
driverIsCommander = true;
For boat, MG Jeep and helicopters
see [[#has...]]
====== driverForceOptics ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Bool]]
driverForceOptics = true;
====== E ======
====== ...Elev ======
[[ofp:modeling:tokennamevaluetypes|Integers]]:Degrees
initElev = -80;
minElev = -60;
maxElev = 10;
part of any [[#Turret Class]] (tanks eg)
====== ejectDamageLimit ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Float]]: You can get hurt, but you can't die with vals less than 1.0
ejectDamageLimit = 0.750000;
====== ejectDead... ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Array]]: Default {0,40,0};
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 ======
see [[#Embedded ClassNames]]
**enableSweep**
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true. Used by Helicopter class
enableSweep = false; //UH60MG
====== envelope ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Float]] [[ofp:modeling:tokennamevaluetypes|Array]]
envelope[] =
{ 0.000000,
0.000000,
0.300000,
1.000000,
2.500000,
3.300000,
3.500000,
3.200000,
2.500000,
2.000000,
1.500000,
1.000000
};
====== extCameraPosition[] ======
float [[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default 20 seconds
minFireTime = 20;
====== fired ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
fired = "_this exec ""\AnyAddon\AnySQS.sqs"""; // note the ""
====== flapsFrictionCoef ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 0.5
flapsFrictionCoef = 2; // can be integer too.
====== forceHide... ======
[[ofp:modeling:tokennamevaluetypes|Boolean]] : Default false;
forceHideDriver = true;//shilka
forceHideGunner = true; //tank
forceHideCommander=true;
====== forceSupply ======
[[ofp:modeling:tokennamevaluetypes|Boolean]] : Default
forceSupply = true;
Found only in Weapon holders (ammo boxes) to force supply?
====== formation... ======
[[ofp:modeling:tokennamevaluetypes|Integer]]:
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 ======
[[ofp:modeling:tokennamevaluetypes|Float]]
fov = 0.85; // cessna
fov = 0.85; // man
fov = 1.0; // truck
====== ...Fov ======
[[ofp:modeling:tokennamevaluetypes|Float]]
minFov = 0.420000;// man
maxFov = 0.850000;
minFov = 0.600000;//truck
maxFov = 1.400000;
also used by [[#...AngleX/Y|ViewPilot Classes]]
====== fuelCapacity ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default Value 0 (litres)
fuelCapacity = 50; // motorcyle
fuelCapacity = 100; // car
fuelCapacity = 700; // tank
fuelCapacity = 1000; // air
====== G ======
====== ...Gun... ======
[[ofp:modeling:tokennamevaluetypes|Integer]]:degrees
minGunElev = -60;
maxGunElev = 60;
minGunTurn = -5;
maxGunTurn = 5;
minGunTurnAI = -30;
maxGunTurnAI = 30;
====== ...GunnerMayFire ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true
gearRetracting = false; // cessna
more correctly viewed as HasRetractingGear.
====== gun ======
[[ofp:modeling:tokennamevaluetypes|String]]:
gun = OtocHlaven;
see [[#Turret Class]]
====== gunAimDown ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Float]]
gunAimDown = 0.07;
====== gunAxis ======
====== gunBeg ======
====== gunEnd ======
see[[#Turret Class]]
====== gunnerHasFlares ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]]
gunnerHasFlares = false;
====== gunnerName ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]
gunnerName = "$STR_POSITION_CREWCHIEF";
====== gunnerOutOptics... ======
**[[arma:tokennames|ArmA]]**
[[ofp:modeling:tokennamevaluetypes|String]]
gunnerOutOpticsModel = "";
[[ofp:modeling:tokennamevaluetypes|Array]]
gunnerOutOpticsColor[] = {0,0,0,1};
[[ofp:modeling:tokennamevaluetypes|Boolean]]
gunnerOutForceOptics = false;
[[ofp:modeling:tokennamevaluetypes|Boolean]]
gunnerOutOpticsShowCursor = false;
====== H ======
====== ...Height ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Integer]]:
minHeight = 5; //Min height in metres above sealevel.
maxHeight = 50;//max height above sea level.
avgHeight = 10;
====== has... ======
[[ofp:modeling:tokennamevaluetypes|Bool]]:
hasDriver = true; // default
hasGunner = false;// default
hasCommander =true; // default
Depending on vehicle model.
Controls the 'get in' commands.
see [[#driverIsCommander]]
====== ...HeadTurnAI ======
[[ofp:modeling:tokennamevaluetypes|Integer]] Degrees
minHeadTurnAI = -70;// man class
maxHeadTurnAI = 70;
====== hiddenSelections ======
[[ofp:modeling:tokennamevaluetypes|String]] [[ofp:modeling:tokennamevaluetypes|Array]]: Default none.
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... ======
[[ofp:modeling:tokennamevaluetypes|Bool]]
hideProxyInCombat = false;// default (true for tanks)
hideUnitInfo = false;// default see [[#unitInfoType]]
hideWeaponsCargo = false;// default
hideWeaponsCommander= true; // default
hideWeaponsDriver = true; // default
hideWeaponsGunner = true; // default
====== hitpoint ======
[[ofp:modeling:tokennamevaluetypes|String]]:
hitpoint = "L svetlo";
See [[#Reflectors Class]]
====== 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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|Float]]: These TokenNames are used inside the [[#Smoke Class]]
in= 0.0;
out=0.0;
====== init ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
init = "[(_this select 0)] exec ""\AnyAddon\AnySqs.sqs"""; // note the ""
====== initT ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: This TokenName is used inside the [[#Smoke Class]]
initT = 1000;
====== initYSpeed ======
[[ofp:modeling:tokennamevaluetypes|Float]]: This TokenName is used inside the [[#Smoke Class]]
initYSpeed = 1.7;
====== insideSoundCoef ======
[[ofp:modeling:tokennamevaluetypes|Float]]: default 0.5
For example WGL and VTE aircrafts use insideSoundCoef = 0.001; to simulate helmet and radio comms systems.
insideSoundCoef = 0.05; //air vehicels are 2%
====== interval ======
[[ofp:modeling:tokennamevaluetypes|Float]]: This TokenName is used inside the [[#Smoke Class]]
interval = 0.01;
====== irScanGround ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true.
Whether the unit will scan for ground units.
irScanGround = false;
====== irScanRange... ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default 0
This is very CPU heavy, do not use big values, 4000 is quite big already. Most users dont use such viewdistances so its pointless to have huge value here like 10,000.
irScanRange = 4000; // outdated (since Resistance)
irScanRangeMin = 500; // tanks general
irScanRangeMax = 4000;
irScanRangeMin = 2000; // air
irScanRangeMax = 10000;
irScanRangeMin = 4000; // a vulcan
irScanRangeMax = 10000;
====== irScanToEyeFactor ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default 1
irScanToEyeFactor = 2; //air
irScanToEyeFactor = 5; //shilka
====== irTarget ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true.
Used for (some) buildings so that they don't show up on tank radar
irTarget = false; // man
====== isBicycle ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default false.
this value inside the motorcycle class is used to turn it on when inheriting to a real bicycle
====== isMan ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true.
isMan = 1;
Defined within the man class
====== K ======
====== killed ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
killed = "[(_this select 0),1,1,0,0] exec ""\AnyAddon\AnySQS.sqs""";// note the ""
====== L ======
====== ladders ======
Embedded [[ofp:modeling:tokennamevaluetypes|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... ======
[[ofp:modeling:tokennamevaluetypes|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 [[ofp:modeling:tokennamevaluetypes|String]] Default 10*3.1415/180
Landing Angle of Approach. Used by plane class
landingAoa = 7*3.1415/180;//Cessna
====== landingSpeed ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default 0 Kph.
landingSpeed = 75; // plane vehicles
====== library ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|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:
What is the maximum size of this text?
class Library
{
libTextDesc = "$STR_LIB_AH1Z";
};
====== M ======
====== maneuvrability ======
[[Float]]
Description: Declares maneuvrability of guided missiles.
manueuvrability=30;
====== magazine ======
[[ofp:modeling:tokennamevaluetypes|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 magazine//S// class itself. Example
class TransportMagazines
{
class _xx_M16
{
magazine = M16;
count = 30*1;
};
class _xx_M60
{
......
};
class _xx_PK
{
......
};
...
};
====== magazines ======
Variable string [[ofp:modeling:tokennamevaluetypes|Array]]: default {}
see [[#weapons]] for proper description
====== mapSize ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default Value = 10 (meters).
Used for the map editor to show the [[#icon|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.
For larger islands then map zoom and icon size becomes a problem and these must be scaled down a bit.
====== marker ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]] : used as a core for all other air craft when looking on map.
marker = "\AnyAddon\AnyP3d.(p3d")";
====== material ======
[[ofp:modeling:tokennamevaluetypes|Integer]]:
Used in Hit... classes, eg HitTurret HitBody
material = 50;
__Related TokenNames__: [[#armor (float)]], [[#material]], [[#name]], [[#passThrough]]
====== maxT ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: This TokenName is used inside the [[#Smoke Class]]
maxT = 0;
====== min/max ======
[[ofp:modeling:tokennamevaluetypes|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 [[#selection|Indicator Class]]
====== memoryPointExhaust... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
memoryPointExhaust = "exhaust_start";
memoryPointExhaustDir = "exhaust_end";
====== memoryPointGun ======
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|String]]://
memoryPointGun = "machinegun";
====== memoryPointGunnerOptics ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]
memoryPointGunnerOptics = "gunnerview";
====== memoryPointGunnerOutOptics ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]
memoryPointGunnerOutOptics = "commander_weapon_view";
====== memoryPoint...Missile ======
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|String]]://
memoryPointLMissile = "Missile_1";
memoryPointRMissile = "Missile_2";
====== memoryPoint...Rocket ======
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|String]]://
memoryPointLRocket = "Rocket_1";
memoryPointRRocket = "Rocket_2";
====== memoryPointsGetIn... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
memoryPointsGetInCargo = "pos_cargo";
memoryPointsGetInCoDriver = "pos_codriver";
memoryPointsGetInCommander = "pos_commander";
memoryPointsGetInDriver = "pos_driver";
memoryPointsGetInGunner = "pos gunner";
**memoryPointsGetIn...Dir**
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
memoryPointsGetInCargoDir = "pos_cargo_dir";
memoryPointsGetInCoDriverDir = "pos_codriver_dir";
memoryPointsGetInCommanderDir = "pos_commander_dir";
memoryPointsGetInDriverDir = "pos_driver_dir";
memoryPointsGetInGunnerDir = "pos gunner dir";
====== memoryPointSupply ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
memoryPointSupply = "supply";
====== memoryPointTrack... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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 ======
[[ofp:modeling:tokennamevaluetypes|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... ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
spotableNightLightsOff = 0.05; //default
spotableNightLightsOn = 4; //default
visibleNightLightsOff = 0.1; //default
visibleNightLightsOn = 0.2; //default
====== name ======
[[ofp:modeling:tokennamevaluetypes|String]]:
name = "motor";
Used in Hit... classes, eg HitTurret HitBody
__Related TokenNames__: [[#armor (float)]], [[#material]], [[#name]], [[#passThrough]]
====== nameSound ======
//[[ofp:modeling:tokennamevaluetypes|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]]
====== noseDownCoef ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 1.0 used by Plane class
noseDownCoef = 0.025; // cessna
How much the nose drops when banking.
//Note: Not used in ArmA any more//
====== nightVision ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default false
nightVision=true;
present in lawsoldier, sniper, saboteur, tank, and air crew
//Note: obsolete, not used, NVG item is used instead//
====== noseDownCoef ======
[[ofp:modeling:tokennamevaluetypes|Float]]
noseDownCoef = 0.025;
====== O ======
====== ...OpticsColor ======
Float [[ofp:modeling:tokennamevaluetypes|Array]] : Default {0,0,0,1};
driverOpticsColor[] = {0,0,0,1};
gunnerOpticsColor[] = {0.910000,0.230000,0.230000,1};
commanderOpticsColor[] = {0.910000,0.230000,0.230000,1};
====== ...OpticsModel ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default ""
commanderOpticsModel= "\AnyPbo\AnyP3d(.p3d)";
driverOpticsModel = "\AnyPbo\AnyP3d(.p3d)";
gunnerOpticsModel= "\AnyPbo\AnyP3d(.p3d)";
====== gunnerOpticsShowCursor ======
[[ofp:modeling:tokennamevaluetypes|Bool]]
gunnerOpticsShowCursor = true;
====== P ======
====== passThrough ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default true
passThrough = 1;
Used in Hit... classes, eg HitTurret HitBody
__Related TokenNames__: [[#armor (float)]], [[#material]], [[#name]], [[#passThrough]]
====== picture ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default: iaston.paa
I think this is for briefing Information icon click
picture = "\AnyAddon\AnyPAA(.paa)";
"Picture" is used in config.cpp to display the 128 x 64 graphic file of the unit in the HUD and the bottom of the screen while in game. A .pac file can be used also. If using a .pac make your alpha channel pink - RGB 255,0,255. Pink is invisible in .pac file.
====== position ======
[[ofp:modeling:tokennamevaluetypes|String]]:
position = "ohniste";
position = "L svetlo";
See [[#Reflectors Class]], [[#Light Class]]
====== precision ======
precision = 1; //man
precision = 200; // air
precision = 50; //boat
====== preferRoads ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: Default false
preferRoads = true; // all vehicles
====== primary ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]]: For models that can have, (but don't necessarily do have) multiple internal objects of the same type (turrets eg). One of them, is declated the main, or primary turret. There may indeed be only one 'turret'. (Note: this entry has been replaced by the **primary...** entries. Please use those for your turret definitions to ensure maximal compatibility.)
primary = true;
====== primary... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]] A vehicle can have multiple turrets, but one of them normally is the primary gunner turret and one the primary vehicle commander turret (this can be the same turret or two different turrets, but you cannot have several primary gunner or commander turrets). Please use these entries instead of the more general **primary** entry.
primaryGunner = false;
primaryObserver = true; //Commander
====== proxyIndex ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Integer]]
proxyIndex = 2;
====== proxyType ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]
proxyType = "CPCommander";
====== R ======
====== ...Radius ======
[[ofp:modeling:tokennamevaluetypes|Float]]:
Represents a circular area (radius in meters from **centre** of object for action to take place)
getInRadius=2.5; //default
getInRadius=3.5; // tank
getInRadius=10; //ship
supplyRadius = 2.5; // for fuel dumps ammo trucks etc
====== ...RotorSpeed ======
[[ofp:modeling:tokennamevaluetypes|float]]: Helicopters
mainRotorSpeed = 1.0; // default
backRotorSpeed = 1.5; // default
mainRotorSpeed = 1.0; // ch47d
backRotorSpeed = -1.0;
====== ...RotorDive ======
[[ofp:modeling:tokennamevaluetypes|float]]: Helicopters, Default 0.0
minMainRotorDive = -9; // CH47D
maxMainRotorDive = 15;
neutralMainRotorDive = -5;
minBackRotorDive = -15;
maxBackRotorDive = 9;
neutralBackRotorDive = -5;
====== ReloadAnimations Class ======
General useage in Helicopters, this class is 'looked for' by the engine. Varions models, but normally only one, are specified as follows
class ReloadAnimations
{
class SomeThingA
{
...
};
...
class SomeThingZ
{
...
};
};
here is an example for an Mi24 helicopter
class MachineGun30E
{
weapon = MachineGun30E;
angle0 = 0;
angle1 = -2 * 3.141592654;
multiplier = 500;
type = rotation;
animPeriod = 0.500000;
selection = gatling;
begin = usti hlavne;
end = konec hlavne;
};
====== rotL/R ======
Defined within a tank.Wheels class to describe the series of small wheels on each side
rotR[] = {kolL1,kolL2,kolL3,kolL4,kolL5,kolL6,kolL7,kolL8};
rotL[] = {kolP1,kolP2,kolP3,kolP4,kolP5,kolP6,kolP7,kolP8};
upDownL[] = { koloP1,podkoloP1,koloP2,podkoloP2,koloP3,podkoloP3,
koloP4,podkoloP4,koloP5,podkoloP5,koloP6,podkoloP6,
koloP7,podkoloP7,koloP8,podkoloP8
};
upDownR[] = { koloL1,podkoloL1,koloL2,podkoloL2,koloL3,podkoloL3,
koloL4,podkoloL4,koloL5,podkoloL5,koloL6,podkoloL6,
koloL7,podkoloL7,koloL8,podkoloL8
};
====== reversed ======
[[ofp:modeling:tokennamevaluetypes|Boolean]]: Default true
Normally, models ARE reversed with respect to how they present on the screen after editing with tools like oxygen (eg) This overrides the default. See [[#model]]
reversed = false; // class thing
====== rotor... ======
[[ofp:modeling:tokennamevaluetypes|String]]: Helicopters
rotorBig = "vrtule_velka"; //cobra
rotorBigBlend = "vrtule_velka_bl";
rotorSmall = "vrtule_mala";
rotorSmallBlend= "vrtule_mala_bl";
====== S ======
====== ...Sensitivity ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 1.0 Used by Plane Class
aileronSensitivity = 0.33; // Cessna
elevatorSensitivity = 0.1; // Cessna
wheelSteeringSensitivity = 1.0; // default
====== ...Simul/Plan ======
[[ofp:modeling:tokennamevaluetypes|float]]: in meters
steerAheadSimul = 0.5; //default
steerAheadPlan = 0.35;//default
steerAheadSimul = 0.2; // man
steerAheadPlan = 0.2;
predictTurnSimul = 1.2;//default
predictTurnPlan = 1.2;//default
predictTurnSimul = 3;// ship
predictTurnPlan = 3;
====== scope ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default value = private.
scope = public;
Scope in concept is the same as the C++ reserved words of public, protected and private.
Defines normally exist at the top of a well written config.cpp to make meanings clearer.
#define private 0
#define protected 1
#define public 2
The meaning of each is as follows
**private:**
Only other classes inherit this class. It is not createVehicle'able, nor can the class be accessed via the Mission Editor.
private is a common method of grouping base characteristics together and inheriting all those common characteristics into a class that can be viewed or accessed.
**public:**
Any classes declared public are CamCreateabale, **and** selectable via the Editor.
**protected:**
Identical to public, except the class will not be listed in the mission editor. A very common form of use for this is
class vegetables
{
scope=protected;
VehicleClass="Fruit and Onions"; // a generic group in mission editor
displayName="Generic Vegetable";
namesound= whatever;
icon= "vegetableIcon.paa";
/// put any other common characteristics in here
};
class GreenOnions : vegetables
{
scope = public;
displayName="Green Onion;
}
class PurpleOnion : vegetables
{
....
The effect here is to reduce (considerably) not only the amount of typing, but memory storage too.
__It is only the public classes that are listed in the Mission Editor.__
So in above example while each one of these has a separate //displayName=//, they are ALL 'grouped' in the Editor's "Fruit and Onions", and **all** of them will be referred to //in the mission// as "Generic Vegetable". If you follow along, you should fully expect to see another protected class called "Generic Fruit"
In the above example, it is just as useful to declare the base class **private**. But, see below, and see [[#accuracy]]
Protected classes are CamCreatable in the mission.sqm.
Protected classes are immensely useful to 'hide' obsolete models that are still required to maintain compatibility with older missions. Ie older missions will still be playable, but newly created ones will only 'get at' the newer improvements specified in a public class. This
class OriginalThing
{
scope=protected;
....
// lots of original things
....
};
class ImprovedThing : OriginalThing //<<<< inherits it all
{
scope=public;
...
// lots of new improved things
...
};
__Related TokenNames__
[[#scope]], [[#accuracy]], [[#displayName]] [[#vehicleClass]] [[#nameSound]] [[#camouflage]]
====== secondaryExplosion ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default disabled (-1)
secondaryExplosion = -1;
====== sensitivity ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 1.0
sensitivity = 0.6; //cars
sensitivity = 2; //sniper
====== sensitivityEar ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 0.0075
It sets how good certain unit hears other. Higher value means given unit hears better.
sensitivityEar = 0.13;//man
====== selection ======
[[ofp:modeling:tokennamevaluetypes|String]]:
selection = L svetlo;
See [[#Reflectors Class]], [[#ReloadAnimations Class]] (Arma Only), [[#Hatch... Class]], [[#Indicator Class]]
====== selection... ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]:
selectionBackLights = "light_back";
selectionBrakeLights = "light_brake";
selectionFireAnim = "muzzleflash";
selectionHRotorStill= "mainRotorStatic";
selectionHRotorMove = "mainRotorBlurred";
selectionVRotorStill = "tailRotorStatic";
selectionVRotorMove = "tailRotorBlurred";
selectionFabric = "latka";
====== shape ======
[[ofp:modeling:tokennamevaluetypes|Float]]: This TokenName is used inside the [[#Light Class]]
shape = "koulesvetlo";
See [[#Light Class]], [[#Reflectors Class]]
====== showgunneroptics ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]]:
showgunneroptics = 0;
====== showWeaponCargo ======
[[ofp:modeling:tokennamevaluetypes|Boolean]]:Default ?
showWeaponCargo =true;
Found inside weapon holders (ammo boxes).
====== sound ======
[[ofp:modeling:tokennamevaluetypes|String]]:
Used by animated objects (campfire eg) to give sound effect. Or, simply by ambients(wolves)
sound = "Fire";
sound = Fountain;
sound = OwlSfx;
====== SoundEnvironExt Class ======
class SoundEnvironExt {
This is a __Class__ used within the man class. Some/None, or all sections of it can (of course) be over-ridden by inheritance.
The external class **CfgManActions** accesses the **SoundEnvironExt** class defined (or inherited) for any 'man' (soldier eg).
External class **CfgManActions** contains many clauses
soundOverride=fallbody; // eg
for instances of when it wants sounds for that 'action' to take place.
thus, you can define none some or all arrays (within class with your SoundEnvironExt{}) for the following
normalExt[] =
normal[] =
road[] =
rock[] =
water[] =
gravel[] =
sand[] =
drygrass[] =
grass[] =
forest[] =
mud[] =
wood[] =
metal[] =
snow[] =
hallway[] =
fallbody[] =
laydown[] =
standup[] =
crawl[] =
Example
snow[] = {
{ People\snow_L,0.000032,1 },
{ People\snow_R,0.000032,1 }};
snow is a Variable length Sound [[ofp:modeling:tokennamevaluetypes|Array]]
see [[#Sounds Various|sounds[]]]
====== Sounds Various ======
Complex [[ofp:modeling:tokennamevaluetypes|Array]]:
All the following use
nameOfSound[]= {"\AddonName\AnySound(.wss)",0.000000,1,1};
* 1st parameter: Sound file (path). *.wss is default, *.ogg can be specified.
* 2nd parameter: Change of volume compared to the strongest sound that is audible at the camera's (player's) position. It means that the strongest sound is played on 100% and this sound is played weaker (calculated from dB value, distance, occlude, ...). If this sound is alone in sound scene then it is played on 100% every time.
* 3rd parameter: Speed of playing, 1 = normal speed/time of playing, 2 = 2 times slower, with half lower pitch.
wss is the default. ogg can be specified.
**...Sound**
flySound[] = {"\AddonName\AnySound.wss",0.000000,1,1};
singSound[] = {"\AddonName\SoundFile.ogg",0.031623,1,1};
scudSound[] = {weapons\rocketflying,316.227783,0.200000};
scudSoundElevate[] = {vehicles\gun_elevate,0.010000,1};
**sound...**
soundCrash[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
default values
soundCrash[] = {Vehicles\crash,0.316228,1};
soundDammage[] = {"",1,1};
soundEngine[] = {"",1,1};
soundEnviron[] = {"",1,1};
soundLandCrash[] = {Explosions\intoground,0.316228,1};
soundWaterCrash[] = {Explosions\intowater,0.316228,1};
soundGetIn[] = {Vehicles\get_in,0.000316,1};
soundGetOut[] = {Vehicles\get_out,0.000316,1};
soundServo[] = {Vehicles\gun_elevate,0.010000,0.500000};
soundGear[] = {"\AnyAddon\AnySound(.wss)",0.316228,1}; //no default'
additionalSound[] = {\AnyAddon\AnySound(.wss),0.000000,1}; // man only
**sound[]**
used by animations
sound[] = {"\anyPbo\AnySound(.wss)",10.000000,1};
====== side ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default Value: NEUTRAL.
The side, when declared, sets the 'vehicle' to east, west, resistance, civilian. The effect differs according to the 'vehicle' itself. Eg soldiers, versus hospitals or repair trucks that can only be used by same side, if specifically sided.
Well written missions (and configs) use defines at top of file to make this more legible.
#define NO_SIDE -1
#define EAST 0 // (Russian)
#define WEST 1 // (Nato)
#define RESISISTANCE 2 // Guerilla
#define CIVILIAN 3
#define NEUTRAL 4
#define ENEMY 5
#define FRIENDLY 6
#define LOGIC 7
side = EAST;
NEUTRAL is the general case for all objects.
NO_SIDE is used for ambient seagulls and wolves (see [[#sound]]). It differs from NEUTRAL in that the engine spends no time looking for interraction with other objects.
====== simulation ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default value: invisible.
The engine behaviour with this [[#model]].
simulation = "SeaGull";
simulation = "thing";
simulation = "fire";
simulation = "flag";
simulation = "house";
simulation = airplane,helicopter,tank // (eg)
__Related TokenName__: [[#model]]
====== size ======
[[ofp:modeling:tokennamevaluetypes|Float]]: This TokenName is used inside the Smoke class and Reflector class
size = 0.1;
part of [[#direction|Reflectors class]]
====== source ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|String]]: found in animationSources
source = "reload";
source = "time";
====== sourceAddress ======
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|String]]//: found in animationSources
sourceAddress = "loop";
====== sourceSize ======
[[ofp:modeling:tokennamevaluetypes|Float]]: This TokenName is used inside the [[#Light Class]]
sourceSize = 0.015;
====== ...Speed ======
[[ofp:modeling:tokennamevaluetypes|Float]]: In Kph.
minSpeed = -0.5; //range 0->1
maxSpeed = 80; //default
maxSpeed = 30; //tractor
maxSpeed = 60; //boat
====== scud... ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default ""
scudLaunch = scudlunch.rtm;
scudStart = scudstart.rtm;
scudModel = scud_strela_proxy;
scudModelFire = scud_strela_ohen;
====== straightDistance ======
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|INTEGER]]://
straightDistance = 50;
====== submerged.. ======
[[ofp:modeling:tokennamevaluetypes|Float]]: default 0.0
Almost all 'objects' are **not** submerged. This parameter is used to hide objects such as effects
submerged = -0.5;// thing effect
submergeSpeed = 0.25; // positive value makes it go deeper (sound goes quieter)
====== T ======
====== ...Turn ======
[[ofp:modeling:tokennamevaluetypes|Integers]] Degrees
initTurn = 90;
minTurn= -70;
maxTurn = 70;
part of any Turret class (tanks eg)
see[[#gun]]
====== TokenNames Embedded ======
see [[#Embedded ClassNames]]
**turning**
**[[arma:tokennames|ArmA]]** //[[ofp:modeling:tokennamevaluetypes|Boolean]]:// (i think)
turning = 1;
**turnCoef**
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 2.0
turnCoef = 6.0; // truck
turnCoef = 9.0; // tractor
====== terrainCoef ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 3.0
terrainCoef = 6.0; //skoda
====== threat ======
float [[ofp:modeling:tokennamevaluetypes|Array]]: Default Value {0.700000,0.500000,0.300000};
How threatening you are to unit [[#type (threat)|types]] {Soft, Armor, Air}, respectively.
The ai for this model selects targets of opportunity, based on these values.
threat[] = {1,0.0500000,0.050000}; // soldier
threat[] = {1,0.900000,0.100000}; // law soldier
threat[] = {0.900000,0.700000,0.300000}; // bmp
__Related TokenNames__: [[#type (threat)|type]], [[#cost]], [[#threat]]
====== timeToLive ======
[[ofp:modeling:tokennamevaluetypes|Float]]: Default 10,000,000,000.0; // seconds?
timeToLive = 20;// thing effects (bullets)
timeToLive = 100000002004087730000.0;// campfire
See [[#Smoke Class]]
====== transport... ======
**transportAmmo**\\
[[ofp:modeling:tokennamevaluetypes|Integer]]: Used by supply 'vehicles' to determine total amount avaialable for entire mission. Once depleted...
A 'vehicle' in this case can be a genuine repair truck, or, a building.
transportAmmo = 300000; // reammo truck
transportAmmo = 10000000;// bigship
transportFuel = 3000; //refueltruck
transportRepair = 200000000; //repairtruck
**transportMax...**\\
[[ofp:modeling:tokennamevaluetypes|Integer]]: default 0
transportMaxMagazines = 50; //car
transportMaxWeapons = 10;
transportMaxMagazines = 5; // motorcyle
transportMaxWeapons = 0;
transportMaxMagazines = 50; // tank
transportMaxWeapons = 10;
transportMaxMagazines = 20; //air
transportMaxWeapons = 3;
transportMaxMagazines = 100; // boat
transportMaxWeapons = 20;
transportMaxMagazines = 500; //ship
transportMaxWeapons = 200;
transportMaxMagazines = 200; // truck
transportMaxWeapons = 50;
transportMaxMagazines = 100; // apc
transportMaxWeapons = 20;
transportMaxMagazines = 200; // helicpter
transportMaxWeapons = 50;
transportMaxWeapons = 500; // ammo boxes
transportMaxMagazines = 2000;
Values vary depending on exact tupe of 'boat' eg.
These TokenNames ate used to indicate how many units of each type an object can hold. Most objects can't hold anything.
**transportSoldier**\\
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default Value= 0.
Number of 'passengers' this vehicle can carry. The value does **not** include the driver, **nor** any vehicle positions such as gunner (if any) or commander(if any). See the JeepMg below for a 3 person vehicle which can only transport ONE soldier.
transportSoldier = 3; //jeep/car
transportSoldier = 50; //large ship
transportSoldier = 6to10; //SmallShip
transportSoldier = 3; //a10
transportSoldier = 8to12; //helicopters
transportSoldier = 2or3; //ambulance
transportSoldier = 8; //apc/bmp
transportSoldier = 12; //truck
transportSoldier = 1; //jeepmg
transportSoldier = 1or2; //repair type truck
to make the game 'interesting', similar vehicles on different sides, can carry non equivalent numbers.
====== transportVehiclesCount ======
[[ofp:modeling:tokennamevaluetypes|Integer]] : default 0
transportVehiclesCount = 15; // a Carrier (big ship)
====== TransportMagazines Class ======
====== transportVehiclesMass ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default 0
transportVehiclesMass = 0; // not used by any model
====== TransportWeapons Class ======
====== turretAxis ======
[[ofp:modeling:tokennamevaluetypes|String]]:
turretAxis = OsaVeze;
see [[#Turret Class]]
====== type (threat) ======
[[ofp:modeling:tokennamevaluetypes|Integer]]: Default Value: Armored
This indicates the threat type of the 'vehicle'.
In well written configs, the 3 possible values are declared as defines at top of file for legibility
#define VSoft 0
#define VArmor 1
#define VAir 2
type = VAir;
Vehicles (and buildings) are armoured, humans are 'soft' and aircraft (obviously) are air
__Related TokenNames__: [[#type (threat)|type]], [[#cost]], [[#threat]]
====== type (animation) ======
**old** [[ofp:modeling:tokennamevaluetypes|Unknown]]: Default Value: rotation
This appears in the ReloadAnimations class
type = rotation;
====== typicalCargo ======
Variable String [[ofp:modeling:tokennamevaluetypes|Array]]:Preloads vehicle with units (if auto)
This array can have zero or more strings.
typicalCargo[] = {"Soldier","Soldier","SoldierLAW","SoldierLAW"};
Note that these are //ClassNames// of soldiers.
====== U ======
====== ...UsesPilotView ======
[[ofp:modeling:tokennamevaluetypes|Bool]]: : Default false
gunnerUsesPilotView = false; // some choppers (mi17)
commanderUsesPilotView = true;
====== unitInfoType ======
[[ofp:modeling:tokennamevaluetypes|String]]
unitInfoType = "UnitInfoSoldier";
Certain 'vehicles' hide this information.
see [[#hideUnitInfo]]
====== unloadInCombat ======
[[ofp:modeling:tokennamevaluetypes|bool]]: default true
unloadInCombat = false;
All true vehicles will cause ai to disembark when in combat.
====== upDownL/R ======
wheels class
see [[#rotL/R]]
====== V ======
====== vehicleClass ======
[[ofp:modeling:tokennamevaluetypes|String]]: Default Value= "Objects"
Used for Mission Editor basic category selection
vehicleClass = "Air";
vehicleClass = "Support";
vehicleClass = "My Great Addon";
__Related TokenNames__
[[#scope]], [[#accuracy]], [[#displayName]] [[#vehicleClass]] [[#nameSound]] [[#camouflage]]
====== vehicleClass[] ======
String [[ofp:modeling:tokennamevaluetypes|Array]]:
vehicleClass[] = {Men,Car,Armored,Air,Support,Camera,Objects,Ammo,Sounds,Mines};
====== view...Shadow ======
**[[arma:tokennames|ArmA]]** [[ofp:modeling:tokennamevaluetypes|Boolean]]:
viewCargoShadow = true;
viewGunnerShadow = true;
====== viewGunnerInExternal ======
[[ofp:modeling:tokennamevaluetypes|Boolean]]: default false
viewGunnerInExternal = true; // for some turrets and M113
====== W ======
====== weapon ======
[[ofp:modeling:tokennamevaluetypes|String]]:
weapon = "M197";
Selects a weapon from the CfgWeapons class
====== weapons ======
Variable String [[ofp:modeling:tokennamevaluetypes|Array]]: default {};
Weaopns and Magazines contain individual description of what a 'vehicle' IS carrying.
weapons[] = {"FFARLauncher","TwinM134"};// an aircaft
weapons[] = {CarHorn};// truck
weapons[] = {M21,LAWLauncher,Throw,Put}; // soldier
magazines[] = {M21,M21,M21,M21,HandGrenade,HandGrenade,LAWLauncher};
The amount of weapons (and magazines) that can be carried by the 'man' is deternmined by [[#weaponSlots ]]
The names M21, Carhorn etc are external references to the cfgWeapons / cfgMagazines classes
====== weaponSlots ======
[[ofp:modeling:tokennamevaluetypes|Integer]]:
Weaponslots apply to man class (soldier, civilian, etc)
It indicates the 'gear' capacity.
Soldier: 1 + 4 + 12*256 + 2*4096 + 2 + 8*16; // all soldiers/civilians
Medic : 1 + 4 + 8*256 + 2*4096 + 2 + 4*16;
weaponSlots = ;
1 = primary weapon
2 = handgun slot
4 = secondary weapon (launcher)
16 = handgun magazines (8x)(or grenades for M203/GP-25)
256 = magazine slots (12x / 8x for medics)
4096 = goggle slot (2x)
====== wheelCircumference ======
[[ofp:modeling:tokennamevaluetypes|Float]] Default 2.513 meters
wheelCircumference = 8; // tractor
====== wounds ======
string [[ofp:modeling:tokennamevaluetypes|Array]]:
wounds[] = {xicht_a.paa,xicht_a_zranen,...};
this token is used in the man class to show a series of pac/paa files depending on damaged state of the body.