Helicopter flying

## Flight Basics

**Prior to flying on a live server, it is highly recommended to practice flying on Jensen's range or in the helicopter training. Once comfortable with the controls, transition to live servers. On live servers, it is best to stick with logistics or scouting. Both of these are very important roles and help the team.**

Helicopters in squad have a peculiar flight model. It can be helpful for first time pilots to expect the helicopter to fly less like a helicopter, but more analogous to a fixed wing aircraft or a VTOL. They have a significant amount of inertia which can make significant corrections take time. This is especially important to remember; your helicopter will not react instantly.

## Flight - Taking off and Hovering

* To enter into the pilots seat, the player must first have a Pilot or Lead Pilot kit. It is generally recommended to start your own squad as a pilot and take the lead pilot kit.
* Once in the pilot seat, the player must hold down the Turn Vehicle Engine On/Off Key (Default `E`) for a half-second to start up the engine.
* After a 15 second warmup, the helicopter will now react to the player's input.
* Holding down the cockpit zoom key (Default `Left-Shift`) will zoom the player's view onto the panel that shows the helicopters stats.
	+ Note - On some ultrawide settings, some pilots will not be able see the cockpit panel without holding down shift. This is a bug.
* The collective (the bar on the left side) controls the rate at which the helicopter ascends. At 45% collective, the helicopter will hover at its current altitude (provided the helicopter is not pitched or rolled from a neutral axis.)
	+ It's important to note that 45% collective will only maintain a hover if the pitch and roll are both neutral.
	+ As an example, fly straight into up at 100% collective. When reaching a sufficient altitude, lower your collective down to 45%. If the helicopter pitch or roll is adjusted slightly off neutral, you will slowly lose altitude.

## Flight - Landing

Landing is by-and-far the most difficult part of flying the helicopter. Landing quickly is a difficult skill that can take a lot of time and nuance to master.

Here is the most basic way of landing. This is by no means the fastest, but for a new player, it is the easiest to learn-

1. Identify your landing zone BEFORE APPROACHING. Attempting to wing it as a new pilot and deciding on the fly is a surefire way to crash your helicopter or worse, clip your rotors. The landing zone must be a clear area, on flat terrain, and with no hostiles.
2. As you approach your landing zone, slowing down is paramount. Reduce your collective below the hover speed (45%) and pitch your helicopter up about 10-15 degrees facing the sky. If you at max speed, it can take as much as 500 meters to slow down.
	1. As you get more comfortable flying, you can start rolling slightly to the right while pitching up, initiating a J-Hook maneuver. You should slowly ease into this maneuver as it is very easy to overcommit. If you roll too far, your pitch/roll will lock up and you will stall.
	2. The reason you roll to the right and not to the left is that the pilot seat is always on the right side, providing the most visibility to the right.
3. Once you think you are in position, use the Landing Camera (Default `C`) to verify you are in the right place. If you are **not** in the right place, **exit the landing camera and make your adjustments**.
	1. These pre-landing adjustments are critical. Foward/backward adjustments are the most difficult because the helicopter has a peculiar movement curve wherein forward or backward adjustments in pitch are over-exaggerated. A common occurrence for new pilots is to overcorrect pitching either forward or backward, which sends them further in one direction and faster than they might have expected, which leads to a feedback loop where the pilot mimics a pendulum; swinging forward and backward.
	2. A good rule of thumb is to make an adjustment that is smaller than what you think is necessary and **wait** for the helicopter to react.
	3. The landing camera should only be used at a glance for newer pilots; open it to see if you are in the right location, and then close it. Landing with the camera on means you are reacting more aggressively to the helicopter's movements.
4. Once you are in position, drop the collective down to 10% or lower to quickly decend. As you approach the ground, bring your collective up closer to 45% to slow down.
5. Once on the ground, check your instrument panel for text that reads 'LANDED' . If this text is not present, the engine cannot be turned off. Adjust the pitched/roll until this text appears.

Some notes on landing:

* 25% Collective is the minimum collective the player can have and take 0 damage when landing. Having your collective lower than this is fine to land, but unless you adjust your collective up prior to touching the ground, you may take significant damage.
* If your goal is to land, even if you take significant damage you can use the following method. Generally it is not recommended to do this due to risk, but it is a good demonstration
	1. Fly over your desired landing zone.
	2. Neutralize your helicopter so that you have no speed, pitch or roll.
		1. The speed portion is very important, any horizontal speed you have combined with striking the ground will amplify the damage taken.
	3. Set the collective to 0% and allow the helicopter to hit the ground on its own. Depending on the helicopter you are using, you will be reduced to anywhere from 25% to 40% hull.

## Joystick settings

While you can fly the helicopters with mouse and keyboard, some will find it more convenient to use a joystick.

Settings for helicopters and joysticks are in

* "Settings → Controls → Helicopter"
* "Settings → Controls → Helicopter Axes"

### Generic

By default Pitch, Roll, Yaw (Z-Axis needed) and Collective are not mapped. For Collective it seems that build-in throttle switches are supported by default. Joysticks with a seperate throttle device are reported to don't work right now.

See Changelog 2.4: *Please Note: Multiple Joysticks/Rudder Pedals/HOTAS input is not currently supported. There is currently no differentiation between device IDs. You may be able to get around this if your joystick software can combine all HOTAS axes into a single virtual input device. Full Multiple Joystick Support is planned in the future, but it will require an extensive complete overhaul to the Control Settings.*

### Logitech Extreme 3D Pro+

By default Pitch, Roll, Yaw, Collective are not mapped.

#### Custom settings

In "Settings → Controls → Helicopter Axes" change from default to:

* Collective: Tick "Flip Axix"
* Pitch: Tick "Flip Axis", Change to "Smooth", set Curve Factor to "2.2"
* Roll: Change to "Smooth", set Curve Factor to "2.2"
* Yaw: Change to "Smooth", set Curve Factor to "2.2"

### Titanwolf Vulture

By default Pitch, Roll, Yaw, Collective nothing is mapped.

#### Custom settings

In "Settings → Controls → Helicopter Axes" change from default to:

* Collective: Tick "Flip Axix"
* Pitch: Tick "Flip Axis", Change to "Smooth", set Curve Factor to "2.2"
* Roll: Change to "Smooth", set Curve Factor to "2.2"
* Yaw: Change to "Smooth", set Curve Factor to "2.2"

**Attention**: The right "Hat-Stick" can't be mapped in "Settings", but has to be configured via the config-file "input.ini" (See section Edit config file.)

```
ActionMappings=(ActionName="Helicopter_Recenter_View",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Joystick_Hat0_Y)

```

## TrackIR with FreePIE

To use the Free-look feature it has to be activated in "Settings → Controls → Joystick"

* Tick "LockFreeLook".

Then you can use the mouse to look around freely without holding `ALT`. To get your head position in real life and to map it to your pilots head (aka viewport) ingame you'll need

* a head tracking device (e.g. TrackIR, Freetrack) and
* an input emulating device (e.g. FreePIE)

In the following example, we are using TrackIR and FreePIE.

* TrackIR is a commercial head tracking input device. It has to be started first.
* FreePIE is an Open Source application for bridging and emulating input devices. It is programmable via a Python based script language.

**Attention**: You have to run FreePIE "as Administrator".

The following script will detect a running TrackIR. Load the script as file or copy & paste it. Run the script by pressing `F5` or go to the menu "Script → Run".

```
def update():
   yaw = trackIR.yaw
   pitch = trackIR.pitch

   yaw = clamp(yaw, -140, 140)
   pitch = clamp(pitch, -60, 60)

   deltaYaw = filters.delta(yaw)
   deltaPitch = filters.delta(pitch)

   if (enabled):
       mouse.deltaX = deltaYaw\*multiply
       mouse.deltaY = -deltaPitch\*multiply

		return min
	if (value >= max):
		return max
	return value

if starting:
   enabled = True
   multiply = 20
   trackIR.update += update

toggle = keyboard.getPressed(Key.Space)

if toggle:
   enabled = not enabled

```

### Some remarks on the script

* Line 5,6: Restrict Ingame-"Head"-Movement to left/right (-140°/140°) and down/up (-60°/60°) to avoid "overshooting" when looking too far in any direction. Set inactive by adding "#" at the beginning of each line.
* Line 15 - 20: "Clamp" function defined
* Line 22: Things done once after starting the script
* Line 23: Freelook is activated at start, set "True" to "False" otherwise. BTW: Mouse movement will override Freelook at any time.
* Line 24: Sensivity multiplier is 20. Mouse movement is 20 times faster than TrackIR input. (see Line 13 & 14)
* Line 27: `SPACE` will deactivate / activate Freelook. BTW: Move mouse to set ingame view at any time

### Configuration tweaking of TrackIR and FreePIE

There is a tiny lag in the freelook movement while using TrackIR and FreePIE. This may cause motion-sickness and is annoying. Tweaking the settings may help.

See TomNedry's settings as a reference.

## Edit config file

Sometimes a joystick button can't be configured via "Settings". To map such buttons you have to edit the Squad configuration file "input.ini".

**Warning**: USE AT OWN RISK! It is strongly advised to make a backup of the file in the first place.

* Be sure that Squad isn't running, as it seems that the file is read at the start of the game only.
* The file "input.ini" can be found in "%appdata%\Local\SquadGame\Saved\Config\WindowsNoEditor". To find "%appdata" open the File Explorer/Windows Explorer, type %AppData% into the address bar and hit enter.
* As "input.ini" is just a plain text file open it with your favorite text-editor (e.g. notepad++).

There are at least two sections in this file:

1. [/Script/Engine.InputSettings]

2. [/Script/Squad.SQConsole]

Put your custom key-mappings after the last line of the first section.

## Changelog related to Helicopters

### v3.3

Introduces ability to rotate, flip and move a helicopter, similar to ground vehicles

* (...) includes an update to the Vehicle Recovery System to allow helicopters (...) to be reset (...)

### v2.4

Joystick remarks on v2.4

* Experimental Joystick Support for Helicopters Update
* Added the ability to use Joystick action mappings as inputs. This is for the native support of buttons and triggers on various Joystick setups.
* Added options for keyboard-only flight bindings for helicopters.
* Added experimental hybrid controls for switching between joystick, keyboard, mouse during flight.
* Added Joystick HAT switch quick-look controls.
* Added Helicopter keybinds for picking up and dropping supplies. This currently does not work for ground vehicles. Note: these can be bound to Joystick buttons.
* Added recentering keybind for helicopter freelook.
* Joystick axes are no longer bound by default, to reduce the chance of conflicts. Players will need to manually bind their joystick axes until the feature is out of an experimental state.

Updated the Joystick Menu UI with improved presentation, and renamed many options for clarity and consistency.

* Added Free Look for helicopters while in third person (Jenson’s Range/Modded Gameplay only).
* Fixed an issue on the Joysticks menu where the “lock-free look” feature would be displayed behind the joystick curves on certain resolutions.
* Fixed Joystick settings not being able to be reset to defaults.

We appreciate any feedback pilots can provide on this experimental joystick support. We anticipate releasing a more polished version with bug fixes and more quality of life improvements in a near-future release.

If you are having issues with Helicopter flying, and you are not using a Joystick, go to Settings -> Controls -> Helicopter Axes to unbind any axes bound there.

Please Note: Multiple Joysticks/Rudder Pedals/HOTAS input is not currently supported. There is currently no differentiation between device IDs. You may be able to get around this if your joystick software can combine all HOTAS axes into a single virtual input device. Full Multiple Joystick Support is planned in the future, but it will require an extensive complete overhaul to the Control Settings.

## Obsolete

Since v2.4 joystick buttons can be mapped via "Settings → Controls → Helicopter / Helicopter Axes".

```
ActionMappings=(ActionName="CommandRadio",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Joystick_Button2)
ActionMappings=(ActionName="LocalVoice",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Joystick_Button0)
ActionMappings=(ActionName="SquadRadio",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Joystick_Button1)
ActionMappings=(ActionName="Map",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Joystick_Button3)

```