Squadrons and pilots - dcs-liberation/dcs_liberation GitHub Wiki

Pilots

Each aircraft in the mission will be assigned one pilot. Each pilot belongs to a squadron. Pilots are assigned to aircraft using the flight edit dialog (later they will be assignable when creating flights).

Note: Multi-crew aircraft get only one pilot. Non-pilot air crews are not modeled in Liberation. Other player slots will still be available in game.

Pilots can be killed. When the aircraft the pilot is flying is destroyed the pilot will be killed and a new pilot will need to replace them in the squadron. Completing missions will increase the skill level of AI pilots.

Pilots can be sent on leave to prevent them from being automatically assigned to new missions. Pilots already assigned to missions that are sent on leave will not be unassigned, but will not be used next turn.

Pilots cannot be manually created once the game has started. New pilots will be created automatically as they are needed.

Optionally (off by default), new pilots will be recruited to the squadron each turn at a limited rate (currently one per squadron) if the squadron is not full. Pilots are a limited resource just like aircraft.

Players

Each pilot can be set as either a player or AI pilot. Instead of creating client slots in flights as in previous versions of Liberation, pilots are set as players and those pilots are assigned to flights.

By default player pilots cannot be killed. This can be toggled in the difficulty options. The aircraft is still lost when the player's aircraft is destroyed.

Preference of player pilots during automatic mission planning is selectable as an option in the settings menu.

image

The options are:

Option Behavior
Disabled Automatic mission planning is disabled. Players perform all mission planning.
Never assign player pilots The automatic mission planner will never assign pilots to missions. Players plan their own missions.
No preference Players and AI pilots are chosen with equal preference. Players will not necessarily be assigned to missions.
Prefer player pilots Player pilots will be assigned to the flights of their squadron before AI pilots are used.

The Automatically generated packages with players are scheduled ASAP checkbox causes any player-assigned missions generated by the automatic mission planner to be scheduled ASAP.

Skill level

AI pilots gain skill after completing missions. Every four missions completed confers one increase in skill level from the base level chosen in the campaign settings.

Names

Pilot names are generated randomly when the squadron has exhausted all of its pre-defined names. The generated names are localized based on the locales field of the faction definition. For example:

{
    "name": "France and Germany",
    "locales": ["fr_FR", "de_DE"],
}

Names will be localized if the chosen locale has a faker.providers.person listed on https://faker.readthedocs.io/en/master/locales.html.

If the faction has no locales defined, names will be generated using en_US (the default for the name generator library).

Squadrons

Squadrons define a group of pilots that fly a single type of aircraft and perform a predefined set of missions. The types of missions that are automatically assigned during mission planning can be chosen in the squadron menu. The squadron has a fixed livery.

Squadrons cannot be added after the game has started.

Optionally (off by default) squadrons have a maximum number of pilots (currently 24). Once a squadron reaches its limit no new pilots will be recruited until pilots are either killed or sent on leave. Each understaffed squadron will replenish pilots at a limited rate (currently four pilots per squadron) at the end of each turn. Both the limit and the replenishment rate are configurable in the game settings.

Predefined squadrons

Predefined squadrons are loaded from resources\squadrons\*\*.yaml (for built-in squadrons) and from <DCS saved games directory>\Liberation\Squadrons\*\*.yaml (for user-defined squadrons).

The directory name within the squadrons directory is not important; it's just to allow organizing the squadron files. For example:

<squadron directory>
    hornet/
        VFA-113.yaml
        VFA-122.yaml
    skyhawk/
        VFA-113.yaml

Here is an example squadron definition file:

---
name: VMFA-323
nickname: Death Rattlers
country: USA
role: Strike Fighter
aircraft: F/A-18C Hornet (Lot 20)
bases:
  carrier: true
  shore: true
livery: VMFA-323
mission_types:
  - Anti-ship
  - BAI
  - BARCAP
  - CAS
  - DEAD
  - Escort
  - Intercept
  - OCA/Aircraft
  - OCA/Runway
  - SEAD
  - SEAD Escort
  - Strike
  - Fighter sweep
  - TARCAP
pilots:
  - Wedge Antilles
  - Tycho Celchu
players:
  - Corran Horn

The country and aircraft fields will be used to match squadrons that are found against the squadrons being used. The country should be spelled exactly as it would be in a faction file. Factions that use Combined Joint Task Forces nations will have access to all squadrons with matching aircraft.

The role field is currently non-functional. The role field will later be shown in the UI as information for the player.

The mission_types field determines which mission types to assign to the squadron. The spelling of each entry in mission_types should match the spelling of the mission that is used in the Liberation UI. If the squadron specifies a mission type that the aircraft is not capable of, an error will be emitted in the log and the incompatible mission type will not be used for the squadron.

Note: The mission_types field is no longer used as of DCS Liberation 7. All squadrons will be capable of all mission types the airframe is capable of, and the auto-assignable mission types are defined by the campaign.

The livery field, if set, will be the livery used by all aircraft of this squadron. Default liveries included in DCS should match the quoted portion of the livery name in https://github.com/pydcs/dcs/blob/master/dcs/planes.py. For example, the name for the HAF 330 Thunder livery for a Greek F-16 is HAF_ 330_Thunder

Note: You can also use any custom liveries that you have downloaded to your Saved Games folder. In this case, the livery field should match the folder name (NOT the file name) of your selected livery.

The pilots field defines AI pilot names that will be used before generating random pilot names for this squadron.

The players field operates the same as the pilots field, but the created pilots will be created as player pilots.

The aircraft field should match the variant name of the aircraft as specified in the unit data file. For more information about variant names, see https://github.com/dcs-liberation/dcs_liberation/wiki/Custom-Factions#aircraft-and-ground-unit-names.

The bases field is new in DCS Liberation 5.0 and can be used to override the default bases that the squadron will operate from. The defaults are set based on the aircraft type:

Aircraft type shore carrier lha
Helicopter true true true
LHA capable true false true
Carrier capable false true false
Other true false false

This can be used for creating Marine Hornet squadrons as in the example above.

Generated squadrons

If the campaign includes an aircraft type that does not have predefined squadrons available, a squadron with a randomised name will be generated for it.