Table of Contents
- Descriptor file
- Squadron configuration
- IADS configuration
- Overriding Air Defense/SAM generation
- Common issues with a custom campaign yaml file and their solutions
- 'air-to-ground' is not a valid FlightType
- 'primary'
- <<class 'game.theater.controlpoint.Carrier'>: Naval-1>
- 'NoneType' object is not iterable
- 'Cannot find ControlPoint named Carrier'
- Defining settings
Please see version.py for the correct campaign version number when creating/updating campaigns.
Campaigns in DCS Retribution 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 Retribution install.
DCS Retribution 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,SyriaorThe 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 Retribution version, but the version of the campaign file format. The latest version is defined by
CAMPAIGN_FORMAT_VERSIONin game/version.py. See the top of this guide for the format version appropriate for current releases of Retribution.If
versionis 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 sameresources\campaignsdirectory) 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. -
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 Retribution 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
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 inFlightTypefound in https://github.com/dcs-retribution/dcs-retribution/blob/develop/game/ato/flighttype.py (the same as the name of the mission type shown in the Retribution 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 stringsany,air-to-air, orair-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.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 onPRIMARY_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.
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).
IADS configuration
Retribution 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
Overriding Air Defense/SAM generation
It is possible to override the type of Air Defense unit that will be spawned by Retribution, provided it exists in the faction. If it does not, standard generation behavior will occur.
The syntax is as follows in the campaign file :
ground_forces:
SAM-LR-BasselAlAssad : SA-5/S-200
SAM-LR-Palmyra : SA-5/S-200
SAM-LR-Aleppo : SA-10/S-300PS
SAM-LR-H3 : SA-5/S-200
SAM-LR-SouthLebanon: SA-5/S-200
SAM-MR-PalmyraLake: SA-6
The first part (for instance SAM-LR-BasselAlAssad in the example above) references the group name in the mission file.
The second part (in this example SA-5/S-200) references the group name as present in the faction file or the definitions present in resources/groups.
Common issues with a custom campaign yaml file and their solutions
Below are solutions to common issues with a custom campaign yaml. Please also note that the yaml syntax is case sensitive: primary and Primary are considered separate keys, for example.
'air-to-ground' is not a valid FlightType
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'
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>
The yaml file doesn't have squadrons defined.
'NoneType' object is not iterable
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'
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
Defining settings
Any setting can be defined as a suggested default in the campaign.
The syntax is as follows :
name: Syria - The Long Road to H3
theater: Syria
squadrons:
...
# Override settings
settings:
# Enable Supercarrier
supercarrier: true
# Set mission duration to 45 minutes
desired_player_mission_duration: 45
# Set max frontline width to 30 km
max_frontline_width: 30
For the name and values a setting can take, refer to the user interface and the settings file.
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.
Unit Type Quick Reference
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. To make an airbase that starts neutral and can be captured by blue or red, check the dynamic spawns checkbox on the airbase.
Control point influence zones
Control point influence zones are trigger zones defined in the campaign miz file that determine what units are owned by a CP. This allows for finer control over unit placement allowing you to place a unit closer to an enemy CP than your own and still control it. Control point influence zones must be RED and must have the property value of the CP name.
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 Retribution 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 or if you want a FOB without the FOB statics, a Truck M939 Heavy.
- A neutral FOB that can be captured by either blue or red is defined by placing a RED KrAZ6322.
- 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 FARP or 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
The group name of the unit is used to name the FOB.
Ground spawns and roadbases
You can insert ground spawn slots in campaigns by placing either an A-10A or an AJS37 at a runway or ramp. This will cause an invisible FARP, an ammo dump and a fuel dump to be placed (behind the slot in case of A-10A, to the side in case of AJS37) in the generated campaigns. The ground spawn slot can be used by human controlled aircraft in generated missions (there is also a separate option in settings to allow AI aircraft to be placed there, but the AI will start in the air if not enough ramp or runway slots are available). The ground spawn slots increase the total parking capacity of the base. The first waypoint of the placed aircraft will be the center of a SCENERY REMOVE OBJECTS ZONE trigger zone (which might or might not work in multiplayer due to a DCS limitation). The SCENERY REMOVE OBJECTS ZONE trigger can be used to clear runways/roads of lightposts, trees etc. Placing FARPs will also clear them.
Ground spawns can be inserted in both airfields and FOBs. You can use them, for example, to:
- Activate the abandoned airport at Nicosia in Cyprus:
- Activate the small airstrips in the Kutaisi outskirts in Georgia:
- Create a roadbase at the real-life location of the H3 Highway Strip in Iraq:
- Fly WWII era planes from the dirt airstrips east of Sayqal in Syria:
The A-10A's wingspan can be used to illustrate how much space to allocate to each ground spawn slot. Enable the models to be shown in the Mission Editor to see the wingspan.
In some instances, when adding additional slots at airfields, spawning fuel, ammo and FARP statics may be undesirable. For this purpose, there is an option in settings called Remove ground spawn statics, including invisible FARPs, at airbases. Enabling this will prevent Retribution from generating these statics if the ground spawns are located at an airfield. Ground spawns at FOB control points will be unaffected.
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 M113 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. This M113 should be placed with waypoints set to offroad. The purpose of the supply route waypoints are twofold - they allow the creation of an aethetically pleasing supply route on the Retribution map while at the same time assisting the generation of a convoy route in DCS.
A common mistake by new campaign designers is taking one of these factors into consideration but not the other. When creating a supply route, it is recommended to place a temporary ground unit (doesn't matter which one) set to onroad waypoints, and using it to ascertain that there is a viable onroad route between the two control points. Typically, just placing the unit at near one control point and a single waypoint near the destination control point is enough to generate a good route. Occasionally, you might need an additioonal waypoint or two. Remember, this ground unit is temporary. Its purpose is simply to determine route viability and as a visual guide for the next step.
Once you have the temporary route set up, place the M113 and then place each waypoint along the route so that it intersects with the onroad route as defined by the temporary ground unit. See image below for an example. The temporary ground unit's onroad route is shown in white (because it is selected at the moment), while the M113's waypoints are shown in blue.
The result of doing it this way is that the actual convoy will follow the white route during a mission, while in Retribution, you will get a nice clean supply route drawn on the map like this image below. Once you have setup the M113 waypoints, delete the temporary ground unit.
One common mistake made when setting up supply route is thinking that every twist and turn on the route has to be determined by M113 waypoints. This can lead to very convoluted supply routes in the Retribution UI, and can seriously mess up frontline orientation. This example here shows how the frontline is actually flipped 180 degrees because of this routing style. We strongly recommend not doing so.
This is an in-editor example of over-use of waypoints. The supply route does not need to be defined to that sort of degree.
This is an example of a common mistake where supply route waypoints are placed purely for aesthetics without ensuring they are actually placed on a road. Waypoints 1, 2, and 3 are placed correctly but it veers offroad after that.
This should be what it ought to look like. Every single M113 waypoint is placed on a road along the supply route.
While technically optional, convoy spawn positions are a feature that is highly recommended because without this, convoys will spawn offroad and take a long time to form up on the nearest road before moving off, rather than spawning correctly onroad and able to move off immediately. This is done by placing a "Scout HMMWV" just behind the first and last waypoints along the M113-defined supply route, with onroad waypoints denoting the stretch of road upon which the convoy should spawn. A good rule of thumb is to have it 200 metres behind the M113 waypoint, and have the Scount HMMWV's onroad waypoints stretch for 2NM behind it.
In the example above, you can see the convoy spawn location waypoints in white, trailing behind the M113-defined supply route. It is recommended to find a relatively straight stretch of road for this, though this is not always possible.
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.
Air Assault Landing Zones
While campaigns will technically work without defined Air Assault Landing Zones (LZs), this means that the pick up and drop off locations for troops are picked randomly within a radius of the control point, and it is quite likely that your air assault choppers are going to try landing amongst trees or on a building and crash. One can manually shift the landing zone in the mission editor prior to playing the mission, but it is much more ideal if campaign designers simply define appropriate landing zones for each control point when designing their campaign.
Here is an example of a control point where two LZs have been defined. While one is sufficient, if there is more than one LZ, the closest LZ to the direction of ingress will be used. This can be handy for large airfields.
The LZs are defined using a trigger zone named with the control point's name followed by CTLD. Colour of the trigger zone should be left white (which is the default). The size is variable, and the actual landing waypoint is selected randomly somewhere within the circle. The ones in the example image are 500 metres across. Remember that the precise landing point can be anywhere within that circle, potentially right on the edge, so pick a location and radius that allows unimpeded approach and landing.
If you want more than a single LZ for that control point, you can copy-paste the first one after naming it and the new ones will be automatically named in the appropriate manner (with an appended -1, -2, etc). When selecting these LZs, it is important to pick locations that do not have trees or buildings, and that there is a clear path for the dropped infantry to move to the control point they are capturing (they will move automatically, and the centre of the control point is used as a target destination). This means there should ideally not be thick forest, rivers, dense urban structures, fences, or walls along that path.
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 Retribution 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-retribution/dcs-retribution/blob/dev/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). Retribution 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 Retribution 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-retribution/dcs-retribution/blob/dev/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.
powerwarefuelfarpfobcommsoilderrickvillageallycampcommandcenter
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 Retribution 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
Warning: Skynet is NOT recommended if you want AI SEAD Aircraft to do their job. It is an unrealistic gameism (actual SAMs are not set up this way) meant to give larger multiplayer squadrons an additional challenge for coordination. It will NOT improve the play experience if you are playing solo or in small multiplayer groups alongside AI aircraft.
DCS Retribution 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, adding in Connection Nodes, Power Sources and Command Centers. This sort of configuration is not realistic (SAMs in real life do not have mile-long extension cords connecting them to power sources), but it can add a fun challenge if you are willing to sacrifice some realism for additional targets to shoot at. Once again, only use Skynet IF you do not mind that AI SEAD aircraft will no longer do their job. That is, unless you really want to use this feature, we recommend disabling it.
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
Retribution 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 Retribution V6.0 as it is heavily integrated into the Retribution 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 Retribution 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 "Grumble" TEL C
- SAM SA-10 S-300PS "Grumble" TEL D
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 NASAMS LN AIM-120B
- SAM NASAMS LN AIM-120C
- 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 "Grumble" TEL C SAM SA-10 S-300PS "Grumble" TEL D |
1000ft |
| Medium range SAM | Red | SAM Hawk LN M192 SAM NASAMS LN AIM-120B SAM NASAMS LN AIM-120C 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 |
| Neutral FOB | RED | KrAZ6322 | 100ft |
| Invisible FOB | Either | Truck M939 Heavy | None Needed |
| Comms | Either | Comms tower M | Building should fit |
| Power | Either | GeneratorF | 350ft |
| Command Center | Either | Command Center | Building should fit |
Tutorials
- DCS Retribution UI
- Air Wing Configuration
- Turn Zero
- First operation
- Setting up a custom Strike mission
- Campaign "Battle of Abu Dhabi" Play Through Tutorial
Manual
Additional content
Dedicated Servers
Modding Retribution
Contributing
Contributing to DCS Retribution







