Banner Image

Module Ops.CTLD

Ops -- Combat Troops & Logistics Department.


CTLD - MOOSE based Helicopter CTLD Operations.


Missions:

CTLD - Combat Troop & Logistics Deployment


Main Features:

  • MOOSE-based Helicopter CTLD Operations for Players.

Author: Applevangelist (Moose Version), Ciribob (original), Thanks to: Shadowze, Cammel (testing), bbirchnz (additional code!!)

Global(s)

Global CTLD

Combat Troop & Logistics Deployment (CTLD): Everyone wants to be a POG, until there's POG stuff to be done. (Mil Saying)


Banner Image

CTLD Concept

  • MOOSE-based CTLD for Players.
#CTLD CTLD

Combat Troop & Logistics Deployment (CTLD): Everyone wants to be a POG, until there's POG stuff to be done. (Mil Saying)


Banner Image

CTLD Concept

  • MOOSE-based CTLD for Players.
  • Object oriented refactoring of Ciribob's fantastic CTLD script.
  • No need for extra MIST loading.
  • Additional events to tailor your mission.
  • ANY late activated group can serve as cargo, either as troops, crates, which have to be build on-location, or static like ammo chests.
  • Option to persist (save&load) your dropped troops, crates and vehicles.
  • Weight checks on loaded cargo.

0. Prerequisites

You need to load an .ogg soundfile for the pilot's beacons into the mission, e.g. "beacon.ogg", use a once trigger, "sound to country" for that. Create the late-activated troops, vehicles, that will make up your deployable forces.

1. Basic Setup

1.1 Create and start a CTLD instance

A basic setup example is the following:

   -- Instantiate and start a CTLD for the blue side, using helicopter groups named "Helicargo" and alias "Lufttransportbrigade I"
   local my_ctld = CTLD:New(coalition.side.BLUE,{"Helicargo"},"Lufttransportbrigade I")
   my_ctld:__Start(5)

1.2 Add cargo types available

Add generic cargo types that you need for your missions, here infantry units, vehicles and a FOB. These need to be late-activated Wrapper.Group#GROUP objects:

   -- add infantry unit called "Anti-Tank Small" using template "ATS", of type TROOP with size 3
   -- infantry units will be loaded directly from LOAD zones into the heli (matching number of free seats needed)
   my_ctld:AddTroopsCargo("Anti-Tank Small",{"ATS"},CTLD_CARGO.Enum.TROOPS,3)
   -- if you want to add weight to your Heli, troops can have a weight in kg **per person**. Currently no max weight checked. Fly carefully.
   my_ctld:AddTroopsCargo("Anti-Tank Small",{"ATS"},CTLD_CARGO.Enum.TROOPS,3,80)

   -- add infantry unit called "Anti-Tank" using templates "AA" and "AA"", of type TROOP with size 4. No weight. We only have 2 in stock:
   my_ctld:AddTroopsCargo("Anti-Air",{"AA","AA2"},CTLD_CARGO.Enum.TROOPS,4,nil,2)

   -- add an engineers unit called "Wrenches" using template "Engineers", of type ENGINEERS with size 2. Engineers can be loaded, dropped,
   -- and extracted like troops. However, they will seek to build and/or repair crates found in a given radius. Handy if you can\'t stay
   -- to build or repair or under fire.
   my_ctld:AddTroopsCargo("Wrenches",{"Engineers"},CTLD_CARGO.Enum.ENGINEERS,4)
   myctld.EngineerSearch = 2000 -- teams will search for crates in this radius.

   -- add vehicle called "Humvee" using template "Humvee", of type VEHICLE, size 2, i.e. needs two crates to be build
   -- vehicles and FOB will be spawned as crates in a LOAD zone first. Once transported to DROP zones, they can be build into the objects
   my_ctld:AddCratesCargo("Humvee",{"Humvee"},CTLD_CARGO.Enum.VEHICLE,2)
   -- if you want to add weight to your Heli, crates can have a weight in kg **per crate**. Fly carefully.
   my_ctld:AddCratesCargo("Humvee",{"Humvee"},CTLD_CARGO.Enum.VEHICLE,2,2775)
   -- if you want to limit your stock, add a number (here: 10) as parameter after weight. No parameter / nil means unlimited stock.
   my_ctld:AddCratesCargo("Humvee",{"Humvee"},CTLD_CARGO.Enum.VEHICLE,2,2775,10)

   -- add infantry unit called "Forward Ops Base" using template "FOB", of type FOB, size 4, i.e. needs four crates to be build:
   my_ctld:AddCratesCargo("Forward Ops Base",{"FOB"},CTLD_CARGO.Enum.FOB,4)

   -- add crates to repair FOB or VEHICLE type units - the 2nd parameter needs to match the template you want to repair,
   -- e.g. the "Humvee" here refers back to the "Humvee" crates cargo added above (same template!)
   my_ctld:AddCratesRepair("Humvee Repair","Humvee",CTLD_CARGO.Enum.REPAIR,1)
   my_ctld.repairtime = 300 -- takes 300 seconds to repair something

   -- add static cargo objects, e.g ammo chests - the name needs to refer to a STATIC object in the mission editor, 
   -- here: it\'s the UNIT name (not the GROUP name!), the second parameter is the weight in kg.
   my_ctld:AddStaticsCargo("Ammunition",500)

1.3 Add logistics zones

Add (normal, round!) zones for loading troops and crates and dropping, building crates

   -- Add a zone of type LOAD to our setup. Players can load any troops and crates here as defined in 1.2 above.
   -- "Loadzone" is the name of the zone from the ME. Players can load, if they are inside the zone.
   -- Smoke and Flare color for this zone is blue, it is active (can be used) and has a radio beacon.
   my_ctld:AddCTLDZone("Loadzone",CTLD.CargoZoneType.LOAD,SMOKECOLOR.Blue,true,true)

   -- Add a zone of type DROP. Players can drop crates here.
   -- Smoke and Flare color for this zone is blue, it is active (can be used) and has a radio beacon.
   -- NOTE: Troops can be unloaded anywhere, also when hovering in parameters.
   my_ctld:AddCTLDZone("Dropzone",CTLD.CargoZoneType.DROP,SMOKECOLOR.Red,true,true)

   -- Add two zones of type MOVE. Dropped troops and vehicles will move to the nearest one. See options.
   -- Smoke and Flare color for this zone is blue, it is active (can be used) and has a radio beacon.
   my_ctld:AddCTLDZone("Movezone",CTLD.CargoZoneType.MOVE,SMOKECOLOR.Orange,false,false)

   my_ctld:AddCTLDZone("Movezone2",CTLD.CargoZoneType.MOVE,SMOKECOLOR.White,true,true)

   -- Add a zone of type SHIP to our setup. Players can load troops and crates from this ship
   -- "Tarawa" is the unitname (callsign) of the ship from the ME. Players can load, if they are inside the zone.
   -- The ship is 240 meters long and 20 meters wide.
   -- Note that you need to adjust the max hover height to deck height plus 5 meters or so for loading to work.
   -- When the ship is moving, avoid forcing hoverload.
   my_ctld:AddCTLDZone("Tarawa",CTLD.CargoZoneType.SHIP,SMOKECOLOR.Blue,true,true,240,20)

2. Options

The following options are available (with their defaults). Only set the ones you want changed:

     my_ctld.useprefix = true -- (DO NOT SWITCH THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING!) Adjust **before** starting CTLD. If set to false, *all* choppers of the coalition side will be enabled for CTLD.
     my_ctld.CrateDistance = 35 -- List and Load crates in this radius only.
     my_ctld.dropcratesanywhere = false -- Option to allow crates to be dropped anywhere.
     my_ctld.maximumHoverHeight = 15 -- Hover max this high to load.
     my_ctld.minimumHoverHeight = 4 -- Hover min this low to load.
     my_ctld.forcehoverload = true -- Crates (not: troops) can **only** be loaded while hovering.
     my_ctld.hoverautoloading = true -- Crates in CrateDistance in a LOAD zone will be loaded automatically if space allows.
     my_ctld.smokedistance = 2000 -- Smoke or flares can be request for zones this far away (in meters).
     my_ctld.movetroopstowpzone = true -- Troops and vehicles will move to the nearest MOVE zone...
     my_ctld.movetroopsdistance = 5000 -- .. but only if this far away (in meters)
     my_ctld.smokedistance = 2000 -- Only smoke or flare zones if requesting player unit is this far away (in meters)
     my_ctld.suppressmessages = false -- Set to true if you want to script your own messages.
     my_ctld.repairtime = 300 -- Number of seconds it takes to repair a unit.
     my_ctld.cratecountry = country.id.GERMANY -- ID of crates. Will default to country.id.RUSSIA for RED coalition setups.
     my_ctld.allowcratepickupagain = true  -- allow re-pickup crates that were dropped.
     my_ctld.enableslingload = false -- allow cargos to be slingloaded - might not work for all cargo types
     my_ctld.pilotmustopendoors = false -- force opening of doors
     my_ctld.SmokeColor = SMOKECOLOR.Red -- default color to use when dropping smoke from heli 
     my_ctld.FlareColor = FLARECOLOR.Red -- color to use when flaring from heli
     my_ctld.basetype = "container_cargo" -- default shape of the cargo container
     my_ctld.droppedbeacontimeout = 600 -- dropped beacon lasts 10 minutes
     my_ctld.usesubcats = false -- use sub-category names for crates, adds an extra menu layer in "Get Crates", useful if you have > 10 crate types.

2.1 User functions

2.1.1 Adjust or add chopper unit-type capabilities

Use this function to adjust what a heli type can or cannot do:

   -- E.g. update unit capabilities for testing. Please stay realistic in your mission design.
   -- Make a Gazelle into a heavy truck, this type can load both crates and troops and eight of each type, up to 4000 kgs:
   my_ctld:UnitCapabilities("SA342L", true, true, 8, 8, 12, 4000)

   -- Default unit type capabilities are: 
   ["SA342Mistral"] = {type="SA342Mistral", crates=false, troops=true, cratelimit = 0, trooplimit = 4, length = 12, cargoweightlimit = 400},
   ["SA342L"] = {type="SA342L", crates=false, troops=true, cratelimit = 0, trooplimit = 2, length = 12, cargoweightlimit = 400},
   ["SA342M"] = {type="SA342M", crates=false, troops=true, cratelimit = 0, trooplimit = 4, length = 12, cargoweightlimit = 400},
   ["SA342Minigun"] = {type="SA342Minigun", crates=false, troops=true, cratelimit = 0, trooplimit = 2, length = 12, cargoweightlimit = 400},
   ["UH-1H"] = {type="UH-1H", crates=true, troops=true, cratelimit = 1, trooplimit = 8, length = 15, cargoweightlimit = 700},
   ["Mi-8MT"] = {type="Mi-8MT", crates=true, troops=true, cratelimit = 2, trooplimit = 12, length = 15, cargoweightlimit = 3000},
   ["Ka-50"] = {type="Ka-50", crates=false, troops=false, cratelimit = 0, trooplimit = 0, length = 15, cargoweightlimit = 0},
   ["Mi-24P"] = {type="Mi-24P", crates=true, troops=true, cratelimit = 2, trooplimit = 8, length = 18, cargoweightlimit = 700},
   ["Mi-24V"] = {type="Mi-24V", crates=true, troops=true, cratelimit = 2, trooplimit = 8, length = 18, cargoweightlimit = 700},
   ["Hercules"] = {type="Hercules", crates=true, troops=true, cratelimit = 7, trooplimit = 64, length = 25, cargoweightlimit = 19000},
   ["UH-60L"] = {type="UH-60L", crates=true, troops=true, cratelimit = 2, trooplimit = 20, length = 16, cargoweightlimit = 3500},
   ["AH-64D_BLK_II"] = {type="AH-64D_BLK_II", crates=false, troops=true, cratelimit = 0, trooplimit = 2, length = 17, cargoweightlimit = 200}, 

2.1.2 Activate and deactivate zones

Activate a zone:

   -- Activate zone called Name of type #CTLD.CargoZoneType ZoneType:
   my_ctld:ActivateZone(Name,CTLD.CargoZoneType.MOVE)

Deactivate a zone:

   -- Deactivate zone called Name of type #CTLD.CargoZoneType ZoneType:
   my_ctld:DeactivateZone(Name,CTLD.CargoZoneType.DROP)

2.1.3 Limit and manage available resources

When adding generic cargo types, you can effectively limit how many units can be dropped/build by the players, e.g.

         -- if you want to limit your stock, add a number (here: 10) as parameter after weight. No parameter / nil means unlimited stock.
         my_ctld:AddCratesCargo("Humvee",{"Humvee"},CTLD_CARGO.Enum.VEHICLE,2,2775,10)

You can manually add or remove the available stock like so:

         -- Crates
         my_ctld:AddStockCrates("Humvee", 2)
         my_ctld:RemoveStockCrates("Humvee", 2)

         -- Troops
         my_ctld:AddStockTroops("Anti-Air", 2)
         my_ctld:RemoveStockTroops("Anti-Air", 2)

Notes: Troops dropped back into a LOAD zone will effectively be added to the stock. Crates lost in e.g. a heli crash are just that - lost.

3. Events

The class comes with a number of FSM-based events that missions designers can use to shape their mission. These are:

3.1 OnAfterTroopsPickedUp

This function is called when a player has loaded Troops:

   function my_ctld:OnAfterTroopsPickedUp(From, Event, To, Group, Unit, Cargo)
     ... your code here ...
   end

3.2 OnAfterCratesPickedUp

This function is called when a player has picked up crates:

   function my_ctld:OnAfterCratesPickedUp(From, Event, To, Group, Unit, Cargo)
     ... your code here ...
   end

3.3 OnAfterTroopsDeployed

This function is called when a player has deployed troops into the field:

   function my_ctld:OnAfterTroopsDeployed(From, Event, To, Group, Unit, Troops)
     ... your code here ...
   end

3.4 OnAfterTroopsExtracted

This function is called when a player has re-boarded already deployed troops from the field:

   function my_ctld:OnAfterTroopsExtracted(From, Event, To, Group, Unit, Troops)
     ... your code here ...
   end

3.5 OnAfterCratesDropped

This function is called when a player has deployed crates to a DROP zone:

   function my_ctld:OnAfterCratesDropped(From, Event, To, Group, Unit, Cargotable)
     ... your code here ...
   end

3.6 OnAfterCratesBuild, OnAfterCratesRepaired

This function is called when a player has build a vehicle or FOB:

   function my_ctld:OnAfterCratesBuild(From, Event, To, Group, Unit, Vehicle)
     ... your code here ...
   end

   function my_ctld:OnAfterCratesRepaired(From, Event, To, Group, Unit, Vehicle)
     ... your code here ...
   end

3.7 A simple SCORING example:

To award player with points, using the SCORING Class (SCORING: my_Scoring, CTLD: CTLD_Cargotransport)

   function CTLD_Cargotransport:OnAfterCratesDropped(From, Event, To, Group, Unit, Cargotable)
       local points = 10
       if Unit then
         local PlayerName = Unit:GetPlayerName()
         my_scoring:_AddPlayerFromUnit( Unit )
         my_scoring:AddGoalScore(Unit, "CTLD", string.format("Pilot %s has been awarded %d points for transporting cargo crates!", PlayerName, points), points)
       end
   end

   function CTLD_Cargotransport:OnAfterCratesBuild(From, Event, To, Group, Unit, Vehicle)
     local points = 5
     if Unit then
     local PlayerName = Unit:GetPlayerName()
     my_scoring:_AddPlayerFromUnit( Unit )
     my_scoring:AddGoalScore(Unit, "CTLD", string.format("Pilot %s has been awarded %d points for the construction of Units!", PlayerName, points), points)
     end
    end

4. F10 Menu structure

CTLD management menu is under the F10 top menu and called "CTLD"

4.1 Manage Crates

Use this entry to get, load, list nearby, drop, build and repair crates. Also see options.

4.2 Manage Troops

Use this entry to load, drop and extract troops. NOTE - with extract you can only load troops from the field that were deployed prior. Currently limited CTLD_CARGO troops, which are build from one template. Also, this will heal/complete your units as they are respawned.

4.3 List boarded cargo

Lists what you have loaded. Shows load capabilities for number of crates and number of seats for troops.

4.4 Smoke & Flare zones nearby or drop smoke, beacon or flare from Heli

Does what it says.

4.5 List active zone beacons

Lists active radio beacons for all zones, where zones are both active and have a beacon. @see CTLD:AddCTLDZone()

4.6 Show hover parameters

Lists hover parameters and indicates if these are curently fulfilled. Also @see options on hover heights.

4.7 List Inventory

Lists invetory of available units to drop or build.

5. Support for Hercules mod by Anubis

Basic support for the Hercules mod By Anubis has been build into CTLD - that is you can load/drop/build the same way and for the same objects as the helicopters (main method). To cover objects and troops which can be loaded from the groud crew Rearm/Refuel menu (F8), you need to use CTLD_HERCULES.New() and link this object to your CTLD setup (alternative method). In this case, do not use the Hercules_Cargo.lua or Hercules_Cargo_CTLD.lua which are part of the mod in your mission!

5.1 Create an own CTLD instance and allow the usage of the Hercules mod (main method)

         local my_ctld = CTLD:New(coalition.side.BLUE,{"Helicargo", "Hercules"},"Lufttransportbrigade I")

Enable these options for Hercules support:

         my_ctld.enableHercules = true
         my_ctld.HercMinAngels = 155 -- for troop/cargo drop via chute in meters, ca 470 ft
         my_ctld.HercMaxAngels = 2000 -- for troop/cargo drop via chute in meters, ca 6000 ft
         my_ctld.HercMaxSpeed = 77 -- 77mps or 270kph or 150kn

Hint: you can only airdrop from the Hercules if you are "in parameters", i.e. at or below HercMaxSpeed and in the AGL bracket between HercMinAngels and HercMaxAngels!

Also, the following options need to be set to true:

         my_ctld.useprefix = true -- this is true by default and MUST BE ON. 

5.2 Integrate Hercules ground crew (F8 Menu) loadable objects (alternative method)

Integrate to your CTLD instance like so, where my_ctld is a previously created CTLD instance:

       my_ctld.enableHercules = false -- avoid dual loading via CTLD F10 and F8 ground crew
       local herccargo = CTLD_HERCULES:New("blue", "Hercules Test", my_ctld)

You also need:

  • A template called "Infantry" for 10 Paratroopers (as set via herccargo.infantrytemplate).
  • Depending on what you are loading with the help of the ground crew, there are 42 more templates for the various vehicles that are loadable.

There's a quick check output in the dcs.log which tells you what's there and what not. E.g.:

       ...Checking template for APC BTR-82A Air [24998lb] (BTR-82A) ... MISSING)   
       ...Checking template for ART 2S9 NONA Skid [19030lb] (SAU 2-C9) ... MISSING)   
       ...Checking template for EWR SBORKA Air [21624lb] (Dog Ear radar) ... MISSING)   
       ...Checking template for Transport Tigr Air [15900lb] (Tigr_233036) ... OK)   

Expected template names are the ones in the rounded brackets.

5.2.1 Hints

The script works on the EVENTS.Shot trigger, which is used by the mod when you drop cargo from the Hercules while flying. Unloading on the ground does not achieve anything here. If you just want to unload on the ground, use the normal Moose CTLD (see 5.1).

There are two ways of airdropping:

1) Very low and very slow (>5m and <10m AGL) - here you can drop stuff which has "Skid" at the end of the cargo name (loaded via F8 Ground Crew menu)
2) Higher up and slow (>100m AGL) - here you can drop paratroopers and cargo which has "Air" at the end of the cargo name (loaded via F8 Ground Crew menu)

Standard transport capabilities as per the real Hercules are:

          ["Hercules"] = {type="Hercules", crates=true, troops=true, cratelimit = 7, trooplimit = 64}, -- 19t cargo, 64 paratroopers

6. Save and load back units - persistance

You can save and later load back units dropped or build to make your mission persistent. For this to work, you need to de-sanitize io and lfs in your MissionScripting.lua, which is located in your DCS installtion folder under Scripts. There is a risk involved in doing that; if you do not know what that means, this is possibly not for you.

Use the following options to manage your saves:

         my_ctld.enableLoadSave = true -- allow auto-saving and loading of files
         my_ctld.saveinterval = 600 -- save every 10 minutes
         my_ctld.filename = "missionsave.csv" -- example filename
         my_ctld.filepath = "C:\\Users\\myname\\Saved Games\\DCS\Missions\\MyMission" -- example path
         my_ctld.eventoninject = true -- fire OnAfterCratesBuild and OnAfterTroopsDeployed events when loading (uses Inject functions)

Then use an initial load at the beginning of your mission:

       my_ctld:__Load(10)

Caveat: If you use units build by multiple templates, they will effectively double on loading. Dropped crates are not saved. Current stock is not saved.

Global CTLD_ENGINEERING

Global CTLD_HERCULES

Type(s)

CTLD , extends Core.Fsm#FSM , extends Core.Base#BASE
Fields and Methods inherited from CTLD Description

CTLD:ActivateZone(Name, ZoneType, NewState)

User function - Activate Name #CTLD.CargoZone.Type ZoneType for this CTLD instance.

CTLD:AddCTLDZone(Name, Type, Color, Active, HasBeacon, Shiplength, Shipwidth)

User function - Creates and adds a #CTLD.CargoZone zone for this CTLD instance.

CTLD:AddCTLDZoneFromAirbase(AirbaseName, Type, Color, Active, HasBeacon)

User function - Creates and adds a #CTLD.CargoZone zone for this CTLD instance from an Airbase or FARP name.

CTLD:AddCratesCargo(Name, Templates, Type, NoCrates, PerCrateMass, Stock, SubCategory)

User function - Add generic crate-type loadable as cargo.

CTLD:AddCratesRepair(Name, Template, Type, NoCrates, PerCrateMass, Stock, SubCategory)

User function - Add generic repair crates loadable as cargo.

CTLD:AddStaticsCargo(Name, Mass, Stock)

User function - Add generic static-type loadable as cargo.

CTLD:AddStockCrates(Name, Number)

User - function to add stock of a certain crates type

CTLD:AddStockTroops(Name, Number)

User - function to add stock of a certain troops type

CTLD:AddTroopsCargo(Name, Templates, Type, NoTroops, PerTroopMass, Stock)

User function - Add generic troop type loadable as cargo.

CTLD:AddZone(Zone)

User function - Add a #CTLD.CargoZoneType zone for this CTLD instance.

CTLD:AutoHoverLoad(Unit)

(Internal) Autoload if we can do crates, have capacity free and are in a load zone.

CTLD:CanHoverLoad(Unit)

(Internal) Check if a unit is in a load zone and is hovering in parameters.

CTLD.CargoCounter

CTLD.CargoType

CTLD.CargoZoneType

CTLD.Cargo_Crates

CTLD.Cargo_Statics

CTLD.Cargo_Troops

CTLD:CheckAutoHoverload()

(Internal) Run through all pilots and see if we autoload.

CTLD:CheckDroppedBeacons()

(Internal) Housekeeping dropped beacons.

CTLD.ClassName

Name of the class.

CTLD:CleanDroppedTroops()

(Internal) Run through DroppedTroops and capture alive units

CTLD.CrateCounter

CTLD.CrateDistance

CTLD.CratesNeeded

CTLD.CtldUnits

CTLD:DeactivateZone(Name, ZoneType)

User function - Deactivate Name #CTLD.CargoZoneType ZoneType for this CTLD instance.

CTLD:DropBeaconNow(Unit)

(Internal) Function to create a dropped beacon

CTLD.DroppedCrates

CTLD.DroppedTroops

CTLD.EngineerSearch

CTLD.Engineers

CTLD.EngineersInField

CTLD.ExtractFactor

CTLD.FlareColor

CTLD.FreeFMFrequencies

CTLD.FreeUHFFrequencies

CTLD.FreeVHFFrequencies

CTLD:GetStaticsCargoFromTemplate(Name, Mass)

User function - Get a generic static-type loadable as #CTLD_CARGO object.

CTLD.HasBeenDropped

CTLD.HasBeenMoved

CTLD.HercMaxAngels

CTLD.HercMaxSpeed

CTLD.HercMinAngels

CTLD.ID

CTLD:InjectStaticFromTemplate(Zone, Template, Mass)

(User) Inject static cargo objects.

CTLD:InjectStatics(Zone, Cargo, RandomCoord)

(Internal) Inject crates and static cargo objects.

CTLD:InjectTroops(Zone, Cargo)

(User) Pre-populate troops in the field.

CTLD:InjectVehicles(Zone, Cargo)

(User) Pre-populate vehicles in the field.

CTLD:IsCorrectFlightParameters(Unit)

(Internal) Check if a Hercules is flying in parameters for air drops.

CTLD:IsCorrectHover(Unit)

(Internal) Check if a unit is hovering in parameters.

CTLD:IsHercules(Unit)

(Internal) Function to check if a unit is a Hercules C-130.

CTLD:IsUnitInAir(Unit)

(Internal) Check if a unit is above ground.

CTLD:IsUnitInZone(Unit, Zonetype)

(Internal) Function to see if a unit is in a specific zone type.

CTLD:Load()

Triggers the FSM event "Save".

CTLD.LoadDirectly

CTLD.Loaded_Cargo

CTLD.Mark

CTLD.MenusDone

CTLD.Name

CTLD:New(Coalition, Prefixes, Alias)

Instantiate a new CTLD.

CTLD:OnAfterCratesBuild(From, Event, To, Group, Unit, Vehicle)

FSM Function OnAfterCratesBuild.

CTLD:OnAfterCratesDropped(From, Event, To, Group, Unit, Cargotable)

FSM Function OnAfterCratesDropped.

CTLD:OnAfterCratesPickedUp(From, Event, To, Group, Unit, Cargo)

FSM Function OnAfterCratesPickedUp.

CTLD:OnAfterCratesRepaired(From, Event, To, Group, Unit, Vehicle)

FSM Function OnAfterCratesRepaired.

CTLD:OnAfterLoad(From, Event, To, path, filename)

FSM Function OnAfterLoad.

CTLD:OnAfterSave(From, Event, To, path, filename)

FSM Function OnAfterSave.

CTLD:OnAfterTroopsDeployed(From, Event, To, Group, Unit, Troops)

FSM Function OnAfterTroopsDeployed.

CTLD:OnAfterTroopsExtracted(From, Event, To, Group, Unit, Cargo)

FSM Function OnAfterTroopsExtracted.

CTLD:OnAfterTroopsPickedUp(From, Event, To, Group, Unit, Cargo)

FSM Function OnAfterTroopsPickedUp.

CTLD:OnAfterTroopsRTB(From, Event, To, Group, Unit)

FSM Function OnAfterTroopsRTB.

CTLD.PerCrateMass

CTLD.PilotGroups

CTLD.Positionable

CTLD.RadioSound

CTLD:RemoveStockCrates(Name, Number)

User - function to remove stock of a certain crates type

CTLD:RemoveStockTroops(Name, Number)

User - function to remove stock of a certain troops type

CTLD:SetTroopDropZoneRadius(Radius)

(User) Set drop zone radius for troop drops in meters.

CTLD.SmokeColor

CTLD:SmokePositionNow(Unit, Flare, SmokeColor)

User function - Drop a smoke or flare at current location.

CTLD:SmokeZoneNearBy(Unit, Flare)

User function - Start smoke/flare in a zone close to the Unit.

CTLD.Spawned_Cargo

CTLD.Spawned_Crates

CTLD:Start()

Triggers the FSM event "Start".

CTLD:Status()

Triggers the FSM event "Status".

CTLD.Stock

CTLD.Subcategory

CTLD.Templates

CTLD.TroopCounter

CTLD:UnitCapabilities(Unittype, Cancrates, Cantroops, Cratelimit, Trooplimit, Length, Maxcargoweight)

User - Function to add/adjust unittype capabilities.

CTLD.UnitTypes

CTLD.UsedFMFrequencies

CTLD.UsedUHFFrequencies

CTLD.UsedVHFFrequencies

CTLD:_AddRadioBeacon(Name, Sound, Mhz, Modulation, IsShip, IsDropped)

(Internal) Add radio beacon to zone.

CTLD:_BuildCrates(Group, Unit, Engineering)

(Internal) Function to build nearby crates.

CTLD:_BuildObjectFromCrates(Group, Unit, Build, Repair, Coordinate, RepairLocation)

(Internal) Function to actually SPAWN buildables in the mission.

CTLD:_CheckEngineers()

(Internal) Check on engineering teams

CTLD:_CheckTemplates(temptable)

[Internal] Function to check if a template exists in the mission.

CTLD:_CleanUpCrates(Crates, Build, Number)

(Internal) Housekeeping - Cleanup crates when build

CTLD:_CleanupTrackedCrates(crateIdsToRemove)

(Internal) Function to clean up tracked cargo crates

CTLD:_EventHandler(EventData)

(Internal) Event handler function

CTLD:_ExtractTroops(Group, Unit)

(Internal) Function to extract (load from the field) troops into a heli.

CTLD:_FindCratesNearby(_group, _unit, _dist, _ignoreweight)

(Internal) Function to find and return nearby crates.

CTLD:_FindRepairNearby(Group, Unit, Repairtype)

CTLD:_GenerateFMFrequencies()

(Internal) Function to generate valid FM Frequencies

CTLD:_GenerateUHFrequencies()

(Internal) Function to generate valid UHF Frequencies

CTLD:_GenerateVHFrequencies()

(Internal) Populate table with available VHF beacon frequencies.

CTLD:_GetCrates(Group, Unit, Cargo, number, drop)

(Internal) Function to spawn crates in front of the heli.

CTLD:_GetDistance(_point1, _point2)

(Internal) Return distance in meters between two coordinates.

CTLD:_GetFMBeacon(Name)

(Internal) Function to obtain a valid FM frequency.

CTLD:_GetMaxLoadableMass(Unit)

(Internal) Function to calculate max loadable mass left over.

CTLD:_GetUHFBeacon(Name)

(Internal) Function to obtain a valid UHF frequency.

CTLD:_GetUnitCapabilities(Unit)

(Internal) Function to get capabilities of a chopper

CTLD:_GetUnitCargoMass(Unit)

(Internal) Function to get current loaded mass

CTLD:_GetVHFBeacon(Name)

(Internal) Function to obtain a valid VHF frequency.

CTLD:_ListCargo(Group, Unit)

(Internal) Function to list loaded cargo.

CTLD:_ListCratesNearby(Group, Unit, _group, _unit)

(Internal) Function to find and list nearby crates.

CTLD:_ListInventory(Group, Unit)

(Internal) Function to list loaded cargo.

CTLD:_ListRadioBeacons(Group, Unit)

(Internal) Function to show list of radio beacons

CTLD:_LoadCratesNearby(Group, Unit)

(Internal) Function to get and load nearby crates.

CTLD:_LoadTroops(Group, Unit, Cargotype)

(Internal) Function to load troops into a heli.

CTLD:_MoveGroupToZone(Group)

(Internal) Function to move group to WP zone.

CTLD:_RefreshF10Menus()

(Internal) Housekeeping - Function to refresh F10 menus.

CTLD:_RefreshRadioBeacons()

(Internal) Function to refresh radio beacons

CTLD:_RepairCrates(Group, Unit, Engineering)

(Internal) Function to repair nearby vehicles / FOBs

CTLD:_RepairObjectFromCrates(Group, Unit, Crates, Build, Number, Engineering)

(Internal) Function to repair an object.

CTLD:_SendMessage(Text, Time, Clearscreen, Group)

(Internal) Function to message a group.

CTLD:_ShowFlightParams(Group, Unit)

(Internal) List if a Herc unit is flying in parameters.

CTLD:_ShowHoverParams(Group, Unit)

(Internal) List if a unit is hovering in parameters.

CTLD:_UnloadCrates(Group, Unit)

(Internal) Function to unload crates from heli.

CTLD:_UnloadTroops(Group, Unit)

(Internal) Function to unload troops from heli.

CTLD:_UpdateUnitCargoMass(Unit)

(Internal) Function to calculate and set Unit internal cargo mass

CTLD:__Load(delay)

Triggers the FSM event "Load" after a delay.

CTLD:__Save(delay)

Triggers the FSM event "Save" after a delay.

CTLD:__Start(delay)

Triggers the FSM event "Start" after a delay.

CTLD:__Status(delay)

Triggers the FSM event "Status" after a delay.

CTLD:__Stop(delay)

Triggers the FSM event "Stop" after a delay.

CTLD.alias

CTLD.allowcratepickupagain

CTLD.basetype

CTLD.coalition

Coalition side number, e.g. coalition.side.RED.

CTLD.coalitiontxt

CTLD.cratecountry

CTLD.dropOffZones

CTLD.dropcratesanywhere

CTLD.droppedBeacons

CTLD.droppedbeaconref

CTLD.droppedbeacontimeout

CTLD.enableHercules

CTLD.enableLoadSave

CTLD.enableslingload

CTLD.eventoninject

CTLD.filename

CTLD.filepath

CTLD.forcehoverload

CTLD.hoverautoloading

CTLD.lid

Class id string for output to DCS log file.

CTLD.maximumHoverHeight

CTLD.minimumHoverHeight

CTLD.movetroopsdistance

CTLD.movetroopstowpzone

CTLD:onafterLoad(From, Event, To, path, filename)

On after "Load" event.

CTLD:onafterSave(From, Event, To, path, filename)

On after "Save" event.

CTLD:onafterStart(From, Event, To)

(Internal) FSM Function onafterStart.

CTLD:onafterStatus(From, Event, To)

(Internal) FSM Function onafterStatus.

CTLD:onafterStop(From, Event, To)

(Internal) FSM Function onafterStop.

CTLD:onbeforeCratesBuild(From, Event, To, Group, Unit, Vehicle)

(Internal) FSM Function onbeforeCratesBuild.

CTLD:onbeforeCratesDropped(From, Event, To, Group, Unit, Cargotable)

(Internal) FSM Function onbeforeCratesDropped.

CTLD:onbeforeCratesPickedUp(From, Event, To, Group, Unit, Cargo)

(Internal) FSM Function onbeforeCratesPickedUp.

CTLD:onbeforeLoad(From, Event, To, path, filename)

On before "Load" event.

CTLD:onbeforeSave(From, Event, To, path, filename)

On before "Save" event.

CTLD:onbeforeStatus(From, Event, To)

(Internal) FSM Function onbeforeStatus.

CTLD:onbeforeTroopsDeployed(From, Event, To, Group, Unit, Troops)

(Internal) FSM Function onbeforeTroopsDeployed.

CTLD:onbeforeTroopsExtracted(From, Event, To, Group, Unit, Troops)

(Internal) FSM Function onbeforeTroopsExtracted.

CTLD:onbeforeTroopsPickedUp(From, Event, To, Group, Unit, Cargo)

(Internal) FSM Function onbeforeTroopsPickedUp.

CTLD:onbeforeTroopsRTB(From, Event, To, Group, Unit)

(Internal) FSM Function onbeforeTroopsRTB.

CTLD.pickupZones

CTLD.pilotmustopendoors

CTLD.placeCratesAhead

CTLD.prefixes

CTLD.repairtime

CTLD.saveinterval

CTLD.shipZones

CTLD.smokedistance

CTLD.subcats

CTLD.suppressmessages

CTLD.troopdropzoneradius

CTLD.useprefix

CTLD.usesubcats

CTLD.verbose

Verbosity level.

CTLD.version

CTLD class version.

CTLD.wpZones

Fields and Methods inherited from FSM Description

CTLD:AddEndState(State)

Adds an End state.

CTLD:AddProcess(From, Event, Process, ReturnEvents)

Set the default Process template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.

CTLD:AddScore(State, ScoreText, Score)

Adds a score for the FSM to be achieved.

CTLD:AddScoreProcess(From, Event, State, ScoreText, Score)

Adds a score for the FSM_PROCESS to be achieved.

CTLD:AddTransition(From, Event, To)

Add a new transition rule to the FSM.

CTLD.CallScheduler

Call scheduler.

CTLD.ClassName

Name of the class.

CTLD.Events

CTLD:GetCurrentState()

Get current state.

CTLD:GetEndStates()

Returns the End states.

CTLD:GetProcess(From, Event)

CTLD:GetProcesses()

Returns a table of the SubFSM rules defined within the FSM.

CTLD:GetScores()

Returns a table with the scores defined.

CTLD:GetStartState()

Returns the start state of the FSM.

CTLD:GetState()

Get current state.

CTLD:GetSubs()

Returns a table with the Subs defined.

CTLD:GetTransitions()

Returns a table of the transition rules defined within the FSM.

CTLD:Is(State)

Check if FSM is in state.

CTLD:LoadCallBacks(CallBackTable)

Load call backs.

CTLD:New()

Creates a new FSM object.

CTLD.Scores

Scores.

CTLD:SetProcess(From, Event, Fsm)

CTLD:SetStartState(State)

Sets the start state of the FSM.

CTLD._EndStates

CTLD._EventSchedules

CTLD._Processes

CTLD._Scores

CTLD._StartState

CTLD._Transitions

CTLD:_add_to_map(Map, Event)

Add to map.

CTLD:_call_handler(step, trigger, params, EventName)

Call handler.

CTLD:_create_transition(EventName)

Create transition.

CTLD:_delayed_transition(EventName)

Delayed transition.

CTLD:_eventmap(Events, EventStructure)

Event map.

CTLD:_gosub(ParentFrom, ParentEvent)

Go sub.

CTLD:_handler(EventName, ...)

Handler.

CTLD:_isendstate(Current)

Is end state.

CTLD:_submap(subs, sub, name)

Sub maps.

CTLD:can(e)

Check if can do an event.

CTLD:cannot(e)

Check if cannot do an event.

CTLD.current

Current state name.

CTLD.endstates

CTLD:is(State, state)

Check if FSM is in state.

CTLD.options

Options.

CTLD.subs

Subs.

Fields and Methods inherited from BASE Description

CTLD.ClassID

The ID number of the class.

CTLD.ClassName

The name of the class.

CTLD.ClassNameAndID

The name of the class concatenated with the ID number of the class.

CTLD:ClearState(Object, StateName)

Clear the state of an object.

CTLD:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)

Creation of a Birth Event.

CTLD:CreateEventCrash(EventTime, Initiator, IniObjectCategory)

Creation of a Crash Event.

CTLD:CreateEventDead(EventTime, Initiator, IniObjectCategory)

Creation of a Dead Event.

CTLD:CreateEventPlayerEnterAircraft(PlayerUnit)

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

CTLD:CreateEventRemoveUnit(EventTime, Initiator)

Creation of a Remove Unit Event.

CTLD:CreateEventTakeoff(EventTime, Initiator)

Creation of a Takeoff Event.

CTLD:CreateEventUnitLost(EventTime, Initiator)

Creation of a Crash Event.

CTLD:E(Arguments)

Log an exception which will be traced always.

CTLD:EventDispatcher()

Returns the event dispatcher

CTLD:EventRemoveAll()

Remove all subscribed events

CTLD:F(Arguments)

Trace a function call.

CTLD:F2(Arguments)

Trace a function call level 2.

CTLD:F3(Arguments)

Trace a function call level 3.

CTLD:GetClassID()

Get the ClassID of the class instance.

CTLD:GetClassName()

Get the ClassName of the class instance.

CTLD:GetClassNameAndID()

Get the ClassName + ClassID of the class instance.

CTLD:GetEventPriority()

Get the Class Event processing Priority.

CTLD:GetParent(Child, FromClass)

This is the worker method to retrieve the Parent class.

CTLD:GetState(Object, Key)

Get a Value given a Key from the Object.

CTLD:HandleEvent(EventID, EventFunction)

Subscribe to a DCS Event.

CTLD:I(Arguments)

Log an information which will be traced always.

CTLD:Inherit(Child, Parent)

This is the worker method to inherit from a parent class.

CTLD:IsInstanceOf(ClassName)

This is the worker method to check if an object is an (sub)instance of a class.

CTLD:IsTrace()

Enquires if tracing is on (for the class).

CTLD:New()

BASE constructor.

CTLD:OnEvent(EventData)

Occurs when an Event for an object is triggered.

CTLD:OnEventBDA(EventData)

BDA.

CTLD:OnEventBaseCaptured(EventData)

Occurs when a ground unit captures either an airbase or a farp.

CTLD:OnEventBirth(EventData)

Occurs when any object is spawned into the mission.

CTLD:OnEventCrash(EventData)

Occurs when any aircraft crashes into the ground and is completely destroyed.

CTLD:OnEventDead(EventData)

Occurs when an object is dead.

CTLD:OnEventDetailedFailure(EventData)

Unknown precisely what creates this event, likely tied into newer damage model.

CTLD:OnEventDiscardChairAfterEjection(EventData)

Discard chair after ejection.

CTLD:OnEventEjection(EventData)

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD:OnEventEngineShutdown(EventData)

Occurs when any aircraft shuts down its engines.

CTLD:OnEventEngineStartup(EventData)

Occurs when any aircraft starts its engines.

CTLD:OnEventHit(EventData)

Occurs whenever an object is hit by a weapon.

CTLD:OnEventHumanFailure(EventData)

Occurs when any system fails on a human controlled aircraft.

CTLD:OnEventKill(EventData)

Occurs on the death of a unit.

CTLD:OnEventLand(EventData)

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD:OnEventLandingAfterEjection(EventData)

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

CTLD:OnEventLandingQualityMark(EventData)

Landing quality mark.

CTLD:OnEventMarkAdded(EventData)

Occurs when a new mark was added.

CTLD:OnEventMarkChange(EventData)

Occurs when a mark text was changed.

CTLD:OnEventMarkRemoved(EventData)

Occurs when a mark was removed.

CTLD:OnEventMissionEnd(EventData)

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD:OnEventMissionStart(EventData)

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD:OnEventParatrooperLanding(EventData)

Weapon add.

CTLD:OnEventPilotDead(EventData)

Occurs when the pilot of an aircraft is killed.

CTLD:OnEventPlayerEnterAircraft(EventData)

Occurs when a player enters a slot and takes control of an aircraft.

CTLD:OnEventPlayerEnterUnit(EventData)

Occurs when any player assumes direct control of a unit.

CTLD:OnEventPlayerLeaveUnit(EventData)

Occurs when any player relieves control of a unit to the AI.

CTLD:OnEventRefueling(EventData)

Occurs when an aircraft connects with a tanker and begins taking on fuel.

CTLD:OnEventRefuelingStop(EventData)

Occurs when an aircraft is finished taking fuel.

CTLD:OnEventScore(EventData)

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

CTLD:OnEventShootingEnd(EventData)

Occurs when any unit stops firing its weapon.

CTLD:OnEventShootingStart(EventData)

Occurs when any unit begins firing a weapon that has a high rate of fire.

CTLD:OnEventShot(EventData)

Occurs whenever any unit in a mission fires a weapon.

CTLD:OnEventTakeoff(EventData)

Occurs when an aircraft takes off from an airbase, farp, or ship.

CTLD:OnEventTriggerZone(EventData)

Trigger zone.

CTLD:OnEventUnitLost(EventData)

Occurs when the game thinks an object is destroyed.

CTLD:ScheduleOnce(Start, SchedulerFunction, ...)

Schedule a new time event.

CTLD:ScheduleRepeat(Start, Repeat, RandomizeFactor, Stop, SchedulerFunction, ...)

Schedule a new time event.

CTLD:ScheduleStop(SchedulerID)

Stops the Schedule.

CTLD.Scheduler

CTLD:SetEventPriority(EventPriority)

Set the Class Event processing Priority.

CTLD:SetState(Object, Key, Value)

Set a state or property of the Object given a Key and a Value.

CTLD:T(Arguments)

Trace a function logic level 1.

CTLD:T2(Arguments)

Trace a function logic level 2.

CTLD:T3(Arguments)

Trace a function logic level 3.

CTLD:TraceAll(TraceAll)

Trace all methods in MOOSE

CTLD:TraceClass(Class)

Set tracing for a class

CTLD:TraceClassMethod(Class, Method)

Set tracing for a specific method of class

CTLD:TraceLevel(Level)

Set trace level

CTLD:TraceOff()

Set trace off.

CTLD:TraceOn()

Set trace on.

CTLD:TraceOnOff(TraceOnOff)

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

CTLD:UnHandleEvent(EventID)

UnSubscribe to a DCS event.

CTLD._

CTLD:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function call.

CTLD:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function logic.

CTLD.__

CTLD:onEvent(event)

The main event handling function...

Fields and Methods inherited from CTLD.Buildable Description

CTLD.Buildable.CanBuild

Is buildable or not.

CTLD.Buildable.Coord

CTLD.Buildable.Found

Found crates.

CTLD.Buildable.Name

Name of the object.

CTLD.Buildable.Required

Required crates.

CTLD.Buildable.Template

Template names for this build.

CTLD.Buildable.Type

Type enumerator (for moves).

Fields and Methods inherited from CTLD.CargoZone Description

CTLD.CargoZone.active

Active or not.

CTLD.CargoZone.color

Smoke color for zone, e.g. SMOKECOLOR.Red.

CTLD.CargoZone.fmbeacon

Beacon info as #CTLD.ZoneBeacon

CTLD.CargoZone.hasbeacon

Create and run radio beacons if active.

CTLD.CargoZone.name

Name of Zone.

CTLD.CargoZone.shiplength

For ships - length of ship

CTLD.CargoZone.shipwidth

For ships - width of ship

CTLD.CargoZone.timestamp

For dropped beacons - time this was created

CTLD.CargoZone.type

Type of zone, i.e. load,drop,move,ship

CTLD.CargoZone.uhfbeacon

Beacon info as #CTLD.ZoneBeacon

CTLD.CargoZone.vhfbeacon

Beacon info as #CTLD.ZoneBeacon

Fields and Methods inherited from CTLD.LoadedCargo Description

CTLD.LoadedCargo.Cargo

CTLD.LoadedCargo.Cratesloaded

CTLD.LoadedCargo.Troopsloaded

Fields and Methods inherited from CTLD.ZoneBeacon Description

CTLD.ZoneBeacon.frequency

-- in mHz

CTLD.ZoneBeacon.modulation

-- i.e.radio.modulation.FM or radio.modulation.AM

CTLD.ZoneBeacon.name

-- Name of zone for the coordinate

Fields and Methods inherited from CTLD_CARGO Description

CTLD_CARGO.CargoType

Enumerator of Type.

CTLD_CARGO.ClassName

Class name.

CTLD_CARGO.CratesNeeded

Crates needed to build.

CTLD_CARGO.HasBeenDropped

True if dropped from heli.

CTLD_CARGO.HasBeenMoved

Flag for moving.

CTLD_CARGO.ID

ID of this cargo.

CTLD_CARGO.LoadDirectly

Flag for direct loading.

CTLD_CARGO.Mark

CTLD_CARGO.Name

Name for menu.

CTLD_CARGO.PerCrateMass

Mass in kg.

CTLD_CARGO.Positionable

Representation of cargo in the mission.

CTLD_CARGO.Stock

Number of builds available, -1 for unlimited.

CTLD_CARGO.Subcategory

Sub-category name.

CTLD_CARGO.Templates

Table of #POSITIONABLE objects.

Fields and Methods inherited from BASE Description

CTLD_CARGO.ClassID

The ID number of the class.

CTLD_CARGO.ClassName

The name of the class.

CTLD_CARGO.ClassNameAndID

The name of the class concatenated with the ID number of the class.

CTLD_CARGO:ClearState(Object, StateName)

Clear the state of an object.

CTLD_CARGO:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)

Creation of a Birth Event.

CTLD_CARGO:CreateEventCrash(EventTime, Initiator, IniObjectCategory)

Creation of a Crash Event.

CTLD_CARGO:CreateEventDead(EventTime, Initiator, IniObjectCategory)

Creation of a Dead Event.

CTLD_CARGO:CreateEventPlayerEnterAircraft(PlayerUnit)

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

CTLD_CARGO:CreateEventRemoveUnit(EventTime, Initiator)

Creation of a Remove Unit Event.

CTLD_CARGO:CreateEventTakeoff(EventTime, Initiator)

Creation of a Takeoff Event.

CTLD_CARGO:CreateEventUnitLost(EventTime, Initiator)

Creation of a Crash Event.

CTLD_CARGO:E(Arguments)

Log an exception which will be traced always.

CTLD_CARGO:EventDispatcher()

Returns the event dispatcher

CTLD_CARGO:EventRemoveAll()

Remove all subscribed events

CTLD_CARGO:F(Arguments)

Trace a function call.

CTLD_CARGO:F2(Arguments)

Trace a function call level 2.

CTLD_CARGO:F3(Arguments)

Trace a function call level 3.

CTLD_CARGO:GetClassID()

Get the ClassID of the class instance.

CTLD_CARGO:GetClassName()

Get the ClassName of the class instance.

CTLD_CARGO:GetClassNameAndID()

Get the ClassName + ClassID of the class instance.

CTLD_CARGO:GetEventPriority()

Get the Class Event processing Priority.

CTLD_CARGO:GetParent(Child, FromClass)

This is the worker method to retrieve the Parent class.

CTLD_CARGO:GetState(Object, Key)

Get a Value given a Key from the Object.

CTLD_CARGO:HandleEvent(EventID, EventFunction)

Subscribe to a DCS Event.

CTLD_CARGO:I(Arguments)

Log an information which will be traced always.

CTLD_CARGO:Inherit(Child, Parent)

This is the worker method to inherit from a parent class.

CTLD_CARGO:IsInstanceOf(ClassName)

This is the worker method to check if an object is an (sub)instance of a class.

CTLD_CARGO:IsTrace()

Enquires if tracing is on (for the class).

CTLD_CARGO:New()

BASE constructor.

CTLD_CARGO:OnEvent(EventData)

Occurs when an Event for an object is triggered.

CTLD_CARGO:OnEventBDA(EventData)

BDA.

CTLD_CARGO:OnEventBaseCaptured(EventData)

Occurs when a ground unit captures either an airbase or a farp.

CTLD_CARGO:OnEventBirth(EventData)

Occurs when any object is spawned into the mission.

CTLD_CARGO:OnEventCrash(EventData)

Occurs when any aircraft crashes into the ground and is completely destroyed.

CTLD_CARGO:OnEventDead(EventData)

Occurs when an object is dead.

CTLD_CARGO:OnEventDetailedFailure(EventData)

Unknown precisely what creates this event, likely tied into newer damage model.

CTLD_CARGO:OnEventDiscardChairAfterEjection(EventData)

Discard chair after ejection.

CTLD_CARGO:OnEventEjection(EventData)

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_CARGO:OnEventEngineShutdown(EventData)

Occurs when any aircraft shuts down its engines.

CTLD_CARGO:OnEventEngineStartup(EventData)

Occurs when any aircraft starts its engines.

CTLD_CARGO:OnEventHit(EventData)

Occurs whenever an object is hit by a weapon.

CTLD_CARGO:OnEventHumanFailure(EventData)

Occurs when any system fails on a human controlled aircraft.

CTLD_CARGO:OnEventKill(EventData)

Occurs on the death of a unit.

CTLD_CARGO:OnEventLand(EventData)

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_CARGO:OnEventLandingAfterEjection(EventData)

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

CTLD_CARGO:OnEventLandingQualityMark(EventData)

Landing quality mark.

CTLD_CARGO:OnEventMarkAdded(EventData)

Occurs when a new mark was added.

CTLD_CARGO:OnEventMarkChange(EventData)

Occurs when a mark text was changed.

CTLD_CARGO:OnEventMarkRemoved(EventData)

Occurs when a mark was removed.

CTLD_CARGO:OnEventMissionEnd(EventData)

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_CARGO:OnEventMissionStart(EventData)

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_CARGO:OnEventParatrooperLanding(EventData)

Weapon add.

CTLD_CARGO:OnEventPilotDead(EventData)

Occurs when the pilot of an aircraft is killed.

CTLD_CARGO:OnEventPlayerEnterAircraft(EventData)

Occurs when a player enters a slot and takes control of an aircraft.

CTLD_CARGO:OnEventPlayerEnterUnit(EventData)

Occurs when any player assumes direct control of a unit.

CTLD_CARGO:OnEventPlayerLeaveUnit(EventData)

Occurs when any player relieves control of a unit to the AI.

CTLD_CARGO:OnEventRefueling(EventData)

Occurs when an aircraft connects with a tanker and begins taking on fuel.

CTLD_CARGO:OnEventRefuelingStop(EventData)

Occurs when an aircraft is finished taking fuel.

CTLD_CARGO:OnEventScore(EventData)

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

CTLD_CARGO:OnEventShootingEnd(EventData)

Occurs when any unit stops firing its weapon.

CTLD_CARGO:OnEventShootingStart(EventData)

Occurs when any unit begins firing a weapon that has a high rate of fire.

CTLD_CARGO:OnEventShot(EventData)

Occurs whenever any unit in a mission fires a weapon.

CTLD_CARGO:OnEventTakeoff(EventData)

Occurs when an aircraft takes off from an airbase, farp, or ship.

CTLD_CARGO:OnEventTriggerZone(EventData)

Trigger zone.

CTLD_CARGO:OnEventUnitLost(EventData)

Occurs when the game thinks an object is destroyed.

CTLD_CARGO:ScheduleOnce(Start, SchedulerFunction, ...)

Schedule a new time event.

CTLD_CARGO:ScheduleRepeat(Start, Repeat, RandomizeFactor, Stop, SchedulerFunction, ...)

Schedule a new time event.

CTLD_CARGO:ScheduleStop(SchedulerID)

Stops the Schedule.

CTLD_CARGO.Scheduler

CTLD_CARGO:SetEventPriority(EventPriority)

Set the Class Event processing Priority.

CTLD_CARGO:SetState(Object, Key, Value)

Set a state or property of the Object given a Key and a Value.

CTLD_CARGO:T(Arguments)

Trace a function logic level 1.

CTLD_CARGO:T2(Arguments)

Trace a function logic level 2.

CTLD_CARGO:T3(Arguments)

Trace a function logic level 3.

CTLD_CARGO:TraceAll(TraceAll)

Trace all methods in MOOSE

CTLD_CARGO:TraceClass(Class)

Set tracing for a class

CTLD_CARGO:TraceClassMethod(Class, Method)

Set tracing for a specific method of class

CTLD_CARGO:TraceLevel(Level)

Set trace level

CTLD_CARGO:TraceOff()

Set trace off.

CTLD_CARGO:TraceOn()

Set trace on.

CTLD_CARGO:TraceOnOff(TraceOnOff)

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

CTLD_CARGO:UnHandleEvent(EventID)

UnSubscribe to a DCS event.

CTLD_CARGO._

CTLD_CARGO:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function call.

CTLD_CARGO:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function logic.

CTLD_CARGO.__

CTLD_CARGO:onEvent(event)

The main event handling function...

Fields and Methods inherited from CTLD_ENGINEERING Description

CTLD_ENGINEERING:Arrive()

(Internal) Arrived at crates in reach.

CTLD_ENGINEERING:Build()

(Internal) Set build status.

CTLD_ENGINEERING.ClassName

CTLD_ENGINEERING:Done()

(Internal) Set done status.

CTLD_ENGINEERING:GetStatus()

(Internal) Get the status

CTLD_ENGINEERING.Group

CTLD_ENGINEERING.HeliGroup

CTLD_ENGINEERING.HeliUnit

CTLD_ENGINEERING:IsNotStatus(State)

(Internal) Check the negative status

CTLD_ENGINEERING:IsStatus(State)

(Internal) Check the status

CTLD_ENGINEERING:Move()

(Internal) Move towards crates in reach.

CTLD_ENGINEERING.Name

CTLD_ENGINEERING:New(Name, GroupName, HeliGroup, HeliUnit)

Create a new instance.

CTLD_ENGINEERING:Search(crates, number)

(Internal) Search for crates in reach.

CTLD_ENGINEERING:SetStatus(State)

(Internal) Set the status

CTLD_ENGINEERING:Start()

(Internal) Set start status.

CTLD_ENGINEERING.State

CTLD_ENGINEERING:Stop()

(Internal) Set stop status.

CTLD_ENGINEERING.Unit

CTLD_ENGINEERING.Version

CTLD_ENGINEERING:_GetDistance(_point1, _point2)

(Internal) Return distance in meters between two coordinates.

CTLD_ENGINEERING.currwpt

CTLD_ENGINEERING.lid

CTLD_ENGINEERING.marktimer

Fields and Methods inherited from BASE Description

CTLD_ENGINEERING.ClassID

The ID number of the class.

CTLD_ENGINEERING.ClassName

The name of the class.

CTLD_ENGINEERING.ClassNameAndID

The name of the class concatenated with the ID number of the class.

CTLD_ENGINEERING:ClearState(Object, StateName)

Clear the state of an object.

CTLD_ENGINEERING:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)

Creation of a Birth Event.

CTLD_ENGINEERING:CreateEventCrash(EventTime, Initiator, IniObjectCategory)

Creation of a Crash Event.

CTLD_ENGINEERING:CreateEventDead(EventTime, Initiator, IniObjectCategory)

Creation of a Dead Event.

CTLD_ENGINEERING:CreateEventPlayerEnterAircraft(PlayerUnit)

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

CTLD_ENGINEERING:CreateEventRemoveUnit(EventTime, Initiator)

Creation of a Remove Unit Event.

CTLD_ENGINEERING:CreateEventTakeoff(EventTime, Initiator)

Creation of a Takeoff Event.

CTLD_ENGINEERING:CreateEventUnitLost(EventTime, Initiator)

Creation of a Crash Event.

CTLD_ENGINEERING:E(Arguments)

Log an exception which will be traced always.

CTLD_ENGINEERING:EventDispatcher()

Returns the event dispatcher

CTLD_ENGINEERING:EventRemoveAll()

Remove all subscribed events

CTLD_ENGINEERING:F(Arguments)

Trace a function call.

CTLD_ENGINEERING:F2(Arguments)

Trace a function call level 2.

CTLD_ENGINEERING:F3(Arguments)

Trace a function call level 3.

CTLD_ENGINEERING:GetClassID()

Get the ClassID of the class instance.

CTLD_ENGINEERING:GetClassName()

Get the ClassName of the class instance.

CTLD_ENGINEERING:GetClassNameAndID()

Get the ClassName + ClassID of the class instance.

CTLD_ENGINEERING:GetEventPriority()

Get the Class Event processing Priority.

CTLD_ENGINEERING:GetParent(Child, FromClass)

This is the worker method to retrieve the Parent class.

CTLD_ENGINEERING:GetState(Object, Key)

Get a Value given a Key from the Object.

CTLD_ENGINEERING:HandleEvent(EventID, EventFunction)

Subscribe to a DCS Event.

CTLD_ENGINEERING:I(Arguments)

Log an information which will be traced always.

CTLD_ENGINEERING:Inherit(Child, Parent)

This is the worker method to inherit from a parent class.

CTLD_ENGINEERING:IsInstanceOf(ClassName)

This is the worker method to check if an object is an (sub)instance of a class.

CTLD_ENGINEERING:IsTrace()

Enquires if tracing is on (for the class).

CTLD_ENGINEERING:New()

BASE constructor.

CTLD_ENGINEERING:OnEvent(EventData)

Occurs when an Event for an object is triggered.

CTLD_ENGINEERING:OnEventBDA(EventData)

BDA.

CTLD_ENGINEERING:OnEventBaseCaptured(EventData)

Occurs when a ground unit captures either an airbase or a farp.

CTLD_ENGINEERING:OnEventBirth(EventData)

Occurs when any object is spawned into the mission.

CTLD_ENGINEERING:OnEventCrash(EventData)

Occurs when any aircraft crashes into the ground and is completely destroyed.

CTLD_ENGINEERING:OnEventDead(EventData)

Occurs when an object is dead.

CTLD_ENGINEERING:OnEventDetailedFailure(EventData)

Unknown precisely what creates this event, likely tied into newer damage model.

CTLD_ENGINEERING:OnEventDiscardChairAfterEjection(EventData)

Discard chair after ejection.

CTLD_ENGINEERING:OnEventEjection(EventData)

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_ENGINEERING:OnEventEngineShutdown(EventData)

Occurs when any aircraft shuts down its engines.

CTLD_ENGINEERING:OnEventEngineStartup(EventData)

Occurs when any aircraft starts its engines.

CTLD_ENGINEERING:OnEventHit(EventData)

Occurs whenever an object is hit by a weapon.

CTLD_ENGINEERING:OnEventHumanFailure(EventData)

Occurs when any system fails on a human controlled aircraft.

CTLD_ENGINEERING:OnEventKill(EventData)

Occurs on the death of a unit.

CTLD_ENGINEERING:OnEventLand(EventData)

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_ENGINEERING:OnEventLandingAfterEjection(EventData)

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

CTLD_ENGINEERING:OnEventLandingQualityMark(EventData)

Landing quality mark.

CTLD_ENGINEERING:OnEventMarkAdded(EventData)

Occurs when a new mark was added.

CTLD_ENGINEERING:OnEventMarkChange(EventData)

Occurs when a mark text was changed.

CTLD_ENGINEERING:OnEventMarkRemoved(EventData)

Occurs when a mark was removed.

CTLD_ENGINEERING:OnEventMissionEnd(EventData)

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_ENGINEERING:OnEventMissionStart(EventData)

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_ENGINEERING:OnEventParatrooperLanding(EventData)

Weapon add.

CTLD_ENGINEERING:OnEventPilotDead(EventData)

Occurs when the pilot of an aircraft is killed.

CTLD_ENGINEERING:OnEventPlayerEnterAircraft(EventData)

Occurs when a player enters a slot and takes control of an aircraft.

CTLD_ENGINEERING:OnEventPlayerEnterUnit(EventData)

Occurs when any player assumes direct control of a unit.

CTLD_ENGINEERING:OnEventPlayerLeaveUnit(EventData)

Occurs when any player relieves control of a unit to the AI.

CTLD_ENGINEERING:OnEventRefueling(EventData)

Occurs when an aircraft connects with a tanker and begins taking on fuel.

CTLD_ENGINEERING:OnEventRefuelingStop(EventData)

Occurs when an aircraft is finished taking fuel.

CTLD_ENGINEERING:OnEventScore(EventData)

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

CTLD_ENGINEERING:OnEventShootingEnd(EventData)

Occurs when any unit stops firing its weapon.

CTLD_ENGINEERING:OnEventShootingStart(EventData)

Occurs when any unit begins firing a weapon that has a high rate of fire.

CTLD_ENGINEERING:OnEventShot(EventData)

Occurs whenever any unit in a mission fires a weapon.

CTLD_ENGINEERING:OnEventTakeoff(EventData)

Occurs when an aircraft takes off from an airbase, farp, or ship.

CTLD_ENGINEERING:OnEventTriggerZone(EventData)

Trigger zone.

CTLD_ENGINEERING:OnEventUnitLost(EventData)

Occurs when the game thinks an object is destroyed.

CTLD_ENGINEERING:ScheduleOnce(Start, SchedulerFunction, ...)

Schedule a new time event.

CTLD_ENGINEERING:ScheduleRepeat(Start, Repeat, RandomizeFactor, Stop, SchedulerFunction, ...)

Schedule a new time event.

CTLD_ENGINEERING:ScheduleStop(SchedulerID)

Stops the Schedule.

CTLD_ENGINEERING.Scheduler

CTLD_ENGINEERING:SetEventPriority(EventPriority)

Set the Class Event processing Priority.

CTLD_ENGINEERING:SetState(Object, Key, Value)

Set a state or property of the Object given a Key and a Value.

CTLD_ENGINEERING:T(Arguments)

Trace a function logic level 1.

CTLD_ENGINEERING:T2(Arguments)

Trace a function logic level 2.

CTLD_ENGINEERING:T3(Arguments)

Trace a function logic level 3.

CTLD_ENGINEERING:TraceAll(TraceAll)

Trace all methods in MOOSE

CTLD_ENGINEERING:TraceClass(Class)

Set tracing for a class

CTLD_ENGINEERING:TraceClassMethod(Class, Method)

Set tracing for a specific method of class

CTLD_ENGINEERING:TraceLevel(Level)

Set trace level

CTLD_ENGINEERING:TraceOff()

Set trace off.

CTLD_ENGINEERING:TraceOn()

Set trace on.

CTLD_ENGINEERING:TraceOnOff(TraceOnOff)

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

CTLD_ENGINEERING:UnHandleEvent(EventID)

UnSubscribe to a DCS event.

CTLD_ENGINEERING._

CTLD_ENGINEERING:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function call.

CTLD_ENGINEERING:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function logic.

CTLD_ENGINEERING.__

CTLD_ENGINEERING:onEvent(event)

The main event handling function...

Fields and Methods inherited from CTLD_HERCULES Description

CTLD_HERCULES.CTLD

CTLD_HERCULES:Calculate_Cargo_Drop_initiator_Heading(Cargo_Drop_initiator)

[Internal] Function to calc initiator heading

CTLD_HERCULES:Calculate_Cargo_Drop_initiator_NorthCorrection(point)

[Internal] Function to calc north correction

CTLD_HERCULES:Calculate_Object_Height_AGL(group)

[Internal] Function to calculate object height

CTLD_HERCULES.Cargo

CTLD_HERCULES:Cargo_Initialize(Initiator, Cargo_Contents, Cargo_Type_name, Container_Enclosed, SoldierGroup, ParatrooperGroupSpawnInit)

[Internal] Function to initialize dropped cargo

CTLD_HERCULES:Cargo_SpawnGroup(Cargo_Drop_initiator, Cargo_Drop_Position, Cargo_Type_name, CargoHeading, Cargo_Country)

[Internal] Function to spawn a group

CTLD_HERCULES:Cargo_SpawnObjects(Cargo_Drop_initiator, Cargo_Drop_Direction, Cargo_Content_position, Cargo_Type_name, Cargo_over_water, Container_Enclosed, ParatrooperGroupSpawn, offload_cargo, all_cargo_survive_to_the_ground, all_cargo_gets_destroyed, destroy_cargo_dropped_without_parachute, Cargo_Country)

[Internal] Spawn cargo objects

CTLD_HERCULES:Cargo_SpawnStatic(Cargo_Drop_initiator, Cargo_Drop_Position, Cargo_Type_name, CargoHeading, dead, Cargo_Country)

[Internal] Function to spawn static cargo

CTLD_HERCULES:Cargo_Track(cargo, initiator)

[Internal] Function to track cargo objects

CTLD_HERCULES:CheckTemplates()

[Internal] Function to check availability of templates

CTLD_HERCULES:Check_SurfaceType(group, object)

[Internal] Function to check surface type

CTLD_HERCULES.ClassName

CTLD_HERCULES.Name

CTLD_HERCULES:New(Coalition, Alias, CtldObject)

[User] Instantiate a new object

CTLD_HERCULES.ObjectTracker

CTLD_HERCULES.ParatrooperCount

CTLD_HERCULES:SetType(key, cargoType, cargoNum)

[Internal] Function to change cargotype per group (Wrench)

CTLD_HERCULES:Soldier_SpawnGroup(Cargo_Drop_initiator, Cargo_Drop_Position, Cargo_Type_name, CargoHeading, Cargo_Country, GroupSpacing)

[Internal] Function to spawn a soldier group of 10 units

CTLD_HERCULES.Types

CTLD_HERCULES.Version

CTLD_HERCULES:_HandleBirth(event)

[Internal] Function to capture BIRTH event

CTLD_HERCULES:_HandleShot(Cargo_Drop_Event)

[Internal] Function to capture SHOT event

CTLD_HERCULES.alias

CTLD_HERCULES.carrierGroups

CTLD_HERCULES.coalition

CTLD_HERCULES.coalitiontxt

CTLD_HERCULES.infantrytemplate

CTLD_HERCULES.j

CTLD_HERCULES.lid

CTLD_HERCULES.verbose

Fields and Methods inherited from BASE Description

CTLD_HERCULES.ClassID

The ID number of the class.

CTLD_HERCULES.ClassName

The name of the class.

CTLD_HERCULES.ClassNameAndID

The name of the class concatenated with the ID number of the class.

CTLD_HERCULES:ClearState(Object, StateName)

Clear the state of an object.

CTLD_HERCULES:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)

Creation of a Birth Event.

CTLD_HERCULES:CreateEventCrash(EventTime, Initiator, IniObjectCategory)

Creation of a Crash Event.

CTLD_HERCULES:CreateEventDead(EventTime, Initiator, IniObjectCategory)

Creation of a Dead Event.

CTLD_HERCULES:CreateEventPlayerEnterAircraft(PlayerUnit)

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

CTLD_HERCULES:CreateEventRemoveUnit(EventTime, Initiator)

Creation of a Remove Unit Event.

CTLD_HERCULES:CreateEventTakeoff(EventTime, Initiator)

Creation of a Takeoff Event.

CTLD_HERCULES:CreateEventUnitLost(EventTime, Initiator)

Creation of a Crash Event.

CTLD_HERCULES:E(Arguments)

Log an exception which will be traced always.

CTLD_HERCULES:EventDispatcher()

Returns the event dispatcher

CTLD_HERCULES:EventRemoveAll()

Remove all subscribed events

CTLD_HERCULES:F(Arguments)

Trace a function call.

CTLD_HERCULES:F2(Arguments)

Trace a function call level 2.

CTLD_HERCULES:F3(Arguments)

Trace a function call level 3.

CTLD_HERCULES:GetClassID()

Get the ClassID of the class instance.

CTLD_HERCULES:GetClassName()

Get the ClassName of the class instance.

CTLD_HERCULES:GetClassNameAndID()

Get the ClassName + ClassID of the class instance.

CTLD_HERCULES:GetEventPriority()

Get the Class Event processing Priority.

CTLD_HERCULES:GetParent(Child, FromClass)

This is the worker method to retrieve the Parent class.

CTLD_HERCULES:GetState(Object, Key)

Get a Value given a Key from the Object.

CTLD_HERCULES:HandleEvent(EventID, EventFunction)

Subscribe to a DCS Event.

CTLD_HERCULES:I(Arguments)

Log an information which will be traced always.

CTLD_HERCULES:Inherit(Child, Parent)

This is the worker method to inherit from a parent class.

CTLD_HERCULES:IsInstanceOf(ClassName)

This is the worker method to check if an object is an (sub)instance of a class.

CTLD_HERCULES:IsTrace()

Enquires if tracing is on (for the class).

CTLD_HERCULES:New()

BASE constructor.

CTLD_HERCULES:OnEvent(EventData)

Occurs when an Event for an object is triggered.

CTLD_HERCULES:OnEventBDA(EventData)

BDA.

CTLD_HERCULES:OnEventBaseCaptured(EventData)

Occurs when a ground unit captures either an airbase or a farp.

CTLD_HERCULES:OnEventBirth(EventData)

Occurs when any object is spawned into the mission.

CTLD_HERCULES:OnEventCrash(EventData)

Occurs when any aircraft crashes into the ground and is completely destroyed.

CTLD_HERCULES:OnEventDead(EventData)

Occurs when an object is dead.

CTLD_HERCULES:OnEventDetailedFailure(EventData)

Unknown precisely what creates this event, likely tied into newer damage model.

CTLD_HERCULES:OnEventDiscardChairAfterEjection(EventData)

Discard chair after ejection.

CTLD_HERCULES:OnEventEjection(EventData)

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_HERCULES:OnEventEngineShutdown(EventData)

Occurs when any aircraft shuts down its engines.

CTLD_HERCULES:OnEventEngineStartup(EventData)

Occurs when any aircraft starts its engines.

CTLD_HERCULES:OnEventHit(EventData)

Occurs whenever an object is hit by a weapon.

CTLD_HERCULES:OnEventHumanFailure(EventData)

Occurs when any system fails on a human controlled aircraft.

CTLD_HERCULES:OnEventKill(EventData)

Occurs on the death of a unit.

CTLD_HERCULES:OnEventLand(EventData)

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_HERCULES:OnEventLandingAfterEjection(EventData)

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

CTLD_HERCULES:OnEventLandingQualityMark(EventData)

Landing quality mark.

CTLD_HERCULES:OnEventMarkAdded(EventData)

Occurs when a new mark was added.

CTLD_HERCULES:OnEventMarkChange(EventData)

Occurs when a mark text was changed.

CTLD_HERCULES:OnEventMarkRemoved(EventData)

Occurs when a mark was removed.

CTLD_HERCULES:OnEventMissionEnd(EventData)

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_HERCULES:OnEventMissionStart(EventData)

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

CTLD_HERCULES:OnEventParatrooperLanding(EventData)

Weapon add.

CTLD_HERCULES:OnEventPilotDead(EventData)

Occurs when the pilot of an aircraft is killed.

CTLD_HERCULES:OnEventPlayerEnterAircraft(EventData)

Occurs when a player enters a slot and takes control of an aircraft.

CTLD_HERCULES:OnEventPlayerEnterUnit(EventData)

Occurs when any player assumes direct control of a unit.

CTLD_HERCULES:OnEventPlayerLeaveUnit(EventData)

Occurs when any player relieves control of a unit to the AI.

CTLD_HERCULES:OnEventRefueling(EventData)

Occurs when an aircraft connects with a tanker and begins taking on fuel.

CTLD_HERCULES:OnEventRefuelingStop(EventData)

Occurs when an aircraft is finished taking fuel.

CTLD_HERCULES:OnEventScore(EventData)

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

CTLD_HERCULES:OnEventShootingEnd(EventData)

Occurs when any unit stops firing its weapon.

CTLD_HERCULES:OnEventShootingStart(EventData)

Occurs when any unit begins firing a weapon that has a high rate of fire.

CTLD_HERCULES:OnEventShot(EventData)

Occurs whenever any unit in a mission fires a weapon.

CTLD_HERCULES:OnEventTakeoff(EventData)

Occurs when an aircraft takes off from an airbase, farp, or ship.

CTLD_HERCULES:OnEventTriggerZone(EventData)

Trigger zone.

CTLD_HERCULES:OnEventUnitLost(EventData)

Occurs when the game thinks an object is destroyed.

CTLD_HERCULES:ScheduleOnce(Start, SchedulerFunction, ...)

Schedule a new time event.

CTLD_HERCULES:ScheduleRepeat(Start, Repeat, RandomizeFactor, Stop, SchedulerFunction, ...)

Schedule a new time event.

CTLD_HERCULES:ScheduleStop(SchedulerID)

Stops the Schedule.

CTLD_HERCULES.Scheduler

CTLD_HERCULES:SetEventPriority(EventPriority)

Set the Class Event processing Priority.

CTLD_HERCULES:SetState(Object, Key, Value)

Set a state or property of the Object given a Key and a Value.

CTLD_HERCULES:T(Arguments)

Trace a function logic level 1.

CTLD_HERCULES:T2(Arguments)

Trace a function logic level 2.

CTLD_HERCULES:T3(Arguments)

Trace a function logic level 3.

CTLD_HERCULES:TraceAll(TraceAll)

Trace all methods in MOOSE

CTLD_HERCULES:TraceClass(Class)

Set tracing for a class

CTLD_HERCULES:TraceClassMethod(Class, Method)

Set tracing for a specific method of class

CTLD_HERCULES:TraceLevel(Level)

Set trace level

CTLD_HERCULES:TraceOff()

Set trace off.

CTLD_HERCULES:TraceOn()

Set trace on.

CTLD_HERCULES:TraceOnOff(TraceOnOff)

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

CTLD_HERCULES:UnHandleEvent(EventID)

UnSubscribe to a DCS event.

CTLD_HERCULES._

CTLD_HERCULES:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function call.

CTLD_HERCULES:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)

Trace a function logic.

CTLD_HERCULES.__

CTLD_HERCULES:onEvent(event)

The main event handling function...

Fields and Methods inherited from CTLD_HERCULES.Types Description

CTLD_HERCULES.Types.AAA GEPARD [34720lb]

CTLD_HERCULES.Types.AAA Vulcan M163 Air [21666lb]

CTLD_HERCULES.Types.AAA Vulcan M163 Skid [21577lb]

CTLD_HERCULES.Types.AAA ZSU-23-4 Shilka [32912lb]

CTLD_HERCULES.Types.APC BTR-80 Air [23936lb]

CTLD_HERCULES.Types.APC BTR-80 Skid [23826lb]

CTLD_HERCULES.Types.APC BTR-82A Air [24998lb]

CTLD_HERCULES.Types.APC BTR-82A Skid [24888lb]

CTLD_HERCULES.Types.APC Cobra Air [10912lb]

CTLD_HERCULES.Types.APC Cobra Skid [10802lb]

CTLD_HERCULES.Types.APC LAV-25 Air [22520lb]

CTLD_HERCULES.Types.APC LAV-25 Skid [22514lb]

CTLD_HERCULES.Types.APC M1043 HMMWV Armament Air [7023lb]

CTLD_HERCULES.Types.APC M1043 HMMWV Armament Skid [6912lb]

CTLD_HERCULES.Types.APC M1126 Stryker ICV [29542lb]

CTLD_HERCULES.Types.APC M113 Air [21624lb]

CTLD_HERCULES.Types.APC M113 Skid [21494lb]

CTLD_HERCULES.Types.APC MTLB Air [26400lb]

CTLD_HERCULES.Types.APC MTLB Skid [26290lb]

CTLD_HERCULES.Types.ART 2S9 NONA Air [19140lb]

CTLD_HERCULES.Types.ART 2S9 NONA Skid [19030lb]

CTLD_HERCULES.Types.ART GVOZDIKA [34720lb]

CTLD_HERCULES.Types.ARV BRDM-2 Air [12320lb]

CTLD_HERCULES.Types.ARV BRDM-2 Skid [12210lb]

CTLD_HERCULES.Types.ATGM M1045 HMMWV TOW Air [7183lb]

CTLD_HERCULES.Types.ATGM M1045 HMMWV TOW Skid [7073lb]

CTLD_HERCULES.Types.ATGM M1134 Stryker [30337lb]

CTLD_HERCULES.Types.EWR SBORKA Air [21624lb]

CTLD_HERCULES.Types.EWR SBORKA Skid [21624lb]

CTLD_HERCULES.Types.HEMTT TFFT [34400lb]

CTLD_HERCULES.Types.IFV BMD-1 Air [18040lb]

CTLD_HERCULES.Types.IFV BMD-1 Skid [17930lb]

CTLD_HERCULES.Types.IFV BMP-1 [23232lb]

CTLD_HERCULES.Types.IFV BMP-2 [25168lb]

CTLD_HERCULES.Types.IFV BMP-3 [32912lb]

CTLD_HERCULES.Types.IFV BTR-D Air [18040lb]

CTLD_HERCULES.Types.IFV BTR-D Skid [17930lb]

CTLD_HERCULES.Types.IFV M2A2 Bradley [34720lb]

CTLD_HERCULES.Types.IFV MARDER [34720lb]

CTLD_HERCULES.Types.IFV MCV-80 [34720lb]

CTLD_HERCULES.Types.IFV TPZ FUCH [33440lb]

CTLD_HERCULES.Types.M1025 HMMWV Air [6160lb]

CTLD_HERCULES.Types.M1025 HMMWV Skid [6050lb]

CTLD_HERCULES.Types.SAM Avenger M1097 Air [7200lb]

CTLD_HERCULES.Types.SAM Avenger M1097 Skid [7090lb]

CTLD_HERCULES.Types.SAM CHAPARRAL Air [21624lb]

CTLD_HERCULES.Types.SAM CHAPARRAL Skid [21516lb]

CTLD_HERCULES.Types.SAM LINEBACKER [34720lb]

CTLD_HERCULES.Types.SAM ROLAND ADS [34720lb]

CTLD_HERCULES.Types.SAM ROLAND LN [34720b]

CTLD_HERCULES.Types.SAM SA-13 STRELA [21624lb]

CTLD_HERCULES.Types.SAM SA-19 Tunguska 2S6 [34720lb]

CTLD_HERCULES.Types.SPG M1128 Stryker MGS [33036lb]

CTLD_HERCULES.Types.Tanker M978 HEMTT [34000lb]

CTLD_HERCULES.Types.Transport M818 [16000lb]

CTLD_HERCULES.Types.Transport Tigr Air [15900lb]

CTLD_HERCULES.Types.Transport Tigr Skid [15730lb]

CTLD_HERCULES.Types.Transport UAZ-469 Air [3747lb]

CTLD_HERCULES.Types.Transport UAZ-469 Skid [3630lb]

CTLD_HERCULES.Types.Transport URAL-375 [14815lb]

CTLD_HERCULES.Types.Type

Name of cargo type, container (boolean) in container or not.

  • CTLD class, extends Core.Base#BASE, Core.Fsm#FSM

Field(s)

#table CTLD.Cargo_Crates

Cargo

#string CTLD.ClassName

Name of the class.

#number CTLD.CrateDistance

list/load crates in this radius

#number CTLD.EngineerSearch

search distance for crates to build or repair

#number CTLD.ExtractFactor

factor for troops extraction, i.e. CrateDistance * Extractfactor

#number CTLD.HercMaxAngels

for troop/cargo drop via chute

#number CTLD.HercMaxSpeed

280 kph or 150kn eq 77 mps

#number CTLD.HercMinAngels

for troop/cargo drop via chute

#string CTLD.Name
#string CTLD.RadioSound

radio beacons

CTLD.SmokeColor

Smokes and Flares

#number CTLD.Stock
#boolean CTLD.allowcratepickupagain

allow re-pickup crates

#string CTLD.basetype

shape of the container

#number CTLD.coalition

Coalition side number, e.g. coalition.side.RED.

CTLD.cratecountry

country of crates spawned

#boolean CTLD.dropcratesanywhere

#1570

#boolean CTLD.enableHercules

added support Hercules Mod

#boolean CTLD.enableLoadSave

load and save dropped TROOPS

#boolean CTLD.enableslingload

slingload

#string CTLD.lid

Class id string for output to DCS log file.

#table CTLD.pickupZones

zones stuff

#boolean CTLD.pilotmustopendoors

for opening doors

#boolean CTLD.placeCratesAhead

place spawned crates in front of aircraft

#number CTLD.repairtime

time to repair a unit/group

#table CTLD.subcats
#boolean CTLD.suppressmessages

message suppression

#boolean CTLD.useprefix
#boolean CTLD.usesubcats

sub categories

#number CTLD.verbose

Verbosity level.

#string CTLD.version

CTLD class version.

#table CTLD.wpZones

Function(s)

User function - Activate Name #CTLD.CargoZone.Type ZoneType for this CTLD instance.

Defined in:

CTLD

Parameters:

#string Name

Name of the zone to change in the ME.

Type of zone this belongs to.

#boolean NewState

(Optional) Set to true to activate, false to switch off.

User function - Creates and adds a #CTLD.CargoZone zone for this CTLD instance.

Zones of type LOAD: Players load crates and troops here.
Zones of type DROP: Players can drop crates here. Note that troops can be unloaded anywhere.
Zone of type MOVE: Dropped troops and vehicles will start moving to the nearest zone of this type (also see options).

Defined in:

CTLD

Parameters:

#string Name

Name of this zone, as in Mission Editor.

#string Type

Type of this zone, #CTLD.CargoZoneType

#number Color

Smoke/Flare color e.g. #SMOKECOLOR.Red

#string Active

Is this zone currently active?

#string HasBeacon

Does this zone have a beacon if it is active?

#number Shiplength

Length of Ship for shipzones

#number Shipwidth

Width of Ship for shipzones

Return value:

self

User function - Creates and adds a #CTLD.CargoZone zone for this CTLD instance from an Airbase or FARP name.

Zones of type LOAD: Players load crates and troops here.
Zones of type DROP: Players can drop crates here. Note that troops can be unloaded anywhere.
Zone of type MOVE: Dropped troops and vehicles will start moving to the nearest zone of this type (also see options).

Defined in:

CTLD

Parameters:

#string AirbaseName

Name of the Airbase, can be e.g. AIRBASE.Caucasus.Beslan or "Beslan". For FARPs, this will be the UNIT name.

#string Type

Type of this zone, #CTLD.CargoZoneType

#number Color

Smoke/Flare color e.g. #SMOKECOLOR.Red

#string Active

Is this zone currently active?

#string HasBeacon

Does this zone have a beacon if it is active?

Return value:

self

User function - Add generic crate-type loadable as cargo.

This type will create crates that need to be loaded, moved, dropped and built.

Defined in:

CTLD

Parameters:

#string Name

Unique name of this type of cargo. E.g. "Humvee".

#table Templates

Table of #string names of late activated Wrapper.Group#GROUP building this cargo.

Type of cargo. I.e. VEHICLE or FOB. VEHICLE will move to destination zones when dropped/build, FOB stays put.

#number NoCrates

Number of crates needed to build this cargo.

#number PerCrateMass

Mass in kg of each crate

#number Stock

Number of groups in stock. Nil for unlimited.

#string SubCategory

Name of sub-category (optional).

User function - Add generic repair crates loadable as cargo.

This type will create crates that need to be loaded, moved, dropped and built.

Defined in:

CTLD

Parameters:

#string Name

Unique name of this type of cargo. E.g. "Humvee".

#string Template

Template of VEHICLE or FOB cargo that this can repair. MUST be the same as given in AddCratesCargo(..)!

Type of cargo, here REPAIR.

#number NoCrates

Number of crates needed to build this cargo.

#number PerCrateMass

Mass in kg of each crate

#number Stock

Number of groups in stock. Nil for unlimited.

#string SubCategory

Name of the sub-category (optional).

User function - Add generic static-type loadable as cargo.

This type will create cargo that needs to be loaded, moved and dropped.

Defined in:

CTLD

Parameters:

#string Name

Unique name of this type of cargo as set in the mission editor (note: UNIT name!), e.g. "Ammunition-1".

#number Mass

Mass in kg of each static in kg, e.g. 100.

#number Stock

Number of groups in stock. Nil for unlimited.

User - function to add stock of a certain crates type

Defined in:

CTLD

Parameters:

#string Name

Name as defined in the generic cargo.

#number Number

Number of units/groups to add.

Return value:

self

User - function to add stock of a certain troops type

Defined in:

CTLD

Parameters:

#string Name

Name as defined in the generic cargo.

#number Number

Number of units/groups to add.

Return value:

self

User function - Add generic troop type loadable as cargo.

This type will load directly into the heli without crates.

Defined in:

CTLD

Parameters:

#string Name

Unique name of this type of troop. E.g. "Anti-Air Small".

#table Templates

Table of #string names of late activated Wrapper.Group#GROUP making up this troop.

Type of cargo, here TROOPS - these will move to a nearby destination zone when dropped/build.

#number NoTroops

Size of the group in number of Units across combined templates (for loading).

#number PerTroopMass

Mass in kg of each soldier

#number Stock

Number of groups in stock. Nil for unlimited.

User function - Add a #CTLD.CargoZoneType zone for this CTLD instance.

Defined in:

CTLD

Parameter:

Zone #CTLD.CargoZone describing the zone.

(Internal) Autoload if we can do crates, have capacity free and are in a load zone.

Defined in:

CTLD

Parameter:

Return value:

self

(Internal) Check if a unit is in a load zone and is hovering in parameters.

Defined in:

CTLD

Parameter:

Return value:

#boolean:

Outcome

(Internal) Run through all pilots and see if we autoload.

Defined in:

CTLD

Return value:

self

(Internal) Housekeeping dropped beacons.

Defined in:

CTLD

Return value:

self

(Internal) Run through DroppedTroops and capture alive units

Defined in:

CTLD

Return value:

self

User function - Deactivate Name #CTLD.CargoZoneType ZoneType for this CTLD instance.

Defined in:

CTLD

Parameters:

#string Name

Name of the zone to change in the ME.

Type of zone this belongs to.

(Internal) Function to create a dropped beacon

Defined in:

CTLD

Parameter:

Return value:

self

User function - Get a generic static-type loadable as #CTLD_CARGO object.

Defined in:

CTLD

Parameters:

#string Name

Unique Unit(!) name of this type of cargo as set in the mission editor (not: GROUP name!), e.g. "Ammunition-1".

#number Mass

Mass in kg of each static in kg, e.g. 100.

Return value:

Cargo object

(User) Inject static cargo objects.

Defined in:

CTLD

Parameters:

Zone to spawn in. Will be a somewhat random coordinate.

#string Template

Unit(!) name of the static cargo object to be used as template.

#number Mass

Mass of the static in kg.

Return value:

self

(Internal) Inject crates and static cargo objects.

Defined in:

CTLD

Parameters:

Zone to spawn in.

#CTLD_CARGO Cargo

The cargo type to spawn.

#boolean RandomCoord

Randomize coordinate.

Return value:

self

(User) Pre-populate troops in the field.

Defined in:

CTLD

Parameters:

The zone where to drop the troops.

The #CTLD_CARGO object to spawn.

Return value:

self

Usage:

Use this function to pre-populate the field with Troops or Engineers at a random coordinate in a zone:
           -- create a matching #CTLD_CARGO type
           local InjectTroopsType = CTLD_CARGO:New(nil,"Infantry",{"Inf12"},CTLD_CARGO.Enum.TROOPS,true,true,12,nil,false,80)
           -- get a #ZONE object
           local dropzone = ZONE:New("InjectZone") -- Core.Zone#ZONE
           -- and go:
           my_ctld:InjectTroops(dropzone,InjectTroopsType)

(User) Pre-populate vehicles in the field.

Defined in:

CTLD

Parameters:

The zone where to drop the troops.

The #CTLD_CARGO object to spawn.

Return value:

self

Usage:

Use this function to pre-populate the field with Vehicles or FOB at a random coordinate in a zone:
           -- create a matching #CTLD_CARGO type
           local InjectVehicleType = CTLD_CARGO:New(nil,"Humvee",{"Humvee"},CTLD_CARGO.Enum.VEHICLE,true,true,1,nil,false,1000)
           -- get a #ZONE object
           local dropzone = ZONE:New("InjectZone") -- Core.Zone#ZONE
           -- and go:
           my_ctld:InjectVehicles(dropzone,InjectVehicleType)

(Internal) Check if a Hercules is flying in parameters for air drops.

Defined in:

CTLD

Parameter:

Return value:

#boolean:

Outcome

(Internal) Check if a unit is hovering in parameters.

Defined in:

CTLD

Parameter:

Return value:

#boolean:

Outcome

(Internal) Function to check if a unit is a Hercules C-130.

Defined in:

CTLD

Parameter:

Return value:

#boolean:

Outcome

(Internal) Check if a unit is above ground.

Defined in:

CTLD

Parameter:

Return value:

#boolean:

Outcome

(Internal) Function to see if a unit is in a specific zone type.

Defined in:

CTLD

Parameters:

Unit

Zonetype

Return values:

#boolean:

Outcome Is in zone or not

#string:

name Closest zone name

zone Closest Core.Zone#ZONE object

#number:

distance Distance to closest zone

#number:

width Radius of zone or width of ship

Triggers the FSM event "Save".

Defined in:

CTLD

Instantiate a new CTLD.

Defined in:

CTLD

Parameters:

#string Coalition

Coalition of this CTLD. I.e. coalition.side.BLUE or coalition.side.RED or coalition.side.NEUTRAL

#table Prefixes

Table of pilot prefixes.

#string Alias

Alias of this CTLD for logging.

Return value:

self

FSM Function OnAfterCratesBuild.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

The #GROUP object of the vehicle or FOB build.

Return value:

self

FSM Function OnAfterCratesDropped.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#table Cargotable

Table of #CTLD_CARGO objects dropped.

Return value:

self

FSM Function OnAfterCratesPickedUp.

Defined in:

CTLD

Parameters:

#string From

State .

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#CTLD_CARGO Cargo

Cargo crate.

Return value:

self

FSM Function OnAfterCratesRepaired.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

The #GROUP object of the vehicle or FOB repaired.

Return value:

self

FSM Function OnAfterLoad.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

(Optional) Path where the file is located. Default is the DCS root installation folder or your "Saved Games\DCS" folder if the lfs module is desanitized.

#string filename

(Optional) File name for loading. Default is "CTLD__Persist.csv".

FSM Function OnAfterSave.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

(Optional) Path where the file is saved. Default is the DCS root installation folder or your "Saved Games\DCS" folder if the lfs module is desanitized.

#string filename

(Optional) File name for saving. Default is "CTLD__Persist.csv".

FSM Function OnAfterTroopsDeployed.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

Troops #GROUP Object.

Return value:

self

FSM Function OnAfterTroopsExtracted.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#CTLD_CARGO Cargo

Cargo troops.

Return value:

self

FSM Function OnAfterTroopsPickedUp.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#CTLD_CARGO Cargo

Cargo troops.

Return value:

self

FSM Function OnAfterTroopsRTB.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

User - function to remove stock of a certain crates type

Defined in:

CTLD

Parameters:

#string Name

Name as defined in the generic cargo.

#number Number

Number of units/groups to add.

Return value:

self

User - function to remove stock of a certain troops type

Defined in:

CTLD

Parameters:

#string Name

Name as defined in the generic cargo.

#number Number

Number of units/groups to add.

Return value:

self

(User) Set drop zone radius for troop drops in meters.

Minimum distance is 25m for security reasons.

Defined in:

CTLD

Parameter:

#number Radius

The radius to use.

User function - Drop a smoke or flare at current location.

Defined in:

CTLD

Parameters:

The Unit.

#boolean Flare

If true, flare instead.

#number SmokeColor

Color enumerator for smoke, e.g. SMOKECOLOR.Red

User function - Start smoke/flare in a zone close to the Unit.

Defined in:

CTLD

Parameters:

The Unit.

#boolean Flare

If true, flare instead.

Triggers the FSM event "Start".

Starts the CTLD. Initializes parameters and starts event handlers.

Defined in:

CTLD

Triggers the FSM event "Status".

Defined in:

CTLD

User - Function to add/adjust unittype capabilities.

Defined in:

CTLD

Parameters:

#string Unittype

The unittype to adjust. If passed as Wrapper.Unit#UNIT, it will search for the unit in the mission.

#boolean Cancrates

Unit can load crates. Default false.

#boolean Cantroops

Unit can load troops. Default false.

#number Cratelimit

Unit can carry number of crates. Default 0.

#number Trooplimit

Unit can carry number of troops. Default 0.

#number Length

Unit lenght (in metres) for the load radius. Default 20.

#number Maxcargoweight

Maxmimum weight in kgs this helo can carry. Default 500.

(Internal) Add radio beacon to zone.

Runs 30 secs.

Defined in:

CTLD

Parameters:

#string Name

Name of zone.

#string Sound

Name of soundfile.

#number Mhz

Frequency in Mhz.

#number Modulation

Modulation AM or FM.

#boolean IsShip

If true zone is a ship.

#boolean IsDropped

If true, this isn't a zone but a dropped beacon

(Internal) Function to build nearby crates.

Defined in:

CTLD

Parameters:

#boolean Engineering

If true build is by an engineering team.

(Internal) Function to actually SPAWN buildables in the mission.

Defined in:

CTLD

Parameters:

#boolean Repair

If true this is a repair and not a new build

Location for repair (e.g. where the destroyed unit was)

RepairLocation

(Internal) Check on engineering teams

Defined in:

CTLD

Return value:

self

[Internal] Function to check if a template exists in the mission.

Defined in:

CTLD

Parameter:

#table temptable

Table of string names

Return value:

#boolean:

outcome

(Internal) Housekeeping - Cleanup crates when build

Defined in:

CTLD

Parameters:

#table Crates

Table of #CTLD_CARGO objects near the unit.

Table build object.

#number Number

Number of objects in Crates (found) to limit search.

(Internal) Function to clean up tracked cargo crates

Defined in:

CTLD

Parameter:

crateIdsToRemove

(Internal) Event handler function

Defined in:

CTLD

Parameter:

(Internal) Function to extract (load from the field) troops into a heli.

Defined in:

CTLD

Parameters:

(Internal) Function to find and return nearby crates.

Defined in:

CTLD

Parameters:

Group

Unit

#number _dist

Distance

#boolean _ignoreweight

Find everything in range, ignore loadable weight

Return values:

#table:

Table of crates

#number:

Number Number of crates found

Defined in:

CTLD

Parameters:

Group

Unit

Repairtype

(Internal) Function to generate valid FM Frequencies

Defined in:

CTLD

(Internal) Function to generate valid UHF Frequencies

Defined in:

CTLD

(Internal) Populate table with available VHF beacon frequencies.

Defined in:

CTLD

(Internal) Function to spawn crates in front of the heli.

Defined in:

CTLD

Parameters:

#CTLD_CARGO Cargo

#number number

Number of crates to generate (for dropping)

#boolean drop

If true we're dropping from heli rather than loading.

(Internal) Return distance in meters between two coordinates.

Defined in:

CTLD

Parameters:

Coordinate one

Coordinate two

Return value:

#number:

Distance in meters

(Internal) Function to obtain a valid FM frequency.

Defined in:

CTLD

Parameter:

#string Name

Name of zone.

Return value:

Beacon Beacon table.

(Internal) Function to calculate max loadable mass left over.

Defined in:

CTLD

Parameter:

Return value:

#number:

maxloadable Max loadable mass in kg

(Internal) Function to obtain a valid UHF frequency.

Defined in:

CTLD

Parameter:

#string Name

Name of zone.

Return value:

Beacon Beacon table.

(Internal) Function to get capabilities of a chopper

Defined in:

CTLD

Parameter:

The unit

Return value:

#table:

Capabilities Table of caps

(Internal) Function to get current loaded mass

Defined in:

CTLD

Parameter:

Return value:

#number:

mass in kgs

(Internal) Function to obtain a valid VHF frequency.

Defined in:

CTLD

Parameter:

#string Name

Name of zone.

Return value:

Beacon Beacon table.

(Internal) Function to list loaded cargo.

Defined in:

CTLD

Parameters:

Return value:

self

(Internal) Function to find and list nearby crates.

Defined in:

CTLD

Parameters:

_group

_unit

Return value:

self

(Internal) Function to list loaded cargo.

Defined in:

CTLD

Parameters:

Return value:

self

(Internal) Function to show list of radio beacons

Defined in:

CTLD

Parameters:

(Internal) Function to get and load nearby crates.

Defined in:

CTLD

Parameters:

Return value:

self

(Internal) Function to load troops into a heli.

Defined in:

CTLD

Parameters:

#CTLD_CARGO Cargotype

(Internal) Function to move group to WP zone.

Defined in:

CTLD

Parameter:

The Group to move.

(Internal) Housekeeping - Function to refresh F10 menus.

Defined in:

CTLD

Return value:

self

(Internal) Function to refresh radio beacons

Defined in:

CTLD

(Internal) Function to repair nearby vehicles / FOBs

Defined in:

CTLD

Parameters:

#boolean Engineering

If true, this is an engineering role

(Internal) Function to repair an object.

Defined in:

CTLD

Parameters:

#table Crates

Table of #CTLD_CARGO objects near the unit.

Table build object.

#number Number

Number of objects in Crates (found) to limit search.

#boolean Engineering

If true it is an Engineering repair.

(Internal) Function to message a group.

Defined in:

CTLD

Parameters:

#string Text

The text to display.

#number Time

Number of seconds to display the message.

#boolean Clearscreen

Clear screen or not.

The group receiving the message.

(Internal) List if a Herc unit is flying in parameters.

Defined in:

CTLD

Parameters:

(Internal) List if a unit is hovering in parameters.

Defined in:

CTLD

Parameters:

(Internal) Function to unload crates from heli.

Defined in:

CTLD

Parameters:

(Internal) Function to unload troops from heli.

Defined in:

CTLD

Parameters:

(Internal) Function to calculate and set Unit internal cargo mass

Defined in:

CTLD

Parameter:

Triggers the FSM event "Load" after a delay.

Defined in:

CTLD

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Save" after a delay.

Defined in:

CTLD

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Start" after a delay.

Starts the CTLD. Initializes parameters and starts event handlers.

Defined in:

CTLD

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Status" after a delay.

Defined in:

CTLD

Parameter:

#number delay

Delay in seconds.

Triggers the FSM event "Stop" after a delay.

Stops the CTLD and all its event handlers.

Defined in:

CTLD

Parameter:

#number delay

Delay in seconds.

On after "Load" event.

Loads dropped units from file.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

(Optional) Path where the file is located. Default is the DCS root installation folder or your "Saved Games\DCS" folder if the lfs module is desanitized.

#string filename

(Optional) File name for loading. Default is "CTLD__Persist.csv".

On after "Save" event.

Player data is saved to file.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

Path where the file is saved. If nil, file is saved in the DCS root installtion directory or your "Saved Games" folder if lfs was desanitized.

#string filename

(Optional) File name for saving. Default is Default is "CTLD__Persist.csv".

(Internal) FSM Function onafterStart.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Return value:

self

(Internal) FSM Function onafterStatus.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Return value:

self

(Internal) FSM Function onafterStop.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Return value:

self

(Internal) FSM Function onbeforeCratesBuild.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

The #GROUP object of the vehicle or FOB build.

Return value:

self

(Internal) FSM Function onbeforeCratesDropped.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#table Cargotable

Table of #CTLD_CARGO objects dropped.

Return value:

self

(Internal) FSM Function onbeforeCratesPickedUp.

Defined in:

CTLD

Parameters:

#string From

State .

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#CTLD_CARGO Cargo

Cargo crate.

Return value:

self

On before "Load" event.

Checks if io and lfs and the file are available.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

(Optional) Path where the file is located. Default is the DCS root installation folder or your "Saved Games\DCS" folder if the lfs module is desanitized.

#string filename

(Optional) File name for loading. Default is "CTLD__Persist.csv".

On before "Save" event.

Checks if io and lfs are available.

Defined in:

CTLD

Parameters:

#string From

From state.

#string Event

Event.

#string To

To state.

#string path

(Optional) Path where the file is saved. Default is the DCS root installation folder or your "Saved Games\DCS" folder if the lfs module is desanitized.

#string filename

(Optional) File name for saving. Default is "CTLD__Persist.csv".

(Internal) FSM Function onbeforeStatus.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Return value:

self

(Internal) FSM Function onbeforeTroopsDeployed.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

Troops #GROUP Object.

Return value:

self

(Internal) FSM Function onbeforeTroopsExtracted.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

Troops #GROUP Object.

Return value:

self

(Internal) FSM Function onbeforeTroopsPickedUp.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

#CTLD_CARGO Cargo

Cargo crate.

Return value:

self

(Internal) FSM Function onbeforeTroopsRTB.

Defined in:

CTLD

Parameters:

#string From

State.

#string Event

Trigger.

#string To

State.

Group Object.

Unit Object.

Return value:

self

Field(s)

#table CTLD.Cargo_Crates

Cargo

#string CTLD.ClassName

Name of the class.

#number CTLD.CrateDistance

list/load crates in this radius

#number CTLD.EngineerSearch

search distance for crates to build or repair

#number CTLD.ExtractFactor

factor for troops extraction, i.e. CrateDistance * Extractfactor

#number CTLD.HercMaxAngels

for troop/cargo drop via chute

#number CTLD.HercMaxSpeed

280 kph or 150kn eq 77 mps

#number CTLD.HercMinAngels

for troop/cargo drop via chute

#string CTLD.Name
#string CTLD.RadioSound

radio beacons

CTLD.SmokeColor

Smokes and Flares

#number CTLD.Stock
#boolean CTLD.allowcratepickupagain

allow re-pickup crates

#string CTLD.basetype

shape of the container

#number CTLD.coalition

Coalition side number, e.g. coalition.side.RED.

CTLD.cratecountry

country of crates spawned

#boolean CTLD.dropcratesanywhere

#1570

#boolean CTLD.enableHercules

added support Hercules Mod

#boolean CTLD.enableLoadSave

load and save dropped TROOPS

#boolean CTLD.enableslingload

slingload

#string CTLD.lid

Class id string for output to DCS log file.

#table CTLD.pickupZones

zones stuff

#boolean CTLD.pilotmustopendoors

for opening doors

#boolean CTLD.placeCratesAhead

place spawned crates in front of aircraft

#number CTLD.repairtime

time to repair a unit/group

#table CTLD.subcats
#boolean CTLD.suppressmessages

message suppression

#boolean CTLD.useprefix
#boolean CTLD.usesubcats

sub categories

#number CTLD.verbose

Verbosity level.

#string CTLD.version

CTLD class version.

#table CTLD.wpZones

Function(s)

Adds an End state.

Defined in:

Parameter:

#string State

The FSM state.

Set the default Process template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.

Defined in:

Parameters:

#table From

Can contain a string indicating the From state or a table of strings containing multiple From states.

#string Event

The Event name.

An sub-process FSM.

#table ReturnEvents

A table indicating for which returned events of the SubFSM which Event must be triggered in the FSM.

Return value:

The SubFSM.

Adds a score for the FSM to be achieved.

Defined in:

Parameters:

#string State

is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).

#string ScoreText

is a text describing the score that is given according the status.

#number Score

is a number providing the score of the status.

Return value:

#FSM:

self

Adds a score for the FSM_PROCESS to be achieved.

Defined in:

Parameters:

#string From

is the From State of the main process.

#string Event

is the Event of the main process.

#string State

is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).

#string ScoreText

is a text describing the score that is given according the status.

#number Score

is a number providing the score of the status.

Return value:

#FSM:

self

Add a new transition rule to the FSM.

A transition rule defines when and if the FSM can transition from a state towards another state upon a triggered event.

Defined in:

Parameters:

#table From

Can contain a string indicating the From state or a table of strings containing multiple From states.

#string Event

The Event name.

#string To

The To state.

Get current state.

Defined in:

Return value:

#string:

Current FSM state.

Returns the End states.

Defined in:

Return value:

#table:

End states.

Defined in:

Parameters:

From

Event

Returns a table of the SubFSM rules defined within the FSM.

Defined in:

Return value:

#table:

Sub processes.

Returns a table with the scores defined.

Defined in:

Return value:

#table:

Scores.

Returns the start state of the FSM.

Defined in:

Return value:

#string:

A string containing the start state.

Get current state.

Defined in:

Return value:

#string:

Current FSM state.

Returns a table with the Subs defined.

Defined in:

Return value:

#table:

Sub processes.

Returns a table of the transition rules defined within the FSM.

Defined in:

Return value:

#table:

Transitions.

Check if FSM is in state.

Defined in:

Parameter:

#string State

State name.

Return value:

#boolean:

If true, FSM is in this state.

Load call backs.

Defined in:

Parameter:

#table CallBackTable

Table of call backs.

Creates a new FSM object.

Defined in:

Return value:

#FSM:

Defined in:

Parameters:

From

Event

Fsm

Sets the start state of the FSM.

Defined in:

Parameter:

#string State

A string defining the start state.

Add to map.

Defined in:

Parameters:

#table Map

Map.

#table Event

Event table.

Call handler.

Defined in:

Parameters:

#string step

Step "onafter", "onbefore", "onenter", "onleave".

#string trigger

Trigger.

#table params

Parameters.

#string EventName

Event name.

Return value:

Value.

Create transition.

Defined in:

Parameter:

#string EventName

Event name.

Return value:

#function:

Function.

Delayed transition.

Defined in:

Parameter:

#string EventName

Event name.

Return value:

#function:

Function.

Event map.

Defined in:

Parameters:

#table Events

Events.

#table EventStructure

Event structure.

Go sub.

Defined in:

Parameters:

#string ParentFrom

Parent from state.

#string ParentEvent

Parent event name.

Return value:

#table:

Subs.

Handler.

Defined in:

Parameters:

#string EventName

Event name.

...

Arguments.

Is end state.

Defined in:

Parameter:

#string Current

Current state name.

Return values:

#table:

FSM parent.

#string:

Event name.

Sub maps.

Defined in:

Parameters:

#table subs

Subs.

#table sub

Sub.

#string name

Name.

Check if can do an event.

Defined in:

Parameter:

#string e

Event name.

Return values:

#boolean:

If true, FSM can do the event.

#string:

To state.

Check if cannot do an event.

Defined in:

Parameter:

#string e

Event name.

Return value:

#boolean:

If true, FSM cannot do the event.

Check if FSM is in state.

Defined in:

Parameters:

#string State

State name.

state

Return value:

#boolean:

If true, FSM is in this state.

Field(s)

#table CTLD.Cargo_Crates

Cargo

#string CTLD.ClassName

Name of the class.

#number CTLD.CrateDistance

list/load crates in this radius

#number CTLD.EngineerSearch

search distance for crates to build or repair

#number CTLD.ExtractFactor

factor for troops extraction, i.e. CrateDistance * Extractfactor

#number CTLD.HercMaxAngels

for troop/cargo drop via chute

#number CTLD.HercMaxSpeed

280 kph or 150kn eq 77 mps

#number CTLD.HercMinAngels

for troop/cargo drop via chute

#string CTLD.Name
#string CTLD.RadioSound

radio beacons

CTLD.SmokeColor

Smokes and Flares

#number CTLD.Stock
#boolean CTLD.allowcratepickupagain

allow re-pickup crates

#string CTLD.basetype

shape of the container

#number CTLD.coalition

Coalition side number, e.g. coalition.side.RED.

CTLD.cratecountry

country of crates spawned

#boolean CTLD.dropcratesanywhere

#1570

#boolean CTLD.enableHercules

added support Hercules Mod

#boolean CTLD.enableLoadSave

load and save dropped TROOPS

#boolean CTLD.enableslingload

slingload

#string CTLD.lid

Class id string for output to DCS log file.

#table CTLD.pickupZones

zones stuff

#boolean CTLD.pilotmustopendoors

for opening doors

#boolean CTLD.placeCratesAhead

place spawned crates in front of aircraft

#number CTLD.repairtime

time to repair a unit/group

#table CTLD.subcats
#boolean CTLD.suppressmessages

message suppression

#boolean CTLD.useprefix
#boolean CTLD.usesubcats

sub categories

#number CTLD.verbose

Verbosity level.

#string CTLD.version

CTLD class version.

#table CTLD.wpZones

Function(s)

Clear the state of an object.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

StateName

The key that is should be cleared.

Creation of a Birth Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

#string IniUnitName

The initiating unit name.

place

subplace

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a Dead Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

Defined in:

Parameter:

Wrapper.Unit#UNIT PlayerUnit

The aircraft unit the player entered.

Creation of a Remove Unit Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Takeoff Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Log an exception which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Returns the event dispatcher

Defined in:

Return value:

Remove all subscribed events

Defined in:

Return value:

Trace a function call.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 2.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 3.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Get the ClassID of the class instance.

Defined in:

Return value:

#string:

The ClassID of the class instance.

Get the ClassName of the class instance.

Defined in:

Return value:

#string:

The ClassName of the class instance.

Get the ClassName + ClassID of the class instance.

The ClassName + ClassID is formatted as '%s#%09d'.

Defined in:

Return value:

#string:

The ClassName + ClassID of the class instance.

Get the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Return value:

#number:

The Event processing Priority.

This is the worker method to retrieve the Parent class.

Note that the Parent class must be passed to call the parent class method.

self:GetParent(self):ParentMethod()

Defined in:

Parameters:

#BASE Child

This is the Child class from which the Parent class needs to be retrieved.

#BASE FromClass

(Optional) The class from which to get the parent.

Return value:

Get a Value given a Key from the Object.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

Key

The key that is used to retrieve the value. Note that the key can be a #string, but it can also be any other type!

Return value:

The Value retrieved or nil if the Key was not found and thus the Value could not be retrieved.

Subscribe to a DCS Event.

Defined in:

Parameters:

Event ID.

#function EventFunction

(optional) The function to be called when the event occurs for the unit.

Return value:

Log an information which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

This is the worker method to inherit from a parent class.

Defined in:

Parameters:

Child

is the Child class that inherits.

#BASE Parent

is the Parent class that the Child inherits from.

Return value:

Child

This is the worker method to check if an object is an (sub)instance of a class.

Examples:

  • ZONE:New( 'some zone' ):IsInstanceOf( ZONE ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'ZONE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'zone' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'BASE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false

Defined in:

Parameter:

ClassName

is the name of the class or the class itself to run the check against

Return value:

#boolean:

Enquires if tracing is on (for the class).

Defined in:

Return value:

#boolean:

BASE constructor.

This is an example how to use the BASE:New() constructor in a new class definition when inheriting from BASE.

function EVENT:New()
  local self = BASE:Inherit( self, BASE:New() ) -- #EVENT
  return self
end

Defined in:

Return value:

Occurs when an Event for an object is triggered.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that triggered the event.

Defined in:

Parameter:

The EventData structure.

BDA.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a ground unit captures either an airbase or a farp.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that captured the base place: The airbase that was captured, can be a FARP or Airbase. When calling place:getCoalition() the faction will already be the new owning faction.

Defined in:

Parameter:

The EventData structure.

Occurs when any object is spawned into the mission.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was spawned

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft crashes into the ground and is completely destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that has crashed

Defined in:

Parameter:

The EventData structure.

Occurs when an object is dead.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is dead.

Defined in:

Parameter:

The EventData structure.

Unknown precisely what creates this event, likely tied into newer damage model.

Will update this page when new information become available.

  • initiator: The unit that had the failure.

Defined in:

Parameter:

The EventData structure.

Discard chair after ejection.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has ejected

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft shuts down its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is stopping its engines.

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft starts its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is starting its engines.

Defined in:

Parameter:

The EventData structure.

Occurs whenever an object is hit by a weapon.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit object the fired the weapon weapon: Weapon object that hit the target target: The Object that was hit.

Defined in:

Parameter:

The EventData structure.

Occurs when any system fails on a human controlled aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that had the failure

Defined in:

Parameter:

The EventData structure.

Occurs on the death of a unit.

Contains more and different information. Similar to unit_lost it will occur for aircraft before the aircraft crash event occurs. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that killed the target
  • target: Target Object
  • weapon: Weapon Object

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has landed place: Object that the unit landed on. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

Event does not occur if the pilot lands in the water and sub combs to Davey Jones Locker. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: Static object representing the ejected pilot. Place : Aircraft that the pilot ejected from.
  • place: may not return as a valid object if the aircraft has crashed into the ground and no longer exists.
  • subplace: is always 0 for unknown reasons.

Defined in:

Parameter:

The EventData structure.

Landing quality mark.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a new mark was added.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark text was changed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark was removed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Weapon add.

Fires when entering a mission per pylon with the name of the weapon (double pylons not counted, infinite wep reload not counted. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the pilot of an aircraft is killed.

Can occur either if the player is alive and crashes or if a weapon kills the pilot without completely destroying the plane. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the pilot has died in.

Defined in:

Parameter:

The EventData structure.

Occurs when a player enters a slot and takes control of an aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. NOTE: This is a workaround of a long standing DCS bug with the PLAYER_ENTER_UNIT event. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player assumes direct control of a unit.

Note - not Mulitplayer safe. Use PlayerEnterAircraft. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player relieves control of a unit to the AI.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the player left.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft connects with a tanker and begins taking on fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft is finished taking fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

There is no information on what values the score was changed to. Event is likely similar to player_comment in this regard. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit stops firing its weapon.

Event will always correspond with a shooting start event. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was doing the shooting.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit begins firing a weapon that has a high rate of fire.

Most common with aircraft cannons (GAU-8), autocannons, and machine guns. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is doing the shooting. target: The unit that is being targeted.

Defined in:

Parameter:

The EventData structure.

Occurs whenever any unit in a mission fires a weapon.

But not any machine gun or autocannon based weapon, those are handled by EVENT.ShootingStart. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft takes off from an airbase, farp, or ship.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that tookoff place: Object from where the AI took-off from. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Trigger zone.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the game thinks an object is destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that is was destroyed.

Defined in:

Parameter:

The EventData structure.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#number Repeat

Specifies the interval in seconds when the scheduler will call the event function.

#number RandomizeFactor

Specifies a randomization factor between 0 and 1 to randomize the Repeat.

#number Stop

Specifies the amount of seconds when the scheduler will be stopped.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Stops the Schedule.

Defined in:

Parameter:

#string SchedulerID

(Optional) Scheduler ID to be stopped. If nil, all pending schedules are stopped.

Set the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Parameter:

#number EventPriority

The Event processing Priority.

Return value:

self

Set a state or property of the Object given a Key and a Value.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that will hold the Value set by the Key.

Key

The key that is used as a reference of the value. Note that the key can be a #string, but it can also be any other type!

Value

The value to is stored in the object.

Return value:

The Value set.

Trace a function logic level 1.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 2.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 3.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace all methods in MOOSE

Defined in:

Parameter:

#boolean TraceAll

true = trace all methods in MOOSE.

Set tracing for a class

Defined in:

Parameter:

#string Class

Class name.

Set tracing for a specific method of class

Defined in:

Parameters:

#string Class

Class name.

#string Method

Method.

Set trace level

Defined in:

Parameter:

#number Level

Set trace off.

Defined in:

Usage:

-- Switch the tracing Off
BASE:TraceOff()

Set trace on.

Defined in:

Usage:

-- Switch the tracing On
BASE:TraceOn()

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

So tracing must be switched on manually in your mission if you are using Moose statically. When moose is loading dynamically (for moose class development), tracing is switched on by default.

Defined in:

Parameter:

#boolean TraceOnOff

Switch the tracing on or off.

Usage:


  -- Switch the tracing On
  BASE:TraceOnOff( true )

  -- Switch the tracing Off
  BASE:TraceOnOff( false )

UnSubscribe to a DCS event.

Defined in:

Parameter:

Event ID.

Return value:

Trace a function call.

This function is private.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

Trace a function logic.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

The main event handling function...

This function captures all events generated for the class.

Defined in:

Parameter:

DCS#Event event

Buildable table info.

Field(s)

#boolean CTLD.Buildable.CanBuild

Is buildable or not.

#number CTLD.Buildable.Found

Found crates.

#string CTLD.Buildable.Name

Name of the object.

#number CTLD.Buildable.Required

Required crates.

#table CTLD.Buildable.Template

Template names for this build.

#CTLD_CARGO.Enum CTLD.Buildable.Type

Type enumerator (for moves).

Function(s)

Zone Info.

Field(s)

#boolean CTLD.CargoZone.active

Active or not.

#string CTLD.CargoZone.color

Smoke color for zone, e.g. SMOKECOLOR.Red.

#table CTLD.CargoZone.fmbeacon

Beacon info as #CTLD.ZoneBeacon

#boolean CTLD.CargoZone.hasbeacon

Create and run radio beacons if active.

#string CTLD.CargoZone.name

Name of Zone.

#number CTLD.CargoZone.shiplength

For ships - length of ship

#number CTLD.CargoZone.shipwidth

For ships - width of ship

#number CTLD.CargoZone.timestamp

For dropped beacons - time this was created

#string CTLD.CargoZone.type

Type of zone, i.e. load,drop,move,ship

#table CTLD.CargoZone.uhfbeacon

Beacon info as #CTLD.ZoneBeacon

#table CTLD.CargoZone.vhfbeacon

Beacon info as #CTLD.ZoneBeacon

Function(s)

Zone Type Info.

Field(s)

Function(s)

Radio Beacons

Field(s)

#number CTLD.ZoneBeacon.frequency

-- in mHz

#number CTLD.ZoneBeacon.modulation

-- i.e.radio.modulation.FM or radio.modulation.AM

#string CTLD.ZoneBeacon.name

-- Name of zone for the coordinate

Function(s)

  • CTLD_CARGO class, extends Core.Base#BASE

Field(s)

#string CTLD_CARGO.CargoType

Enumerator of Type.

#string CTLD_CARGO.ClassName

Class name.

#number CTLD_CARGO.CratesNeeded

Crates needed to build.

#boolean CTLD_CARGO.HasBeenDropped

True if dropped from heli.

#boolean CTLD_CARGO.HasBeenMoved

Flag for moving.

#number CTLD_CARGO.ID

ID of this cargo.

#boolean CTLD_CARGO.LoadDirectly

Flag for direct loading.

#string CTLD_CARGO.Name

Name for menu.

#number CTLD_CARGO.PerCrateMass

Mass in kg.

Wrapper.Positionable#POSITIONABLE CTLD_CARGO.Positionable

Representation of cargo in the mission.

#number CTLD_CARGO.Stock

Number of builds available, -1 for unlimited.

#string CTLD_CARGO.Subcategory

Sub-category name.

#table CTLD_CARGO.Templates

Table of #POSITIONABLE objects.

Function(s)

Field(s)

#string CTLD_CARGO.CargoType

Enumerator of Type.

#string CTLD_CARGO.ClassName

Class name.

#number CTLD_CARGO.CratesNeeded

Crates needed to build.

#boolean CTLD_CARGO.HasBeenDropped

True if dropped from heli.

#boolean CTLD_CARGO.HasBeenMoved

Flag for moving.

#number CTLD_CARGO.ID

ID of this cargo.

#boolean CTLD_CARGO.LoadDirectly

Flag for direct loading.

#string CTLD_CARGO.Name

Name for menu.

#number CTLD_CARGO.PerCrateMass

Mass in kg.

Wrapper.Positionable#POSITIONABLE CTLD_CARGO.Positionable

Representation of cargo in the mission.

#number CTLD_CARGO.Stock

Number of builds available, -1 for unlimited.

#string CTLD_CARGO.Subcategory

Sub-category name.

#table CTLD_CARGO.Templates

Table of #POSITIONABLE objects.

Function(s)

Clear the state of an object.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

StateName

The key that is should be cleared.

Creation of a Birth Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

#string IniUnitName

The initiating unit name.

place

subplace

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a Dead Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

Defined in:

Parameter:

Wrapper.Unit#UNIT PlayerUnit

The aircraft unit the player entered.

Creation of a Remove Unit Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Takeoff Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Log an exception which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Returns the event dispatcher

Defined in:

Return value:

Remove all subscribed events

Defined in:

Return value:

Trace a function call.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 2.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 3.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Get the ClassID of the class instance.

Defined in:

Return value:

#string:

The ClassID of the class instance.

Get the ClassName of the class instance.

Defined in:

Return value:

#string:

The ClassName of the class instance.

Get the ClassName + ClassID of the class instance.

The ClassName + ClassID is formatted as '%s#%09d'.

Defined in:

Return value:

#string:

The ClassName + ClassID of the class instance.

Get the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Return value:

#number:

The Event processing Priority.

This is the worker method to retrieve the Parent class.

Note that the Parent class must be passed to call the parent class method.

self:GetParent(self):ParentMethod()

Defined in:

Parameters:

#BASE Child

This is the Child class from which the Parent class needs to be retrieved.

#BASE FromClass

(Optional) The class from which to get the parent.

Return value:

Get a Value given a Key from the Object.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

Key

The key that is used to retrieve the value. Note that the key can be a #string, but it can also be any other type!

Return value:

The Value retrieved or nil if the Key was not found and thus the Value could not be retrieved.

Subscribe to a DCS Event.

Defined in:

Parameters:

Event ID.

#function EventFunction

(optional) The function to be called when the event occurs for the unit.

Return value:

Log an information which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

This is the worker method to inherit from a parent class.

Defined in:

Parameters:

Child

is the Child class that inherits.

#BASE Parent

is the Parent class that the Child inherits from.

Return value:

Child

This is the worker method to check if an object is an (sub)instance of a class.

Examples:

  • ZONE:New( 'some zone' ):IsInstanceOf( ZONE ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'ZONE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'zone' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'BASE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false

Defined in:

Parameter:

ClassName

is the name of the class or the class itself to run the check against

Return value:

#boolean:

Enquires if tracing is on (for the class).

Defined in:

Return value:

#boolean:

BASE constructor.

This is an example how to use the BASE:New() constructor in a new class definition when inheriting from BASE.

function EVENT:New()
  local self = BASE:Inherit( self, BASE:New() ) -- #EVENT
  return self
end

Defined in:

Return value:

Occurs when an Event for an object is triggered.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that triggered the event.

Defined in:

Parameter:

The EventData structure.

BDA.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a ground unit captures either an airbase or a farp.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that captured the base place: The airbase that was captured, can be a FARP or Airbase. When calling place:getCoalition() the faction will already be the new owning faction.

Defined in:

Parameter:

The EventData structure.

Occurs when any object is spawned into the mission.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was spawned

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft crashes into the ground and is completely destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that has crashed

Defined in:

Parameter:

The EventData structure.

Occurs when an object is dead.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is dead.

Defined in:

Parameter:

The EventData structure.

Unknown precisely what creates this event, likely tied into newer damage model.

Will update this page when new information become available.

  • initiator: The unit that had the failure.

Defined in:

Parameter:

The EventData structure.

Discard chair after ejection.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has ejected

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft shuts down its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is stopping its engines.

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft starts its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is starting its engines.

Defined in:

Parameter:

The EventData structure.

Occurs whenever an object is hit by a weapon.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit object the fired the weapon weapon: Weapon object that hit the target target: The Object that was hit.

Defined in:

Parameter:

The EventData structure.

Occurs when any system fails on a human controlled aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that had the failure

Defined in:

Parameter:

The EventData structure.

Occurs on the death of a unit.

Contains more and different information. Similar to unit_lost it will occur for aircraft before the aircraft crash event occurs. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that killed the target
  • target: Target Object
  • weapon: Weapon Object

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has landed place: Object that the unit landed on. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

Event does not occur if the pilot lands in the water and sub combs to Davey Jones Locker. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: Static object representing the ejected pilot. Place : Aircraft that the pilot ejected from.
  • place: may not return as a valid object if the aircraft has crashed into the ground and no longer exists.
  • subplace: is always 0 for unknown reasons.

Defined in:

Parameter:

The EventData structure.

Landing quality mark.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a new mark was added.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark text was changed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark was removed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Weapon add.

Fires when entering a mission per pylon with the name of the weapon (double pylons not counted, infinite wep reload not counted. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the pilot of an aircraft is killed.

Can occur either if the player is alive and crashes or if a weapon kills the pilot without completely destroying the plane. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the pilot has died in.

Defined in:

Parameter:

The EventData structure.

Occurs when a player enters a slot and takes control of an aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. NOTE: This is a workaround of a long standing DCS bug with the PLAYER_ENTER_UNIT event. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player assumes direct control of a unit.

Note - not Mulitplayer safe. Use PlayerEnterAircraft. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player relieves control of a unit to the AI.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the player left.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft connects with a tanker and begins taking on fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft is finished taking fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

There is no information on what values the score was changed to. Event is likely similar to player_comment in this regard. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit stops firing its weapon.

Event will always correspond with a shooting start event. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was doing the shooting.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit begins firing a weapon that has a high rate of fire.

Most common with aircraft cannons (GAU-8), autocannons, and machine guns. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is doing the shooting. target: The unit that is being targeted.

Defined in:

Parameter:

The EventData structure.

Occurs whenever any unit in a mission fires a weapon.

But not any machine gun or autocannon based weapon, those are handled by EVENT.ShootingStart. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft takes off from an airbase, farp, or ship.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that tookoff place: Object from where the AI took-off from. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Trigger zone.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the game thinks an object is destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that is was destroyed.

Defined in:

Parameter:

The EventData structure.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#number Repeat

Specifies the interval in seconds when the scheduler will call the event function.

#number RandomizeFactor

Specifies a randomization factor between 0 and 1 to randomize the Repeat.

#number Stop

Specifies the amount of seconds when the scheduler will be stopped.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Stops the Schedule.

Defined in:

Parameter:

#string SchedulerID

(Optional) Scheduler ID to be stopped. If nil, all pending schedules are stopped.

Set the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Parameter:

#number EventPriority

The Event processing Priority.

Return value:

self

Set a state or property of the Object given a Key and a Value.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that will hold the Value set by the Key.

Key

The key that is used as a reference of the value. Note that the key can be a #string, but it can also be any other type!

Value

The value to is stored in the object.

Return value:

The Value set.

Trace a function logic level 1.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 2.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 3.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace all methods in MOOSE

Defined in:

Parameter:

#boolean TraceAll

true = trace all methods in MOOSE.

Set tracing for a class

Defined in:

Parameter:

#string Class

Class name.

Set tracing for a specific method of class

Defined in:

Parameters:

#string Class

Class name.

#string Method

Method.

Set trace level

Defined in:

Parameter:

#number Level

Set trace off.

Defined in:

Usage:

-- Switch the tracing Off
BASE:TraceOff()

Set trace on.

Defined in:

Usage:

-- Switch the tracing On
BASE:TraceOn()

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

So tracing must be switched on manually in your mission if you are using Moose statically. When moose is loading dynamically (for moose class development), tracing is switched on by default.

Defined in:

Parameter:

#boolean TraceOnOff

Switch the tracing on or off.

Usage:


  -- Switch the tracing On
  BASE:TraceOnOff( true )

  -- Switch the tracing Off
  BASE:TraceOnOff( false )

UnSubscribe to a DCS event.

Defined in:

Parameter:

Event ID.

Return value:

Trace a function call.

This function is private.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

Trace a function logic.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

The main event handling function...

This function captures all events generated for the class.

Defined in:

Parameter:

DCS#Event event

Define cargo types.

Field(s)

Function(s)

  • CTLD_ENGINEERING class, extends Core.Base#BASE

Field(s)

#number CTLD_ENGINEERING.marktimer

wait this many secs before trying a crate again

Function(s)

(Internal) Arrived at crates in reach.

Stop group.

Defined in:

CTLD_ENGINEERING

Return value:

(Internal) Set build status.

Defined in:

CTLD_ENGINEERING

Return value:

(Internal) Set done status.

Defined in:

CTLD_ENGINEERING

Return value:

(Internal) Get the status

Defined in:

CTLD_ENGINEERING

Return value:

#string:

State

(Internal) Check the negative status

Defined in:

CTLD_ENGINEERING

Parameter:

#string State

Return value:

#boolean:

Outcome

(Internal) Check the status

Defined in:

CTLD_ENGINEERING

Parameter:

#string State

Return value:

#boolean:

Outcome

(Internal) Move towards crates in reach.

Defined in:

CTLD_ENGINEERING

Return value:

Create a new instance.

Defined in:

CTLD_ENGINEERING

Parameters:

#string Name

#string GroupName

Name of Engineering #GROUP object

HeliGroup

HeliUnit

Return value:

(Internal) Search for crates in reach.

Defined in:

CTLD_ENGINEERING

Parameters:

#table crates

Table of found crate Ops.CTLD#CTLD_CARGO objects.

#number number

Number of crates found.

Return value:

(Internal) Set the status

Defined in:

CTLD_ENGINEERING

Parameter:

#string State

Return value:

(Internal) Set start status.

Defined in:

CTLD_ENGINEERING

Return value:

(Internal) Set stop status.

Defined in:

CTLD_ENGINEERING

Return value:

(Internal) Return distance in meters between two coordinates.

Defined in:

CTLD_ENGINEERING

Parameters:

Coordinate one

Coordinate two

Return value:

#number:

Distance in meters or -1

Field(s)

#number CTLD_ENGINEERING.marktimer

wait this many secs before trying a crate again

Function(s)

Clear the state of an object.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

StateName

The key that is should be cleared.

Creation of a Birth Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

#string IniUnitName

The initiating unit name.

place

subplace

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a Dead Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

IniObjectCategory

Creation of a S_EVENT_PLAYER_ENTER_AIRCRAFT event.

Defined in:

Parameter:

Wrapper.Unit#UNIT PlayerUnit

The aircraft unit the player entered.

Creation of a Remove Unit Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Takeoff Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Creation of a Crash Event.

Defined in:

Parameters:

DCS#Time EventTime

The time stamp of the event.

DCS#Object Initiator

The initiating object of the event.

Log an exception which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Returns the event dispatcher

Defined in:

Return value:

Remove all subscribed events

Defined in:

Return value:

Trace a function call.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 2.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function call level 3.

Must be at the beginning of the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Get the ClassID of the class instance.

Defined in:

Return value:

#string:

The ClassID of the class instance.

Get the ClassName of the class instance.

Defined in:

Return value:

#string:

The ClassName of the class instance.

Get the ClassName + ClassID of the class instance.

The ClassName + ClassID is formatted as '%s#%09d'.

Defined in:

Return value:

#string:

The ClassName + ClassID of the class instance.

Get the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Return value:

#number:

The Event processing Priority.

This is the worker method to retrieve the Parent class.

Note that the Parent class must be passed to call the parent class method.

self:GetParent(self):ParentMethod()

Defined in:

Parameters:

#BASE Child

This is the Child class from which the Parent class needs to be retrieved.

#BASE FromClass

(Optional) The class from which to get the parent.

Return value:

Get a Value given a Key from the Object.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that holds the Value set by the Key.

Key

The key that is used to retrieve the value. Note that the key can be a #string, but it can also be any other type!

Return value:

The Value retrieved or nil if the Key was not found and thus the Value could not be retrieved.

Subscribe to a DCS Event.

Defined in:

Parameters:

Event ID.

#function EventFunction

(optional) The function to be called when the event occurs for the unit.

Return value:

Log an information which will be traced always.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

This is the worker method to inherit from a parent class.

Defined in:

Parameters:

Child

is the Child class that inherits.

#BASE Parent

is the Parent class that the Child inherits from.

Return value:

Child

This is the worker method to check if an object is an (sub)instance of a class.

Examples:

  • ZONE:New( 'some zone' ):IsInstanceOf( ZONE ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'ZONE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'zone' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'BASE' ) will return true

  • ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false

Defined in:

Parameter:

ClassName

is the name of the class or the class itself to run the check against

Return value:

#boolean:

Enquires if tracing is on (for the class).

Defined in:

Return value:

#boolean:

BASE constructor.

This is an example how to use the BASE:New() constructor in a new class definition when inheriting from BASE.

function EVENT:New()
  local self = BASE:Inherit( self, BASE:New() ) -- #EVENT
  return self
end

Defined in:

Return value:

Occurs when an Event for an object is triggered.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that triggered the event.

Defined in:

Parameter:

The EventData structure.

BDA.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a ground unit captures either an airbase or a farp.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that captured the base place: The airbase that was captured, can be a FARP or Airbase. When calling place:getCoalition() the faction will already be the new owning faction.

Defined in:

Parameter:

The EventData structure.

Occurs when any object is spawned into the mission.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was spawned

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft crashes into the ground and is completely destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that has crashed

Defined in:

Parameter:

The EventData structure.

Occurs when an object is dead.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is dead.

Defined in:

Parameter:

The EventData structure.

Unknown precisely what creates this event, likely tied into newer damage model.

Will update this page when new information become available.

  • initiator: The unit that had the failure.

Defined in:

Parameter:

The EventData structure.

Discard chair after ejection.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a pilot ejects from an aircraft Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has ejected

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft shuts down its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is stopping its engines.

Defined in:

Parameter:

The EventData structure.

Occurs when any aircraft starts its engines.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is starting its engines.

Defined in:

Parameter:

The EventData structure.

Occurs whenever an object is hit by a weapon.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit object the fired the weapon weapon: Weapon object that hit the target target: The Object that was hit.

Defined in:

Parameter:

The EventData structure.

Occurs when any system fails on a human controlled aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that had the failure

Defined in:

Parameter:

The EventData structure.

Occurs on the death of a unit.

Contains more and different information. Similar to unit_lost it will occur for aircraft before the aircraft crash event occurs. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that killed the target
  • target: Target Object
  • weapon: Weapon Object

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft lands at an airbase, farp or ship Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

initiator : The unit that has landed place: Object that the unit landed on. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.

Event does not occur if the pilot lands in the water and sub combs to Davey Jones Locker. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: Static object representing the ejected pilot. Place : Aircraft that the pilot ejected from.
  • place: may not return as a valid object if the aircraft has crashed into the ground and no longer exists.
  • subplace: is always 0 for unknown reasons.

Defined in:

Parameter:

The EventData structure.

Landing quality mark.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a new mark was added.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark text was changed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mark was removed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. MarkID: ID of the mark.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission ends Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when a mission starts Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Weapon add.

Fires when entering a mission per pylon with the name of the weapon (double pylons not counted, infinite wep reload not counted. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the pilot of an aircraft is killed.

Can occur either if the player is alive and crashes or if a weapon kills the pilot without completely destroying the plane. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the pilot has died in.

Defined in:

Parameter:

The EventData structure.

Occurs when a player enters a slot and takes control of an aircraft.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. NOTE: This is a workaround of a long standing DCS bug with the PLAYER_ENTER_UNIT event. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player assumes direct control of a unit.

Note - not Mulitplayer safe. Use PlayerEnterAircraft. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is being taken control of.

Defined in:

Parameter:

The EventData structure.

Occurs when any player relieves control of a unit to the AI.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that the player left.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft connects with a tanker and begins taking on fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft is finished taking fuel.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was receiving fuel.

Defined in:

Parameter:

The EventData structure.

Occurs when any modification to the "Score" as seen on the debrief menu would occur.

There is no information on what values the score was changed to. Event is likely similar to player_comment in this regard. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit stops firing its weapon.

Event will always correspond with a shooting start event. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that was doing the shooting.

Defined in:

Parameter:

The EventData structure.

Occurs when any unit begins firing a weapon that has a high rate of fire.

Most common with aircraft cannons (GAU-8), autocannons, and machine guns. Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that is doing the shooting. target: The unit that is being targeted.

Defined in:

Parameter:

The EventData structure.

Occurs whenever any unit in a mission fires a weapon.

But not any machine gun or autocannon based weapon, those are handled by EVENT.ShootingStart. Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when an aircraft takes off from an airbase, farp, or ship.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes. initiator : The unit that tookoff place: Object from where the AI took-off from. Can be an Airbase Object, FARP, or Ships

Defined in:

Parameter:

The EventData structure.

Trigger zone.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

Defined in:

Parameter:

The EventData structure.

Occurs when the game thinks an object is destroyed.

Have a look at the class Core.EVENT#EVENT as these are just the prototypes.

  • initiator: The unit that is was destroyed.

Defined in:

Parameter:

The EventData structure.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Schedule a new time event.

Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.

Defined in:

Parameters:

#number Start

Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.

#number Repeat

Specifies the interval in seconds when the scheduler will call the event function.

#number RandomizeFactor

Specifies a randomization factor between 0 and 1 to randomize the Repeat.

#number Stop

Specifies the amount of seconds when the scheduler will be stopped.

#function SchedulerFunction

The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.

#table ...

Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.

Return value:

#string:

The Schedule ID of the planned schedule.

Stops the Schedule.

Defined in:

Parameter:

#string SchedulerID

(Optional) Scheduler ID to be stopped. If nil, all pending schedules are stopped.

Set the Class Event processing Priority.

The Event processing Priority is a number from 1 to 10, reflecting the order of the classes subscribed to the Event to be processed.

Defined in:

Parameter:

#number EventPriority

The Event processing Priority.

Return value:

self

Set a state or property of the Object given a Key and a Value.

Note that if the Object is destroyed, set to nil, or garbage collected, then the Values and Keys will also be gone.

Defined in:

Parameters:

Object

The object that will hold the Value set by the Key.

Key

The key that is used as a reference of the value. Note that the key can be a #string, but it can also be any other type!

Value

The value to is stored in the object.

Return value:

The Value set.

Trace a function logic level 1.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 2.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace a function logic level 3.

Can be anywhere within the function logic.

Defined in:

Parameter:

Arguments

A #table or any field.

Trace all methods in MOOSE

Defined in:

Parameter:

#boolean TraceAll

true = trace all methods in MOOSE.

Set tracing for a class

Defined in:

Parameter:

#string Class

Class name.

Set tracing for a specific method of class

Defined in:

Parameters:

#string Class

Class name.

#string Method

Method.

Set trace level

Defined in:

Parameter:

#number Level

Set trace off.

Defined in:

Usage:

-- Switch the tracing Off
BASE:TraceOff()

Set trace on.

Defined in:

Usage:

-- Switch the tracing On
BASE:TraceOn()

Set trace on or off Note that when trace is off, no BASE.Debug statement is performed, increasing performance! When Moose is loaded statically, (as one file), tracing is switched off by default.

So tracing must be switched on manually in your mission if you are using Moose statically. When moose is loading dynamically (for moose class development), tracing is switched on by default.

Defined in:

Parameter:

#boolean TraceOnOff

Switch the tracing on or off.

Usage:


  -- Switch the tracing On
  BASE:TraceOnOff( true )

  -- Switch the tracing Off
  BASE:TraceOnOff( false )

UnSubscribe to a DCS event.

Defined in:

Parameter:

Event ID.

Return value:

Trace a function call.

This function is private.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

Trace a function logic.

Defined in:

Parameters:

Arguments

A #table or any field.

DebugInfoCurrentParam

DebugInfoFromParam

The main event handling function...

This function captures all events generated for the class.

Defined in:

Parameter:

DCS#Event event

  • CTLD_HERCULES class, extends Core.Base#BASE

Field(s)

#string CTLD_HERCULES.infantrytemplate

template for a group of 10 paratroopers

#number CTLD_HERCULES.j

Function(s)

[Internal] Function to calc initiator heading

Defined in:

CTLD_HERCULES

Parameter:

Wrapper.Group#GROUP Cargo_Drop_initiator

Return value:

#number:

north corrected heading

[Internal] Function to calc north correction

Defined in:

CTLD_HERCULES

Parameter:

Position Vec3

Return value:

#number:

north correction

[Internal] Function to calculate object height

Defined in:

CTLD_HERCULES

Parameter:

The group for which to calculate the height

Return value:

#number:

height over ground

[Internal] Function to initialize dropped cargo

Defined in:

CTLD_HERCULES

Parameters:

#table Cargo_Contents

Table 'weapon' from event data

#string Cargo_Type_name

Name of this cargo

#boolean Container_Enclosed

Is container?

#boolean SoldierGroup

Is soldier group?

#boolean ParatrooperGroupSpawnInit

Is paratroopers?

Return value:

[Internal] Function to spawn a group

Defined in:

CTLD_HERCULES

Parameters:

Wrapper.Group#GROUP Cargo_Drop_initiator

Core.Point#POINT_VEC3 Cargo_Drop_Position

#string Cargo_Type_name

#number CargoHeading

#number Cargo_Country

Return value:

[Internal] Spawn cargo objects

Defined in:

CTLD_HERCULES

Parameters:

Wrapper.Group#GROUP Cargo_Drop_initiator

#number Cargo_Drop_Direction

Core.Point#COORDINATE Cargo_Content_position

#string Cargo_Type_name

#boolean Cargo_over_water

#boolean Container_Enclosed

#boolean ParatrooperGroupSpawn

#boolean offload_cargo

#boolean all_cargo_survive_to_the_ground

#boolean all_cargo_gets_destroyed

#boolean destroy_cargo_dropped_without_parachute

#number Cargo_Country

Return value:

[Internal] Function to spawn static cargo

Defined in:

CTLD_HERCULES

Parameters:

Wrapper.Group#GROUP Cargo_Drop_initiator

Core.Point#POINT_VEC3 Cargo_Drop_Position

#string Cargo_Type_name

#number CargoHeading

#boolean dead

#number Cargo_Country

Return value:

[Internal] Function to track cargo objects

Defined in:

CTLD_HERCULES

Parameters:

Return value:

#number:

height over ground

[Internal] Function to check availability of templates

Defined in:

CTLD_HERCULES

Return value:

[Internal] Function to check surface type

Defined in:

CTLD_HERCULES

Parameters:

The group for which to calculate the height

object

Return value:

#number:

height over ground

[User] Instantiate a new object

Defined in:

CTLD_HERCULES

Parameters:

#string Coalition

Coalition side, "red", "blue" or "neutral"

#string Alias

Name of this instance

Ops.CTLD#CTLD CtldObject

CTLD instance to link into

Return value:

Usage:

Integrate to your CTLD instance like so, where `my_ctld` is a previously created CTLD instance:
           
           my_ctld.enableHercules = false -- avoid dual loading via CTLD F10 and F8 ground crew
           local herccargo = CTLD_HERCULES:New("blue", "Hercules Test", my_ctld)
           
You also need: 
* A template called "Infantry" for 10 Paratroopers (as set via herccargo.infantrytemplate). 
* Depending on what you are loading with the help of the ground crew, there are 42 more templates for the various vehicles that are loadable. 
There's a **quick check output in the `dcs.log`** which tells you what's there and what not.
E.g.:
           ...Checking template for APC BTR-82A Air [24998lb] (BTR-82A) ... MISSING)
           ...Checking template for ART 2S9 NONA Skid [19030lb] (SAU 2-C9) ... MISSING)
           ...Checking template for EWR SBORKA Air [21624lb] (Dog Ear radar) ... MISSING)
           ...Checking template for Transport Tigr Air [15900lb] (Tigr_233036) ... OK)
           
Expected template names are the ones in the rounded brackets.

HINTS

The script works on the EVENTS.Shot trigger, which is used by the mod when you **drop cargo from the Hercules while flying**. Unloading on the ground does
not achieve anything here. If you just want to unload on the ground, use the normal Moose CTLD.
There are two ways of airdropping:   
1) Very low and very slow (>5m and <10m AGL) - here you can drop stuff which has "Skid" at the end of the cargo name (loaded via F8 Ground Crew menu)
2) Higher up and slow (>100m AGL) - here you can drop paratroopers and cargo which has "Air" at the end of the cargo name (loaded via F8 Ground Crew menu)

[Internal] Function to change cargotype per group (Wrench)

Defined in:

CTLD_HERCULES

Parameters:

#number key

Carrier key id

#string cargoType

Type of cargo

#number cargoNum

Number of cargo objects

Return value:

[Internal] Function to spawn a soldier group of 10 units

Defined in:

CTLD_HERCULES

Parameters:

Wrapper.Group#GROUP Cargo_Drop_initiator

Core.Point#POINT_VEC3 Cargo_Drop_Position

#string Cargo_Type_name

#number CargoHeading

#number Cargo_Country

#number GroupSpacing

Return value:

[Internal] Function to capture BIRTH event

Defined in:

CTLD_HERCULES

Parameter:

The event data

Return value:

[Internal] Function to capture SHOT event

Defined in:

CTLD_HERCULES

Parameter:

Core.Event#EVENTDATA Cargo_Drop_Event

The event data

Return value:

Field(s)

#string