Arma 3
65 ratings
NR6 HAL: RHQ Modules Quick Reference
By Mr Elusive
A quick reference guide for the RHQ modules in NR6 HAL.
   
Award
Favorite
Favorited
Unfavorite
What do the RHQ Modules do?
In a nutshell, units sync'd to an RHQ module have their classnames added to an "RHQ array" behind-the-scenes. These arrays tell HAL what each unit is capable of, which in turn is used to determine what tasks are appropriate for groups under his command.

Syncing the units to the correct modules in the editor is very important, otherwise units will likely receive inappropriate orders.Many of these RHQ modules are obvious, but some are not and, without having read the orginal HAL PDF manual, you'd have no idea what they're supposed to be used for.

Let's use the "Recon" module as an example; you have a light car you'd like to use for recon orders, so you'd sync it to that module, right? Wrong. According to the original HAL manual, "Recon" module is actually for recon infantry units and drones.

I've decided to write up this quick reference guide on what units you should sync to each RHQ module. This is knowledge based on the original HAL manual and how the "Auto RHQ" setting works, as well as some experimentation of my own.

If I'm wrong, please let me know in the comments so I can correct this guide.
Infantry Units
Infantry units only use these modules:

  • AA Infantry
  • All Infantry
  • AT Infantry
  • Crewmembers
  • Forward Observers
  • Recon
  • Snipers
  • Spec-Ops

AA infantry is any infantry unit carrying an anti-air launcher (MANPAD). You should also sync any anti-air vehicles, such as a Cheetah or Tigris, as there isn't a dedicated AA vehicle module.

All Infantry is exactly as described. If the unit is a human with 2 legs, it belongs in this array and should be sync'd to this module.

AT infantry is any infantry unit carrying an anti-tank launcher.

Crewmembers is for pilots, as well as helicopter and tank crews.

Forward Observers is for spotters in ghillie suits, JTACs or troops with laser designators. (I'm not 100% sure about this one, so if anyone knows for sure please correct me in the comments.)

Recon is for scout infantry, scout drones (e.g. AR-2 Darter) and ghillie spotters. UGV vehicles, such as the NATO Stomper, also need to be sync'd here.

Snipers is for any infantry equipped with marksmen or sniper rifle, with or without ghillie suits.

Spec-Ops is for special forces infantry units. Units like CTRG, Viper, Delta Force, Spetsnaz, SAS etc.
Static Weapons
Static weapons only need these four modules:

  • Artillery
  • Static AA
  • Static AT
  • Static Weapons

Artillery is for all artillery units of any description, static or mobile.

Static AA is for fixed anti-air emplacements, such as the Titan AA launcher emplacement. Doesn't have to be strictly missile weapons -- you could sync a static ZSU anti-aircraft gun.

Static AT is for fixed anti-tank emplacements, such as the Titan AT launcher. Again, it doesn't strictly have to be missile weapons -- you could sync a static recoiless rifle or D-30 AT gun.

Static Weapons is for all static weapons of any type. If it's a fixed, stationary weapon, it belongs in this array and should be sync'd to the module.
Vehicles
This is the big one. Vehicles use these 15 modules:

  • AA Infantry
  • Ammo Supports
  • Artillery
  • Boats
  • Cargo Vehicles
  • Fuel Supports
  • Heavy Armor
  • Light Armor
  • Light AT Armor
  • Medical Supports
  • Medium Armor
  • Repair Supports
  • Rocket Artillery
  • Soft Vehicles
  • Supports
  • Unarmed Cargo Vehicle

AA Infantry is for infantry and land vehicles that can engage aircraft, despite what the name of the module implies.

Ammo Supports is for any vehicle capable of resupplying ammo to another vehicle, such as the HEMTT, Tempest or Zamak ammo trucks.

Artillery is for all static and mobile artillery units.

Boats is for all naval vehicles.

Cargo Vehicles is for any vehicle that has 1 or more passenger seats.

Fuel Supports is for any vehicle capable of refueling another vehicle, such as the HEMTT, Tempest or Zamak fuel trucks.

Heavy Armor is for main battle tanks. Slammers, Varsuks and Kumas belong here.

Light Armor is for all APCs, IFVs and armored cars like the Russian BRDM. Tracked anti-aircraft vehicles like the Cheetah or Tigris should also be added here.

Light AT Armor is for any APC, IFV or armored car with a dedicated AT weapon, such as an ATGM or TOW launcher.

Medical Supports is for any vehicle that infantry units can heal at.

Medium Armor is for aged armor like Russian T-34s, or for light armor vehicles with "significant firepower". Arguably you could sync units from the Light AT Armor category too, but unfortunately the original HAL manual isn't clear on this one.

Repair Supports is for any vehicle capable of repairing another, such as the HEMTT, Tempest or Zamak repair trucks.

Rocket Artillery is for any artillery unit with rocket ordinance, such as the Zamak or Sandstorm MLRS.

Soft Vehicles is for any non-armored vehicles, regardless of their role or weaponry. Doesn't matter if it's a quad bike, a Hunter MRAP with a grenade launcher, or a repair truck - if it's a "car" or "soft vehicle", it should be sync'd to this module. UGVs such as the NATO Stomper also belong here.

Supports is for any vehicle capable of refueling, rearming, repairing or healing other units.

Unarmed Cargo Vehicles is for any vehicle with 1 or more passenger slots, but no dedicated weapons. Firing-from-vehicle (FFV) slots and helicopter "door gunner" slots do not count.
Aircraft
Aircraft share some of the modules from the vehicle category, but mainly use these ones:

  • Aircraft
  • Cargo Vehicles
  • Ground Attack Aircraft
  • Recon Aircraft
  • Unarmed Aircraft
  • Unarmed Cargo Aircraft

Aircraft is for all planes, helicopters and drones.

Cargo Vehicles is for any vehicle with one or more passenger seats. For aircraft, you would assign this to any transport helicopter, such as the Ghost Hawk, but you could also assign it to the Kajman which, like the Russian Hind-D, has passenger seats.

Ground Attack Aircraft is supposed to be for bombers, but it doesn't seem to work as intended. I usually put fixed-wing CAS aircraft or heavy gunships, like the Blackfoot or Kajman.

Recon Aircraft is for all recon drones.

Unarmed Aircraft is for any plane, helicopter or drone which doesn't have a dedicated weapon. "Door gunners" do not count as dedicated weapons, so a Ghost Hawk could be sync'd to this module.

Unarmed Cargo Aircraft is for any unarmed aircraft (see above) that has one or more passenger slots.
RHQ'ing Without Modules
This is an alternative method for users who are comfortable with basic-level scripting. If you're unsure or it looks "too hard" or "too complicated", this method is not for you and I suggest you stick with the modules.

Remember when I said at the very start of the guide "units sync'd to an RHQ module have their classnames added to an RHQ array"? You can write those arrays in initServer.sqf so long as you know the unit classnames. The advantage of this method is that you won't have to place a single RHQ module on the map. This is how I personally prefer to do it, but as always, your mileage may vary.

For example, adding this line to initServer.sqf will add the standard NATO and CSAT riflemen to the "All Infantry" RHQ array.

RHQ_Inf = ["B_Soldier_F", "O_Soldier_F"];

I've prepared an array template below that you can copy-paste into initServer.sqf and then fill out with unit classnames. There's separate sections for West (BLUFOR), East (OPFOR) and Independent to fill in. The fourth and final section simply merges all the arrays into one.

All you need to do is put the classnames strings in each appropriate array. You can get a unit's classname by placing it down in the editor, right-clicking on it, then selecting Log Classes to Clipboard.

Note: You can leave arrays blank if you have no units to put in there. For example, CSAT doesn't have any rocket artillery, so you'd leave the _E_RHQ_RocketArty array blank.

// West RHQ: // Infantry-specific: _W_RHQ_Inf = []; // All infantry classes. _W_RHQ_specFor = []; // Delta Force, Spetsnaz, Black Ops etc. _W_RHQ_recon = []; // Scout specialists, scout drones and ghillie spotters. UGV vehicles need to be added here too. _W_RHQ_FO = []; // Ghillie spotters, but can use officers if unavailable. _W_RHQ_snipers = []; // Any infantry equipped with marksmen or sniper rifles, with or without ghillie suits. _W_RHQ_ATinf = []; // Any infantry equipped with an anti-tank launcher. _W_RHQ_AAinf = []; // Any infantry or vehicle equipped with an anti-air weapon. _W_RHQ_Crew = []; // Pilots, helicopter and tank crews. // Vehicles and static weapons: _W_RHQ_Art = []; // All artillery units, mobile or static. _W_RHQ_RocketArty = []; // Rocket artillery. _W_RHQ_HArmor = []; // All tanks. _W_RHQ_MArmor = []; // Old tanks or tracked APC/IFVs with AT capability, such as BMP-2 or M2A2 Bradley. _W_RHQ_LArmor = []; // All APC, IFV and armored cars (e.g. Russian BRDM-2 or Vodnik). Tracked AA (e.g. Cheetah/Tigris) also falls into this category. _W_RHQ_LArmorAT = []; // Ditto, but with AT capable weapons. _W_RHQ_Cars = []; // All "soft" wheeled vehicles without any armor (HMMWV, jeeps, UAZs and trucks). UGV vehicles need to be added here too. _W_RHQ_Air = []; // All planes, helicopters and drones. _W_RHQ_BAir = []; // Leave this blank. _W_RHQ_RAir = []; // All recon drones. _W_RHQ_NCAir = []; // All unarmed aircraft. _W_RHQ_Naval = []; // All boats. _W_RHQ_Static = []; // All manned static weapons, regardless of type. _W_RHQ_StaticAA = []; // Ditto, but anti-air capable. _W_RHQ_StaticAT = []; // Ditto, but anti-tank capable. _W_RHQ_Support = []; // Any vehicle capable of refueling, rearming, repairing or healing other units. _W_RHQ_Fuel = []; // Any vehicle capable of refueling other vehicles. _W_RHQ_Ammo = []; //Any vehicle capable of rearming other vehicles. _W_RHQ_Rep = []; // Any vehicle capable of repairing other vehicles. _W_RHQ_Med = []; // Any vehicle capable of healing other units (e.g. ambulances, medevac choppers). _W_RHQ_Cargo = []; // Any vehicle or aircraft with one or more passenger seats. _W_RHQ_NCCargo = []; // Ditto, but unarmed. // East RHQ: // Infantry-specific: _E_RHQ_Inf = []; _E_RHQ_specFor = []; _E_RHQ_recon = []; _E_RHQ_FO = []; _E_RHQ_snipers = []; _E_RHQ_ATinf = []; _E_RHQ_AAinf = []; _E_RHQ_Crew = []; // Vehicles and static weapons: _E_RHQ_Art = []; _E_RHQ_RocketArty = []; _E_RHQ_HArmor = []; _E_RHQ_MArmor = []; _E_RHQ_LArmor = []; _E_RHQ_LArmorAT = []; _E_RHQ_Cars = []; _E_RHQ_Air = []; _E_RHQ_BAir = []; _E_RHQ_RAir = []; _E_RHQ_NCAir = []; _E_RHQ_Naval = []; _E_RHQ_Static = []; _E_RHQ_StaticAA = []; _E_RHQ_StaticAT = []; _E_RHQ_Support = []; _E_RHQ_Fuel = []; _E_RHQ_Ammo = []; _E_RHQ_Rep = []; _E_RHQ_Med = []; _E_RHQ_Cargo = []; _E_RHQ_NCCargo = []; // Indep RHQ: // Infantry-specific: _I_RHQ_Inf = []; _I_RHQ_specFor = []; _I_RHQ_recon = []; _I_RHQ_FO = []; _I_RHQ_snipers = []; _I_RHQ_ATinf = []; _I_RHQ_AAinf = []; _I_RHQ_Crew = []; // Vehicles and static weapons: _I_RHQ_Art = []; _I_RHQ_RocketArty = []; _I_RHQ_HArmor = []; _I_RHQ_MArmor = []; _I_RHQ_LArmor = []; _I_RHQ_LArmorAT = []; _I_RHQ_Cars = []; _I_RHQ_Air = []; _I_RHQ_BAir = []; _I_RHQ_RAir = []; _I_RHQ_NCAir = []; _I_RHQ_Naval = []; _I_RHQ_Static = []; _I_RHQ_StaticAA = []; _I_RHQ_StaticAT = []; _I_RHQ_Support = []; _I_RHQ_Fuel = []; _I_RHQ_Ammo = []; _I_RHQ_Rep = []; _I_RHQ_Med = []; _I_RHQ_Cargo = []; _I_RHQ_NCCargo = []; // Merge everything together: RHQ_Inf = _W_RHQ_Inf + _E_RHQ_Inf + _I_RHQ_Inf; RHQ_specFor = _W_RHQ_specFor + _E_RHQ_specFor + _I_RHQ_specFor; RHQ_recon = _W_RHQ_recon + _E_RHQ_recon + _I_RHQ_recon; RHQ_FO = _W_RHQ_FO + _E_RHQ_FO + _I_RHQ_FO; RHQ_snipers = _W_RHQ_snipers + _E_RHQ_snipers + _I_RHQ_snipers; RHQ_ATinf = _W_RHQ_ATinf + _E_RHQ_ATinf + _I_RHQ_ATinf; RHQ_AAinf = _W_RHQ_AAinf + _E_RHQ_AAinf + _I_RHQ_AAinf; RHQ_Crew = _W_RHQ_Crew + _E_RHQ_Crew + _I_RHQ_Crew; RHQ_Art = _W_RHQ_Art + _E_RHQ_Art + _I_RHQ_Art; RHQ_RocketArty = _W_RHQ_RocketArty + _E_RHQ_RocketArty + _I_RHQ_RocketArty; RHQ_HArmor = _W_RHQ_HArmor + _E_RHQ_HArmor + _I_RHQ_HArmor; RHQ_MArmor = _W_RHQ_MArmor + _E_RHQ_MArmor + _I_RHQ_MArmor; RHQ_LArmor = _W_RHQ_LArmor + _E_RHQ_LArmor + _I_RHQ_LArmor; RHQ_LArmorAT = _W_RHQ_LArmorAT + _E_RHQ_LArmorAT + _I_RHQ_LArmorAT; RHQ_Cars = _W_RHQ_Cars + _E_RHQ_Cars + _I_RHQ_Cars; RHQ_Air = _W_RHQ_Air + _E_RHQ_Air + _I_RHQ_Air; RHQ_BAir = _W_RHQ_BAir + _E_RHQ_BAir + _I_RHQ_BAir; RHQ_RAir = _W_RHQ_RAir + _E_RHQ_RAir + _I_RHQ_RAir; RHQ_NCAir = _W_RHQ_NCAir + _E_RHQ_NCAir + _I_RHQ_NCAir; RHQ_Naval = _W_RHQ_Naval + _E_RHQ_Naval + _I_RHQ_Naval; RHQ_Static = _W_RHQ_Static + _E_RHQ_Static + _I_RHQ_Static; RHQ_StaticAA = _W_RHQ_StaticAA + _E_RHQ_StaticAA + _I_RHQ_StaticAA; RHQ_StaticAT = _W_RHQ_StaticAT + _E_RHQ_StaticAT + _I_RHQ_StaticAT; RHQ_Support = _W_RHQ_Support + _E_RHQ_Support + _I_RHQ_Support; RHQ_Fuel = _W_RHQ_Fuel + _E_RHQ_Fuel + _I_RHQ_Fuel; RHQ_Ammo = _W_RHQ_Ammo + _E_RHQ_Ammo + _I_RHQ_Ammo; RHQ_Rep = _W_RHQ_Rep + _E_RHQ_Rep + _I_RHQ_Rep; RHQ_Med = _W_RHQ_Med + _E_RHQ_Med + _I_RHQ_Med; RHQ_Cargo = _W_RHQ_Cargo + _E_RHQ_Cargo + _I_RHQ_Cargo; RHQ_NCCargo = _W_RHQ_NCCargo + _E_RHQ_NCCargo + _I_RHQ_NCCargo;
Tips, Tricks and FAQs
Do you have a question, tip or trick that's not listed here? Post it in the comment section and I'll add it here when I get time.

Can't I just use the auto-RHQ setting?

This only works with vanilla NATO, CSAT or AAF units. Anything else outside of that will need manual configuration.

Can I sync a unit to multiple RHQ modules?

Yes. Let's say you want to configure a vanilla NATO Marshall or Panther for use with HAL. You'd sync it to a Light Armor module and a Cargo Vehicle module, because it's an APC/IFV with passenger slots.

Another example would be the NATO Ghost Hawk. You would sync it to an Aircraft, Cargo Vehicle, Unarmed Aircraft and Unarmed Cargo Vehicle module.

Can I sync these modules to units sync'd to an asset compiler?

Yes. The asset compiler will delete those units at the start of the mission, but not before the unit class-names are added to the appropriate RHQ arrays.

Can I place the same RHQ module multiple times?

Yes.

Are boats classed as vehicles?

Yes. Boats are treated as "sea vehicles" so they use the same modules. A NATO minigun speedboat would be sync'd to a Boat and Cargo Vehicle module, as it's a naval unit with one or more passenger slots.

However, I don't know if NR6 HAL knows how to use boats. I'm pretty sure the original HAL didn't support naval units. Caveat emptor.

Do I have to sync RHQ modules to the commander for them to work?

No, only the units. When you define a unit's role with an RHQ module, it's added to an array used by every HAL commander on the map. This way you don't have to RHQ the same units multiple times for leader.

Do I have to sync RHQ modules to every unit of a faction?

No, only the units that will appear in your mission. You can sync every unit in a faction if you really want, but it's both unnecessary and time consuming.
51 Comments
Komodo 24 Dec, 2024 @ 11:27am 
Indeed, came here after the announcement it's getting updates from NR6 as well, were so back
Mr Elusive  [author] 12 Oct, 2024 @ 6:21am 
Rozpu you are doing the Lord's work. I stopped using HAL a while back because of unresolved bugs, but I'll be happy to try your GitHub fork over the weekend if I get time.

Best of luck in this project! :steamthumbsup:
_Rozpu_ 12 Oct, 2024 @ 5:49am 
I have been working on slowly fixing hal errors and hoping to improve it too [not yet on workshop, but will publish it after fixing everything]
https://github.com/Radekj1/NR6-HAL
Also added sqfc files.
Mr Elusive  [author] 11 Oct, 2024 @ 4:24pm 
You're very welcome MillsTC. Glad to see this guide is still helping mission makers after 3 years :cta_emo10:
MillsTC 11 Oct, 2024 @ 2:43pm 
Thank you! This guide is very helpful!
Phenosi 5 Jul, 2024 @ 10:38am 
The guide was helpful, thanks. :))
Mr Elusive  [author] 5 Jul, 2024 @ 10:23am 
Thanks for the kind words Phenosi. I'm glad this guide was helpful to you. HAL is indeed time consuming to set up (as most things in Arma mission-making generally are), so any time-saving automation is always appreciated.
Phenosi 5 Jul, 2024 @ 9:24am 
Thank to some good explanations from this guide I was able to automate the entire RHQ process:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3282524058

:steamthumbsup::SBpanda:
Mr Elusive  [author] 4 Aug, 2023 @ 2:19pm 
Hey cocomande,

1. No, you don't need to sync to all soldiers in a squad unless they are different classnames. If you have a squad with two riflemen and a grenadier, you'd only need to sync one riflemen. It all depends on the classname of the soldiers. That being said, it won't break the game if you do sync all the units though.

2. You sync the actual vehicle. The crewmen themselves need to be synced to "All Infantry" and "Crewmen" modules.

Hope this helps.
cocomande 4 Aug, 2023 @ 3:00am 
do i sync the rhq to all the individual soldiers in a squad, the squad composition itself or just the leader of the squad? and for vehicles, do i sync to the actual vehicle and not the soldiers inside it?