Mission Makers Guide
Integrate AI Zeus into your custom ArmA 3 missions
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.
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.
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 firstAIZEUS_DEFEND_OBJ_2_ammoCache- Priority 2, defend named objectAIZEUS_ATTACK_50_secondary- Medium priorityAIZEUS_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.
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];
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_enabled | true | Enable AI Zeus |
AIZEUS_debug | false | Debug markers and logging |
AIZEUS_controlledSide | east | Side AI Zeus commands |
AIZEUS_enemySide | west | Enemy side |
AIZEUS_skill_preset | "MEDIUM" | EASY, MEDIUM, HARD, VANILLA |
AIZEUS_casAvailable | true | Close Air Support |
AIZEUS_artyAvailable | true | Artillery support |
AIZEUS_reinforcementsAvailable | true | Reinforcement spawning |
AIZEUS_garrison_enabled | true | Building garrison |
AIZEUS_patrol_enabled | true | Patrol system |
AIZEUS_ambush_enabled | true | Ambush behavior |
AIZEUS_night_enabled | true | Night operations |
AIZEUS_medic_enabled | true | Medic system |
AIZEUS_vehicle_enabled | true | Vehicle coordination |
AIZEUS_hc_enabled | true | Headless client support |
| Self-Preservation (v1.7.5) | ||
AIZEUS_preservation_enabled | true | Master toggle for all four self-preservation systems |
AIZEUS_veh_damageRetreat | 0.5 | Vehicle damage threshold to withdraw from contact |
AIZEUS_veh_damageBailout | 0.8 | Vehicle damage threshold to force crew bailout |
AIZEUS_veh_fuelRetreat | 0.2 | Vehicle fuel threshold to RTB |
AIZEUS_veh_retreatDistance | 300 | Vehicle withdrawal distance (meters) |
AIZEUS_remnant_threshold | 2 | Max survivors before a group is flagged as a remnant |
AIZEUS_remnant_mergeRange | 300 | Max range to find a merge target (meters) |
AIZEUS_groupRetreat_threshold | 0.5 | Per-group casualty % to trigger fallback |
AIZEUS_groupRetreat_cooldown | 60 | Seconds before a retreated group accepts new orders |
AIZEUS_groupRetreat_distance | 200 | Fallback distance from nearest enemy (meters) |
AIZEUS_ambush_breakCasualty | 0.3 | Ambush casualty % to break contact |
AIZEUS_ambush_breakReinforcement | 2.0 | Enemy 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 only | 30-50 units |
| Server + 1 headless client | 50-100 units |
| Server + 2 headless clients | 100-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 = 10for 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_updateIntervalvalue - Disable features you do not need
Script Errors
- Delete old
aizeus.pbofile - Re-extract fresh copy from zip
- Verify no file corruption during transfer
- Check for mod conflicts