<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://cmm.ozdeadmeat.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ozdeadmeat</id>
	<title>CMM Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://cmm.ozdeadmeat.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ozdeadmeat"/>
	<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php/Special:Contributions/Ozdeadmeat"/>
	<updated>2026-07-20T20:19:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=CMM_Map_Marker_Commands&amp;diff=6244</id>
		<title>CMM Map Marker Commands</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=CMM_Map_Marker_Commands&amp;diff=6244"/>
		<updated>2026-06-29T13:55:56Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: /* Support Aircraft Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the definitive list of Map Commands for CMM. The first part of the list will be dedicated to standard user commands. Further down will be Admin or &#039;special permission&#039; based commands.&lt;br /&gt;
&lt;br /&gt;
== Common Commands ==&lt;br /&gt;
&lt;br /&gt;
===!capture===&lt;br /&gt;
  Description : Captures a facility using the nearest capture truck, mark needs to be near the facility you want to capture (Currently only Airbases)&lt;br /&gt;
        Usage : !capture&lt;br /&gt;
&lt;br /&gt;
===!register===&lt;br /&gt;
  Description : Registers a user to the server&lt;br /&gt;
        Usage : !register&lt;br /&gt;
&lt;br /&gt;
===!email===&lt;br /&gt;
  Description : Updates the users Email address in the auth table&lt;br /&gt;
        Usage : !email:myemailaddress@email.com&lt;br /&gt;
&lt;br /&gt;
===!discord===&lt;br /&gt;
  Description : Updates the users Discord ID in the auth table&lt;br /&gt;
        Usage : !discord:067067067067067067067&lt;br /&gt;
&lt;br /&gt;
===!accept===&lt;br /&gt;
  Description : By executing this command near a mission, it will add you to the mission.&lt;br /&gt;
        Usage : !accept&lt;br /&gt;
&lt;br /&gt;
===!reject===&lt;br /&gt;
  Description : Will remove the player from closest accepted mission.&lt;br /&gt;
        Usage : !reject&lt;br /&gt;
&lt;br /&gt;
=== !myinfo ===&lt;br /&gt;
  Description : Will create a map marker with information about the player in it. &lt;br /&gt;
                Currently shows, Name, SlotID, UnitID and UCID. &lt;br /&gt;
                The mark can be deleted by pressing the red X.&lt;br /&gt;
        Usage : !myinfo&lt;br /&gt;
&lt;br /&gt;
===!myperms===&lt;br /&gt;
  Description : Will send a text alert to the player displaying the players current permissions&lt;br /&gt;
        Usage : !myperms&lt;br /&gt;
&lt;br /&gt;
===!clean===&lt;br /&gt;
  Description : Will clear wrecks, craters etc from the ground within the defined area&lt;br /&gt;
        Usage : !clean:&amp;lt;radiusInMetersNumber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===!survey===&lt;br /&gt;
  Description : Will check if there are objects (excluding trees), and the ground around the point is flat&lt;br /&gt;
        Usage : !survey:&amp;lt;radiusInMetersNumber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===!smoke===&lt;br /&gt;
  Description : Will add a smoke of a specific colour at the mark point location.&lt;br /&gt;
        Usage : !smoke:&amp;lt;colour&amp;gt;&lt;br /&gt;
 Valid Smoke Colours are:&lt;br /&gt;
  red &lt;br /&gt;
  green &lt;br /&gt;
  blue &lt;br /&gt;
  orange &lt;br /&gt;
  white &lt;br /&gt;
 Example1 : !smoke: red&lt;br /&gt;
&lt;br /&gt;
===!spin===&lt;br /&gt;
  Description : Will place a large pin mark on the map as well as put a smoke in the game&lt;br /&gt;
        Usage : syntax = !spin:&amp;lt;colour&amp;gt;&lt;br /&gt;
 Valid Colours are:&lt;br /&gt;
    red&lt;br /&gt;
    green&lt;br /&gt;
    blue&lt;br /&gt;
    orange&lt;br /&gt;
    white&lt;br /&gt;
    yellow (will display white smoke)&lt;br /&gt;
    black  (will display white smoke)&lt;br /&gt;
 Example1 : !spin:green &lt;br /&gt;
&lt;br /&gt;
===!pin===&lt;br /&gt;
  Description : Will place a large pin mark on the map (same as spin, just without the smoke)&lt;br /&gt;
        Usage : !pin:&amp;lt;colour&amp;gt;&lt;br /&gt;
 Valid Colours are:&lt;br /&gt;
    red&lt;br /&gt;
    green&lt;br /&gt;
    blue&lt;br /&gt;
    orange&lt;br /&gt;
    white&lt;br /&gt;
    yellow&lt;br /&gt;
    black&lt;br /&gt;
 Example1 : !pin:green&lt;br /&gt;
&lt;br /&gt;
===!flare===&lt;br /&gt;
  Description : Will place a flare in the game at the specified location&lt;br /&gt;
        Usage : !flare:&amp;lt;colour&amp;gt;&lt;br /&gt;
 Valid Colours are:&lt;br /&gt;
    red&lt;br /&gt;
    green&lt;br /&gt;
    orange&lt;br /&gt;
    white&lt;br /&gt;
 Example1 : !flare:green&lt;br /&gt;
&lt;br /&gt;
===!illum===&lt;br /&gt;
  Description : Will place an illum flare in the game at the specified location&lt;br /&gt;
        Usage : !illum:&amp;lt;brightness#&amp;gt;&lt;br /&gt;
     Example1 : !illum:5000&lt;br /&gt;
&lt;br /&gt;
===!scan===&lt;br /&gt;
  Description : Will scan an area around the specified location&lt;br /&gt;
        Usage : !scan:&amp;lt;boxrange&amp;gt;&lt;br /&gt;
     Example1 : !scan&lt;br /&gt;
&lt;br /&gt;
===!topo===&lt;br /&gt;
  Description : Will draw a vector showing what intercept points to the terrain from the specified locations ground elevation.&lt;br /&gt;
        Usage : !topo&lt;br /&gt;
&lt;br /&gt;
== Support Aircraft Commands ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===!isr / !tanker / !awacs===&lt;br /&gt;
  Description : Will move an ISR / TANKER / AWACS platform into the orbit and location specified&lt;br /&gt;
        Usage : !isr:&amp;lt;ISRPlatformName&amp;gt; -rt &amp;lt;direction&amp;gt;:&amp;lt;distanceKM&amp;gt; -s &amp;lt;speedKnots&amp;gt; -a &amp;lt;altitude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example1 = place drone orbit location====&lt;br /&gt;
     Example1 : will put &amp;lt;u&amp;gt;Colt11&amp;lt;/u&amp;gt; into a &#039;&#039;circular orbit &amp;lt;u&amp;gt;at&amp;lt;/u&amp;gt; the specified location&#039;&#039;&lt;br /&gt;
        Usage : !isr:Colt11 &lt;br /&gt;
&lt;br /&gt;
====Example2 = place drone in racetrack at location====&lt;br /&gt;
     Example2 : will put &amp;lt;u&amp;gt;Colt11&amp;lt;/u&amp;gt; into a &amp;lt;u&amp;gt;&#039;&#039;RaceTrack&#039;&#039;&amp;lt;/u&amp;gt; orbit that goes &amp;lt;u&amp;gt;&#039;&#039; west 50km&#039;&#039;&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;from&amp;lt;/u&amp;gt; the specified location&lt;br /&gt;
        Usage : !isr:Colt11 &lt;br /&gt;
                -rt 270 50&lt;br /&gt;
&lt;br /&gt;
====Example3 = change altid orbit location====&lt;br /&gt;
     Example3 : will &#039;&#039;change the altitude&#039;&#039; of &amp;lt;u&amp;gt;Colt11&amp;lt;/u&amp;gt; to &amp;lt;u&amp;gt;&#039;&#039;20,000ft&#039;&#039;&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;without&amp;lt;/u&amp;gt; changing its orbit location&lt;br /&gt;
        Usage : !isr:Colt11 &lt;br /&gt;
                -dm -a 20000 &lt;br /&gt;
&lt;br /&gt;
====Example4 = change the speed ====&lt;br /&gt;
     Example4 : will &#039;&#039;change the speed&#039;&#039; of &amp;lt;u&amp;gt;Colt11&amp;lt;/u&amp;gt; to &amp;lt;u&amp;gt;&#039;&#039;350knots&#039;&#039;&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;without&amp;lt;/u&amp;gt; changing its orbit location&lt;br /&gt;
        Usage : !isr:Colt11 &lt;br /&gt;
                -dm -s 350 &lt;br /&gt;
&lt;br /&gt;
====Example5 = changes speed, alt &amp;amp; locn ====&lt;br /&gt;
     Example5 : will &#039;&#039;change the speed, altitude and location&#039;&#039; of &amp;lt;u&amp;gt;Colt11&amp;lt;/u&amp;gt; to &amp;lt;u&amp;gt;&#039;&#039;175knots&#039;&#039;&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;&#039;&#039;14,000ft&#039;&#039;&amp;lt;/u&amp;gt; and to a &amp;lt;u&amp;gt;&#039;&#039;racetrack&#039;&#039;&amp;lt;/u&amp;gt; going &amp;lt;u&amp;gt;&#039;&#039;south 25km&#039;&#039;&amp;lt;/u&amp;gt;, &amp;lt;u&amp;gt;from&amp;lt;/u&amp;gt; the specified location&lt;br /&gt;
        Usage : !isr:Colt11 &lt;br /&gt;
                -rt 180 25 -s 175 -a 14000 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;All these examples are available for&#039;&#039; &#039;&#039;&#039;!isr, !tanker&#039;&#039;&#039; and &#039;&#039;&#039;!awacs&#039;&#039;&#039; &#039;&#039;commands.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Elevated Permissions Section  ==&lt;br /&gt;
&lt;br /&gt;
===!notify===&lt;br /&gt;
  Description : Will send a message to all players on the server for the specified time&lt;br /&gt;
        Usage : !notify:&amp;lt;timetodisplay&amp;gt;&lt;br /&gt;
                &amp;lt;message&amp;gt;&lt;br /&gt;
     Example1 : !notify:120&lt;br /&gt;
                Oz spends too much time documenting his map commands&lt;br /&gt;
&lt;br /&gt;
===!arty===&lt;br /&gt;
  Description : Will drop an Artillery barrage around the specified location (NOTE: will not hit Runway or Taxiways)&lt;br /&gt;
        Usage : !arty:&amp;lt;rounds&amp;gt;:&amp;lt;areaofeffectinMeters&amp;gt;&lt;br /&gt;
     Example1 : !arty:25:500&lt;br /&gt;
&lt;br /&gt;
===!explode===&lt;br /&gt;
  Description : Will make a single explosion at the specified location&lt;br /&gt;
        Usage : !explode:&amp;lt;explosionstrength&amp;gt;&lt;br /&gt;
     Example1 : !explode&lt;br /&gt;
     Example2 : !explode:500&lt;br /&gt;
&lt;br /&gt;
===!deployfatcow===&lt;br /&gt;
  Description : Deploys a Fatcow at the closest landed player. Player must be stationary on the ground, will send messages to the player when they can left off.&lt;br /&gt;
        Usage : !deployfatcow&lt;br /&gt;
&lt;br /&gt;
===!savesupport===&lt;br /&gt;
  Description : Will save the current support orbits for all support units so that the next time the mission executes they will fly the new orbits in the current mission&lt;br /&gt;
        Usage : !savesupport&lt;br /&gt;
&lt;br /&gt;
===!savestate===&lt;br /&gt;
  Description : When executed it will stagger saving all mission persistence data to disk. Average save time is approximately 90 seconds.&lt;br /&gt;
        Usage : !savestate&lt;br /&gt;
&lt;br /&gt;
===!serverreport===&lt;br /&gt;
  Description : Gives a report on the amount of units in a mission&lt;br /&gt;
        Usage : !serverreport&lt;br /&gt;
&lt;br /&gt;
===!effectsmoke===&lt;br /&gt;
  Description : Will add an Fire / Smoke Effect at the specified location&lt;br /&gt;
        Usage : !effectsmoke:&amp;lt;smokeEffect#&amp;gt;&lt;br /&gt;
 Valid smoke effect types are:&lt;br /&gt;
    1 = small smoke and fire&lt;br /&gt;
    2 = medium smoke and fire&lt;br /&gt;
    3 = large smoke and fire&lt;br /&gt;
    4 = huge smoke and fire&lt;br /&gt;
    5 = small smoke&lt;br /&gt;
    6 = medium smoke&lt;br /&gt;
    7 = large smoke&lt;br /&gt;
    8 = huge smoke&lt;br /&gt;
 Example1 : !effectsmoke:3&lt;br /&gt;
&lt;br /&gt;
===!removesmoke===&lt;br /&gt;
  Description : Will remove the closest effectsmoke. (does not work with smokes added with !smoke command)&lt;br /&gt;
        Usage :&lt;br /&gt;
&lt;br /&gt;
===!removegroup===&lt;br /&gt;
  Description : Removes the closest group to the mark&lt;br /&gt;
        Usage : !removegroup&lt;br /&gt;
&lt;br /&gt;
===!spawn===&lt;br /&gt;
  Description : Spawns a specified group in the vicinity of the marker in a random direction unless defined in the command.&lt;br /&gt;
        Usage : !spawn:&amp;lt;type&amp;gt;:&amp;lt;direction&amp;gt;&lt;br /&gt;
     Example1 : !spawn:list            (will put a list of all valid spawn types on screen)&lt;br /&gt;
     Example2 : !spawn:blist           (will put a list of valid spawn types for the Blue team on screen)&lt;br /&gt;
     Example3 : !spawn:rlist           (will put a list of valid spawn types for the Red team on screen)&lt;br /&gt;
     Example4 : !spawn:capturetruck:90 (will spawn a capture truck fasting East)&lt;br /&gt;
     Example5 : !spawn:supply:135      (will spawn a supply crate fasting South East)&lt;br /&gt;
&lt;br /&gt;
===!additem / !setitem / !removeitem===&lt;br /&gt;
  Description : Will modify the item to the closest airbase, ship, fob&lt;br /&gt;
        Usage : !additem:&amp;lt;itemstringname&amp;gt;:&amp;lt;quantity&amp;gt;&lt;br /&gt;
     Example1 : !addItem:AH-64D_BLK_II:5&lt;br /&gt;
     Example2 : !addItem:DagiAH64&lt;br /&gt;
     Example3 : !addItem:weapons.missiles.AGM_114K:100&lt;br /&gt;
&lt;br /&gt;
===!addfuel / !setfuel / !removefuel===&lt;br /&gt;
  Description : Will modify the fuel levels of the closest airbase, ship, fob.&lt;br /&gt;
        Usage : !addfuel:&amp;lt;fueltype#&amp;gt;:&amp;lt;quantityInTonnes&amp;gt;&lt;br /&gt;
 Valid fuel types are:&lt;br /&gt;
    0 = JetFuel&lt;br /&gt;
    1 = Aviation Gas&lt;br /&gt;
    2 = MW50&lt;br /&gt;
    3 = Diesel&lt;br /&gt;
 Example1 : !addfuel:0:5&lt;br /&gt;
&lt;br /&gt;
===!makeadmin / !makemod / !makegm / !makepatreon !makemember===&lt;br /&gt;
  Description : Will add the permission to the closest player pilot&lt;br /&gt;
        Usage :&lt;br /&gt;
&lt;br /&gt;
===!removeadmin / !removemod / !removegm / !removepatreon===&lt;br /&gt;
  Description : Will remove the permission to the closest player pilot&lt;br /&gt;
        Usage :&lt;br /&gt;
&lt;br /&gt;
===!revoke===&lt;br /&gt;
  Description : Will remove all permissions from the closest pilot&lt;br /&gt;
        Usage : !revoke&lt;br /&gt;
&lt;br /&gt;
===!refreshauth===&lt;br /&gt;
  Description : Will reload the CMM.authtable from the CMM.AUTH.File&lt;br /&gt;
        Usage : !refreshauth&lt;br /&gt;
&lt;br /&gt;
== Development Commands ==&lt;br /&gt;
&lt;br /&gt;
===!gwl===&lt;br /&gt;
  Description : Will dump a file containing the closest airbases warehouse weapons list into the CMM dump directory and be called &#039;CMM.WEAPONSLIST.json&#039;&lt;br /&gt;
  This is more of a mission development command and has no real gameplay value&lt;br /&gt;
&lt;br /&gt;
===!dumpwh===&lt;br /&gt;
  Description : Will dump a file containing the entire contents of the nearest airbases warehouse (fuel levels, weapons, airframes)&lt;br /&gt;
  &#039;&#039;File will be called &#039;&#039;&#039;&#039;&#039;&amp;lt;AirbaseName&amp;gt;_Warehouse.json&#039;&#039;&#039;&#039;&#039; and will be in the CMM dump directory&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===!dumpairb===&lt;br /&gt;
  Description : Will dump a file containing all data of an airbase&lt;br /&gt;
  &#039;&#039;File will be called &#039;&#039;&#039;&#039;&#039;&amp;lt;AirbaseName&amp;gt;_AirBase.json&#039;&#039;&#039;&#039;&#039; and will be in the CMM dump directory&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Data includes but is not limited to:&lt;br /&gt;
    Callsign, DisplayName, EditorName&lt;br /&gt;
    AirbaseID#&lt;br /&gt;
    Runway(s) Information&lt;br /&gt;
    Warehouse contents&lt;br /&gt;
    Location&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===!point===&lt;br /&gt;
  Description : Will dump the X,Y,Z of the specified location into the dcs log file&lt;br /&gt;
        Usage :&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetZone&amp;diff=6243</id>
		<title>GetZone</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetZone&amp;diff=6243"/>
		<updated>2026-06-24T12:27:31Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetZone – created via PowerShell script (2026-06-24T22:27:33Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetZone|fDescription=   Returns a zone table by its name|parentFile=     cmm.ZoneFunctions.lua|syntax=         CMM.GetZone(&amp;lt;string&amp;gt;)|return=         table or nil|returnDesc=     Returns a zone table if found, otherwise nil.|example=        CMM.GetZone(&amp;quot;Zone15&amp;quot;,1000)|exampleDesc=    Returns a zone table for the zone named &amp;quot;Zone15&amp;quot;, or nil if not found.|related=        |note=           |envType= CMM|par1=         string zoneName|reqType1=     string|reqName1=     zoneName|desc1=       Name of the zone as defined in the mission editor.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GenerateSortieReport&amp;diff=6242</id>
		<title>GenerateSortieReport</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GenerateSortieReport&amp;diff=6242"/>
		<updated>2026-06-24T12:27:30Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GenerateSortieReport – created via PowerShell script (2026-06-24T22:27:32Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GenerateSortieReport|fDescription=   Adds a sortie event to the sortie tracking system using a custom event table, enabling post-event processing such as scoring, notifications, and sortie bank scheduling. The function accepts a table with event data and processes it accordingly. Can be executed during a sortie|parentFile=     cmm.XpFunctions.lua|syntax=         CMM.GenerateSortieReport(Aircraft &amp;lt;table&amp;gt;, UCID &amp;lt;string&amp;gt;)|return=         string or nil,number or nil,number or nil|returnDesc=     Returns a string containing the sortie report message, the total sortie time in seconds, and the total score earned during the sortie.|example=        CMM.GenerateSortieReport(Unit.getByName(&amp;quot;PlayerUnit&amp;quot;), &amp;quot;UCID&amp;quot;)|exampleDesc=    This would generate a sortie report for the specified player&#039;s aircraft, including a breakdown of events, total sortie time, and score earned, which can then be used for notifications and banking the sortie score.|related=        |note=           |envType= CMM|par1=         table Aircraft|reqType1=     table|reqName1=     Aircraft|desc1=       Aircraft (unit) table containing the unit data of the aircraft for which the sortie report is being generated.|par2=         string UCID|reqType2=     string|reqName2=     UCID|desc2=       The unique client ID of the player for whom the sortie report}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GatherDebugEventData&amp;diff=6241</id>
		<title>GatherDebugEventData</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GatherDebugEventData&amp;diff=6241"/>
		<updated>2026-06-24T12:27:30Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GatherDebugEventData – created via PowerShell script (2026-06-24T22:27:32Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GatherDebugEventData|fDescription=   Adds a sortie event to the sortie tracking system using a custom event table, enabling post-event processing such as scoring, notifications, and sortie bank scheduling. The function accepts a table with event data and processes it accordingly.|parentFile=     cmm.XpFunctions.lua|syntax=         CMM.GatherDebugEventData(EventData &amp;lt;table&amp;gt;)|return=         table|returnDesc=     Returns a table containing processed event information into a human readable format, including timestamps, event types, and relevant metadata for debugging purposes.|example=        CMM.GatherDebugEventData({id = world.event.S_EVENT_LAND, initiator = unit, place = location})|exampleDesc=    This would return an event events and schedules a sortie bank task after a land event, ensuring proper scoring and notification logic is applied.|related=        |note=           |envType= CMM|par1=         table EventData|reqType1=     table|reqName1=     EventData|desc1=       Table containing event data from a DCS event, including initiator and other items}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=AWARD_CARRIERLANDING&amp;diff=6240</id>
		<title>AWARD CARRIERLANDING</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=AWARD_CARRIERLANDING&amp;diff=6240"/>
		<updated>2026-06-24T12:27:29Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: AWARD_CARRIERLANDING – created via PowerShell script (2026-06-24T22:27:31Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          AWARD_CARRIERLANDING|fDescription=   Checks if a player earned a refueling bonus during a sortie by measuring the time between the start of refueling and its end, awarding the bonus if it exceeds 30 seconds and the player hasn&#039;t already received it.|parentFile=     cmm.XpFunctions.lua|syntax=         CMM.AWARD_CARRIERLANDING(PlayerAircraft &amp;lt;table&amp;gt;)|return=         |returnDesc=     |example=        CMM.AWARD_CARRIERLANDING(PlayerAircraft)|exampleDesc=    Sets the Sortie Bonus for a Carrier Landing for all crew members in the airframe.|related=        |note=           --TODO Code review required|envType= CMM|par1=         table PlayerAircraft|reqType1=     table|reqName1=     PlayerAircraft|desc1=       Event table from a refueling stopped event containing initiator, time, and position; used to determine the duration of refueling and trigger award logic.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=AWARD_REFUEL&amp;diff=6239</id>
		<title>AWARD REFUEL</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=AWARD_REFUEL&amp;diff=6239"/>
		<updated>2026-06-24T12:27:29Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: AWARD_REFUEL – created via PowerShell script (2026-06-24T22:27:31Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          AWARD_REFUEL|fDescription=   Checks if a player earned a refueling bonus during a sortie by measuring the time between the start of refueling and its end, awarding the bonus if it exceeds 30 seconds and the player hasn&#039;t already received it.|parentFile=     cmm.XpFunctions.lua|syntax=         CMM.AWARD_REFUEL(EventData &amp;lt;TBL&amp;gt;)|return=         |returnDesc=     |example=        CMM.AWARD_REFUEL({initiator = 12345, time = 1640995200})|exampleDesc=    Processes a refueling stop event to verify if the refueling duration exceeds 30 seconds and awards a bonus if valid, otherwise notifies the player that the bonus was already earned.|related=        |note=           --TODO Code review required|envType= CMM|par1=         table PlayerAircraft|reqType1=     table|reqName1=     PlayerAircraft|desc1=       Event table from a refueling stopped event containing initiator, time, and position; used to determine the duration of refueling and trigger award logic.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=Dump.AllPlayerData&amp;diff=6238</id>
		<title>Dump.AllPlayerData</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=Dump.AllPlayerData&amp;diff=6238"/>
		<updated>2026-06-24T12:27:28Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: dump.AllPlayerData – created via PowerShell script (2026-06-24T22:27:30Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          dump.AllPlayerData|fDescription=   |parentFile=     cmm.tools.lua|syntax=         CMM.dump.AllPlayerData()|return=         nil|returnDesc=     Writes an audit entry to CMM.dump.Directory/cmm.AllPlayerData.json|example=        CMM.dump.AllPlayerData()|exampleDesc=    |related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=Tools.drawGlobalPoly&amp;diff=6237</id>
		<title>Tools.drawGlobalPoly</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=Tools.drawGlobalPoly&amp;diff=6237"/>
		<updated>2026-06-24T12:27:27Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: tools.drawGlobalPoly – created via PowerShell script (2026-06-24T22:27:29Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          tools.drawGlobalPoly|fDescription=   Draws a set of global vec3 points as a single drawing.|parentFile=     cmm.tools.lua|syntax=         CMM.tools.drawPoly(PointsArray &amp;lt;TBL&amp;gt;)|return=         nil|returnDesc=     Returns nothing, triggers a marker overlay on the map with the polygon shape.|example=        CMM.tools.drawPoly({x=100, y=200, z=0}, {{dir={x=1, y=0, z=0}, range=50}, {dir={x=0, y=1, z=0}, range=30}})|exampleDesc=    Creates a polygon with two relative points, one to the right and one upward from the base position, drawing a visible shape with default line and fill colors.|related=        |note=           |envType= CMM|par1=         table PointsArray|reqType1=     table|reqName1=     PointsArray|desc1=       Table of relative point definitions, each containing &#039;dir&#039; and &#039;range&#039; fields specifying direction and distance to offset from the base position.|par2=         table Line|reqType2=     table|reqName2=     Line|desc2=       R,G,B,A values for line color (0-1 range)|par3=         table Fill|reqType3=     table|reqName3=     Fill|desc3=       R,G,B,A values for fill color (0-1 range}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=Tools.BuildWPpointTable&amp;diff=6236</id>
		<title>Tools.BuildWPpointTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=Tools.BuildWPpointTable&amp;diff=6236"/>
		<updated>2026-06-24T12:27:27Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: tools.BuildWPpointTable – created via PowerShell script (2026-06-24T22:27:29Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          tools.BuildWPpointTable|fDescription=   Constructs a table of waypoints based on a group&#039;s waypoints and a specified mode. It calculates positions relative to a unit or origin point, supporting different modes for position derivation. Returns a table of vectors or nil if group or mode is invalid.|parentFile=     cmm.tools.lua|syntax=         CMM.tools.BuildWPpointTable(GroupName &amp;lt;string&amp;gt;, Mode &amp;lt;number&amp;gt;, SkipFirst &amp;lt;boolean&amp;gt;)|return=         table or nil|returnDesc=     Returns a table of vectors representing the waypoints, or nil if group not found or no waypoints exist.|example=        CMM.tools.BuildWPpointTable(&amp;quot;WhyUbreakMyShitED&amp;quot;,2,true)|exampleDesc=    Extracts relative positions from the group &amp;quot;WhyUbreakMyShitED&amp;quot;, skipping the first waypoint, using mode 2 for relative positioning.|related=        |note=           |envType= CMM|par1=         string GroupName|reqType1=     string|reqName1=     GroupName|desc1=       Name of the group containing waypoints to extract. Must be a valid group name defined in the mission editor.|par2=         number or nil Mode|optType2=     number or nil|optName2=     Mode|desc2=       Mode for position calculation (0 = raw positions, 1 = relative to first unit, 2 = relative to unit position using CMM.GetRelativePosition). Defaults to 1 if not provided.|par3=         boolean or nil SkipFirst|optType3=     boolean or nil|optName3=     SkipFirst|desc3=       If true, skips the first waypoint in the group. Defaults to false.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=Tools.BuildNewMarkerPointTable&amp;diff=6235</id>
		<title>Tools.BuildNewMarkerPointTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=Tools.BuildNewMarkerPointTable&amp;diff=6235"/>
		<updated>2026-06-24T12:27:27Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: tools.BuildNewMarkerPointTable – created via PowerShell script (2026-06-24T22:27:29Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          tools.BuildNewMarkerPointTable|fDescription=   Creates a table of marker points from a specified group, with options to define position mode and skip the first waypoint. The function uses internal waypoint processing to derive positions either as world coordinates, relative to the first unit, or via heading and distance. Returns a table of waypoints or nil if invalid input.|parentFile=     cmm.tools.lua|syntax=         CMM.tools.BuildNewMarkerPointTable(GroupName &amp;lt;string&amp;gt;, Mode &amp;lt;number&amp;gt;, SkipFirst &amp;lt;boolean&amp;gt;)|return=         table or nil|returnDesc=     Returns a table containing the processed waypoints or nil if group not found or no waypoints exist.|example=        CMM.tools.BuildNewMarkerPointTable(&amp;quot;DebrisArea&amp;quot;,1,false)|exampleDesc=    Generates a table of waypoints from the group &amp;quot;DebrisArea&amp;quot; using relative positioning to the first unit, without skipping the first point.|related=        |note=           |envType= CMM|par1=         string GroupName|reqType1=     string|reqName1=     GroupName|desc1=       Name of the group in the mission editor containing waypoints to extract. Must be valid and defined in the mission.|par2=         number or nil Mode|optType2=     number or nil|optName2=     Mode|desc2=       Mode for position derivation: 0 = world positions, 1 = relative to first unit (default), 2 = heading and distance from first unit. Defaults to 1 if not specified.|par3=         boolean or nil SkipFirst|optType3=     boolean or nil|optName3=     SkipFirst|desc3=       If true, the first waypoint in the group is skipped. Defaults to false.|par4=         boolean or nil WriteToFile|optType4=     boolean or nil|optName4=     WriteToFile|desc4=       If true, will write the CMM.DEV}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=TemplateBuilder&amp;diff=6234</id>
		<title>TemplateBuilder</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=TemplateBuilder&amp;diff=6234"/>
		<updated>2026-06-24T12:27:22Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: TemplateBuilder – created via PowerShell script (2026-06-24T22:27:24Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          TemplateBuilder|fDescription=   Builds Saved Tempates|parentFile=     cmm.templates.lua|syntax=         CMM.TemplateBuilder(pos &amp;lt;TBL&amp;gt;, dir &amp;lt;number&amp;gt;, TemplateName &amp;lt;string&amp;gt;, BuildSide &amp;lt;number&amp;gt;, BuildTime &amp;lt;number&amp;gt;)|return=         string or nil|returnDesc=     Returns the name prefix for the template or nil if error|example=        CMM.TemplateBuilder({x,y,z}, 33,&amp;quot;FOB_01&amp;quot;, 81, 300)|exampleDesc=    Build a template named FOB_01 in the direction of 33 facing the country side 81 and have it complete the build process in 300 seconds|related=        |note=           |envType= CMM|par1=         table pos|reqType1=     table|reqName1=     pos|desc1=       vec3 table|par2=         number dir|reqType2=     number|reqName2=     dir|desc2=       Direction the template will face when deployed|par3=         string DeploymentName|reqType3=     string|reqName3=     DeploymentName|desc3=       Name of the Deployment, (Do Check if unique against CMM.DEPLOYED)|par4=         string TemplateName|reqType4=     string|reqName4=     TemplateName|desc4=       Name of the template to lookup|par5=         number BuildCountry|reqType5=     number|reqName5=     BuildCountry|desc5=       The country side to build the template for|par6=         number BuildTime|reqType6=     number|reqName6=     BuildTime|desc6=       How long you want the build to take to complete|par7=         table or nil FARPSettings|optType7=     table or nil|optName7=     FARPSettings|desc7=       How long you want the build to take to complete}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=ScheduleSpawnFARPObject&amp;diff=6233</id>
		<title>ScheduleSpawnFARPObject</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=ScheduleSpawnFARPObject&amp;diff=6233"/>
		<updated>2026-06-24T12:27:22Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: ScheduleSpawnFARPObject – created via PowerShell script (2026-06-24T22:27:24Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          ScheduleSpawnFARPObject|fDescription=   Spawns a FARP object with a set of parameters supplied|parentFile=     cmm.templates.lua|syntax=         CMM.ScheduleSpawnFARPObject(argTable &amp;lt;TBL&amp;gt;)|return=         nil|returnDesc=     Returns nothing but spawns a static object based on the arguments provided and adds it to the CMM.DEPLOYED table for tracking|example=        CMM.ScheduleSpawnFARPObject({TemplateTBL = &amp;quot;FOB_01#01245&amp;quot;, GroupName = &amp;quot;FOB_01#01245_FARP&amp;quot;, Country = 82, SpawnPoint = {x=0,y=0,z=0}, Heading = 33, DynamicSpawn = true, Hotstart = false})|exampleDesc=    Returns nothing but spawns the FARP object and then adds it to the CMM.DEPLOYED table for tracking under the &amp;quot;FOB_01#01245&amp;quot; template|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       Argument table for spawning FARP objects, {TemplateTBL &amp;lt;string&amp;gt;, GroupName &amp;lt;string&amp;gt;, Country &amp;lt;number&amp;gt;, SpawnPoint &amp;lt;table vec3&amp;gt;, Heading &amp;lt;number&amp;gt;, DynamicSpawn &amp;lt;boolean&amp;gt;, Hotstart &amp;lt;boolean&amp;gt;, DynamicCargo &amp;lt;boolean&amp;gt;}}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetNewMarkerID&amp;diff=6232</id>
		<title>GetNewMarkerID</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetNewMarkerID&amp;diff=6232"/>
		<updated>2026-06-24T12:27:18Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetNewMarkerID – created via PowerShell script (2026-06-24T22:27:20Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetNewMarkerID|fDescription=   Generates a unique convoy group name by incrementing a counter until a name not already in use is found, ensuring no name conflicts with existing groups.|parentFile=     cmm.spawnFunctions.lua|syntax=         CMM.GetNewMarkerID()|return=         string|returnDesc=     Returns a new available convoy group name in the format &amp;quot;Convoy#XXXX&amp;quot; where XXXX is a zero-padded number, or &amp;quot;NO-NEW-CONVOY-NAME&amp;quot; if no unique name can be found after maximum retries.|example=        CMM.GetNewMarkerID()|exampleDesc=    Invokes the function to generate a unique convoy name, such as &amp;quot;Convoy#0001&amp;quot;, ensuring it does not conflict with existing group names in the mission.|related=        |note=           --TODO CODE REVIEW REQUIRED|envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SpawnGroundUnitInZoneScheduledTaskFunction&amp;diff=6231</id>
		<title>SpawnGroundUnitInZoneScheduledTaskFunction</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SpawnGroundUnitInZoneScheduledTaskFunction&amp;diff=6231"/>
		<updated>2026-06-24T12:27:17Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SpawnGroundUnitInZoneScheduledTaskFunction – created via PowerShell script (2026-06-24T22:27:19Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SpawnGroundUnitInZoneScheduledTaskFunction|fDescription=   Scheduled task function that spawns ground units in a specified zone using a provided unit type table, country, and optional limits and road constraints. It validates input parameters and delegates execution to CMM.SpawnGroundUnitInZone.|parentFile=     cmm.spawnFunctions.lua|syntax=         CMM.SpawnGroundUnitInZoneScheduledTaskFunction(&amp;lt;argTable table&amp;gt;)|return=         nil|returnDesc=     Returns nothing, as the function performs spawning and does not return a value.|example=        CMM.SpawnGroundUnitInZoneScheduledTaskFunction({&amp;quot;Area-10&amp;quot;, 1, {&amp;quot;T-72&amp;quot;, &amp;quot;BTR-80&amp;quot;}, 100, true})|exampleDesc=    Schedules the spawning of up to 100 units in &amp;quot;Area-10&amp;quot; using T-72 and BTR-80 units, assigned to BLUFOR, with all spawns forced to occur on roads.|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       {ZoneName &amp;lt;string&amp;gt;, Country &amp;lt;number&amp;gt;, UnitTypeTable &amp;lt;TBL&amp;gt;, UnitLimit &amp;lt;number&amp;gt;, ForceRoad &amp;lt;boolean&amp;gt;} – Table containing zone name, country ID, list of unit types, maximum unit count, and whether to force spawns on roads.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetRouteDistancePoints&amp;diff=6230</id>
		<title>GetRouteDistancePoints</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetRouteDistancePoints&amp;diff=6230"/>
		<updated>2026-06-24T12:27:16Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetRouteDistancePoints – created via PowerShell script (2026-06-24T22:27:18Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetRouteDistancePoints|fDescription=   Calculates a series of points along a road path at a specified distance, starting from the first point and progressing sequentially until the target distance is reached. It adds each point to a table, stopping when the cumulative distance exceeds the specified value or reaches the end of the path.|parentFile=     cmm.spawnFunctions.lua|syntax=         CMM.PointsOnRoad(PathOnRoadsTbl &amp;lt;TBL&amp;gt;, distance &amp;lt;number&amp;gt;)|return=         table|returnDesc=     Returns a set of vec2 points where the numbers are less than|example=        CMM.PointsOnRoad({{x=100,y=200},{x=300,y=400},{x=500,y=600}}, 3000)|exampleDesc=    Retrieves points along a road path from (100,200) to (500,600), measuring 3000 units, and returns a table of points that lie within that distance.|related=        |note=           |envType= CMM|par1=         table PathOnRoadsTbl|reqType1=     table|reqName1=     PathOnRoadsTbl|desc1=       Array of road points, each containing x and y coordinates, representing a path to traverse.|par2=         table percPoints|reqType2=     table|reqName2=     percPoints|desc2=       Table of numbers from 0.01 - 0.99 as percentages}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetRouteDistance&amp;diff=6229</id>
		<title>GetRouteDistance</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetRouteDistance&amp;diff=6229"/>
		<updated>2026-06-24T12:27:15Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetRouteDistance – created via PowerShell script (2026-06-24T22:27:17Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetRouteDistance|fDescription=   Calculates a series of points along a road path at a specified distance, starting from the first point and progressing sequentially until the target distance is reached. It adds each point to a table, stopping when the cumulative distance exceeds the specified value or reaches the end of the path.|parentFile=     cmm.spawnFunctions.lua|syntax=         CMM.GetRouteDistance(PathOnRoadsTbl &amp;lt;TBL&amp;gt;)|return=         number|returnDesc=     Table containing the points along the path that are at or within the specified distance from the start.|example=        CMM.GetRouteDistance({{x=100,y=200},{x=300,y=400},{x=500,y=600}})|exampleDesc=    Measures the total distance along the path defined by the points (100,200), (300,400), and (500,600) by calculating the 2D distance between each consecutive point and summing them up, returning the total distance as a number.|related=        |note=           |envType= CMM|par1=         table PathOnRoadsTbl|reqType1=     table|reqName1=     PathOnRoadsTbl|desc1=       Array of vec2 road points, each containing x and y coordinates, representing a path to traverse.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=OutSoundForCoalition&amp;diff=6228</id>
		<title>OutSoundForCoalition</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=OutSoundForCoalition&amp;diff=6228"/>
		<updated>2026-06-24T12:27:13Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: outSoundForCoalition – created via PowerShell script (2026-06-24T22:27:15Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          outSoundForCoalition|fDescription=   Plays a randomly selected sound from a table or a single sound string, with support for both string and table inputs. If a table is provided, a random entry is chosen; if a string is provided, that sound is played directly.|parentFile=     cmm.soundFunctions.lua|syntax=         CMM.outSoundForCoalition(SOUND &amp;lt;table|string&amp;gt;)|return=         nil|returnDesc=     Returns nothing, plays the selected sound using trigger.action.outSound.|example=        CMM.outSoundForCoalition({&amp;quot;SOUNDS/CMM/XP_Banked_1.ogg&amp;quot;, &amp;quot;SOUNDS/CMM/XP_Banked_2.ogg&amp;quot;})|exampleDesc=    Plays a randomly selected sound from the provided list of sound files, simulating a banked event with varied audio feedback.|related=        |note=           |envType= CMM|par1=         table or string SOUND|reqType1=     table or string|reqName1=     SOUND|desc1=       REQUIRED, either a string path to a sound file or a table of sound file paths. If a table, a random entry is selected; if a string, the sound is played directly.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=OutSoundForCoalition&amp;diff=6227</id>
		<title>OutSoundForCoalition</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=OutSoundForCoalition&amp;diff=6227"/>
		<updated>2026-06-24T12:27:13Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: outSoundForCoalition – created via PowerShell script (2026-06-24T22:27:15Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          outSoundForCoalition|fDescription=   Plays a sound specific to a coalition, with support for either a single sound string or a table of sound strings. The coalition is defined by a number (0=NEUTRAL, 1=RED, 2=BLUE), defaulting to BLUE if invalid. A random sound is selected from a table or played directly if a string is provided.|parentFile=     cmm.soundFunctions.lua|syntax=         CMM.outSoundForCoalition(COAL &amp;lt;number&amp;gt;, SOUND &amp;lt;table|string&amp;gt;)|return=         nil|returnDesc=     Returns nothing, plays the selected sound using trigger.action.outSoundForCoalition.|example=        CMM.outSoundForCoalition(2, &amp;quot;SOUNDS/CMM/XP_Banked_3.ogg&amp;quot;) or CMM.outSoundForCoalition(2, CMM.SOUNDS.XPBanked)|exampleDesc=    Plays a BLUE-specific sound, either a single file or a randomly selected file from a predefined list, simulating a banked event with coalition-aware audio feedback.|related=        |note=           |envType= CMM|par1=         number COAL|reqType1=     number|reqName1=     COAL|desc1=       REQUIRED, coalition value (0 = NEUTRAL, 1 = RED, 2 = BLUE); defaults to 2 if outside valid range.|par2=         table or string SOUND|reqType2=     table or string|reqName2=     SOUND|desc2=       REQUIRED, either a string path to a sound file or a table of sound file paths. If a table, a random entry is selected; if a string, the sound is played directly.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetCargoState&amp;diff=6226</id>
		<title>GetCargoState</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetCargoState&amp;diff=6226"/>
		<updated>2026-06-24T12:27:12Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetCargoState – created via PowerShell script (2026-06-24T22:27:14Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetCargoState|fDescription=   Gets the Max Wounded, Personnel , maxmass and current weight of cargo on board the player&#039;s current airframe. Returns a table with the cargo state information or nil if an error occurs. Logs informational messages for errors or successful retrievals.|parentFile=     cmm.sideMissionFunctions.lua|syntax=         CMM.GetCargoState(UnitObject &amp;lt;table&amp;gt;)|return=         nil or table|returnDesc=     Returns a table containing the cargo state information (max wounded, max personnel, max,cargo, max weight, current weight) or nil if an error occurs.|example=        CMM.Miz.CheckAirFrame(player, &amp;quot;CargoMission&amp;quot;)|exampleDesc=    Verifies that the player&#039;s airframe has the required cargo capacity for a cargo mission, returning true if valid and logging the match details.|related=        |note=           |envType= CMM|par1=         table UnitObject|reqType1=     table|reqName1=     UnitObject|desc1=       Player object}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=Miz.CheckAirFrame&amp;diff=6225</id>
		<title>Miz.CheckAirFrame</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=Miz.CheckAirFrame&amp;diff=6225"/>
		<updated>2026-06-24T12:27:12Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: Miz.CheckAirFrame – created via PowerShell script (2026-06-24T22:27:14Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          Miz.CheckAirFrame|fDescription=   Checks if a player&#039;s airframe is compatible with a specified mission type by comparing the airframe&#039;s cargo capacity against the mission&#039;s required cargo type. Returns true if the airframe has sufficient cargo capacity, otherwise returns false. Logs informational messages for errors or successful matches.|parentFile=     cmm.sideMissionFunctions.lua|syntax=         CMM.Miz.CheckAirFrame(playerObject &amp;lt;object&amp;gt;, MissionType &amp;lt;string&amp;gt;)|return=         boolean|returnDesc=     Returns true if the airframe meets the mission&#039;s cargo requirement, false otherwise.|example=        CMM.Miz.CheckAirFrame(player, &amp;quot;CargoMission&amp;quot;)|exampleDesc=    Verifies that the player&#039;s airframe has the required cargo capacity for a cargo mission, returning true if valid and logging the match details.|related=        |note=           |envType= CMM|par1=         table playerObject|reqType1=     table|reqName1=     playerObject|desc1=       Player object to retrieve the airframe type from, must have a getTypeName method.|par2=         string MissionType|reqType2=     string|reqName2=     MissionType|desc2=       The mission type string, case-insensitive, used to determine cargo requirements from sidequest data.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetTerrainHeightFlatness&amp;diff=6224</id>
		<title>GetTerrainHeightFlatness</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetTerrainHeightFlatness&amp;diff=6224"/>
		<updated>2026-06-24T12:27:12Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetTerrainHeightFlatness – created via PowerShell script (2026-06-24T22:27:14Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetTerrainHeightFlatness|fDescription=   Returns a height difference value|parentFile=     cmm.positionFunctions.lua|syntax=         CMM.GetTerrainHeightFlatness(vec3&amp;lt;table&amp;gt;)|return=         number or boolean or nil|returnDesc=     Returns a number if all items are valid, if a limit number is defined it will return a boolean if it is within the limit or not, if the vec3 is invalid it will return nil|example=        CMM.GetTerrainHeightFlatness({x=100, y=50, z=10})|exampleDesc=    Returns the closest point on the road network to the given position, or the original position if no roads are found.|related=        |note=           |envType= CMM|par1=         table vec3|reqType1=     table|reqName1=     vec3|desc1=       Vec3 table with x, y, z coordinates|par2=         number or nil radius|optType2=     number or nil|optName2=     radius|desc2=       A number representing the radius in meters around the point to sample terrain heights [DEFAULT: 30]|par3=         number or nil limit|optType3=     number or nil|optName3=     limit|desc3=       An optional number representing a maximum acceptable height difference; if provided, the function will return a boolean indicating whether the height difference is within this limit.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetClosestPointOnRoads&amp;diff=6223</id>
		<title>GetClosestPointOnRoads</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetClosestPointOnRoads&amp;diff=6223"/>
		<updated>2026-06-24T12:27:12Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetClosestPointOnRoads – created via PowerShell script (2026-06-24T22:27:14Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetClosestPointOnRoads|fDescription=   Converts a heading in degrees into a forward Vec3 vector.|parentFile=     cmm.positionFunctions.lua|syntax=         CMM.GetClosestPointOnRoads(vec3&amp;lt;table&amp;gt;)|return=         table  or  nil|returnDesc=     Closest Road Vec3 vector {x, y, z}|example=        CMM.GetClosestPointOnRoads({x=100, y=50, z=10})|exampleDesc=    Returns the closest point on the road network to the given position, or the original position if no roads are found.|related=        |note=           |envType= CMM|par1=         table vec3|reqType1=     table|reqName1=     vec3|desc1=       Vec3 table with x, y, z coordinates}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=IsDegrees&amp;diff=6222</id>
		<title>IsDegrees</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=IsDegrees&amp;diff=6222"/>
		<updated>2026-06-24T12:27:08Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: IsDegrees – created via PowerShell script (2026-06-24T22:27:10Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          IsDegrees|fDescription=   Checks whether a given number is within the valid degree range of 0 to 360 inclusive.|parentFile=     cmm.positionFunctions.lua|syntax=         CMM.IsDegrees(value &amp;lt;number&amp;gt;)|return=         boolean|returnDesc=     Returns true if the value is a number between 0 and 360 (inclusive), otherwise false.|example=        CMM.IsDegrees(270)|exampleDesc=    Checks if 270 is a valid degree value, returning true.|related=        |note=           |envType= CMM|par1=         number value|reqType1=     number|reqName1=     value|desc1=       The numeric value to validate as a degree measurement.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=LogPointsTransaction&amp;diff=6221</id>
		<title>LogPointsTransaction</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=LogPointsTransaction&amp;diff=6221"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: LogPointsTransaction – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          LogPointsTransaction|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.CreatePlayerTransactionLogFile(ArgTable&amp;lt;table&amp;gt;)|return=         nil|returnDesc=     Returns nothing, but creates the Player Transaction Log entry at CMM.POINTS.AuditLogPath with the details of the transaction|example=        CMM.CreatePlayerTransactionLogFile({true, &amp;quot;12345&amp;quot;, &amp;quot;Ned Flanders&amp;quot;, 9001, 10001, &amp;quot;Ned had 1000 points before this transaction&amp;quot;})|exampleDesc=    Enters a transaction into the Player Transaction Log, with the details of a successful transaction for player Ned Flanders (12345) where 9001 points were added to his balance of 10001, with the note &amp;quot;Ned had 1000 points before this transaction&amp;quot;|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       ArgTable = {Success&amp;lt;boolean&amp;gt;, UCID&amp;lt;string&amp;gt;, Name&amp;lt;string&amp;gt;, Value&amp;lt;number&amp;gt;, Balance&amp;lt;number&amp;gt;, Note&amp;lt;string&amp;gt;}}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=CreatePlayerTransactionLogFile&amp;diff=6220</id>
		<title>CreatePlayerTransactionLogFile</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=CreatePlayerTransactionLogFile&amp;diff=6220"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: CreatePlayerTransactionLogFile – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          CreatePlayerTransactionLogFile|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.CreatePlayerTransactionLogFile()|return=         nil|returnDesc=     Returns nothing, but creates the Player Transaction Log file if it does not already exist at CMM.POINTS.AuditLogPath|example=        CMM.CreatePlayerTransactionLogFile()|exampleDesc=    Creates the Player Transaction Log file if it does not already exist at &amp;lt;CMM.PDIR&amp;gt;\POINTS\PlayerPointsTransaction.log|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=AwardPlayerPoints&amp;diff=6219</id>
		<title>AwardPlayerPoints</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=AwardPlayerPoints&amp;diff=6219"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: AwardPlayerPoints – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          AwardPlayerPoints|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.AwardPlayerPoints()|return=         boolean,number,string or nil|returnDesc=     Returns boolean true if the operation succeeded, false if it failed, can be accompained by a string message describing the failure reason, or nil if no message is provided.|example=        CMM.ModifyPlayerPoints({[1] = Unit.getByName(&amp;quot;PlayerUnit&amp;quot;), [2] = &amp;quot;PlayerUCID&amp;quot;, [3] = -1000, [4] = &amp;quot;Spent on a new plane!&amp;quot;})|exampleDesc=    Saves the ServerPoints out to &amp;lt;CMM.PDIR&amp;gt;\POINTS\PlayerServerPoints.json|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       ArgTable = {Unit_GIFTER, Unit_GIFTEE, Points, Note}}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=ModifyPlayerPoints&amp;diff=6218</id>
		<title>ModifyPlayerPoints</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=ModifyPlayerPoints&amp;diff=6218"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: ModifyPlayerPoints – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          ModifyPlayerPoints|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.ModifyPlayerPoints()|return=         boolean,number,string or nil|returnDesc=     Returns boolean true if the operation succeeded, false if it failed, can be accompained by a string message describing the failure reason, or nil if no message is provided.|example=        CMM.ModifyPlayerPoints({[1] = Unit.getByName(&amp;quot;PlayerUnit&amp;quot;), [2] = &amp;quot;PlayerUCID&amp;quot;, [3] = -1000, [4] = &amp;quot;Spent on a new plane!&amp;quot;})|exampleDesc=    Saves the ServerPoints out to &amp;lt;CMM.PDIR&amp;gt;\POINTS\PlayerServerPoints.json|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       ArgTable = {Unit, UCID, Points, Note}}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SaveServerPoints&amp;diff=6217</id>
		<title>SaveServerPoints</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SaveServerPoints&amp;diff=6217"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SaveServerPoints – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SaveServerPoints|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.SaveServerPoints()|return=         nil|returnDesc=     Returns nothing but saves the ServerPoints out to CMM\SERVER_PERSISTENCE\POINTS\PlayerServerPoints.json|example=        CMM.SaveServerPoints()|exampleDesc=    Saves the ServerPoints out to &amp;lt;CMM.PDIR&amp;gt;\POINTS\PlayerServerPoints.json|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetPlayerPoints&amp;diff=6216</id>
		<title>GetPlayerPoints</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetPlayerPoints&amp;diff=6216"/>
		<updated>2026-06-24T12:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetPlayerPoints – created via PowerShell script (2026-06-24T22:27:08Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetPlayerPoints|fDescription=   |parentFile=     cmm.pointsFunctions.lua|syntax=         CMM.GetPlayerPoints({Unit &amp;lt;table&amp;gt;, UCID &amp;lt;string&amp;gt;})|return=         number|returnDesc=     Returns the current Points balance for the player, if no record exists for the player, one is created with a balance of 0 and returned.|example=        CMM.GetPlayerPoints({[1] = Unit.getByName(&amp;quot;PlayerUnit&amp;quot;), [2] = &amp;quot;PlayerUCID&amp;quot;})|exampleDesc=    Returns the player points for player with UCID of &amp;quot;PlayerUCID&amp;quot;|related=        |note=           |envType= CMM|par1=         table argTable|reqType1=     table|reqName1=     argTable|desc1=       ArgTable = {Unit, UCID}}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=ClearPersistence&amp;diff=6215</id>
		<title>ClearPersistence</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=ClearPersistence&amp;diff=6215"/>
		<updated>2026-06-24T12:27:05Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: ClearPersistence – created via PowerShell script (2026-06-24T22:27:07Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          ClearPersistence|fDescription=   Removes all Persistence Files from PERSISTENCE directory|parentFile=     cmm.persistence.lua|syntax=         CMM.ClearPersistence()|return=         nil|returnDesc=     Returns nothing|example=        CMM.ClearPersistence()|exampleDesc=    Removes all files within the PERSISTENCE directory|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SavePersistence&amp;diff=6214</id>
		<title>SavePersistence</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SavePersistence&amp;diff=6214"/>
		<updated>2026-06-24T12:27:05Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SavePersistence – created via PowerShell script (2026-06-24T22:27:07Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SavePersistence|fDescription=   Saves All Persistence Files to default locations|parentFile=     cmm.persistence.lua|syntax=         CMM.SavePersistence()|return=         nil|returnDesc=     Returns nothing|example=        CMM.SavePersistence()|exampleDesc=    Saves all persistence files to their default locations, including groups, POI state, banked tables, support tables, FOB persistence, and airbase persistence, ensuring all campaign data is stored for future missions.|related=        |note=           |envType= CMM|par1=         number or nil time2save|optType1=     number or nil|optName1=     time2save|desc1=       Optional time in seconds to save, defaults to 30 seconds if not provided or invalid.|par2=         table or nil savefunctions|optType2=     table or nil|optName2=     savefunctions|desc2=       Optional table of specific save functions to call instead of the default set; if nil, all default persistence save functions will be called.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SavePlayerBankTable&amp;diff=6213</id>
		<title>SavePlayerBankTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SavePlayerBankTable&amp;diff=6213"/>
		<updated>2026-06-24T12:27:04Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SavePlayerBankTable – created via PowerShell script (2026-06-24T22:27:06Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SavePlayerBankTable|fDescription=   Saves the current player bank data to a JSON persistence file in the mission directory, ensuring data is stored for future missions.|parentFile=     cmm.persistence.lua|syntax=         CMM.SavePlayerBankTable()|return=         nil|returnDesc=     Returns nothing, writes the player bank data to the persistence file and logs completion.|example=        CMM.SavePlayerTBankTable()|exampleDesc=    Saves the current player bank data to CMM.PERSISTENCE_PLAYERDATA.json in the mission directory.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SaveSupportTable&amp;diff=6212</id>
		<title>SaveSupportTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SaveSupportTable&amp;diff=6212"/>
		<updated>2026-06-24T12:27:03Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SaveSupportTable – created via PowerShell script (2026-06-24T22:27:05Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SaveSupportTable|fDescription=   Saves the current AirSupportTable configuration to a JSON file in the mission directory, ensuring the directory exists and handling errors gracefully if the table or path is invalid.|parentFile=     cmm.persistence.lua|syntax=         CMM.SaveSupportTable(FilePath &amp;lt;string&amp;gt;)|return=         nil|returnDesc=     Returns nothing.|example=        CMM.SaveSupportTable(&amp;quot;Custom/CMM.PERSISTENCE_SUPPORTAIRCRAFT.json&amp;quot;)|exampleDesc=    Saves the current air support configuration to a custom JSON file, creates the directory if needed, and logs warnings if the table is missing or the path is invalid.|related=        |note=           |envType= CMM|par1=         string or nil FilePath|optType1=     string or nil|optName1=     FilePath|desc1=       Optional path to save the CMM.PERSISTENCE_SUPPORTAIRCRAFT.json file; if not provided, defaults to CMM.MISSION.PDir .. &amp;quot;CMM.PERSISTENCE_SUPPORTAIRCRAFT.json&amp;quot;.|par2=         boolean or nil DumpLua|optType2=     boolean or nil|optName2=     DumpLua|desc2=       Optional, will save out the SUPPORT_TABLE.lua file to the CMM.DUMPDIR if true, defaults to false if not provided.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=LoadSupportTable&amp;diff=6211</id>
		<title>LoadSupportTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=LoadSupportTable&amp;diff=6211"/>
		<updated>2026-06-24T12:27:02Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: LoadSupportTable – created via PowerShell script (2026-06-24T22:27:04Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          LoadSupportTable|fDescription=   Loads an air support configuration table from a JSON file in the mission directory, clears specific marker fields to prevent conflicts, and falls back to default values if the file is missing or invalid.|parentFile=     cmm.persistence.lua|syntax=         CMM.LoadSupportTable(FilePath &amp;lt;string&amp;gt;)|return=         nil|returnDesc=     Returns nothing.|example=        CMM.LoadSupportTable(&amp;quot;Custom/CMM.PERSISTENCE_SUPPORTAIRCRAFT.json&amp;quot;)|exampleDesc=    Loads a custom air support table from a specified JSON file, clears MarkerIdName and MarkerIdOrbit fields to avoid data corruption, and uses defaults if the file is missing.|related=        |note=           |envType= CMM|par1=         string FilePath|reqType1=     string|reqName1=     FilePath|desc1=       Optional path to the CMM.PERSISTENCE_SUPPORTAIRCRAFT.json file; if not provided, defaults to CMM.MISSION.PDir .. &amp;quot;CMM.PERSISTENCE_SUPPORTAIRCRAFT.json&amp;quot;.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SaveBankedTable&amp;diff=6210</id>
		<title>SaveBankedTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SaveBankedTable&amp;diff=6210"/>
		<updated>2026-06-24T12:27:02Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SaveBankedTable – created via PowerShell script (2026-06-24T22:27:04Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SaveBankedTable|fDescription=   Saves the current campaign banked data to a JSON file in the mission directory, formatting it as pretty-printed JSON for readability and ensuring persistence across mission reloads.|parentFile=     cmm.persistence.lua|syntax=         CMM.SaveBankedTable()|return=         nil|returnDesc=     Returns nothing.|example=        CMM.SaveBankedTable()|exampleDesc=    Saves the current CMM.BANKED table to CMM.PERSISTENCE_CAMPAIGNBANK.json in the mission directory with pretty-printed formatting.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=LoadBankedTable&amp;diff=6209</id>
		<title>LoadBankedTable</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=LoadBankedTable&amp;diff=6209"/>
		<updated>2026-06-24T12:27:02Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: LoadBankedTable – created via PowerShell script (2026-06-24T22:27:04Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          LoadBankedTable|fDescription=   Loads the campaign banked data from a JSON persistence file located in the mission directory, or initialises default values if the file is missing, then saves the data to ensure persistence.|parentFile=     cmm.persistence.lua|syntax=         CMM.LoadBankedTable()|return=         nil|returnDesc=     Returns nothing.|example=        CMM.LoadBankedTable()|exampleDesc=    Loads the campaign banked data from the CMM.PERSISTENCE_CAMPAIGNBANK.json file in the mission directory, using default values if the file does not exist.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SaveGroupsToFile&amp;diff=6208</id>
		<title>SaveGroupsToFile</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SaveGroupsToFile&amp;diff=6208"/>
		<updated>2026-06-24T12:27:02Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SaveGroupsToFile – created via PowerShell script (2026-06-24T22:27:04Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SaveGroupsToFile|fDescription=   Saves current group data for RED and BLUE sides to persistence files, with optional file paths and save flags. If no file path is provided, defaults are used. Returns true if both files were saved successfully.|parentFile=     cmm.persistence.lua|syntax=         CMM.SaveGroupsToFile(RedGroundFile &amp;lt;string|nil&amp;gt;, BlueGroundFile &amp;lt;string|nil&amp;gt;, SaveRed &amp;lt;boolean|nil&amp;gt;, SavedBlue &amp;lt;boolean|nil&amp;gt;)|return=         boolean|returnDesc=     Returns true if both RED and BLUE persistence files were saved successfully, false otherwise.|example=        CMM.SaveGroupsToFile(&amp;quot;custom_red.json&amp;quot;, &amp;quot;custom_blue.json&amp;quot;, true, false)|exampleDesc=    Saves RED group data to custom_red.json and skips saving BLUE data, using custom file paths.|related=        |note=           |envType= CMM|par1=         boolean or nil SaveRed|optType1=     boolean or nil|optName1=     SaveRed|desc1=       Flag indicating whether to save RED group data (defaults to true if not provided).|par2=         boolean or nil SaveBlue|optType2=     boolean or nil|optName2=     SaveBlue|desc2=       Flag indicating whether to save BLUE group data (defaults to true if not provided).}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=ClearPOIState&amp;diff=6207</id>
		<title>ClearPOIState</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=ClearPOIState&amp;diff=6207"/>
		<updated>2026-06-24T12:27:01Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: ClearPOIState – created via PowerShell script (2026-06-24T22:27:03Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          ClearPOIState|fDescription=   Deletes persistent POI and POI names data files from specified locations, clearing associated variables. If default paths are provided, a warning is issued and no files are deleted.|parentFile=     cmm.persistence.lua|syntax=         CMM.ClearPOIState(ACTIVEPOI &amp;lt;string|nil&amp;gt;, ACTIVEPOINAMES &amp;lt;string|nil&amp;gt;)|return=         nil|returnDesc=     Returns nothing after attempting to delete the specified persistence files, or issuing a warning if default paths are used.|example=        CMM.ClearPOIState(&amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOI.json&amp;quot;, &amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOINAMES.json&amp;quot;)|exampleDesc=    Deletes custom persistent POI and POI names files, removes stored data, and logs removal actions while avoiding deletion of default files.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=LoadPOIState&amp;diff=6206</id>
		<title>LoadPOIState</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=LoadPOIState&amp;diff=6206"/>
		<updated>2026-06-24T12:27:01Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: LoadPOIState – created via PowerShell script (2026-06-24T22:27:03Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          LoadPOIState|fDescription=   Loads persistent POI and POI names data from specified JSON files, initializing markers and setting their coalition colors. If default paths are detected, a warning is issued and no data is loaded.|parentFile=     cmm.persistence.lua|syntax=         CMM.LoadPOIState(ACTIVEPOI &amp;lt;string|nil&amp;gt;, ACTIVEPOINAMES &amp;lt;string|nil&amp;gt;)|return=         nil|returnDesc=     Returns nothing after loading and initializing POI markers and their coalition colors, or issuing a warning if default paths are used.|example=        CMM.LoadPOIState(&amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOI.json&amp;quot;, &amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOINAMES.json&amp;quot;)|exampleDesc=    Loads custom persistent POI and POI names data, creates markers with correct coalition colors, and logs success messages while skipping default path loading.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=SavePOIState&amp;diff=6205</id>
		<title>SavePOIState</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=SavePOIState&amp;diff=6205"/>
		<updated>2026-06-24T12:27:01Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: SavePOIState – created via PowerShell script (2026-06-24T22:27:03Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          SavePOIState|fDescription=   Saves the current state of CMM.ACTIVEPOI and CMM.ACTIVEPOINAMES to persistent JSON files, using provided file paths or default locations. If default paths are detected, a warning is issued and no saving occurs.|parentFile=     cmm.persistence.lua|syntax=         CMM.SavePOIState(ACTIVEPOI &amp;lt;string|nil&amp;gt;, ACTIVEPOINAMES &amp;lt;string|nil&amp;gt;)|return=         nil|returnDesc=     Returns nothing after saving both persistence files or issuing a warning if default paths are used.|example=        CMM.SavePOIState(&amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOI.json&amp;quot;, &amp;quot;CMM.TEMP\PERSISTENCE\CUSTOM.ACTIVEPOINAMES.json&amp;quot;)|exampleDesc=    Saves CMM.ACTIVEPOI and CMM.ACTIVEPOINAMES to custom persistence files, logging success messages and avoiding default path warnings.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=FindPlayerUnitID&amp;diff=6204</id>
		<title>FindPlayerUnitID</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=FindPlayerUnitID&amp;diff=6204"/>
		<updated>2026-06-24T12:27:00Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: FindPlayerUnitID – created via PowerShell script (2026-06-24T22:27:02Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          FindPlayerUnitID|fDescription=   Retrieves the unitID (or slotID) of a player by their name from the mission player list, returning the unitID if found or -1 if not present.|parentFile=     cmm.netFunctions.lua|syntax=         CMM.FindPlayerUnitID(PlayerName &amp;lt;string&amp;gt;)|return=         number or string|returnDesc=     Returns the unitID or slotID of the player if found, otherwise returns -1.|example=        CMM.FindPlayerUnitID(&amp;quot;OzDeaDMeaT&amp;quot;)|exampleDesc=    Looks up the unitID for the player named &amp;quot;OzDeaDMeaT&amp;quot; in the player list and returns it if found, otherwise returns -1.|related=        |note=           |envType= CMM|par1=         string PlayerName|reqType1=     string|reqName1=     PlayerName|desc1=       The name of the player as it appears in the mission editor or in-game.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=FindPlayerNetID&amp;diff=6203</id>
		<title>FindPlayerNetID</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=FindPlayerNetID&amp;diff=6203"/>
		<updated>2026-06-24T12:27:00Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: FindPlayerNetID – created via PowerShell script (2026-06-24T22:27:02Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          FindPlayerNetID|fDescription=   Retrieves the netID of a player by their name from the mission player list, returning the netID if found or -1 if not present.|parentFile=     cmm.netFunctions.lua|syntax=         CMM.FindPlayerNetID(PlayerName &amp;lt;string&amp;gt;)|return=         number or string|returnDesc=     Returns the netID of the player if found, otherwise returns -1.|example=        CMM.FindPlayerNetID(&amp;quot;OzDeaDMeaT&amp;quot;)|exampleDesc=    Looks up the netID for the player named &amp;quot;OzDeaDMeaT&amp;quot; in the player list and returns it if found, otherwise returns -1.|related=        |note=           |envType= CMM|par1=         string PlayerName|reqType1=     string|reqName1=     PlayerName|desc1=       The name of the player as it appears in the mission editor or in-game.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=GetNewMarkerID&amp;diff=6202</id>
		<title>GetNewMarkerID</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=GetNewMarkerID&amp;diff=6202"/>
		<updated>2026-06-24T12:26:58Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: GetNewMarkerID – created via PowerShell script (2026-06-24T22:27:00Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          GetNewMarkerID|fDescription=   Generates a new unused marker ID by checking against existing allocated IDs and returning the first available one, with a fallback to -1 if no ID can be found after extensive retries.|parentFile=     cmm.markerFunctions.lua|syntax=         CMM.GetNewMarkerID()|return=         number|returnDesc=     A new unused marker ID that has not been allocated in the MarkerPanels table, or -1 if no valid ID could be found.|example=        CMM.GetNewMarkerID()|exampleDesc=    Returns a unique marker ID such as 205, which has not been previously used in the mission, ensuring no conflicts with existing markers.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=MarkerDeployFatcow&amp;diff=6201</id>
		<title>MarkerDeployFatcow</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=MarkerDeployFatcow&amp;diff=6201"/>
		<updated>2026-06-24T12:26:58Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: MarkerDeployFatcow – created via PowerShell script (2026-06-24T22:27:00Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          MarkerDeployFatcow|fDescription=   Finds nearest player, and deploys a coalition specific fatcow|parentFile=     cmm.MapCommandFunctions.lua|syntax=         CMM.MarkerDeployFatcow(EventData &amp;lt;TBL&amp;gt;)|return=         nil|returnDesc=     Returns Nothing|example=        CMM.MarkerDeployFatcow()|exampleDesc=    Deploys a Fatcow|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=MarkerNotifyAll&amp;diff=6200</id>
		<title>MarkerNotifyAll</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=MarkerNotifyAll&amp;diff=6200"/>
		<updated>2026-06-24T12:26:58Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: MarkerNotifyAll – created via PowerShell script (2026-06-24T22:27:00Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          MarkerNotifyAll|fDescription=   Sends a notification to all players with trigger.action.outText|parentFile=     cmm.MapCommandFunctions.lua|syntax=         CMM.MarkerNotifyAll(EventData &amp;lt;TBL&amp;gt;)|return=         nil|returnDesc=     Returns Nothing (sends a notification to all players with trigger.action.outText)|example=        CMM.MarkerNotifyAll({initiator = &amp;quot;Player1&amp;quot;, text = &amp;quot;Satellite sensors are now ready for use! :20&amp;quot;})|exampleDesc=    Triggers the end of scan cooldown and notifies players that satellite sensors are now ready for use.|related=        |note=           |envType= CMM}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=MarkerRemoveGroup&amp;diff=6199</id>
		<title>MarkerRemoveGroup</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=MarkerRemoveGroup&amp;diff=6199"/>
		<updated>2026-06-24T12:26:57Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: MarkerRemoveGroup – created via PowerShell script (2026-06-24T22:26:59Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          MarkerRemoveGroup|fDescription=   Removes a group nearest to the marker position of a given coaltion if provided|parentFile=     cmm.MapCommandFunctions.lua|syntax=         CMM.MarkerRemoveGroup(EventData &amp;lt;TBL&amp;gt;)|return=         nil|returnDesc=     Returns Nothing after processing the event and removing the group based on coalition and text.|example=        CMM.MarkerRemoveGroup({pos = &amp;lt;vec3&amp;gt;, text = &amp;quot;Remove: blue&amp;quot;)|exampleDesc=    Processes a marker removal event a  BLUE side group at positions, reports the name of the group removed to the executer of the command.|related=        |note=           |envType= CMM|par1=         table EventData|reqType1=     table|reqName1=     EventData|desc1=       S_EVENT_MARK_REMOVED Event Table containing position, text, and initiator data; used to determine coalition, side, and group name to remove.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=DrawCity&amp;diff=6198</id>
		<title>DrawCity</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=DrawCity&amp;diff=6198"/>
		<updated>2026-06-24T12:26:51Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: DrawCity – created via PowerShell script (2026-06-24T22:26:53Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          DrawCity|fDescription=   Draws a city on the map using a predefined set of points from CMM.CITY. It allows customization of coalition ownership and marker colors. Returns the marker ID of the created city marker.|parentFile=     cmm.drawFunctions.lua|syntax=         CMM.DrawCity(name &amp;lt;string&amp;gt;, coal &amp;lt;number&amp;gt;, colourfill &amp;lt;table&amp;gt;, colourline &amp;lt;table&amp;gt;)|return=         number or nil|returnDesc=     Returns the marker ID of the created city marker, or nil if the city name is invalid.|example=        CMM.DrawCity(&amp;quot;Krymsk&amp;quot;, 2, {0,0,0.7,0.5}, {0,0,0,1})|exampleDesc=    Draws a city marker for &amp;quot;Krymsk&amp;quot; with blue fill and black outline, owned by the blue coalition.|related=        |note=           |envType= CMM|par1=         string name|reqType1=     string|reqName1=     name|desc1=       Name of the city to draw. Must correspond to a key in the CMM.CITY table.|par2=         number coal|reqType2=     number|reqName2=     coal|desc2=       Coalition number for the marker (0 = neutral, 1 = red, 2 = blue). If invalid, defaults to -1 (all).|par3=         table colourfill|reqType3=     table|reqName3=     colourfill|desc3=       RGBA color table for the marker fill|par4=         table colourline|reqType4=     table|reqName4=     colourline|desc4=       RGBA color table for the marker outline}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=DrawRoad&amp;diff=6197</id>
		<title>DrawRoad</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=DrawRoad&amp;diff=6197"/>
		<updated>2026-06-24T12:26:50Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: DrawRoad – created via PowerShell script (2026-06-24T22:26:52Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          DrawRoad|fDescription=   Draws a road marker between two world positions, consisting of a dashed line with an optional directional arrow.|parentFile=     cmm.drawFunctions.lua|syntax=         CMM.DrawRoad(vec3Start&amp;lt;vec3 table&amp;gt;, vec3End&amp;lt;vec3 table&amp;gt;, colour&amp;lt;table&amp;gt;, skipOffRoad&amp;lt;boolean&amp;gt;)|return=         table|returnDesc=     A table of MarkerID numbers|example=        CMM.DrawRoad(vec3start, vec3start)|exampleDesc=    Deletes the pin with circle mark ID 42 and its associated marker from the map and clears any pending scheduled removal task for it.|related=        |note=           |envType= CMM|par1=         table vec3Start|reqType1=     table|reqName1=     vec3Start|desc1=       Start location vec3 table|par2=         table vec3End|reqType2=     table|reqName2=     vec3End|desc2=       End location vec3 table|par3=         number or nil coal|optType3=     number or nil|optName3=     coal|desc3=       Coalition number for the marker (-1 for all, 1 for Redfor, 2 for Bluefor, 3 for Neutral), default -1 (all).|par4=         number or nil lineType|optType4=     number or nil|optName4=     lineType|desc4=       LineType Number (default 3) 0  No Line , 1  Solid , 2  Dashed , 3  Dotted , 4  Dot Dash , 5  Long Dash , 6  Two Dash|par5=         table or nil colour|optType5=     table or nil|optName5=     colour|desc5=       Marker Colour Table {r,g,b,a}, default {1,1,1,0.85} (white).|par6=         string or nil routeName|optType6=     string or nil|optName6=     routeName|desc6=       Marker Colour Table {r,g,b,a}, default {1,1,1,0.85} (white).}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=DrawHomePlate&amp;diff=6196</id>
		<title>DrawHomePlate</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=DrawHomePlate&amp;diff=6196"/>
		<updated>2026-06-24T12:26:48Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: DrawHomePlate – created via PowerShell script (2026-06-24T22:26:50Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          DrawHomePlate|fDescription=   Draws a circular home‑plate marker at the supplied world position.|parentFile=     cmm.drawFunctions.lua|syntax=         CMM.DrawHomePlate(&amp;lt;argTbl table&amp;gt;)|return=         table or nil|returnDesc=     Returns a one‑element table containing the created Marker ID.|example=        CMM.DrawHomePlate{vec={x=0,y=0,z=0}, size=300}|exampleDesc=    Draws a 300 m radius home plate centered at the origin and returns its Marker ID.|related=        |note=           |envType= CMM|par1=         table argTbl|reqType1=     table|reqName1=     argTbl|desc1=       Marker Argument Table (vec – required; optional size, fillColour, lineColour, lineType, coalition).}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
	<entry>
		<id>https://cmm.ozdeadmeat.com/index.php?title=DrawZone&amp;diff=6195</id>
		<title>DrawZone</title>
		<link rel="alternate" type="text/html" href="https://cmm.ozdeadmeat.com/index.php?title=DrawZone&amp;diff=6195"/>
		<updated>2026-06-24T12:26:47Z</updated>

		<summary type="html">&lt;p&gt;Ozdeadmeat: DrawZone – created via PowerShell script (2026-06-24T22:26:49Z)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:FunctionInfo|fName=          DrawZone|fDescription=   Creates a zone marker on the map using the parameters supplied in *argTbl*.|parentFile=     cmm.drawFunctions.lua|syntax=         CMM.DrawZone(&amp;lt;argTbl table&amp;gt;)|return=         table or nil|returnDesc=     Table of Marker ID&#039;s created for the zone.|example=        CMM.DrawZone{zoneName=&amp;quot;Alpha&amp;quot;, fillColour={r=1,g=0,b=0,a=0.3}, lineType=2}|exampleDesc=    Draws a red‑filled zone named “Alpha” with a dashed outline and returns the IDs of the created markers.|related=        |note=           |envType= CMM|par1=         table argTbl|reqType1=     table|reqName1=     argTbl|desc1=       Table items are at the start of the function.  Required field: zoneName. Optional fields: fillColour, lineColour, labelColour, useZoneColour, lineType, labelSize, coalition, and label.}}&lt;/div&gt;</summary>
		<author><name>Ozdeadmeat</name></author>
	</entry>
</feed>