Skip to content
zhexu14 edited this page Nov 9, 2024 · 40 revisions

Principle

Frustrated that your home country is not a possible choice in DCS Liberation, or annoyed that an aircraft is missing in your favorite faction? Good news, you can now mod factions in liberation!

And these custom factions can be created easily with a text editor as a yaml or json file (prefer yaml for new factions).

You can find the default factions included in Liberation in the \resources\factions\ folder within the Liberation install directory. If you have created your own custom faction files and wish to place them in a more permanent location, you have the option of placing them instead in the DCS folder itself, by creating a folder call "Factions" (Liberation will read faction files from either location). This would be the same location that is listed as your "DCS Saved Game Directory" under File > Preferences in Liberation. As an example, if you are running Openbeta, it would likely be C:\users\<your username>\Saved Games\DCS.openbeta\Liberation\Factions\.

Note that until DCS Liberation 7, you will need to restart Liberation for new or updated factions to be detected.

If there is no error, your custom faction will appear in the New Game Wizard. Please note that factions saved in your DCS saved games folder will appear at the bottom of the list and not in alphabetical order.

If there is an error with the file it will not appear, please check the content of the console output, it might contain hints about the error. First, please verify the yanl/json syntax is valid.

File format

This yaml or json file should contain the following fields:

  • country : The country to be used in DCS. Careful, if it is not a valid country name in DCS, the mission generation will not work.
  • name : Name of the faction in DCS Liberation UI
  • aircrafts : List of Aircrafts available to this faction
  • awacs : List of AWACS planes available to this faction
  • tankers : List of Tankers planes available to this faction
  • frontline_units : List of units that will fight on the frontline
  • artillery_units : List of artillery that will fight on the frontline
  • infantry_units : List of infantry units that will fight on the frontline
  • logistics_units : List of units used for logistics
  • air_defense_units : List of anti air units and ewrs
  • missiles : List of missile units (not used yet)
  • requirements : List of required mods for this faction to work
  • preset_groups : List of preset ForceGroups which can be used to add multiple related units at once (will be used for complex groups like SAM Systems)
  • naval_units : List of naval units like Carriers, Destroyers or Cruisers
  • carrier_names : List of possible name for carriers (will be picked randomly if there is more than one)
  • helicopter_carrier_names : List of possible name for helicopter carriers (will be picked randomly if there is more than one)
  • has_jtac : Whether this faction has access to jtac
  • jtac_unit : Type of unit to use as JTAC.
  • doctrine : Either "modern" for modern doctrine, "coldwar" for coldwar doctrine, or "ww2" for WW2 doctrine. Doctrine controls the altitude of flights and other flight planner AI parameters.
  • building_set : Either "default" for default set, "ww2ally" for WW2 ally buildings, "ww2germany" for WW2 german building or "ww2free" for a ww2 building set that does not require the WW2 asset pack.
  • liveries_overrides : List of aircraft and liveries to set. It is possible to have multiple liveries for aircraft, and Liberation will pick one out of the list randomly. The livery must be available to the country set in order to appear. If the livery doesn't show up in Mission Editor for that country, it won't show up in your Liberation mission either. The name of the livery can be found in its description.lua (if it's not there, then use the exact name of the livery's folder).
  • unrestricted_satnav : Enable this option to allow unrestricted SATNAV in the mission. This will allow the use of GPS by non-US countries, e.g. non-US F/A-18s will be able to use GPS for alignment. This value is optional and may be either true or false. If not set this defaults to false.
  • weapons_introduction_year_overrides : Dictionary of alternate weapons introduction years to use for this faction. Keys in the dictionary should match Liberation weapons names (found in YAML files in resources/weapons). Values in the dictionary are the alternate weapon introduction years. The intended use for this functionality is to restrict a faction from using weapons until a different date, for example, Soviet client states often did not receive the most up-to-date missiles. This setting may be empty.

Note:

I highly recommend you look at the default files provided in DCS Liberation for examples. All parameters have default values, so you do not have to set them all up necessarily.

When changing a livery, if an aircraft is a Core DCS aircraft or module such as the MiG-19P, the livery must be in the Modules Liveries section and not your Saved Games folder.

It is recommended, that your faction has access to all unit types, e.g. at least one tank, one IFV, one APC and so on in order for the auto purchase option for the player and the AI to work.

Aircraft, ground unit und naval names

Ground, naval, and air units in the faction file use the name of the unit in Liberation rather than the name in DCS.

The names used are taken from the variants section of the unit info files in the resources/units directory. For example, units/aircraft/FA-18C_hornet.yaml contains the following:

variants:
  CF-188 Hornet: {}
  EF-18A+ Hornet: {}
  F/A-18C Hornet (Lot 20): {}

In this example, there are three variants of the DCS F/A-18C Hornet unit. These "variants" are name only. The DCS unit type will be the F/A-18C module, but the name in the Liberation UI will be whichever variant is named in the faction file. This allows a Spain faction to pretend that an EF-18A+ is available in DCS.

Ground units use the same format, but are located in resources/units/ground_units. The same applies to naval units which are defined in resources/units/ships

Carriers

It is important to note, that for Carriers not only the carrier is required in the "naval_units" section, but also its escorts. At least one destroyer type ship needs to be present in this section. For example a "DDG Arleigh Burke IIa", or one of the "Type 54" destroyers of the Chinese Navy.

Preset Groups

Ground and naval objectives (as opposed to front-line units) are defined using preset groups.. All available preset groups are located in resources/groups. They can be added to the faction by adding the name from the preset group in the list preset_groups. All units from the preset group will then be available to the faction. A more detailed description of the preset groups and the new layout system can be found in the corresponding wiki page.

name: Patriot # This name will be placed in the faction json
tasks:
  - LORAD
units:
  - SAM Patriot STR
  - SAM Patriot CR (AMG AN/MRC-137)
  - SAM Patriot ECS
  - SAM Patriot C2 ICC
  - SAM Patriot EPP-III
  - SAM Patriot LN
layouts:
  - Patriot Battery

Example file

Below is an example of a factions file :

{
  "country": "USA",
  "name": "US Navy 2005",
  "authors": "Fuzzle",
  "description": "<p>A modern representation of the US Navy/Marine Corps.</p>",
  "locales": [
    "en_US"
  ],
  "aircrafts": [
    "F-14B Tomcat",
    "F/A-18C Hornet (Lot 20)",
    "AV-8B Harrier II Night Attack",
    "AH-1W SuperCobra",
    "S-3B Viking",
    "SH-60B Seahawk",
    "UH-1H Iroquois"
  ],
  "awacs": [
    "E-2C Hawkeye"
  ],
  "tankers": [
    "S-3B Tanker"
  ],
  "frontline_units": [
    "M113",
    "M1043 HMMWV (M2 HMG)",
    "M1045 HMMWV (BGM-71 TOW)",
    "M1A2 Abrams",
    "LAV-25",
    "M163 Vulcan Air Defense System"
  ],
  "artillery_units": [
    "M270 Multiple Launch Rocket System"
  ],
  "logistics_units": [
    "Truck M818 6x6"
  ],
  "infantry_units": [
    "Infantry M4",
    "Infantry M249",
    "MANPADS Stinger"
  ],
  "preset_groups": [
    "Hawk",
    "Patriot"
  ],
  "naval_units": [
    "FFG Oliver Hazard Perry",
    "DDG Arleigh Burke IIa",
    "CG Ticonderoga",
    "LHA-1 Tarawa",
    "CVN-74 John C. Stennis"
  ],
  "missiles": [],
  "air_defense_units": [
    "SAM Hawk SR (AN/MPQ-50)",
    "M163 Vulcan Air Defense System",
    "M48 Chaparral"
  ],
  "requirements": {},
  "carrier_names": [
    "CVN-71 Theodore Roosevelt",
    "CVN-72 Abraham Lincoln",
    "CVN-73 George Washington",
    "CVN-74 John C. Stennis",
    "CVN-75 Harry S. Truman"
  ],
  "helicopter_carrier_names": [
    "LHA-1 Tarawa",
    "LHA-2 Saipan",
    "LHA-3 Belleau Wood",
    "LHA-4 Nassau",
    "LHA-5 Peleliu"
  ],
  "has_jtac": true,
  "jtac_unit": "MQ-9 Reaper",
  "doctrine": "modern",
  "liveries_overrides": {
    "F-14B Tomcat": [
      "VF-142 Ghostriders"
    ],
    "F/A-18C Hornet (Lot 20)": [
      "VMFA-251 high visibility"
    ],
    "AV-8B Harrier II Night Attack": [
      "VMAT-542"
    ],
    "AH-1W SuperCobra": [
      "Marines"
    ],
    "UH-1H Iroquois": [
      "US NAVY"
    ]
  }
}

Annex - Possible Aircraft

Warning: this list is probably incomplete and wrong. It is not kept up to date when Liberation changes. If you want the truth you have to look at the YAML files shipped with the version of Liberation you're using.

  • A-4E Skyhawk
  • A-10A Thunderbolt II
  • A-10C Thunderbolt II (Suite 7)
  • A-10C Thunderbolt II (Suite 3)
  • A-20G Havoc
  • Boston Mk.III
  • A-50
  • AH-1J SeaCobra
  • AH-1W SuperCobra
  • AH-64A Apache
  • AH-64D Apache Longbow
  • AJS-37 Viggen
  • An-26B
  • An-30M
  • AV-8B Harrier II Night Attack
  • B-1B Lancer
  • B-17G Flying Fortress
  • Fortress Mk.III
  • B-52H Stratofortress
  • Bf 109 K-4 Kurf\xFCrst
  • C-17A
  • C-101CC Aviojet
  • C-130
  • CH-47D
  • CH-53E
  • E-2C Hawkeye
  • E-3A
  • F-4E Phantom II
  • F-4EJ Kai Phantom II
  • F-4F Phantom II
  • Phantom F.3
  • F-5E Tiger II
  • F-14A Tomcat (Block 135-GR Late)
  • F-14B Tomcat
  • F-15C Eagle
  • F-15J Eagle
  • F-15E Strike Eagle
  • F-16A
  • F-16CM Fighting Falcon (Block 50)
  • F-2A
  • *F-22A Raptor
  • F-86F Sabre
  • F-117A Nighthawk
  • F/A-18C Hornet (Lot 20)
  • EF-18A+ Hornet
  • CF-188 Hornet
  • Fw 190 A-8 Anton
  • Fw 190 D-9 Dora
  • C-130J-30 Super Hercules
  • I-16 Ishak
  • IL-76MD
  • IL-78M
  • J-11A Flanker-L
  • JAS 39 Gripen A/G
  • JAS 39 Gripen
  • FC-1 Fierce Dragon
  • JF-17 Thunder
  • Ju 88 A-4
  • Ka-50 Hokum
  • KC-135 Stratotanker
  • KC-130
  • KC-135 Stratotanker MPRS
  • KJ-2000
  • L-39ZA Albatros
  • Mirage 2000C
  • Mi-8MTV2 Hip
  • Mi-24P Hind-F
  • Mi-24V Hind-EMi-24V Hind-E
  • Mi-26
  • Mi-28N Havoc
  • MiG-15bis Fagot
  • J-6A
  • MiG-19P Farmer-B
  • J-7B
  • MiG-21bis Fishbed-N
  • MiG-23ML Flogger-G
  • MiG-23MLD Flogger-K
  • MiG-25PD Foxbat-E
  • MiG-25RBT Foxbat-B
  • MiG-27K Flogger-J2
  • MiG-29A Fulcrum-A
  • MiG-29G Fulcrum-A
  • MiG-29S Fulcrum-C
  • MiG-31 Foxhound
  • Mirage 2000-5
  • MQ-9 Reaper
  • OH-58D Kiowa Warrior
  • P-47D-30 Thunderbolt (Late)
  • Thunderbolt Mk.II (Mid)
  • P-47D-30 Thunderbolt (Early)
  • Thunderbolt Mk.II (Early)
  • P-47D-40 Thunderbolt
  • Thunderbolt Mk.II (Late)
  • Mustang Mk.IV (Late)
  • P-51D-30-NA Mustang
  • Mustang Mk.IV (Early)
  • P-51D-25-NA Mustang
  • RQ-1A Predator
  • S-3B Tanker
  • S-3B Viking
  • SA 342L Gazelle
  • Gazelle AH.1
  • SA 342M Gazelle
  • SA342Minigun
  • SA 342M Gazelle Mistral
  • SH-60B Seahawk
  • Spitfire LF Mk IX
  • Spitfire LF Mk IX (Clipped Wings)
  • Su-17M4 Fitter-K
  • *Su-22M4 Fitter-K
  • Su-24M Fencer-D
  • Su-24MK Fencer-D
  • Su-24MR
  • Su-25 Frogfoot
  • Su-25T Frogfoot
  • Su-27 Flanker-B
  • Su-30 Flanker-C
  • Su-30MKK Flanker-G
  • J-15 Flanker X-2
  • Su-33 Flanker-D
  • Su-34 Fullback
  • Su-57 Felon
  • Tornado GR4
  • Tornado IDS
  • Tu-22M3 Backfire-C
  • Tu-95MS Bear-H
  • Tu-142 Bear-F
  • Tu-160 Blackjack
  • UH-1D Iroquois
  • UH-1H Iroquois
  • UH-60A
  • WingLoong-I
  • Yak-40
Clone this wiki locally