Arma 3 Scripting

Arma 3: Communication Menu

  • Also known as Arma 3 Communication Menu

Topic · Markdown · JSON · original wiki page

Communication menu is a commanding menu where support or mission requests are placed.

The player can access it using following means:

Note

Arma 2: For Arma 2 and additional information, see Arma 2: Custom Command Menu.

Available items are announced upon adding by a notification and remain visualized as icons next to the commanding menu.
Communication menu and icons

Configuration

Config

Communication menu items can be defined in config - global Config.cpp, Campaign Description.ext or mission Description.ext (searched in this order, the latter has the highest priority).

Note

'CfgCommunicationMenu' is purely scripted config which requires the use of scripted function BIS_fnc_addCommMenuItem. It will not work with showCommandingMenu script command.

class CfgCommunicationMenu
{
    class myArtillery
    {
        text = "Artillery Strike";        // Text displayed in the menu and in a notification
        submenu = "";                    // Submenu opened upon activation (expression is ignored when submenu is not empty.)
        expression = "player setVariable ['BIS_SUPP_request', ['Artillery', _pos]];";    // Code executed upon activation
        icon = "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\artillery_ca.paa";                // Icon displayed permanently next to the command menu
        cursor = "\a3\Ui_f\data\IGUI\Cfg\Cursors\iconCursorSupport_ca.paa";                // Custom cursor displayed when the item is selected
        enable = "1";                    // Simple expression condition for enabling the item
        removeAfterExpressionCall = 1;    // 1 to remove the item after calling
    };

    class menu_comms_1
    {
        text = "Menu Comms 1";
        submenu = "#USER:MENU_COMMS_1";    // will open submenu that is defined as global variable MENU_COMMS_1
        expression = "";
        icon = "";
        cursor = "";
        enable = "1";
        removeAfterExpressionCall = 0;
    };
};

Available default icons:

You can also preview pre-defined items using the Splendid™ Config Viewer.

Simple expressions

Expression Effect Tested
1 Always available ✓
0 Always disabled ✓
cursorOnGround Only callable when pointing at a valid position ✓
IsLeader Player has to be the leader of his group ✓
IsAlone ✗
IsAloneInVehicle ✗
IsCommander ✗
VehicleCommander ✗
CommandsToGunner ✗
CommandsToPilot ✗
NotEmpty ✗
NotEmptySoldiers ✗
NotEmptyCommanders ✗
NotEmptyMainTeam ✗
NotEmptyRedTeam ✗
NotEmptyGreenTeam ✗
NotEmptyBlueTeam ✗
NotEmptyYellowTeam ✗
NotEmptySubgroups ✗
NotEmptyInVehicle ✗
SelectedTeam ✗
SelectedUnit ✗
FuelLow ✗
AmmoLow ✗
Injured ✗
Multiplayer ✗
AreActions ✗
CursorOnGroupMember ✗
CursorOnHoldingFire ✗
CursorOnEmptyVehicle ✗
CursorOnVehicleCanGetIn ✗
CursorOnFriendly ✗
CursorOnEnemy ✗
CursorOnGround ✗
CanSelectUnitFromBar ✗
CanDeselectUnitFromBar ✗
CanSelectVehicleFromBar ✗
CanDeselectVehicleFromBar ✗
CanSelectTeamFromBar ✗
CanDeselectTeamFromBar ✗
FormationLine ✗
FormationDiamond ✗
SomeSelectedHoldingFire ✗
PlayableLeader ✗
PlayableSelected ✗
IsWatchCommanded ✗
IsSelectedToAdd ✗
HCIsLeader ✗
HCCursorOnIcon ✗
HCCursorOnIconSelectable ✗
HCCanSelectUnitFromBar ✗
HCCanDeselectUnitFromBar ✗
HCCanSelectTeamFromBar ✗
HCCanDeselectTeamFromBar ✗
HCNotEmpty ✗
PlayerVehicleCanGetIn ✗
IsXbox ✗
IsTeamSwitch ✗
CursorOnNotEmptySubgroups ✗
SomeSelectedHaveTarget ✗
CursorOnGroupMemberSelected ✗
HCCursorOnIconSelectableSelected ✗
HCCursorOnIconenemy ✗
PlayerOwnRadio ✗
CursorOnNeedFirstAID ✗
CursorOnNeedHeal ✗

Add Menu Item

Use the following functions to add the item in your mission or system:

Number of slots is limited to 10, no pagination is implemented. Larger number is an edge case, no mission should need as many supports.

Note

See all Communication Menu functions.

Config

submenu = "#USER:MENU_COMMS_1"; // "MENU_COMMS_1" is just a global variable, can be named anything

SQF

A submenu is an array in format [menuInfo, item1, item2, ... itemX]:

Example

MENU_COMMS_1 =
[
    ["MenuName", false],
    ["Teleport", [2], "", -5, [["expression", "player setPos _pos;"]], "1", "1", "\A3\ui_f\data\IGUI\Cfg\Cursors\iconcursorsupport_ca.paa"],
    ["Kill Target", [3], "", -5, [["expression", "_target setDamage 1;"]], "1", "1", "\A3\ui_f\data\IGUI\Cfg\Cursors\iconcursorsupport_ca.paa"],
    ["Disabled", [4], "", -5, [["expression", ""]], "1", "0"],
    ["Submenu", [5], "#USER:MENU_COMMS_2", -5, [], "1", "1"]
];

MENU_COMMS_2 =
[
    ["Submenu", false],
    ["Option 1", [2], "", -5, [["expression", "hint 'Option 1';"]], "1", "1"],
    ["Option 2", [3], "", -5, [["expression", "hint 'Option 2';"]], "1", "1"],
    ["Option 3", [4], "", -5, [["expression", "hint 'Option 3';"]], "1", "1"]
];
showCommandingMenu "#USER:MENU_COMMS_1"; // displays the custom menu

Existing Submenus

Some of the existing submenus:

Menu Menu Location
"#User:BIS_fnc_addCommMenuItem_menu" Group/Reply communication menu /High Command Group reply menu
"#User:BIS_MENU_GroupCommunication" High Command/UAV Reply communication menu
"#USER:BIS_VR_commMenu_1" VR Training Mission menu
"#USER:HCWPWaitRadio" High Command/UAV Waypoints waitRadio menu
"#USER:HCWPWaitUntil" High Command/UAV Waypoints waitUnitl menu
"#USER:HC_Custom_0" High Command/UAV Action menu
"#USER:HC_Missions_0" High Command/UAV Missions menu
"#USER:HC_Targets_0" High Command/UAV Targets menu
"#USER:BIS_fnc_kbMenu_menu" Conversation menu
"#USER:BIS_MENU_SOM_SecOps" Communication menu
"#USER:BIS_MENU_SOM_Support" Communication Support menu