Quick Start

Get AI Zeus running in your mission in under 5 minutes.

Install the Mod

Subscribe to AI Zeus on Steam Workshop. For dedicated servers, use SteamCMD (workshop_download_item 107410 3623550024) or copy the subscribed folder to your server and rename it to @AIZeus.

Load the Mod

Add -serverMod=@AIZeus to your server startup parameters, or load it via the ArmA 3 launcher.

Add to Your Mission

Add the following to your init.sqf:

// Configure AI Zeus
AIZEUS_controlledSide = east;  // Side to control
AIZEUS_enabled = true;

// Initialize (server only)
if (isServer) then {
    [] spawn {
        sleep 5;
        [] call AIZEUS_fnc_init;
    };
};

Play!

AI Zeus will automatically take command of all units on the configured side and begin coordinating their behavior.

Requirements

Requirement Version Notes
ArmA 3 2.00+ Required
CBA_A3 Latest Optional - enables settings menu
ACE3 Latest Optional - medical integration
✅ Client Requirements

Players connecting to your server do not need AI Zeus installed. The mod runs entirely server-side.

Basic Setup

Minimal Configuration

The simplest possible setup:

// init.sqf
AIZEUS_controlledSide = east;
[] call AIZEUS_fnc_init;

Recommended Configuration

A more complete setup with common options:

// init.sqf

// ============================================
// AI ZEUS CONFIGURATION
// ============================================

// Core Settings
AIZEUS_controlledSide = east;
AIZEUS_enemySide = west;
AIZEUS_enabled = true;
AIZEUS_debug = true;  // Show debug markers

// Timing
AIZEUS_updateInterval = 4;      // Seconds between updates
AIZEUS_decisionInterval = 12;   // Seconds between decisions

// Combat Systems
AIZEUS_garrison_enabled = true;
AIZEUS_medic_enabled = true;
AIZEUS_cqb_enabled = true;
AIZEUS_ambush_enabled = true;

// Support Systems
AIZEUS_casAvailable = true;
AIZEUS_artyAvailable = true;
AIZEUS_reinforcementsAvailable = true;

// Initialize
if (isServer) then {
    [] spawn {
        sleep 5;
        [] call AIZEUS_fnc_init;
    };
};

Global Variables

All AI Zeus configuration is done through global variables set before initialization.

⚠️ Important

Variables must be set before calling AIZEUS_fnc_init. Changes after initialization may not take effect.

Core Settings

Variable Type Default Description
AIZEUS_controlledSide Side east Side that AI Zeus will command
AIZEUS_enemySide Side west Side considered hostile
AIZEUS_enabled Boolean true Master enable/disable switch
AIZEUS_debug Boolean false Show debug markers on map
AIZEUS_debug_adminOnly Boolean true Restrict debug to admins only
AIZEUS_updateInterval Number 4 Seconds between AI updates
AIZEUS_decisionInterval Number 12 Seconds between tactical decisions

Combat Systems

Garrison System

Variable Type Default Description
AIZEUS_garrison_enabled Boolean true Enable building garrison behavior
AIZEUS_garrison_radius Number 200 Search radius for buildings
AIZEUS_garrison_maxUnits Number 12 Max units per building

Medic System

Variable Type Default Description
AIZEUS_medic_enabled Boolean true Enable medic healing system
AIZEUS_medic_woundThreshold Number 0.3 Damage level to trigger healing
AIZEUS_medic_healAmount Number 0.5 Amount of damage healed
AIZEUS_medic_healTime Number 10 Seconds to complete healing
AIZEUS_medic_buddyAid Boolean true Non-medics can also heal

Building Assault System

Variable Type Default Description
AIZEUS_buildingAssault_enabled Boolean true Enable heavy weapons assault on fortified buildings
AIZEUS_buildingAssault_cooldown Number 60 Seconds cooldown between building assaults

Armor within 400m and AT infantry within 300m will engage occupied buildings before infantry clearing begins.

Other Combat Systems

Variable Default Description
AIZEUS_cqb_enabled true CQB building clearing
AIZEUS_ambush_enabled true Ambush tactics
AIZEUS_suppression_enabled true Suppression response
AIZEUS_night_enabled true Night operations adaptation
AIZEUS_patrol_enabled true Patrol behavior

Support Systems

Variable Type Default Description
AIZEUS_casAvailable Boolean true Enable CAS strikes
AIZEUS_artyAvailable Boolean true Enable artillery barrages
AIZEUS_reinforcementsAvailable Boolean true Enable reinforcement spawning
AIZEUS_supportCooldown Number 120 Seconds between support calls
AIZEUS_resupply_enabled Boolean true Enable ammo resupply system
AIZEUS_counterBatteryEnabled Boolean true Enable counter-battery fire

Self-Preservation

Since v1.7.5, AI Zeus runs four self-preservation systems that make units react realistically to losses instead of fighting to the last man. All four share a single master toggle and can be tuned via CBA settings or config variables.

Systems

  • Vehicle Preservation — Four-tier reaction: damage-based withdrawal, crew bailout, immobilized static defense, and low-fuel RTB.
  • Per-Group Casualty Retreat — Individual groups fall back independently when they cross a casualty threshold, regardless of the global tactical state.
  • Remnant Regrouping — Groups with very few survivors merge into nearby friendly groups instead of continuing suicidal missions.
  • Ambush Break-Contact — Ambushes break off early when the enemy counter-attacks in force or the ambushers take heavy hits.

Configuration

Variable Type Default Description
AIZEUS_preservation_enabled Boolean true Master toggle for all four self-preservation systems
AIZEUS_veh_damageRetreat Number 0.5 Damage threshold (0-1) for vehicles to withdraw from contact
AIZEUS_veh_damageBailout Number 0.8 Damage threshold (0-1) to force cargo and crew to bail out
AIZEUS_veh_fuelRetreat Number 0.2 Fuel threshold (0-1) to return to rear
AIZEUS_veh_retreatDistance Number 300 Vehicle withdrawal distance (meters)
AIZEUS_remnant_threshold Number 2 Maximum survivors before a group is flagged as a remnant
AIZEUS_remnant_mergeRange Number 300 Maximum range to find a merge target (meters)
AIZEUS_groupRetreat_threshold Number 0.5 Casualty fraction (of original strength) that triggers group fallback
AIZEUS_groupRetreat_cooldown Number 60 Seconds before a retreated group accepts new orders
AIZEUS_groupRetreat_distance Number 200 Fallback distance from nearest enemy (meters)
AIZEUS_ambush_breakCasualty Number 0.3 Ambush casualty fraction that triggers break-contact
AIZEUS_ambush_breakReinforcement Number 2.0 Enemy-count multiplier that triggers break-contact

Per-Side Doctrine

Since v1.8.1, AI Zeus runs three distinct tactical playbooks instead of using one Western combined-arms doctrine for all sides. Doctrine selects automatically from AIZEUS_controlledSide and is overridable. It composes cleanly with baseline stance — doctrine controls how AI fights; stance controls whether it initiates contact without explicit objectives.

⚠ OPFOR behavior change from v1.7.9

A fresh install commanding OPFOR (east) now uses Eastern Bloc doctrine instead of NATO. If your mission depends on v1.7.9 NATO-flavored behavior on an East-side mission, set AIZEUS_doctrineStr = "NATO" in the Init module or CBA Settings. Missions on WEST or INDEPENDENT continue with their previously-implicit doctrine (NATO / Guerrilla).

Doctrines

Doctrine Default Side Real-World Grounding
NATO west Combined-arms, AirLand Battle. Values bit-for-bit identical to v1.7.9 hardcoded constants.
EASTERN_BLOC east Soviet motor-rifle (FM 100-2.1, Grau & Bartles "Russian Way of War"). Echeloned attack with tanks forward, 30s artillery preparation, dismount 400m, wider frontages, reverse-slope garrisons, sticky commitment.
GUERRILLA independent Mao's axiom + Giap's protracted-harassment + modern insurgent practice. Never assaults — brief suppress from 300m standoff, immediate fall-back. Ambushes break on first volley. No CAS / no organic arty / no idle helicopter patrols.

Configuration

Set the doctrine in any of four ways:

  • Eden Init module — "Doctrine" Combo attribute (AUTO / NATO / EASTERN_BLOC / GUERRILLA) on the AI Zeus Init module.
  • CBA SettingsAI Zeus › Sides › Doctrine list. onChange re-resolves doctrine without restart.
  • Direct global overrideAIZEUS_doctrineStr = "NATO"; in initServer.sqf before calling AIZEUS_fnc_init.
  • Admin commands#aizeus doctrine_nato, #aizeus doctrine_east (or doctrine_soviet / doctrine_eastern_bloc), #aizeus doctrine_guerrilla, #aizeus doctrine_auto. Existing side_* commands also re-resolve doctrine since AUTO mapping changes with side.

Tactical Wiring

The doctrine profile drives 25 parameters across the tactical loop. Highlights:

System NATO Eastern Bloc Guerrilla
Assault pattern PINCER ECHELON (2 waves, tanks forward) HARASS (300m standoff, 10-15s)
Flank geometry 90° / 0.7 ratio 70° / 0.9 (deep envelopment) 45° / 0.5 (escape preserving)
Dismount distance 200m 400m (foot the last leg) 50m (technicals to target)
Garrison floor Upper (overwatch) Lower (reverse-slope) Ground only (quick egress)
Artillery 3 rounds precision 6 rounds mass fires + 30s prep Never
CAS Allowed Allowed Never
Idle helicopter patrol Yes Yes Disabled
Retreat smoke Allowed Allowed Never (signature discipline)
Ambush break 30% casualty / hold combat phase 30% casualty / hold combat phase After first volley
Skill bias (aim / courage / spot) 1.00 / 1.00 / 1.00 0.95 / 1.05 / 1.00 0.85 / 1.15 / 1.10

Global Variables

Variable Type Default Description
AIZEUS_doctrineStr String "AUTO" Override setting. "AUTO", "NATO", "EASTERN_BLOC", or "GUERRILLA"
AIZEUS_doctrineActive String (broadcast) Resolved Currently active doctrine name. Resolved from AIZEUS_doctrineStr + AIZEUS_controlledSide
AIZEUS_doctrineProfiles Hashmap (broadcast) Built at init Three profile hashmaps containing all 25 parameters per doctrine

HC-Safe Lookups

Doctrine state is broadcast via publicVariable on every resolve so client and headless decision code see the same values. For one-off lookups from client / HC contexts use AIZEUS_fnc_getDoctrineActive — whitelisted in CfgRemoteExec with allowedTargets = 0 so it can be called over the network without inline anonymous code blocks.

Backward Compatibility

  • NATO doctrine values are bit-for-bit equal to v1.7.9's hardcoded constants. Missions on WEST keep their v1.7.9 behavior.
  • Legacy AIZEUS_DOCTRINE hashmap (TACTICS / FOG_OF_WAR / LOGISTICS) preserved.
  • No existing CBA settings renamed or removed. Only AIZEUS_doctrineStr is added.
  • Saved games and HC distribution work without explicit save / load hooks — doctrine state is recomputed at postInit and publicVariable'd on every resolve.

Baseline Stance

Since v1.7.9, AI Zeus has a per-side baseline stance setting that controls behavior when no explicit objectives (markers or modules) exist. Three values:

  • DEFENSIVE — Hold ground. No auto-attack. Tactical evaluator biases toward DEFENSIVE state (needs 3.5:1 force ratio to go OFFENSIVE; tilts to DEFENSIVE at 1.2:1).
  • PROBING (default) — Investigate contacts via the existing escalation system. Standard tactical evaluator thresholds.
  • OFFENSIVE — Auto-generate ephemeral ATTACK directives at known threat clusters. "Just go find them" mode — no module or marker placement required. Tactical evaluator goes to OFFENSIVE state at force ratio 1.4 (vs default 2.0).

Configuration

Set the stance in any of three ways:

  • AI Zeus Init module — "Baseline Stance" Combo attribute on the Eden Editor Init module.
  • CBA Settings — AI Zeus › Sides › Baseline Stance.
  • Direct global overrideAIZEUS_baselineStance = "OFFENSIVE"; in initServer.sqf before calling AIZEUS_fnc_init.

Auto-Attack Generation (OFFENSIVE only)

When stance is OFFENSIVE, fn_baselineStanceLoop runs every 30s and walks AIZEUS_threatClusters (the awareness module's intel cluster output). For each cluster it registers an ephemeral AIZEUS_MOD_ATTACK_* directive at the cluster center. Capped at 3 simultaneous (configurable). Skips clusters within 250m of an existing designer marker / module so auto-attacks never double up on areas you already configured.

Ephemerals expire after 300s OR when their threat cluster vanishes. Designer-placed directives are never pruned — only ephemerals are cleaned up by this loop. Ephemerals get priority 60; designer modules default to 50, so explicit objectives always win group-assignment priority.

Variable Type Default Description
AIZEUS_baselineStance String "PROBING" "DEFENSIVE", "PROBING", or "OFFENSIVE"
AIZEUS_baselineStance_ephemeralTTL Number 300 Seconds before an auto-generated ATTACK expires
AIZEUS_baselineStance_maxEphemeral Number 3 Cap on simultaneous auto-attacks
AIZEUS_baselineStance_coverRadius Number 250 Designer-objective overlap threshold (meters)
AIZEUS_baselineStance_loopInterval Number 30 Seconds between stance evaluations

Live Assignment Overlay

Since v1.7.9, AI Zeus ships a toggleable in-game status panel that shows every group AI Zeus is managing — its current directive, state classification, and strength. Useful for admins and Zeus curators monitoring an autonomous battlefield in real time.

Access

The overlay is restricted to admins (serverCommandAvailable "#kick") and Zeus curators (getAssignedCuratorLogic player). It is bound to a CBA keybind:

  • Open CBA Settings › Addons in the pause menu
  • Find the AIZeus category
  • Bind Toggle Status Panel to a key of your choice (no default to avoid collisions)

State Classification

fn_classifyGroupState resolves each group based on AIZEUS group flags, behavior, and waypoint state. Priority order:

  • ROUTED (orange) — AIZEUS_groupRetreating flag set; group is in self-preservation fallback
  • TRANSPORT (purple) — Boarding or being transported
  • ENGAGING (red) — Group is in COMBAT behavior or has a live enemy within range with knowsAbout > 1.5
  • HOLDING (green) — Garrisoned, manning emplacement, or a stationary defender
  • EN_ROUTE (blue) — Has waypoints pointing toward an objective
  • IDLE (gray) — No directive assigned

Server-Render Architecture

The overlay deliberately runs all classification and string-building on the authoritative server every 3s, then broadcasts a single structured-text string as AIZEUS_overlayContent. Clients with the overlay open just read the broadcast and write it into their RscStructuredText control. This avoids per-client duplication of state inspection across Headless Client boundaries (where group flags can be locality-bound).

Eden & Zeus Modules

Since v1.7.4, AI Zeus ships as a full set of Eden Editor and Zeus curator modules for drag-and-drop configuration and directive placement. Modules are now the primary UX for mission makers — marker directives remain as a parallel alternative. Both paths feed into the same underlying directive system, so priority sorting and multi-group assignment apply across the combined set.

Vanilla Zeus "Search and Destroy" Hook (v1.7.9)

A Zeus operator can also place the vanilla "Search and Destroy" module from the standard Zeus module tree — AI Zeus intercepts it via a CuratorObjectPlaced event handler and translates it into an AIZEUS_ATTACK directive at the same position. No need to know about the bundled AIZEUS_ModuleZeusAttack. The intercepted module is deleted; the directive is registered at priority 50. Configurable via AIZEUS_zeusAttackHook_classes (default ["ModuleSearchAndDestroy_F"]) to extend the list of intercepted classes.

Mod Loading Requirement

Eden and Zeus modules require -mod=@AIZeus on clients (not just -serverMod=@AIZeus) so clients can render the module classes in the F5 panel and the Zeus module tree. Marker directives still work on server-only installs.

Eden Modules

  • AI Zeus - Init Settings — Singleton configuration module. Sets the controlled and enemy sides, skill preset, and 12 subsystem toggles. Auto-starts AI Zeus, so you can skip initServer.sqf entirely if you prefer.
  • AI Zeus - Attack — Directive module placed at a position. Syncing groups gives a direct assignment; leaving it unsynced registers the directive for automatic range-based pickup. Priority 1-99.
  • AI Zeus - Defend — Up to 3 groups assigned, with optional radius override and support for counter-attack sorties.
  • AI Zeus - Defend Object — Sync to a building, vehicle, or crate. Adaptive defense style, dynamic tracking if the object moves.
  • AI Zeus - Defend Area — Distributes groups ~40% garrison, ~30% threat-oriented perimeter, ~30% patrol. Auto-detects town boundaries or uses an explicit radius.

Zeus Curator Modules

Placed live during gameplay from the Zeus module tree:

  • AI Zeus - Attack Position — Create a live attack directive
  • AI Zeus - Defend Position — Create a live defend directive with optional radius
  • AI Zeus - Defend Object — Attach to an object for adaptive defense
  • AI Zeus - Patrol Area — Assign patrol behavior to the attached or nearest group

Deleting a Zeus module automatically releases its assigned groups through the Deleted event handler.

Custom Waypoint Types

Right-click a group in Eden and choose Add Waypoint:

  • AI Zeus: Patrol Area — Patrol the area around the waypoint with a configurable radius
  • AI Zeus: Garrison Buildings — Garrison nearby buildings, then continue to the next waypoint
  • AI Zeus: Garrison & Hold — Garrison permanently with PATH AI disabled

Marker Directives

Mission makers can direct AI Zeus using specially named map markers. This is an alternative to the Eden/Zeus module workflow above and is useful when you don't want clients to load the full mod (markers work with -serverMod=@AIZeus only).

Marker Naming

Marker Name Pattern Effect
AIZEUS_ATTACK_* Assign nearby group to attack this position
AIZEUS_DEFEND_* Assign nearby group to hold this position
AIZEUS_DEFEND_OBJ_* Assign nearby group to defend a specific object (building, vehicle, crate)
AIZEUS_DEFEND_AREA_* Defend an entire town/village with garrison, patrol, and perimeter roles (up to 8 groups)

Priority System

Add a priority number (1-99) to control execution order. Lower numbers are processed first:

// Examples
AIZEUS_ATTACK_1_hillside          // Priority 1 (highest)
AIZEUS_DEFEND_2_base              // Priority 2
AIZEUS_DEFEND_OBJ_1_ammoCache     // Priority 1, defend object named "ammoCache"
AIZEUS_ATTACK_objective           // Priority 99 (default)

Defend Object Markers

AIZEUS_DEFEND_OBJ_* markers make groups defend a specific object rather than just a position. The behavior adapts to the object type:

Object Type Defensive Behavior
Buildings / Structures Garrison nearby buildings + establish defensive perimeter
Vehicles / Crates / Other Close guard formation in a tight ring around the object

Object Resolution

Objects are resolved in two ways:

  1. Named variable — The marker name references an editor variable name. For example, AIZEUS_DEFEND_OBJ_ammoCache1 looks up the object with variable name ammoCache1.
  2. Nearest object — If no named variable is found, AI Zeus auto-detects the nearest significant object (vehicle, building, ammo crate) within 25m of the marker position.

If no object is found by either method, the marker falls back to a standard defend order.

// Named object (set variable name in Eden Editor)
AIZEUS_DEFEND_OBJ_ammoCache         // Defend object named "ammoCache"
AIZEUS_DEFEND_OBJ_1_radarTower      // Priority 1, defend "radarTower"
AIZEUS_DEFEND_OBJ_my_ammo_cache     // Underscores in name: "my_ammo_cache"

// Nearest object (place marker near the object)
AIZEUS_DEFEND_OBJ_vehicle1          // If no variable found, defends nearest object

Dynamic Tracking

Groups defending mobile objects (e.g., a parked vehicle that gets driven away) will automatically reposition when the object moves more than 30m from its last known position. Groups are also automatically released when their defended object is destroyed.

Multi-Group Assignment

DEFEND and DEFEND_OBJ markers can be assigned up to AIZEUS_markers_maxGroupsPerMarker groups (default: 3). Groups are assigned over successive scan cycles as they move within range. ATTACK markers still receive 1 group each.

Counter-Attack Sorties

When a defended marker has more groups than needed, surplus defenders will automatically assault nearby threats. After the threat is eliminated or a timeout expires, the groups return to their defensive positions.

How It Works

  1. A DEFEND/DEFEND_OBJ marker accumulates multiple groups over time (up to 3 by default)
  2. AI Zeus detects a threat cluster within range (default: 500m) of the defended position
  3. Surplus groups beyond AIZEUS_counterAttack_minDefenders (default: 1) are sent to attack the threat
  4. The farthest groups from the marker are sent first (least useful as close defenders)
  5. When the threat is eliminated or the timeout (default: 180s) expires, groups return to defense
Example

3 groups defending a marker, enemy detected 400m away: 2 groups counter-attack while 1 stays defending. After the enemy is destroyed, both groups return to the marker.

Area Defense Markers

AIZEUS_DEFEND_AREA_* markers defend an entire town, village, or settlement. Groups are distributed across three roles as they arrive:

Role Allocation Behavior
Garrison ~40% (first groups) Occupy buildings via garrison system
Perimeter ~30% Hold positions oriented toward nearest threat (120° arc), or evenly spaced if no threats
Patrol ~30% Patrol within area bounds

Area Detection

AI Zeus uses ArmA 3's nearestLocations to find town/village boundaries. If no named location is found within 300m of the marker, a default radius of 200m is used.

Threat-Oriented Perimeter

Based on US Army defensive doctrine (FM 3-90), perimeter groups concentrate in a 120-degree arc facing the nearest threat cluster instead of spreading evenly around 360 degrees. This creates an engagement area with massed fires and mutual support between positions. When no threats are detected, groups distribute evenly for all-around defense.

Fallback Mechanism

When surviving groups drop below 40% of the peak assigned (and the peak was at least 3 groups), remaining groups automatically fall back to a linked AIZEUS_DEFEND_* marker. The link is derived from the marker suffix:

AIZEUS_DEFEND_AREA_Alpha   // Falls back to AIZEUS_DEFEND_Alpha
AIZEUS_DEFEND_AREA_1_Bravo // Falls back to AIZEUS_DEFEND_1_Bravo

If the fallback marker doesn't exist, groups are released as free units.

Configuration

Variable Default Description
AIZEUS_markers_enabled true Enable marker directive system
AIZEUS_markers_range 500 Max distance for group assignment (meters)
AIZEUS_markers_scanInterval 15 Seconds between marker scans
AIZEUS_defendObj_closeGuardRadius 25 Guard radius for vehicles/crates (meters)
AIZEUS_defendObj_buildingDefendRadius 100 Defense radius for structures (meters)
AIZEUS_defendObj_trackingThreshold 30 Distance object must move before group repositions (meters)
AIZEUS_markers_maxGroupsPerMarker 3 Max groups assigned to a single DEFEND/DEFEND_OBJ marker
AIZEUS_counterAttack_enabled true Enable counter-attack sorties from defended positions
AIZEUS_counterAttack_minDefenders 1 Minimum groups to keep defending each marker
AIZEUS_counterAttack_range 500 Max distance to detect and engage threats (meters)
AIZEUS_counterAttack_timeout 180 Max seconds before forced return to defense
AIZEUS_defendArea_maxGroups 8 Max groups assigned to a single DEFEND_AREA marker
AIZEUS_defendArea_defaultRadius 200 Default area radius if no location found (meters)
AIZEUS_defendArea_fallbackThreshold 0.4 Surviving ratio below which groups fall back to linked DEFEND marker
Dynamic Updates

Groups are automatically released when markers are deleted or defended objects are destroyed. You can move markers to redirect groups in real-time.

Environment Tactics

AI Zeus automatically detects terrain type and adapts group behavior accordingly.

Terrain Types

Environment Detection Behavior
FOREST 25+ trees within 100m FILE formation, LIMITED speed, reduced spot distance
URBAN 3+ buildings within 100m COLUMN formation, quick reactions, CQB ready
HILLS 15m+ elevation variance STAG COLUMN, seeks high ground
OPEN Default (low trees/buildings) WEDGE formation, spread out, long range engagement

Configuration

Variable Default Description
AIZEUS_environmentEnabled true Enable environment detection
AIZEUS_environmentUpdateInterval 30 Seconds between environment checks per group
AIZEUS_environmentCacheTime 60 Seconds to cache terrain detection results

API Reference

AIZEUS_fnc_init

Initialize AI Zeus system. Must be called on server.

// Syntax
[] call AIZEUS_fnc_init;

// Example
if (isServer) then {
    [] call AIZEUS_fnc_init;
};

AIZEUS_fnc_enable

Enable or disable AI Zeus at runtime.

// Syntax
[enabled] call AIZEUS_fnc_enable;

// Examples
[true] call AIZEUS_fnc_enable;   // Enable
[false] call AIZEUS_fnc_enable;  // Disable

AIZEUS_fnc_getStatus

Get current AI Zeus status information.

// Syntax
_status = [] call AIZEUS_fnc_getStatus;

// Returns: [enabled, tacticalState, unitCount, knownEnemies]
// Example: [true, "DEFENSIVE", 45, 12]

AIZEUS_fnc_applySkill

Apply AI Zeus skill settings to a unit.

// Syntax
[unit] call AIZEUS_fnc_applySkill;

// Example
[_newUnit] call AIZEUS_fnc_applySkill;

AIZEUS_fnc_registerGroup

Register a group for AI Zeus control.

// Syntax
[group] call AIZEUS_fnc_registerGroup;

// Example - register spawned reinforcements
_grp = [getMarkerPos "spawn_east", east, ["O_Soldier_F"]] call BIS_fnc_spawnGroup;
[_grp] call AIZEUS_fnc_registerGroup;

Events

AI Zeus fires mission event handlers that you can listen to:

Event Parameters Description
AIZEUS_StateChanged [oldState, newState] Tactical state changed
AIZEUS_SupportCalled [type, position] Fire support requested
AIZEUS_ReinforcementsSpawned [group, position] Reinforcements arrived
// Example: Listen for state changes
["AIZEUS_StateChanged", {
    params ["_oldState", "_newState"];
    systemChat format ["AI Zeus: %1 -> %2", _oldState, _newState];
}] call CBA_fnc_addEventHandler;

Headless Client

AI Zeus fully supports headless client for improved performance.

Variable Default Description
AIZEUS_hc_enabled true Enable HC support
AIZEUS_hc_transferUnits true Auto-transfer AI to HC
AIZEUS_hc_loadBalance true Balance across multiple HCs

CBA Settings

When CBA_A3 is installed, AI Zeus integrates with the CBA Settings framework for in-game configuration.

Accessing Settings

  1. Open the Configure Addons menu from the main menu or pause menu
  2. Select AI Zeus from the addon list
  3. Adjust settings as needed
  4. Settings are automatically saved and synced

Available Settings Categories

  • Core — Enable/disable, controlled side, debug mode
  • Timing — Update intervals, decision frequency
  • Combat — Garrison, CQB, ambush, suppression behaviors
  • Support — CAS, artillery, reinforcements, resupply
  • Movement — Vehicles, patrols, night operations
  • AI Skill — Skill presets, accuracy ranges
Server Authority

CBA settings are server-authoritative. Only server admins can change settings during a mission. Changes sync to all clients automatically.

Debugging

Enable debug mode to visualize AI Zeus decision making.

// Enable debug markers
AIZEUS_debug = true;
AIZEUS_debug_adminOnly = false; // Show to all players

Debug Marker Colors

  • Red - Confirmed enemy (fresh intel)
  • Orange - Stale intel (older than threshold)
  • Yellow - Unconfirmed contact
  • Green - Friendly units
  • Blue - Objectives/waypoints