AI Culler – Optimized Warfare
A two-part performance mod for Arma 3 that tackles both the server-side simulation overhead and the client-side render cost of large AI counts. Built for milsim ops running 60+ players against 150+ AI.
Server: Arma 3 simulates every AI unit simultaneously on a fixed cycle. Beyond around 150 units this causes periodic frame spikes even with LAMBS and Headless Clients.
Client: Arma 3’s renderer has no robust occlusion culling, so looking toward a large AI force drops FPS even when every unit is behind a building or hill.
aic_main (server + Zeus) caps the number of actively-simulating AI and prioritises units by proximity and line of sight. Vehicles are never culled, and any AI unit seated inside a vehicle has simulation restored on the next tick. Protected, in-combat, and Zeus-ordered units are always active regardless of distance. Units in free-fall or under a parachute are excluded, and any unit being remote controlled via Zeus is never culled either. Combat detection now covers enemy vehicle crews, so AI engage approaching armour the same way they engage infantry.
aic_client (every player client) hides occluded AI models via ‘hideObject’, removing them from each player’s render pipeline. AI seated inside vehicles are never hidden. It uses a two-tier LOS check: a fast terrain-only raycast runs first, and a full surface intersection check (catching buildings and walls) runs only for units within 600m. Camo nets, sandbags, open bunker structures, trees, and bushes are excluded from occlusion so units stay visible through them. Glass and windows pass through naturally. Units within 150m are always rendered to prevent pop-in. An ADS-cone bypass keeps units visible while you’re aiming at them. While Zeus is open, or while you’re remote controlling a unit, all units stay visible. The occlusion radius is automatically read from each player’s view distance (ACE3 or native) and kept in sync throughout the mission.
Supported on singleplayer and dedicated server MP only. Listen server (host-client) is not supported.
Both addons ship in one mod, the right code runs on the right machine automatically.
A status window opens automatically when Zeus is active. Adjust max active AI, per-faction cull distances, check interval, and combat detection radius on the fly, changes broadcast to the server instantly. The Active count is color-coded so you can see at a glance how close you are to the cap. A live FPS sparkline tracks server performance over the last 88 seconds with current, average, min, and max in the title bar. No restart, no rebuild.
All settings are exposed under Configure > Addon Options and persist between sessions. Server settings (cull distances, AI cap, intervals) are server-enforced and broadcast to all clients. Client settings (label display, safe radius, surface LOS radius, enable toggle) are per-player. Requires CBA_A3, falls back to hard-coded defaults without it.
- Per-faction cull distances (BLUFOR / OPFOR / Independent / Civilian)
- AI-vs-AI combat auto-activation so distant firefights don’t freeze
- Zeus waypoint override, assigned groups activate regardless of player distance
- Right-click Toggle Culler Protection context action
- Eden Editor Protected from Culler checkbox in unit placement, no scripting needed
- ZEN Enhanced Zeus context-menu integration
- 3D floating labels above managed units showing Protected, Culled, or Override state
- Color-coded Active count in Zeus, so you know at a glance how close you are to the cap
- Live server FPS sparkline graph in Zeus
- Client renderer debug HUD (server-controlled, activates on all clients simultaneously)
- No mission changes required, no ‘init.sqf’ entry
- Load ‘@ai_culler’ on the server, all Zeus clients, and every player client
- Add ‘-mod=@ai_culler’ to launch parameters
- Defaults are safe for most ops, tune live from the Zeus panel or via Addon Options
Tested: CBA_A3, LAMBS Danger, Headless Clients, Civilian Presence Module, Zeus / Curator, ACE3 (view distance auto-sync), ZEN Enhanced Zeus
Untested: Vcom AI, may conflict
This is my first mod, I have no background in Arma modding at all, just web development and system administration. I wanted to build something genuinely useful for the community so I gave it a shot. AgentDove deserves a huge amount of credit here, his deep knowledge of SQF and Arma’s engine internals fixed and improved a significant number of issues, and the performance optimisations in particular are largely his work.
This mod was also built in collaboration with Claude (Anthropic’s AI assistant). The design, direction, testing, and all decisions about what to build were mine, Claude assisted with implementation, debugging, and working through the technical details of SQF and Arma’s engine behaviour. I wanted to be upfront about that rather than take sole credit for the code.
Oceania’s Largest Milsim Unit since 2020
https://discord.gg/asot
https://github.com/ItsKodas/ai-culler
Feel free to fork the repo 🙂