Banner Image

Module Ops.Chief

Ops - Chief of Staff.

Main Features:

  • Automatic target engagement based on detection network
  • Define multiple border, conflict and attack zones
  • Define strategic "capture" zones
  • Set strategy of chief from passive to agressive
  • Manual target engagement via AUFTRAG and TARGET classes
  • Add AIRWINGS, BRIGADES and FLEETS as resources
  • Seamless air-to-air, air-to-ground, ground-to-ground dispatching

Author: funkyfranky

Global(s)

Global CHIEF

In preparing for battle I have always found that plans are useless, but planning is indispensable -- Dwight D Eisenhower


The CHIEF Concept

The Chief of staff gathers INTEL and assigns missions (AUFTRAG) the airforce, army and/or navy.

#CHIEF CHIEF

In preparing for battle I have always found that plans are useless, but planning is indispensable -- Dwight D Eisenhower


The CHIEF Concept

The Chief of staff gathers INTEL and assigns missions (AUFTRAG) the airforce, army and/or navy.

Territory

The chief class allows you to define boarder zones, conflict zones and attack zones.

Border Zones

Border zones define your own territory. They can be set via the CHIEF.SetBorderZones() function as a set or added zone by zone via the CHIEF.AddBorderZone() function.

Conflict Zones

Conflict zones define areas, which usually are under dispute of different coalitions. They can be set via the CHIEF.SetConflictZones() function as a set or added zone by zone via the CHIEF.AddConflictZone() function.

Attack Zones

Attack zones are zones that usually lie within the enemy territory. They are only enganged with an agressive strategy. They can be set via the CHIEF.SetAttackZones() function as a set or added zone by zone via the CHIEF.AddAttackZone() function.

Defense Condition

The defence condition (DEFCON) depends on enemy activity detected in the different zone types and is set automatically.

  • CHIEF.Defcon.GREEN: No enemy activities detected.
  • CHIEF.Defcon.YELLOW: Enemy activity detected in conflict zones.
  • CHIEF.Defcon.RED: Enemy activity detected in border zones.

The current DEFCON can be retrieved with the @(#CHIEF.GetDefcon)() function.

When the DEFCON changed, an FSM event CHIEF.DefconChange is triggered. Mission designers can hook into this event via the CHIEF.OnAfterDefconChange() function:

--- Function called when the DEFCON changes.
function myChief:OnAfterDefconChange(From, Event, To, Defcon)
  local text=string.format("Changed DEFCON to %s", Defcon)
  MESSAGE:New(text, 120):ToAll()    
end

Strategy

The strategy of the chief determines, in which areas targets are engaged automatically.

  • CHIEF.Strategy.PASSIVE: Chief is completely passive. No targets at all are engaged automatically.
  • CHIEF.Strategy.DEFENSIVE: Chief acts defensively. Only targets in his own territory are engaged.
  • CHIEF.Strategy.OFFENSIVE: Chief behaves offensively. Targets in his own territory and in conflict zones are enganged.
  • CHIEF.Strategy.AGGRESSIVE: Chief is aggressive. Targets in his own territory, in conflict zones and in attack zones are enganged.
  • CHIEF.Strategy.TOTALWAR: Anything anywhere is enganged.

The strategy can be set by the @(#CHIEF.SetStrategy)() and retrieved with the @(#CHIEF.GetStrategy)() function.

When the strategy is changed, the FSM event CHIEF.StrategyChange is triggered and customized code can be added to the CHIEF.OnAfterStrategyChange() function:

--- Function called when the STRATEGY changes.
function myChief:OnAfterStrategyChange(From, Event, To, Strategy)
  local text=string.format("Strategy changd to %s", Strategy)
  MESSAGE:New(text, 120):ToAll()
end

Resources

A chief needs resources such as air, ground and naval assets. These can be added in form of AIRWINGs, BRIGADEs and FLEETs.

Whenever the chief detects a target or receives a mission, he will select the best available assets and assign them to the mission. The best assets are determined by their mission performance, payload performance (in case of air), distance to the target, skill level, etc.

Adding Airwings

Airwings can be added via the CHIEF.AddAirwing() function.

Adding Brigades

Brigades can be added via the CHIEF.AddBrigade() function.

Adding Fleets

Fleets can be added via the CHIEF.AddFleet() function.

Strategic (Capture) Zones

Strategically important zones, which should be captured can be added via the CHIEF.AddStrategicZone(OpsZone, Prio, Importance) function. The first parameter OpsZone is an Ops.OpsZone#OPSZONE specifying the zone. This has to be a circular zone due to DCS API restrictions. The second parameter Prio is the priority. The zone queue is sorted wrt to lower prio values. By default this is set to 50. The third parameter Importance is the importance of the zone. By default this is nil. If you specify one zone with importance 2 and a second zone with importance 3, then the zone of importance 2 is attacked first and only if that zone has been captured, zones that have importances with higher values are attacked.

For example:

local myStratZone=myChief:AddStrategicZone(myOpsZone, nil , 2)

Will at a strategic zone with importance 2.

If the zone is currently owned by another coalition and enemy ground troops are present in the zone, a CAS and an ARTY mission are lauchned:

  • A mission of type AUFTRAG.Type.CASENHANCED is started if assets are available that can carry out this mission type.
  • A mission of type AUFTRAG.Type.ARTY is started provided assets are available.

The CAS flight(s) will patrol the zone randomly and take out enemy ground units they detect. It can always be possible that the enemies cannot be detected however. The assets will shell the zone. However, it is unlikely that they hit anything as they do not have any information about the location of the enemies.

Once the zone is cleaned of enemy forces, ground troops are send there. By default, two missions are launched:

  • First mission is of type AUFTRAG.Type.ONGUARD and will send infantry groups. These are transported by helicopters. Therefore, helo assets with AUFTRAG.Type.OPSTRANSPORT need to be available.
  • The second mission is also of type AUFTRAG.Type.ONGUARD but will send tanks if these are available.

Customized Reaction

The default mission types and number of assets can be customized for the two scenarious (zone empty or zone occupied by the enemy).

In order to do this, you need to create resource lists (one for each scenario) via the CHIEF.CreateResource() function. These lists can than passed as additional parameters to the CHIEF.AddStrategicZone function.

For example:

--- Create a resource list of mission types and required assets for the case that the zone is OCCUPIED.
--
-- Here, we create an enhanced CAS mission and employ at least on and at most two asset groups.
local ResourceOccupied=myChief:CreateResource(AUFTRAG.Type.CASENHANCED, 1, 2)
-- We also add ARTY missions with at least one and at most two assets. We additionally require these to be MLRS groups (and not howitzers).
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.ARTY, 1, 2, nil, "MLRS")
-- Add at least one RECON mission that uses UAV type assets.
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.RECON, 1, nil, GROUP.Attribute.AIR_UAV)
-- Add at least one but at most two BOMBCARPET missions.
myChief:AddToResource(ResourceOccupied, AUFTRAG.Type.BOMBCARPET, 1, 2)

--- Create a resource list of mission types and required assets for the case that the zone is EMPTY.
--
-- Here, we create an ONGUARD mission and employ at least on and at most five infantry assets.
local ResourceEmpty=myChief:CreateResource(AUFTRAG.Type.ONGUARD, 1, 5, GROUP.Attribute.GROUND_INFANTRY)
-- Additionally, we send up to three tank groups.
myChief:AddToResource(ResourceEmpty, AUFTRAG.Type.ONGUARD, 1, 3, GROUP.Attribute.GROUND_TANK)
-- Finally, we send two groups that patrol the zone.
myChief:AddToResource(ResourceEmpty, AUFTRAG.Type.PATROLZONE, 2)

-- Add stratetic zone with customized reaction.
myChief:AddStrategicZone(myOpsZone, nil , 2, ResourceOccupied, ResourceEmpty)

As the location of the enemies is not known, only mission types that don't require an explicit target group are possible. These are

  • AUFTRAG.Type.CASENHANCED
  • AUFTRAG.Type.ARTY
  • AUFTRAG.Type.PATROLZONE
  • AUFTRAG.Type.ONGUARD
  • AUFTRAG.Type.RECON
  • AUFTRAG.Type.AMMOSUPPLY
  • AUFTRAG.Type.BOMBING
  • AUFTRAG.Type.BOMBCARPET
  • AUFTRAG.Type.BARRAGE

Events

Whenever a strategic zone is captured by us the FSM event CHIEF.ZoneCaptured is triggered and customized further actions can be executed with the CHIEF.OnAfterZoneCaptured() function.

Whenever a strategic zone is lost (captured by the enemy), the FSM event CHIEF.ZoneLost is triggered and customized further actions can be executed with the CHIEF.OnAfterZoneLost() function.

Further events are

Note that the ownership of a zone is determined via zone scans, i.e. not via the detection network. In other words, there is an all knowing eye. Think of it as the local population providing the intel. It's not totally realistic but the best compromise within the limits of DCS.

Type(s)

Fields and Methods inherited from CHIEF Description

CHIEF:AddAirwing(Airwing)

Add an AIRWING to the chief's commander.

CHIEF:AddAttackZone(Zone)

Add an attack zone.

CHIEF:AddAwacsZone(Zone, Altitude, Speed, Heading, Leg)

Add an AWACS zone.

CHIEF:AddBorderZone(Zone)

Add a zone defining your territory.

CHIEF:AddBrigade(Brigade)

Add a BRIGADE to the chief's commander.

CHIEF:AddCapZone(Zone, Altitude, Speed, Heading, Leg)

Add a CAP zone.

CHIEF:AddConflictZone(Zone)

Add a conflict zone.

CHIEF:AddFleet(Fleet)

Add a FLEET to the chief's commander.

CHIEF:AddGciCapZone(Zone, Altitude, Speed, Heading, Leg)

Add a GCI CAP.

CHIEF:AddLegion(Legion)

Add a LEGION to the chief's commander.

CHIEF:AddMission(Mission)

Add mission to mission queue of the COMMANDER.

CHIEF:AddOpsTransport(Transport)

Add transport to transport queue of the COMMANDER.

CHIEF:AddRearmingZone(RearmingZone)

Add a rearming zone.

CHIEF:AddRefuellingZone(RefuellingZone)

Add a refuelling zone.

CHIEF:AddStrategicZone(OpsZone, Priority, Importance, ResourceOccupied, ResourceEmpty)

Add strategically important zone.

CHIEF:AddTankerZone(Zone, Altitude, Speed, Heading, Leg, RefuelSystem)

Add a refuelling tanker zone.

CHIEF:AddTarget(Target)

Add target.

CHIEF:AddToResource(Resource, MissionType, Nmin, Nmax, Attributes, Properties)

Add mission type and number of required assets to resource.

CHIEF:AllowGroundTransport()

Allow chief to use GROUND units for transport tasks.

CHIEF:CheckGroupInAttack(group)

Check if group is in a attack zone.

CHIEF:CheckGroupInBorder(group)

Check if group is inside our border.

CHIEF:CheckGroupInConflict(group)

Check if group is in a conflict zone.

CHIEF:CheckGroupInZones(group, zoneset)

Check if group is inside a zone.

CHIEF:CheckOpsZoneQueue()

Check strategic zone queue.

CHIEF:CheckTargetInZones(target, zoneset)

Check if group is inside a zone.

CHIEF:CheckTargetQueue()

Check target queue and assign ONE valid target by adding it to the mission queue of the COMMANDER.

CHIEF.ClassName

Name of the class.

CHIEF:CreateResource(MissionType, Nmin, Nmax, Attributes, Properties)

Create a new resource list of required assets.

CHIEF.DEFCON

CHIEF.Defcon

Defence condition.

CHIEF:DefconChange(Defcon)

Triggers the FSM event "DefconChange".

CHIEF:DeleteFromResource(Resource, MissionType)

Delete mission type from resource list.

CHIEF:ForbidGroundTransport()

Forbid chief to use GROUND units for transport tasks.

CHIEF:GetCommander()

Get the commander.

CHIEF:GetDefcon(Current, Defcon)

Get defence condition.

CHIEF:GetMissionLimit(MissionType)

Get mission limit.

CHIEF:GetStrategicZoneResourceEmpty(StrategicZone)

Get the resource list of missions and assets employed when the zone is empty.

CHIEF:GetStrategicZoneResourceOccupied(StrategicZone)

Get the resource list of missions and assets employed when the zone is occupied by the enemy.

CHIEF:IsAgressive()

Check if current strategy is aggressive.

CHIEF:IsDefensive()

Check if current strategy is defensive.

CHIEF:IsOffensive()

Check if current strategy is offensive.

CHIEF:IsPassive()

Check if current strategy is passive.

CHIEF:IsTarget(Target)

Check if a TARGET is already in the queue.

CHIEF:IsTotalWar()

Check if current strategy is total war.

CHIEF:MissionAssign(Mission, Legions)

Triggers the FSM event "MissionAssign".

CHIEF:MissionCancel(Mission)

Triggers the FSM event "MissionCancel".

CHIEF.Nattack

CHIEF.Nborder

CHIEF.Nconflict

CHIEF:New(Coalition, AgentSet, Alias)

Create a new CHIEF object and start the FSM.

CHIEF.Nfailure

Number of failed mission.

CHIEF.Nsuccess

Number of successful missions.

CHIEF:OnAfterDefconChange(From, Event, To, Defcon)

On after "DefconChange" event.

CHIEF:OnAfterMissionAssign(From, Event, To, Mission, Legions)

On after "MissionAssign" event.

CHIEF:OnAfterMissionCancel(From, Event, To, Mission)

On after "MissionCancel" event.

CHIEF:OnAfterOpsOnMission(From, Event, To, OpsGroup, Mission)

On after "OpsOnMission" event.

CHIEF:OnAfterStrategyChange(From, Event, To, Strategy)

On after "StrategyChange" event.

CHIEF:OnAfterTransportCancel(From, Event, To, Transport)

On after "TransportCancel" event.

CHIEF:OnAfterZoneAttacked(From, Event, To, OpsZone)

On after "ZoneAttacked" event.

CHIEF:OnAfterZoneCaptured(From, Event, To, OpsZone)

On after "ZoneCaptured" event.

CHIEF:OnAfterZoneEmpty(From, Event, To, OpsZone)

On after "ZoneEmpty" event.

CHIEF:OnAfterZoneLost(From, Event, To, OpsZone)

On after "ZoneLost" event.

CHIEF:OpsOnMission(OpsGroup, Mission)

Triggers the FSM event "OpsOnMission".

CHIEF:RecruitAssetsForTarget(Target, MissionType, NassetsMin, NassetsMax)

Recruit assets for a given TARGET.

CHIEF:RecruitAssetsForZone(StratZone, Resource)

Recruit assets for a given OPS zone.

CHIEF:RemoveMission(Mission)

Remove mission from queue.

CHIEF:RemoveStrategicZone(OpsZone, Delay)

Remove strategically important zone.

CHIEF:RemoveTarget(Target)

Remove target from queue.

CHIEF:RemoveTransport(Transport)

Remove transport from queue.

CHIEF:SetAirToAir()

Set this to be an air-to-air dispatcher.

CHIEF:SetAirToAny()

Set this to be an air-to-any dispatcher, i.e.

CHIEF:SetAirToGround()

Set this to be an air-to-ground dispatcher, i.e.

CHIEF:SetAirToSea()

Set this to be an air-to-sea dispatcher, i.e.

CHIEF:SetAirToSurface()

Set this to be an air-to-surface dispatcher, i.e.

CHIEF:SetAttackZones(ZoneSet)

Set attack zone set.

CHIEF:SetBorderZones(BorderZoneSet)

Set border zone set, defining your territory.

CHIEF:SetConflictZones(ZoneSet)

Set conflict zone set.

CHIEF:SetDefcon(Defcon)

Set defence condition.

CHIEF:SetLimitMission(Limit, MissionType)

Set limit for number of total or specific missions to be executed simultaniously.

CHIEF:SetStrategicZoneResourceEmpty(StrategicZone, Resource, NoCopy)

Set the resource list of missions and assets employed when the zone is empty.

CHIEF:SetStrategicZoneResourceOccupied(StrategicZone, Resource, NoCopy)

Set the resource list of missions and assets employed when the zone is occupied by the enemy.

CHIEF:SetStrategy(Strategy)

Set strategy.

CHIEF:SetTacticalOverviewOff()

Set tactical overview off.

CHIEF:SetTacticalOverviewOn()

Set tactical overview on.

CHIEF:SetThreatLevelRange(ThreatLevelMin, ThreatLevelMax)

Set a threat level range that will be engaged.

CHIEF:Start()

Triggers the FSM event "Start".

CHIEF:Status()

Triggers the FSM event "Status".

CHIEF.Strategy

CHIEF:StrategyChange(Strategy)

Triggers the FSM event "StrategyChange".

CHIEF:TransportCancel(Transport)

Triggers the FSM event "TransportCancel".

CHIEF.TransportCategories

CHIEF:ZoneAttacked(OpsZone)

Triggers the FSM event "ZoneAttacked".

CHIEF:ZoneCaptured(OpsZone)

Triggers the FSM event "ZoneCaptured".

CHIEF:ZoneEmpty(OpsZone)

Triggers the FSM event "ZoneEmpty".

CHIEF:ZoneLost(OpsZone)

Triggers the FSM event "ZoneLost".

CHIEF:_CheckMissionLimit(MissionType)

Check if limit of missions has been reached.

CHIEF:_CreateMissionPerformance(MissionType, Performance)

Create a mission performance table.

CHIEF:_GetMissionPerformanceFromTarget(Target)

Get mission performance for a given TARGET.

CHIEF:_GetMissionTypeForGroupAttribute(Attribute)

Get mission performances for a given Group Attribute.

CHIEF:_TacticalOverview()

Display tactical overview.

CHIEF:__DefconChange(delay, Defcon)

Triggers the FSM event "DefconChange" after a delay.

CHIEF:__MissionAssign(delay, Mission, Legions)

Triggers the FSM event "MissionAssign" after a delay.

CHIEF:__MissionCancel(delay, Mission)

Triggers the FSM event "MissionCancel" after a delay.

CHIEF:__OpsOnMission(delay, OpsGroup, Mission)

Triggers the FSM event "OpsOnMission" after a delay.

CHIEF:__Start(delay)

Triggers the FSM event "Start" after a delay.

CHIEF:__Status(delay)

Triggers the FSM event "Status" after a delay.

CHIEF:__Stop(delay)

Triggers the FSM event "Stop" after a delay.

CHIEF:__StrategyChange(delay, Strategy)

Triggers the FSM event "StrategyChange" after a delay.

CHIEF:__TransportCancel(delay, Transport)

Triggers the FSM event "TransportCancel" after a delay.

CHIEF:__ZoneAttacked(delay, OpsZone)

Triggers the FSM event "ZoneAttacked" after a delay.

CHIEF:__ZoneCaptured(delay, OpsZone)

Triggers the FSM event "ZoneCaptured" after a delay.

CHIEF:__ZoneEmpty(delay, OpsZone)

Triggers the FSM event "ZoneEmpty" after a delay.

CHIEF:__ZoneLost(delay, OpsZone)

Triggers the FSM event "ZoneLost" after a delay.

CHIEF.borderzoneset

Set of zones defining the border of our territory.

CHIEF.commander

Commander of assigned legions.

CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

CHIEF.lid

Class id string for output to DCS log file.

CHIEF:onafterDefconChange(From, Event, To, Defcon)

On after "DefconChange" event.

CHIEF:onafterMissionAssign(From, Event, To, Mission, Legions)

On after "MissionAssignToAny" event.

CHIEF:onafterMissionCancel(From, Event, To, Mission)

On after "MissionCancel" event.

CHIEF:onafterOpsOnMission(From, Event, To, OpsGroup, Mission)

On after "OpsOnMission".

CHIEF:onafterStart(Group, From, Event, To)

On after Start event.

CHIEF:onafterStatus(Group, From, Event, To)

On after "Status" event.

CHIEF:onafterStrategyChange(From, Event, To, Strategy)

On after "StrategyChange" event.

CHIEF:onafterTransportCancel(From, Event, To, Transport)

On after "TransportCancel" event.

CHIEF:onafterZoneAttacked(From, Event, To, OpsZone)

On after "ZoneAttacked".

CHIEF:onafterZoneCaptured(From, Event, To, OpsZone)

On after "ZoneCaptured".

CHIEF:onafterZoneEmpty(From, Event, To, OpsZone)

On after "ZoneEmpty".

CHIEF:onafterZoneLost(From, Event, To, OpsZone)

On after "ZoneLost".

CHIEF.strategy

Strategy of the CHIEF.

CHIEF.tacview

CHIEF.targetqueue

Target queue.

CHIEF.threatLevelMax

Highest threat level of targets to attack.

CHIEF.threatLevelMin

Lowest threat level of targets to attack.

CHIEF.verbose

Verbosity level.

CHIEF.version

CHIEF class version.

CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

CHIEF.zonequeue

Strategic zone queue.

Fields and Methods inherited from CHIEF.DEFCON Description

CHIEF.DEFCON.GREEN

No enemy activities detected in our terretory or conflict zones.

CHIEF.DEFCON.RED

Enemy within our border.

CHIEF.DEFCON.YELLOW

Enemy in conflict zones.

Fields and Methods inherited from CHIEF.MissionPerformance Description

CHIEF.MissionPerformance.MissionType

Mission Type.

CHIEF.MissionPerformance.Performance

Performance: a number between 0 and 100, where 100 is best performance.

Fields and Methods inherited from CHIEF.Resource Description

CHIEF.Resource.Attributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

CHIEF.Resource.MissionType

Mission type, e.g. AUFTRAG.Type.BAI.

CHIEF.Resource.Nmax

Max number of assets.

CHIEF.Resource.Nmin

Min number of assets.

CHIEF.Resource.Properties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

CHIEF.Resource.mission

Attached mission.

Fields and Methods inherited from CHIEF.StrategicZone Description

CHIEF.StrategicZone.importance

Importance.

CHIEF.StrategicZone.missions

Mission.

CHIEF.StrategicZone.opszone

OPS zone.

CHIEF.StrategicZone.prio

Priority.

CHIEF.StrategicZone.resourceEmpty

Resource list.

CHIEF.StrategicZone.resourceOccup

Resource list.

Fields and Methods inherited from CHIEF.Strategy Description

CHIEF.Strategy.AGGRESSIVE

Targets in own terretory, conflict zones and attack zones are engaged.

CHIEF.Strategy.DEFENSIVE

Only target in our own terretory are engaged.

CHIEF.Strategy.OFFENSIVE

Targets in own terretory and yellow zones are engaged.

CHIEF.Strategy.PASSIVE

No targets at all are engaged.

CHIEF.Strategy.TOTALWAR

Anything is engaged anywhere.

CHIEF class.

Field(s)

#string CHIEF.ClassName

Name of the class.

#string CHIEF.Defcon

Defence condition.

#number CHIEF.Nattack
#number CHIEF.Nborder

Create TARGETs for all new contacts.

#number CHIEF.Nconflict
#number CHIEF.Nfailure

Number of failed mission.

#number CHIEF.Nsuccess

Number of successful missions.

Core.Set#SET_ZONE CHIEF.borderzoneset

Set of zones defining the border of our territory.

Ops.Commander#COMMANDER CHIEF.commander

Commander of assigned legions.

Core.Set#SET_ZONE CHIEF.engagezoneset

Set of zones where enemies are actively engaged.

#string CHIEF.lid

Class id string for output to DCS log file.

#string CHIEF.strategy

Strategy of the CHIEF.

#boolean CHIEF.tacview
#table CHIEF.targetqueue

Target queue.

#number CHIEF.threatLevelMax

Highest threat level of targets to attack.

#number CHIEF.threatLevelMin

Lowest threat level of targets to attack.

#number CHIEF.verbose

Verbosity level.

#string CHIEF.version

CHIEF class version.

Core.Set#SET_ZONE CHIEF.yellowzoneset

Set of zones defining the extended border. Defcon is set to YELLOW if enemy activity is detected.

#table CHIEF.zonequeue

Strategic zone queue.

Function(s)

Add an AIRWING to the chief's commander.

Defined in:

CHIEF

Parameter:

The airwing to add.

Return value:

self

Add an attack zone.

  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.AGGRESSIVE.

Defined in:

CHIEF

Parameter:

The zone to add.

Return value:

self

Add an AWACS zone.

Defined in:

CHIEF

Parameters:

Zone.

#number Altitude

Orbit altitude in feet. Default is 12,0000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The AWACS zone data.

Add a zone defining your territory.

  • Detected enemy troops in these zones will trigger defence condition RED.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.DEFENSIVE.

Defined in:

CHIEF

Parameter:

The zone.

Return value:

self

Add a BRIGADE to the chief's commander.

Defined in:

CHIEF

Parameter:

The brigade to add.

Return value:

self

Add a CAP zone.

Flights will engage detected targets inside this zone.

Defined in:

CHIEF

Parameters:

CAP Zone. Has to be a circular zone.

#number Altitude

Orbit altitude in feet. Default is 12,0000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The CAP zone data.

Add a conflict zone.

  • Detected enemy troops in these zones will trigger defence condition YELLOW.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.OFFENSIVE.

Defined in:

CHIEF

Parameter:

The zone to add.

Return value:

self

Add a FLEET to the chief's commander.

Defined in:

CHIEF

Parameter:

The fleet to add.

Return value:

self

Add a GCI CAP.

Defined in:

CHIEF

Parameters:

Zone, where the flight orbits.

#number Altitude

Orbit altitude in feet. Default is 12,0000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

Return value:

The CAP zone data.

Add a LEGION to the chief's commander.

Defined in:

CHIEF

Parameter:

The legion to add.

Return value:

self

Add mission to mission queue of the COMMANDER.

Defined in:

CHIEF

Parameter:

Mission to be added.

Return value:

self

Add transport to transport queue of the COMMANDER.

Defined in:

CHIEF

Parameter:

Transport to be added.

Return value:

self

Add a rearming zone.

Defined in:

CHIEF

Parameter:

Core.Zone#ZONE RearmingZone

Rearming zone.

Return value:

The rearming zone data.

Add a refuelling zone.

Defined in:

CHIEF

Parameter:

Core.Zone#ZONE RefuellingZone

Refuelling zone.

Return value:

The refuelling zone data.

Add strategically important zone.

By default two resource lists are created. One for the case that the zone is empty and the other for the case that the zone is occupied.

Occupied:

  • AUFTRAG.Type.ARTY with Nmin=1, Nmax=2
  • AUFTRAG.Type.CASENHANCED with Nmin=1, Nmax=2

Empty:

  • AUFTRAG.Type.ONGUARD with Nmin=1 and Nmax=3 assets, Attribute=GROUP.Attribute.GROUND_INFANTRY.
  • AUFTRAG.Type.ONGURAD with Nmin=1 and Nmax=1 assets, Attribute=GROUP.Attribute.GROUND_TANK.

Resources can be created with the CHIEF.CreateResource and CHIEF.AddToResource functions.

Defined in:

CHIEF

Parameters:

OPS zone object.

#number Priority

Priority. Default 50.

#number Importance

Importance. Default nil.

#CHIEF.Resource ResourceOccupied

(Optional) Resources used then zone is occupied by the enemy.

#CHIEF.Resource ResourceEmpty

(Optional) Resources used then zone is empty.

Return value:

The strategic zone.

Add a refuelling tanker zone.

Defined in:

CHIEF

Parameters:

Zone.

#number Altitude

Orbit altitude in feet. Default is 12,0000 feet.

#number Speed

Orbit speed in KIAS. Default 350 kts.

#number Heading

Heading of race-track pattern in degrees. Default 270 (East to West).

#number Leg

Length of race-track in NM. Default 30 NM.

#number RefuelSystem

Refuelling system.

Return value:

The tanker zone data.

Add target.

Defined in:

CHIEF

Parameter:

Target object to be added.

Return value:

self

Add mission type and number of required assets to resource.

Defined in:

CHIEF

Parameters:

#table Resource

Resource table.

#string MissionType

Mission Type.

#number Nmin

Min number of required assets.

#number Nmax

Max number of requried assets.

#table Attributes

Generalized attribute(s).

#table Properties

DCS attribute(s). Default nil.

Return value:

self

Allow chief to use GROUND units for transport tasks.

Helicopters are still preferred, and be aware there's no check as of now if a destination can be reached on land.

Defined in:

CHIEF

Return value:

self

Check if group is in a attack zone.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any attack zone.

Check if group is inside our border.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any border zone.

Check if group is in a conflict zone.

Defined in:

CHIEF

Parameter:

The group.

Return value:

#boolean:

If true, group is in any conflict zone.

Check if group is inside a zone.

Defined in:

CHIEF

Parameters:

The group.

Set of zones.

Return value:

#boolean:

If true, group is in any zone.

Check strategic zone queue.

Defined in:

CHIEF

Check if group is inside a zone.

Defined in:

CHIEF

Parameters:

The target.

Set of zones.

Return value:

#boolean:

If true, group is in any zone.

Check target queue and assign ONE valid target by adding it to the mission queue of the COMMANDER.

Defined in:

CHIEF

Create a new resource list of required assets.

Defined in:

CHIEF

Parameters:

#string MissionType

The mission type.

#number Nmin

Min number of required assets. Default 1.

#number Nmax

Max number of requried assets. Default 1.

#table Attributes

Generalized attribute(s). Default nil.

#table Properties

DCS attribute(s). Default nil.

Return value:

#table:

The resource object.

Triggers the FSM event "DefconChange".

Defined in:

CHIEF

Parameter:

#string Defcon

New Defence Condition.

Delete mission type from resource list.

All running missions are cancelled.

Defined in:

CHIEF

Parameters:

#table Resource

Resource table.

#string MissionType

Mission Type.

Return value:

self

Forbid chief to use GROUND units for transport tasks.

Restrict to Helicopters. This is the default

Defined in:

CHIEF

Return value:

self

Get the commander.

Defined in:

CHIEF

Return value:

The commander.

Get defence condition.

Defined in:

CHIEF

Parameters:

#string Current

Defence condition. See CHIEF.DEFCON, e.g. CHIEF.DEFCON.RED.

Defcon

Get mission limit.

Defined in:

CHIEF

Parameter:

#string MissionType

Type of mission.

Return value:

#number:

Limit. Unlimited mission types are returned as 999.

Get the resource list of missions and assets employed when the zone is empty.

Defined in:

CHIEF

Parameter:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

Return value:

Resource list of missions and assets.

Get the resource list of missions and assets employed when the zone is occupied by the enemy.

Defined in:

CHIEF

Parameter:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

Return value:

Resource list of missions and assets.

Check if current strategy is aggressive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is agressive.

Check if current strategy is defensive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is defensive.

Check if current strategy is offensive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is offensive.

Check if current strategy is passive.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is passive.

Check if a TARGET is already in the queue.

Defined in:

CHIEF

Parameter:

Target object to be added.

Return value:

#boolean:

If true, target exists in the target queue.

Check if current strategy is total war.

Defined in:

CHIEF

Return value:

#boolean:

If true, strategy is total war.

Triggers the FSM event "MissionAssign".

Defined in:

CHIEF

Parameters:

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

Triggers the FSM event "MissionCancel".

Defined in:

CHIEF

Parameter:

The mission.

Create a new CHIEF object and start the FSM.

Defined in:

CHIEF

Parameters:

#number Coalition

Coalition side, e.g. coaliton.side.BLUE. Can also be passed as a string "red", "blue" or "neutral".

Set of agents (groups) providing intel. Default is an empty set.

#string Alias

An optional alias how this object is called in the logs etc.

Return value:

self

On after "DefconChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Defcon

New Defence Condition.

On after "MissionAssign" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

On after "MissionCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

On after "OpsOnMission" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The OPS group on mission.

The mission.

On after "StrategyChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Strategy

New strategy.

On after "TransportCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The transport.

On after "ZoneAttacked" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that is being attacked.

On after "ZoneCaptured" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that was captured.

On after "ZoneEmpty" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that is empty now.

On after "ZoneLost" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Zone that was lost.

Triggers the FSM event "OpsOnMission".

Defined in:

CHIEF

Parameters:

The OPS group on mission.

The mission.

Recruit assets for a given TARGET.

Defined in:

CHIEF

Parameters:

The target.

#string MissionType

Mission Type.

#number NassetsMin

Min number of required assets.

#number NassetsMax

Max number of required assets.

Return values:

#boolean:

If true enough assets could be recruited.

#table:

Assets that have been recruited from all legions.

#table:

Legions that have recruited assets.

Recruit assets for a given OPS zone.

Defined in:

CHIEF

Parameters:

The strategic zone.

#CHIEF.Resource Resource

The required resources.

Return value:

#boolean:

If true enough assets could be recruited.

Remove mission from queue.

Defined in:

CHIEF

Parameter:

Mission to be removed.

Return value:

self

Remove strategically important zone.

All runing missions are cancelled.

Defined in:

CHIEF

Parameters:

OPS zone object.

#number Delay

Delay in seconds before the zone is removed. Default immidiately.

Return value:

self

Remove target from queue.

Defined in:

CHIEF

Parameter:

The target.

Return value:

self

Remove transport from queue.

Defined in:

CHIEF

Parameter:

Transport to be removed.

Return value:

self

Set this to be an air-to-air dispatcher.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-any dispatcher, i.e.

engaging air, ground and naval targets. This is the default anyway.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-ground dispatcher, i.e.

engage only ground units

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-sea dispatcher, i.e.

engage only naval units.

Defined in:

CHIEF

Return value:

self

Set this to be an air-to-surface dispatcher, i.e.

engaging ground and naval groups.

Defined in:

CHIEF

Return value:

self

Set attack zone set.

  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.AGGRESSIVE.

Defined in:

CHIEF

Parameter:

Set of zones.

Return value:

self

Set border zone set, defining your territory.

  • Detected enemy troops in these zones will trigger defence condition RED.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.DEFENSIVE.

Defined in:

CHIEF

Parameter:

Core.Set#SET_ZONE BorderZoneSet

Set of zones, defining our borders.

Return value:

self

Set conflict zone set.

  • Detected enemy troops in these zones will trigger defence condition YELLOW.
  • Enemies in these zones will only be engaged if strategy is at least CHIEF.STRATEGY.OFFENSIVE.

Defined in:

CHIEF

Parameter:

Set of zones.

Return value:

self

Set defence condition.

Defined in:

CHIEF

Parameter:

#string Defcon

Defence condition. See CHIEF.DEFCON, e.g. CHIEF.DEFCON.RED.

Return value:

self

Set limit for number of total or specific missions to be executed simultaniously.

Defined in:

CHIEF

Parameters:

#number Limit

Number of max. mission of this type. Default 10.

#string MissionType

Type of mission, e.g. AUFTRAG.Type.BAI. Default "Total" for total number of missions.

Return value:

self

Set the resource list of missions and assets employed when the zone is empty.

Defined in:

CHIEF

Parameters:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

#CHIEF.Resource Resource

Resource list of missions and assets.

#boolean NoCopy

If true, do not create a deep copy of the resource.

Return value:

self

Set the resource list of missions and assets employed when the zone is occupied by the enemy.

Defined in:

CHIEF

Parameters:

#CHIEF.StrategicZone StrategicZone

The strategic zone.

#CHIEF.Resource Resource

Resource list of missions and assets.

#boolean NoCopy

If true, do not create a deep copy of the resource.

Return value:

self

Set strategy.

Defined in:

CHIEF

Parameter:

#string Strategy

Strategy. See CHIEF.strategy, e.g. CHIEF.Strategy.DEFENSIVE (default).

Return value:

self

Set tactical overview off.

Defined in:

CHIEF

Return value:

self

Set tactical overview on.

Defined in:

CHIEF

Return value:

self

Set a threat level range that will be engaged.

Threat level is a number between 0 and 10, where 10 is a very dangerous threat. Targets with threat level 0 are usually harmless.

Defined in:

CHIEF

Parameters:

#number ThreatLevelMin

Min threat level. Default 1.

#number ThreatLevelMax

Max threat level. Default 10.

Return value:

self

Triggers the FSM event "Start".

Defined in:

CHIEF

Triggers the FSM event "Status".

Defined in:

CHIEF

Triggers the FSM event "StrategyChange".

Defined in:

CHIEF

Parameter:

#string Strategy

New strategy.

Triggers the FSM event "TransportCancel".

Defined in:

CHIEF

Parameter:

The transport.

Triggers the FSM event "ZoneAttacked".

Defined in:

CHIEF

Parameter:

Zone that is being attacked.

Triggers the FSM event "ZoneCaptured".

Defined in:

CHIEF

Parameter:

Zone that was captured.

Triggers the FSM event "ZoneEmpty".

Defined in:

CHIEF

Parameter:

Zone that is empty now.

Triggers the FSM event "ZoneLost".

Defined in:

CHIEF

Parameter:

Zone that was lost.

Check if limit of missions has been reached.

Defined in:

CHIEF

Parameter:

#string MissionType

Type of mission.

Return value:

#boolean:

If true, mission limit has not been reached. If false, limit has been reached.

Create a mission performance table.

Defined in:

CHIEF

Parameters:

#string MissionType

Mission type.

#number Performance

Performance.

Return value:

Mission performance.

Get mission performance for a given TARGET.

Defined in:

CHIEF

Parameter:

The target.

Return value:

#table:

Mission performances of type #CHIEF.MissionPerformance.

Get mission performances for a given Group Attribute.

Defined in:

CHIEF

Parameter:

#string Attribute

Group attibute.

Return value:

#table:

Mission performances of type #CHIEF.MissionPerformance.

Display tactical overview.

Defined in:

CHIEF

Triggers the FSM event "DefconChange" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

#string Defcon

New Defence Condition.

Triggers the FSM event "MissionAssign" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

Triggers the FSM event "MissionCancel" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The mission.

Triggers the FSM event "OpsOnMission" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The OPS group on mission.

The mission.

Triggers the FSM event "Start" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Status" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Stop" after a delay.

Defined in:

CHIEF

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "StrategyChange" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

#string Strategy

New strategy.

Triggers the FSM event "TransportCancel" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

The transport.

Triggers the FSM event "ZoneAttacked" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that is being attacked.

Triggers the FSM event "ZoneCaptured" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that was captured.

Triggers the FSM event "ZoneEmpty" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that is empty now.

Triggers the FSM event "ZoneLost" after a delay.

Defined in:

CHIEF

Parameters:

#number delay

Delay in seconds.

Zone that was lost.

On after "DefconChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Defcon

New defence condition.

On after "MissionAssignToAny" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

#table Legions

The Legion(s) to which the mission is assigned.

On after "MissionCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The mission.

On after "OpsOnMission".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

Ops group on mission

The requested mission.

On after Start event.

Defined in:

CHIEF

Parameters:

Flight group.

#string From

From state.

#string Event

Event.

#string To

To state.

On after "Status" event.

Defined in:

CHIEF

Parameters:

Flight group.

#string From

From state.

#string Event

Event.

#string To

To state.

On after "StrategyChange" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string Strategy

On after "TransportCancel" event.

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The transport.

On after "ZoneAttacked".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that being attacked.

On after "ZoneCaptured".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that was captured by us.

On after "ZoneEmpty".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that is empty now.

On after "ZoneLost".

Defined in:

CHIEF

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

The zone that was lost.

Defence condition.

Field(s)

#string CHIEF.DEFCON.GREEN

No enemy activities detected in our terretory or conflict zones.

#string CHIEF.DEFCON.RED

Enemy within our border.

#string CHIEF.DEFCON.YELLOW

Enemy in conflict zones.

Function(s)

Mission performance.

Field(s)

#string CHIEF.MissionPerformance.MissionType

Mission Type.

#number CHIEF.MissionPerformance.Performance

Performance: a number between 0 and 100, where 100 is best performance.

Function(s)

Resource.

Field(s)

#table CHIEF.Resource.Attributes

Generalized attribute, e.g. {GROUP.Attribute.GROUND_INFANTRY}.

#string CHIEF.Resource.MissionType

Mission type, e.g. AUFTRAG.Type.BAI.

#number CHIEF.Resource.Nmax

Max number of assets.

#number CHIEF.Resource.Nmin

Min number of assets.

#table CHIEF.Resource.Properties

Properties (DCS attributes), e.g. "Attack helicopters" or "Mobile AAA".

Function(s)

Strategic zone.

Field(s)

#number CHIEF.StrategicZone.importance

Importance.

#number CHIEF.StrategicZone.prio

Priority.

#table CHIEF.StrategicZone.resourceEmpty

Resource list.

#table CHIEF.StrategicZone.resourceOccup

Resource list.

Function(s)

Strategy.

Field(s)

#string CHIEF.Strategy.AGGRESSIVE

Targets in own terretory, conflict zones and attack zones are engaged.

#string CHIEF.Strategy.DEFENSIVE

Only target in our own terretory are engaged.

#string CHIEF.Strategy.OFFENSIVE

Targets in own terretory and yellow zones are engaged.

#string CHIEF.Strategy.PASSIVE

No targets at all are engaged.

#string CHIEF.Strategy.TOTALWAR

Anything is engaged anywhere.

Function(s)