Module Menu

This module contains the MENU classes.

There is a small note... When you see a class like MENUCOMMANDCOALITION with COMMAND in italic, it acutally represents it like this: MENU_COMMAND_COALITION.


DCS Menus can be managed using the MENU classes. The advantage of using MENU classes is that it hides the complexity of dealing with menu management in more advanced scanerios where you need to set menus and later remove them, and later set them again. You'll find while using use normal DCS scripting functions, that setting and removing menus is not a easy feat if you have complex menu hierarchies defined. Using the MOOSE menu classes, the removal and refreshing of menus are nicely being handled within these classes, and becomes much more easy. On top, MOOSE implements variable parameter passing for command menus.

There are basically two different MENU class types that you need to use:

To manage main menus, the classes begin with MENU_:

To manage command menus, which are menus that allow the player to issue functions, the classes begin with MENUCOMMAND:


The above menus classes are derived from 2 main abstract classes defined within the MOOSE framework (so don't use these):

1) MENU_ BASE abstract base classes (don't use them)

The underlying base menu classes are NOT to be used within your missions. These are simply abstract base classes defining a couple of fields that are used by the derived MENU_ classes to manage menus.

1.1) Core.Menu#MENU_BASE class, extends Core.Base#BASE

The #MENU_BASE class defines the main MENU class where other MENU classes are derived from.

1.2) Core.Menu#MENUCOMMANDBASE class, extends Core.Base#BASE

The #MENUCOMMANDBASE class defines the main MENU class where other MENU COMMAND_ classes are derived from, in order to set commands.


The next menus define the MENU classes that you can use within your missions.

2) MENU MISSION classes

The underlying classes manage the menus for a complete mission file.

2.1) Menu#MENU_MISSION class, extends Core.Menu#MENU_BASE

The Core.Menu#MENU_MISSION class manages the main menus for a complete mission.
You can add menus with the MENU_MISSION.New method, which constructs a MENU_MISSION object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENU_MISSION.Remove.

2.2) Menu#MENUMISSIONCOMMAND class, extends Core.Menu#MENUCOMMANDBASE

The Core.Menu#MENUMISSIONCOMMAND class manages the command menus for a complete mission, which allow players to execute functions during mission execution.
You can add menus with the MENUMISSIONCOMMAND.New method, which constructs a MENUMISSIONCOMMAND object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENUMISSIONCOMMAND.Remove.


3) MENU COALITION classes

The underlying classes manage the menus for whole coalitions.

3.1) Menu#MENU_COALITION class, extends Core.Menu#MENU_BASE

The Core.Menu#MENU_COALITION class manages the main menus for coalitions.
You can add menus with the MENU_COALITION.New method, which constructs a MENU_COALITION object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENU_COALITION.Remove.

3.2) Menu#MENUCOALITIONCOMMAND class, extends Core.Menu#MENUCOMMANDBASE

The Core.Menu#MENUCOALITIONCOMMAND class manages the command menus for coalitions, which allow players to execute functions during mission execution.
You can add menus with the MENUCOALITIONCOMMAND.New method, which constructs a MENUCOALITIONCOMMAND object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENUCOALITIONCOMMAND.Remove.


4) MENU GROUP classes

The underlying classes manage the menus for groups. Note that groups can be inactive, alive or can be destroyed.

4.1) Menu#MENU_GROUP class, extends Core.Menu#MENU_BASE

The Core.Menu#MENU_GROUP class manages the main menus for coalitions.
You can add menus with the MENU_GROUP.New method, which constructs a MENU_GROUP object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENU_GROUP.Remove.

4.2) Menu#MENUGROUPCOMMAND class, extends Core.Menu#MENUCOMMANDBASE

The Core.Menu#MENUGROUPCOMMAND class manages the command menus for coalitions, which allow players to execute functions during mission execution.
You can add menus with the MENUGROUPCOMMAND.New method, which constructs a MENUGROUPCOMMAND object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENUGROUPCOMMAND.Remove.


5) MENU CLIENT classes

The underlying classes manage the menus for units with skill level client or player.

5.1) Menu#MENU_CLIENT class, extends Core.Menu#MENU_BASE

The Core.Menu#MENU_CLIENT class manages the main menus for coalitions.
You can add menus with the MENU_CLIENT.New method, which constructs a MENU_CLIENT object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENU_CLIENT.Remove.

5.2) Menu#MENUCLIENTCOMMAND class, extends Core.Menu#MENUCOMMANDBASE

The Core.Menu#MENUCLIENTCOMMAND class manages the command menus for coalitions, which allow players to execute functions during mission execution.
You can add menus with the MENUCLIENTCOMMAND.New method, which constructs a MENUCLIENTCOMMAND object and returns you the object reference. Using this object reference, you can then remove ALL the menus and submenus underlying automatically with MENUCLIENTCOMMAND.Remove.


Contributions: -

Authors: FlightControl : Design & Programming

Global(s)

MENU_BASE
MENU_CLIENT
MENU_CLIENT_COMMAND
MENU_COALITION
MENU_COALITION_COMMAND
MENU_COMMAND_BASE
MENU_GROUP
MENU_GROUP_COMMAND
MENU_MISSION
MENU_MISSION_COMMAND

Type MENU_BASE

MENU_BASE.ClassName
MENU_BASE.MenuParentPath
MENU_BASE.MenuPath
MENU_BASE.MenuText
MENU_BASE:New(MenuText, ParentMenu)

Consructor

Type MENU_CLIENT

MENU_CLIENT.ClassName
MENU_CLIENT:New(Client, MenuText, ParentMenu)

MENU_CLIENT constructor.

MENU_CLIENT:Remove()

Removes the sub menus recursively of this MENU_CLIENT.

MENU_CLIENT:RemoveSubMenus()

Removes the sub menus recursively of this #MENU_CLIENT.

Type MENU_CLIENT_COMMAND

MENU_CLIENT_COMMAND.ClassName
MENU_CLIENT_COMMAND:New(Client, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, MenuClient, ...)

MENUCLIENTCOMMAND constructor.

MENU_CLIENT_COMMAND:Remove()

Removes a menu structure for a client.

Type MENU_COALITION

MENU_COALITION.ClassName
MENU_COALITION:New(Coalition, MenuText, ParentMenu)

MENU_COALITION constructor.

MENU_COALITION:Remove()

Removes the main menu and the sub menus recursively of this MENU_COALITION.

MENU_COALITION:RemoveSubMenus()

Removes the sub menus recursively of this MENU_COALITION.

Type MENU_COALITION_COMMAND

MENU_COALITION_COMMAND.ClassName
MENU_COALITION_COMMAND:New(Coalition, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

MENU_COALITION constructor.

MENU_COALITION_COMMAND:Remove()

Removes a radio command item for a coalition

Type MENU_COMMAND_BASE

MENU_COMMAND_BASE.ClassName
MENU_COMMAND_BASE.CommandMenuArgument
MENU_COMMAND_BASE.CommandMenuFunction
MENU_COMMAND_BASE.MenuCallHandler
MENU_COMMAND_BASE:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArguments)

Constructor

Type MENU_GROUP

MENU_GROUP.ClassName
MENU_GROUP.MenuGroup
MENU_GROUP.MenuGroupID
MENU_GROUP.MenuPath
MENU_GROUP.MenuText
MENU_GROUP.Menus
MENU_GROUP:New(MenuGroup, MenuText, ParentMenu)

MENU_GROUP constructor.

MENU_GROUP.ParentMenu
MENU_GROUP.Path
MENU_GROUP:Remove()

Removes the main menu and sub menus recursively of this MENU_GROUP.

MENU_GROUP:RemoveSubMenus()

Removes the sub menus recursively of this MENU_GROUP.

Type MENU_GROUP_COMMAND

MENU_GROUP_COMMAND.ClassName
MENU_GROUP_COMMAND.MenuGroup
MENU_GROUP_COMMAND.MenuGroupID
MENU_GROUP_COMMAND.MenuPath
MENU_GROUP_COMMAND.MenuText
MENU_GROUP_COMMAND:New(MenuGroup, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

Creates a new radio command item for a group

MENU_GROUP_COMMAND.ParentMenu
MENU_GROUP_COMMAND.Path
MENU_GROUP_COMMAND:Remove()

Removes a menu structure for a group.

Type MENU_MISSION

MENU_MISSION.ClassName
MENU_MISSION:New(MenuText, ParentMenu)

MENU_MISSION constructor.

MENU_MISSION:Remove()

Removes the main menu and the sub menus recursively of this MENU_MISSION.

MENU_MISSION:RemoveSubMenus()

Removes the sub menus recursively of this MENU_MISSION.

Type MENU_MISSION_COMMAND

MENU_MISSION_COMMAND.ClassName
MENU_MISSION_COMMAND:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

MENU_MISSION constructor.

MENU_MISSION_COMMAND:Remove()

Removes a radio command item for a coalition

Global(s)

#MENU_BASE MENU_BASE
#MENU_CLIENT MENU_CLIENT
#MENU_CLIENT_COMMAND MENU_CLIENT_COMMAND
#MENU_COALITION MENU_COALITION
#MENU_COALITION_COMMAND MENU_COALITION_COMMAND
#MENU_COMMAND_BASE MENU_COMMAND_BASE
#MENU_GROUP MENU_GROUP
#MENU_GROUP_COMMAND MENU_GROUP_COMMAND
#MENU_MISSION MENU_MISSION
#MENU_MISSION_COMMAND MENU_MISSION_COMMAND

Type Menu

Type MENU_BASE

The MENU_BASE class

Field(s)

#string MENU_BASE.ClassName
MENU_BASE.MenuParentPath
MENU_BASE.MenuPath
#string MENU_BASE.MenuText
MENU_BASE:New(MenuText, ParentMenu)

Consructor

Parameters

  • MenuText :

  • ParentMenu :

Type MENU_CLIENT

MENU_COALITION constructor.

Creates a new radio command item for a coalition, which can invoke a function with parameters.

Usage:

 -- This demo creates a menu structure for the two clients of planes.
 -- Each client will receive a different menu structure.
 -- To test, join the planes, then look at the other radio menus (Option F10).
 -- Then switch planes and check if the menu is still there.
 -- And play with the Add and Remove menu options.
 
 -- Note that in multi player, this will only work after the DCS clients bug is solved.

 local function ShowStatus( PlaneClient, StatusText, Coalition )

   MESSAGE:New( Coalition, 15 ):ToRed()
   PlaneClient:Message( StatusText, 15 )
 end

 local MenuStatus = {}

 local function RemoveStatusMenu( MenuClient )
   local MenuClientName = MenuClient:GetName()
   MenuStatus[MenuClientName]:Remove()
 end

 --- @param Wrapper.Client#CLIENT MenuClient
 local function AddStatusMenu( MenuClient )
   local MenuClientName = MenuClient:GetName()
   -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
   MenuStatus[MenuClientName] = MENU_CLIENT:New( MenuClient, "Status for Planes" )
   MENU_CLIENT_COMMAND:New( MenuClient, "Show Status", MenuStatus[MenuClientName], ShowStatus, MenuClient, "Status of planes is ok!", "Message to Red Coalition" )
 end

 SCHEDULER:New( nil,
   function()
     local PlaneClient = CLIENT:FindByName( "Plane 1" )
     if PlaneClient and PlaneClient:IsAlive() then
       local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
       MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneClient )
       MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneClient )
     end
   end, {}, 10, 10 )

 SCHEDULER:New( nil,
   function()
     local PlaneClient = CLIENT:FindByName( "Plane 2" )
     if PlaneClient and PlaneClient:IsAlive() then
       local MenuManage = MENU_CLIENT:New( PlaneClient, "Manage Menus" )
       MENU_CLIENT_COMMAND:New( PlaneClient, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneClient )
       MENU_CLIENT_COMMAND:New( PlaneClient, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneClient )
     end
   end, {}, 10, 10 )

Field(s)

#string MENU_CLIENT.ClassName
MENU_CLIENT:New(Client, MenuText, ParentMenu)

MENU_CLIENT constructor.

Creates a new radio menu item for a client.

Parameters

  • Wrapper.Client#CLIENT Client : The Client owning the menu.

  • #string MenuText : The text for the menu.

  • #table ParentMenu : The parent menu.

Return value

#MENU_CLIENT: self

MENU_CLIENT:Remove()

Removes the sub menus recursively of this MENU_CLIENT.

Return value

#nil:

MENU_CLIENT:RemoveSubMenus()

Removes the sub menus recursively of this #MENU_CLIENT.

Return value

#MENU_CLIENT: self

Type MENU_CLIENT_COMMAND

The MENUCLIENTCOMMAND class

Field(s)

#string MENU_CLIENT_COMMAND.ClassName
MENU_CLIENT_COMMAND:New(Client, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, MenuClient, ...)

MENUCLIENTCOMMAND constructor.

Creates a new radio command item for a client, which can invoke a function with parameters.

Parameters

  • Wrapper.Client#CLIENT Client : The Client owning the menu.

  • #string MenuText : The text for the menu.

  • #MENU_BASE ParentMenu : The parent menu.

  • CommandMenuFunction : A function that is called when the menu key is pressed.

  • CommandMenuArgument : An argument for the function.

  • MenuClient :

  • ... :

Return value

Menu#MENUCLIENTCOMMAND: self

MENU_CLIENT_COMMAND:Remove()

Removes a menu structure for a client.

Return value

#nil:

Type MENU_COALITION

The MENU_COALITION class

Usage:

 -- This demo creates a menu structure for the planes within the red coalition.
 -- To test, join the planes, then look at the other radio menus (Option F10).
 -- Then switch planes and check if the menu is still there.

 local Plane1 = CLIENT:FindByName( "Plane 1" )
 local Plane2 = CLIENT:FindByName( "Plane 2" )


 -- This would create a menu for the red coalition under the main DCS "Others" menu.
 local MenuCoalitionRed = MENU_COALITION:New( coalition.side.RED, "Manage Menus" )


 local function ShowStatus( StatusText, Coalition )

   MESSAGE:New( Coalition, 15 ):ToRed()
   Plane1:Message( StatusText, 15 )
   Plane2:Message( StatusText, 15 )
 end

 local MenuStatus -- Menu#MENU_COALITION
 local MenuStatusShow -- Menu#MENU_COALITION_COMMAND

 local function RemoveStatusMenu()
   MenuStatus:Remove()
 end

 local function AddStatusMenu()
   
   -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
   MenuStatus = MENU_COALITION:New( coalition.side.RED, "Status for Planes" )
   MenuStatusShow = MENU_COALITION_COMMAND:New( coalition.side.RED, "Show Status", MenuStatus, ShowStatus, "Status of planes is ok!", "Message to Red Coalition" )
 end

 local MenuAdd = MENU_COALITION_COMMAND:New( coalition.side.RED, "Add Status Menu", MenuCoalitionRed, AddStatusMenu )
 local MenuRemove = MENU_COALITION_COMMAND:New( coalition.side.RED, "Remove Status Menu", MenuCoalitionRed, RemoveStatusMenu )

Field(s)

#string MENU_COALITION.ClassName
MENU_COALITION:New(Coalition, MenuText, ParentMenu)

MENU_COALITION constructor.

Creates a new MENU_COALITION object and creates the menu for a complete coalition.

Parameters

  • Dcs.DCSCoalition#coalition.side Coalition : The coalition owning the menu.

  • #string MenuText : The text for the menu.

  • #table ParentMenu : The parent menu. This parameter can be ignored if you want the menu to be located at the perent menu of DCS world (under F10 other).

Return value

#MENU_COALITION: self

MENU_COALITION:Remove()

Removes the main menu and the sub menus recursively of this MENU_COALITION.

Return value

#nil:

MENU_COALITION:RemoveSubMenus()

Removes the sub menus recursively of this MENU_COALITION.

Note that the main menu is kept!

Return value

#MENU_COALITION: self

Type MENU_COALITION_COMMAND

The MENUCOALITIONCOMMAND class

Field(s)

#string MENU_COALITION_COMMAND.ClassName
MENU_COALITION_COMMAND:New(Coalition, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

MENU_COALITION constructor.

Creates a new radio command item for a coalition, which can invoke a function with parameters.

Parameters

  • Dcs.DCSCoalition#coalition.side Coalition : The coalition owning the menu.

  • #string MenuText : The text for the menu.

  • Menu#MENU_COALITION ParentMenu : The parent menu.

  • CommandMenuFunction : A function that is called when the menu key is pressed.

  • CommandMenuArgument : An argument for the function. There can only be ONE argument given. So multiple arguments must be wrapped into a table. See the below example how to do this.

  • ... :

Return value

#MENUCOALITIONCOMMAND: self

MENU_COALITION_COMMAND:Remove()

Removes a radio command item for a coalition

Return value

#nil:

Type MENU_COMMAND_BASE

The MENUCOMMANDBASE class

Field(s)

#string MENU_COMMAND_BASE.ClassName
MENU_COMMAND_BASE.CommandMenuArgument
MENU_COMMAND_BASE.CommandMenuFunction
#function MENU_COMMAND_BASE.MenuCallHandler
MENU_COMMAND_BASE:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArguments)

Constructor

Parameters

  • MenuText :

  • ParentMenu :

  • CommandMenuFunction :

  • CommandMenuArguments :

Type MENU_GROUP

The MENU_GROUP class

Usage:

 -- This demo creates a menu structure for the two groups of planes.
 -- Each group will receive a different menu structure.
 -- To test, join the planes, then look at the other radio menus (Option F10).
 -- Then switch planes and check if the menu is still there.
 -- And play with the Add and Remove menu options.
 
 -- Note that in multi player, this will only work after the DCS groups bug is solved.

 local function ShowStatus( PlaneGroup, StatusText, Coalition )

   MESSAGE:New( Coalition, 15 ):ToRed()
   PlaneGroup:Message( StatusText, 15 )
 end

 local MenuStatus = {}

 local function RemoveStatusMenu( MenuGroup )
   local MenuGroupName = MenuGroup:GetName()
   MenuStatus[MenuGroupName]:Remove()
 end

 --- @param Wrapper.Group#GROUP MenuGroup
 local function AddStatusMenu( MenuGroup )
   local MenuGroupName = MenuGroup:GetName()
   -- This would create a menu for the red coalition under the MenuCoalitionRed menu object.
   MenuStatus[MenuGroupName] = MENU_GROUP:New( MenuGroup, "Status for Planes" )
   MENU_GROUP_COMMAND:New( MenuGroup, "Show Status", MenuStatus[MenuGroupName], ShowStatus, MenuGroup, "Status of planes is ok!", "Message to Red Coalition" )
 end

 SCHEDULER:New( nil,
   function()
     local PlaneGroup = GROUP:FindByName( "Plane 1" )
     if PlaneGroup and PlaneGroup:IsAlive() then
       local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
       MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 1", MenuManage, AddStatusMenu, PlaneGroup )
       MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 1", MenuManage, RemoveStatusMenu, PlaneGroup )
     end
   end, {}, 10, 10 )

 SCHEDULER:New( nil,
   function()
     local PlaneGroup = GROUP:FindByName( "Plane 2" )
     if PlaneGroup and PlaneGroup:IsAlive() then
       local MenuManage = MENU_GROUP:New( PlaneGroup, "Manage Menus" )
       MENU_GROUP_COMMAND:New( PlaneGroup, "Add Status Menu Plane 2", MenuManage, AddStatusMenu, PlaneGroup )
       MENU_GROUP_COMMAND:New( PlaneGroup, "Remove Status Menu Plane 2", MenuManage, RemoveStatusMenu, PlaneGroup )
     end
   end, {}, 10, 10 )

Field(s)

#string MENU_GROUP.ClassName
MENU_GROUP.MenuGroup
MENU_GROUP.MenuGroupID
MENU_GROUP.MenuPath
MENU_GROUP.MenuText
MENU_GROUP.Menus
MENU_GROUP:New(MenuGroup, MenuText, ParentMenu)

MENU_GROUP constructor.

Creates a new radio menu item for a group.

Parameters

  • Wrapper.Group#GROUP MenuGroup : The Group owning the menu.

  • #string MenuText : The text for the menu.

  • #table ParentMenu : The parent menu.

Return value

#MENU_GROUP: self

MENU_GROUP.ParentMenu
MENU_GROUP.Path
MENU_GROUP:Remove()

Removes the main menu and sub menus recursively of this MENU_GROUP.

Return value

#nil:

MENU_GROUP:RemoveSubMenus()

Removes the sub menus recursively of this MENU_GROUP.

Return value

#MENU_GROUP: self

Type MENU_GROUP_COMMAND

The MENUGROUPCOMMAND class

Field(s)

#string MENU_GROUP_COMMAND.ClassName
MENU_GROUP_COMMAND.MenuGroup
MENU_GROUP_COMMAND.MenuGroupID
MENU_GROUP_COMMAND.MenuPath
MENU_GROUP_COMMAND.MenuText
MENU_GROUP_COMMAND:New(MenuGroup, MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

Creates a new radio command item for a group

Parameters

  • Wrapper.Group#GROUP MenuGroup : The Group owning the menu.

  • MenuText : The text for the menu.

  • ParentMenu : The parent menu.

  • CommandMenuFunction : A function that is called when the menu key is pressed.

  • CommandMenuArgument : An argument for the function.

  • ... :

Return value

Menu#MENUGROUPCOMMAND: self

MENU_GROUP_COMMAND.ParentMenu
MENU_GROUP_COMMAND.Path
MENU_GROUP_COMMAND:Remove()

Removes a menu structure for a group.

Return value

#nil:

Type MENU_MISSION

The MENU_MISSION class

Field(s)

#string MENU_MISSION.ClassName
MENU_MISSION:New(MenuText, ParentMenu)

MENU_MISSION constructor.

Creates a new MENU_MISSION object and creates the menu for a complete mission file.

Parameters

  • #string MenuText : The text for the menu.

  • #table ParentMenu : The parent menu. This parameter can be ignored if you want the menu to be located at the perent menu of DCS world (under F10 other).

Return value

#MENU_MISSION: self

MENU_MISSION:Remove()

Removes the main menu and the sub menus recursively of this MENU_MISSION.

Return value

#nil:

MENU_MISSION:RemoveSubMenus()

Removes the sub menus recursively of this MENU_MISSION.

Note that the main menu is kept!

Return value

#MENU_MISSION: self

Type MENU_MISSION_COMMAND

The MENUMISSIONCOMMAND class

Field(s)

#string MENU_MISSION_COMMAND.ClassName
MENU_MISSION_COMMAND:New(MenuText, ParentMenu, CommandMenuFunction, CommandMenuArgument, ...)

MENU_MISSION constructor.

Creates a new radio command item for a complete mission file, which can invoke a function with parameters.

Parameters

  • #string MenuText : The text for the menu.

  • Menu#MENU_MISSION ParentMenu : The parent menu.

  • CommandMenuFunction : A function that is called when the menu key is pressed.

  • CommandMenuArgument : An argument for the function. There can only be ONE argument given. So multiple arguments must be wrapped into a table. See the below example how to do this.

  • ... :

Return value

#MENUMISSIONCOMMAND: self

MENU_MISSION_COMMAND:Remove()

Removes a radio command item for a coalition

Return value

#nil: