Quick Start

Get AI Zeus running in your mission in 3 steps

1. Create initServer.sqf

In your mission folder, create or edit initServer.sqf:

// Wait for AI Zeus functions
waitUntil {!isNil "AIZEUS_fnc_init"};

// Configure sides
AIZEUS_controlledSide = east;    // AI Zeus commands OPFOR
AIZEUS_enemySide = west;         // Enemy is BLUFOR

// Start AI Zeus
[] call AIZEUS_fnc_init;

2. Place AI Units

In the Eden Editor, place AI units on the controlledSide (OPFOR in this example). AI Zeus will automatically take command of all units on that side.

3. Test Your Mission

Launch your mission. Check the server RPT for the AI Zeus startup banner confirming it is active.

Initialization Options

Multiple ways to start AI Zeus based on your mission needs

Option 1: Auto-Start

AI Zeus auto-starts if AIZEUS_enabled = true in the config file. Works with any mission without editing.

Best for: Server admins who want it always active

Option 2: Mission Init (Recommended)

Add code to initServer.sqf for full control over configuration.

waitUntil {!isNil "AIZEUS_fnc_init"};
AIZEUS_controlledSide = east;
AIZEUS_enemySide = west;
AIZEUS_skill_preset = "MEDIUM";
[] call AIZEUS_fnc_init;

Option 3: Trigger-Based

Start AI Zeus when players enter an area or complete an objective.

// In trigger On Activation:
AIZEUS_controlledSide = east;
AIZEUS_enemySide = west;
[] call AIZEUS_fnc_init;

Option 4: Zeus Control

Let a Zeus operator toggle AI Zeus on/off during gameplay.

// Toggle ON/OFF
if (!AIZEUS_enabled) then {
    [] call AIZEUS_fnc_init;
    hint "AI Zeus ENABLED";
} else {
    AIZEUS_enabled = false;
    hint "AI Zeus DISABLED";
};

Eden & Zeus Modules

Drag-and-drop directives from the editor or live in-game via Zeus

Since v1.7.4, AI Zeus ships as a full set of Eden Editor and Zeus curator modules. Modules are the primary drag-and-drop UX for configuring and directing AI Zeus, and the text-based marker directives described below remain as a parallel option. Both systems share the same directive array under the hood, so priority sorting, multi-group assignment (up to 3 groups per directive), and counter-attack logic apply across markers and modules combined.

Mod Loading Requirement

Eden and Zeus modules require -mod=@AIZeus on clients — not just -serverMod=@AIZeus — because clients need the module class definitions to render them in the F5 panel and the Zeus module tree. Marker directives still work on server-only installs if you don't want clients to load the mod.

Eden Modules (5)

Open the F5 module panel in the editor and drag these from the AI Zeus category:

  • AI Zeus - Init Settings — Singleton configuration module. Place one per mission to set the controlled and enemy sides, skill preset, and 12 subsystem toggles (CAS, artillery, reinforcements, escalation, medics, transport, garrison, patrol, suppression, vision limiter, night ops, debug). AI Zeus auto-starts once the module is placed — you no longer need an initServer.sqf.
  • AI Zeus - Attack — Place at a position. Sync groups to assign them directly, or leave unsynced to register a directive that picks up nearby groups automatically by range. Priority attribute accepts 1-99 (lower = higher priority).
  • AI Zeus - Defend — Place at a position. Up to 3 groups are assigned over successive scans. Optional radius override. When surplus defenders are available and a threat appears nearby, the extra groups run counter-attack sorties and return to the defense when the threat is clear.
  • AI Zeus - Defend Object — Sync to any object (building, vehicle, crate). Defense style adapts to the target: buildings get garrison + perimeter, vehicles and crates get a close guard ring. Defenders dynamically reposition if the object moves, and are released if it is destroyed.
  • AI Zeus - Defend Area — Place on the map and optionally set a radius (or leave 0 to auto-detect the nearest town boundary). Groups are distributed ~40% garrison, ~30% threat-oriented perimeter, ~30% patrol. Falls back to a linked AIZEUS_DEFEND_* marker when surviving groups drop below 40% of peak.

Zeus Curator Modules (4)

During gameplay, curators can place these from the Zeus module tree to create live directives:

  • AI Zeus - Attack Position — Place to create a live attack directive at the target location
  • AI Zeus - Defend Position — Place to create a live defend directive with optional radius
  • AI Zeus - Defend Object — Attach to an object for adaptive defense (same adaptive logic as the Eden version)
  • AI Zeus - Patrol Area — Assign patrol behavior to the attached group or the nearest unassigned group

Deleting a Zeus module automatically cleans up its directive via the Deleted event handler, so assigned groups are released and become available for new orders.

Custom Waypoint Types (3)

Right-click a group in Eden and choose Add Waypoint to access new waypoint types under the AI Zeus category:

  • AI Zeus: Patrol Area — Group patrols the area around the waypoint with a configurable radius
  • AI Zeus: Garrison Buildings — Group garrisons nearby buildings when they reach the waypoint, then continues to the next waypoint when the next one is set
  • AI Zeus: Garrison & Hold — Garrisons buildings permanently with PATH AI disabled so the group holds indefinitely

How Modules Coexist with Markers

Module directives live in AIZEUS_moduleDirectives and marker directives live in the marker scan output. The two arrays are merged before every execution pass, so the priority sort, the 3-group cap per directive, and counter-attack logic all see a single combined set. You can mix and match — for example, use Eden modules for the planned objectives and drop markers or Zeus modules at runtime to react to emergent situations.

Tip

The Init Settings module is a singleton. If you also call AIZEUS_fnc_init from initServer.sqf, the module's auto-start guard prevents double-initialization, so you can combine both workflows safely.

Marker Directive System

Direct AI forces using map markers (alternative to modules)

AI Zeus supports map markers that let you direct groups to attack or defend specific positions and objects. Create markers in the editor or at runtime.

Attack Markers

Name any marker starting with AIZEUS_ATTACK_ to assign nearby groups to attack that position:

AIZEUS_ATTACK_hilltop      // Groups attack the hilltop
AIZEUS_ATTACK_1_bridge     // Priority 1 (highest) - attack bridge first
AIZEUS_ATTACK_2_compound   // Priority 2 - attack compound second

Defend Markers

Name markers starting with AIZEUS_DEFEND_ to assign groups to hold positions:

AIZEUS_DEFEND_base         // Groups defend the base
AIZEUS_DEFEND_1_hq         // Priority 1 - most important to defend

Defend Object Markers

Name markers starting with AIZEUS_DEFEND_OBJ_ to assign groups to defend a specific object. The defense style adapts automatically — buildings get garrisoned with a perimeter, while vehicles and crates get a close guard ring.

AIZEUS_DEFEND_OBJ_ammoCache       // Defend object with variable name "ammoCache"
AIZEUS_DEFEND_OBJ_1_radarTower    // Priority 1 - defend "radarTower"
AIZEUS_DEFEND_OBJ_my_ammo_cache   // Variable name with underscores: "my_ammo_cache"

Objects are resolved by variable name first. If no matching variable is found, AI Zeus auto-detects the nearest significant object within 25m of the marker. Groups will reposition if the defended object moves, and are released if it is destroyed.

Priority System

Add a number (1-99) after the prefix to set execution priority. Lower numbers = higher priority:

  • AIZEUS_ATTACK_1_objective - Highest priority, executed first
  • AIZEUS_DEFEND_OBJ_2_ammoCache - Priority 2, defend named object
  • AIZEUS_ATTACK_50_secondary - Medium priority
  • AIZEUS_ATTACK_99_cleanup - Lowest priority, executed last

Multi-Group Defense

DEFEND and DEFEND_OBJ markers can receive up to 3 groups (configurable via AIZEUS_markers_maxGroupsPerMarker). Groups are assigned over successive scans as they move within range.

Defend Area Markers

Name markers starting with AIZEUS_DEFEND_AREA_ to defend an entire town or village. Groups are automatically distributed across garrison, perimeter, and patrol roles. Perimeter groups orient toward the nearest threat using doctrine-based 120-degree arc positioning:

AIZEUS_DEFEND_AREA_Kavala        // Defend the town with up to 8 groups
AIZEUS_DEFEND_AREA_1_Pyrgos      // Priority 1 - defend Pyrgos first

Place a matching AIZEUS_DEFEND_* marker as a fallback position. When the area defense is overwhelmed (below 40% surviving groups), remaining groups retreat to the fallback:

AIZEUS_DEFEND_AREA_Alpha         // Defends the town
AIZEUS_DEFEND_Alpha              // Fallback position (linked by suffix)

Counter-Attack Sorties

When a defended marker has surplus groups and a threat is detected nearby, the extra groups will automatically counter-attack. After the threat is eliminated or 180 seconds pass, they return to defense. At least 1 group always stays at the marker (configurable via AIZEUS_counterAttack_minDefenders).

Dynamic Markers

Markers can be created or deleted at runtime. Groups are automatically released when their assigned marker is deleted or their defended object is destroyed, making them available for new orders.

Tip

Use Zeus or scripting to create markers during gameplay for dynamic objective changes! Marker text is also supported, so Zeus-placed markers work too.

Blacklist Variable

Exclude specific units or vehicles from AI Zeus management

Setting the Variable

Set AIZEUS_blacklisted to true on any unit or vehicle:

// In unit's init field (Eden Editor):
this setVariable ["AIZEUS_blacklisted", true, true];

// Or via script:
_unit setVariable ["AIZEUS_blacklisted", true, true];
_vehicle setVariable ["AIZEUS_blacklisted", true, true];

The third parameter (true) broadcasts to all clients/HCs.

What Gets Excluded

Blacklisted units are excluded from:

  • Awareness tracking (fn_updateAwareness)
  • Contact report generation (fn_generateContactReports)
  • Tactical orders (garrison, suppression response, grenades)
  • Transport/vehicle assignments (fn_findTransportVehicle, fn_boardVehicle)
  • Skill modifications (fn_applySkill, fn_suppressionSkillDegradation)
  • Support systems (resupply, medic, CAS, drone recon)
  • Night operations and fog of war effects
  • Headless client transfers (fn_transferUnitsToHC)
  • Escalation responses

Re-enable Management

_unit setVariable ["AIZEUS_blacklisted", false, true];
Tip

This is useful for units you want to control manually via Zeus or custom scripts while AI Zeus manages the rest of the battlefield.

Configuration Recipes

Ready-to-use configurations for common scenarios

BLUFOR vs OPFOR (AI controls BLUFOR)

waitUntil {!isNil "AIZEUS_fnc_init"};
AIZEUS_controlledSide = west;
AIZEUS_enemySide = east;
[] call AIZEUS_fnc_init;

Independent vs BLUFOR

waitUntil {!isNil "AIZEUS_fnc_init"};
AIZEUS_controlledSide = independent;
AIZEUS_enemySide = west;
[] call AIZEUS_fnc_init;

Hard Mode (No Air Support)

waitUntil {!isNil "AIZEUS_fnc_init"};
AIZEUS_skill_preset = "HARD";
AIZEUS_casAvailable = false;
AIZEUS_artyAvailable = false;
[] call AIZEUS_fnc_init;

Stealth Mission (Disable Features)

waitUntil {!isNil "AIZEUS_fnc_init"};
AIZEUS_patrol_enabled = false;
AIZEUS_ambush_enabled = false;
AIZEUS_reinforcementsAvailable = false;
[] call AIZEUS_fnc_init;

Complete Configuration Reference

Variable Default Description
AIZEUS_enabledtrueEnable AI Zeus
AIZEUS_debugfalseDebug markers and logging
AIZEUS_controlledSideeastSide AI Zeus commands
AIZEUS_enemySidewestEnemy side
AIZEUS_skill_preset"MEDIUM"EASY, MEDIUM, HARD, VANILLA
AIZEUS_casAvailabletrueClose Air Support
AIZEUS_artyAvailabletrueArtillery support
AIZEUS_reinforcementsAvailabletrueReinforcement spawning
AIZEUS_garrison_enabledtrueBuilding garrison
AIZEUS_patrol_enabledtruePatrol system
AIZEUS_ambush_enabledtrueAmbush behavior
AIZEUS_night_enabledtrueNight operations
AIZEUS_medic_enabledtrueMedic system
AIZEUS_vehicle_enabledtrueVehicle coordination
AIZEUS_hc_enabledtrueHeadless client support
Self-Preservation (v1.7.5)
AIZEUS_preservation_enabledtrueMaster toggle for all four self-preservation systems
AIZEUS_veh_damageRetreat0.5Vehicle damage threshold to withdraw from contact
AIZEUS_veh_damageBailout0.8Vehicle damage threshold to force crew bailout
AIZEUS_veh_fuelRetreat0.2Vehicle fuel threshold to RTB
AIZEUS_veh_retreatDistance300Vehicle withdrawal distance (meters)
AIZEUS_remnant_threshold2Max survivors before a group is flagged as a remnant
AIZEUS_remnant_mergeRange300Max range to find a merge target (meters)
AIZEUS_groupRetreat_threshold0.5Per-group casualty % to trigger fallback
AIZEUS_groupRetreat_cooldown60Seconds before a retreated group accepts new orders
AIZEUS_groupRetreat_distance200Fallback distance from nearest enemy (meters)
AIZEUS_ambush_breakCasualty0.3Ambush casualty % to break contact
AIZEUS_ambush_breakReinforcement2.0Enemy count multiplier that triggers break-contact

Verification & Debugging

Confirm AI Zeus is working correctly

Verification Script

Add this to your mission to confirm AI Zeus started:

[] spawn {
    sleep 10;
    if (AIZEUS_enabled) then {
        systemChat format ["AI Zeus active - controlling %1 with %2 units",
            AIZEUS_controlledSide, count AIZEUS_friendlyUnits];
    } else {
        systemChat "AI Zeus NOT running";
    };
};

Server RPT Output

When AI Zeus starts successfully, your server RPT will show:

==============================================================
    AI ZEUS - Autonomous Battlefield Commander v1.8.1
==============================================================
    Status:     ACTIVE
    Controlling: OPFOR
    Units:       24
    Debug:       false
--------------------------------------------------------------
    SUPPORT
    CAS:         true
    Artillery:   true
    Reinforcements: true
==============================================================

Debug Mode

Enable debug visualization to see AI Zeus decisions:

AIZEUS_debug = true;
AIZEUS_debug_adminOnly = true;  // Only visible to admins

Debug mode shows:

  • Red/orange/yellow markers for known enemies (color = intel quality)
  • Red circles for active combat zones
  • Environment type markers for each group
  • Detailed decision logging in RPT

Performance Optimization

Get the best performance from AI Zeus

Recommended AI Limits

Server Setup Recommended Max AI
Dedicated server only30-50 units
Server + 1 headless client50-100 units
Server + 2 headless clients100-150 units

Headless Client Setup

AI Zeus automatically detects and uses headless clients. No special configuration needed - just connect HCs to your server and AI Zeus will distribute load across them.

AIZEUS_hc_enabled = true;       // Auto-detect HCs (default)
AIZEUS_hc_transferUnits = true; // Transfer AI to HC
AIZEUS_hc_loadBalance = true;   // Balance across multiple HCs

Optimization Tips

  • Use headless clients - Best performance improvement
  • Increase update intervals - Set AIZEUS_updateInterval = 10 for less frequent updates
  • Disable unused features - Turn off systems you do not need
  • Use EASY skill preset - Fewer skill calculations

Troubleshooting

Common issues and solutions

AI Zeus Not Starting

  • Check server RPT for error messages
  • Verify AIZEUS_enabled = true
  • Confirm controlled side has AI units in mission
  • Ensure mod is loaded: -serverMod=@AIZeus

AI Not Responding

  • Enable debug mode and check markers
  • Verify correct side configuration
  • Check that AI can actually see enemies (fog of war)
  • Look for tactical state in RPT logs

Performance Problems

  • Add headless client
  • Reduce total AI count
  • Increase AIZEUS_updateInterval value
  • Disable features you do not need

Script Errors

  • Delete old aizeus.pbo file
  • Re-extract fresh copy from zip
  • Verify no file corruption during transfer
  • Check for mod conflicts