Documentation Menu

Headless clients (HC)

Offloading AI to dedicated client processes for big missions.

Arma 3's main server thread does everything by default: AI, physics, networking, scripts. On big missions (lots of AI, deep scripting), the server becomes the bottleneck.

Headless clients are extra Arma 3 processes that connect to your server like a player but with no actual player — the mission hands them AI groups to manage, freeing the main server from that work.

When to use HCs

  • Mission has 50+ AI
  • Mission uses heavy scripting (Liberation, Antistasi)
  • Server FPS drops below 25 under load
  • You're running Zeus + AI commander loadouts

For a small co-op session with a handful of AI, you don't need them.

Enabling HCs

In server.cfg:

headlessClients[] = {"127.0.0.1"};
localClient[] = {"127.0.0.1"};

These tell the server which IPs are allowed to connect as HCs. For a local HC running on the same machine as the server, 127.0.0.1 is fine.

For remote HCs (HC on a separate box), list the HC's public IP.

Running the HC process

The HC is the same arma3server binary, just started with -client and -connect=<server-ip>:

./arma3server -client -connect=127.0.0.1 -port=2302 -password=<password> -name=HC1 -mod=@CBA_A3;@RHSAFRF;

The mods MUST match the server's mod list (or be a subset that covers the AI factions used in the mission).

You can run multiple HCs (-name=HC1, -name=HC2, etc.) for mission scripts that distribute AI across several HCs.

Tier sizing

Each HC needs ~1–2 GB RAM and 1 CPU thread for moderate loads. Make sure your tier has headroom — a 4GB tier running the server + 2 HCs is going to thrash.

Mission compatibility

Not all missions take advantage of HCs. The mission's scripts have to specifically check for HC presence and assign AI groups to them. Popular HC-aware missions:

  • Liberation — auto-distributes AI to connected HCs
  • Antistasi — same
  • ALiVE framework — full HC support
  • Custom Zeus missions — depends on the scripter

If you load an HC and nothing happens, the mission isn't HC-aware. Either rewrite scripts to use HCs or skip HCs for that mission.

Verifying HCs are working

Server console logs HC connections:

Player HC1 connecting.
Player HC1 connected (id=2).

In-game, #userlist shows them in the player list. Mission scripts that use HCs usually broadcast a hint to admins when an HC takes over an AI group.

Why this exists

Arma 3 was built single-threaded for AI. The dedicated server process can only push so many AI through one CPU thread. HCs are a workaround — multiple processes, each on their own thread, splitting the AI workload.

A long-promised "multithreaded AI" engine change has never materialized. HCs remain the canonical solution.