{"name":"Arma 3: High Command","title":"Arma 3: High Command","type":"topic","url":"https://community.bistudio.com/wiki/Arma_3:_High_Command","revid":343865,"updated":"2023-07-27T15:45:05Z","aliases":[],"markdown":"> [!NOTE]\n> **Arma 2: Operation Arrowhead:** For the **Arma 2** and **Arma 2: Operation Arrowhead** version see High Command.\n\nHigh 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.\n\n### Setting up High Command\n\n1. Create a new scenario in Eden Editor\n1. Place a player unit\n1. Place the **High Command - Commander** module\n1. Synchronize the module with the player unit\n1. Place one **High Command - Subordinate** module for each group you want the player to have control over\n1. Place one group for every **High Command - Subordinate** module. Any group type will do e.g., Sentry, Fire Team, Weapon Team, tank platoon\n1. Synchronize each group with one of the previously placed modules.\n\n#### Additional Information\n\n- 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.\n\n### Taking Control\n\nAfter 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.\n\n#### Requesting a SITREP\n\nTo 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.\n\n#### In Map View\n\nGroups 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.\n\nYour setup should now look like this\n\nHovering 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.\n\n##### Advanced Waypoint Usage\n\nWhen 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:\n\n| Property | Description / Available Values |\n|---|---|\n| Waypoint Type | Move, Cycle, Seek and Destroy, Guard, Unload, Load, Get Out, Get In |\n| Combat Mode | Stealth, Combat, Aware, Safe, No Change |\n| Formation | Usual waypoint formations |\n| Speed | Limited, Normal, Full, No Change |\n| Timeout | Group waits `x` minutes and proceeds to the next waypoint afterward |\n| Wait Until | Group waits until a certain day time is reached and proceeds to the next waypoint afterward |\n| Radio | ? |\n| Create Task | Spawns code saved to High Command - Commander module's namespace `_logic getVariable \"onTaskCreated\"` |\n| Cancel Waypoint | Deletes the waypoint |\n\n##### Cycle Waypoint\n\nThe 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.\n\n### Group Type Markers\n\nIn High Command, various unit types are indicated by an icon.\n\n#### Type\n\n#### Size\n\n### Scripting\n\nThe High Command functionality can also be manipulated via scripts.\n\n|  |  |\n|---|---|\n| Get commander of a group: | hcLeader |\n| Get group parameters: | hcGroupParams |\n| Remove all subordinate groups: | hcRemoveAllGroups |\n| Get selected groups: | hcSelected |\n| Remove a group from high command: | hcRemoveGroup |\n| Force select group(s): | hcSelectGroup |\n| Add a group to high command: | hcSetGroup |\n| Manipulate command bar: | hcShowBar hcShownBar |\n| Event Handlers: | onCommandModeChanged onHCGroupSelectionChanged (stackable version) |\n\n#### All Scripting Commands\n\n- Command Group: High Command\n\n#### Scripts\n\n- `a3\\modules_f\\hc\\data\\scripts\\hc.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui_menu.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui_stat.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_local.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_sound.sqf` (Sounds are not implemented in Arma 3)\n\n#### Special Module Variables\n\n> [!IMPORTANT]\n> 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!\n\nThere are more way to customize the High Command experience and behaviour, however, they are sadly hidden for beginners. Let us take a look!\nThe following variables can be set in the High Command - Commander module's namespace. Given our module's variable name is **BIS_HC_1**.\n\n##### Adding multiple commanders\n\n```sqf\nBIS_HC_1 setVariable [\"commanders\", Array, true];\n```\n\n##### Radio Triggers\n\nRadio triggers can be made available by setting\n\n```sqf\nBIS_HC_1 setVariable [\"radios\", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], true];\n```\n\n- 0: Alpha\n- 1: Bravo\n- 2: Charlie\n- 3: Delta\n- 4: Echo\n- 5: Foxtrot\n- 6: Golf\n- 7: Hotel\n- 8: India\n- 9: Juliet\n\n##### Chain of Command\n\nChain of Command can be enabled by setting\n\n```sqf\nBIS_HC_1 setVariable [\"ChainOfCommand\", true];\n```\n\n##### Code for Create Task\n\nThe code executed when the **Create Task** (see table above) is selected for a waypoint can be set with\n\n```sqf\nBIS_HC_1 setVariable [\"onTaskCreated\", Code, true];\n```\n\n##### Code for Task Assignment\n\n```sqf\nBIS_HC_1 setVariable [\"onTaskAssigned\", Code, true];\n```\n\n##### Code for RMB Menu\n\n```sqf\nBIS_HC_1 setVariable [\"RMBmenu\", Code, true];\n```\n\n### Mods\n\nSimilar to many other Arma 3 features, High Command can be modded as well. Here are *some* modifications:\n\n- [Platoon Leader: High Command Mod 1.3](https://steamcommunity.com/sharedfiles/filedetails/?id=2094333651)\n- [HCC - High Command Converter 1.5.5](https://steamcommunity.com/sharedfiles/filedetails/?id=562920130)\n\n### See Also\n\n- Arma 3: Field Manual - High Command","sections":[{"heading":null,"level":1,"markdown":"> [!NOTE]\n> **Arma 2: Operation Arrowhead:** For the **Arma 2** and **Arma 2: Operation Arrowhead** version see High Command.\n\nHigh 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."},{"heading":"Setting up High Command","level":3,"markdown":"1. Create a new scenario in Eden Editor\n1. Place a player unit\n1. Place the **High Command - Commander** module\n1. Synchronize the module with the player unit\n1. Place one **High Command - Subordinate** module for each group you want the player to have control over\n1. Place one group for every **High Command - Subordinate** module. Any group type will do e.g., Sentry, Fire Team, Weapon Team, tank platoon\n1. Synchronize each group with one of the previously placed modules."},{"heading":"Additional Information","level":4,"markdown":"- 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."},{"heading":"Taking Control","level":3,"markdown":"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."},{"heading":"Requesting a SITREP","level":4,"markdown":"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."},{"heading":"In Map View","level":4,"markdown":"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.\n\nYour setup should now look like this\n\nHovering 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."},{"heading":"Advanced Waypoint Usage","level":5,"markdown":"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:\n\n| Property | Description / Available Values |\n|---|---|\n| Waypoint Type | Move, Cycle, Seek and Destroy, Guard, Unload, Load, Get Out, Get In |\n| Combat Mode | Stealth, Combat, Aware, Safe, No Change |\n| Formation | Usual waypoint formations |\n| Speed | Limited, Normal, Full, No Change |\n| Timeout | Group waits `x` minutes and proceeds to the next waypoint afterward |\n| Wait Until | Group waits until a certain day time is reached and proceeds to the next waypoint afterward |\n| Radio | ? |\n| Create Task | Spawns code saved to High Command - Commander module's namespace `_logic getVariable \"onTaskCreated\"` |\n| Cancel Waypoint | Deletes the waypoint |"},{"heading":"Cycle Waypoint","level":5,"markdown":"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."},{"heading":"Group Type Markers","level":3,"markdown":"In High Command, various unit types are indicated by an icon."},{"heading":"Type","level":4,"markdown":""},{"heading":"Size","level":4,"markdown":""},{"heading":"Scripting","level":3,"markdown":"The High Command functionality can also be manipulated via scripts.\n\n|  |  |\n|---|---|\n| Get commander of a group: | hcLeader |\n| Get group parameters: | hcGroupParams |\n| Remove all subordinate groups: | hcRemoveAllGroups |\n| Get selected groups: | hcSelected |\n| Remove a group from high command: | hcRemoveGroup |\n| Force select group(s): | hcSelectGroup |\n| Add a group to high command: | hcSetGroup |\n| Manipulate command bar: | hcShowBar hcShownBar |\n| Event Handlers: | onCommandModeChanged onHCGroupSelectionChanged (stackable version) |"},{"heading":"All Scripting Commands","level":4,"markdown":"- Command Group: High Command"},{"heading":"Scripts","level":4,"markdown":"- `a3\\modules_f\\hc\\data\\scripts\\hc.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui_menu.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_gui_stat.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_local.sqf`\n- `a3\\modules_f\\hc\\data\\scripts\\hc_sound.sqf` (Sounds are not implemented in Arma 3)"},{"heading":"Special Module Variables","level":4,"markdown":"> [!IMPORTANT]\n> 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!\n\nThere are more way to customize the High Command experience and behaviour, however, they are sadly hidden for beginners. Let us take a look!\nThe following variables can be set in the High Command - Commander module's namespace. Given our module's variable name is **BIS_HC_1**."},{"heading":"Adding multiple commanders","level":5,"markdown":"```sqf\nBIS_HC_1 setVariable [\"commanders\", Array, true];\n```"},{"heading":"Radio Triggers","level":5,"markdown":"Radio triggers can be made available by setting\n\n```sqf\nBIS_HC_1 setVariable [\"radios\", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], true];\n```\n\n- 0: Alpha\n- 1: Bravo\n- 2: Charlie\n- 3: Delta\n- 4: Echo\n- 5: Foxtrot\n- 6: Golf\n- 7: Hotel\n- 8: India\n- 9: Juliet"},{"heading":"Chain of Command","level":5,"markdown":"Chain of Command can be enabled by setting\n\n```sqf\nBIS_HC_1 setVariable [\"ChainOfCommand\", true];\n```"},{"heading":"Code for Create Task","level":5,"markdown":"The code executed when the **Create Task** (see table above) is selected for a waypoint can be set with\n\n```sqf\nBIS_HC_1 setVariable [\"onTaskCreated\", Code, true];\n```"},{"heading":"Code for Task Assignment","level":5,"markdown":"```sqf\nBIS_HC_1 setVariable [\"onTaskAssigned\", Code, true];\n```"},{"heading":"Code for RMB Menu","level":5,"markdown":"```sqf\nBIS_HC_1 setVariable [\"RMBmenu\", Code, true];\n```"},{"heading":"Mods","level":3,"markdown":"Similar to many other Arma 3 features, High Command can be modded as well. Here are *some* modifications:\n\n- [Platoon Leader: High Command Mod 1.3](https://steamcommunity.com/sharedfiles/filedetails/?id=2094333651)\n- [HCC - High Command Converter 1.5.5](https://steamcommunity.com/sharedfiles/filedetails/?id=562920130)"},{"heading":"See Also","level":3,"markdown":"- Arma 3: Field Manual - High Command"}],"categories":["Arma 3: Editor Modules"],"groups":["Mission Editing"]}