CfgVehicles Config Reference: Difference between revisions
m (→density) |
|||
Line 641: | Line 641: | ||
==flapsFrictionCoef== | ==flapsFrictionCoef== | ||
[TokenNameValueTypes|Float]]: Default 0.5 | [[TokenNameValueTypes|Float]]: Default 0.5 | ||
flapsFrictionCoef = 2; // can be integer too. | flapsFrictionCoef = 2; // can be integer too. | ||
Revision as of 18:15, 3 July 2006
Note to Other hackers=
this 'section' will be removed in due course.
I am feeling my way round folks.
please don't touch the red, broken links. they are used by me as indicators that i haven't yet finished that 'item'
(by all means edit the item with your own knowledge, just leave the link alone)
'new and old are indicators to me of items 've not found in ofp:r. Some of you need no further explanation. please leave that 'indicator' as is for the moment, thanks
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.
This article details the token-names available in Config.cpp. Their meaning in most cases will be the same or similar for description.ext and mission.sqm. However the primary focus of this document is the TokenNames used for various aspects of controlling models within Addons.
For instance, when creating a model using class statements inside a Config.cpp, to access it later, via the mission editor
scope=2;
This article lists token names, their value ranges, and their type.
Where not specifcally specified, the 'useage'of the token name is within Config.cpp, class CfgVehicles.
Legend:
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. ALL STRINGS MUST BE ENCLOSED IN QUOTES for Elite. These strings are misinterpreted as #defines otherwise.
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)
Notes: For Models and other items using p3d files, the .p3d extension is not reguired. Similar comment for pac/paa files, and wss (sound) files where appropriate
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' and buildings, since ofp considers them all to be 'vehicles'
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
Integer 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
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'
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
acceleration
new Integer: metres per second
acceleration = 7;
airFriction
new Array: 3 separate tokens, airFriction0[],airFriction1[],airFriction2[] that define the X Y and Z component respectively.
airFriction2[] = {25,12,2.500000};
ambient
Float Array: Used by reflectors and cargo lights
ambient[] = {0.070000,0.070000,0.070000,1.000000};
class CargoLight { color[] = {0,0,0,0}; ambient[] = {0.600000,0,0.150000,1}; brightness = 0.007000; };
als see Reflectors 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 used inside AnimationSources, in seconds
animPeriod = 1.33; // a fountain
animation...
new 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...
new String
animationSourceBody = "Turret_2"; animationSourceGun = "Gun_2"; animationSourceHatch = "hatchCommander";
armor (integer)
Integer: 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)
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
see Indicator Or Hatch Class, or, IndicatorWatch Class
B
body
body = "mainTurret";
part of any Turret class (tanks eg)
see #gun
brakeDistance
Float: default 5 meters per sec
brakeDistance= 1; // man brakeDistance= 14; // tank brakeDistance= 500; //plane brakeDistance= 50;//boat
brightness
brightness = 1.0;
part of #direction:Reflectors class, CargoLight class
C
...CanSee
Used on vehicles that have zoom.
commanderCanSee = 31;//default gunnerCanSee = 4+8+16;//default driverCanSee = 2+8+16;//default
...CargoAngleY
Integer Degrees
found within vehicle classes
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
what is the relationship between this and #accuracy?
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
can...
canBeShot
new 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
new Boolean:
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.
cloud...
Various(Strings,Floats,Arrays)
cloud.. TokenNames are used inside the Smoke class of animation classes
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};
cobraLight
new 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. Used by reflectors and cargo lights
color[] = {0.800000,0.800000,1.000000,1.000000};
see Reflectors class. CargoLight class
commanding
new Integer: part of Turret class
commanding = -1;
cost
Integer: 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;
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.
damper...
damperSize = 0.1;// default damperForce = 3; //default
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";
part of LandVehicle.Reflectors class
LandVehicle.Reflectors { color[] = {0.900000,0.800000,0.800000,1.000000}; ambient[] = {0.100000,0.100000,0.100000,1.000000}; position = L svetlo; direction = konec L svetla; hitpoint = L svetlo; selection = L svetlo; size = 0.500000; brightness = 0.250000; };
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
new String:
displayNameShort = "$STR_DN_UH60";
deltaT
Integer: This TokenName is used inside the #Smoke Class
deltaT = -500;
density
Float: This TokenName is used inside the #Smoke Class
density = 0.5;
driverIsCommander
Bool : Default false.
driverIsCommander = true;
For boat, MG Jeep and helicopters
see #has...
driverForceOptics
new Bool
driverForceOptics = true;
E
...Elev
Integers:Degrees
initElev = -80; minElev = -60; maxElev = 10;
part of any Turret class (tanks eg)
see#gun
ejectDamageLimit
new Float: You can get hurt, but you can't die with vals less than 1.0
ejectDamageLimit = 0.750000;
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: Default {0,40,0};
ejectSpeed[] = {0,0,0}; // cant eject in a cessna
enableSweep
Bool: Default true. Used by Helicopter class
enableSweep = false; //UH60MG
envelope
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 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
new String: Event Handler
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;
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
Part of any Turret class (Tanks eg)
class TurretBase { gunAxis = OsaHlavne; turretAxis = OsaVeze; soundServo[] = {Vehicles\gun_elevate,0.031623,1.000000}; gunBeg = usti hlavne; gunEnd = konec hlavne; minElev = -4; maxElev = 20; minTurn = -360; maxTurn = 360; body = OtocVez; gun = OtocHlaven; };
gunAimDown
new Float
gunAimDown = 0.07;
gunAxis
gunBeg
gunEnd
part of any Turret class (tanks eg)
see#gun
gunnerHasFlares
new Boolean
gunnerHasFlares = false;
gunnerName
new String
gunnerName = "$STR_POSITION_CREWCHIEF";
gunnerOutOptics...
new String
gunnerOutOpticsModel = "";
gunnerOutOpticsColor[] = {0,0,0,1};
gunnerOutForceOptics = false;
gunnerOutOpticsShowCursor = false;
H
...Height
new Integer:
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;
This array is used for soldiers (eg) to heal (eg) when they come close to a medic. The 'action' is not normally visible until a proximity radius is reached.
hiddenSelections[] = {"pruh"}; // bmp/tank hiddenSelections[] = {ammo}; // trucks hiddenSelections[] = {medic}; // soldiers
Note that "ammo", "pruh" and "medic" are GROUP Actions. They can define more than one action.
pruh for instance allows getting in several positions of the vehicle.
'medic' not only allows healing.
Because this is an array, multiple and different group actions, are possible.
Related TokenNames: #attendant
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";
part of #direction:LandVehicle.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
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
new Float: This TokenName is used inside the Smoke class of animation classes
in= 0.0;
see #out
init
init = "[(_this select 0)] exec ""\AnyAddon\AnySqs.sqs"""; // note the ""
initT
new Integer: This TokenName is used inside the Smoke class of animation classes
initT = 1000;
initYSpeed
new Float: This TokenName is used inside the Smoke class of animation classes
initYSpeed = 1.7;
insideSoundCoef
Float: default 0.5
insideSoundCoef = 0.05;// air vehicels are 2%
interval
new Float: This TokenName is used inside the Smoke class of animation classes
interval = 0.010000;
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 inherting to a real bucycle
isMan
Bool: Default true.
isMan = 1;
Defined within the man class
K
killed
new String: Event Handler
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
new 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"; };
Light Class
putting this here temporarilyliylyiyly
class Light { color[] = {1.000000,0.500000,0.000000,1.000000}; ambient[] = {0.300000,0.150000,0.000000,1.000000}; brightness = 0.080000; shape = koulesvetlo; size = 0.300000; position = ohniste; };
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
mainRotorSpeed
new Integer:
mainRotorSpeed = -1;
backRotorSpeed
new Float backRotorSpeed = 1.0;
hmmm, that's curious, it accepts floats or ints.
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
new 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
new Integer: This TokenName is used inside the Smoke class of animation classes
maxT = 0;
min/max
part of an Indicator.. class
see Indicator Class
memoryPointExhaust...
new String:
memoryPointExhaust = "exhaust_start"; memoryPointExhaustDir = "exhaust_end";
memoryPointGun
new String:
memoryPointGun = "machinegun";
memoryPointGunnerOptics
new String
memoryPointGunnerOptics = "gunnerview";
memoryPointGunnerOutOptics
new String
memoryPointGunnerOutOptics = "commander_weapon_view";
memoryPoint...Missile
new String:
memoryPointLMissile = "Missile_1"; memoryPointRMissile = "Missile_2";
memoryPoint...Rocket
new String:
memoryPointLRocket = "Rocket_1"; memoryPointRRocket = "Rocket_2";
memoryPointsGetIn...
new String:
memoryPointsGetInCargo = "pos_cargo"; memoryPointsGetInCoDriver = "pos_codriver"; memoryPointsGetInCommander = "pos_commander"; memoryPointsGetInDriver = "pos_driver"; memoryPointsGetInGunner = "pos gunner";
memoryPointsGetIn...Dir
new String:
memoryPointsGetInCargoDir = "pos_cargo_dir"; memoryPointsGetInCoDriverDir = "pos_codriver_dir"; memoryPointsGetInCommanderDir = "pos_commander_dir"; memoryPointsGetInDriverDir = "pos_driver_dir"; memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointSupply
new String:
memoryPointSupply = "supply";
memoryPointTrack...
new 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
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
noseDownCoef
Float: Default 1.0 used by Plane class
noseDownCoef = 0.025; // cessna
nightVision
Bool: Default false
nightVision=true;
present in lawsoldier, sniper, saboteur, tank, and air crew
noseDownCoef
new Float
noseDownCoef = 0.025;
O
...OpticsColor
Float 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
String: Default ""
commanderOpticsModel= "\AnyPbo\AnyP3d(.p3d)"; driverOpticsModel = "\AnyPbo\AnyP3d(.p3d)"; gunnerOpticsModel= "\AnyPbo\AnyP3d(.p3d)";
gunnerOpticsShowCursor
gunnerOpticsShowCursor = true;
out
Float: This TokenName is used inside the Smoke class of animation classes
out= 0.0;
see #in
P
passThrough
Bool: Default true
passThrough = 1;
Used in Hit... classes, eg HitTurret HitBody
Related TokenNames: #armor (float), #material, #name, #passThrough
picture
String: Default: iaston.paa
I think this is for briefing Information icon click
picture = "\AnyAddon\AnyPAA(.paa)";
position
String: This TokenName is used inside the Light class of animation classes
position = "ohniste";
position = "L svetlo";
part of #direction:LandVehicle.Reflectors class
precision
precision = 1; //man precision = 200;// air precision = 50;//boat
preferRoads
Bool: Default false
preferRoads = true; // all vehicles
primary
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'.
primary = true;
primary...
primaryGunner = false; primaryObserver = true;
proxyIndex
proxyIndex = 2;
proxyType
proxyType = "CPCommander";
R
...Radius
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
float: Helicopters
mainRotorSpeed = 1.0; // default backRotorSpeed = 1.5; // default // mainRotorSpeed = 1.0; // ch47d backRotorSpeed = -1.0;
...RotorDive
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
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...
String: Helicopters
rotorBig = "vrtule_velka"; //cobra rotorBigBlend = "vrtule_velka_bl"; rotorSmall = "vrtule_mala"; rotorSmallBlend= "vrtule_mala_bl";
S
...Sensitivity
Float: Default 1.0 Used by Plane Class
aileronSensitivity = 0.33; // Cessna elevatorSensitivity = 0.1; // Cessna wheelSteeringSensitivity = 1.0; // default
...Simul/Plan
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
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="Vegetables. namesound= whatever; icon= "vegetableIcon.paa"; /// put any other common characteristics in here }; class GreenOnions : vegetables { scope = public; name="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 name=, they are ALL grouped' in the Editor's 'Vegetables'
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
Integer: Default disabled (-1)
secondaryExplosion = -1;
sensitivity
Float: Default 1.0
sensitivity = 0.6; //cars sensitivity = 2;//sniper
sensitivityEar
Float: Default 0.0075
sensitivityEar = 0.13;//man
selection
part of an Indicator... class
class IndicatorSpeed { selection = ukaz_rychlo; axis = osa_rychlo; angle = -240; min = 0; max = 60 / 3.6; };
part of a Hatch... class
class HatchDriver { selection = poklop_driver; axis = osa_poklop_driver; angle = -100; };
also see LandVehicle.Reflectors class
Selection...
new String:
selectionBackLights = "light_back"; selectionBrakeLights = "light_brake"; selectionFireAnim = "muzzleflash"; selectionHRotorStill= "mainRotorStatic"; selectionHRotorMove = "mainRotorBlurred"; selectionVRotorStill = "tailRotorStatic"; selectionVRotorMove = "tailRotorBlurred"; selectionFabric = "latka";
shape
new Float: This TokenName is used inside the Light class of animation classes
shape = "koulesvetlo";
showgunneroptics
new Boolean:
showgunneroptics = 0;
showWeaponCargo
Boolean:Default ?
showWeaponCargo =true;
Found inside weapon holders (ammo boxes)
Smoke Class
Can't think of what else to do wiht this for now since many of the tokens in here, are only found, in here.
class Smoke { interval = 0.01; 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}; initT = 1000; deltaT = -500; 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}; }; }; density = 0.5; size = 0.1; initYSpeed = 1.7; timeToLive = 100000002004087730000.0; in = 0.0; out = 0.0; };
sound
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 Array
see sounds[]
Sounds Various
Complex Array:
All the following use
nameOfSound[]= {"\AddonName\AnySound(.wss)",0.000000,1,1};
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
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
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
Float: This TokenName is used inside the Smoke class of animation classes
size = 0.1;
also see #direction:LandVehicle.Reflectors class
source
new' String: found in animationSources
source = "reload"; source = "time";
sourceAddress
new String: found in animationSources
sourceAddress = "loop";
...Speed
Float: In Kph.
minSpeed = -0.5; //range 0->1 maxSpeed = 80; //default maxSpeed = 30; //tractor maxSpeed = 60; //boat
scud...
String: Default ""
scudLaunch = scudlunch.rtm; scudStart = scudstart.rtm; scudModel = scud_strela_proxy; scudModelFire = scud_strela_ohen;
straightDistance
new INTEGER:
straightDistance = 50;
submerged..
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
Integers Degrees
initTurn = 90; minTurn= -70; maxTurn = 70;
part of any Turret class (tanks eg)
see#gun
turning
new Boolean: (i think)
turning = 1;
turnCoef
Float: Default 2.0
turnCoef = 6.0; // truck turnCoef = 9.0; // tractor
terrainCoef
Float: Default 3.0
terrainCoef = 6.0; //skoda
threat
float Array: Default Value {0.700000,0.500000,0.300000};
How threatening you are to unit 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 , #cost , #threat
timeToLive
Float: Default 10,000,000,000.0; // seconds?
This TokenName is used inside the Smoke class of animation classes and effects
timeToLive = 20;// thing effects (bullets) timeToLive = 100000002004087730000.0;// campfire
transport...
transportAmmo
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
transportMagazines
old? Array:
transportMagazines = {...};
TransportWeapons
old? Array:
TransportWeapons= {...};
transportMax...
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
Integer: Default Value= 0.
Number of 'passengers' this vehicle can carry. The value does not include the driver, nor any vehicle positions such as gunnder (if any) or commander(if any)
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
Ingeger : default 0
transportVehiclesCount = 15; // a Carrier (big ship)
transportVehiclesMass
Integer: Default 0
transportVehiclesMass = 0; // not used by any model
turretAxis
part of any Turret class (tanks eg)
see #gun
type (threat)
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 , #cost , #threat
type (animation)
old Unknown: Default Value: rotation
This appears in the ReloadAnimations class
type = rotation;
typicalCargo
Variable String 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
Bool: : Default false
gunnerUsesPilotView = false; // some choppers (mi17) commanderUsesPilotView=true;
unitInfoType
unitInfoType = "UnitInfoSoldier";
Certain 'vehicles' hide this information.
see #hideUnitInfo
unloadInCombat
bool: default true
unloadInCombat =false;
All true vehicles will cause ai to disembark when in combat.
upDownL
upDownR
see #rotR
V
vehicleClass
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 Array:
vehicleClass[] = {Men,Car,Armored,Air,Support,Camera,Objects,Ammo,Sounds,Mines};
View...
old Array:
ViewCargo={..}; ViewCommander={..}; ViewGunner={..}; ViewPilot={..};
ViewOptics
old Array:
view...Shadow
viewCargoShadow = true; viewGunnerShadow = true;
viewGunnerInExternal
Boolean: default false
viewGunnerInExternal = true; // for some turrets and M113
W
weapon
weapon = "M197";
Selects a weapon from the CfgWeapons class
weapons
Variable String 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
Weaponslots apply to man class (soldier, civilian, etc)
It indicates the 'gear' capacity.
man/medic 1 + 4*256 + 4096 + 2 + 4*32; sniper 1 + 16 + 4*256 + 2*4096 + 2 + 4*32; soldier 1 + 16 + 10*256 + 2*4096 + 2 + 4*32; parachute 1 + 16 + 10*256 + 2*4096 + 2 + 4*32; fakeciv 1 + 16 + 6*256 + 2*4096 + 2 + 4*32;
wheelCircumference
Float Default 2.513 meters
wheelCircumference = 8;// tractor
wounds
string 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.