# Aerial Firefighting An advanced career activity available to users in Microsoft Flight Simulator 2024 is that of flying **aerial firefighting flights**. There are two types of firefighting activities available (for **planes** only): - ##### Initial Attack On this activity you will face the challenge of maneuvering through columns of dense smoke to reach critical areas of a burning forest mega-fire. - ##### Extended Attack With this activity you will be expected to get to the source of a fire before it gets out of control, drop your payload of water to extinguish an area of the fire, and then refill from any nearby bodies of water before returning to battle the flames again. {{< image-center src="images/5_Content_Config/Careers/Firefighting/firefighting_1_example.png" alt="Example Of An Aircraft On A Firefighting Activity" >}}   If you wish your aircraft to be used on these activities you will need a **preset** that has been appropriately set up as part of the [Modular SimObject,](../modular-simobjects/modular-simobjects/) as explained below. For more information on the various other career activities and how to prepare your aircraft, please see here: - [Career Activities](career-activities/)     ### Aerial Firefighting Constraints When it comes to setting up planes for the available firefighting activities, there are a few requirements that must be fulfilled (they requirements are identical for both types of activity): - The plane will need to have setup the `navigation_graph_pilot.cfg`. Note that for the **Extended Attack** activities, the aircraft *must* include a `COPILOT` node. See [here](general-career-information/spawn-pilot-transversal/) for more information. - The aircraft will need to have the `ApronWithoutCovers.flt` file (as explained [below](#flt_files)). - The `targeted_specializations` must include at least one, or both, of the following dressing codes: - `FIR-INA` - Initial attack missions - `FIR-EXA` - Extended attack missions - The `object_class` must be "*Airplane*". - The `operating_status` must be either "*in\_service*" or "*experimental*". - The aircraft cannot be flagged as [military](../cfg-files/aircraft.cfg/#military). - The aircraft cannot be flagged as [premium](../cfg-files/aircraft.cfg/#premium). - The plane `ui_max_range` must be greater than 1. - The plane should have either **wheeled** landing gear (but not [big-wheels](general-career-information/career-additional-information/#big-wheels)), and/or **floats**. - The plane must have at *least* 1 scoop, 1 tank and 1 door (see the [Setting Up The Liquid Dropping System](aerial-firefighting/#setup_liquid_drop) section, below, for more information). There cannot be more than **4** doors, however, and each door *must* be correctly referenced by a corresponding tank. - Each door requires a matching **reference point** as defined in the `reference_points.cfg`. - The **Initial Attack** activity requires that the water capacity of the plane should be between 1 and 4000 liters (1056 {{< glossterm >}}gallons{{< /glossterm >}} approximately). The **Extended Attack** activity requires that the water capacity of the plane should be greater than 4000 liters. In both cases, this is calculated as the sum of the capacities of all the defined [Tanks](../cfg-files/system/modular-liquid-dropping-system-information/#Tanks).     Following these constraints will give the aircraft the `FIR_Cabin` type. See here for more information: - [Note On Cabin Codes](general-career-information/career-additional-information/#cabin-codes)     ### Mission Flow The flow for a **firefighting** mission is as follows: {{< image-center src="images/5_Content_Config/Careers/Guidelines/career_flowchart_5_firefighting.png" alt="Mission Flow Chart" >}} This flow will also require the aircraft to be setup for - and follow - the [General Career Mode Requirements](general-career-information/general-career-mode-requirements/).     ### SimVars The SimVars given below are those that will be used and checked to ensure that the firefighting mission is performed correctly. These SimVars rely on the [Liquid Dropping System](../cfg-files/systems.cfg/#LiquidDroppingSystem) being setup correctly in the aircraft, so you should ensure that all the required components are included and correct.   {{< table-wrapper >}} | SimVar | Description | |---------------------------------------|-----------------------------------------------------------------------------------------------------------------| | `LIQUID DROPPING DOOR OPEN VALUE` | This is used to check if the drop doors are open. | | `LIQUID DROPPING TANK TOTAL CAPACITY` | This is used to check the total capacity of the tanks(s). | | `LIQUID DROPPING TANK TOTAL WEIGHT` | This is used to check the quantity of water in the tank(s). | | `LIQUID DROPPING TOTAL DROPPED FLOW` | This is used to check the quantity of water that has been dropped at any given moment. | | `LIQUID DROPPING DOOR OPEN TARGET` | This is used to set the status of drop doors (open / closed). | | `LIQUID DROPPING SCOOP OPEN TARGET` | This is used to set the status of scoop (open / closed). | | `LIQUID DROPPING SCOOP OPEN VALUE` | This is used to check if the scoop is open. | | `PLANE ALT ABOVE GROUND` | This is used to check whether the aircraft is close enough to the water for the scoop to actively intake water. | {{< /table-wrapper >}}     ### Setting Up The Liquid Dropping System Aerial firefighting requires an aircraft that can pickup, store and then release large quantities of water. For this to happen the aircraft will need to have a correctly set **Liquid Dropping System**, which is setup in the [systems.cfg](../cfg-files/systems.cfg/) using [The SimObject Editor](../../devmode/editors/simobject-editor/the-simobject-editor/). Your aircraft will need at least 1 each of the following:   - A `Tank.N` to hold the water that the aircraft will scoop/drop. Tanks can be positioned using [The Edition Gizmo](../../devmode/the-edition-gizmo/) in the simulation from the SimObject editor, and once added, they will need to reference the attached **scoops** and **doors**. Note that if any of the door indices are incorrect then the aircraft will *not* be valid for firefighting.   - A `Scoop.N` which will be used to fill up the tank when flying low over a body of water. When creating the scoop parameter, you will need to add a **contact point index**. This is the `point.N` index of a contact point of the *type* "liquid dropping system scoop", and this should be positioned at the approximate point where the scoop opening will be when **open**. Each scoop will need to be added into one of the defined **tank** hashmaps. Each scoop will need to be part of a component in the model XML, and you can use the `ASOBO_Liquid_Dropping_Scoop_Animation_Template` to set them up correctly.   - A `Door.N` for releasing the water from the tank when over a fire. Note that this doesn't have to be *literally* a "door" - although it can be - but is simply one or more parts of the aircraft where water from the tank can be output. So nozzles, hatches, etc... would all need to be assigned a "door". Since doors do not have a position directly associated with them, a `reference_points.cfg` will be needed to set the position and direction of the doors, which can be done very easily using [The Edition Gizmo](../../devmode/the-edition-gizmo/): ![Positioning The Door Reference Points In The Simulation](images/5_Content_Config/Careers/Firefighting/firefighting_2_refdoor.png)This file needs the same number of reference points as defined doors, and the `Name` parameter of each point **must** be `pos_door_N`, where *N* is the door number + 1 (doors are created with an initial index of 0, but for the reference point CFG the index starts at 1, so `pos_door_1` references `Door.0`). Each door will also need to be added into one of the defined **tank** hashmaps. Each door will need to be part of a component in the model XML, and you can use the `ASOBO_Liquid_Dropping_Door_Animation_Template` to set them up correctly. Note that these reference points are *not* related to how the VFX will spawn, but are instead required to have an accurate simulation of the water being dropped. VFX is controlled through **model behaviors**, as explained below.   Once you have the liquid dropping system setup you will then need to create and setup instrumentation in the cockpit to control the system. As an example this is from one of the planes included in the simulation: {{< image-center src="images/5_Content_Config/Careers/Firefighting/firefighting_3_example.png" alt="Example Of Firefighting Aircraft Controls" >}} How you set it up will depend on the aircraft and systems involved, but you'll need to use the [Liquid Dropping System](../../programming-apis/key-events/aircraft-general-systems/#liquid-dropping) key events, like `LIQUID_DROPPING_SYSTEM_DOOR_SET` and `LIQUID_DROPPING_SYSTEM_SCOOP_SET` and you'll find the different [Interaction Templates](../models/modelbehaviors/usingbehaviours/templates/important-templates/#interactions) useful as well.     ### VFX Setup For the aircraft to show the water being dropped you will need to set up the VFX for the aircraft. This is done in the model XML for the part with the doors. In this XML you need to add a component that uses either the `ASOBO_ET_FX_WATERDROP_LARGE` template (for bigger aircraft with larger tanks) or the `ASOBO_ET_FX_WATERDROP_SMALL` (for aircraft with smaller tanks) template, something like this: ``` xml pos_door_1 doorIndex, 0 (A:LIQUID DROPPING DOOR FLOW:0, Pounds per hour) 0 > (A:LIQUID DROPPING DOOR OPEN VALUE:0, Percent over 100) 0 > and pos_door_1 doorIndex, 0 (A:LIQUID DROPPING DOOR FLOW:0, Pounds per hour) 0 > (A:LIQUID DROPPING DOOR OPEN VALUE:0, Percent over 100) 0 > and ``` In these templates you need to supply the following information:   - `` - This is *either* the name of the reference point (as defined in the `reference_points.cfg` file) associated with the water drop door, *or* a helper node on the actual model itself where the door is.   - `` - Here you give a value to the `doorIndex` parameter. This needs to be the **index** (not the *name*) of the water drop door.   - `` - The code shown should be copied and used "as is", with the exception of the index given to the two SimVars (`LIQUID DROPPING DOOR FLOW` and `LIQUID DROPPING DOOR OPEN VALUE`), which should match the door index given to the `doorIndex` parameter.     ### FLT Files When a user starts a firefighting activity they will not be going through the usual [Preflight checks](general-career-information/preflight/), and so they will need to have an `ApronWithoutCovers.flt` file in the aircraft preset for the activity *instead of* the `Apron.flt`. This file should be set up like a regular apron FLT file, however you should ensure that the following parameters and sections are setup correctly:   - Section `[SimVars.0]` must have the parameter `SimOnGround` set to `true`. - All *defined* `[Covers]` need to be set to `false` (see [here](general-career-information/general-career-mode-requirements/#general-flt-file-requirements) for more information). - Section `[Controls.0]` must have the parameter `ParkingBrake` set to 100.00 (if the aircraft has a parking brake). - Aircraft electrics must be turned off. - The aircraft flight parameters (trim, flaps, etc...) should be set for an **idle** aircraft.