{"name":"CfgMoves Config Reference","title":"CfgMoves Config Reference","type":"topic","url":"https://community.bistudio.com/wiki/CfgMoves_Config_Reference","revid":376218,"updated":"2025-09-18T19:21:29Z","aliases":[],"markdown":"### Introduction\n\n***cfgMoves*** is the nerve center of all skeletal character animation. The animation of human characters that is - not the simple, procedural animation of objects (*e.g.* raising/lowering a barrier, opening/closing of an aircraft canopy).\n\n*cfgMoves* has two major sections: *Actions* and *States*.\n\n#### Actions\n\nIt is where the character animation [state machine](https://en.wikipedia.org/wiki/State_machine) is set up. It's a bit confusing that BI called the animation state handler \"*Actions*\", and the actions are called \"*States*\", but this is what it is.\n\nWhat this thing does, is configure all the possible animation states (*e.g.* standing upright with a rifle, kneeling with a pistol, parachuting), and define for each of them which animations can be played in and from that given state.\n\nFor instance, from the kneeling with a pistol state (*PistolKneelActions*), you cannot directly go into crawling forward on your stomach with a rifle (even if you have a rifle). First you would have to holster the pistol and grab your rifle, then lie down, or viceversa. Similarly, if you're prone (whether unarmed, or armed with a pistol or rifle), you cannot salute - first you'd have to stand up.\n\nWhat animation can or cannot be played, in what situation, is set up here in *Actions*. Player input (key presses, clicks) are then directed to this state machine, which interprets them and decides what action/animation the avatar will perform next, according to these rules. Same rules apply to *AI* players.\n\n#### States\n\nIn this section, each animation file (*RTM*) has a corresponding entry. Animation properties, such as playback speed, interpolation rules, blending times, collision shapes to use during animation, etc.., are configured here.\n\nThese animations are the ones referenced in the *Actions* section above. While *Actions* represents a complex graph, *States* is more like a list of items, even though some rules are also set up here (see the *ConnectTo[]* and *InterpolateTo[]* properties).\n\n***cfgGestures*** is similar to *States*, it holds the bone-masked or layered animations introduced in Arma 2. Welcome to reloading-while-running.\n\n#### Namespace of anim classes and files\n\n`A...P...M...S...W...D[_A...P...M...S...W...D][_Comment]`\n\n**A**: Description of the animation type, *i.e.*: `mov` for movement, `cts` for cutscene\n\n**P**: Stance: `erc` for erected, `knl` for kneel, `pne` for prone\n\n**M**: Speed of animation: `stp` for stopped, `wlk` for walk, `run` for running, `eva` for evasive\n\n**S**: Weapon holding: `low` for lowered, `ras` for raised\n\n**W**: Weapon: `non` for unarmed, `pst` for pistol, `lnr` for launcher, `rfl` for rifle.\n\n**D**: Direction of movement: `non` for no direction, `f` for forward, etc.\n\nIf there is a second movement definition named `[_A...P...M...S...W...D]` after the first one, the animation is a transition from the first animation to the second.\n\n`[_Comment]: additional comments`, if required.\n\nExample: `AmovPpneMstpSnonWnonDnon` means: *Movement - Prone - Stopped - civil (no weapon) - no direction (due to being static)*.\n\n### Alphabetical Order\n\n#### A\n\n##### access\n\n**Type:** Integer\n\n**Description:** See *access (CfgVehicles)*.\n\n```cpp\naccess = 3;\n```\n\n##### actions\n\n**Type:** String\n\n**Description:** Sets the action class/group to which this state belongs to.\n\n```cpp\nactions = \"PistolStandActionsRunR\";\nactions = \"RifleStandActions\";\nactions = \"InjuredManActionsnon_norot\";\nactions = \"SitActions\";\n```\n\n##### aiming\n\n**Type:** String\n\n**Description:** This property references **BlendAnims** class entries to use when aiming up/down. These are sets of *named selections*, with weights associated to them, defining how much should the bodyparts move while aiming.\n\nNotice how for instance *aimingDefault[]* sets up increasing weights for bones: Spine `(0.3)`, Spine1 `(0.4)`, Spine2 `(0.5)`, Spine3/Head/Neck `(0.6)`, shoulders and upper arms `(0.8)` and finally forearms, hands and weapons `(1)`. This makes for a smooth arching of the body while aiming.\n\n```cpp\naiming = \"empty\";\naiming = \"aimingDefault\";\naiming = \"aimingNo\";\naiming = \"aimingCivil\";\naiming = \"aimingLying\";\naiming = \"aimingPistol\";\naiming = \"aimingLauncher\";\n```\n\n##### aimingDefault[]\n\n**Type:** Array\n\n**Description:** *BlendAnims* array, see *aiming* above.\n\n```cpp\naimingDefault[] = {\"head\", 0.6, \"neck1\", 0.6, \"neck\", 0.6, \"weapon\", 1, \"launcher\", 1, \"LeftShoulder\", 0.8, \"LeftArm\", 0.8, \"LeftArmRoll\", 1,\n    \"LeftForeArm\", 1, \"LeftForeArmRoll\", 1, \"LeftHand\", 1, \"LeftHandRing\", 1, \"LeftHandPinky1\", 1, \"LeftHandPinky2\", 1, \"LeftHandPinky3\", 1,\n    \"LeftHandRing1\", 1, \"LeftHandRing2\", 1, \"LeftHandRing3\", 1, \"LeftHandMiddle1\", 1, \"LeftHandMiddle2\", 1, \"LeftHandMiddle3\", 1, \"LeftHandIndex1\", 1,\n    \"LeftHandIndex2\", 1, \"LeftHandIndex3\", 1, \"LeftHandThumb1\", 1, \"LeftHandThumb2\", 1, \"LeftHandThumb3\", 1, \"RightShoulder\", 0.8, \"RightArm\", 0.8,\n    \"RightArmRoll\", 1, \"RightForeArm\", 1, \"RightForeArmRoll\", 1, \"RightHand\", 1, \"RightHandRing\", 1, \"RightHandPinky1\", 1, \"RightHandPinky2\", 1,\n    \"RightHandPinky3\", 1, \"RightHandRing1\", 1, \"RightHandRing2\", 1, \"RightHandRing3\", 1, \"RightHandMiddle1\", 1, \"RightHandMiddle2\", 1,\n    \"RightHandMiddle3\", 1, \"RightHandIndex1\", 1, \"RightHandIndex2\", 1, \"RightHandIndex3\", 1, \"RightHandThumb1\", 1, \"RightHandThumb2\", 1,\n    \"RightHandThumb3\", 1, \"Spine\", 0.3, \"Spine1\", 0.4, \"Spine2\", 0.5, \"Spine3\", 0.6};\naimingDefault[] = {};\n```\n\n##### aimingNo[]\n\n**Type:** Array\n\n**Description:** *BlendAnims* array, see *aiming* above.\n\n```cpp\naimingNo[] = {};\n```\n\n##### aimPrecision\n\n**Type:** Float\n\n**Description:** Probably goes into accuracy calculations when firing a weapon; the higher the value, the less accurate aiming becomes.\n\nWounded `>1`, firing upright animations are mostly `1`, kneeling is `0.5`, and prone values are even lower.\n\n```cpp\naimPrecision = 5;        // Carrying a wounded soldier on your back\naimPrecision = 2;        // Injured, cannot stand up\naimPrecision = 1;        // Standing upright\naimPrecision = 0.5;        // Crouched\naimPrecision = 0.3;        // Prone\naimPrecision = 0.15;    // Walking slowly while looking down the sights\n```\n\n#### B\n\n##### binocOff\n\n**Type:** String\n\n**Description:** Found in *Actions* together with *binocOn*. They define which state is used for bringing up and putting away binoculars.\n\n```cpp\nbinocOff = \"\";\nbinocOff = \"AmovPercMstpSrasWrflDnon\";\nbinocOff = \"AmovPknlMstpSrasWrflDnon\";\nbinocOff = \"AmovPercMstpSrasWrflDnon\";\nbinocOff = \"AmovPpneMstpSrasWrflDnon\";\n```\n\n##### binocOn\n\n**Type:** String\n\n```cpp\nbinocOn = \"\";    // No binocs while lying on the ground injured\nbinocOn = \"AwopPknlMstpSoptWbinDnon_rfl\";\nbinocOn = \"AwopPercMstpSoptWbinDnon_rfl\";\nbinocOn = \"AwopPknlMstpSoptWbinDnon_pst\";\nbinocOn = \"AwopPpneMstpSoptWbinDnon_rfl\";\n```\n\n##### boundingSphere\n\n**Type:** Float / Boolean\n\n**Description:** Probably obsolescent, used for character collision detection. For more accurate collision models use *collisionShape* & Co. Still used in Arma 2 for cutscene animations. Sphere collision probably much cheaper than anything else.\n\n```cpp\nboundingSphere = true;\nboundingSphere = 1;\nboundingSphere = 1.5;\nboundingSphere = 8;\nboundingSphere = 35;\n```\n\n#### C\n\n##### CanNotMove\n\n**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCanNotMove = \"AmovPpneMstpSrasWrflDnon\";\n```\n\n##### canPullTrigger\n\n**Type:** Boolean\n\n**Description:** Self explanatory. While in that animation, the player can fire it is weapon, but his trigger finger will remain extended. The little \"finger squeezing the trigger\" animation won't play.\n\n```cpp\ncanPullTrigger = 1;\n```\n\n##### Civil\n\n**Type:** String\n\n**Description:** Found in *Actions*, defines what happens to a soldier if he were to lose his weapons and become unarmed.\n\n```cpp\nCivil = \"AmovPercMstpSnonWnonDnon\";\nCivil = \"AmovPercMstpSnonWnonDnon_gear\";\n```\n\n##### CivilLying\n\n**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCivilLying = \"AmovPpneMstpSnonWnonDnon\";\n```\n\n##### collisionGeomCompPattern[]\n\n**Type:** Array\n\n```cpp\ncollisionGeomCompPattern[] = {1,3,6};\n```\n\n##### collisionShape\n\n**Type:** String\n\n**Description:** Found in *States*. Path to the collision model to be used during the animation, a special *P3D* file with only a *Geometry LOD* in it. Having \"axis\" selection point in ``Memory LOD`` of this shape will make unit rotate around this point instead of their entity center.\n\n```cpp\ncollisionShape = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\Sstanistat_safe_geom.p3d\";\ncollisionShape = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\geom_Adth.p3d\";\n```\n\n##### collisionShapeSafe\n\n**Type:** String\n\n```cpp\ncollisionShapeSafe = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\sbeh45l_safe_geom.p3d\";\n```\n\n##### collisionVertexPattern[]\n\n**Type:** Array\n\n**Description:** Possibly some internal requirement of the collision detection algorithm. The strings represent individual vertices (named selections in the *P3D*).\n\n```cpp\ncollisionVertexPattern[] = {\"1a\", \"2a\", \"3a\", \"4a\", \"5a\", \"6a\", \"7a\", \"8a\", \"1c\", \"2c\"};\ncollisionVertexPattern[] = {\"1a\", \"2a\", \"3a\", \"4a\", \"5a\", \"6a\", \"7a\", \"8a\", \"9a\", \"10a\", \"11a\", \"12a\", \"13a\",\n    \"14a\", \"15a\", \"16a\", \"17a\", \"18a\", \"19a\", \"20a\", \"21a\", \"22a\", \"23a\", \"24a\", \"25a\", \"26a\", \"27a\", \"28a\",\n    \"29a\", \"30a\", \"31a\", \"32a\", \"33a\", \"34a\", \"1c\", \"2c\", \"3c\", \"4c\", \"5c\", \"6c\", \"7c\", \"8c\"};\n```\n\n##### Combat\n\n**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCombat = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n##### connectAs\n\n**Type:** String\n\n**Description:** Found in *States*; Not used in Arma 2:OA anymore.\n\n```cpp\nconnectAs = \"\";\n```\n\n##### connectFrom[]\n\n**Type:** Array\n\n**Description:** Found in *States*; Not used in Arma 2:OA anymore.\n\n```cpp\nconnectFrom[] = {};\nconnectFrom[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```\n\n##### connectTo[]\n\n**Type:** Array\n\n**Description:** Found in *States*. Defines edges in the animation graph, i.e. which animations can follow this one, once it finishes. The first pose of all animations from *connectTo* should be identical to the last pose of the current animation, otherwise see *interpolateTo*. The numeric value specifies the cost of the transition.\n\n```cpp\n//AinvPknlMstpSnonWnonDnon_medic0S\nConnectTo[] = {\"AinvPknlMstpSnonWnonDnon_medic\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic0\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic2\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic3\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic4\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic5\", 0.01};\n//BasicDriver\nConnectTo[] = {\"BasicDriverDying\", 1.0};\nconnectTo[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```\n\n##### Crouch\n\n**Type:** String\n\n**Description:** Found in *Actions*, defines what happens when the *AI* crouch. There's also *PlayerCrouch*, which makes different crouching animations possible for players as opposed to *AI*.\n\n```cpp\nCrouch = \"AmovPknlMstpSnonWnonDnon\";\n```\n\n#### D\n\n##### default\n\n**Type:** String\n\n**Description:** Found in *Actions*, defines the default state for an action.\n\n```cpp\ndefault = \"LadderRifleStatic\";\n```\n\n##### die\n\n**Type:** String\n\n**Description:** Found in *Actions*, defines what animation/state is called when the character dies.\n\n```cpp\ndie = \"AdthPercMstpSlowWrflDnon_r05\";\ndie = \"DeadState\";\n```\n\n##### disableWeapons\n\n**Type:** Boolean\n\n**Description:** Found in *States*, and unlike *canPullTrigger*, it can prohibit the character from firing his weapon.\n\n```cpp\ndisableWeapons = 1;\n```\n\n##### disableWeaponsLong\n\n**Type:** Boolean\n\n**Description:** Found in *States*, and apparently the only time *disableWeaponsLong* differs from *disableWeapons* is when the weapon is lowered (Ctrl doubletap).\n\n```cpp\n//AmovPercMstpSlowWrflDnon\ndisableWeapons = false;\ndisableWeaponsLong = true;\n// or\ndisableWeaponsLong = 1;\n```\n\n##### down\n\n**Type:** String\n\n**Description:** Found in *Actions*, tells what animation to play when hitting the \"*Go prone*\" key.\n\n```cpp\n//class RifleBaseStandActions\ndown = \"AmovPpneMstpSrasWrflDnon\";\n//class RifleProneActions\ndown = \"AmovPercMstpSrasWrflDnon\";\n//??\n\ndown = \"LadderRifleDownLoop\";\n```\n\n##### duty\n\n**Type:** Float\n\n**Description:** Duty used to mean some mandatory states/actions the character had to reach, before being able to perform a certain animation. Not sure about what this does in ArmA anymore, if anything.\n\n```cpp\n//OFP config\n#define RunDuty -0.5\n#define WalkDuty -0.7\n#define RestDuty -1\n#define CrawlDuty -0.0\n#define SprintDuty 0.6\n\nduty = -1;\nduty = -0.7;\nduty = -0.5;\nduty = -0.4;\nduty = 0.1;\nduty = 0.2;\nduty = 0.25;\nduty = 0.3;\nduty = 0.4;\nduty = 0.5;\nduty = 0.6;\nduty = 2;\n```\n\n#### E\n\n##### enableAutoActions\n\n**Type:** Boolean\n\n**Description:** Found in *States*. In Arma 2 there's a single occurrence of it being *true*: `class TestDance`.\n\n```cpp\nenableAutoActions = 1;\n```\n\n##### enableBinocular\n\n**Type:** Boolean\n\n**Description:** Found in *States*, defines whether the character can use binoculars or not.\n\n```cpp\nenableBinocular = 1;\n\nenableBinocular = false;    // class CutSceneAnimationBase\nenableBinocular = false;    // class AmovPercMrunSnonWbinDf_rfl\nenableBinocular = true;        // class AwopPknlMstpSoptWbinDnon_rfl\n```\n\n##### enableMissile\n\n**Type:** Boolean\n\n**Description:** Found in *States*, similar to *disableWeapons*. It enables/disables the firing of shoulder launched rockets (*RPGs, MANPADS*).\n\n```cpp\nenableMissile = true; //class AidlPercMstpSrasWlnrDnon_player_idleSteady01\n\nenableMissile = 1;\n```\n\n##### enableOptics\n\n**Type:** Boolean\n\n**Description:** Found in *States*, enables/disables looking down the weapon sights.\n\n```cpp\nenableOptics = 1;\n```\n\n##### equivalentTo\n\n**Type:** String\n\n**Description:** Found in *States*, not sure what it does. The animation class is mostly *equivalentTo* another one, and oddly, sometimes to itself. Popular with healing, death, idle and cutscene animations.\n\n```cpp\nequivalentTo = \"\";\n\nclass AdthPercMstpSrasWrflDnon_1 : AdthPercMstpSlowWrflDnon_1 {\n    file = \"\\ca\\Anims\\Characters\\data\\Anim\\Sdr\\Dth\\Erc\\stp\\ras\\Rfl\\AdthPercMstpSrasWrflDnon_1\";\n    speed = 0.72;\n    equivalentTo = \"AdthPercMstpSrasWrflDnon_1\";\n    ...\n};\n\nequivalentTo = \"AmovPsitMstpSlowWrflDnon\";\n```\n\n##### EvasiveBack\n\n**Type:** String\n\n**Description:** Found in *Actions*, along with *EvasiveForward*, `-Left` and `-Right`. They point to the possible evasive animations that can be triggered.\n\n```cpp\nEvasiveBack = \"AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDb\";\n```\n\n##### EvasiveForward\n\n**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveForward = \"AmovPercMevaSlowWlnrDf\";\n```\n\n##### EvasiveLeft\n\n**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveLeft = \"AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl\";\n```\n\n##### EvasiveRight\n\n**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveRight = \"AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr\";\n```\n\n#### F\n\n##### fast..\n\n**Type:** String\n\n**Description:** Found in *Actions*, *walk..* defines the walking animations, *slow..* defines the running/jogging and *fast..* the sprinting animations.\n\nThe suffixes mean the following: **B** (backward), **F** (forward), **L** (left strafe), **R** (right strafe) and a combination of these: **RF** (45 deg. strafe), **RB** (135 deg. strafe), **LB** (225 deg. strafe) and **LF** (315 deg. strafe).\n\n```cpp\nfastB = \"AswmPercMstpSnonWnonDnon\";\nfastB = \"AmovPercMrunSrasWrflDb\";\nfastF = \"AswmPercMsprSnonWnonDf\";\nfastL = \"AswmPercMstpSnonWnonDnon\";\nfastLB = \"AswmPercMstpSnonWnonDnon\";\nfastLF = \"AswmPercMsprSnonWnonDf\";\nfastR = \"AswmPercMstpSnonWnonDnon\";\nfastRB = \"AswmPercMstpSnonWnonDnon\";\nfastRF = \"AswmPercMsprSnonWnonDf\";\n```\n\n##### file\n\n**Type:** String\n\n**Description:** Found in *States*, points to the *RTM* animation file.\n\n```cpp\nfile = \"\\ca\\Anims\\Characters\\data\\Anim\\Wmn\\cts\\erc\\stp\\non\\non\\ActsPercMstpSnonWnonDnon_MarianQ_shot5.rtm\";\n```\n\n##### FireNotPossible\n\n**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nFireNotPossible = \"AmovPpneMstpSrasWrflDnon\";\n```\n\n#### G\n\n##### getInCar\n\n**Type:** String\n\n**Description:** *getInCar* and *getOutCar* are found in *Actions*; they define what animations to call when getting into/out of a car. Similar to *getInTank*/*getOutTank*.\n\nNone of these are really used in the Arma 2 config anymore (one exception: class *LauncherKneelActions*). Instead, *getInHigh, -Medium* and *-Low* are used with their respective *getOuts*. Assigning the different *getIn* actions for each vehicle is done in *CfgVehicles*.\n\n```cpp\ngetInAction = \"GetInCar\"; //CfgVehicles\n\ngetInCar = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n##### GetInHigh\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInHigh = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh\";\n```\n\n##### GetInLow\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInLow = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow\";\n```\n\n##### GetInMedium\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInMedium = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium\";\n```\n\n##### getInTank\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetInTank = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n##### getOutCar\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetOutCar = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n##### GetOutHigh\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutHigh = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh\";\n```\n\n##### GetOutLow\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutLow = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow\";\n```\n\n##### GetOutMedium\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutMedium = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium\";\n```\n\n##### getOutTank\n\n**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetOutTank = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n#### H\n\n##### handGunOn\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to transition to, when the character draws it is pistol. It is not the transition animation itself, where the character brings up the pistol (and puts away his rifle/launcher if he had any), but the end result of that: character standing, aiming with the pistol.\n\n```cpp\nhandGunOn = \"AmovPercMstpSrasWpstDnon\"; //class RifleBaseLowStandActions\n\nhandGunOn = \"AmovPpneMstpSrasWrflDnon\";\n```\n\n##### hasCollShapeSafe\n\n**Type:** Boolean\n\n```cpp\nhasCollShapeSafe = 0;\n```\n\n##### head\n\n**Type:** String\n\n**Description:** Found in *States*, references *BlendAnims* class entries. Permits/forbids the character to rotate his head freely. Similar in functionality to *aiming*.\n\n```cpp\nhead = \"headDefault\";    // class Default\nhead = \"headNo\";        // class CutSceneAnimationBase\nhead = \"empty\";            // class HaloFreeFall_non\n```\n\n##### headDefault[]\n\n**Type:** Array\n\n**Description:** Found in class *BlendAnims*, defines a set of bones, with weights associated to each of them.\n\n```cpp\nheadDefault[] = {\"head\", 1, \"neck1\", 0.5, \"neck\", 0.5};\n\nheadDefault[] = {};\n```\n\n##### headNo[]\n\n**Type:** Array\n\n**Description:** Found in class *BlendAnims*, always an empty array. Serves for disabling free head movement (independent of the *RTM* animation).\n\n```cpp\nheadNo[] = {};\n```\n\n##### headBobMode\n\n**Type:** Number\n\n**Description**\n\nValid values\n\n```cpp\nHeadBobUndef = 0\nHeadBobRaw = 1\nHeadBobBeginEnd = 2\nHeadBobAverageFrame = 3\nHeadBobStraightHorizon = 4\nHeadBobCutScene = 5\n```\n\n```cpp\nheadBobMode = 5; // Cutscene\n```\n\n#### I\n\n##### interpolateFrom[]\n\n**Type:** Array\n\n**Description:** Found in *States*, used together with *interpolateTo* for setting up two-way interpolation rules. *interpolateFrom[]* however, seems to have fallen in disuse.\n\n```cpp\ninterpolateFrom[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```\n\n##### interpolateTo[]\n\n**Type:** Array\n\n**Description:** Found in *States*; defines edges in the animation graph which should be interpolated immediately instead of connected at the end of this animation. As with connectTo, the numeric value specifies the cost of the transition.\n\nTypically, animations will play to the end, then another animation will be played. Sometimes though, it is important to be able to just cut the current animation short, and immediately change to a different animation.\n\nA good example would be death animations: if the character is half way through \"eating a kebab\" animation and the kebab explodes in his face, he won't continue munching. Instead he will play a death animation and fall to the ground right away.\n\nTo make the cut between the two animation less visually jarring, a couple of frames of transition/interpolation is provided.\n\n```cpp\ninterpolateTo[] = {\n    \"AinvPknlMstpSlayWrflDnon\", 0.01,\n    \"AinvPknlMstpSlayWrflDnon_1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_2\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_3\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_4\", 0.01,\n    \"AdthPknlMstpSnonWnonDnon_inventory\", 0.1\n};\n```\n\n##### interpolateWith[]\n\n**Type:** Array\n\n**Description:** Found in *States*, disused.\n\n```cpp\ninterpolateWith[] = {\"BasicDriver\", 0.02};\n```\n\n##### interpolationRestart\n\n**Type:** Boolean\n\n**Description:** Found in *States*, true mostly for transition animations.\n\n```cpp\ninterpolationRestart = false;    // Default\ninterpolationRestart = true;    // DefaultDie\ninterpolationRestart = 2;\n```\n\n##### interpolationSpeed\n\n**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\ninterpolationSpeed = 200;    // AidlPercMstpSrasWrflDnon_aiming01, AdthPercMstpSrasWrflDnon_rS0\ninterpolationSpeed = 30.5;    // AmovPercMstpSlowWrflDnon_player_idleSteady01\ninterpolationSpeed = 6;        // Default\ninterpolationSpeed = 0.5;    // AmovPknlMstpSrasWrflDnon_AmovPercMsprSrasWrflDf_2\ninterpolationSpeed = 0.1;    // AinjPfalMstpSnonWrflDnon_carried_Up\n```\n\n#### J\n\n##### JumpOff\n\n**Type:** String\n\n**Description:** Found in *Actions*, disused.\n\n```cpp\nJumpOff = \"\";\n```\n\n#### L\n\n##### ladderOff\n\n**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder.\n\n```cpp\nladderOff = \"AmovPercMstpSnonWnonDnon\";\n```\n\n##### ladderOffBottom\n\n**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder, having reached the bottom of it.\n\n```cpp\nladderOffBottom = \"LadderRifleDownOff\";\n```\n\n##### ladderOffTop\n\n**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder, having reached the top of it.\n\n```cpp\nladderOffTop = \"LadderRifleTopOff\";\n```\n\n##### ladderOnDown\n\n**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when getting onto the bottom of the ladder.\n\n```cpp\nladderOnDown = \"LadderRifleOn\";\n```\n\n##### ladderOnUp\n\n**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when getting onto the top of the ladder.\n\n```cpp\nladderOnUp = \"LadderRifleOn\";\n```\n\n##### leaning\n\n**Type:** String\n\n**Description:** Found in both *Actions* and *States*, references *BlendAnims* class entries. Defines how much each bone/bodypart should be influenced when leaning.\n\nLeaning, similar to aiming, is not an animation played back from a file. It's procedural, if you will, and so needs extra setting up in the config to look it is best.\n\n```cpp\nleaning = \"leaningDefault\";        // Default\nleaning = \"aimingLying\";        // AmovPpneMstpSrasWrflDnon_injured\nleaning = \"empty\";                // class AmovPpneMrunSlowWrflDf - disables leaning while prone\n```\n\n##### leaningCorrectionAngleBeg\n\n**Type:** Float\n\n**Description:** Not used in Arma 2, appearing only once in ArmA config, where both *leaningCorrectionAngleBeg* and *leaningCorrectionAngleEnd* are zero.\n\n```cpp\nleaningCorrectionAngleBeg = 0;\nleaningCorrectionAngleEnd = 0;\n```\n\n##### leaningFactorBeg\n\n**Type:** Float\n\n**Description:** Found in *States*, *leaningFactorBeg* sets how much influence leaning has at the start of an animation, while *leaningFactorEnd* takes care of the end. If the two values differ, leaning is blended in or out during the animation.\n\n```cpp\nleaningFactorBeg = 1;        // StandBase\nleaningFactorEnd = 1;\n\nleaningFactorBeg = 0;        // SprintBaseDf\nleaningFactorEnd = 0;\n\nleaningFactorBeg = 0.5;        // AmovPknlMstpSrasWlnrDnon - limited (half) leaning with launcher\nleaningFactorEnd = 0.5;\n\nleaningFactorBeg = 0.75;    // AmovPercMwlkSlowWrflDf - limited leaning while walking with rifle raised\nleaningFactorEnd = 0.75;\n\nleaningFactorBeg = 1;        // amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon\nleaningFactorEnd = 0.5;\n\nleaningFactorBeg = 1;        // AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon\nleaningFactorEnd = 0;        // -transition betwen a state with full leaning to one where leaning is forbidden-\n```\n\n##### leaningFactorEnd\n\n**Type:** Float\n\n**Description:** See above.\n\n```cpp\nleaningFactorEnd = 0.75;\n```\n\n##### leaningFactorZeroPoint\n\n**Type:** Float\n\n**Description:** Appears only once in both ArmA & Arma 2, no variation across *States* or *Actions*.\n\n```cpp\nleaningFactorZeroPoint = -1;\n```\n\n##### leanLRot\n\n**Type:** Float\n\n**Description:** Found in *Actions*, sets the amount of lean possible and the angle of leaning.\n\nWith a value of `1`, the character will lean about `70` degrees off vertical, looking like it just broke it is back, so the more reasonable amount to lean is about half of that. Doctor's orders.\n\n```cpp\nleanLRot = 0;        // NoActions, RifleProneActions\nleanLRot = 0.5;        // RifleBaseLowStandActions\nleanLRot = 0.57;    // CivilStandActions\n```\n\n##### leanLShift\n\n**Type:** Float\n\n**Description:** Found in *Actions*. In addition to tilting the upper body during leaning, it is also possible to move it into the lean.\n\nTypical values are very small, anything else will produce excessive deformations of the model.\n\n```cpp\nleanLShift = 0;        // class RifleProneActions\nleanLShift = 0.01;    // class RifleBaseLowStandActions\nleanLShift = 0.07;    // class CivilStandActions\n```\n\n##### leanRRot\n\n**Type:** Float\n\n**Description:** See leanLRot.\n\n```cpp\nleanRRot = 0.57;\n```\n\n##### leanRShift\n\n**Type:** Float\n\n**Description:** See leanLShift.\n\n```cpp\nleanRShift = 0.01;\n```\n\n##### leftHandIKBeg\n\n**Type:** Boolean\n\n**Description:** Found in *States*, appeared in ArmA, complemented/superseded in Arma 2 by *leftHandIKCurve[]*.\n\nThese properties set whether at the beginning and end of the animation, *IKs* for both arms are enabled or not.\n\n*left/right-HandIKCurve[]* allows for a more complex and detailed control of *FK/IK* (see below for more details) blending.\n\nTypical uses:\n\n```cpp\nleftHandIKBeg = true;\nleftHandIKCurve[] = {1};\nleftHandIKEnd = true;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {};\nleftHandIKEnd = false;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {0, 1, 0.075, 0, 0.725, 0, 0.8, 1};\nleftHandIKEnd = false;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {0.05, 1, 0.125, 0, 0.6, 0, 0.675, 1};\nleftHandIKEnd = true;\n```\n\n##### leftHandIKEnd\n\n**Type:** Boolean\n\n**Description:** See above.\n\n```cpp\nleftHandIKEnd = 0;\n```\n\n##### leftHandIKCurve\n\n**Type:** Array\n\n**Description:** As the name suggests, this array describes the curve controlling [FK](https://en.wikipedia.org/wiki/Forward_kinematics)/[IK](https://en.wikipedia.org/wiki/Inverse_kinematics) blending on the left arm.\n\nEvery pair of values describe a 2D point, with the first number representing *time* (horizontal) and the second being the *weight* (vertical).\n\n*Time* ranges from `0-1`, where `0` is animation start, `0.5` is half way, and `1` the end.\n\n*Weight* also ranges from `0-1`, where `0` means animation is taken from *RTM* file (*FK*) and *IK* is disabled, `0.6` meaning a `40%` blend of *FK* and `60%` *IK*, and `1` is `100%` *IK*.\n\nLet me interpret the last example below (the long one). The curve has 4 points `[0, 1], [0.05, 0], [0.95, 0]` and `[1, 1]`. When the animation starts playing, the *IK* takes full effect, but is gradually disabled by point `#2`. It stays disabled until point `#3` towards the end, when it is *weight* starts climbing again. At the end, at point `#4`, the *IK* is fully on again, overriding all *FK*.\n\n```cpp\nleftHandIKCurve[] = {};                                    // IK OFF.\nleftHandIKCurve[] = {1};                                // IK fully ON.\nleftHandIKCurve[] = {0.1, 1, 0.15, 0};                    // IK fully ON one-tenth into the animation, but disabled soon afterwards.\nleftHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};        // IK ON at start, but soon disabled. Re-enabled towards the end.\n```\n\n##### legs\n\n**Type:** String\n\n**Description:** Found in *States*, references *BlendAnims* class entries. Used for deforming the character on sloping surfaces (hillside, stairs, etc..).\n\nMost of the *RTM* animations have been recorded in a motion capture studio, on a perfectly flat floor. When standing on a slope, the character would normally have one foot sinking into the ground, while the other would be hanging in the air. So BI devised this system for deforming the bodyparts that have contact with the ground.\n\nWhen standing upright, it is just the legs. When prone, it is most, if not the whole body. Like everything else in *BlendAnims*, it is a list of bones, with weights (amount of influence) associated.\n\n```cpp\nlegs = \"legsDefault\";        // Deafault\nlegs = \"legsNo\";            // DefaultDie\nlegs = \"legsLyingAiming\";    // AmovPpneMstpSrasWrflDnon_injured\nlegs = \"Wholebody\";            // AmovPpneMstpSnonWnonDnon\nlegs = \"empty\";                // HaloFreeFall_non\n```\n\n##### legsDefault[]\n\n**Type:** Array\n\n**Description:** *BlendAnims* class entry. See above.\n\n```cpp\nlegsDefault[] = {\"LeftUpLeg\", 0.9, \"LeftUpLegRoll\", 0.9, \"LeftLeg\", 0.95, \"LeftLegRoll\", 0.95, \"LeftFoot\", 1, \"LeftToeBase\", 1,\n    \"RightUpLeg\", 0.9, \"RightUpLegRoll\", 0.9, \"RightLeg\", 0.95, \"RightLegRoll\", 0.95, \"RightFoot\", 1, \"RightToeBase\", 1};\n```\n\n##### legsNo[]\n\n**Type:** Array\n\n**Description:** Always empty *BlendAnims* class entry, see *legs* above. Disables all deformations on contact with land. Death animations are a typical case.\n\n```cpp\nlegsNo[] = {};\n```\n\n##### limitFast\n\n**Type:** Float\n\n**Description:** Found in *Actions*, used for limiting the *slow..* movements, although the names suggests a limiting of *fast..*.\n\n```cpp\nlimitFast = 0.5;    // RifleProneActions_injured\nlimitFast = 2;        // SwimmingActions\nlimitFast = 4;        // class CivilStandActions, SwimmingFastActions\nlimitFast = 5;        // NoActions\nlimitFast = 5.5;    // RifleBaseLowStandActions\n```\n\n##### limitGunMovement\n\n**Type:** Boolean\n\n**Description:** Found in *States*.\n\n```cpp\nlimitGunMovement = false;    // HealBase\nlimitGunMovement = false;    // SprintBaseDf\nlimitGunMovement = 0.1;        // AmovPercMstpSnonWnonDnon\nlimitGunMovement = 0.3;        // AovrPercMstpSlowWrflDf\nlimitGunMovement = 0.6;        // AmovPercMwlkSlowWpstDnon_transition\nlimitGunMovement = true;    // Default\n```\n\n##### looped\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets whether the current animation should start over once it is finished. Loop, that is.\n\n```cpp\nlooped = 1;\n```\n\n##### Lying\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to play for the \"*Prone with weapon*\" situation. *CivilLying* is the unarmed equivalent.\n\n```cpp\nLying = \"AmovPpneMstpSnonWnonDnon\";\n```\n\n#### M\n\n##### medic\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used by a medic when triggering the \"*Heal..*\" action.\n\n```cpp\nmedic = \"AinvPknlMstpSlayWrflDnon_medic\";\n```\n\n#### O\n\n##### onLadder\n\n**Type:** Boolean\n\n**Description:** Found in *States*, flags the animation as ladder related.\n\n```cpp\nonLadder = 1;\n```\n\n##### onLandBeg\n\n**Type:** Boolean\n\n**Description:** Found in *States*. If at the start of the animation the character is lying on the ground (prone), *onLandBeg* equals *true*. If at the end of the animation the character is lying on the ground (prone), *onLandEnd* equals *true*. Otherwise false. Not sure what these flags are used for.\n\n```cpp\n//Default\nonLandBeg = false;\nonLandEnd = false;\n\n//AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon\nonLandBeg = false;\nonLandEnd = true;\n\n//AmovPpneMstpSrasWrflDnon_AmovPercMstpSrasWrflDnon\nonLandBeg = true;\nonLandEnd = false;\n\n//AmovPpneMstpSrasWrflDnon_AmovPpneMstpSrasWpstDnon\nonLandBeg = true;\nonLandEnd = true;\n\n//AdthPpneMstpSnonWnonDnonB\nonLandEnd = true;\nonLandBeg = false;\n```\n\n##### onLandEnd\n\n**Type:** Boolean\n\n**Description:** See above.\n\n```cpp\nonLandEnd = 1;\n```\n\n#### P\n\n##### PlayerCrouch\n\n**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Crouch*, except it applies only to player characters and not *AI*.\n\n```cpp\nPlayerCrouch = \"AmovPknlMstpSrasWlnrDnon\";\n```\n\n##### PlayerProne\n\n**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Lying*, except it applies only to player characters and not *AI*.\n\nSets the animation to be used when going prone.\n\n```cpp\nPlayerProne = \"AmovPpneMstpSnonWnonDnon\";\n```\n\n##### PlayerStand\n\n**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Stand*, except it applies only to player characters and not *AI*.\n\nSets the animation to be used when standing upright.\n\n```cpp\nPlayerStand = \"AwopPercMstpSoptWbinDnon_rfl\";\n```\n\n##### predictSpeedCoef\n\n**Type:** Float\n\n**Description:** Disused in Arma 2, appears once in ArmA.\n\n```cpp\npredictSpeedCoef = 1;\n```\n\n##### preload\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets whether to load the animation file (*RTM*) into memory at game start, or just read it from disc when there's a demand for it.\n\nAll animations are set not to preload in Arma 2, while in ArmA some often used animations like running for example, are preloaded.\n\n```cpp\npreload = 1;\n```\n\n##### primaryActionMaps[]\n\n**Type:** Array\n\n**Description:** Outlines the main action groups.\n\n```cpp\nprimaryActionMaps[] = {\"DeadActions\", \"LauncherKneelActions\", \"BinocProneRflActions\", \"BinocProneCivilActions\",\n    \"RifleProneActions\", \"PistolProneActions\", \"RifleKneelActions\", \"PistolKneelActions\", \"RifleStandActions\",\n    \"PistolStandActions\", \"RifleLowStandActions\", \"SwimmingActions\", \"CivilStandActions\",\n    \"BinocKneelRflActions\", \"BinocStandRflActions\"};\n```\n\n##### putDown\n\n**Type:** String\n\n**Description:** Found in *Actions*. Sets the animation to be used when the character puts something on the ground (e.g. dropping some equipment).\n\n```cpp\nputDown = \"AmovPpneMstpSrasWrflDnon\";\n```\n\n##### PutDownEnd\n\n**Type:** Float\n\n**Description:** Not used in the ArmA series.\n\n```cpp\nPutDownEnd = \"\";\n```\n\n#### R\n\n##### reload...\n\n**Type:** String\n\n**Description:** Found in *Actions*. Default actions for reloading are *reloadMagazine*, *reloadAT*, *reloadMGun* and *reloadMortar*, but addon makers can add their own if they wish.\n\nThese actions are invoked in *CfgWeapons* and *CfgMagazines* via **reloadAction**. Most reload actions for upright stances in Arma 2 are bone-masked, they are configured as *Gestures*.\n\n```cpp\n//game\nreloadAT = \"LauncherReloadKneel\";\nreloadMagazine[] = {\"WeaponMagazineReloadStand\", \"Gesture\"};\nreloadMGun = \"AmovPpneMstpSrasWrflDnon\";\nreloadMortar = \"AmovPpneMstpSrasWrflDnon\";\n\n//custom\nreloadM1Garand[] = {\"M1GarandMagazineReloadStand\", \"Gesture\"};\n//CfgWeapons/CfgMagazines\nreloadAction = \"ManActReloadM1Garand\";\n```\n\n##### relSpeedMax\n\n**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\nrelSpeedMax = 0.6;\n```\n\n##### relSpeedMin\n\n**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\nrelSpeedMin = 0.5;\n```\n\n##### rightHandIKBeg\n\n**Type:** Boolean\n\n**Description:** See *leftHandIKBeg*.\n\n```cpp\nrightHandIKBeg = 1;\n```\n\n##### rightHandIKEnd\n\n**Type:** Boolean\n\n**Description:** See *leftHandIKBeg*.\n\n```cpp\nrightHandIKEnd = 1;\n```\n\n##### rightHandIKCurve\n\n**Type:** Array\n\n**Description:** See *leftHandIKCurve*.\n\n```cpp\nrightHandIKCurve[] = {};                                // IK OFF.\nrightHandIKCurve[] = {1};                                // IK fully ON.\nrightHandIKCurve[] = {0.1, 1, 0.15, 0};                    // IK fully ON one-tenth into the animation, but disabled soon afterwards.\nrightHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};    // IK ON at start, but soon disabled. Re-enabled towards the end.\n```\n\n#### S\n\n##### salute..\n\n**Type:** String\n\n**Description:** Found in *Actions*, *salute* points to the animation the character will transition to when saluting, while *saluteOff* points to the animation the character should return to when done saluting.\n\nNeither of these properties point to the transition animations, where the character is actually raising/lowering it is arm.\n\n```cpp\nsalute = \"AmovPercMstpSlowWrflDnon_salute\";\nsaluteOff = \"AmovPercMstpSlowWrflDnon\";\n```\n\n##### showHandGun\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets pistol visibility on/off.\n\n```cpp\nshowHandGun = 1;\n```\n\n##### showItemInHand\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets item (*binoculars*, specifically) visibility on/off.\n\n```cpp\nshowItemInHand = 1;\n```\n\n##### showItemInRightHand\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets item (*binoculars*, specifically) visibility on/off in the right hand. Looks it is not working on Arma 3.\n\n```cpp\nshowItemInRightHand = 0;\n```\n\n##### showWeaponAim\n\n**Type:** Boolean\n\n**Description:** Found in *States*, sets whether *crosshairs* are displayed or not for given animation.\n\n```cpp\nshowWeaponAim = 1;\n```\n\n##### sitDown\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to transition to when the sitting action is triggered. Not the *to* and *from* transition animations, but the sitting idle.\n\n```cpp\nSitDown = \"\";    // RifleStandSaluteActions_Idle - can't sit down while saluting\nsitDown = \"AmovPsitMstpSlowWrflDnon\";\n```\n\n##### skeletonName\n\n**Type:** String\n\n**Description:** Sets the skeleton to be used.\n\n```cpp\nskeletonName = \"OFP2_ManSkeleton\";\nskeletonName = \"WomanSkeleton\";\n```\n\n##### slow..\n\n**Type:** String\n\n**Description:** See *fast..*.\n\n```cpp\nslowB = \"AmovPercMrunSlowWlnrDb\";\nslowF = \"AmovPercMevaSlowWlnrDf\";\nslowL = \"AmovPercMrunSlowWlnrDl\";\nslowLB = \"AmovPercMrunSlowWlnrDbl\";\nslowLF = \"AmovPercMrunSlowWlnrDfl\";\nslowR = \"AmovPercMrunSlowWlnrDr\";\nslowRB = \"AmovPercMrunSlowWlnrDbr\";\nslowRF = \"AswmPercMrunSnonWnonDf\";\n```\n\n##### soundEdge..\n\n**Type:** Array\n\n**Description:** Found in *States*. Deprecated forms *soundEdge1*, *soundEdge2* (used very little in ArmA, not at all in Arma 2).\n\nUsed for sound timing during an animation. If there's a sound file associated with the animation, it won't play right away as the animation starts. It will play when and as many times as *soundEdge* tells it to.\n\n```cpp\nsoundEdge[] = {0.5, 1};                    // Default\nsoundEdge[] = {0.45};                    // DefaultDie\nsoundEdge[] = {0.25, 0.5, 0.75, 1};        // AmovPercMwlkSlowWrflDf - timing of the 4 footstep sounds\n\n//old\nsoundEdge1 = 0.5;\nsoundEdge2 = 1;\n```\n\n##### soundEnabled\n\n**Type:** Boolean\n\n**Description:** Found in *States*, enables/disables sounds being played with the animation.\n\n```cpp\nsoundEnabled = 1;\n```\n\n##### soundOverride\n\n**Type:** String\n\n**Description:** Found in *States*, points to the actual sound to play with the animation.\n\n```cpp\nsoundOverride = \"bodyfall\";\n```\n\n##### speed\n\n**Type:** Float\n\n**Description:** Found in *States*, sets the animation playback speed.\n\nNote that speed depends on animation length, on the number of frames it contains.\n\nFor example, setting speed at `0.5` for a 50 frames long animation will result in it playing at about 25 frames per second. Setting the same speed for a 300 frame animation, will result in that animation playing much faster. *Speed*, seems to me more akin to duration.\n\n```cpp\nspeed = 0.00833333;\n```\n\n##### stand\n\n**Type:** String\n\n**Description:** Found in *Actions*, see *playerStand*.\n\n```cpp\nStand = \"AmovPknlMstpSrasWrflDnon\";\n```\n\n##### startSwim\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when starting to swim.\n\n```cpp\nstartSwim = \"AswmPercMrunSnonWnonDf\";\n```\n\n##### stop\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when stopping.\n\n```cpp\nstop = \"AinvPknlMstpSlayWrflDnon\";\n```\n\n##### stopRelaxed\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when stopping with weapon lowered (\"*SAFE*\" behaviour).\n\n```cpp\nStopRelaxed = \"AidlPercMstpSlowWrflDnon01\";\n```\n\n##### stopSwim\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when ending swimming.\n\n```cpp\nstopSwim = \"AmovPercMstpSnonWnonDnon\";\n```\n\n##### strokeFist\n\n**Type:** Float\n\n**Description:** Found in *Actions*, not really used. Has been around since OFP if I remember correctly, probably an attempt to introduce fist fighting, but then abandoned.\n\n```cpp\nStrokeFist = \"\";\n```\n\n##### strokeGun\n\n**Type:** String\n\n**Description:** Similar to *strokeFist* above, attempt at melee fighting but not used.\n\n```cpp\nstrokeGun = \"AmovPercMstpSnonWnonDnon\";\n```\n\n#### T\n\n##### takeFlag\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when taking the flag during a *CTF* match.\n\n```cpp\ntakeFlag = \"AinvPknlMstpSlayWrflDnon\";\n```\n\n##### terminal\n\n**Type:** Boolean\n\n**Description:** Found in *States*, flags the animation as being \"*terminal*\". *True* for death animations, *false* for everything else.\n\n```cpp\nterminal = 1;\n```\n\n##### testDriver\n\n**Type:** String\n\n**Description:** Found in *Actions*, along with *testDriverOut* and *TestGunner*. \"*Test*\" suggests it might have been just that, an experiment during development.\n\n```cpp\n//class ManActions\nTestDriver = \"BasicDriver\";\nTestDriverOut = \"BasicDriverOut\";\nTestGunner = \"BasicSittingGunner\";\n```\n\n##### testDriverOut\n\n**Type:** String\n\n**Description:** See above.\n\n```cpp\nTestDriverOut = \"BasicDriverOut\";\n```\n\n##### testGunner\n\n**Type:** String\n\n**Description:** See *testDriver*.\n\n```cpp\nTestGunner = \"BasicSittingGunner\";\n```\n\n##### throwGrenade\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when throwing a grenade.\n\n```cpp\nthrowGrenade = \"AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow\";\n```\n\n##### transitionsDisabled[]\n\n**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsDisabled[] = {};\n```\n\n##### transitionsInterpolated[]\n\n**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsInterpolated[] = {};\n```\n\n##### transitionsSimple[]\n\n**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsSimple[] = {};\n```\n\n##### treated\n\n**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when being healed by a medic. Medic will be using animation defined in *medic*.\n\n```cpp\ntreated = \"AinvPknlMstpSlayWrflDnon_healed\";\n```\n\n##### turn...\n\n**Type:** String\n\n**Description:** Found in *Actions*, *turnL* and *turnR* define the turning animations, while *turnLRelaxed* and *turnRRelaxed* do the same thing for the \"*relaxed*\" (weapon lowered, behaviour \"*SAFE*\") modes.\n\n```cpp\nturnL = \"AmovPercMstpSlowWrflDnon_turnL\";\nturnLRelaxed = \"AmovPercMstpSlowWrflDnon_turnL\";\nturnR = \"AmovPpneMstpSrasWrflDnon_turnR\";\nturnRRelaxed = \"AmovPpneMstpSrasWrflDnon_turnR\";\n```\n\n##### turnSpeed\n\n**Type:** Float\n\n**Description:** Found in *Actions*, sets turning speed.\n\n```cpp\nturnSpeed = 0.1;\n```\n\n#### U\n\n##### untiltWeapon\n\n**Type:** String\n\n**Description:** Not found in Arma 2, and not really used in ArmA either.\n\n```cpp\nuntiltWeapon = \"untiltWeaponDefault\";\n```\n\n##### untiltWeaponDefault[]\n\n**Type:** Array\n\n**Description:** Same as above.\n\n```cpp\nuntiltWeaponDefault[] = {};\n```\n\n##### up\n\n**Type:** String\n\n**Description:** Found in *Actions*. Together with *down* sets up what looks like a standing/kneeling/prone toggle. Which I don't think is used in the game's current control scheme.\n\n```cpp\nup = \"AmovPknlMstpSlowWrflDnon\";    // RifleBaseLowStandActions\nup = \"AmovPknlMstpSrasWrflDnon\";    // RifleBaseStandActions\nup = \"AmovPknlMwlkSlowWrflDf\";        // RifleLowStandActionsWlkF\nup = \"AmovPercMstpSrasWrflDnon\";    // RifleKneelActions\n```\n\n##### upDegree\n\n**Type:** String\n\n**Description:** Found in *Actions*, seems to define the \"*upright*\" stance for each action group.\n\nThese \"*ManPos..*\" things only appear in root `/Dta/bin/config.bin`, where they get some equivalent numbers, and that's it. Important to get right though when creating custom action sets.\n\n```cpp\nupDegree = 0;                        // NoActions\nupDegree = -1;                        // NoActions, ParachuteFreeFall\nupDegree = \"ManPosDead\";            // DeadActions\nupDegree = \"ManPosStand\";            // RifleBaseLowStandActions\nupDegree = \"ManPosCombat\";            // RifleBaseStandActions\nupDegree = \"ManPosCrouch\";            // RifleKneelEvasiveActions, RifleKneelActions\nupDegree = \"ManPosLying\";            // RifleProneActions\nupDegree = \"ManPosHandGunStand\";\nupDegree = \"ManPosHandGunCrouch\";\nupDegree = \"ManPosHandGunLying\";\nupDegree = \"ManPosNoWeapon\";        // CivilStandActions\nupDegree = \"ManPosLyingNoWeapon\";\nupDegree = \"ManPosWeapon\";            // LauncherKneelActions\nupDegree = \"ManPosBinocStand\";        // BinocStandLnrActions\nupDegree = \"ManPosSwimming\";\nupDegree = \"ManPosBinocStand\";\nupDegree = \"ManPosBinoc\";\nupdegree = \"ManPosCrouch\";\n//enum in root config\nenum {\n    MANPOSNOWEAPON = 12,\n    CPCOMMANDER = 2,\n    CMD_STAY_BACK = 4,\n    CMD_MOVE = 12,\n    CMD_FIRE = 27,\n    CMD_WATCH = 28,\n    CMD_REPLY_FAIL = 64,\n    CMD_REPORT = 68,\n    ...\n    MANPOSHANDGUNSTAND = 9,\n    ...\n    MANPOSCROUCH = 6,\n    ...\n    MANPOSHANDGUNLYING = 5,\n    MANPOSHANDGUNCROUCH = 7,\n    MANPOSBINOCSTAND = 14,\n    ...\n    MANPOSDEAD = 0,\n    MANPOSCOMBAT = 8,\n    ...\n    MANPOSBINOCLYING = 2,\n    MANPOSSTAND = 10,\n    MANPOSSWIMMING = 11,\n    COMPARTMENT3 = 4,\n    CMD_ACTION = 2,\n    CMD_FORM_ECHLEFT = 16,\n    ...\n    MANPOSWEAPON = 1,\n    ...\n    MANPOSLYING = 4,\n    ...\n    MANPOSLYINGNOWEAPON = 3,\n    MANPOSBINOC = 13,\n    ...\n};\n```\n\n##### useFastMove\n\n**Type:** Boolean\n\n**Description:** Found in *Actions*. *True* for action sets containing \"*Evasive*\" in the classname, so an obscure flag of some sorts in ArmA. Not used in any significant way in Arma 2.\n\n```cpp\nuseFastMove = 1;\n```\n\n#### V\n\n##### variantAfter[]\n\n**Type:** Array\n\n**Description:** Found in *States* when there are several variations on the same animation (usually idles) that can be played randomly.\n\nMinimum, average and maximum - these are the inputs for the random number generator, similar to how trigger timeout/countdown works in the *mission editor*.\n\n```cpp\nvariantAfter[] = {5, 10, 20};    // Default\nVariantAfter[] = {5, 5, 5};        // AinvPknlMstpSnonWnonDnon_medic0S\nvariantAfter[] = {2, 3, 5};        // AidlPercMstpSlowWrflDnon_player_0S\nvariantAfter[] = {0, 0, 0};        // AidlPercMstpSrasWrflDnon_aiming0S\n```\n\n##### variantsAI[]\n\n**Type:** Array\n\n**Description:** Found in *States* when there are several variations on the same animation (usually idles) that can be played randomly.\n\nIt lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.\n\nThe sum of these numbers is always `1`.\n\n```cpp\n//Default\nvariantsAI[] = {\"\"};\n//AidlPercMstpSnonWnonDnon\nvariantsAI[] = {\"AidlPercMstpSnonWnonDnon01\", 0.01,\n    \"AidlPercMstpSnonWnonDnon02\", 0.01,\n    \"AidlPercMstpSnonWnonDnon03\", 0.01,\n    \"AidlPercMstpSnonWnonDnon04\", 0.01,\n    \"AidlPercMstpSnonWnonDnon05\", 0.01,\n    \"AidlPercMstpSnonWnonDnon06\", 0.01,\n    \"AidlPercMstpSnonWnonDnon07\", 0.01,\n    \"AidlPercMstpSnonWnonDnon08\", 0.01,\n    \"AidlPercMstpSnonWnonDnon_idleSteady04\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady03\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady02\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady01\", 0.23};\n//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall\nvariantsAI[] = {\"Mi17_Cargo02\", 0.4, \"Mi17_Cargo02_V1\", 0.1, \"Mi17_Cargo02_V2\", 0.1, \"Mi17_Cargo02_V3\", 0.1,\n    \"Mi17_Cargo02_V4\", 0.1, \"Mi17_Cargo02_V5\", 0.1, \"Mi17_Cargo02_V6\", 0.1};\n//aidlpercmstpsraswlnrdnon_S\nvariantsAI[] = {\"aidlpercmstpsraswlnrdnon_1\", 0.333, \"aidlpercmstpsraswlnrdnon_2\", 0.333, \"aidlpercmstpsraswlnrdnon_3\", 0.334};\n```\n\n##### variantsPlayer[]\n\n**Type:** Array\n\n**Description:** Same as **variantsAI[]** above, except for player characters.\n\n```cpp\nvariantsPlayer[] = {\"AdthPercMrunSlowWlnrDf_1\", 0.5, \"AdthPercMrunSlowWlnrDf_2\", 0.5};\n```\n\n##### visibleSize\n\n**Type:** Float\n\n**Description:** Found in *States*, probably used for calculating how visible a character is for the *AI*, based on his stance/animation.\n\n```cpp\nvisibleSize = 1.00012;        // SprintBaseDf                    when sprinting more visible than..\nvisibleSize = 0.700121;        // AmovPercMstpSrasWrflDnon        ..when stopped > visible than..\nvisibleSize = 0.300122;        // AmovPknlMstpSlowWrflDnon        ..when kneeling > visible than..\nvisibleSize = 0.100123;        // AmovPpneMstpSrasWrflDnon        ..when prone.\n```\n\n#### W\n\n##### walk..\n\n**Type:** String\n\n**Description:** See *fast..*.\n\n```cpp\nwalkB = \"AmovPercMwlkSlowWrflDb\";\nwalkF = \"AmovPercMevaSlowWlnrDf\";\nwalkL = \"AmovPercMwlkSlowWrflDl\";\nwalkLB = \"AmovPercMwlkSlowWrflDbl\";\nwalkLF = \"AswmPercMwlkSnonWnonDf\";\nwalkR = \"AmovPpneMrunSnonWnonDr\";\nwalkR = \"AswmPercMstpSnonWnonDnon\";\nwalkRB = \"AmovPercMwlkSlowWrflDbr\";\nwalkRF = \"AmovPercMwlkSlowWrflDfr\";\n```\n\n##### weaponOff\n\n**Type:** String\n\n**Description:** The opposite of *weaponOn* below.\n\n```cpp\nweaponOff = \"AmovPercMstpSrasWrflDnon\";\n```\n\n##### weaponOn\n\n**Type:** String\n\n**Description:** Found in *States*, and references the animation that needs to be reached when switching to *RPGs/MANPADS*.\n\n```cpp\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleBaseLowStandActions\nweaponOff = \"AmovPercMstpSrasWrflDnon\";\n\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleKneelActions\nweaponOff = \"AmovPknlMstpSrasWrflDnon\";\n\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleProneActions\nweaponOff = \"AmovPpneMstpSrasWrflDnon\";\n```","sections":[{"heading":"Introduction","level":3,"markdown":"***cfgMoves*** is the nerve center of all skeletal character animation. The animation of human characters that is - not the simple, procedural animation of objects (*e.g.* raising/lowering a barrier, opening/closing of an aircraft canopy).\n\n*cfgMoves* has two major sections: *Actions* and *States*."},{"heading":"Actions","level":4,"markdown":"It is where the character animation [state machine](https://en.wikipedia.org/wiki/State_machine) is set up. It's a bit confusing that BI called the animation state handler \"*Actions*\", and the actions are called \"*States*\", but this is what it is.\n\nWhat this thing does, is configure all the possible animation states (*e.g.* standing upright with a rifle, kneeling with a pistol, parachuting), and define for each of them which animations can be played in and from that given state.\n\nFor instance, from the kneeling with a pistol state (*PistolKneelActions*), you cannot directly go into crawling forward on your stomach with a rifle (even if you have a rifle). First you would have to holster the pistol and grab your rifle, then lie down, or viceversa. Similarly, if you're prone (whether unarmed, or armed with a pistol or rifle), you cannot salute - first you'd have to stand up.\n\nWhat animation can or cannot be played, in what situation, is set up here in *Actions*. Player input (key presses, clicks) are then directed to this state machine, which interprets them and decides what action/animation the avatar will perform next, according to these rules. Same rules apply to *AI* players."},{"heading":"States","level":4,"markdown":"In this section, each animation file (*RTM*) has a corresponding entry. Animation properties, such as playback speed, interpolation rules, blending times, collision shapes to use during animation, etc.., are configured here.\n\nThese animations are the ones referenced in the *Actions* section above. While *Actions* represents a complex graph, *States* is more like a list of items, even though some rules are also set up here (see the *ConnectTo[]* and *InterpolateTo[]* properties).\n\n***cfgGestures*** is similar to *States*, it holds the bone-masked or layered animations introduced in Arma 2. Welcome to reloading-while-running."},{"heading":"Namespace of anim classes and files","level":4,"markdown":"`A...P...M...S...W...D[_A...P...M...S...W...D][_Comment]`\n\n**A**: Description of the animation type, *i.e.*: `mov` for movement, `cts` for cutscene\n\n**P**: Stance: `erc` for erected, `knl` for kneel, `pne` for prone\n\n**M**: Speed of animation: `stp` for stopped, `wlk` for walk, `run` for running, `eva` for evasive\n\n**S**: Weapon holding: `low` for lowered, `ras` for raised\n\n**W**: Weapon: `non` for unarmed, `pst` for pistol, `lnr` for launcher, `rfl` for rifle.\n\n**D**: Direction of movement: `non` for no direction, `f` for forward, etc.\n\nIf there is a second movement definition named `[_A...P...M...S...W...D]` after the first one, the animation is a transition from the first animation to the second.\n\n`[_Comment]: additional comments`, if required.\n\nExample: `AmovPpneMstpSnonWnonDnon` means: *Movement - Prone - Stopped - civil (no weapon) - no direction (due to being static)*."},{"heading":"Alphabetical Order","level":3,"markdown":""},{"heading":"A","level":4,"markdown":""},{"heading":"access","level":5,"markdown":"**Type:** Integer\n\n**Description:** See *access (CfgVehicles)*.\n\n```cpp\naccess = 3;\n```"},{"heading":"actions","level":5,"markdown":"**Type:** String\n\n**Description:** Sets the action class/group to which this state belongs to.\n\n```cpp\nactions = \"PistolStandActionsRunR\";\nactions = \"RifleStandActions\";\nactions = \"InjuredManActionsnon_norot\";\nactions = \"SitActions\";\n```"},{"heading":"aiming","level":5,"markdown":"**Type:** String\n\n**Description:** This property references **BlendAnims** class entries to use when aiming up/down. These are sets of *named selections*, with weights associated to them, defining how much should the bodyparts move while aiming.\n\nNotice how for instance *aimingDefault[]* sets up increasing weights for bones: Spine `(0.3)`, Spine1 `(0.4)`, Spine2 `(0.5)`, Spine3/Head/Neck `(0.6)`, shoulders and upper arms `(0.8)` and finally forearms, hands and weapons `(1)`. This makes for a smooth arching of the body while aiming.\n\n```cpp\naiming = \"empty\";\naiming = \"aimingDefault\";\naiming = \"aimingNo\";\naiming = \"aimingCivil\";\naiming = \"aimingLying\";\naiming = \"aimingPistol\";\naiming = \"aimingLauncher\";\n```"},{"heading":"aimingDefault[]","level":5,"markdown":"**Type:** Array\n\n**Description:** *BlendAnims* array, see *aiming* above.\n\n```cpp\naimingDefault[] = {\"head\", 0.6, \"neck1\", 0.6, \"neck\", 0.6, \"weapon\", 1, \"launcher\", 1, \"LeftShoulder\", 0.8, \"LeftArm\", 0.8, \"LeftArmRoll\", 1,\n    \"LeftForeArm\", 1, \"LeftForeArmRoll\", 1, \"LeftHand\", 1, \"LeftHandRing\", 1, \"LeftHandPinky1\", 1, \"LeftHandPinky2\", 1, \"LeftHandPinky3\", 1,\n    \"LeftHandRing1\", 1, \"LeftHandRing2\", 1, \"LeftHandRing3\", 1, \"LeftHandMiddle1\", 1, \"LeftHandMiddle2\", 1, \"LeftHandMiddle3\", 1, \"LeftHandIndex1\", 1,\n    \"LeftHandIndex2\", 1, \"LeftHandIndex3\", 1, \"LeftHandThumb1\", 1, \"LeftHandThumb2\", 1, \"LeftHandThumb3\", 1, \"RightShoulder\", 0.8, \"RightArm\", 0.8,\n    \"RightArmRoll\", 1, \"RightForeArm\", 1, \"RightForeArmRoll\", 1, \"RightHand\", 1, \"RightHandRing\", 1, \"RightHandPinky1\", 1, \"RightHandPinky2\", 1,\n    \"RightHandPinky3\", 1, \"RightHandRing1\", 1, \"RightHandRing2\", 1, \"RightHandRing3\", 1, \"RightHandMiddle1\", 1, \"RightHandMiddle2\", 1,\n    \"RightHandMiddle3\", 1, \"RightHandIndex1\", 1, \"RightHandIndex2\", 1, \"RightHandIndex3\", 1, \"RightHandThumb1\", 1, \"RightHandThumb2\", 1,\n    \"RightHandThumb3\", 1, \"Spine\", 0.3, \"Spine1\", 0.4, \"Spine2\", 0.5, \"Spine3\", 0.6};\naimingDefault[] = {};\n```"},{"heading":"aimingNo[]","level":5,"markdown":"**Type:** Array\n\n**Description:** *BlendAnims* array, see *aiming* above.\n\n```cpp\naimingNo[] = {};\n```"},{"heading":"aimPrecision","level":5,"markdown":"**Type:** Float\n\n**Description:** Probably goes into accuracy calculations when firing a weapon; the higher the value, the less accurate aiming becomes.\n\nWounded `>1`, firing upright animations are mostly `1`, kneeling is `0.5`, and prone values are even lower.\n\n```cpp\naimPrecision = 5;        // Carrying a wounded soldier on your back\naimPrecision = 2;        // Injured, cannot stand up\naimPrecision = 1;        // Standing upright\naimPrecision = 0.5;        // Crouched\naimPrecision = 0.3;        // Prone\naimPrecision = 0.15;    // Walking slowly while looking down the sights\n```"},{"heading":"B","level":4,"markdown":""},{"heading":"binocOff","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions* together with *binocOn*. They define which state is used for bringing up and putting away binoculars.\n\n```cpp\nbinocOff = \"\";\nbinocOff = \"AmovPercMstpSrasWrflDnon\";\nbinocOff = \"AmovPknlMstpSrasWrflDnon\";\nbinocOff = \"AmovPercMstpSrasWrflDnon\";\nbinocOff = \"AmovPpneMstpSrasWrflDnon\";\n```"},{"heading":"binocOn","level":5,"markdown":"**Type:** String\n\n```cpp\nbinocOn = \"\";    // No binocs while lying on the ground injured\nbinocOn = \"AwopPknlMstpSoptWbinDnon_rfl\";\nbinocOn = \"AwopPercMstpSoptWbinDnon_rfl\";\nbinocOn = \"AwopPknlMstpSoptWbinDnon_pst\";\nbinocOn = \"AwopPpneMstpSoptWbinDnon_rfl\";\n```"},{"heading":"boundingSphere","level":5,"markdown":"**Type:** Float / Boolean\n\n**Description:** Probably obsolescent, used for character collision detection. For more accurate collision models use *collisionShape* & Co. Still used in Arma 2 for cutscene animations. Sphere collision probably much cheaper than anything else.\n\n```cpp\nboundingSphere = true;\nboundingSphere = 1;\nboundingSphere = 1.5;\nboundingSphere = 8;\nboundingSphere = 35;\n```"},{"heading":"C","level":4,"markdown":""},{"heading":"CanNotMove","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCanNotMove = \"AmovPpneMstpSrasWrflDnon\";\n```"},{"heading":"canPullTrigger","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Self explanatory. While in that animation, the player can fire it is weapon, but his trigger finger will remain extended. The little \"finger squeezing the trigger\" animation won't play.\n\n```cpp\ncanPullTrigger = 1;\n```"},{"heading":"Civil","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, defines what happens to a soldier if he were to lose his weapons and become unarmed.\n\n```cpp\nCivil = \"AmovPercMstpSnonWnonDnon\";\nCivil = \"AmovPercMstpSnonWnonDnon_gear\";\n```"},{"heading":"CivilLying","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCivilLying = \"AmovPpneMstpSnonWnonDnon\";\n```"},{"heading":"collisionGeomCompPattern[]","level":5,"markdown":"**Type:** Array\n\n```cpp\ncollisionGeomCompPattern[] = {1,3,6};\n```"},{"heading":"collisionShape","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*. Path to the collision model to be used during the animation, a special *P3D* file with only a *Geometry LOD* in it. Having \"axis\" selection point in ``Memory LOD`` of this shape will make unit rotate around this point instead of their entity center.\n\n```cpp\ncollisionShape = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\Sstanistat_safe_geom.p3d\";\ncollisionShape = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\geom_Adth.p3d\";\n```"},{"heading":"collisionShapeSafe","level":5,"markdown":"**Type:** String\n\n```cpp\ncollisionShapeSafe = \"ca\\Anims\\Characters\\data\\Geom\\Sdr\\sbeh45l_safe_geom.p3d\";\n```"},{"heading":"collisionVertexPattern[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Possibly some internal requirement of the collision detection algorithm. The strings represent individual vertices (named selections in the *P3D*).\n\n```cpp\ncollisionVertexPattern[] = {\"1a\", \"2a\", \"3a\", \"4a\", \"5a\", \"6a\", \"7a\", \"8a\", \"1c\", \"2c\"};\ncollisionVertexPattern[] = {\"1a\", \"2a\", \"3a\", \"4a\", \"5a\", \"6a\", \"7a\", \"8a\", \"9a\", \"10a\", \"11a\", \"12a\", \"13a\",\n    \"14a\", \"15a\", \"16a\", \"17a\", \"18a\", \"19a\", \"20a\", \"21a\", \"22a\", \"23a\", \"24a\", \"25a\", \"26a\", \"27a\", \"28a\",\n    \"29a\", \"30a\", \"31a\", \"32a\", \"33a\", \"34a\", \"1c\", \"2c\", \"3c\", \"4c\", \"5c\", \"6c\", \"7c\", \"8c\"};\n```"},{"heading":"Combat","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nCombat = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"connectAs","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*; Not used in Arma 2:OA anymore.\n\n```cpp\nconnectAs = \"\";\n```"},{"heading":"connectFrom[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*; Not used in Arma 2:OA anymore.\n\n```cpp\nconnectFrom[] = {};\nconnectFrom[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```"},{"heading":"connectTo[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*. Defines edges in the animation graph, i.e. which animations can follow this one, once it finishes. The first pose of all animations from *connectTo* should be identical to the last pose of the current animation, otherwise see *interpolateTo*. The numeric value specifies the cost of the transition.\n\n```cpp\n//AinvPknlMstpSnonWnonDnon_medic0S\nConnectTo[] = {\"AinvPknlMstpSnonWnonDnon_medic\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic0\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic2\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic3\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic4\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_medic5\", 0.01};\n//BasicDriver\nConnectTo[] = {\"BasicDriverDying\", 1.0};\nconnectTo[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```"},{"heading":"Crouch","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, defines what happens when the *AI* crouch. There's also *PlayerCrouch*, which makes different crouching animations possible for players as opposed to *AI*.\n\n```cpp\nCrouch = \"AmovPknlMstpSnonWnonDnon\";\n```"},{"heading":"D","level":4,"markdown":""},{"heading":"default","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, defines the default state for an action.\n\n```cpp\ndefault = \"LadderRifleStatic\";\n```"},{"heading":"die","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, defines what animation/state is called when the character dies.\n\n```cpp\ndie = \"AdthPercMstpSlowWrflDnon_r05\";\ndie = \"DeadState\";\n```"},{"heading":"disableWeapons","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, and unlike *canPullTrigger*, it can prohibit the character from firing his weapon.\n\n```cpp\ndisableWeapons = 1;\n```"},{"heading":"disableWeaponsLong","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, and apparently the only time *disableWeaponsLong* differs from *disableWeapons* is when the weapon is lowered (Ctrl doubletap).\n\n```cpp\n//AmovPercMstpSlowWrflDnon\ndisableWeapons = false;\ndisableWeaponsLong = true;\n// or\ndisableWeaponsLong = 1;\n```"},{"heading":"down","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, tells what animation to play when hitting the \"*Go prone*\" key.\n\n```cpp\n//class RifleBaseStandActions\ndown = \"AmovPpneMstpSrasWrflDnon\";\n//class RifleProneActions\ndown = \"AmovPercMstpSrasWrflDnon\";\n//??\n\ndown = \"LadderRifleDownLoop\";\n```"},{"heading":"duty","level":5,"markdown":"**Type:** Float\n\n**Description:** Duty used to mean some mandatory states/actions the character had to reach, before being able to perform a certain animation. Not sure about what this does in ArmA anymore, if anything.\n\n```cpp\n//OFP config\n#define RunDuty -0.5\n#define WalkDuty -0.7\n#define RestDuty -1\n#define CrawlDuty -0.0\n#define SprintDuty 0.6\n\nduty = -1;\nduty = -0.7;\nduty = -0.5;\nduty = -0.4;\nduty = 0.1;\nduty = 0.2;\nduty = 0.25;\nduty = 0.3;\nduty = 0.4;\nduty = 0.5;\nduty = 0.6;\nduty = 2;\n```"},{"heading":"E","level":4,"markdown":""},{"heading":"enableAutoActions","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*. In Arma 2 there's a single occurrence of it being *true*: `class TestDance`.\n\n```cpp\nenableAutoActions = 1;\n```"},{"heading":"enableBinocular","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, defines whether the character can use binoculars or not.\n\n```cpp\nenableBinocular = 1;\n\nenableBinocular = false;    // class CutSceneAnimationBase\nenableBinocular = false;    // class AmovPercMrunSnonWbinDf_rfl\nenableBinocular = true;        // class AwopPknlMstpSoptWbinDnon_rfl\n```"},{"heading":"enableMissile","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, similar to *disableWeapons*. It enables/disables the firing of shoulder launched rockets (*RPGs, MANPADS*).\n\n```cpp\nenableMissile = true; //class AidlPercMstpSrasWlnrDnon_player_idleSteady01\n\nenableMissile = 1;\n```"},{"heading":"enableOptics","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, enables/disables looking down the weapon sights.\n\n```cpp\nenableOptics = 1;\n```"},{"heading":"equivalentTo","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, not sure what it does. The animation class is mostly *equivalentTo* another one, and oddly, sometimes to itself. Popular with healing, death, idle and cutscene animations.\n\n```cpp\nequivalentTo = \"\";\n\nclass AdthPercMstpSrasWrflDnon_1 : AdthPercMstpSlowWrflDnon_1 {\n    file = \"\\ca\\Anims\\Characters\\data\\Anim\\Sdr\\Dth\\Erc\\stp\\ras\\Rfl\\AdthPercMstpSrasWrflDnon_1\";\n    speed = 0.72;\n    equivalentTo = \"AdthPercMstpSrasWrflDnon_1\";\n    ...\n};\n\nequivalentTo = \"AmovPsitMstpSlowWrflDnon\";\n```"},{"heading":"EvasiveBack","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, along with *EvasiveForward*, `-Left` and `-Right`. They point to the possible evasive animations that can be triggered.\n\n```cpp\nEvasiveBack = \"AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDb\";\n```"},{"heading":"EvasiveForward","level":5,"markdown":"**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveForward = \"AmovPercMevaSlowWlnrDf\";\n```"},{"heading":"EvasiveLeft","level":5,"markdown":"**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveLeft = \"AmovPercMrunSlowWrflDf_AmovPercMevaSrasWrflDl\";\n```"},{"heading":"EvasiveRight","level":5,"markdown":"**Type:** String\n\n**Description:** See *EvasiveBack*.\n\n```cpp\nEvasiveRight = \"AmovPpneMstpSrasWrflDnon_AmovPpneMevaSlowWrflDr\";\n```"},{"heading":"F","level":4,"markdown":""},{"heading":"fast..","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, *walk..* defines the walking animations, *slow..* defines the running/jogging and *fast..* the sprinting animations.\n\nThe suffixes mean the following: **B** (backward), **F** (forward), **L** (left strafe), **R** (right strafe) and a combination of these: **RF** (45 deg. strafe), **RB** (135 deg. strafe), **LB** (225 deg. strafe) and **LF** (315 deg. strafe).\n\n```cpp\nfastB = \"AswmPercMstpSnonWnonDnon\";\nfastB = \"AmovPercMrunSrasWrflDb\";\nfastF = \"AswmPercMsprSnonWnonDf\";\nfastL = \"AswmPercMstpSnonWnonDnon\";\nfastLB = \"AswmPercMstpSnonWnonDnon\";\nfastLF = \"AswmPercMsprSnonWnonDf\";\nfastR = \"AswmPercMstpSnonWnonDnon\";\nfastRB = \"AswmPercMstpSnonWnonDnon\";\nfastRF = \"AswmPercMsprSnonWnonDf\";\n```"},{"heading":"file","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, points to the *RTM* animation file.\n\n```cpp\nfile = \"\\ca\\Anims\\Characters\\data\\Anim\\Wmn\\cts\\erc\\stp\\non\\non\\ActsPercMstpSnonWnonDnon_MarianQ_shot5.rtm\";\n```"},{"heading":"FireNotPossible","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*.\n\n```cpp\nFireNotPossible = \"AmovPpneMstpSrasWrflDnon\";\n```"},{"heading":"G","level":4,"markdown":""},{"heading":"getInCar","level":5,"markdown":"**Type:** String\n\n**Description:** *getInCar* and *getOutCar* are found in *Actions*; they define what animations to call when getting into/out of a car. Similar to *getInTank*/*getOutTank*.\n\nNone of these are really used in the Arma 2 config anymore (one exception: class *LauncherKneelActions*). Instead, *getInHigh, -Medium* and *-Low* are used with their respective *getOuts*. Assigning the different *getIn* actions for each vehicle is done in *CfgVehicles*.\n\n```cpp\ngetInAction = \"GetInCar\"; //CfgVehicles\n\ngetInCar = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"GetInHigh","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInHigh = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInHigh\";\n```"},{"heading":"GetInLow","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInLow = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInLow\";\n```"},{"heading":"GetInMedium","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetInMedium = \"AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium\";\n```"},{"heading":"getInTank","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetInTank = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"getOutCar","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetOutCar = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"GetOutHigh","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutHigh = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutHigh\";\n```"},{"heading":"GetOutLow","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutLow = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutLow\";\n```"},{"heading":"GetOutMedium","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\nGetOutMedium = \"AcrgPknlMstpSnonWnonDnon_AmovPercMstpSrasWrflDnon_getOutMedium\";\n```"},{"heading":"getOutTank","level":5,"markdown":"**Type:** String\n\n**Description:** See *getInCar*.\n\n```cpp\ngetOutTank = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"H","level":4,"markdown":""},{"heading":"handGunOn","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to transition to, when the character draws it is pistol. It is not the transition animation itself, where the character brings up the pistol (and puts away his rifle/launcher if he had any), but the end result of that: character standing, aiming with the pistol.\n\n```cpp\nhandGunOn = \"AmovPercMstpSrasWpstDnon\"; //class RifleBaseLowStandActions\n\nhandGunOn = \"AmovPpneMstpSrasWrflDnon\";\n```"},{"heading":"hasCollShapeSafe","level":5,"markdown":"**Type:** Boolean\n\n```cpp\nhasCollShapeSafe = 0;\n```"},{"heading":"head","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, references *BlendAnims* class entries. Permits/forbids the character to rotate his head freely. Similar in functionality to *aiming*.\n\n```cpp\nhead = \"headDefault\";    // class Default\nhead = \"headNo\";        // class CutSceneAnimationBase\nhead = \"empty\";            // class HaloFreeFall_non\n```"},{"heading":"headDefault[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in class *BlendAnims*, defines a set of bones, with weights associated to each of them.\n\n```cpp\nheadDefault[] = {\"head\", 1, \"neck1\", 0.5, \"neck\", 0.5};\n\nheadDefault[] = {};\n```"},{"heading":"headNo[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in class *BlendAnims*, always an empty array. Serves for disabling free head movement (independent of the *RTM* animation).\n\n```cpp\nheadNo[] = {};\n```"},{"heading":"headBobMode","level":5,"markdown":"**Type:** Number\n\n**Description**\n\nValid values\n\n```cpp\nHeadBobUndef = 0\nHeadBobRaw = 1\nHeadBobBeginEnd = 2\nHeadBobAverageFrame = 3\nHeadBobStraightHorizon = 4\nHeadBobCutScene = 5\n```\n\n```cpp\nheadBobMode = 5; // Cutscene\n```"},{"heading":"I","level":4,"markdown":""},{"heading":"interpolateFrom[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*, used together with *interpolateTo* for setting up two-way interpolation rules. *interpolateFrom[]* however, seems to have fallen in disuse.\n\n```cpp\ninterpolateFrom[] = {\"TestSurrender\", 0.9, \"AdthPercMstpSlowWrflDnon_1\", 0.9};\n```"},{"heading":"interpolateTo[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*; defines edges in the animation graph which should be interpolated immediately instead of connected at the end of this animation. As with connectTo, the numeric value specifies the cost of the transition.\n\nTypically, animations will play to the end, then another animation will be played. Sometimes though, it is important to be able to just cut the current animation short, and immediately change to a different animation.\n\nA good example would be death animations: if the character is half way through \"eating a kebab\" animation and the kebab explodes in his face, he won't continue munching. Instead he will play a death animation and fall to the ground right away.\n\nTo make the cut between the two animation less visually jarring, a couple of frames of transition/interpolation is provided.\n\n```cpp\ninterpolateTo[] = {\n    \"AinvPknlMstpSlayWrflDnon\", 0.01,\n    \"AinvPknlMstpSlayWrflDnon_1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_1\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_2\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_3\", 0.01,\n    \"AinvPknlMstpSnonWnonDnon_4\", 0.01,\n    \"AdthPknlMstpSnonWnonDnon_inventory\", 0.1\n};\n```"},{"heading":"interpolateWith[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*, disused.\n\n```cpp\ninterpolateWith[] = {\"BasicDriver\", 0.02};\n```"},{"heading":"interpolationRestart","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, true mostly for transition animations.\n\n```cpp\ninterpolationRestart = false;    // Default\ninterpolationRestart = true;    // DefaultDie\ninterpolationRestart = 2;\n```"},{"heading":"interpolationSpeed","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\ninterpolationSpeed = 200;    // AidlPercMstpSrasWrflDnon_aiming01, AdthPercMstpSrasWrflDnon_rS0\ninterpolationSpeed = 30.5;    // AmovPercMstpSlowWrflDnon_player_idleSteady01\ninterpolationSpeed = 6;        // Default\ninterpolationSpeed = 0.5;    // AmovPknlMstpSrasWrflDnon_AmovPercMsprSrasWrflDf_2\ninterpolationSpeed = 0.1;    // AinjPfalMstpSnonWrflDnon_carried_Up\n```"},{"heading":"J","level":4,"markdown":""},{"heading":"JumpOff","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, disused.\n\n```cpp\nJumpOff = \"\";\n```"},{"heading":"L","level":4,"markdown":""},{"heading":"ladderOff","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder.\n\n```cpp\nladderOff = \"AmovPercMstpSnonWnonDnon\";\n```"},{"heading":"ladderOffBottom","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder, having reached the bottom of it.\n\n```cpp\nladderOffBottom = \"LadderRifleDownOff\";\n```"},{"heading":"ladderOffTop","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when letting go of the ladder, having reached the top of it.\n\n```cpp\nladderOffTop = \"LadderRifleTopOff\";\n```"},{"heading":"ladderOnDown","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when getting onto the bottom of the ladder.\n\n```cpp\nladderOnDown = \"LadderRifleOn\";\n```"},{"heading":"ladderOnUp","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, defines what animation to switch to when getting onto the top of the ladder.\n\n```cpp\nladderOnUp = \"LadderRifleOn\";\n```"},{"heading":"leaning","level":5,"markdown":"**Type:** String\n\n**Description:** Found in both *Actions* and *States*, references *BlendAnims* class entries. Defines how much each bone/bodypart should be influenced when leaning.\n\nLeaning, similar to aiming, is not an animation played back from a file. It's procedural, if you will, and so needs extra setting up in the config to look it is best.\n\n```cpp\nleaning = \"leaningDefault\";        // Default\nleaning = \"aimingLying\";        // AmovPpneMstpSrasWrflDnon_injured\nleaning = \"empty\";                // class AmovPpneMrunSlowWrflDf - disables leaning while prone\n```"},{"heading":"leaningCorrectionAngleBeg","level":5,"markdown":"**Type:** Float\n\n**Description:** Not used in Arma 2, appearing only once in ArmA config, where both *leaningCorrectionAngleBeg* and *leaningCorrectionAngleEnd* are zero.\n\n```cpp\nleaningCorrectionAngleBeg = 0;\nleaningCorrectionAngleEnd = 0;\n```"},{"heading":"leaningFactorBeg","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*, *leaningFactorBeg* sets how much influence leaning has at the start of an animation, while *leaningFactorEnd* takes care of the end. If the two values differ, leaning is blended in or out during the animation.\n\n```cpp\nleaningFactorBeg = 1;        // StandBase\nleaningFactorEnd = 1;\n\nleaningFactorBeg = 0;        // SprintBaseDf\nleaningFactorEnd = 0;\n\nleaningFactorBeg = 0.5;        // AmovPknlMstpSrasWlnrDnon - limited (half) leaning with launcher\nleaningFactorEnd = 0.5;\n\nleaningFactorBeg = 0.75;    // AmovPercMwlkSlowWrflDf - limited leaning while walking with rifle raised\nleaningFactorEnd = 0.75;\n\nleaningFactorBeg = 1;        // amovpercmstpsraswrfldnon_amovpercmstpsraswlnrdnon\nleaningFactorEnd = 0.5;\n\nleaningFactorBeg = 1;        // AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon\nleaningFactorEnd = 0;        // -transition betwen a state with full leaning to one where leaning is forbidden-\n```"},{"heading":"leaningFactorEnd","level":5,"markdown":"**Type:** Float\n\n**Description:** See above.\n\n```cpp\nleaningFactorEnd = 0.75;\n```"},{"heading":"leaningFactorZeroPoint","level":5,"markdown":"**Type:** Float\n\n**Description:** Appears only once in both ArmA & Arma 2, no variation across *States* or *Actions*.\n\n```cpp\nleaningFactorZeroPoint = -1;\n```"},{"heading":"leanLRot","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *Actions*, sets the amount of lean possible and the angle of leaning.\n\nWith a value of `1`, the character will lean about `70` degrees off vertical, looking like it just broke it is back, so the more reasonable amount to lean is about half of that. Doctor's orders.\n\n```cpp\nleanLRot = 0;        // NoActions, RifleProneActions\nleanLRot = 0.5;        // RifleBaseLowStandActions\nleanLRot = 0.57;    // CivilStandActions\n```"},{"heading":"leanLShift","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *Actions*. In addition to tilting the upper body during leaning, it is also possible to move it into the lean.\n\nTypical values are very small, anything else will produce excessive deformations of the model.\n\n```cpp\nleanLShift = 0;        // class RifleProneActions\nleanLShift = 0.01;    // class RifleBaseLowStandActions\nleanLShift = 0.07;    // class CivilStandActions\n```"},{"heading":"leanRRot","level":5,"markdown":"**Type:** Float\n\n**Description:** See leanLRot.\n\n```cpp\nleanRRot = 0.57;\n```"},{"heading":"leanRShift","level":5,"markdown":"**Type:** Float\n\n**Description:** See leanLShift.\n\n```cpp\nleanRShift = 0.01;\n```"},{"heading":"leftHandIKBeg","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, appeared in ArmA, complemented/superseded in Arma 2 by *leftHandIKCurve[]*.\n\nThese properties set whether at the beginning and end of the animation, *IKs* for both arms are enabled or not.\n\n*left/right-HandIKCurve[]* allows for a more complex and detailed control of *FK/IK* (see below for more details) blending.\n\nTypical uses:\n\n```cpp\nleftHandIKBeg = true;\nleftHandIKCurve[] = {1};\nleftHandIKEnd = true;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {};\nleftHandIKEnd = false;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {0, 1, 0.075, 0, 0.725, 0, 0.8, 1};\nleftHandIKEnd = false;\n\nleftHandIKBeg = false;\nleftHandIKCurve[] = {0.05, 1, 0.125, 0, 0.6, 0, 0.675, 1};\nleftHandIKEnd = true;\n```"},{"heading":"leftHandIKEnd","level":5,"markdown":"**Type:** Boolean\n\n**Description:** See above.\n\n```cpp\nleftHandIKEnd = 0;\n```"},{"heading":"leftHandIKCurve","level":5,"markdown":"**Type:** Array\n\n**Description:** As the name suggests, this array describes the curve controlling [FK](https://en.wikipedia.org/wiki/Forward_kinematics)/[IK](https://en.wikipedia.org/wiki/Inverse_kinematics) blending on the left arm.\n\nEvery pair of values describe a 2D point, with the first number representing *time* (horizontal) and the second being the *weight* (vertical).\n\n*Time* ranges from `0-1`, where `0` is animation start, `0.5` is half way, and `1` the end.\n\n*Weight* also ranges from `0-1`, where `0` means animation is taken from *RTM* file (*FK*) and *IK* is disabled, `0.6` meaning a `40%` blend of *FK* and `60%` *IK*, and `1` is `100%` *IK*.\n\nLet me interpret the last example below (the long one). The curve has 4 points `[0, 1], [0.05, 0], [0.95, 0]` and `[1, 1]`. When the animation starts playing, the *IK* takes full effect, but is gradually disabled by point `#2`. It stays disabled until point `#3` towards the end, when it is *weight* starts climbing again. At the end, at point `#4`, the *IK* is fully on again, overriding all *FK*.\n\n```cpp\nleftHandIKCurve[] = {};                                    // IK OFF.\nleftHandIKCurve[] = {1};                                // IK fully ON.\nleftHandIKCurve[] = {0.1, 1, 0.15, 0};                    // IK fully ON one-tenth into the animation, but disabled soon afterwards.\nleftHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};        // IK ON at start, but soon disabled. Re-enabled towards the end.\n```"},{"heading":"legs","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, references *BlendAnims* class entries. Used for deforming the character on sloping surfaces (hillside, stairs, etc..).\n\nMost of the *RTM* animations have been recorded in a motion capture studio, on a perfectly flat floor. When standing on a slope, the character would normally have one foot sinking into the ground, while the other would be hanging in the air. So BI devised this system for deforming the bodyparts that have contact with the ground.\n\nWhen standing upright, it is just the legs. When prone, it is most, if not the whole body. Like everything else in *BlendAnims*, it is a list of bones, with weights (amount of influence) associated.\n\n```cpp\nlegs = \"legsDefault\";        // Deafault\nlegs = \"legsNo\";            // DefaultDie\nlegs = \"legsLyingAiming\";    // AmovPpneMstpSrasWrflDnon_injured\nlegs = \"Wholebody\";            // AmovPpneMstpSnonWnonDnon\nlegs = \"empty\";                // HaloFreeFall_non\n```"},{"heading":"legsDefault[]","level":5,"markdown":"**Type:** Array\n\n**Description:** *BlendAnims* class entry. See above.\n\n```cpp\nlegsDefault[] = {\"LeftUpLeg\", 0.9, \"LeftUpLegRoll\", 0.9, \"LeftLeg\", 0.95, \"LeftLegRoll\", 0.95, \"LeftFoot\", 1, \"LeftToeBase\", 1,\n    \"RightUpLeg\", 0.9, \"RightUpLegRoll\", 0.9, \"RightLeg\", 0.95, \"RightLegRoll\", 0.95, \"RightFoot\", 1, \"RightToeBase\", 1};\n```"},{"heading":"legsNo[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Always empty *BlendAnims* class entry, see *legs* above. Disables all deformations on contact with land. Death animations are a typical case.\n\n```cpp\nlegsNo[] = {};\n```"},{"heading":"limitFast","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *Actions*, used for limiting the *slow..* movements, although the names suggests a limiting of *fast..*.\n\n```cpp\nlimitFast = 0.5;    // RifleProneActions_injured\nlimitFast = 2;        // SwimmingActions\nlimitFast = 4;        // class CivilStandActions, SwimmingFastActions\nlimitFast = 5;        // NoActions\nlimitFast = 5.5;    // RifleBaseLowStandActions\n```"},{"heading":"limitGunMovement","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*.\n\n```cpp\nlimitGunMovement = false;    // HealBase\nlimitGunMovement = false;    // SprintBaseDf\nlimitGunMovement = 0.1;        // AmovPercMstpSnonWnonDnon\nlimitGunMovement = 0.3;        // AovrPercMstpSlowWrflDf\nlimitGunMovement = 0.6;        // AmovPercMwlkSlowWpstDnon_transition\nlimitGunMovement = true;    // Default\n```"},{"heading":"looped","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets whether the current animation should start over once it is finished. Loop, that is.\n\n```cpp\nlooped = 1;\n```"},{"heading":"Lying","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to play for the \"*Prone with weapon*\" situation. *CivilLying* is the unarmed equivalent.\n\n```cpp\nLying = \"AmovPpneMstpSnonWnonDnon\";\n```"},{"heading":"M","level":4,"markdown":""},{"heading":"medic","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used by a medic when triggering the \"*Heal..*\" action.\n\n```cpp\nmedic = \"AinvPknlMstpSlayWrflDnon_medic\";\n```"},{"heading":"O","level":4,"markdown":""},{"heading":"onLadder","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, flags the animation as ladder related.\n\n```cpp\nonLadder = 1;\n```"},{"heading":"onLandBeg","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*. If at the start of the animation the character is lying on the ground (prone), *onLandBeg* equals *true*. If at the end of the animation the character is lying on the ground (prone), *onLandEnd* equals *true*. Otherwise false. Not sure what these flags are used for.\n\n```cpp\n//Default\nonLandBeg = false;\nonLandEnd = false;\n\n//AmovPercMstpSrasWrflDnon_AmovPpneMstpSrasWrflDnon\nonLandBeg = false;\nonLandEnd = true;\n\n//AmovPpneMstpSrasWrflDnon_AmovPercMstpSrasWrflDnon\nonLandBeg = true;\nonLandEnd = false;\n\n//AmovPpneMstpSrasWrflDnon_AmovPpneMstpSrasWpstDnon\nonLandBeg = true;\nonLandEnd = true;\n\n//AdthPpneMstpSnonWnonDnonB\nonLandEnd = true;\nonLandBeg = false;\n```"},{"heading":"onLandEnd","level":5,"markdown":"**Type:** Boolean\n\n**Description:** See above.\n\n```cpp\nonLandEnd = 1;\n```"},{"heading":"P","level":4,"markdown":""},{"heading":"PlayerCrouch","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Crouch*, except it applies only to player characters and not *AI*.\n\n```cpp\nPlayerCrouch = \"AmovPknlMstpSrasWlnrDnon\";\n```"},{"heading":"PlayerProne","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Lying*, except it applies only to player characters and not *AI*.\n\nSets the animation to be used when going prone.\n\n```cpp\nPlayerProne = \"AmovPpneMstpSnonWnonDnon\";\n```"},{"heading":"PlayerStand","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Similar to *Stand*, except it applies only to player characters and not *AI*.\n\nSets the animation to be used when standing upright.\n\n```cpp\nPlayerStand = \"AwopPercMstpSoptWbinDnon_rfl\";\n```"},{"heading":"predictSpeedCoef","level":5,"markdown":"**Type:** Float\n\n**Description:** Disused in Arma 2, appears once in ArmA.\n\n```cpp\npredictSpeedCoef = 1;\n```"},{"heading":"preload","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets whether to load the animation file (*RTM*) into memory at game start, or just read it from disc when there's a demand for it.\n\nAll animations are set not to preload in Arma 2, while in ArmA some often used animations like running for example, are preloaded.\n\n```cpp\npreload = 1;\n```"},{"heading":"primaryActionMaps[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Outlines the main action groups.\n\n```cpp\nprimaryActionMaps[] = {\"DeadActions\", \"LauncherKneelActions\", \"BinocProneRflActions\", \"BinocProneCivilActions\",\n    \"RifleProneActions\", \"PistolProneActions\", \"RifleKneelActions\", \"PistolKneelActions\", \"RifleStandActions\",\n    \"PistolStandActions\", \"RifleLowStandActions\", \"SwimmingActions\", \"CivilStandActions\",\n    \"BinocKneelRflActions\", \"BinocStandRflActions\"};\n```"},{"heading":"putDown","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Sets the animation to be used when the character puts something on the ground (e.g. dropping some equipment).\n\n```cpp\nputDown = \"AmovPpneMstpSrasWrflDnon\";\n```"},{"heading":"PutDownEnd","level":5,"markdown":"**Type:** Float\n\n**Description:** Not used in the ArmA series.\n\n```cpp\nPutDownEnd = \"\";\n```"},{"heading":"R","level":4,"markdown":""},{"heading":"reload...","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Default actions for reloading are *reloadMagazine*, *reloadAT*, *reloadMGun* and *reloadMortar*, but addon makers can add their own if they wish.\n\nThese actions are invoked in *CfgWeapons* and *CfgMagazines* via **reloadAction**. Most reload actions for upright stances in Arma 2 are bone-masked, they are configured as *Gestures*.\n\n```cpp\n//game\nreloadAT = \"LauncherReloadKneel\";\nreloadMagazine[] = {\"WeaponMagazineReloadStand\", \"Gesture\"};\nreloadMGun = \"AmovPpneMstpSrasWrflDnon\";\nreloadMortar = \"AmovPpneMstpSrasWrflDnon\";\n\n//custom\nreloadM1Garand[] = {\"M1GarandMagazineReloadStand\", \"Gesture\"};\n//CfgWeapons/CfgMagazines\nreloadAction = \"ManActReloadM1Garand\";\n```"},{"heading":"relSpeedMax","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\nrelSpeedMax = 0.6;\n```"},{"heading":"relSpeedMin","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*.\n\n```cpp\nrelSpeedMin = 0.5;\n```"},{"heading":"rightHandIKBeg","level":5,"markdown":"**Type:** Boolean\n\n**Description:** See *leftHandIKBeg*.\n\n```cpp\nrightHandIKBeg = 1;\n```"},{"heading":"rightHandIKEnd","level":5,"markdown":"**Type:** Boolean\n\n**Description:** See *leftHandIKBeg*.\n\n```cpp\nrightHandIKEnd = 1;\n```"},{"heading":"rightHandIKCurve","level":5,"markdown":"**Type:** Array\n\n**Description:** See *leftHandIKCurve*.\n\n```cpp\nrightHandIKCurve[] = {};                                // IK OFF.\nrightHandIKCurve[] = {1};                                // IK fully ON.\nrightHandIKCurve[] = {0.1, 1, 0.15, 0};                    // IK fully ON one-tenth into the animation, but disabled soon afterwards.\nrightHandIKCurve[] = {0, 1, 0.05, 0, 0.95, 0, 1, 1};    // IK ON at start, but soon disabled. Re-enabled towards the end.\n```"},{"heading":"S","level":4,"markdown":""},{"heading":"salute..","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, *salute* points to the animation the character will transition to when saluting, while *saluteOff* points to the animation the character should return to when done saluting.\n\nNeither of these properties point to the transition animations, where the character is actually raising/lowering it is arm.\n\n```cpp\nsalute = \"AmovPercMstpSlowWrflDnon_salute\";\nsaluteOff = \"AmovPercMstpSlowWrflDnon\";\n```"},{"heading":"showHandGun","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets pistol visibility on/off.\n\n```cpp\nshowHandGun = 1;\n```"},{"heading":"showItemInHand","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets item (*binoculars*, specifically) visibility on/off.\n\n```cpp\nshowItemInHand = 1;\n```"},{"heading":"showItemInRightHand","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets item (*binoculars*, specifically) visibility on/off in the right hand. Looks it is not working on Arma 3.\n\n```cpp\nshowItemInRightHand = 0;\n```"},{"heading":"showWeaponAim","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, sets whether *crosshairs* are displayed or not for given animation.\n\n```cpp\nshowWeaponAim = 1;\n```"},{"heading":"sitDown","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to transition to when the sitting action is triggered. Not the *to* and *from* transition animations, but the sitting idle.\n\n```cpp\nSitDown = \"\";    // RifleStandSaluteActions_Idle - can't sit down while saluting\nsitDown = \"AmovPsitMstpSlowWrflDnon\";\n```"},{"heading":"skeletonName","level":5,"markdown":"**Type:** String\n\n**Description:** Sets the skeleton to be used.\n\n```cpp\nskeletonName = \"OFP2_ManSkeleton\";\nskeletonName = \"WomanSkeleton\";\n```"},{"heading":"slow..","level":5,"markdown":"**Type:** String\n\n**Description:** See *fast..*.\n\n```cpp\nslowB = \"AmovPercMrunSlowWlnrDb\";\nslowF = \"AmovPercMevaSlowWlnrDf\";\nslowL = \"AmovPercMrunSlowWlnrDl\";\nslowLB = \"AmovPercMrunSlowWlnrDbl\";\nslowLF = \"AmovPercMrunSlowWlnrDfl\";\nslowR = \"AmovPercMrunSlowWlnrDr\";\nslowRB = \"AmovPercMrunSlowWlnrDbr\";\nslowRF = \"AswmPercMrunSnonWnonDf\";\n```"},{"heading":"soundEdge..","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States*. Deprecated forms *soundEdge1*, *soundEdge2* (used very little in ArmA, not at all in Arma 2).\n\nUsed for sound timing during an animation. If there's a sound file associated with the animation, it won't play right away as the animation starts. It will play when and as many times as *soundEdge* tells it to.\n\n```cpp\nsoundEdge[] = {0.5, 1};                    // Default\nsoundEdge[] = {0.45};                    // DefaultDie\nsoundEdge[] = {0.25, 0.5, 0.75, 1};        // AmovPercMwlkSlowWrflDf - timing of the 4 footstep sounds\n\n//old\nsoundEdge1 = 0.5;\nsoundEdge2 = 1;\n```"},{"heading":"soundEnabled","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, enables/disables sounds being played with the animation.\n\n```cpp\nsoundEnabled = 1;\n```"},{"heading":"soundOverride","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, points to the actual sound to play with the animation.\n\n```cpp\nsoundOverride = \"bodyfall\";\n```"},{"heading":"speed","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*, sets the animation playback speed.\n\nNote that speed depends on animation length, on the number of frames it contains.\n\nFor example, setting speed at `0.5` for a 50 frames long animation will result in it playing at about 25 frames per second. Setting the same speed for a 300 frame animation, will result in that animation playing much faster. *Speed*, seems to me more akin to duration.\n\n```cpp\nspeed = 0.00833333;\n```"},{"heading":"stand","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, see *playerStand*.\n\n```cpp\nStand = \"AmovPknlMstpSrasWrflDnon\";\n```"},{"heading":"startSwim","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when starting to swim.\n\n```cpp\nstartSwim = \"AswmPercMrunSnonWnonDf\";\n```"},{"heading":"stop","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when stopping.\n\n```cpp\nstop = \"AinvPknlMstpSlayWrflDnon\";\n```"},{"heading":"stopRelaxed","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when stopping with weapon lowered (\"*SAFE*\" behaviour).\n\n```cpp\nStopRelaxed = \"AidlPercMstpSlowWrflDnon01\";\n```"},{"heading":"stopSwim","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when ending swimming.\n\n```cpp\nstopSwim = \"AmovPercMstpSnonWnonDnon\";\n```"},{"heading":"strokeFist","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *Actions*, not really used. Has been around since OFP if I remember correctly, probably an attempt to introduce fist fighting, but then abandoned.\n\n```cpp\nStrokeFist = \"\";\n```"},{"heading":"strokeGun","level":5,"markdown":"**Type:** String\n\n**Description:** Similar to *strokeFist* above, attempt at melee fighting but not used.\n\n```cpp\nstrokeGun = \"AmovPercMstpSnonWnonDnon\";\n```"},{"heading":"T","level":4,"markdown":""},{"heading":"takeFlag","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when taking the flag during a *CTF* match.\n\n```cpp\ntakeFlag = \"AinvPknlMstpSlayWrflDnon\";\n```"},{"heading":"terminal","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *States*, flags the animation as being \"*terminal*\". *True* for death animations, *false* for everything else.\n\n```cpp\nterminal = 1;\n```"},{"heading":"testDriver","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, along with *testDriverOut* and *TestGunner*. \"*Test*\" suggests it might have been just that, an experiment during development.\n\n```cpp\n//class ManActions\nTestDriver = \"BasicDriver\";\nTestDriverOut = \"BasicDriverOut\";\nTestGunner = \"BasicSittingGunner\";\n```"},{"heading":"testDriverOut","level":5,"markdown":"**Type:** String\n\n**Description:** See above.\n\n```cpp\nTestDriverOut = \"BasicDriverOut\";\n```"},{"heading":"testGunner","level":5,"markdown":"**Type:** String\n\n**Description:** See *testDriver*.\n\n```cpp\nTestGunner = \"BasicSittingGunner\";\n```"},{"heading":"throwGrenade","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when throwing a grenade.\n\n```cpp\nthrowGrenade = \"AmovPercMrunSlowWpstDf_AmovPercMstpSrasWpstDnon_gthThrow\";\n```"},{"heading":"transitionsDisabled[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsDisabled[] = {};\n```"},{"heading":"transitionsInterpolated[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsInterpolated[] = {};\n```"},{"heading":"transitionsSimple[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Empty array in both ArmA & Arma 2. No apparent use for it.\n\n```cpp\ntransitionsSimple[] = {};\n```"},{"heading":"treated","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, points to the animation to be used when being healed by a medic. Medic will be using animation defined in *medic*.\n\n```cpp\ntreated = \"AinvPknlMstpSlayWrflDnon_healed\";\n```"},{"heading":"turn...","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, *turnL* and *turnR* define the turning animations, while *turnLRelaxed* and *turnRRelaxed* do the same thing for the \"*relaxed*\" (weapon lowered, behaviour \"*SAFE*\") modes.\n\n```cpp\nturnL = \"AmovPercMstpSlowWrflDnon_turnL\";\nturnLRelaxed = \"AmovPercMstpSlowWrflDnon_turnL\";\nturnR = \"AmovPpneMstpSrasWrflDnon_turnR\";\nturnRRelaxed = \"AmovPpneMstpSrasWrflDnon_turnR\";\n```"},{"heading":"turnSpeed","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *Actions*, sets turning speed.\n\n```cpp\nturnSpeed = 0.1;\n```"},{"heading":"U","level":4,"markdown":""},{"heading":"untiltWeapon","level":5,"markdown":"**Type:** String\n\n**Description:** Not found in Arma 2, and not really used in ArmA either.\n\n```cpp\nuntiltWeapon = \"untiltWeaponDefault\";\n```"},{"heading":"untiltWeaponDefault[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Same as above.\n\n```cpp\nuntiltWeaponDefault[] = {};\n```"},{"heading":"up","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*. Together with *down* sets up what looks like a standing/kneeling/prone toggle. Which I don't think is used in the game's current control scheme.\n\n```cpp\nup = \"AmovPknlMstpSlowWrflDnon\";    // RifleBaseLowStandActions\nup = \"AmovPknlMstpSrasWrflDnon\";    // RifleBaseStandActions\nup = \"AmovPknlMwlkSlowWrflDf\";        // RifleLowStandActionsWlkF\nup = \"AmovPercMstpSrasWrflDnon\";    // RifleKneelActions\n```"},{"heading":"upDegree","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *Actions*, seems to define the \"*upright*\" stance for each action group.\n\nThese \"*ManPos..*\" things only appear in root `/Dta/bin/config.bin`, where they get some equivalent numbers, and that's it. Important to get right though when creating custom action sets.\n\n```cpp\nupDegree = 0;                        // NoActions\nupDegree = -1;                        // NoActions, ParachuteFreeFall\nupDegree = \"ManPosDead\";            // DeadActions\nupDegree = \"ManPosStand\";            // RifleBaseLowStandActions\nupDegree = \"ManPosCombat\";            // RifleBaseStandActions\nupDegree = \"ManPosCrouch\";            // RifleKneelEvasiveActions, RifleKneelActions\nupDegree = \"ManPosLying\";            // RifleProneActions\nupDegree = \"ManPosHandGunStand\";\nupDegree = \"ManPosHandGunCrouch\";\nupDegree = \"ManPosHandGunLying\";\nupDegree = \"ManPosNoWeapon\";        // CivilStandActions\nupDegree = \"ManPosLyingNoWeapon\";\nupDegree = \"ManPosWeapon\";            // LauncherKneelActions\nupDegree = \"ManPosBinocStand\";        // BinocStandLnrActions\nupDegree = \"ManPosSwimming\";\nupDegree = \"ManPosBinocStand\";\nupDegree = \"ManPosBinoc\";\nupdegree = \"ManPosCrouch\";\n//enum in root config\nenum {\n    MANPOSNOWEAPON = 12,\n    CPCOMMANDER = 2,\n    CMD_STAY_BACK = 4,\n    CMD_MOVE = 12,\n    CMD_FIRE = 27,\n    CMD_WATCH = 28,\n    CMD_REPLY_FAIL = 64,\n    CMD_REPORT = 68,\n    ...\n    MANPOSHANDGUNSTAND = 9,\n    ...\n    MANPOSCROUCH = 6,\n    ...\n    MANPOSHANDGUNLYING = 5,\n    MANPOSHANDGUNCROUCH = 7,\n    MANPOSBINOCSTAND = 14,\n    ...\n    MANPOSDEAD = 0,\n    MANPOSCOMBAT = 8,\n    ...\n    MANPOSBINOCLYING = 2,\n    MANPOSSTAND = 10,\n    MANPOSSWIMMING = 11,\n    COMPARTMENT3 = 4,\n    CMD_ACTION = 2,\n    CMD_FORM_ECHLEFT = 16,\n    ...\n    MANPOSWEAPON = 1,\n    ...\n    MANPOSLYING = 4,\n    ...\n    MANPOSLYINGNOWEAPON = 3,\n    MANPOSBINOC = 13,\n    ...\n};\n```"},{"heading":"useFastMove","level":5,"markdown":"**Type:** Boolean\n\n**Description:** Found in *Actions*. *True* for action sets containing \"*Evasive*\" in the classname, so an obscure flag of some sorts in ArmA. Not used in any significant way in Arma 2.\n\n```cpp\nuseFastMove = 1;\n```"},{"heading":"V","level":4,"markdown":""},{"heading":"variantAfter[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States* when there are several variations on the same animation (usually idles) that can be played randomly.\n\nMinimum, average and maximum - these are the inputs for the random number generator, similar to how trigger timeout/countdown works in the *mission editor*.\n\n```cpp\nvariantAfter[] = {5, 10, 20};    // Default\nVariantAfter[] = {5, 5, 5};        // AinvPknlMstpSnonWnonDnon_medic0S\nvariantAfter[] = {2, 3, 5};        // AidlPercMstpSlowWrflDnon_player_0S\nvariantAfter[] = {0, 0, 0};        // AidlPercMstpSrasWrflDnon_aiming0S\n```"},{"heading":"variantsAI[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Found in *States* when there are several variations on the same animation (usually idles) that can be played randomly.\n\nIt lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.\n\nThe sum of these numbers is always `1`.\n\n```cpp\n//Default\nvariantsAI[] = {\"\"};\n//AidlPercMstpSnonWnonDnon\nvariantsAI[] = {\"AidlPercMstpSnonWnonDnon01\", 0.01,\n    \"AidlPercMstpSnonWnonDnon02\", 0.01,\n    \"AidlPercMstpSnonWnonDnon03\", 0.01,\n    \"AidlPercMstpSnonWnonDnon04\", 0.01,\n    \"AidlPercMstpSnonWnonDnon05\", 0.01,\n    \"AidlPercMstpSnonWnonDnon06\", 0.01,\n    \"AidlPercMstpSnonWnonDnon07\", 0.01,\n    \"AidlPercMstpSnonWnonDnon08\", 0.01,\n    \"AidlPercMstpSnonWnonDnon_idleSteady04\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady03\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady02\", 0.23,\n    \"AidlPercMstpSnonWnonDnon_idleSteady01\", 0.23};\n//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall\nvariantsAI[] = {\"Mi17_Cargo02\", 0.4, \"Mi17_Cargo02_V1\", 0.1, \"Mi17_Cargo02_V2\", 0.1, \"Mi17_Cargo02_V3\", 0.1,\n    \"Mi17_Cargo02_V4\", 0.1, \"Mi17_Cargo02_V5\", 0.1, \"Mi17_Cargo02_V6\", 0.1};\n//aidlpercmstpsraswlnrdnon_S\nvariantsAI[] = {\"aidlpercmstpsraswlnrdnon_1\", 0.333, \"aidlpercmstpsraswlnrdnon_2\", 0.333, \"aidlpercmstpsraswlnrdnon_3\", 0.334};\n```"},{"heading":"variantsPlayer[]","level":5,"markdown":"**Type:** Array\n\n**Description:** Same as **variantsAI[]** above, except for player characters.\n\n```cpp\nvariantsPlayer[] = {\"AdthPercMrunSlowWlnrDf_1\", 0.5, \"AdthPercMrunSlowWlnrDf_2\", 0.5};\n```"},{"heading":"visibleSize","level":5,"markdown":"**Type:** Float\n\n**Description:** Found in *States*, probably used for calculating how visible a character is for the *AI*, based on his stance/animation.\n\n```cpp\nvisibleSize = 1.00012;        // SprintBaseDf                    when sprinting more visible than..\nvisibleSize = 0.700121;        // AmovPercMstpSrasWrflDnon        ..when stopped > visible than..\nvisibleSize = 0.300122;        // AmovPknlMstpSlowWrflDnon        ..when kneeling > visible than..\nvisibleSize = 0.100123;        // AmovPpneMstpSrasWrflDnon        ..when prone.\n```"},{"heading":"W","level":4,"markdown":""},{"heading":"walk..","level":5,"markdown":"**Type:** String\n\n**Description:** See *fast..*.\n\n```cpp\nwalkB = \"AmovPercMwlkSlowWrflDb\";\nwalkF = \"AmovPercMevaSlowWlnrDf\";\nwalkL = \"AmovPercMwlkSlowWrflDl\";\nwalkLB = \"AmovPercMwlkSlowWrflDbl\";\nwalkLF = \"AswmPercMwlkSnonWnonDf\";\nwalkR = \"AmovPpneMrunSnonWnonDr\";\nwalkR = \"AswmPercMstpSnonWnonDnon\";\nwalkRB = \"AmovPercMwlkSlowWrflDbr\";\nwalkRF = \"AmovPercMwlkSlowWrflDfr\";\n```"},{"heading":"weaponOff","level":5,"markdown":"**Type:** String\n\n**Description:** The opposite of *weaponOn* below.\n\n```cpp\nweaponOff = \"AmovPercMstpSrasWrflDnon\";\n```"},{"heading":"weaponOn","level":5,"markdown":"**Type:** String\n\n**Description:** Found in *States*, and references the animation that needs to be reached when switching to *RPGs/MANPADS*.\n\n```cpp\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleBaseLowStandActions\nweaponOff = \"AmovPercMstpSrasWrflDnon\";\n\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleKneelActions\nweaponOff = \"AmovPknlMstpSrasWrflDnon\";\n\nweaponOn = \"AmovPknlMstpSrasWlnrDnon\";        // RifleProneActions\nweaponOff = \"AmovPpneMstpSrasWrflDnon\";\n```"}],"categories":["ArmA: Armed Assault: Addon Configuration","Moves","Operation Flashpoint: Editing","Operation Flashpoint: Reference Lists"],"groups":["Reference Lists"]}