# Flightseeing And First Flight One of the activities available to users in the Microsoft Flight Simulator 2024 career mode, is to run "flightseeing" tours. These are relaxed flights that take passengers on a sightseeing tour of various important {{< glossterm >}}poi{{< /glossterm >}} around the world, giving a new perspective on famous places as they are seen from the air. The setup for the flightseeing activity is also the same as that used for the "First Flight" activity, which is an activity novice pilots can participate in and is a relaxing flight taking passengers for a flight from a local airport. 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. {{< image-center src="images/5_Content_Config/Careers/Flightseeing/flightseeing_1_example.png" alt="Example Of Aircraft Performing Flioghtseeing Activities" >}}   For more information on the various career activities and how to prepare your aircraft, please see here: - [Career Activities](career-activities/)     ### Flightseeing Constraints Aircraft that are to be used for Flightseeing (and First Flight) activities must be small in size with the following basic requirements: - The aircraft will need to have the `navigation_graph_pilot.cfg` (as explained [here](general-career-information/spawn-pilot-transversal/)). - The aircraft will need to have the `Apron.flt` *and* `ApronWithoutCovers.flt` files (as explained [below](#flt_files)). - 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 aircraft *cannot* have a **copilot**. - The aircraft `ui_max_range` must be greater than 1. - The passenger navigation graph must be set up for *at least* one passenger, up to a maximum of five (ie: between 1 and 5 nodes with the `SIT` tag, as explained below), and also have the corresponding number of `RTC_TOUR_EXTERIOR_WAIT_PAX` and `RTC_TOUR_EXTERIOR_START_PAX` nodes.   Additional constraints exist for **planes**: - The `targeted_specializations` must include the `FIF-PLN` dressing code for it to be eligible for the **first flight** missions, and/or it can include the `TOR-PLN` to be available for **flightseeing** missions. - The `object_class` must be "*Airplane*". - The plane *must* be a light aircraft with a **piston** or **turboprop** `engine_type`. - The number of engines cannot be greater than 1 (as defined by the number `Engine.N` parameters). - The aircraft complexity must also be **simple**, as explained here: [Note On Aircraft Complexity](general-career-information/career-additional-information/#complexity). - The plane *can* have **wheels** or **[big wheels](general-career-information/career-additional-information/#big-wheels)** or **floats *with* wheels**, for landing gear. - The plane *cannot* have **skis** or ***only* floats** for landing gear.   Additional constraints exist for **rotorcraft**: {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} Rotorcraft can be used for flightseeing only. First flights will **always** use a plane. {{< /callout >}} - The `targeted_specializations` must include the `TOR-ROT` dressing code. - The `object_class` must be either "*helicopter*" or "*tiltrotor*". - The rotorcraft *can* have **skids** or **wheels** for landing gear. - The rotorcraft *cannot* have **Floats**.   Following these constraints will give the aircraft the `COF_Cabin` type. See here for more information: - [Note On Cabin Codes](general-career-information/career-additional-information/#cabin-codes)     ### Mission Flow The flow for both **firstflight** and **flightseeing** missions is as follows: {{< image-center src="images/5_Content_Config/Careers/Guidelines/career_flowchart_2_firstflight.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 While not directly influencing the mission flow, the following SimVars are important for ensuring a smooth user experience without frustrations. These are what are used in the simulation code to decide whether the user should receive a penalty on their mission score or not, and as such, particular attention should be paid to ensure that these are always returning correct values.   Penalty SimVar Description **Smoothness Score** `PLANE BANK DEGREES` This is used to check the banking angle of the aircraft while performing the first flight / tour. `PLANE PITCH DEGREES` This is used to check the pitch angle of the aircraft while performing the first flight / tour. `G FORCE` This is used to check the G forces applied in the aircraft to passengers while performing maneuvers. `ROTATION VELOCITY BODY X` This is used to check the bank rotation speed of the aircraft while performing the first flight / tour. `ROTATION VELOCITY BODY Z` This is used to check the pitch rotation speed of the aircraft while performing the first flight / tour. `PLANE TOUCHDOWN NORMAL VELOCITY` This is used to check the vertical speed at touchdown of the aircraft when landing. **Sightseeing Quality** `DESIGN SPEED VS1` This is needed to compute the best speed to do the sightseeing fly around for the tour.   ### Navigation Graph Setup (All Aircraft) For all appropriate aircraft types (planes and helicopters) the `navigation_graph_passenger.cfg` file is set up the exact same:   - ##### RTC\_TOUR\_EXTERIOR\_START\_PAX This node is the node where the passenger will spawn into the world at the start of the activity. For Flightseeing and First Flight activities there is a short {{< glossterm >}}rtc{{< /glossterm >}} animation that will play of the passengers moving from this point to the `RTC_TOUR_EXTERIOR_WAIT_PAX` node, before entering the aircraft. As such there should be one of these nodes for every passenger `SIT` node, and the nodes should be placed close together but not on top of each other. These nodes should be on the **left** side of the aircraft, approximately 4m away from the corresponding `RTC_TOUR_EXTERIOR_WAIT_PAX` node, and be connected to that node with an [edge](../cfg-files/navigation_graph.cfg/#Edge).   - ##### RTC\_TOUR\_EXTERIOR\_WAIT\_PAX This node defines the end point of the introduction walking animation before the passengers enter the aircraft. There should be one of these nodes for every passenger `RTC_TOUR_EXTERIOR_START_PAX` node, and the nodes should be placed close together but not on top of each other, and you should ensure that the edges between the nodes *do not cross any other edges*. It should be a straight line from the corresponding `RTC_TOUR_EXTERIOR_START_PAX` node to this one, and this node should be placed by the side of the aircraft with enough room for the model to stand beside the apparatus without clipping into it.   The image below illustrates an "ideal" placement for the nodes mentioned above: {{< image-center src="images/5_Content_Config/Careers/Flightseeing/flightseeing_2_nodes.png" alt="Placement Of The RTC Nodes For A Flightseeing Activity" >}}   Additionally, for every `RTC_TOUR_EXTERIOR_START_PAX` there needs to be a `SIT` node in the aircraft, positioned at the feet of the seats where passengers can sit. This node is not created in the `navigation_graph_passenger.cfg`, but should exist in the navigation graph of the passenger seat **logic object**, as explained here: - [The Passenger Navigation Graph](commercial-passengers/#nav-graph)   For example, here we have two passengers entering the aircraft, and so we spawn two seat logic objects - `SEAT_C172_PAX_1` and `SEAT_C172_PAX_2` - and each one will have the `SIT` node: ``` cpp [NODE.1] name= PAX_START_1 pos = -5,-3.48502,-1.323018 pbh = 0,0,0 tag = RTC_TOUR_EXTERIOR_START_PAX projectOnGround = true [NODE.2] name= PAX_START_1 pos = -5,-3.524884,0.547803 pbh = 0,0,0 tag = RTC_TOUR_EXTERIOR_START_PAX projectOnGround = true [NODE.3] name= PAX_WAIT_1 pos = -5,-3.48502,-1.323018 pbh = 0,0,0 tag = RTC_TOUR_EXTERIOR_WAIT_PAX projectOnGround = true [NODE.4] name= PAX_WAIT_2 pos = -5,-3.524884,0.547803 pbh = 0,0,0 tag = RTC_TOUR_EXTERIOR_WAIT_PAX projectOnGround = true [NODE.5] name= SEAT_PAX_1 modelNode = ATTACH_SEAT_PAX_1 interactiveObject = SEAT_C172_PAX_1 massSection = Left_pax [NODE.6] name= SEAT_PAX_2 modelNode = ATTACH_SEAT_PAX_2 interactiveObject = SEAT_C172_PAX_2 massSection = Right_pax ; More passenger seats here if needed [MassSection.0] name = Left_pax stationLoadName = TT:MENU.PAYLOAD.PASSENGER_LEFT maxMass = 300 fillProportion = 1 [MassSection.1] name = Right_pax stationLoadName = TT:MENU.PAYLOAD.PASSENGER_RIGHT maxMass = 300 fillProportion = 1 [MainGraph] nodes= ATTACH_SEAT_PAX_1, ATTACH_SEAT_PAX_2, PAX_START_1, PAX_START_1, PAX_WAIT_2, PAX_WAIT_2 coordinate_system = relative edges = 0, 1 massSections = Left_pax,Right_pax,Copilot [EDGE.0] nodeStart = PAX_START_1 nodeEnd = PAX_WAIT_1 [EDGE.1] nodeStart = PAX_START_2 nodeEnd = PAX_WAIT_2 ```     ### FLT Files When a user starts a flightseeing activity they will be going through the usual [Preflight checks](general-career-information/preflight/), and so they will need to have the `Apron.flt` setup in the activity preset as follows:   - Section `[SimVars.0]` must have the parameter `SimOnGround` set to `true`. - All *defined* `[Covers]` need to be set to `true` (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 and engines must be turned off. - The aircraft flight parameters (trim, flaps, etc...) should be set for a **cold** and **idle** aircraft.   An additional FLT file is required - the `ApronWithoutCovers.flt` file - for those occasions when the user may skip the preflight phase and there is an RTC event, or when something causes a [Back On Track](../flt-files/back-on-track/) event after preflight. This file should be set up like a regular apron FLT file, however you should ensure that these changes are made:   - 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).   Finally you will also need to ensure that you have the `climb.flt` defined, as this will be used during the climb phase of the skydiving mission, or if there is a [Back On Track](../flt-files/back-on-track/) event that requires it. This file should be configured as follows:   - Section `[SimVars.0]` must have the parameter `SimOnGround` set to `false`. - 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 0 (if the aircraft has a parking brake). - Aircraft electrics and engines must be turned on. - The aircraft flight parameters (trim, flaps, etc...) should be set for an aircraft climbing in altitude. -