Custom campaigns - dcs-liberation/dcs_liberation GitHub Wiki

Please see version.py for the correct campaign version number when creating/updating campaigns.

Campaigns in DCS Liberation can be modified using the mission editor. Each campaign is defined by a YAML file to provide metadata, and a DCS mission file (.miz file) to set up the theater.

The included campaigns can be modified, or new campaigns can be added to the resources/campaigns directory of the Liberation install.

DCS Liberation must be restarted after campaign changes are made. Campaign changes only affect new games; ongoing campaigns will not be affected by changes to the campaign data.

If the campaign does not appear in the New Game wizard, there is likely an issue in the YAML file. Check the console window or log file for errors.

Campaign changes in the dev branch

Breaking campaign changes to do not get documented on the wiki immediately, but will always be listed in the notes next to CAMPAIGN_FORMAT_VERSION in game/version.py.

Descriptor file

The campaign uses a YAML file to describe some metadata. To create a new campaign, add a YAML file (such as mycampaign.yaml) to resources\campaigns.

This YAML file defines the following fields (unless otherwise stated, fields are required):

  • name: The name of the campaign that will be shown in the New Game wizard.

  • theater: The map for the campaign (either: Caucasus, Persian Gulf, Nevada, Normandy, Syria or The Channel).

  • authors: The authors of the campaign that will be shown in the New Game wizard.

  • description: A description of the campaign that will be shown in the New Game wizard.

  • version: The version of the campaign format this campaign was built for. This supports a UI hint in the new game wizard to warn users about campaigns that were built for an incompatible version of the game.

    Note that this field is not the DCS Liberation version, but the version of the campaign file format. The latest version is defined by CAMPAIGN_FORMAT_VERSION in game/version.py. See the top of this guide for the format version appropriate for current releases of Liberation.

    If version is not set or is "0", the campaign is from an unknown version of the game and will be marked as incompatible in the new game wizard.

  • recommended_player_faction: (Optional) The recommended player faction (will be automatically selected by default on the faction selection page). As of campaign version 10.6 this can also include an in-line definition of a campaign-specific faction. See Operation Allied Sword for an example.

  • recommended_enemy_faction: (Optional) The recommended enemy faction (will be automatically selected by default on the faction selection page). As with the player faction, this can also be an in-line definition of a campaign-specific faction.

  • recommended_start_date: (Optional) The recommended start date for the campaign in YYYY-MM-DD format. This field can optionally include a start time to set the time for turn 1. E.g. 2004-01-07 06:00:00. If the time is omitted, the campaign will start at a random hour in the middle of the day.

  • recommended_player_money: (Optional) The recommended player budget as integer. Default=2000.

  • recommended_enemy_money: (Optional) The recommended enemy budget as integer. Default=2000.

  • recommended_player_income_multiplier: (Optional) The recommended player income multiplier as float. Default=1.0.

  • recommended_enemy_income_multiplier: (Optional) The recommended enemy income multiplier as float. Default=1.0.

  • miz: The name of the miz file (in the same resources\campaigns directory) that describes the campaign.

  • performance: How much performance your campaign need to run smoothly (3 for biggest scenarios that will have huge impact on game performance, 0 for the smallest, performance-friendly scenarios)

  • squadrons: Defines the default squadron configuration at the beginning of the campaign. Explained in the next section.

  • control_points: Defines additional control point properties. Explained below (search for "Control point properties").

  • advanced_iads: (Optional, Default: false) Defines if the campaign supports the advanced iads functions using Comms, Power and CommandCenters (values: true | false)

  • iads_config: (Optional) Defines the configuration of the IADS Network used in the campaign. Description found here: IADS Configuration

Squadron configuration

In DCS Liberation 5 campaigns define the starting squadron configuration for each coalition using the squadrons field of their campaign description. This field has the following format:

squadrons:
  BASE_NAME_OR_ID:
    - primary: PRIMARY_TASK
      secondary: SECONDARY_TASKS
      size: SQUADRON_SIZE
      aircraft:
        - PREFERRED_AIRCRAFT_1
        - PREFERRED_AIRCRAFT_2
        ...
    ...
  ...
  • BASE_NAME_OR_ID: The name of the base (in the case of a FOB, LHA, or CV) as defined by the group in the campaign miz file, or the ID number of the airfield as defined by pydcs. For example, the ID of Anapa-Vityazevo is 12. Refer to the pydcs source for airbase ID numbers.

  • PRIMARY_TASK: Defines the primary task type for the squadron. If none of the preferred aircraft are available, a squadron will be generated using an aircraft that is capable of at least the primary task type. The allowed values here are the same as the values of the task types in FlightType found in https://github.com/dcs-liberation/dcs_liberation/blob/develop/game/ato/flighttype.py (the same as the name of the mission type shown in the Liberation UI).

  • SECONDARY_TASKS: Defines secondary tasks that the squadron will be allowed to perform if the squadron is capable of them. This can be either the literal strings any, air-to-air, or air-to-ground, or a list of specific task types. This property is optional. If not specified the auto-planner will only assign those squadrons to the primary task type.

  • SQUADRON_SIZE: The size of the squadron. This is both the maximum size of the squadron and the size of the squadron at the start of the game. The default is 12. Reduce or increase the size of the squadron as desired, but make sure that there is enough parking for every aircraft at each base.

    If your campaign starts with only a small amount of parking available to the player but you want players to be able to bring in more aircraft as they capture bases, create on off-map spawn to hold those squadrons so they can transfer into the theater later. See the ferry_only control point property.

  • PREFERRED_AIRCRAFT: A list of either aircraft type names (using the same names as custom factions), or a list of squadron names. Each name will be tried in order and the first option valid for the coalition will be selected. If no preferred aircraft are compatible with the coalition, a squadron will be automatically generated based on PRIMARY_TASK.

For a complete example, see the Black Sea campaign description.

When choosing preferred aircraft, although the property is optional, it is best to pick at list at least one aircraft that is valid for the default faction configuration of your campaign to ensure that your campaign's out-of-the-box behavior works as you expect. You can list any aircraft here if you want to cater to non-default factions. For example, if your default faction for the player is USA 2005 but you want to provide good defaults for Russia, format the squadron info in the following format. You can see in the picture how the two squadrons both have an alternate aircraft defined. The first aircraft on the list is always tried first, followed by the rest in order. You can define more than 2 if you wish to.

Screenshot 2023-03-16 074259

Not every airbase needs squadrons. Use the positioning, quantity, and roles of each squadron to control the size and pace of your campaign. You don't need to provide a squadron for every aircraft type, but in general you should ensure that a squadron is capable of the major task types (BARCAP, CAS, SEAD, Transport, AEW&C, and Refueling). Players can customize their squadrons at game start, so it is most important that you set up your default squadrons the way that makes the most sense for your campaign.

A best practice to follow is to set up one base per side as a transit hub. This is preferably a large airfield near the rear of the conflict (not easily captured or destroyed), that has the ability to produce ground units (has a factory), has a cargo aircraft squadron, and optionally has a port. Depending on the location of this base it may also be a good home for AEW&C and refueling squadrons (and a BARCAP squadron to defend those other squadrons).

Control point properties

This field defines properties of the control point that are not defined directly in the miz. The field has the following format:

control_points:
  BASE_NAME_OR_ID:
    ferry_only: FERRY_ONLY
  ...
  • FERRY_ONLY: Set to true if this control point should not be used to sortie missions other than ferry. This is useful if you need an off-map location for holding reserve squadrons that the player can bring in after capturing additional aircraft parking, but you do not want those squadrons to be used directly from this base.

IADS configuration

Liberation can automatically generate the IADS network for you but if you want to have more control about the network and which assets are connected with each other it is possible to define the whole IADS network in the campaign.yaml. The iads configuration will only be used when the campaign supports the advanced iads (set advanced_iads to true) and the checkbox to use the Advanced mode is checked during campaign generation.

To define the iads network in the campaign.yaml one has to add all connections to the iads_config property. Every primary node which should participate to the network has to be added to the list with the exact Group Name used in the campaign.miz.

Primary nodes are:

  • SAM
  • EWR
  • Command Center
  • Naval Unit (Carrier)

AWACs are not required to be defined. They are added automatically.

Secondary nodes which should not be added to that list as primary node:

  • Connection Nodes
  • Power Sources

These secondary nodes will be added as a list to the primary node which they are connected to. Example of such a connection where the primary node SAM1 has a connection to the secondary nodes ConnectionNode1 and PowerSource1:

iads_config:
  - SAM1: # Group name of the primary Node (SAM, EWR or Command Center) used in the campaign.miz
    - ConnectionNode1 # All connected secondary nodes (Comms, Power) as list
    - PowerSource1 # Exact name of the group used in the campaign.miz otherwise it will not be recognized

Every primary node can have 0..N connections (Comms, Power Source, Point Defense) which have to be added as a list to the primary node with the exact group name used in the campaign.miz. If no connections are added to a primary node it will participate to the IADS Network without requiring Comms or Power (equal to the functionality of the Basic mode). It is not possible to connect two Connection Nodes with each other. Every connection has to be between one Primary Node (see above) and a non-Primary Node.

Example of the IADS Configuration used in the Golan Heights campaign:

version: "10.2" # Campaign Version 10.2 allows the advanced iads network config
advanced_iads: true # Campaign has connection_nodes / power_sources / command_centers
iads_config:
  - Aircraft Carrier # A naval group participating to the IADS network without any connections
  - Naval Group # Naval Group
  - Golan North-100: # Group name of the SAM, EWR or Command Center used in the campaign.miz
    - IADS_CN2 # All connected nodes (Comms, Power, PointDefense)
    - IADS_PS4 # Exact name of the connected group used in the campaign.miz
    - IADS_PS3
  - Golan North-11:
    - IADS_CN2
    - IADS_PS3
  - Golan North-139:
    - IADS_PS2
    - IADS_CN6
  ...

How the IADS Network works is described over here: IADS Network

Common issues with a custom campaign yaml file and their solutions

'air-to-ground' is not a valid FlightType

image

The following tasks can only be set as secondary tasks, not primary ones:

  • air-to-air
  • air-to-ground

Incorrect:

    - primary: air-to-ground
      secondary: any
      aircraft:
        - VFA-113

Correct:

    - primary: SEAD
      secondary: air-to-ground
      aircraft:
        - VFA-113

'primary'

image

The yaml file contains a dash before 'secondary' or other field which is not 'primary'.

Incorrect:

    - primary: SEAD
    - secondary: air-to-ground
      aircraft:
        - VFA-113

Incorrect:

    - primary: SEAD
      secondary: air-to-ground
    - aircraft:
        - VFA-113

Correct:

    - primary: SEAD
      secondary: air-to-ground
      aircraft:
        - VFA-113

<<class 'game.theater.controlpoint.Carrier'>: Naval-1>

image

The yaml file doesn't have squadrons defined.

'NoneType' object is not iterable

image

The campaign yaml file contains a squadron with an 'aircraft' block, but no aircraft (or squadrons).

Incorrect:

    - primary: SEAD
      secondary: air-to-ground
      aircraft:
    - primary: BAI
      secondary: any
      aircraft:
        - VMFA-251

Correct:

    - primary: SEAD
      secondary: air-to-ground
      aircraft:
        - VFA-113
    - primary: BAI
      secondary: any
      aircraft:
        - VMFA-251

'Cannot find ControlPoint named Carrier'

image

Incorrect:

# Stennis object in the .miz file is called "Blue CV"
  Carrier:
    - primary: BARCAP
      secondary: air-to-air
      aircraft:
        - F-14B Tomcat
    - primary: BARCAP
      secondary: any
      aircraft:
        - F-14B Tomcat

Correct:

# Stennis object in the .miz file is called "Blue CV"
  Blue CV:
    - primary: BARCAP
      secondary: air-to-air
      aircraft:
        - F-14B Tomcat
    - primary: BARCAP
      secondary: any
      aircraft:
        - F-14B Tomcat

Designing campaigns in the mission editor

When creating a campaign it may be easiest to start with an existing campaign in the same theater and modify it to suit your needs. If starting from scratch, ensure that Combined Joint Task Forces Blue and Combined Joint Task Forces Red are assigned to the blue and red coalitions respectively, as these will be used to define many of the campaigns properties.

Control points

Control points are the spawn locations and (in most cases) the capturable positions in the campaign.

Airbase control

To make an airbase that starts controlled by blue, assign the airbase to the blue coalition in the mission editor. To make an airbase that starts controlled by red, assign the airbase to red.

Carriers and LHAs

To create a carrier, place a CVN-74 where you want it to be in the campaign. The carrier will be red if it belongs to CJTF Red and blue if it belongs to CJTF Blue.

To create an LHA, follow the same process but place an LHA-1.

Note that the presence of the carrier or LHA in the game will depend on the player's options and the faction's navy.

The carrier or LHA's group name is used to determine which squadrons should be located at the base. See the earlier section about squadron presets for more information.

Off-map spawns

To create a point where aircraft from other theaters can be spawned into the mission in-air, place an F-15C. As with carriers and LHAs, use CJTF Red or Blue to assign the point to either faction.

The altitude of the unit is not currently relevant, as the spawn altitude of units in Liberation depends on the faction's doctrine and the unit type.

Forward Operating Bases

A FOB a a capturable point that can spawn ground units but not aircraft.

  • A FOB is defined by placing a Truck SKP-11 Mobile ATC.
  • A CJTF Blue group will create a FOB that begins owned by blue and a CJTF Red group will begin owned by red.
  • To attach a Heliport to a FOB, the desired amount of FARP pads have to be placed in the form of a static invisible FARP close to the FOB.
    • The FARP can belong to either CJTF Blue or CJTF Red to be included in the campaign.

pro tip: 300ft spacing between the invisible FARP pads recommended

Heliport

FARP

The group name of the unit is used to name the FOB.

Campaign inversion

Inverting the campaign allows the player to play the campaign in reverse (starting from the North instead of the South, for example). This doesn't simply swap all of the control points, but swaps a number of control points as defined by the mission designer so that the player doesn't begin the campaign with most of the control points already captured.

To specify that an airbase should be owned by the player when the campaign is inverted, set the "unlimited aircraft" property of the warehouse. To specify the same for a FOB, carrier, LHA, or off-map spawn, set the "late activation" property of the group.

Supply routes

Supply routes are defined by placing a CJTF Blue M-113 at an airfield and defining a route to the connected control point. Front lines progress along supply routes, and supply routes also define road networks for ground unit transit.

The supply route will follow the waypoints of the vehicle group (not the path, so using on-road waypoints will not cause the front line to follow roads automatically), so waypoints should be placed at each location that the front line should turn to avoid terrain. The route beginning and end points will be used as the origin and destination endpoints for convoys, so each end point of the route should be placed on a road. The beginning and ending waypoints will associate with the nearest airfields when the campaign is generated.

The begin and end waypoints of the path defining the front line route define the origin and destination for convoy routes. Endpoints of the route should be placed on or near roads so that convoys can get moving quickly. If far from a road, units will move from their location off-road to the road one at a time until they have all reached the road.

Important: Care should be taken to route the frontline around exclusion zones. If the center of the frontline location lies in an exclusion zones, frontline units may not spawn correctly. You can view the exclusion zones in the Liberation UI by clicking on the "3 stacked sheets" icon below the ruler icon in the top left corner of the map window. Frontlines can jump smaller exclusion zones but using these can cause frontlines to render on both sides of the gap, or cause the frontline to render far from the intended line.

Work in Progress Exclusion zones are being updated to try and allow frontlines to follow or at least be in the general area of convoy routes. Frontlines need to follow the center of these Exclusion zone corridors. The frontline will shrink down to a small area, based on the size of the corridor and the frontline. (# of units) The frontline might not render correctly if the line is to large, (# of units) limiting the ammo depots (explained below) on these frontlines will help limit this issue.

Shipping lanes

Shipping lanes define routes for transporting units between control points via cargo ships.

To define a shipping lane, place a CJTF Blue Bulker Handy Wind. Shipping lanes should begin in port areas that are navigable by ships and have a route to another port area. DCS ships will not avoid driving into islands, so ensure that their waypoints plot a navigable route.

Objective locations

Objective locations define the various locations for ground objectives in the campaign. Objective locations are automatically associated with their closest control point.

These fixed groups do not follow exclusion zones, the placement of these is up to the campaign designer to insure they had enough room to spawn correctly.

The heading of the unit placed as spawn location will be maintained in the generated mission if the heading is not 0. In case the heading is 0 then Liberation will calculate the final heading during campaign generation so that the group will head directly to the center of the conflict. This new feature allows the campaign designer to fine tune the orientation of all the objectives to the campaign needs. Automatic orientation will only be used for Anti Air, Missile, Coastal and Vehicle Groups.

Strike targets

Strike targets are buildings that generate income for the owning coalition. These come in a variety of types depending on the faction:

Type Income
Fuel depots 2
Warehouses 2
FARPs 1
Oil derricks 10
Bunkers 2
Villages 0,25
Army camps 0.5

Note: The values above are subject to change. The REWARDS defined in https://github.com/dcs-liberation/dcs_liberation/blob/develop/game/config.py are the source of truth.

To define a strike target location, place a Tech Combine structure. The unit may be either red or blue (the only difference is currently readability of the mission editor, but in the future will determine which coalition owns the objective).

Offshore strike targets

Offshore strike targets generate income for the owning coalition.

  • To define an offshore strike target, place a CJTF Red Oil Platform.

Map objects

Arbitrary map objects may be used as strike targets. These are the buildings/trees/scenery that are placed by the map developer (Eagle Dynamics, etc). Liberation uses trigger zones to define scenery as a strike target.

To define a map object strike target, right click the building in the mission editor and select "assign as...". This will create a trigger zone around the building. The name of this trigger zone will be used to identify the building in the Liberation UI. Do not modify the color (white) or the properties. This creates the individual building that will be a part of the objective group.

Create new trigger zone through the Mission Editor's sidebar, and give it the color of blue (0 Red, 0 Green, 255 Blue; there is a shortcut button that is blue in case you do not want to type the RGB numbers in manually). Place this trigger zone such that it encloses each of the centers of the objective's white trigger zones. This defines the objective area (named, targetable group of buildings), whereas the white zones define the individual buildings of the objective location. Each group zone must have a unique name.

Create a property for the objective definition with the value field set to any of the entries listed in the REWARDS defined in https://github.com/dcs-liberation/dcs_liberation/blob/develop/game/config.py. This must be the first property in the group zone. This field defines the category (objective type) of the group, which impacts income generation per building.

  • power
  • ware
  • fuel
  • farp
  • fob
  • comms
  • oil
  • derrick
  • village
  • allycamp
  • commandcenter

Each structure will generate its own income, not each group. This means that large groups of structures will generate large amounts of income.

Note that factory and ammo have different behavior. See the documentation on factories and ammunition depots below.

Map Object Limitations:

  • Objective group definitions (blue trigger zones) cannot overlap.
  • The campaign creator must define objective type.
  • No images for the various buildings in the Liberation UI, briefing, or kneeboard. Target identification will be difficult.
  • Every blue trigger zone must have a unique name.

Factories

Factories are ground unit producing structures. Ground units may only originate from control points that have factories, so it is essential that each coalition have access to them. Units will form convoys to move between control points, and convoys may be interdicted to interrupt reinforcements. Destroyed factories will stop producing units. When a control point loses its last factory, it will no longer be a source for ground units.

Factories also generate $10M per turn for the owner.

Define factory locations with CJTF Blue Workshop A structures.

Recommendations for factory placement:

  • Prefer back-line control points or major transit hubs (especially ports and large airports capable of fielding cargo planes) for factory locations. This allows units to reach their destinations more quickly.
  • Avoid placing factories at control points that begin as the front line. Factories on the front line mean that convoys will not be formed and this removes a mission type for the player.
  • Defend factories with IADS and (if accessible by the front line), armor groups.

Note that map objects (defined in the previous section) may be used as factories. Use the factory category.

Ammunition Depots

Ammunition Depots provide control over how many ground units are available to be deployed to the front line from it's closest control point. This directly effects how many ground units may be deployed on a front line.

Each control point has a free 15 deployable ground units available to it before ammunition depot buildings are required to raise the limit of how many ground units may be deployed. Each additional ammunition depot building raises the limit by 12 units.

Ammunition Depots are placed in a campaign using the Ammunition Depot warehouse object to spawn the default template of one Ammunition Depot and two Hangar Bs. Each ammunition depot template will raise the front line ground unit limit by 36 units.

Alternatively, scenery objectives may be used with the ammo category to define an ammunition depot objective.

Recommendations for Ammunition Depot placement:

  • Defend your ammunition depots with IADS and ground units.

Ships

Ships can be generated at airbases, carriers, and LHAs (but not off-map spawns). Ships will not be spawned if the player has disabled either player or enemy navies in the campaign generation options, or if the faction does not have naval units defined.

  • To define a ship location place a CJTF Red Arleigh Burke IIa.

Missile sites

Missile sites (scuds, V-2s, etc) can be generated at airbases and FOBs. Missile sites will only be spawned if the faction has them defined.

  • To define a missile site place a CJTF Red SSM SS-1C Scud-B.

Coastal defenses

Coastal defenses (silkworms) can be generated at airbases and FOBs. Coastal defenses will only be spawned if the faction has them defined.

  • To define a missile site place a CJTF Red AShM SS-N-2 Silkworm.

Armor groups

Armor groups are ground units that defend the assigned location. These groups will not move.

  • To define potential locations for garrison groups, place a (red or blue) MBT M1A2 Abrams.

IADS - Integrated Air Defence System

DCS Liberation will create Air Defence Assets like SAM Systems, Point Defense, EWRs, Power Sources, Connection Nodes and Command Centers during campaign generation and connects them with each other to build an IADS Network of participating assets. This IADS Network will be used in the generated mission by the Skynet Plugin created by Walder which improves the overall handling of the AI with the Anti Air units as well as bringing in more realistic options like Connection Nodes, Power Sources and Command Centers.

IADS Network

The IADS Network can be implemented and used in two different ways:

  • Basic Mode
  • Advanced Mode

In Basic Mode the IADS locations are automatically associated with the control point closest to them and participate to the IADS Network without using communication nodes or power sources. Participating Assets are MERAD and LORAD SAM Sites, EWRs, Naval Units (Ships, Carriers), AWACS flights and Command Centers. This mode will automatically be used if the campaign designer has not placed the advanced units in the campaign and set the advanced_iads property in the campaign yaml to true. The basic mode is used as default mode.

If the campaign supports the advanced mode there are two possible ways to use it:

  • Network by config: campaign designers can define the iads completly in the campaign yaml as described above IADS Configuration
  • Network by range: campaign designers can just place the ground units without a definition in the campaign yaml. Then it will be automatically calculated based on the distance between the units.

If no iads_config is defined in the campaign.yaml the "by range" option will be used. In this mode the system will automatically connect assets like SAM Systems or EWRs to Connection Nodes or Power Sources base on the distance between these objects. Comms will be connected within a distance of 15nm and power sources will be connected within 35nm of distance.

The advanced assets like Comms, Power and C2 can be placed like any other ground object using the placeholder unit defined in this table Unit Type Quick Reference or via a Map Object. When Map objects are used the system will generate a static dummy M4 Soldier next to the object. This is required so that skynet has a unit to control and track the alive/death state of it. This unit does not serve any purpose beside this. The kill of a map object is strill tracked by destroying the object and not the soldier.

Skynet Plugin

Liberation adds the Skynet Plugin to the created dcs mission if the user enables the plugin in the campaign settings. This plugin is enabled by default in Liberation V6.0 as it is heavily integrated into the Liberation system which created the IADS Network. Skynet allows to set specific options for SAM Systems which can be overwritten in the unit.yaml for the Search Radar of the SAM Systems. Which SAM Systems are supported by Skynet and which Search Radar is used for wich SAM system can be found in this file: skynet-iads-supported-types.lua

To overwrite specific skynet properties the following options can be set in the unit.yaml of the Search Radar (Patriot SR as example):

class: SearchRadar
price: 22
variants:
  SAM Patriot STR: null
skynet_properties: # Override skynet default properties
  can_engage_harm: true
  can_engage_air_weapon: true # https://github.com/walder/Skynet-IADS/tree/develop#engage-air-weapons
  go_live_range_in_percent: 100
  harm_detection_chance: 90
  engagement_zone: SkynetIADSAbstractRadarElement.GO_LIVE_WHEN_IN_KILL_ZONE # https://github.com/walder/Skynet-IADS/tree/develop#engagement-zone
  autonomous_behaviour: SkynetIADSAbstractRadarElement.AUTONOMOUS_STATE_DCS_AI # https://github.com/walder/Skynet-IADS/tree/develop#autonomous-mode-behaviour

Documentation about each setting can be found at the Skynet GitHub page which is linked above.

Anti Air GroundObjects

SAM locations are split into four types: long range, medium range, short range, and AAA. Each type of position will prefer to be filled by its exact type, but if the faction has no air defenses of that type available the generator will continue to downgrade the site until it finds a match. For example, a medium range SAM may be used in place of a long range SAM. Upgrades are not allowed.

Note that the exact type of SAM or EWR that will be placed depends on the faction definition (SAM/EWR generators). However, when designing a campaign with specific factions in mind (such as Syria defending on the Syria map), this allows the designer to see the coverage of the SAMs used by the intended faction. This way the designer can be sure that sufficient coverage will be present in the campaign when a faction using a specific type of SAM is used.

The heading set for the unit placed in the mission will be maintained in the generated mission if the heading is not 0. If the heading is 0 then Liberation will calculate the heading during campaign generation so that the group will head directly to the center of the conflict. This allows the campaign designer to fine tune the orientation of the SAM System or EWR to the campaign needs.

Early Warning Radars

To define an EWR location, place a CJTF Red EWR 1L13.

Long range SAMs

Currently the only two long range SAM systems are the Patriot and the SA-10 (S-300). If the faction does not have either of those systems, the location will be downgraded to a compatible type.

To define a long range SAM location, place a CJTF Red unit of any of the following types:

  • SAM Patriot LN
  • SAM SA-10 S-300PS LN 5P85C
  • SAM SA-10 S-300PS LN 5P85D

Medium range SAMs

Medium range SAMs include most radar SAMs that do not qualify as long range SAMs. If the faction has no medium range SAMs available, the location will be downgraded to a compatible type.

To define a medium range SAM location, place a CJTF Red unit of any of the following types:

  • SAM Hawk LN M192
  • SAM SA-2 LN SM-90
  • SAM SA-3 S-125 LN 5P73

Short range SAMs

Short range SAMs include IR SAMs and shorter range radar guided systems. If the faction has no short range SAMs available, the location will be downgraded to a compatible type.

To define a short range SAM location, place a CJTF Red unit of any of the following types:

  • SAM Avenger (Stinger)
  • SAM Rapier LN
  • SAM SA-19 Tunguska "Grison"
  • SAM SA-9 Strela 1 "Gaskin" TEL

AAA

AAA sites include self-propelled and static anti-air artillery systems. If the faction has no AAA available, the location will not be generated.

To define a AAA location, place a unit (red or blue) of any of the following types:

  • AAA 8,8cm Flak 18
  • SPAAA Vulcan M163
  • SPAAA ZSU-23-4 Shilka "Gun Dish"

Unit Type Quick Reference:

Objective type Coalition Unit types Clearance
EWR Red EWR 1L13 50ft
Long range SAM Red SAM Patriot LN M901
SAM SA-10 S-300PS LN 5P85C
SAM SA-10 S-300PS LN 5P85D
1000ft
Medium range SAM Red SAM Hawk LN M192
SAM SA-2 LN SM-90
SAM SA-3 S-125 LN 5P73
800ft
Short range SAM Red SAM Avenger (Stinger)
SAM Rapier LN
SAM SA-19 Tunguska "Grison"
SAM SA-9 Strela 1 "Gaskin" TEL
800ft
AAA Either AAA 8,8cm Flak 18
SPAAA Vulcan M163
SPAAA ZSU-23-4 Shilka "Gun Dish"
700ft
Factory Blue Workshop A Building should fit
Ammo Depot Either Ammunition depot 350ft
Strike target Either Tech combine 350ft
Offshore strike target Red Oil Platform 1000ft
Missile Sites Red SSM SS-1C Scud-B 800ft
Coastal defenses Red AShM SS-N-2 Silkworm 800ft
Ship Red Arleigh Burke IIa 5000ft
Armor group Either MBT M1A2 Abrams 500ft
FOB Either Truck SKP-11 Mobile ATC 100ft
Comms Either Comms tower M Building should fit
Power Either GeneratorF 350ft
Command Center Either Command Center Building should fit
⚠️ **GitHub.com Fallback** ⚠️