{"name":"Arma 3: Aircraft Systems","title":"Arma 3: Aircraft Systems","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_Aircraft_Systems","revid":376390,"updated":"2025-10-09T19:49:49Z","aliases":[],"markdown":"Arma 3 v1.68\n\nArma 3 Jets DLC comes with a varity of new functionalities such as:\n\n- Starting off an aircraft carrier via catapult\n- Landing on an aircraft carrier via tailhook\n- Foldable wings for aircrafts\n- Boat recovery\n\nThis page will give an overview of the needed config additions.\n\n### Aircraft Configuration\n\n#### Requirements\n\n- Compatible aircraft must have an animation for arrest/tail hook selection defined in CfgVehicles and modeled in 3D model (model.cfg)\n- Compatible aircraft must have a memory point for cable attach position\n\n#### CarrierOpsCompatability Sub-Class\n\nThis class contains all the definitions needed for the catapult and tailhook functionality to work.\n\n```cpp\nclass CfgVehicles\n{\n    class B_Plane_Fighter_01_F\n    {\n        tailHook = true;                                                                        // Allow to land on carrier\n\n        class CarrierOpsCompatability\n        {\n            ArrestHookAnimationList[] = { \"tailhook\", \"tailhook_door_l\", \"tailhook_door_r\" };    // List of animation played to animate tailhook. Defined in model.cfg (type user)\n            ArrestHookAnimationStates[] = { 0, 0.53, 1 };                                        // Tailhook animation states when down, hooked, up.\n            ArrestHookMemoryPoint = \"pos_tailhook\";                                                // TailHook memory point in plane model.p3d\n            ArrestMaxAllowedSpeed = 275;                                                        // Max speed km/h allowed for successful landing\n            ArrestSlowDownStep = 0.8;                                                            // Simulation step for calcualting how smooth plane will be slowed down.\n            ArrestVelocityReduction = -12;                                                        // Speed reduced per simulation step\n            LaunchVelocity = 300;                                                                // Speed required for take off\n            LaunchVelocityIncrease = 10;                                                        // Speed increased per simulation step\n            LaunchAccelerationStep = 0.001;                                                        // Simulation step for calcualting how smooth plane will launched from carrier catapult.\n            LaunchBarMemoryPoint = \"pos_gear_f_hook\";                                            // LaunchBar memory point\n        };\n    };\n};\n```\n\n#### AircraftAutomatedSystems Sub-Class\n\nThis class contains all definitions needed for the foldable wings to work.\n\n```cpp\nclass CfgVehicles\n{\n    class B_Plane_Fighter_01_F\n    {\n        class AircraftAutomatedSystems\n        {\n            wingStateControl = 1;                // enable automated wing state control to prevent player to take off with folded wings\n            wingFoldAnimations[] = { \"wing_fold_l\", \"wing_fold_r\", \"wing_fold_cover_l\", \"wing_fold_cover_r\" };        // foldable wing animation list\n            wingStateFolded = 1;                // animation state when folded\n            wingStateUnFolded = 0;                // animation state when un-folded\n            wingAutoUnFoldSpeed = 40;            // speed threshold when triger this feature, and unfold wings for player\n        };\n    };\n};\n```\n\n### Aircraft Carrier Configuration\n\n```cpp\nclass CfgVehicles\n{\n    class Land_Carrier_01_base_F\n    {\n        // Defines all the parts the carrier is build out of\n        multiStructureParts[] = {\n            { \"Land_Carrier_01_hull_01_F\", \"pos_hull_1\" },\n            { \"Land_Carrier_01_hull_02_F\", \"pos_hull_2\" },\n            { \"Land_Carrier_01_hull_03_1_F\", \"pos_hull_3_1\" }, { \"Land_Carrier_01_hull_03_2_F\", \"pos_hull_3_2\" },\n            { \"Land_Carrier_01_hull_04_1_F\", \"pos_hull_4_1\" }, { \"Land_Carrier_01_hull_04_2_F\", \"pos_hull_4_2\" },\n            { \"Land_Carrier_01_hull_05_1_F\", \"pos_hull_5_1\" }, { \"Land_Carrier_01_hull_05_2_F\", \"pos_hull_5_2\" },\n            { \"Land_Carrier_01_hull_06_1_F\", \"pos_hull_6_1\" }, { \"Land_Carrier_01_hull_06_2_F\", \"pos_hull_6_2\" },\n            { \"Land_Carrier_01_hull_07_1_F\", \"pos_hull_7_1\" }, { \"Land_Carrier_01_hull_07_2_F\", \"pos_hull_7_2\" },\n            { \"Land_Carrier_01_hull_08_1_F\", \"pos_hull_8_1\" }, { \"Land_Carrier_01_hull_08_2_F\", \"pos_hull_8_2\" },\n            { \"Land_Carrier_01_hull_09_1_F\", \"pos_hull_9_1\" }, { \"Land_Carrier_01_hull_09_2_F\", \"pos_hull_9_2\" },\n            { \"Land_Carrier_01_island_01_F\", \"pos_island_1\" }, { \"Land_Carrier_01_island_02_F\", \"pos_island_2\" },\n            { \"Land_Carrier_01_island_03_F\", \"pos_island_3\" },\n            { \"DynamicAirport_01_F\", \"pos_Airport\" }\n        };\n\n        class Eventhandlers\n        {\n            init = \"_this call BIS_fnc_Carrier01Init;\";                                // Initialises the carrier's functionality\n            attributesChanged3DEN = \"_this call BIS_fnc_Carrier01PosUpdate;\";        // Handles position changes when attributes are changed in Eden Editor\n            dragged3DEN = \"_this call BIS_fnc_Carrier01PosUpdate;\";                    // Handles position changes when attributes are changed in Eden Editor\n            registeredToWorld3DEN = \"_this call BIS_fnc_Carrier01EdenInit;\";        // Initialises the carrier's functionality when it's created in Eden Editor\n            unregisteredFromWorld3DEN = \"_this call BIS_fnc_Carrier01EdenDelete;\";    // Handles deletion of all parts when its deleted in Eden Editor\n        };\n    };\n};\n```","sections":[{"heading":null,"level":1,"markdown":"Arma 3 v1.68\n\nArma 3 Jets DLC comes with a varity of new functionalities such as:\n\n- Starting off an aircraft carrier via catapult\n- Landing on an aircraft carrier via tailhook\n- Foldable wings for aircrafts\n- Boat recovery\n\nThis page will give an overview of the needed config additions."},{"heading":"Aircraft Configuration","level":3,"markdown":""},{"heading":"Requirements","level":4,"markdown":"- Compatible aircraft must have an animation for arrest/tail hook selection defined in CfgVehicles and modeled in 3D model (model.cfg)\n- Compatible aircraft must have a memory point for cable attach position"},{"heading":"CarrierOpsCompatability Sub-Class","level":4,"markdown":"This class contains all the definitions needed for the catapult and tailhook functionality to work.\n\n```cpp\nclass CfgVehicles\n{\n    class B_Plane_Fighter_01_F\n    {\n        tailHook = true;                                                                        // Allow to land on carrier\n\n        class CarrierOpsCompatability\n        {\n            ArrestHookAnimationList[] = { \"tailhook\", \"tailhook_door_l\", \"tailhook_door_r\" };    // List of animation played to animate tailhook. Defined in model.cfg (type user)\n            ArrestHookAnimationStates[] = { 0, 0.53, 1 };                                        // Tailhook animation states when down, hooked, up.\n            ArrestHookMemoryPoint = \"pos_tailhook\";                                                // TailHook memory point in plane model.p3d\n            ArrestMaxAllowedSpeed = 275;                                                        // Max speed km/h allowed for successful landing\n            ArrestSlowDownStep = 0.8;                                                            // Simulation step for calcualting how smooth plane will be slowed down.\n            ArrestVelocityReduction = -12;                                                        // Speed reduced per simulation step\n            LaunchVelocity = 300;                                                                // Speed required for take off\n            LaunchVelocityIncrease = 10;                                                        // Speed increased per simulation step\n            LaunchAccelerationStep = 0.001;                                                        // Simulation step for calcualting how smooth plane will launched from carrier catapult.\n            LaunchBarMemoryPoint = \"pos_gear_f_hook\";                                            // LaunchBar memory point\n        };\n    };\n};\n```"},{"heading":"AircraftAutomatedSystems Sub-Class","level":4,"markdown":"This class contains all definitions needed for the foldable wings to work.\n\n```cpp\nclass CfgVehicles\n{\n    class B_Plane_Fighter_01_F\n    {\n        class AircraftAutomatedSystems\n        {\n            wingStateControl = 1;                // enable automated wing state control to prevent player to take off with folded wings\n            wingFoldAnimations[] = { \"wing_fold_l\", \"wing_fold_r\", \"wing_fold_cover_l\", \"wing_fold_cover_r\" };        // foldable wing animation list\n            wingStateFolded = 1;                // animation state when folded\n            wingStateUnFolded = 0;                // animation state when un-folded\n            wingAutoUnFoldSpeed = 40;            // speed threshold when triger this feature, and unfold wings for player\n        };\n    };\n};\n```"},{"heading":"Aircraft Carrier Configuration","level":3,"markdown":"```cpp\nclass CfgVehicles\n{\n    class Land_Carrier_01_base_F\n    {\n        // Defines all the parts the carrier is build out of\n        multiStructureParts[] = {\n            { \"Land_Carrier_01_hull_01_F\", \"pos_hull_1\" },\n            { \"Land_Carrier_01_hull_02_F\", \"pos_hull_2\" },\n            { \"Land_Carrier_01_hull_03_1_F\", \"pos_hull_3_1\" }, { \"Land_Carrier_01_hull_03_2_F\", \"pos_hull_3_2\" },\n            { \"Land_Carrier_01_hull_04_1_F\", \"pos_hull_4_1\" }, { \"Land_Carrier_01_hull_04_2_F\", \"pos_hull_4_2\" },\n            { \"Land_Carrier_01_hull_05_1_F\", \"pos_hull_5_1\" }, { \"Land_Carrier_01_hull_05_2_F\", \"pos_hull_5_2\" },\n            { \"Land_Carrier_01_hull_06_1_F\", \"pos_hull_6_1\" }, { \"Land_Carrier_01_hull_06_2_F\", \"pos_hull_6_2\" },\n            { \"Land_Carrier_01_hull_07_1_F\", \"pos_hull_7_1\" }, { \"Land_Carrier_01_hull_07_2_F\", \"pos_hull_7_2\" },\n            { \"Land_Carrier_01_hull_08_1_F\", \"pos_hull_8_1\" }, { \"Land_Carrier_01_hull_08_2_F\", \"pos_hull_8_2\" },\n            { \"Land_Carrier_01_hull_09_1_F\", \"pos_hull_9_1\" }, { \"Land_Carrier_01_hull_09_2_F\", \"pos_hull_9_2\" },\n            { \"Land_Carrier_01_island_01_F\", \"pos_island_1\" }, { \"Land_Carrier_01_island_02_F\", \"pos_island_2\" },\n            { \"Land_Carrier_01_island_03_F\", \"pos_island_3\" },\n            { \"DynamicAirport_01_F\", \"pos_Airport\" }\n        };\n\n        class Eventhandlers\n        {\n            init = \"_this call BIS_fnc_Carrier01Init;\";                                // Initialises the carrier's functionality\n            attributesChanged3DEN = \"_this call BIS_fnc_Carrier01PosUpdate;\";        // Handles position changes when attributes are changed in Eden Editor\n            dragged3DEN = \"_this call BIS_fnc_Carrier01PosUpdate;\";                    // Handles position changes when attributes are changed in Eden Editor\n            registeredToWorld3DEN = \"_this call BIS_fnc_Carrier01EdenInit;\";        // Initialises the carrier's functionality when it's created in Eden Editor\n            unregisteredFromWorld3DEN = \"_this call BIS_fnc_Carrier01EdenDelete;\";    // Handles deletion of all parts when its deleted in Eden Editor\n        };\n    };\n};\n```"}],"categories":["Arma 3: Editing","Introduced with Arma 3 version 1.68"],"groups":["General"]}