---
name: "Arma 3: High Command"
type: topic
source: https://community.bistudio.com/wiki/Arma_3:_High_Command
revid: 343865
updated: 2023-07-27T15:45:05Z
---

# Arma 3: High Command

> [!NOTE]
> **Arma 2: Operation Arrowhead:** For the **Arma 2** and **Arma 2: Operation Arrowhead** version see High Command.

High Command (HC) allows the player to slip into the role of a commander. Instead of having control over a group of several units, as high commander the player can take control of serverel squads and teams.

### Setting up High Command

1. Create a new scenario in Eden Editor
1. Place a player unit
1. Place the **High Command - Commander** module
1. Synchronize the module with the player unit
1. Place one **High Command - Subordinate** module for each group you want the player to have control over
1. Place one group for every **High Command - Subordinate** module. Any group type will do e.g., Sentry, Fire Team, Weapon Team, tank platoon
1. Synchronize each group with one of the previously placed modules.

#### Additional Information

- If no subordinates were synchronized with the High Command - Commander module, all groups of the commander's side will automatically be added to the High Command.

### Taking Control

After pressing the **preview** button, you take control over the groups by pressing <kbd>Left Ctrl</kbd> + <kbd>Space</kbd> or the <kbd>App Menu</kbd> key. The *command bar* will now display the groups. Select them with <kbd>F1</kbd> to <kbd>F...</kbd> and give them orders.

#### Requesting a SITREP

To request a SITREP, select a group with <kbd>F1</kbd> to <kbd>F...</kbd>, press <kbd>0</kbd> and then <kbd>1</kbd>. A hint will appear displaying the time, group icon and the members of the group.

#### In Map View

Groups can also be selected with opened map. Open the map, click on one of the group markers and then click anywhere on the map to command the group to move to this position.

Your setup should now look like this

Hovering over the group markers in map view will also provide additional information such as condition and callsign of the group and name and rank of the group leader. Furthermore, current waypoints of the groups will also be shown on the map. They are indicated by an X symbol.

##### Advanced Waypoint Usage

When the map is opened, multiple waypoints can be place by holding <kbd>Left Ctrl</kbd> and pressing the left mouse button. Furthermore, waypoints can be dragged by selecting a waypoint and holding the left mouse button. Additionally, right clicking on a waypoint allows for further customisations such as:

| Property | Description / Available Values |
|---|---|
| Waypoint Type | Move, Cycle, Seek and Destroy, Guard, Unload, Load, Get Out, Get In |
| Combat Mode | Stealth, Combat, Aware, Safe, No Change |
| Formation | Usual waypoint formations |
| Speed | Limited, Normal, Full, No Change |
| Timeout | Group waits `x` minutes and proceeds to the next waypoint afterward |
| Wait Until | Group waits until a certain day time is reached and proceeds to the next waypoint afterward |
| Radio | ? |
| Create Task | Spawns code saved to High Command - Commander module's namespace `_logic getVariable "onTaskCreated"` |
| Cancel Waypoint | Deletes the waypoint |

##### Cycle Waypoint

The cycle waypoint behaves a bit differently from what we are used to. The if a waypoint it set to *cycle* the group will actually never move toward it. Also timeouts and other waypoint properties are ignored. Instead, once the cycle waypoint is the last waypoint left, the previous waypoints are re-created.

### Group Type Markers

In High Command, various unit types are indicated by an icon.

#### Type

#### Size

### Scripting

The High Command functionality can also be manipulated via scripts.

|  |  |
|---|---|
| Get commander of a group: | [hcLeader](../commands/hcLeader.md) |
| Get group parameters: | [hcGroupParams](../commands/hcGroupParams.md) |
| Remove all subordinate groups: | [hcRemoveAllGroups](../commands/hcRemoveAllGroups.md) |
| Get selected groups: | [hcSelected](../commands/hcSelected.md) |
| Remove a group from high command: | [hcRemoveGroup](../commands/hcRemoveGroup.md) |
| Force select group(s): | [hcSelectGroup](../commands/hcSelectGroup.md) |
| Add a group to high command: | [hcSetGroup](../commands/hcSetGroup.md) |
| Manipulate command bar: | [hcShowBar](../commands/hcShowBar.md) [hcShownBar](../commands/hcShownBar.md) |
| Event Handlers: | [onCommandModeChanged](../commands/onCommandModeChanged.md) [onHCGroupSelectionChanged](../commands/onHCGroupSelectionChanged.md) ([stackable version](../topics/Mission_Event_Handlers.md#hcgroupselectionchanged)) |

#### All Scripting Commands

- Command Group: High Command

#### Scripts

- `a3\modules_f\hc\data\scripts\hc.sqf`
- `a3\modules_f\hc\data\scripts\hc_gui.sqf`
- `a3\modules_f\hc\data\scripts\hc_gui_menu.sqf`
- `a3\modules_f\hc\data\scripts\hc_gui_stat.sqf`
- `a3\modules_f\hc\data\scripts\hc_local.sqf`
- `a3\modules_f\hc\data\scripts\hc_sound.sqf` (Sounds are not implemented in Arma 3)

#### Special Module Variables

> [!IMPORTANT]
> The following information in this section should be taken with a *grain of salt*. Some of the information might not be verified to be correct or complete!

There are more way to customize the High Command experience and behaviour, however, they are sadly hidden for beginners. Let us take a look!
The following variables can be set in the High Command - Commander module's namespace. Given our module's variable name is **BIS_HC_1**.

##### Adding multiple commanders

```sqf
BIS_HC_1 setVariable ["commanders", Array, true];
```

##### Radio Triggers

Radio triggers can be made available by setting

```sqf
BIS_HC_1 setVariable ["radios", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], true];
```

- 0: Alpha
- 1: Bravo
- 2: Charlie
- 3: Delta
- 4: Echo
- 5: Foxtrot
- 6: Golf
- 7: Hotel
- 8: India
- 9: Juliet

##### Chain of Command

Chain of Command can be enabled by setting

```sqf
BIS_HC_1 setVariable ["ChainOfCommand", true];
```

##### Code for Create Task

The code executed when the **Create Task** (see table above) is selected for a waypoint can be set with

```sqf
BIS_HC_1 setVariable ["onTaskCreated", Code, true];
```

##### Code for Task Assignment

```sqf
BIS_HC_1 setVariable ["onTaskAssigned", Code, true];
```

##### Code for RMB Menu

```sqf
BIS_HC_1 setVariable ["RMBmenu", Code, true];
```

### Mods

Similar to many other Arma 3 features, High Command can be modded as well. Here are *some* modifications:

- [Platoon Leader: High Command Mod 1.3](https://steamcommunity.com/sharedfiles/filedetails/?id=2094333651)
- [HCC - High Command Converter 1.5.5](https://steamcommunity.com/sharedfiles/filedetails/?id=562920130)

### See Also

- Arma 3: Field Manual - High Command

<sub>Source: [BI Community Wiki — Arma 3: High Command](https://community.bistudio.com/wiki/Arma_3:_High_Command) (revision 343865).</sub>
