Arma Reforger · Player, Game Master & server administrator manual

STW/Combat Knowledge

AI-observed threats can trigger faction-aware combat support: smoke, mortar fire, CAS, armored/light vehicles and Helicopter Assault.

Event drivenServer authoritativeMultiplayer consciousPlayer orders first

Configuration files

Combat Knowledge currently uses one persisted behavior file:

$profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json

The live schema is version 12. It contains all switches, probabilities, timing values, throughput limits, failure backoffs, drone-surveillance settings and faction profiles documented in the Configuration section below. The file is generated and validated by Combat Knowledge; stop the server before editing it and restart afterward.

Other JSON files mentioned by integrated mods are not Combat Knowledge configuration files. For example, STWCombatZone reads $profile:STW/CombatZone/STWCombatZoneConfig.json, while STWCombatSupportAPI has no behavior JSON of its own.

Dependencies

STW Transport Helipads is required for automated Helicopter Assault. STW Snipers & Spotters remains optional: when installed, it supplies managed sniper and spotter roles through STW Combat Support API; Combat Knowledge then applies its shorter contact-memory and lower-priority policy to AI-observed roles. Without it, the vanilla low-visibility policy remains in effect.

ModWorkshop IDWorkshop page
STW Snipers & Spotters6A0C1B4265742EBCOpen Workshop page

STW Snipers & Spotters is optional. Install it only on servers that want its sniper/spotter functionality.

What it does

STW/Combat Knowledge turns legitimate AI perception into support opportunities. It does not continuously scan the map, track players, or invent enemy positions. A contact begins only when an eligible AI group discovers it; the system keeps the AI-reported last-known position and uses it for any later order.

Observe. Decide. Support. Automation runs on the server and keeps automatic support separate from player-issued Combat Support orders.

Players

A player is never globally tracked. Once an enemy player is genuinely seen by AI, the contact may be prioritized; when sight is lost, the system does not learn the player's new location.

AI infantry

Ordinary infantry needs a recent observed cluster before it becomes an indirect-support candidate. The default cluster is three contacts within 100 metres during 20 seconds.

Server setup

  1. Load STW/Combat Knowledge, STW Combat Support API, the desired support providers, and STW Transport Helipads on the server and clients.
  2. Start the scenario once. The server creates $profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json.
  3. Configuration is loaded once per server session. Stop the server before making changes, then restart it.
  4. All currently implemented automatic support categories are enabled in the fresh default configuration. Tune individual switches, probabilities, limits and faction profiles to suit the mission.

The live schema is version 10. If the stored version is older, Combat Knowledge deletes that obsolete file and writes a fresh file with current defaults. Default profiles cover US, RHS_USAF, USSR, RHS_AFRF, CIV and PLASTICBANDIT. US, USSR, RHS_USAF and RHS_AFRF can use CAS and Helicopter Assault. CIV has no automatic support. PLASTICBANDIT is limited to light vehicles unless an administrator changes its capability list.

How support is chosen

Observed situationPossible response
Vehicle or aircraftCAS, relevant ground support, and one indirect mission can each be considered.
Observed infantry clusterArmored support, light vehicles, CAS, smoke or HE mortar support may be considered.
Directly observed enemy player on footHigh-priority indirect candidate; its default indirect decision chance is 100%.

Support categories are independent: an accepted CAS request does not suppress armored, light-vehicle, or mortar/smoke evaluation. HE and smoke remain alternatives within one indirect mission: smoke is preferred 70% of the time, and HE is preferred otherwise. If the preferred indirect option cannot be scheduled, the other may be tried.

At night (20:00–06:00 by default), a qualifying observation can also schedule an illumination flare. Flares are independent from CAS, ground, smoke and HE decisions, but share the faction mortar queue.

Mortar missions use the reporting AI's last-known target information. They have a 45-second preparation delay, and each faction's mortar queue spaces later missions behind earlier ones. As a result, a queued mission can take longer than 45 seconds to fire.

Covering fire and building clearance

Combat Knowledge also gives nearby friendly AI groups two direct-response options. These use the groups already reporting a recent enemy contact; they do not create a separate mortar, helicopter, or vehicle mission.

Covering fire

Covering fire (shown in the support system as suppressive fire) sends an eligible nearby AI group toward the contact's last-known position and places it on fire at will. The group can engage from its existing weapons and position while friendly players move, assault, or reposition. It is not a precision strike and does not track an enemy after the reported position becomes stale.

Player use: open the map radial menu, choose Combat Support → Covering Fire, and select the target area. The request requires a recent friendly AI report within the local support area, normally up to 350 metres.

Building clearance

Building clearance directs a nearby reporting AI group through the usable entrances and interior search points associated with the last-known contact building. Each point uses fire-at-will combat behaviour, allowing the group to clear the structure rather than simply hold outside it.

Player use: open Combat Support → Building Clearance and select the building or nearby target area. The system needs a recent contact, a usable building/door route, and a friendly AI group close enough to carry it out. If no route is available, the request is refused and the group keeps its normal task.

Important: both actions use the AI's remembered position. They are short-range tactical responses, not live tracking, and they do not reveal hidden players or guarantee that every room is occupied or cleared.

Safety and deconfliction

Automatic HE is conservative. At the moment of execution, explosive mortar fire is refused if a civilian or friendly player is in the configured danger area. Vanilla/RHS allied pairs are treated as friendly: US with RHS_USAF, and USSR with RHS_AFRF.

Sniper and spotter concealment

STWSnipers-managed snipers and spotters are treated as lower-confidence contacts after AI has genuinely seen them. Combat Knowledge retains their actionable report for less time and lowers their automatic-support priority. If they conceal themselves and are not seen again, a delayed smoke, mortar, or illumination order can be cancelled as stale. Vanilla low-visibility units receive a lighter version of the same policy.

This does not reveal hidden snipers or track them after sight is lost. It also does not overwrite vanilla AI's own combat-memory system.

Behavior configuration parameters

These values are stored in $profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json. The current schema is version 10. Use true/false for switches and values from 0.0 to 1.0 for probabilities. Validation clamps invalid values; zero is allowed for most delays and distances, while throughput, pending-work and retry thresholds are kept at a safe minimum of one.

SettingPurpose and default
enableAutomaticSupportMaster switch for all automatic support; true.
enableAutomaticSmokeScreen
enableAutomaticMortarHE
enableAutomaticIlluminationFlares
Enable smoke, HE mortar and illumination-flare missions; all true.
enableAutomaticLightVehicleSupport
enableAutomaticArmoredSupport
enableAutomaticTankSupport
Enable the corresponding ground-support routes; all true.
enableAutomaticCASAgainstVehicles
enableAutomaticCASAgainstInfantry
automaticCASVehicleProbability
Enable CAS against vehicles/aircraft and qualified infantry. Vehicle opportunity probability is 0.35.
enableAutomaticHelicopterAssault
automaticHelicopterAssaultProbability
automaticHelicopterAssaultTroopCount
Helicopter Assault switch, opportunity probability 0.25, and troop count. -1 uses all currently free cargo seats; a positive value requests an exact force size.
automaticIndirectOrderProbability
automaticSmokePreferenceProbability
automaticIndirectPlayerOrderProbability
automaticGroundReinforcementProbability
Normal indirect chance 0.55, smoke-over-HE preference 0.70, directly observed player indirect chance 1.0, and independently eligible ground-support chance 0.35.
observedInfantryClusterMinimum
observedInfantryClusterRadiusMeters
observedInfantryClusterRetentionSeconds
Infantry cluster qualification: 3 contacts within 100 m, retained for 20 seconds.
smokeScreenDelaySeconds
smokeScreenMissionBusySeconds
mortarHEDelaySeconds
mortarHEMissionBusySeconds
Preparation delay and mission-busy duration for smoke and HE; defaults are 45 seconds for each.
illuminationFlareDelaySeconds
illuminationFlareMissionBusySeconds
illuminationFlareNightStartHour
illuminationFlareNightEndHour
Flare delay/busy duration (30/30 seconds) and night window (20:00–06:00). Hours are clamped to 0–23.
mortarHEAimErrorMinimumMeters
mortarHEAimErrorMaximumMeters
Randomized HE aim error range, default 15–45 m; maximum is raised to the minimum if configured lower.
automatedSupportContactCooldownSeconds
automatedSupportRetryBaseSeconds
automatedSupportRetryMaximumSeconds
automatedSupportMaximumRetries
Per-contact cooldown, retry backoff range and retry count; defaults 180 s, 30–60 s and 3.
automatedCASPendingPerFaction
automatedCASPendingGlobal
Maximum active/queued automated CAS records: 2 per faction and 8 globally.
automatedSupportAreaRadiusMetersMap-cell grouping size for nearby contacts and support-type deconfliction; 300 m.
automatedDecisionEvaluationsPerMinute
automatedSupportOrdersPerMinute
automatedSupportOrdersPerFactionPerMinute
automatedGroundRouteRequestsPerMinute
Rolling one-minute throughput budgets: 20, 8, 2 and 4. Zero is clamped to one.
automatedSupportDiagnosticsIntervalSecondsInterval for support diagnostics, default 60 seconds.
runtimeFailureQuarantineEnabledEnables provider/crew/route/capability failure quarantine; true.
providerFailureCooldownSeconds
providerFailureMaximumCooldownSeconds
crewRecoveryFailureCooldownSeconds
routeFailureCooldownSeconds
routeFailureMaximumCooldownSeconds
unavailableCapabilityCooldownSeconds
unavailableCapabilityMaximumCooldownSeconds
Failure quarantine/backoff timings. Defaults are provider 90–600 s, crew 120 s, route 120–900 s and unavailable capability 45–180 s.
sameRouteFailureThreshold
sameProviderFailureThreshold
Repeated failures before route/provider quarantine; both default to 2.
dispatchRateLimitingEnabled
dispatchGlobalWindowSeconds
dispatchGlobalMaxNewOrdersPerWindow
dispatchPerFactionMaxNewOrdersPerWindow
Shared event-time dispatch limiter, enabled by default, with a 10-second window and 24 global / 14 per-faction new orders.
dispatchPerContactCapabilityCooldownSeconds
dispatchFailureBackoffInitialSeconds
dispatchFailureBackoffMaximumSeconds
Per-contact/capability cooldown and dispatch-failure backoff; defaults 30 s and 15–120 s.
dispatchGlobalPendingOrderLimit
dispatchPerFactionPendingOrderLimit
dispatchReservedPriorityOrdersPerWindow
Pending-order caps of 48 global and 24 per faction, with 4 priority slots per window.
dispatchCapabilityLimitsPer-capability pending/dispatch limits map. Defaults: cas=4, helicopterAssault=4, tankSupport=8, groundReinforcement=12, lightSupport=12, indirectFire=8, smoke=8, suppression=12.
vanillaLowVisibilityContactMemorySeconds
managedSniperContactMemorySeconds
managedSpotterContactMemorySeconds
Contact-memory windows for vanilla low-visibility, managed snipers and managed spotters: 75, 60 and 75 seconds.
perceptionRegistrationDelaySeconds
perceptionDeregistrationGraceSeconds
Lifecycle stabilization delays for AI-group perception subscriptions: 1.0 s registration and 0.75 s deregistration grace.
vanillaLowVisibilityThreatPenalty
managedSniperThreatPenalty
managedSpotterThreatPenalty
Automatic-support priority penalties: 2, 5 and 3.
enableCQBBuildingInvestigationDiagnosticLocal integration probe that resolves a contact through CQB without movement/spawn orders; default false.

Faction profiles

Set factionProfiles[].factionKey, enabled and permittedCapabilities deliberately. Unknown factions are disabled. A faction must list the exact capability before it can use it: mortar_he, mortar_smoke, mortar_flare, cas, light_vehicle, armored, tanks or helicopter_assault. The profile switch and capability list are applied in addition to every provider, safety, cooldown and dispatch limit.

Gameplay testing and diagnostics

Use normal gameplay to assess whether support frequency, delays and availability feel believable. Keep the server script log available during testing: entries beginning [STW][CombatKnowledge] explain what happened.

Log messageMeaning
Decision: ... candidate=1A legitimate AI observation qualified for support evaluation.
Smoke screen scheduled or HE mortar scheduledA native indirect mission was accepted and placed in the faction queue.
Executed moduleThe scheduled native smoke or HE module reached execution.
CAS acceptedA CAS provider was assigned immediately.
CAS queuedThe CAS request was accepted but is waiting for a provider.
CAS unavailableNo eligible provider was available, or the bounded CAS queue was full. Repeated observations of the same contact are deliberately suppressed for a short backoff period.
CAS canceled_etaAn accepted CAS assignment exceeded its ETA and was released for recovery.
Covering Fire or Building ClearanceA nearby reporting AI group accepted a direct tactical response.

A scheduled order is not an immediate visual effect. Allow for the preparation delay and any existing faction mortar queue before treating it as missing. Covering fire and building clearance also depend on a recent, usable AI contact and nearby group.

Automated Helicopter Assault

STW Transport Helipads is required for this capability. When a legitimate AI observation qualifies, Combat Knowledge can call a same-faction transport to insert an AI assault group near the reported enemy position.

The AI-reported last-known enemy position is the assault anchor and initial ground objective. The transport service selects a safe landing area 75–150 metres from that anchor, then the inserted group moves toward it after landing.

By default, a selected helicopter carries its current full cargo capacity. Server administrators can choose a specific troop count instead. Player orders retain priority; faction policy, probability, provider availability, helicopter cooldown and readiness, and landing-area validation still apply.

Automated support deconfliction

Automated CAS, armored, tank, light-vehicle, and Helicopter Assault support uses automatedSupportAreaRadiusMeters, defaulting to 300 metres, to group nearby contacts. The same faction and support type cannot be assigned again in that area until the first order completes, is cancelled, or fails. This prevents support markers and vehicles from accumulating around one contact area.

Mortar HE, smoke, and illumination remain independently schedulable. Observed player-controlled enemy contacts receive priority and bypass normal random opportunity suppression, while still requiring legitimate AI detection and all safety and provider-availability checks.

Adjust automatedSupportAreaRadiusMeters in $profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json; it is a map-cell grouping size rather than a circular hard radius.

DAC-controlled intelligence reveals

When STWCombatKnowledge, STWCombatZoneCKnowledgeAdapter, and STWDivideAndConquer are loaded together, periodic intelligence reveals adapt to the selected player's current Divide and Conquer hex. Friendly hexes use a longer interval and lower probability; neutral hexes use a moderately longer interval and lower probability; enemy hexes use a shorter interval and higher probability; frontline hexes use the shortest interval and highest probability.

Each reveal cycle selects one currently connected player, so the classification is evaluated independently for multiple players. The server performs the evaluation authoritatively. If DAC integration is unavailable or the hex cannot be classified, CombatKnowledge falls back to the base intelligence-reveal settings.

These settings are stored in $profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json. The schema version is 14.

ParameterDefaultEffect
dacIntelligenceRevealEnabledtrueEnables DAC-based modifiers.
dacFriendlyRevealIntervalMultiplier / dacFriendlyRevealProbabilityMultiplier2.0 / 0.35Friendly territory.
dacNeutralRevealIntervalMultiplier / dacNeutralRevealProbabilityMultiplier1.5 / 0.60Neutral territory.
dacEnemyRevealIntervalMultiplier / dacEnemyRevealProbabilityMultiplier0.75 / 1.35Enemy territory.
dacFrontlineRevealIntervalMultiplier / dacFrontlineRevealProbabilityMultiplier0.45 / 1.80Frontline territory.

Interval multipliers apply to intelligenceRevealIntervalMinSeconds and intelligenceRevealIntervalMaxSeconds. Probability multipliers apply to intelligenceRevealProbability; the result is clamped to 0.0–1.0. Missing fields are created with defaults by the normal configuration migration/save path.

Additional live configuration reference

The live schema is version 12. The following newer parameters are stored in $profile:STW/CombatKnowledge/STWCombatKnowledgeBehavior.json:

ParameterDefault and purpose
enablePeriodicIntelligenceRevealtrue. Enables synthetic periodic intelligence reports that can trigger normal support dispatch.
intelligenceRevealIntervalMinSeconds / intelligenceRevealIntervalMaxSeconds120 / 300. Random minimum and maximum seconds between reveal cycles.
intelligenceRevealProbability1.0. Probability that a scheduled reveal cycle selects and reports a player.
intelligenceRevealShowChatMessage / intelligenceRevealShowHinttrue / true. Controls the player-facing chat and hint feedback.
intelligenceRevealHintDurationSeconds10. Duration of the intelligence warning hint.
enableStandaloneDrone, standaloneDroneFlightSpeedMetersPerSecond, standaloneDroneBatchIntervalSeconds, standaloneDroneCoverageRadiusMeters, showDroneCoverageCircletrue, 25, 30, 500, true. Enable and tune the virtual drone flight, scan cadence, coverage radius and map circle.
droneHiddenReleaseMinSeconds / droneHiddenReleaseMaxSeconds45 / 90. Concealment hold release range after a player is hidden.
dispatchCapabilityHourlyLimits / dispatchCapabilityMinimumIntervalSecondsMaps of per-capability hourly quotas and minimum spacing intervals. They supplement the global and per-faction dispatch limits.
factionProfiles[]Each entry has factionKey, enabled and permittedCapabilities. Include combat_zone to allow Combat Zone support for that faction.

Separate configuration: STW Combat Zone itself reads $profile:STW/CombatZone/STWCombatZoneConfig.json. STW Combat Support API does not have a behavior JSON.

Captain Sprocket patch

Captain Sprocket community

Arma Reforger server: STW Reforger

Community: Join the Discord server

More STW manuals