SilenceAI - Enhanced Combat
by Silence_AUS
1.0.41
AI budget no longer counts a transfer as a death OnAgentRemoved released a budget slot unconditionally. That was correct while the only way to leave a group was to die or despawn. It stops being correct the moment anything moves men between groups: every SilenceAI split transfer would have arrived looking exactly like a death, the budget would have been credited for men still standing in the field, and the spawners would have spent that credit on more AI. More AI is the opposite of what the splitter is for, and on a console client it is the thing players actually feel. The test is now the man, not the event. Entity gone means despawned. DEAD or INCAPACITATED means killed. Anything else is a live man who changed hands, and his slot is still occupied. This is safe with or without SilenceAI. With no splitter running, the only agents that ever reach that function are dead or despawned ones, and the behaviour is identical to the unconditional release it replaces.
- Game Version
- 1.8.0.13
- Created
- Fri, 04 Sep 2026 08:31:18 GMT
- Last Modified
- Fri, 04 Sep 2026 08:31:35 GMT
1.0.40
The AI were opting out of fighting, and we can prove it. A full session at max logging showed base of fire, bounding overwatch and flanking appearing in neither list of all 11 self reports. Not fired, not even blocked-with-a-reason. They were bailing out before their first check. The order arbiter agreed: across the whole session it recorded Garrison, Investigate, Withdraw and GameMaster, and not one Suppress or Flank. Cause: m_bGarrisoned was doing two jobs. It used to mean "on a Defend waypoint holding windows", where skipping the offensive systems is correct. Then the navmesh fallback was added, because six of the 7,714 buildings in the game have an authored firing position, and now the same flag also meant "found some cover nearby". 388 positions and 157 groups were quietly excluded from fighting back. Fixed: the gates now ask whether somebody deliberately put the group there, which a Defend waypoint and a Game Master order both answer, and merely taking cover does not. Garrisons work in ordinary buildings now. The navmesh fallback existed but only ran for groups with no waypoint. A group arriving on a Defend waypoint handed itself to vanilla, which allocated from an empty set. That's the single most common garrison on a PVE server, so the fallback was missing exactly where it was needed. Garrisons stop looking like one organism. Roughly two thirds of garrison groups are capped to crouching, the rest hold at whatever height they choose, rolled once per group. You cannot force AI to stand, only stop capping them, so that's as close as the engine allows. New Game Master action: Set ambush here. Select groups, right-click ground, they hold fire until someone reaches that spot. Turns the ambush on as well as pointing it. PVE: groups walking into an objective now fight on the way. Defensive surges and resupply spawn hundreds of metres out and walked in on a Defend waypoint, which means arriving outranks being shot at. They get their own waypoint slot now. Counterattack waves deliberately keep Defend, because a wave has to hold what it retakes. Also: transport's "13,437 blocks" turned out to be empty groups being asked the same question 600 times each, and now says so. Formation counters split into spawn and runtime, which is what proved the spawn fix worked: 80 set at spawn, 2:1 wedge to staggered, zero Column. And a brand new config file no longer stamps itself as out of date.
- Game Version
- 1.8.0.10
- Created
- Wed, 02 Sep 2026 13:35:16 GMT
- Last Modified
- Wed, 02 Sep 2026 13:35:32 GMT
1.0.39
Uploading the handbook: https://claude.ai/code/artifact/e1725b32-79df-48bd-8253-7e80b7d0b23c
- Game Version
- 1.8.0.10
- Created
- Wed, 02 Sep 2026 07:59:31 GMT
- Last Modified
- Wed, 02 Sep 2026 07:59:47 GMT
1.0.38
SilenceAI v0.38 + PVE Remix AI that stop walking in a conga line. Formation is now set at spawn, which turns out to be the only moment that matters, and only one mod is allowed to set it. The previous 915 "formation changes" per session were relabelling men who were already standing where they'd been put. Patrols now halt. Out of contact, groups stop for a few seconds, drop to a knee and have a look around. Rolled per group so two patrols don't stop in unison. Shelling now works on them. Three rounds in the same place inside 25 seconds and the group displaces 90 m out of the beaten zone instead of sitting there absorbing it. Helicopters are scary now. Enemy vehicle inside 400 m and infantry go prone and spread into wedge, and stay there while it's circling. Smoking a field is no longer free. Break line of sight at close range and the last place you were seen gets a wide, long burst of suppression. Works on smoke, walls, ditches and doorways alike, because they're all the same trick. Medics stop committing suicide. They were walking out to bandage people during live firefights because the "lull" check only asked whether an enemy was within 80 m. It now wants 250 m and 25 seconds of actual quiet. PVE side: AI backcapping no longer stacks up infinite objectives, lost ground blocks the front again with a cap so it can't softlock, and counter-sniper cooldown is now a random 10 to 30 minutes instead of a metronome you could set your watch by. Also: settings actually save now. They hadn't, once, ever.
- Game Version
- 1.8.0.10
- Created
- Wed, 02 Sep 2026 03:15:02 GMT
- Last Modified
- Wed, 02 Sep 2026 03:15:11 GMT
1.0.37
Fixing the AI from just running to heal AI, changed Fixed both. m_fLullDistance is 80 to 250, and there's a new m_Casualty.m_fQuietTime, default 25 seconds, which requires the group to have actually seen nothing for that long. Both halves have to pass now, so a squad still trading fire fails the first and a squad in a brief pause fails the second.
- Game Version
- 1.8.0.10
- Created
- Tue, 01 Sep 2026 23:50:47 GMT
- Last Modified
- Tue, 01 Sep 2026 23:51:05 GMT
1.0.36
fixing AI formations
- Game Version
- 1.8.0.10
- Created
- Tue, 01 Sep 2026 14:40:47 GMT
- Last Modified
- Tue, 01 Sep 2026 14:41:00 GMT
1.0.35
# SilenceAI - Enhanced Combat, change notes
Same 125 Game Master attributes as the last build. Nothing new to configure.
This release is one defect, and it is the one that made the last several releases pointless on a
live server. Read the last section before you restart, there is something you need to delete.
---
## Fixed: the mod has never once saved its settings on a live server
A four hour session attempted five settings writes and failed all five. Every Game Master change to
AI settings was being lost at the next restart.
The log said `SaveContext doesn't support unmanaged class`. That error was already known and had
already been "fixed" once, by replacing a `map<string, string>` field with an array of small
`Managed` entries. That fix rested on an assumption that was never tested: that arrays reflect
where maps do not. They do not, and the very next build logged the identical error.
The actual rule, which now has evidence behind it instead of a guess:
- The whole settings object was written with a single `WriteValue("", this)`, which asks the engine
to reflect over the object and write whatever it finds.
- `array` and `map` are engine template types, not `Managed` script classes. When the reflecting
serialiser meets a field of either type it reports that error and abandons the write.
- Not the offending field. **The entire write.** One error line for fifty-odd sections, and no file.
- Every save that works on this server writes containers only as explicitly **named** values, never
as reflected fields. Vanilla does the same in `SCR_ScenarioFrameworkSystemSerializer`, and
`SLNC_FrontState` goes as far as splitting positions into parallel float arrays to avoid it.
Three things changed:
1. **No container is a field on the settings tree any more.** The two remaining lists, per-faction
skill overrides and per-faction tuning profiles, moved into statics, which reflection does not
walk, and are persisted separately in `SilenceAI_factions.json` as named arrays of primitives.
2. **All 58 top-level values are written by name, one call each, with every return value checked.**
The file keeps the same shape, so existing configs still load. When something breaks in future
the log names the exact section instead of leaving a whole tree to bisect by hand.
3. A repo-wide check for container fields at class scope, which has to catch six deliberately
broken fixtures before it is allowed to report a clean result.
**To be clear about what this did not affect.** The base game's own saving was never broken by it.
Player saves ran 559 times in that session with no errors. This was SilenceAI failing to write its
own config file and nothing else.
## Fixed: the "could not write config" warning could never fire
The branch that warns an admin their profile directory is not writable read
`else if (Replication.IsServer())` hanging off an `if (Replication.IsServer())`. Identical
condition, so it was unreachable. The one warning built to catch a silent failure to persist
settings had itself never run.
## Fixed: one patrol in three walked in single file
Reported from a playtest as the AI bunching up and walking clustered in a single file. That is
exactly what was configured. The varied travel formation pool was StaggeredColumn, Wedge and
**Column**, and Column in `SCR_AIWorld.et` is one man behind another at 3 m.
Second time Column has caused this. It was the outright default once, that was owned and changed,
and it then survived in the variety pool where it kept catching a third of all groups.
The pool is now one part StaggeredColumn to two parts Wedge. Column stays available to anyone who
deliberately wants a road column, but the load now warns when a travel formation is set to it.
Formation changes fired 915 times that session, so the system was working. The setting was wrong.
## Added: a config version stamp, because changed defaults were reaching nobody
The config file always wins over built-in defaults. That is correct, an admin's edits must not
evaporate because the mod updated. The cost is that changing a default in the source changes
nothing at all on any server that already has a config file.
That is not theoretical. Several defaults changed over the last few builds, were uploaded, and had
no effect whatsoever, because the file predated them and quietly won.
The build now stamps a version and says so in the log when the file is older, naming the
consequence and what to do about it. It does not rewrite anything, because silently replacing an
admin's values would be the worse failure.
---
## Before you restart: delete one file
Delete `$profile:SilenceAI_config.json` on the server.
Your current file predates several changed defaults and will keep overriding them, including the
formation fix above. Deleting it makes the mod rebuild from current defaults on the next boot. You
will lose hand edits made directly to that file, but nothing made through the Game Master panel
since writes started failing, because none of that ever reached disk.
From this build on you will not have to guess: the log tells you when the file is out of date.
## What to watch for in the next log
- `[SilenceAI] Loaded config from ...` with no `FAILED to serialise` line after it. That is the fix
confirmed.
- If a write does still fail, the error now names the exact section rather than giving one line for
the whole settings tree.- Game Version
- 1.8.0.10
- Created
- Tue, 01 Sep 2026 13:36:00 GMT
- Last Modified
- Tue, 01 Sep 2026 13:36:10 GMT
1.0.27
SilenceAI - Enhanced Combat Fixes a defect that stopped the base game saving. A map field added to a vanilla component broke the engine's serialisation, so every save involving an AI failed. Also fixes the mod's own config save and load, which was broken the same way. AI no longer forget you 1.6 seconds after you break line of sight. That shipped value is the whole peek-shoot-duck exploit and most of why one player beats a squad. Now 4 seconds by default, adjustable, and it makes AI no more accurate or further sighted. Fire positions now fall back through progressively looser searches instead of leaving a man in the open. A live session measured the old query failing 98% of the time. A failed cover manager lookup is also no longer cached forever, which had been disabling the entire cover system for whole sessions. Bounding overwatch had never once run on a server. It required a posture nothing produces automatically. Fixed. AI walk instead of jogging everywhere, vary their walking speed within a group, travel in staggered column instead of single file, stop standing upright in firefights, and no longer path straight at you during a fight. AI drivers are capped at 45 km/h and a horn no longer shoves a whole section around every time a convoy passes. Transport is enabled by default. AI will use vehicles for distant waypoints and dismount on contact. New: the mod reports at boot which of its systems are switched on but unreachable, and reports periodically which have actually done anything and why the rest have not. A settings baseline can be saved and restored, so staff changes can be reverted with one button or automatically on restart.
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 18:11:04 GMT
- Last Modified
- Mon, 31 Aug 2026 18:11:20 GMT
1.0.26
fixing game saves to enable the persistence system to work
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 17:41:05 GMT
- Last Modified
- Mon, 31 Aug 2026 17:41:20 GMT
1.0.25
AI driving fixes AI drivers now have a speed cap. Nothing in the shipped game applies a cruise speed to AI, so an AI driver was driving at whatever the vehicle would do. That is most of why they leave the road and hit things. Drivers are now capped at 45 km/h, adjustable in the Game Master panel. Bohemia's own value where they expose it is 50, so this sits slightly under their idea of sensible, deliberately, because the point is to buy the driver time to steer. Raise it if convoys feel sluggish, lower it if they still cannot hold a corner. Horn reaction cooldown. The honking itself cannot be stopped: sounding the horn is engine-side driving behaviour with no script control in this engine, so no mod can silence it. What can be fixed is what it does to your infantry. Vanilla moves any man within 12 m of a friendly horn out of the way, and a convoy honks repeatedly, so a section spends a column's whole transit being shoved around. There is now a 20 second per-man cooldown: the first horn still moves him out of the road, the next several are ignored, because he has already stepped aside. Set to 0 for the shipped behaviour. Not possible: making them prefer roads. The pathfinder favours roads through navmesh area costs, and the only script access to those takes a config asset a script-only mod cannot author, with no example of the format anywhere in the game files. The speed cap is the substitute and it is a partial one. Fixed: walking speed limits were being applied to men in vehicles. The per-man gait variation was not excluding drivers and passengers. Found while working on the above. Two new Game Master sliders: AI driving speed, and horn reaction cooldown. 121 attributes total.
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 16:10:54 GMT
- Last Modified
- Mon, 31 Aug 2026 16:11:07 GMT
1.0.24
Everything since the last upload. That build injected 104 Game Master attributes; this one injects
119, across 69 script files.
Most of this release is not new features. It is four defects found by reading a live server's logs,
three of which meant a system that looked fine had never actually run. That matters more than
anything new, so it goes first.
---
## Fixed: AI were not taking cover, 98% of the time
One session logged "no cover found" **1,223 times against 22 successes**. That single number
explains "the AI do not take cover" better than any amount of behaviour tuning.
It was not the engine and not missing cover data. This mod's cover query was stricter than the
shipped game's own, in three ways, with no fallback when it found nothing. Compared against
`SCR_AICreateDefendBehaviorCoverQueryProps`, which is Bohemia's query for exactly this job:
- **Visibility checking.** Vanilla defend sets it false. This mod set it true, so every cover point
needed a clear line to the threat. With no known enemy the mod synthesises one 200 m away, so men
were being asked for a sight line to an imaginary point two hundred metres out. In a village
almost nothing passes that.
- **Search centre.** Vanilla centres the search on the soldier. This mod centred it on the group,
so every man searched one shared circle and the later ones competed for ground the earlier ones
had already taken.
- **Minimum cover height.** Vanilla leaves it at zero. This mod required 0.9 m, rejecting every low
wall, kerb and window sill in the search.
There are now three queries in descending strictness instead of one that failed silently. First to
return wins:
1. Ideal: facing the threat, sight line to it, above kerb height.
2. Vanilla: facing the threat, no sight line required. This is exactly what the shipped defend
behaviour asks for, so a man landing here has the stock position, not a degraded one.
3. Any cover: centred on the man himself, any height, any orientation. Behind a wall facing the
wrong way still beats standing in a field.
This is the change most likely to be visible in game.
## Fixed: bounding overwatch had never once run
Zero occurrences in a session full of firefights. Fire and movement is the flagship behaviour of
this mod and it had never executed on a server.
Bounding required Assault posture. The default posture is Auto, and Auto never produces Assault on
its own, so Assault existed only if a Game Master hand-set it on a specific group. Nobody does that
to a hundred AI. The feature was unreachable by construction, and its own code comment called that
"the cautious default", which is how it survived.
A feature nobody can reach is not cautious, it is absent. Every rail that matters is unchanged: not
garrisoned, not holding fire, not withdrawing, minimum group size, live contact in the range band,
and order arbitration.
## Fixed: one sighting produced dozens of identical orders
Contact sharing broadcasts to every nearby group, and each report ended in an investigate order
with nothing checking whether that group was already going there. The identical order for the
identical position was issued **42 times inside two milliseconds**, and 1,599 times across one
session. Every one re-tasked a group that was already moving, so squads never settled into the
search they had been given.
## Fixed: cover queries retried at ground with no cover in it, forever
One anchor was retried **226 times in a session**, each attempt spending a query per man from a
shared budget. That was budget the groups which could find cover then did not get, so the bug was
quietly making the feature worse for everyone else.
---
## New: the mod tells you whether it is actually working
Around twenty-five systems, and until now no way to tell which of them ever did anything. A system
that never fires writes nothing at all, so silence in a log could mean it worked and had nothing to
do, or that it was broken, or that its trigger is impossible on your map.
Every system now reports either that it did its job or that it declined and why. Printed every ten
minutes and on demand from a Game Master button:
```
[SilenceAI] Garrison: 14 fired
[SilenceAI] Ambush range trigger: NEVER FIRED. Last blocked by: released by
incoming fire before any enemy reached the trigger circle (5 times)
```
There is also a **reachability report** at boot, which states the mod's own preconditions in plain
sentences and warns when a system is switched on but gated behind something that makes it
unreachable. Every check in it exists because that exact bug has happened.
## New: movement that does not look mechanical
**They were walking in a line, and that was this mod's fault.** The travel formation was set to
Column, which in the shipped game is single file at 3 m spacing. Now Staggered Column, and varied
per group so two patrols crossing the same field do not look like copies of each other.
**Men within a group now walk at different speeds.** Every vanilla AI has identical maximum speed,
so a group holds its formation offsets perfectly, forever. Real sections string out and close up.
Default spread is about the difference between the front and back of a section on a long approach.
Suspended under fire.
**AI stop jogging everywhere.** Groups now walk when nothing is happening and run once it does.
Vanilla effectively always runs, including to objectives with no reason to hurry. Beyond looks,
this gives players time to get ahead of a patrol and set something up.
**AI stop standing upright in a firefight.** A cap on how upright a group may stand while it can
see an enemy, and while garrisoned. A cap and not an order: it does not force anyone down, it stops
anything standing them up.
**They no longer walk straight at you.** Approach paths during a firefight are now biased off the
direct line. This is combat movement only and does nothing to how a patrol walks to a waypoint.
## New: AI choose where to defend
Everything defensive answered "how do I hold this spot" and nothing answered "is this the right
spot". Groups anchored wherever they stopped walking, so a section that halted in a field dug into
the field.
A group about to garrison now evaluates positions around itself, facing where trouble is expected
from, and moves to the best one first. Scored on cover that can see the approach, and on elevation.
Every candidate is navmesh-validated, it runs once per group, and it never second-guesses a
scenario or Game Master placed defend waypoint.
Note: this currently only reaches groups a Game Master garrisons by hand, because automatic
garrison of waypointless groups is off by default. The boot report says so.
## New: ambush killzones can be placed
The hold-fire trigger was a circle centred on the AI, which is a proximity alarm rather than an
ambush. It can now be placed: on the group's waypoint, so you site a killzone by siting the
waypoint, or frozen at a marked point. Optionally sized by the waypoint's own radius, so you draw
the killzone on the map.
Plus a self-defence range, so a killzone placed two hundred metres away can never leave a squad on
hold fire while a player walks through the middle of them.
## New: freeze and weapons safe
Stop an AI moving, or stop an AI shooting, on one soldier, a whole group, or every AI on the
server. Useful for staging a scene, holding a QRF on a start line, or freezing a fight to sort out
a problem.
Honest caveat: the engine calls these are built on are only ever used on the local player in the
shipped game, so whether the AI input path passes the same gate is unverified. Each restraint
therefore applies several independent mechanisms. The weapons restraint has a proven fallback in
vanilla's own group hold-fire; the freeze does not, so it is the one to test first.
---
## Smaller
- Smoke and flares are one four-step control (Off, Rare, Normal, Often) instead of a toggle plus
two interacting numbers.
- Difficulty presets no longer stamp over your own tuning on every restart. They apply once.
- The config is provably read once per session, at boot, and never re-read.
- Clients no longer write a config file they never use into their own profile directory.
- The log is readable again. This mod was writing 7,727 of 9,116 lines in one session's script log.- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 11:12:33 GMT
- Last Modified
- Mon, 31 Aug 2026 11:12:49 GMT
1.0.23
119 Game Master attributes (was 104), 69 script files. Most of this release is not new features. It is four defects found by reading a live server's logs, three of which meant a system that looked fine had never actually run. Fixed: AI were not taking cover, 98% of the time One session logged "no cover found" 1,223 times against 22 successes. The mod's cover query was stricter than the shipped game's own in three ways, with no fallback when it found nothing. It required a sight line to the threat (vanilla's defend query does not), it centred the search on the group instead of the soldier so men competed for the same ground, and it rejected anything under 0.9 m so every low wall and window sill was excluded. There are now three queries in descending strictness, first to return wins. This is the change most likely to be visible in game. Fixed: bounding overwatch had never once run Zero occurrences in a session full of firefights. Fire and movement required Assault posture, the default posture is Auto, and Auto never produces Assault on its own. The feature was unreachable by construction. Fixed: one sighting produced dozens of identical orders Contact sharing issued the identical investigate order for the identical position 42 times inside two milliseconds, 1,599 times across one session, re-tasking groups that were already moving so they never settled into the search. Fixed: cover queries retried at ground with no cover in it, forever One anchor was retried 226 times in a session, spending shared query budget that groups which could find cover then did not get. New: the mod tells you whether it is working Every system now reports that it did its job, or that it declined and why, printed every ten minutes and on demand. There is also a reachability report at boot that warns when a system is switched on but gated behind something that makes it unreachable. New: movement that does not look mechanical They were walking in a line because the travel formation was Column, which is single file at 3 m spacing. Now Staggered Column, varied per group. Men within a group walk at different speeds. AI walk when nothing is happening and run when it is, instead of jogging everywhere. AI stop standing upright in a firefight. Approach paths during combat no longer run straight at you. New: AI choose where to defend Groups used to anchor wherever they stopped walking, so a section that halted in a field dug into the field. They now evaluate positions facing the expected approach and move to the best one first, scored on cover that can see the approach, and on elevation. New: ambush killzones can be placed Site a killzone by siting the group's waypoint, or freeze it at a marked point, optionally sized by the waypoint's own radius. Plus a self-defence range, so a killzone placed two hundred metres away can never leave a squad on hold fire while a player walks through the middle of them. New: freeze and weapons safe Stop an AI moving, or stop it shooting, on one soldier, a whole group, or every AI on the server. The engine calls behind these are only ever used on the local player in the shipped game, so each restraint applies several independent mechanisms. The weapons restraint has a proven fallback, the freeze does not. Smaller Smoke and flares are one four-step control instead of a toggle plus two interacting numbers. Difficulty presets no longer overwrite your own tuning on every restart. The config is read once at boot and never re-read. Clients no longer write a config file they never use. The log is readable again, down from 7,727 of 9,116 lines in one session.
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 07:40:19 GMT
- Last Modified
- Mon, 31 Aug 2026 07:40:36 GMT
1.0.22
fixing the AI pathing
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 05:39:37 GMT
- Last Modified
- Mon, 31 Aug 2026 05:39:53 GMT
1.0.21
Placing the ambush The hold-fire ambush released when an enemy came within the trigger distance of one of the AI. That is a proximity alarm, not an ambush. A real one is laid on a place: the section sits back from a road bend and springs when someone reaches the bend, not when someone reaches them. The trigger is now a circle with a position, and there are three ways to place it. Group is the old behaviour, measured from the men. Still the default, so nothing changes for an existing setup. Waypoint measures from the group's current waypoint. This is the useful one and it needs no new tool, because placing a waypoint is already how you tell a group where to care about. Put the section in the treeline, put their waypoint on the ford, and they hold until someone reaches the ford. Turned on server-wide it makes every scenario-placed defend waypoint a killzone for free. Mark freezes a point on one specific group. It is captured at the moment you select it, from the group's waypoint if it has one and from where they are standing if it does not, and the circle then stays put when the group moves. Select Mark again to move it. Also added: Killzone uses waypoint radius, which sizes the circle from the waypoint's own completion radius instead of the distance slider. That radius is the circle you drag when you resize a waypoint in Game Master, so with it on you are drawing the killzone on the map directly. Five new Game Master attributes, two on the group panel and three on the scenario page. They are appended to the end of the attribute list, so every existing attribute keeps the network index it had. 104 total. Ambush self-defence range A killzone placed two hundred metres away could otherwise have left a squad sitting on hold fire while a player walked through the middle of them. An enemy within the self-defence range of any member now releases the ambush regardless of where the circle is. Default 40 m, adjustable, 0 disables it. This joins the safety rules the ambush already had: incoming fire always releases, the hold-time failsafe always releases, and only groups that were on the vanilla default combat mode when the mod first saw them are touched at all. None of these controls can produce AI that stand there refusing to shoot back. Two limits worth knowing The trigger only fires on an enemy the group can perceive. A killzone the group cannot see into will not spring, so place them where they can observe it. Per-group trigger settings are runtime overrides and do not survive a restart, the same as every other per-group override. Waypoint mode is the one that persists, because waypoints are scenario data and are reloaded. Smoke and flares as a four-step rarity control Smoke and illumination flares were a toggle plus, underneath, a separate chance and a separate cooldown. That is the wrong shape for the question anyone actually asks, which is "can they do this less" rather than "which of these two numbers do I change, and how do they interact". Both now have a single four-position control: 0 Off, 1 Rare, 2 Normal, 3 Often. It scales the chance and the cooldown together, so one step genuinely means less smoke rather than the same rhythm with gaps in it. Rare maps to 0.35 rather than 0.5, because halving something that already had a two minute cooldown is not a change anyone notices. The separate smoke on/off toggle is gone, since position 0 is Off and two ways to say "off" is how a server ends up with smoke disabled for a reason nobody can find. An existing config with that switch off reads back as Off rather than silently switching smoke on again at upgrade. Flares gained a chance roll they did not have, placed after the check for whether anyone in the group is actually carrying illumination, so a group that was never going to fire does not burn the roll and sit on a cooldown for nothing. The underlying chance and cooldown are still editable in the config for anyone who wants a different base rhythm rather than simply more or less overall. Fixed: difficulty presets stamped over your own tuning on every restart Reported as "the server properties aren't saving, is it overriding from the file". It was, and that was a design mistake rather than a bug. The preset re-applied on every load, so any hand edit or Game Master change to a field the preset owns was silently discarded at the next restart. That is correct if you think of a preset as a permanent difficulty mode, and wrong if you think of it as a starting point. Everyone thinks of it as a starting point. Applying is now a one-time event. The file records which preset its values already reflect. When the preset name stops matching that marker, it applies once and the marker updates. From then on the file is the truth and your own tuning survives restarts untouched. Change the preset name when you want to start over from a different baseline. The Game Master slider forces a re-apply, because an admin who has just picked a preset expects it to take effect immediately. Changed: the config is provably read once per session Nothing was re-reading it mid-session, but that was true by accident rather than by design, and a re-read would silently discard whatever an admin had just changed at an unpredictable moment. The read is now guarded by an explicit one-shot flag, so even a recreated instance cannot consult the file a second time. The contract, now written down in docs/CONFIG.md: the file is read at session init and never again, and every live change is written out. Editing the file on a running server does nothing until restart, by design. Fixed: clients were writing a config file they never use Checking the above surfaced a real problem. A player joining a modded server had SilenceAI_config.json written into their own profile directory: a file they did not ask for, that nothing reads, describing settings decided entirely server side. Saving now returns early on a client, and the "could not create config" startup warning is server-only.
- Game Version
- 1.8.0.10
- Created
- Mon, 31 Aug 2026 03:16:39 GMT
- Last Modified
- Mon, 31 Aug 2026 03:16:55 GMT
1.0.20
allowing setting to be set prior to first boot on init, also fixing a garsion but to ensure sniper team isnt stolen for other tasking
- Game Version
- 1.8.0.10
- Created
- Sun, 30 Aug 2026 18:27:12 GMT
- Last Modified
- Sun, 30 Aug 2026 18:27:29 GMT
1.0.19
Everything since the last upload. Five releases in one.
=== THE AIMBOT PROBLEM ===
Three changes, all traced to specific constants rather than guessed at.
RANGING IN. Vanilla decides hit or miss with a single Gaussian roll sized by skill tier, and that
roll is identical on the first round of an engagement and the fortieth. That is why AI feel binary:
either they have you or they do not, and rounds never crack past and then get closer. Aim error now
scales with how long a shooter has been on you, so a squad opening up misses first and walks its
fire in over about four seconds. Being shot at becomes a process with a counter, which is breaking
line of sight and moving, rather than a dice roll. Settled shooters end up slightly better than
vanilla, so aggregate lethality is roughly preserved and only the shape changes.
LONG RANGE ERROR. Vanilla's distance curve clamps at 215 m and stays flat forever, so an AI
shooting from 600 m has exactly the same error multiplier as one at 215 m. Past a couple of hundred
metres, distance stops costing them anything at all. There is now a tail from 250 m to 700 m.
Everything below 250 m is untouched.
SETTLE TIME. The pause between acquiring a target and firing has a base of 0.4 seconds, and that
number is the whole "they snapped onto me instantly" feeling. It is now scalable, with separate
multipliers for machine guns and marksmen.
=== PERCEPTION AND HEARING ===
PERCEPTION MODEL. Vanilla picks recognition speed purely from threat state: SAFE 1.0, VIGILANT 2.5,
ALERTED 2.5, THREATENED 0.4. An AI actually under fire is six and a quarter times WORSE at
recognising people than one that is merely alert, so your first shot from range makes them blind to
you and they never find the shooter. Those four values are now configurable, with THREATENED
defaulting to 1.5 so fire sharpens them instead. Optional long range compensation offsets the
angular size falloff in the eye sensor.
GUNSHOT HEARING. Unsuppressed shots are audible to AI at 500 m and suppressed at 100 m, hardcoded.
Beyond that, unless the round passes within 13 m of somebody, no event is generated at all and the
AI are not ignoring your shot, nothing ever tells them it happened. Now configurable, defaulting to
900 m and 250 m. Vanilla's sound travel delay and supersonic crack handling are kept exactly.
FIXED: only the group leader could hear. Vanilla propagates a heard gunshot into group perception
only when the man who heard it IS the leader, so a squad whose leader is out of earshot learns
nothing even though half of it heard the shot clearly.
SUPPRESSOR AWARENESS. Vanilla uses the suppressed flag for one thing, picking 100 m instead of
500 m, so inside 100 m a suppressed shot gives your position away as precisely as an unsuppressed
one. A suppressor mainly removes the muzzle report the ear uses to take a BEARING, so suppressed
shots now register with a scattered position that grows vaguer with range.
=== BEHAVIOUR ===
SNIPER TEAMS. The game already tags snipers via EUnitRole.SNIPER and the only thing in the shipped
scripts that reads it is a voice line picker. Groups carrying a scoped rifle now get counter-sniper
behaviour: the marksman and a spotter are held out of the general advance, moved to a position with
an actual sight line to the estimated shot origin, and made to glass it through binoculars. They
wait rather than charging the bearing. Patience is the feature.
AI CALLOUTS. ECommunicationType ships 22 recorded voice lines and the shipped game only ever speaks
8 of them, most once. Eleven are now wired to the systems that were already doing the work: contact,
flanking, covering, moving, reloading, low on ammo, man down, target lost, clear. A squad that
flanks without a word appears to teleport around your side; one that calls it is a squad you can
counter-play by ear.
SEARCHING. Vanilla's memory is binary, with no state in which AI are WRONG about where you are.
Losing a contact is now a sweep of several points that can fail, a configurable share of them
deliberately in the wrong place, ending in a called clear and a genuine stand-down. Breaking line
of sight and MOVING now loses them; sitting still does not.
REACTING TO THE DEAD. EAIDangerEventType declares Danger_Deadbody, and that declaration is the only
reference to it in all 5,809 shipped script files. Nothing emits it, no reaction handles it, so
patrols walk through the bodies of their own squad without breaking stride. AI now notice friendly
dead, call it out, go properly alert and stay alert, and hunt outward from where the man fell.
CASUALTY EXTRACTION. Vanilla sends the medic to wherever a casualty was standing when he was hit,
which is usually the exposed spot, and that is how one casualty becomes two. A wounded but conscious
man now walks himself back to cover first, and only then is the squad told he needs treating.
Note this cannot drag anyone: there is no character dragging API in the game, so a fully
unconscious man stays where he fell.
RELOAD DISCIPLINE. A man who runs his magazine dry in contact calls reloading, and the nearest
teammate calls covering and raises his rate of fire. Teaches players that pushing on the pause is
a trap.
TACTICAL GRENADES. The throw-grenade-at-a-position message supports frags and is used in exactly
one place in the whole game, always with smoke. Nothing in vanilla ever decides to grenade a man
behind a wall. AI now post a frag at a known position they cannot see into. Heavily gated, because
the intent is pressure to move rather than death by grenade.
PEEK VARIATION. A defender who re-exposes from the same window every time is killed by holding a
crosshair there and waiting. Holding men now occasionally shift to a different position covering
the same threat.
BIPODS. Both bipod nodes ship and appear in zero of the 113 behaviour trees, so no gunner in
Reforger has ever deployed one. Machine gunners and marksmen now deploy when static and in contact
at range, and fold again when the group moves.
FORMATIONS. Vanilla sets formation once when a move activity starts and never changes it, so a
section walks into an ambush in the same shape it used on the road. Groups now travel in column,
shake out into wedge on contact, and go to line when assaulting.
=== ADMIN ===
DIFFICULTY PRESETS. One string in $profile:SilenceAI_config.json:
"m_sDifficultyPreset": "VETERAN"
CUSTOM, RECRUIT, REGULAR, VETERAN, ELITE, MILSIM. Applied at load, every restart, with nobody
logging in to set anything. Also a Game Master slider, and changing it there applies to AI already
in the field AND writes the name back to the config so it survives the next restart.
A preset owns the twenty or so dials that decide how DANGEROUS the AI are. Your config file still
owns which systems run, so "Elite but no artillery" is a valid combination that persists. CUSTOM
applies nothing and leaves existing configs behaving identically.
Milsim is deliberately not the most accurate preset. It sits close to Veteran on aim and well above
Elite on awareness and patience, because a milsim server should lose firefights to tactics rather
than to a laser.
AIRCRAFT CREW HANDLING. When another mod puts an AI crew in a helicopter, that crew is an ordinary
AI group and SilenceAI was running twenty-odd infantry systems against it. Telling a pilot to take
cover or mount a truck would make another mod's AI worse purely by having this installed. Crews in
aircraft are now detected and excluded from ground logic. Contact sharing is deliberately kept on,
because a helicopter is the best observer on the map and passing what it sees to the ground squads
costs nothing.
=== NOT INCLUDED ===
No AI helicopter piloting. Four gates block it and three are hard: no shipped helicopter carries an
AI control component and there is no runtime way to add one, the flying movement component exists
but appears on zero of 19,432 prefabs so has never been exercised, and there is no air navmesh.
There is also no cyclic input exposed to script at all, so you cannot pitch or roll a helicopter
even in principle. Vanilla helicopters have no gunner positions either.
No casualty dragging. There is no character dragging or carrying API exposed to script anywhere in
the game.
REAPER_AiHelicopters is licensed Arma Public License No Derivatives, so its code was deliberately
not read and nothing here is based on it.
=== GAME MASTER ===
89 attributes across three pages. Scenario changes persist to the config file and apply to AI
already in the field, not just the next spawn.- Game Version
- 1.8.0.10
- Created
- Sun, 30 Aug 2026 10:54:11 GMT
- Last Modified
- Sun, 30 Aug 2026 10:54:22 GMT
1.0.8
reupload with all change notes: v0.8 through v0.14 - Major update Large one. Fifteen new systems, one structural overhaul, and two long standing complaints traced to their actual cause in the base game rather than guessed at. === THE TWO BIG FIXES === PERCEPTION. Reported as "AI perception is poor past a few hundred metres and they never find a shooter who engages them from range". Range is only part of it. The AI eye is capped at 750 m on the character prefab, and recognition speed falls off with a target's angular size. Neither of those is reachable from script by any mod. The real cause is vanilla's perception table, which is picked purely from threat state: SAFE 1.0 VIGILANT 2.5 ALERTED 2.5 THREATENED 0.4 An AI actually under fire is six and a quarter times worse at recognising people than one that is merely alert. Your first shot from 400 m makes them blind to you, so they never locate the shooter. Those four values are now configurable. THREATENED defaults to 1.5 and ALERTED to 3.0, so taking fire sharpens them instead of blinding them. Optional long range compensation ramps recognition speed from 150 m to 600 m to offset the angular size falloff. Set 1.0 / 2.5 / 2.5 / 0.4 with compensation off for exactly stock behaviour. BUILDINGS. Reported as "AI will not take up positions in buildings". This was missing data in the base game, not a bug. Vanilla garrison searches for authored CoverPost positions. Of the 7,714 structure prefabs shipped in the game, six have one, and all six are military buildings. Not one ordinary house, shop, barn or apartment block. Garrisoning a normal town has literally nothing to find, so the group correctly gave up and stood around. SilenceAI now queries the engine's own navmesh cover instead, choosing cover that has line of sight to the threat, and locking each position so no two men take the same window. AI hold real buildings and shoot out of them. The authored path is still used wherever a map actually provides one. === NEW SYSTEMS === CROSS-GROUP CONTACT SHARING. Vanilla groups do not talk to each other at all, so six squads defending one base fight six separate wars and you peel them off one at a time. Contacts now pass to friendly groups within radio range, rate limited, carrying a position rather than perfect knowledge, so it reads as someone calling it in. INVESTIGATE. Groups that lose a contact go and look at the last known position instead of forgetting it happened. BASE OF FIRE. A group in contact detaches one member to suppress while the rest manoeuvre. Picks the machine gunner where there is one, never the medic, never a casualty, never the last man. BOUNDING OVERWATCH. Assaulting groups split in two, one element suppressing while the other moves, then they swap. NIGHT ILLUMINATION. Groups in night contact fire illumination flares. Vanilla's own flare feature works fine, it is simply almost never called; this calls it on a sane trigger. WITHDRAWAL. Groups that are genuinely beaten pull back rather than dying in place. AMMUNITION SHARING. Low on magazines they ask the squad before looting a body, which is both more realistic and much faster. CASUALTY RESPONSE. Groups react to taking losses rather than ignoring them. ARTILLERY FIRE MISSIONS. A group in sustained contact calls a friendly crewed gun onto the enemy. Off by default and deliberately grudging: 45 seconds of contact before anyone calls, four rounds per mission, five minute cooldown, and never onto a fight the calling group is standing inside. STATIC TURRET MANNING. Garrisoned and holding groups crew nearby unoccupied static guns and get off them again when the group withdraws. Capped so a squad does not vanish into turrets. PER-SOLDIER TUNING. Perception, alertness, aggression and skill can now be set on one individual, not just per group or server wide. TRANSPORT. Vanilla already has the whole mount, drive, dismount chain, but only ever drives vehicles explicitly registered to a group, which almost never happens, so patrols walk past perfectly good trucks. SilenceAI supplies that registration, then adds the discipline vanilla lacks: only mount when the trip is worth it, debus short of the objective, and bail out on sustained contact instead of riding into an ambush. Ground vehicles only, and off by default. There is no helicopter or aircraft AI anywhere in Reforger. This does not add flying. === STRUCTURAL === ORDER ARBITRATION. Nineteen systems were sending orders to the same soldiers through the same mailbox at the same priority with no scheme for who wins. That does not produce a broken mod, it produces a twitchy one: a man told to suppress, then investigate, then retreat, visibly dithering. Every order now passes through an arbiter that refuses anything less important than what the soldier is already doing. Ranking, highest first: Game Master order, withdraw, garrison, suppress, flank, investigate, illuminate. A human's explicit order beats everything. ONE CONTACT SWEEP INSTEAD OF FIVE. Five systems had each grown their own near-identical "where is the nearest enemy" routine, and worse than the waste, they disagreed: four different staleness cut-offs meant two systems could hold different views of whether the group was even in contact. Resolved once per group per tick now, with one definition of contact. STRUCTURED LOGGING. Every line is tagged with the subsystem that wrote it, so you can watch one system without the rest: [SilenceAI][Garrison] no authored CoverPost near <pos>, using navmesh fire positions instead [SilenceAI][Contact] reported contact to 2 nearby group(s) Four levels plus an optional single-subsystem filter. Errors and warnings always print. Log level is a scenario attribute, so it changes live rather than by editing a file and restarting. === GAME MASTER === 56 attributes across three pages: 38 scenario-wide, 10 on a selected group, 8 on a single soldier including hold position, occupy position and man turret. Scenario changes persist to the config file and apply to AI already in the field, not just the next spawn. === NOTES === Still script-only. No prefab edits, no behaviour-tree edits, no vanilla config overrides.
- Game Version
- 1.8.0.10
- Created
- Sat, 29 Aug 2026 12:18:16 GMT
- Last Modified
- Sat, 29 Aug 2026 12:18:35 GMT
1.0.7
v0.14 - Perception overhaul, building fire positions, transport FIXED: AI perception was poor at range, and worse still once you shot at them. Range is only part of it. The AI eye is capped at 750 m on the character prefab and recognition speed falls off with a target's angular size, neither of which any script mod can change. The real cause is vanilla's perception table, picked purely from threat state: SAFE 1.0 VIGILANT 2.5 ALERTED 2.5 THREATENED 0.4 An AI actually under fire is six and a quarter times worse at recognising people than one that is merely alert. Your first shot from 400 m makes them blind to you, so they never find the shooter. Those four values are now configurable. THREATENED defaults to 1.5 and ALERTED to 3.0, so taking fire sharpens them instead. Optional long range compensation ramps recognition speed from 150 m to 600 m to offset the angular size falloff. Set 1.0 / 2.5 / 2.5 / 0.4 with compensation off for exactly stock behaviour. FIXED: AI would not take up positions in buildings. This was missing data in the base game, not a bug in the mod. Vanilla garrison searches for authored CoverPost positions. Of the 7,714 structure prefabs shipped in the game, six have one, and all six are military buildings. Not one ordinary house, shop, barn or apartment block. So garrisoning a normal town has literally nothing to find. SilenceAI now queries the engine's own navmesh cover instead, choosing cover that has line of sight to the threat, and locking each position so no two men take the same window. AI hold real buildings and shoot out of them. The authored path is still used where a map provides one. NEW: Transport. Vanilla already has the whole mount, drive, dismount chain in MovePlanning.bt. It only ever drives vehicles explicitly registered to a group, which almost never happens, so patrols walk past perfectly good trucks. SilenceAI supplies that registration, then adds the discipline vanilla lacks: only mount when the trip is long enough to be worth it, debus short of the objective, and bail out on sustained contact rather than riding into an ambush. Ground vehicles only. All 113 shipped behaviour trees were checked and there is no helicopter or aircraft AI in Reforger at all. This does not add flying and does not claim to. Off by default. CORRECTION to the v0.13 notes: SCR_AIVehicleCombatActivity was described as dead code. It is not. It has no behaviour tree because it is pure script, and registering a vehicle to a group switches on vanilla's own mounted weapon crewing as a side effect. Seven new Game Master attributes, 56 total across three pages.
- Game Version
- 1.8.0.10
- Created
- Sat, 29 Aug 2026 12:11:05 GMT
- Last Modified
- Sat, 29 Aug 2026 12:11:19 GMT
1.0.6
changing up the AI behaviour allowing the AI to be able to hold positions and defend
- Game Version
- 1.8.0.10
- Created
- Sat, 29 Aug 2026 09:10:11 GMT
- Last Modified
- Sat, 29 Aug 2026 09:10:26 GMT
1.0.5
Despawn fixes and sniper observer FIXED: AI despawn range control did not work. Four causes, all resolved. The ambient patrol spawn point re-applies its own lifecycle distances over the top of anything set, at spawn, on save restore and on agent changes, so the setting was being reverted moments after it was applied. Vanilla also hard-clamps that system to 1000 m. Now handled at the source, so every ambient patrol picks the value up and it survives re-application. Groups were only tracked once they had members, but a dormant group has none. The groups that most needed longer despawn range were the ones the fix could not see. Groups are now tracked from creation. The mod's internal timer only started when the first AI spawned, so a world whose groups all begin dormant never ran anything. Ambient patrols could delete themselves permanently if a player reached their position while the members could not spawn. Now optional. NEW: Sniper observer. The engine keeps AI alive near an OBSERVER, not near a player, and observers can be added. While you are aiming, SilenceAI places a temporary observer out along the line you are looking down, so what you have in your scope stays alive and everything else costs nothing. Cost scales with player count rather than map size, so unlike raising the global despawn ring this can be left on. Set your engagement range under Game Settings, or per group in the group attributes.
- Game Version
- 1.8.0.10
- Created
- Thu, 27 Aug 2026 13:02:20 GMT
- Last Modified
- Thu, 27 Aug 2026 13:02:34 GMT