====== 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.