EXPBG Gamemaster Tools
by M.Pac
Contributors
K.Edgar
0.7.0
Game 1.9 (game 1.9.0.37). Needs EXPBG Gamemaster Data 0.1.9. - **Show of Force** (new Game Master module): F-15C jets or AH-64D Apaches make a low pass over the module, with flares, a sonic boom for the jets and radio calls, and enemy AI near the track may break contact. With the C-130J Super Hercules mod loaded the C-130J leads the jets. Jets hold one height all the way in, set over the highest ground of the run, with no roll and no drop, so at a low spot under a ridge the pass flies well above the module. Placing the module does nothing: place it, configure it, then turn on Enabled. The run starts after its delay and Enabled returns to off. - **Ambient Flyby** (new Game Master module): repeating passes by aircraft you choose. Placing it does nothing either: it runs while Enabled is on. - Both modules keep their settings through a save and load. - For mod makers: a lookup contract lets other mods use the aircraft without a dependency (`docs/AIR-ASSETS.md`). Not confirmed yet for the air assets: - The sounds have not been heard by anyone. The client log shows the engine sounds starting; nobody listened, and the C-130J pass has no engine sound of its own by design. - Not tested on this build: a second client, joining a game in progress, single-player, and frame times. - Level flight is only partly confirmed by eye: wings level and no dive in four captures taken from above the path. The flight path itself is checked by the path tests.
- Game Version
- 1.9.0.37
- Created
- Tue, 10 Nov 2026 00:36:51 GMT
- Last Modified
- Tue, 10 Nov 2026 00:37:00 GMT
0.6.7
Game 1.9 (game 1.9.0.37). - Lighter script start-up (no gameplay change): internal lists and registries are created on first use and kept in container types the base game already has, lowering the #InitGlobals start-up load that crashes servers with large mod lists. Saves, settings and behaviour are unchanged.
- Game Version
- 1.9.0.37
- Created
- Sat, 07 Nov 2026 15:48:10 GMT
- Last Modified
- Sat, 07 Nov 2026 15:48:37 GMT
0.6.6
Game 1.9 (game 1.9.0.37). - Lower startup script budget for large mod lists on game 1.9 (#InitGlobals); safe with the InitGlobals Budget Fix mod; no gameplay change. A big mod list on a Linux dedicated server could crash at script start in `#InitGlobals`, the one start function every mod shares. Two start values that are never read before they are set are no longer written at start (Garrison markers, Random Garrison). Constants were measured to cost nothing there and are unchanged, so other mods that read them need no update. Nothing in this mod reads a vanilla field the InitGlobals Budget Fix mod turns lazy, so it works with and without that mod.
- Game Version
- 1.9.0.37
- Created
- Sat, 07 Nov 2026 11:05:12 GMT
- Last Modified
- Sat, 07 Nov 2026 11:05:34 GMT
0.6.5
Game 1.9 (game 1.9.0.37).
- **Enemy Paradrop: soldiers no longer hang in the air** (tester report: "some hung in the air waiting for
parachutes, they also all dropped real quick"). A jumper more than about 1000 m from every player and Game
Master camera had his physics turned off by the engine, so he stayed in the air with no canopy until someone
came near, for up to five minutes. He then fell at about 54 m/s or was put on the ground, and many died on
impact although the drop still counted them as landed. It was never about RHS: USSR squads did the same. Jumpers
now stay simulated at any distance until they land. A soldier higher than 40 m is no longer taken as at rest.
- **Garrison guards react when you get in** (tester report: "i could open a door and stare at them and they
never heard me to turn around"). A guard's look at his post used to block every other look, so he never
turned round. A guard on a post or an indoor patroller now turns towards:
- a door an enemy opens near him. Only the nearest guards turn, at most 3 and at most half of those in
reach, so the others keep their windows;
- an enemy shot inside the building or within about 10 m of him;
- a player's footsteps: a player moving in the building within 12 m of a guard on the same floor, or
within 6 m of him from outside, is noticed by the nearest 2 guards. Walking and walking crouched count.
Moving slower than 0.8 m/s, such as a crawl, does not.
He stays on his post, looks that way for 12 s after the last noise and then goes back to his post facing;
a patroller holds his stop meanwhile. If he already fights that same enemy, his aim follows the noise.
- **What this does not do**:
- He only looks. The noise gives him no target, and he does not shoot through a wall or fire at someone he
cannot see.
- The footsteps rule is for players. An AI enemy's steps depend on the game's own hearing, which can miss:
in tests a walking AI enemy was sometimes not heard at all in 15 s.
- A guard already fighting one enemy may not turn for a second enemy who opens a door behind him. In tests
he sometimes turned after a few seconds and sometimes never did.
- Only an AI enemy's shot has been tested. A real player's shot could not be fired in the test, and
suppressed fire has not been tested.
- It has been tested in one house with one garrison, not with many garrisons at once or the full campaign
modset, and how it feels still needs a human playtest.
- Tested together with EXPBG Realistic AI 1.0.6 and without it. Saves and settings are unchanged; a garrison
saved before this version loads as before, and EXPBG CDF GM Save Compat needs no update.- Game Version
- 1.9.0.37
- Created
- Sat, 07 Nov 2026 08:52:37 GMT
- Last Modified
- Sat, 07 Nov 2026 08:52:45 GMT
0.6.4
Game 1.9 (game 1.9.0.37).
- **Unit Caching and Cleanup accept the game 1.9 items again**: game 1.9 moved almost every magazine to a
new item component and gave MG ammo boxes and canteens new ones, so Unit Caching refused stock soldiers
("Unverified component": Full caching fell back or was refused) and casualty cleanup could fail. The
1.9, RHS: Status Quo and ACE item components are now accepted: magazines, MG box gadgets, ACE action
helpers, RHS hearing protection, holsters and placeable or throwable items, and canteens while full.
Units cached before the update still restore.
- **Empty magazines**: game 1.9 drops an empty magazine at every reload; EXPBG Cleanup leaves it the
game's own short ground lifetime and never counts it as a ground item or a death drop.
- AI spawn importance was checked on game 1.9 (default Normal, no soft cap, no units evicted): no change
needed.- Game Version
- 1.9.0.37
- Created
- Fri, 06 Nov 2026 06:16:09 GMT
- Last Modified
- Fri, 06 Nov 2026 06:16:36 GMT
0.6.3
Game 1.9 compatibility (game 1.9.0.37). - **Loads on game 1.9 again**: the intel Read and Password dialogs and the AI surrender result dialog set their button labels in a way game 1.9 no longer allows, so the mod's scripts did not compile. They now use their own button presets with the same labels. - **Big modsets start again**: game 1.9 crashes at script start (`#InitGlobals`) when a modset uses too many different typed lists and maps in total. Gamemaster Tools now keeps its own objects in list and map types the game and the other EXPBG mods already use (130 of its own types down to 28), so a full campaign modset starts. Saves, settings and behaviour are unchanged. - **Read intel on a dedicated server**: picking up and reading an intel item opens the Read intel (and Enter password) window on the reader's own client again; since 0.5.11 it only ran on the server. - Needs EXPBG CDF GM Save Compat 0.2.4 or later together with it when CDF Game Master Save is used (the older compat no longer loads next to this version).
- Game Version
- 1.9.0.37
- Created
- Thu, 05 Nov 2026 23:52:48 GMT
- Last Modified
- Fri, 06 Nov 2026 00:59:55 GMT
0.6.2
- **Smooth transition weather routes** (owner report 2026-11-05): with the Atmospheric Weather Mod a
pick from Cloudy to Overcast went through Dry Thunder (Damp Fog): the clouds cleared, fog rose and
thunder rumbled before the clouds came back. Clear to Rain was one direct blend. The mod rewires the
weather states, and Smooth transition followed them. A smooth change now follows Gamemaster Tools'
own one-step links first, each way:
- Clear - Cloudy; Cloudy - Overcast; Cloudy - Rain; Overcast - Rain (Overcast and Rain count as the
same cloud).
- Light Rain - Cloudy or Rain; Overcast Rain - Rain or Dry Thunder (Overcast); Heavy Thunderstorm -
Rain.
- Extreme Wind (Rain) - Cloudy, Overcast or Rain; Extreme Wind (Thunderstorm) - Cloudy, Rain, Heavy
Thunderstorm or Dry Thunder (Overcast); Extreme Wind (Clear) - Clear or Cloudy; Extreme Wind (Cloudy)
- Clear, Cloudy or Overcast; Dry Thunder (Overcast) - Cloudy.
Other weathers go through the transitions the weather states allow; one direct transition is kept
rather than two of Gamemaster Tools' links, except the mod's Overcast to Clear, which is too sudden
(Overcast passes Cloudy). A change never passes through an Extreme Wind or Dry Thunder weather on its
way somewhere else. With the mod, no change passes more than two weathers in between. Without the
Atmospheric Weather Mod one route changes: Clear to Rain now goes Cloudy, Rain (no Overcast step),
because Cloudy to Rain is one step.- Game Version
- 1.8.0.13
- Created
- Thu, 05 Nov 2026 02:35:45 GMT
- Last Modified
- Thu, 05 Nov 2026 02:36:27 GMT
0.6.1
The first public release of the 0.6 line. It brings the new Enemy Paradrop module and the audit fixes (both listed further down, prepared as 0.6.0, which was never published on its own). With RHS: Status Quo loaded, the paradrop now shows its aircraft. - **IL-76 flyover**: when RHS: Status Quo is loaded and no paradrop aircraft pack is, every drop with Aircraft on Auto is flown by the RHS IL-76: USSR drops in the USSR livery, RHS Russia and other OPFOR factions in the Russian livery, BLUFOR and INDFOR factions in the UN livery. Gamemaster Tools still does not need RHS; without it nothing changes and the jump comes from an unseen aircraft. An installed aircraft pack (EXPBG Paradrop C-130) still comes first. - The IL-76 flies the drop's line at about 270 km/h (75 m/s), just above the jump height, with its engine sound (a new EXPBG four-turbofan engine loop from EXPBG Gamemaster Data 0.1.8, heard within about 1.5 km; RHS's own IL-76 engine sounds do not work in the current game). It appears 2 km before its approach and flies on 2 km past the end of its line, so it comes and goes beyond view distance, then disappears. - The paratroopers leave from just behind and below its tail, where the rear ramp opens, at the usual 0.5 s between jumpers and 2 s between squads, in step with where the aircraft really is. - With a visible aircraft a drop's approach starts at least about 30 s after it is called (the aircraft flies in from further out); the inbound message gives the time to the first jump as before. - Every player sees the aircraft at the same place, also when joining while it flies; it costs almost no network traffic (each player's game flies its own copy from the replicated flight line). It is only a picture: it cannot be hit, does not collide and never shows up in the Game Master's entity list or in saves. - RHS: Status Quo's own IL-76 sound files do not work in the current game: each time an IL-76 appears, a player's log gets one or two harmless errors from RHS about them (its parked-aircraft sound for the USSR livery, its engine sound for the Russian and UN liveries). The plane flies with the new EXPBG engine sound. - Needs EXPBG Gamemaster Data 0.1.8: the IL-76 engine loop, the module's card and icon, and the new laptop startup chime. ### Also in 0.6.1: prepared as 0.6.0, never published on its own The new Enemy Paradrop module, and the audit fixes first prepared as 0.5.11 (owner request 2026-11-04: audit every EXPBG mod, fix what was found, test in depth). The Workshop went from 0.5.10 straight to 0.6.1. ### Enemy Paradrop (new module) - **EXPBG Paradrop Here** (right-click on the ground) drops the infantry squad you pick in the "Choose Paradrop Squad" browser at the cursor; Game Properties > EXPBG Paradrop > Squads per pick sets the copies (default 1). - The **Enemy Paradrop** module (Systems) drops over its position: Manual (EXPBG Drop Now), when players enter its radius (once or repeated, with a cooldown and a maximum of drops) or on a timer after Arm. Squads are random from its faction (default USSR; with RHS its RHS AFRF paratrooper squads when RHS has any, else any RHS AFRF squads) or up to four chosen with EXPBG Choose Paradrop Squad. Any faction may drop. A module whose automatic drop is refused (water, squads, caps) disarms and says why once; when only the queue is full it tries again after 30 s or its cooldown. - The aircraft comes from the side away from the players, 4 km out at 300 m by default. The squads wait at a staging point at least 1 km from players with their AI off, then jump every 0.5 s and land around the drop zone after the wind; at most 32 soldiers per aircraft and two aircraft per drop. - With Grey Man's Chute Framework (optional) the soldiers jump by static line: the rig is put on and checked on the ground, their backpack comes back after the landing, a failed canopy is replaced on the ground (also a soldier found dead in free fall counts) and two failures switch the rest of the drop to ground insertion. Without it the squads land by ground insertion. With the optional EXPBG Paradrop C-130 a C-130 flies over (Russian livery except for US, NATO and BLUFOR factions); without it the aircraft is not shown. Neither is a dependency. - Once down the squads hunt the nearest hostile player squad (updated every 20 s, about 30 m off, at most two squads per player squad) with one Search and Destroy waypoint the Game Master sees; other orders, EXPBG Stop Hunting and any Game Master waypoint end the hunt. - EXPBG Abort Paradrop removes the soldiers not yet out of the aircraft. Caps: 3 aircraft at once and 64 soldiers staged or in the air (Game Properties), 8 drops waiting; a drop waits up to 60 s for the AI limit. A drop that needs more aircraft than Game Properties allows is refused at once, random squads stop at the Game Properties caps, and a quick drop's budget check counts every copy of the squad. - Saves never keep a drop in progress: a squad and its landed soldiers go back into saves together, once their backpacks are back; a load deletes every squad not handed back yet. The module and the hunting squads are saved natively (also by the save at a mission end) and in CDF Game Master Save (with EXPBG CDF GM Save Compat, no new version needed). - AI Surrender ignores squads still in the air; Unit Caching never puts staged, airborne or hunting paratroopers to sleep. - A waypoint a Game Master gives a squad that is still landing stays out of saves with the squad and goes back into saves with it (before, a save in that window could keep the waypoint without its squad). - Paradrop and Random Garrison squads share one spawn pace both ways: one squad every 1.5 s and at most two squads of both still filling at once. - Server cost: ground-insertion drops tick at 250 ms (no 100 ms exit window), more than 32 idle modules stop costing anything after one round, CDF-restored squad lists share one 1 ms slice a second (opened at their first squad check, which always runs: on a busy server the earlier work of a second could use up a slice opened sooner, no squad was ever checked and after two minutes the module dropped its saved squad list for random squads), a hunt retarget no longer grows with the square of the player count, a backpack comes back at most 8 items per step, and the player speed table keeps only the players of the last snapshot. A drop logs its first chute failure and its first replacement; its end line counts them all. The save hook is never added twice after an in-process restart. ### AI Global Skills - A soldier a Game Master possessed gets his skill, aim, spotting, ammunition policy and own rules of engagement back when the Game Master releases him or switches to another body. Before, he stayed on vanilla values for the rest of the mission. - CDF Game Master Save keeps the per-faction skill and aim by faction, not by faction position: the values land on the same faction after a faction mod is added or removed or the faction order changes. Older CDF saves still load. A saved faction the mission does not have, and more than 8 edited factions, each log a warning. A CDF save made with 0.6.0 and loaded with 0.5.10 or older loses only its per-faction skill and aim. - Long sessions: deleted squads and soldiers no longer pile up in the rules-of-engagement and skill lists (the squad list is capped at 512), and a mission restart in the same server process stops the previous mission's skill retries. ### AI Surrender - A prisoner counts once as a loss of his squad, also when he surrendered on his own chance: after a surrender round the rest of a broken squad rolls again on its very next casualty. - Prisoners sit down again after any number of Game Master moves or wake-ups. - Intel markers: a module placed after the last one was deleted keeps trimming the earlier markers, and a mission restart in the same server process starts the marker list empty (it could remove a new marker with the same number, for example a player's own). - The interrogation point no longer logs "RESOURCES (E): Unknown resource type, missing extension!" for every prisoner on every machine. ### Unit Scripts - Hold, Freeze or Stay mounted refused for a soldier's seat (for example Hold through a squad order on a Stay mounted gunner) no longer ends the script he is running. - A Game Master order for a saved Stay mounted gunner who is still waiting to be seated after a load replaces that saved order, so he is not seated afterwards. - The waiting Stay mounted notice is logged once, not every 10 s while no Game Master is connected. - The right-click Unit Scripts actions act only with the rights of the Game Master who sent them (a modified client could name another Game Master's player id). ### Garrison and Random Garrison - Large buildings are analysed in small server slices like houses: no long server frame from one analysis. The posts found are the same. - Lower server cost of the garrison wake checks and of Random Garrison's player checks with many players and guards. - Game Properties "Add Garrison posts" goes back to the mission header's value after a mission restart in the same server process; a save written while the old mission shuts down still keeps it. - Random Garrison fill level Varied judges a building on its role room: a building type that takes no squad fails at once and is put back like other failed types. - Random Garrison: "When the module is deleted: delete them" also works when the zone is deleted while a save is written (the deletion waits for the save to end). - Random Garrison: analysed buildings keep their analysis however long a Unit Caching Prepare for Save lasts. - Random Garrison: an AI-limit wait that was interrupted (a building deferred for players, the generation paused) starts again instead of stopping the generation at once, and the status no longer shows an old AI limit. ### Unit Caching - Lower server cost of the protection checks (players near cached squads) for far zones and of regrouping. - A Game Master without a character of his own who releases a possessed soldier keeps the nearby squads awake for 30 s, as one with a character does. - An AI Cache Zone placed in the World Editor keeps its authored wake radius, sleep radius and clear delay. - The UNIT CACHING CONTROLLER status line now shows on dedicated servers; the orange recovery icon names the controller's Prepare for save and Release blocked groups actions that really exist. - Lower cost when a Simulation-cached soldier's body parts change. ### Cleanup - No more server frame spike every minute that grew with the number of kept or vetoed remains (Game Master destroyed wrecks, remains near players): each frame rechecks at most 4 of them, and their retries are spread. - Setting a cap to 0, raising it, or switching off or raising a maximum age stops forced removals at once. - A removal the game did not confirm is retried also when nothing else is tracked. ### Ambient Destruction - Several zones building at once (joining near a cluster, a Game Master enabling several) spread their prop spawns and removals over frames. - Less server work per second for zones with bodies beside wrecks. - The turret and door parts of BMP-1 and T-62 wrecks get the simple collision too (they kept their detailed collision). - Workshop users now get the credits for the third-party art Ambient Destruction uses: a comment-only `Scripts/Game/EXPAD/EAD_DistributionNotices.c` in the package names More GM Props by microplastic9000 (Workshop 66A920DA264A9F98, APL) for the posed bodies and Placeables for GM byHeine by Heine.CRV (61110CC4F1FF9C8A, APL-SA) for the wrecks, fallen soldiers and blood decal. The `NOTICE.md` files beside those assets in EXPBG Gamemaster Data have no `.meta`, so they were never in its Workshop package (audit gamemaster-data-3). No behaviour change. ### GM Editor Streaming - A Game Master whose Edit or Building mode is taken away while the editor is open is released from the streaming (Vanilla mode: its map-wide load too). - Reopening the editor quickly, or Edit -> Photo -> Edit, no longer releases and streams in again the units around the camera. - Switching "Keep markers, modules, waypoints and players map-wide" off and on quickly no longer leaves some of them unloaded. - With Realistic Combat Drones, a drone, antenna or command station the Game Master is connected to is no longer released by the editor streaming. ### Intel Items - New laptop and tablet startup sound: an EXPBG chime from EXPBG Gamemaster Data 0.1.8 replaces the Windows XP startup recording, which was not ours and was never cleared for publication (audit gamemaster-data-1). Same sound resource, so nothing else changes; the packed credits (`EII_DistributionNotices.c`) no longer name the recording, and `tools/audio-data.json` and `tools/expbg-data.json` list the new sample and ask for EXPBG Gamemaster Data 0.1.8. - EXPBG Gamemaster Data 0.1.8 also drops a duplicate fallen-soldier texture and four unused images and a material (about 22 MB less to download); `tools/expbg-data.json` no longer lists them. Gamemaster Tools never used them. - Downloading the same rack again onto a laptop that already holds it saves nothing new (it was added a second time, or refused as full, when the laptop had been empty). - The password owner of a locked laptop is the soldier carrying it when it is locked, or the soldier given it while locked (an earlier owner was kept). - Reading intel is no longer sent to every client. - Tooltips: the rack range is 3 m; Shift+Enter starts a new line at the end of the text. Documentation: native saves keep no Intel Items state (only CDF saves do). ### Time and Weather, Persistent Battlefield, Advanced Briefing Map - Mission Intro no longer plays when a Game Master takes control of an AI, and that does not use up his intro; a player rejoining after a crash into his reserved character does not get it again. - Time Skip Action tooltip: the weather is not changed. - A possessing Game Master whose reservation is refused (kick, ban, voluntary quit with the option off) no longer leaves his own living character in the world; the possessed AI stays. - Briefing board: the game map view no longer reloads on every short look away, and marker changes are found without rebuilding text on every redraw. ### Validation - See [TESTING.md](docs/TESTING.md#0511-audit-fixes-owner-request-2026-11-04).
- Game Version
- 1.8.0.13
- Created
- Wed, 04 Nov 2026 21:15:09 GMT
- Last Modified
- Wed, 04 Nov 2026 21:15:35 GMT
0.5.10
Workshop listing only: a shorter, simpler description, and a second contributor who can publish updates. The mod's content is unchanged; only the version number differs from 0.5.9.
- Game Version
- 1.8.0.13
- Created
- Tue, 03 Nov 2026 18:31:25 GMT
- Last Modified
- Tue, 03 Nov 2026 18:31:43 GMT
0.5.9
User request 2026-11-03: the briefing map works with ACE Finger's map pointing and with Kova x ATAK markers, neither of them required. ### Features - Advanced Briefing Map: with ACE Finger loaded, holding its map pointing key while briefing shows a pointer with the briefer's name on the board (ACE's held-stick icon in orange, as ACE shows it on a nearby player's map), sampled every 100 ms; pressing and releasing the key go out reliably, and a released board keeps its picture without the pointer. ACE Finger is found by its class and input action names only, so it stays optional: without it nothing listens and nothing changes. The board's view update now carries the pointer, so a briefing needs every client on 0.5.9. - Advanced Briefing Map: two extension points for other marker systems. A compatibility addon adds pins after the briefer's vanilla markers (`EBM_BriefingClient.EBM_CollectPins`, with `EBM_BriefingBoardComponent.EBM_AddPin`; one 48-marker limit for both) and draws its own pin kind on every client (`EBM_BriefingBoardComponent.EBM_CreatePin`). Gamemaster Tools adds and draws no pin itself. EXPBG Compat - Mods & Vanilla 0.2.6 uses them for Kova x ATAK markers (GAZ-BRIEFING-BOARD), so Gamemaster Tools still needs neither ATAK nor the compat addon.
- Game Version
- 1.8.0.13
- Created
- Mon, 02 Nov 2026 17:52:09 GMT
- Last Modified
- Mon, 02 Nov 2026 17:52:17 GMT
0.5.8
Owner reports 2026-11-02 (live session).
### Fixes
- Game Master camera with GM Composition: GM Composition (Workshop `6962635CF9BB88A8`) mods vanilla
`SCR_EditorSnapManualCameraComponent` without its `[BaseContainerProps(), SCR_BaseManualCameraComponentTitle()]`
line, so the client log shows `Unknown class 'SCR_EditorSnapManualCameraComponent' at offset 440(0x1b8)` when the
editor camera loads and the camera loses vanilla's snap to the selected entity. GM Editor Streaming now restates
the decorator in an empty modded class (`EGMS_SnapCameraDecorator.c`, pinned in `Test-AttributeDecorators`);
GM Composition's override and vanilla's code are unchanged. **Load order:** this works only while Gamemaster
Tools loads after GM Composition (true on the owner's client on 2026-11-02). Gamemaster Tools does not depend on
GM Composition, so the order is not guaranteed. The 10.9 s client freeze and kick in the same frame of that log
are not shown to come from this error.
- Intel Items: the server rack download loop is 9 dB quieter (sample peak -24 instead of -15 dBFS, about 35 % of
the 0.5.7 level); owner report: still too loud. The sample ships in EXPBG Gamemaster Data, so this version
requires **EXPBG Gamemaster Data 0.1.6** (`tools/expbg-data.json`, `tools/audio-data.json`).
- Intel Items: an unlocked (formerly locked) laptop reported unusable for rack downloads. Not reproduced, and
the in-game message is not known; the unlock path itself is sound (the lock flags replicate, the rack accepts an
unlocked laptop). Two ways it could fail are fixed:
- **Full laptop:** a laptop whose own text plus the rack's is above 4096 characters (likely on a GM-written,
locked laptop) was refused only after the whole download, as "no room left". It is now checked when the
download starts. A carried USB drive is used instead; without one, the player reads at once "The laptop
has no room left for this intel: use a USB drive."
- **Placed laptop range:** a laptop placed by the rack counted only within 2 m of the rack's origin; now within
3 m, the player's own reach of the rack.
The tablet is still not a download device (only the armored laptop is), and a locked rack still needs its own
password ("Locked: enter the password").
### Validation
- Portable checks only. No native build, client, dedicated server or Workshop upload yet (owner in a session).
Still to do natively: open Game Master on a client with GM Composition and confirm no `Unknown class
'SCR_EditorSnapManualCameraComponent'` line; hear the rack loop level; laptop download after an unlock
(carried, placed 2-3 m away, and with a full laptop plus a USB drive).- Game Version
- 1.8.0.13
- Created
- Mon, 02 Nov 2026 05:34:56 GMT
- Last Modified
- Mon, 02 Nov 2026 05:35:06 GMT
0.5.7
Weather: only the Scenario Properties weather mode stays (#112). - Time and Weather: **the Weather Transition module (weather plan) is removed** (owner request 2026-11-01); the Scenario Properties weather mode (Off / Smooth transition / Random, 0.5.4/0.5.5) replaces it. Removed: its Systems entry, prefab, scripts (`ETW_WeatherModule`, `ETW_WeatherRunner`, `ETW_WeatherPlan`, `ETW_WeatherSequence`), the Start / Stop weather plan right-click actions, its attribute tab and rows, its persistence config, and the hooks that stopped it on other weather and wind changes. A Scenario Properties pick is Smooth transition or vanilla's own change; the module smoothing branch is gone. Missions or saves that placed a Weather Transition module no longer have it after loading. Time Skip reads the weather manager from the world and no longer finishes a weather change under its black screen. The Weather Transition name strings stay in the shared string table (unused). - Removed with it: the native weather fixtures `ETW_TimeWeatherGameplay` (which also covered Time Skip), `ETW_CloudProbe`, `ETW_CloudBlend`, `ETW_CloudRetarget`, `ETW_ShortWeather`, `ETW_WeatherOwnership` and `ETW_WeatherPlan`. `ETW_SmoothWeatherGameplay` stays. - Tests: `Test-TimeWeather` keeps the weather mode (with the 0.5.5 routing, retry and cancel checks), Time Skip, Intro and hook checks; `Test-Stability036` drops B6/B7; `Test-PerformanceGuards` drops the removed files' pins; `Test-CleanupModule` allows one Unreleased section above the release. README, ARCHITECTURE and GAMEPLAY follow. - Validation: portable checks and CI passed; the owner checked the assembled pack in Workbench (2026-11-01) and reported no problems. Native fixtures, connected clients and a dedicated server are not run.
- Game Version
- 1.8.0.13
- Created
- Sun, 01 Nov 2026 17:50:59 GMT
- Last Modified
- Sun, 01 Nov 2026 17:51:10 GMT
0.5.6
Log review of the live server session 2026-10-31 (Operation Watchtower oil rig). ### Fixes - AI global skills: a squad whose waypoint has no path no longer stops for the rest of the mission with a script VM exception. For an unknown move failure on a waypoint, vanilla's `SCR_AIProcessFailedMovementResult` calls `NodeError` (a VM exception and, on a retail server, a crash report) and then parks the squad "to allow debugging". The live server hit it twice for a Game Master RHS squad with a patrol waypoint on the oil rig (crash.log 16:44:53 and 19:42:33). That one branch now completes the waypoint and fails the action, as vanilla already does for a stopped move, so the squad goes on to its next waypoint; up to 10 `[EXPBG AI] unreachable waypoint completed` warnings name the squad and the move. A tree without a move result keeps vanilla's error; EXPBG Ambient Units still defuses its own squads first.
- Game Version
- 1.8.0.13
- Created
- Sun, 01 Nov 2026 04:10:34 GMT
- Last Modified
- Sun, 01 Nov 2026 04:10:42 GMT
0.5.5
Production review 2026-10-31 (owner request: every feature tested, no bugs, no performance impact).
### Fixes
- Time and Weather, **Smooth transition**:
- On a dedicated server, one Save that switched the Weather mode and picked a weather took the wrong
path (the server never sees the open dialog's mode), with a vanilla ERROR line per pick. A Game
Master's pick is now routed on the server after the rest of its Save, by the mode as it is then.
- A smooth change under way no longer outlives another weather change: any ForceWeatherTo (mission,
other mods, Off/Random) and any EXPBG Weather Transition or plan ends it, so its next step cannot
undo them.
- A reached weather now stays as long as that weather naturally lasts. With the 0.001 h stay of 0.5.4 a
held weather kept blending into itself, so the next pick waited up to 10 in-game minutes.
- A refused step start is asked again (up to three times, one second apart); after that the weather
holds where it is.
- The Off description now says that a Weather Transition module that smooths Scenario Properties
weather also blends picks in Off.
- Unit Scripts: a Frozen or posed soldier no longer stays blind after a native save, load and Release
(vanilla saves his perception factor 0, the lock's own value). More than 512 scripted soldiers no longer
make the whole Unit Scripts save record unreadable: at most 512 are saved, with one log line.
- AI Surrender: soldiers who leave a squad alive (a Game Master's split, the possessed-guard split) no
longer count as its casualties, so the rest of a split squad does not surrender after one loss.
- Garrison:
- A once-possessed guard leaves his garrison only when the Full sleep will really happen (the squad's
orders, AI settings and editor protection, every guard and every patrol are checked first). Until
0.5.4 a refused Full capture still let him leave for good.
- A large building's structure analysis a Game Master stopped waiting for keeps running for up to 10
minutes, as its message says; it was dropped after 2 minutes, and the next Add Garrison started again.
- A held or refused Full sleep no longer leaves patrol states behind; a patroller who later lost his
control (vehicle, possession) could be fixed to one spot for good.
- Release All Garrisons and Start / Stop weather plan: on a player-hosted server a remote Game Master's
request was judged by the host's own editor mode.
- Unit Caching: "Resume caching after the next successful save" no longer carries into the next mission.
- Intel Items: a rack password longer than 32 characters can no longer be typed (the box allowed 128 and the
server then kept the old password without a word); a refused rack password is logged once (never its
text). Shift+Enter starts a new line only when Enter itself is pressed (Shift with a focus change no
longer adds one).
- Security: intel title, text and debug, and the No GM Budget switches are written on the server only for
the editing Game Master (or a native session restore), as every other attribute of the pack already was;
vanilla trusts the player id a client sends.
### Performance
- Unit Caching: Enable all zones (and the automatic resume after a save) reads the world's AI once for
every zone instead of once per zone in the same frame. The GM map overlay redraws at most 20 times a
second, or at once on a pan, zoom or resize. Player possession checks look members up by entity
instead of walking every member per player.
- GM Streaming: a streaming centre jump (about every 500 m of camera travel) no longer re-walks every
waypoint, slot, comment, task and module for the map-wide light types in one tick.
### Validation
- See docs/TESTING.md, 0.5.5 production pass.- Game Version
- 1.8.0.13
- Created
- Sat, 31 Oct 2026 11:29:04 GMT
- Last Modified
- Sat, 31 Oct 2026 11:29:11 GMT
0.5.4
- Time and Weather: **Scenario Properties > Weather is now Off / Smooth transition / Random**, in place of
the vanilla Random weather checkbox (owner request 2026-10-30). Off and Random are vanilla. With Smooth
transition the weather stays until the Game Master picks one. Then the picked weather goes first in the
weather queue, ahead of the pick automatic weather would make, and starts with the engine's shortest blend
(about 10 in-game minutes). A weather the state machine cannot reach in one
transition goes through its own transitions (Clear to Rain: Cloudy, Overcast, Rain); the last one holds.
Picking during a blend lets it finish first. Works with weather mods that replace the state machine
(Atmospheric Weather Mod: 16 states). No module and no presets; a running Weather Transition module or
plan stops as for any other weather change. The mode is not saved: after a load it reads Random if automatic weather was on,
else Off.
- Smooth weather writes no log by default (`ETW_SMOOTH_LOG` in `ETW_SmoothWeather.c` turns its `[ETW] smooth weather` lines on).
- Validation: portable checks and Workbench compilation pass. Native `ETW_WeatherOwnershipGameplay.c`: 14 of 15
checks pass. The failing one ("B's Start is refused with a status") fails the same way on 0.5.3: the plan's progress
status replaces the refusal text before the check reads it. It is not caused by this change. No native fixture covers
Smooth transition yet; GM GUI and multiplayer are not run.- Game Version
- 1.8.0.13
- Created
- Sat, 31 Oct 2026 02:19:51 GMT
- Last Modified
- Sat, 31 Oct 2026 02:19:58 GMT
0.5.3
- Unit Scripts: **EXPBG Freeze is no longer in the right-click menu** of AI soldiers and squads (owner request 2026-10-31). Set Freeze in the EXPBG Unit Scripts tab of their Edit properties (double-click). Right-click keeps EXPBG Hold Position and EXPBG Release Unit Scripts. Freeze itself is unchanged: frozen soldiers in missions and saves stay frozen, and Release still ends it. - Game Master right-click menu: **Take control** (vanilla) and **Ziptie / Remove Ziptie** (from Bon Action Animations, when loaded) are no longer listed. Take control still works with its key (C by default); the actions themselves are untouched. Gamemaster Tools still does not depend on Bon Action Animations: the ziptie entries are matched by name. - Intel Items: the server rack download sound is about 1 dB quieter (roughly 11 % lower level), owner request 2026-10-31. Requires **EXPBG Gamemaster Data 0.1.5**; update both together.
- Game Version
- 1.8.0.13
- Created
- Fri, 30 Oct 2026 18:16:33 GMT
- Last Modified
- Fri, 30 Oct 2026 18:16:58 GMT
0.5.2
Owner report 2026-10-30 playtest. Requires **EXPBG Gamemaster Data 0.1.4** (the new download sound); update both together. ### Garrison: window guards spread out - Window guards no longer bunch up at one window. Each takes a window nobody in his squad watches yet, at least 3 m from every other post on his floor, and extra window guards go to the side with the fewest guards, at the post farthest from the others (with a little randomness). The squad still covers the sides one after the other, threat side first. - When no such window is left, the soldier patrols inside or waits on the stairs instead. Two men at one window happen only when nothing else is free. The posts of garrisons already in the building are never moved. - Random Garrison's "Varied" fill level uses the same rule. ### Garrison icons now show (fix) - **The 0.5.0 garrison icons never appeared on most servers.** A flag set when the previous world (the menu or startup world) was cleaned up stayed on for the whole mission unless a Unit Caching zone was placed. While it was on, the server refused every Game Master overlay request: no garrison icons, no Unit Caching Full-cache markers, and EXPBG Wake Garrison / Release Garrison were refused as "not a Game Master". The flag now ends when the new world has loaded, and the overlays refuse only during the world's own cleanup. - The house icon is larger and has a dark outline, so it stands out against sky, roofs and the editor map. A cached garrison is drawn bright with a thicker line, an awake one dimmer. Same audience as before: Game Masters with the full editor in Edit mode; players never see them. - The icons now hide with the editor's Hide interface toggle and come back with it. ### Validation - Portable checks, native compilation, 11 server fixtures and a new Game Master client run passed. The client run (server and client joined over the network, `tests/EXPG_GarrisonIconsClientGameplay.c`) failed on 0.5.1 (no icon in 300 s) and passes now: the Full-cached garrison's icon is drawn on screen, the rack sound plays at once 4 m from the rack and stops when the download ends. On the role-mix plans (1-12 soldiers, five seeds), window guards sharing a window fell from 38 to 15 pairs and guards closer than 3 m from 30 to 7. The Shift+Enter keypress was not driven in the test client; check it by hand. ### Intel Items - Intel text and server rack text: **Shift+Enter** now starts a new line in the multiline text box and keeps typing. Enter alone still finishes the edit, and a typed `[br]` still marks a line break anywhere in the text. - Server racks play a quiet dial-up style sound in a loop while a player downloads their intel. Everyone within about 8-12 m of the rack hears it. It stops when the download ends (finished, cancelled, aborted or interrupted). The sound is original EXPBG audio in EXPBG Gamemaster Data 0.1.4.
- Game Version
- 1.8.0.13
- Created
- Fri, 30 Oct 2026 16:00:00 GMT
- Last Modified
- Fri, 30 Oct 2026 16:00:07 GMT
0.5.1
- Weather Transition now lets an existing cloud blend finish before changing direction, including when it takes longer than the requested change time. Stop holds the weather reached by that blend. Automatic weather resumes through the native queue. These paths no longer reset the sky to a preset, which could make clouds and lighting jump. - Refused smooth starts retry the queued node up to three times, then stop the plan with a status message. The plan does not silently skip ahead or force an immediate change. Explicit Time Skip can still finish weather under its blackout. - New modules default to a 5-minute change, 5-minute stays and a 10-minute final Rain stay. Existing saved settings keep their times. The engine's minimum cloud blend still applies: at a normal 24-hour day, native weather clamps it to about 10 in-game minutes. - Validation: portable checks, native compilation and three bounded server fixtures passed (62 checks), including normal-day timing, five-step ordering, automatic return, retargets and Stop without detected jumps or immediate weather calls. Visual GM editing, connected clients and JIP remain separate acceptance gates; see `docs/TESTING.md` for receipts. - Dependencies are unchanged. ACE Weather/Core were inspected as references; no ACE code or dependency was added. EXPBG Gamemaster Data and the CDF companion need no update for this weather change.
- Game Version
- 1.8.0.13
- Created
- Thu, 29 Oct 2026 22:19:01 GMT
- Last Modified
- Thu, 29 Oct 2026 22:19:09 GMT
0.5.0
Owner report 2026-10-24 playtest. Update together with EXPBG CDF GM Save Compat 0.2.1 (Stay mounted
gunners kept in CDF saves) and EXPBG Ambient Units 0.1.10 (civilians after a mission restart).
**Server operators:** with older builds, a mission restarted inside the same server process (the
endgame restart, a scenario restart, a native save load) froze every garrison: cached garrisons
did not wake and new ones never became active, for as long as the previous mission had run. This
build fixes it. With an older build, restart the server process (not just the mission) after an
endgame.
### Garrison: mission restarts
- **Garrisons work again after a mission restart.** When a mission was restarted inside the same
server, cached garrisons did not wake and new garrisons never became active. This lasted as long
as the previous mission had run (3 h 22 min in the playtest). The garrison bookkeeping now goes
with the old mission's world and starts afresh, and a safety check catches a restart that slips
past it. A save made during the restart still keeps the old mission's garrisons.
- The same restart problem is fixed in:
- Random Garrison (spawn pacing, save hooks);
- Ambient Destruction (wake and sleep checks waited, and the old collapse history went into the
new mission's saves);
- Unit Scripts;
- AI Global Skills (the old mission's skill settings carried over; after a restart without a
save load the skills start from the game's defaults, as in any new mission);
- Intel Items (the old mission's passwords were listed);
- Unit Caching (a wake budget edge case).
- Garrison log lines no longer print as `string line = '...'`.
- Add Garrison refusals at the building limit now say which limit is full and why. Full-cached
garrisons no longer take one of the 64 building-plan places. At most 64 buildings still hold
garrisons, which is what a save keeps. No speculative neighbour analysis starts once 60 places
are busy.
- New log lines: one `[EXPG SLEEP]` / `[EXPG WAKE]` line per Full sleep and wake of a garrison,
with the reason and the nearest player's distance (at most 30 a minute); an `[EXPG MANAGER]`
line when the garrison bookkeeping starts; a warning when garrisons stop seeing players.
### Garrison: icons for Game Masters
- Every garrisoned building now shows a house icon in the 3D editor view and on the editor map,
also while the garrison is Full cached and nothing of it is in the world. The icon reads
"Garrison | 12 AI (x2)" (living AI, squads) in the faction colour, bright while cached and
dimmed while awake, with its state (Full cached, Simulation cached, loaded and analysing, waking,
release pending, awake, awake for editing) and where it came from (Add Garrison, Random
Garrison). A corner line counts "Garrisons: N cached / M awake".
- Labels show up to 1500 m, icons at any distance, up to 512 buildings.
- Only Game Masters with the full editor in Edit mode see them, never players.
- Nothing is added to the world or the save, so the icons are always right after a load, a
wake, a release or a Random Garrison Clear.
- Right-click a marked building:
- "EXPBG Wake Garrison" wakes its garrisons now and keeps them awake for 5 minutes once on their
posts, so their squads can be selected and edited; afterwards they cache again as usual.
- "EXPBG Release Garrison" wakes them and returns their squads to normal AI.
- "EXPBG Hide Garrison Icons" / "EXPBG Show Garrison Icons" turns the icons off or on for you
for the session.
### Garrison: varied posts
- EXPBG Add Garrison no longer fills a building's posts one after the other. Each soldier gets a
duty: one watches the main door, the others cover windows on different sides of the building
(the side facing the nearest enemy player first) and some patrol inside; larger squads add a
back-door watcher and a man on the stairs. A little randomness picks the windows and stops, so
the same house is not posted the same way every time, and at least a quarter of the building's
posts stay free.
- A squad added to a garrisoned building covers what nobody covers yet (the main door, the sides
without a window guard, a back door), then patrols, sometimes puts one man outside by the main
door, then doubles windows. It never takes a post another guard holds (awake or cached), the
posts of fallen guards stay empty, and the garrisons already there are never moved. A squad
that must join a full building (no free building nearby has room) stands around it once the
building's room is used. A squad wiped out frees its posts for the next squad.
- The reply says what the soldiers get, and a note with each duty follows once the posts are given
out.
- Game Properties > EXPBG Garrison > Add Garrison posts switches back to "Fill posts in order
(0.4.4)" for squads added from then on; saved with the mission.
- The main-door watcher may throw a frag at a close enemy even with "Frags: not from window or door
posts".
- Duties are saved with the garrison (native and CDF saves) and never chosen again on a wake or a
load; older saves and garrisons posted in order load as before (no duties, no main-door frag).
### Random Garrison
- New fill level "Varied": every squad gets duties as with EXPBG Add Garrison (door watchers and
the door cap apply; the zone seed repeats them). A building takes up to three quarters of its
posts plus its patrol stops, never more than its posts. The default fill level stays Today.
Buildings with only 3-5 posts are often too small for a fire team at this level.
### Unit Scripts
- **Stay mounted gunners are put back on their guns after a load.** In the playtest, 38 gunners
came back standing next to their static weapons after the CDF load and lost Stay mounted 90 s
later. CDF does not keep a soldier's seat, and the CDF Vehicle Crew bridge had not saved these
seats (fixed in EXPBG CDF GM Save Compat 0.2.1).
- Now a saved Stay mounted gunner who stands after a CDF or native load is seated again by his
own unit script. After about 20 s (so the crew bridge goes first), he goes onto the nearest
free static weapon seat within 3 m of where he sat, retried until the 90 s limit.
- Nobody is ever pulled out of a seat. A gunner moved more than 50 m away is left where he is.
- Existing saves benefit without being saved again, wherever the gun is still there after the
load.
- When gunners still cannot be seated, the Game Masters get one notice per load naming their posts
(map grid and metres). If no Game Master is connected yet, the notice waits for the first one.
- The `[EUS] restored ...` log line now counts every reason a saved script was not restored, not
only the last one. It also says how many gunners Stay mounted seated itself, and counts gunners
the crew bridge or the Full wake gave Stay mounted on their seat apart from the saved scripts.
- New seam for other mods: `EUS_Manager.ExpectSeat(soldier, weapon, seconds)` tells Unit Scripts
that another system is seating this soldier or will fill this weapon.
- **New "EXPBG Hold/Freeze stance" row** (soldier and squad) in the EXPBG Unit Scripts tab: Auto,
Stand, Crouch or Prone. Hold or Freeze then keeps that stance. A held soldier with a rocket
launcher in hand may crouch to fire it and lies down again afterwards. Prone inside buildings
can clip into walls; Crouch is safer indoors.
- **New "EXPBG Combat release" row** (soldier and squad): Off (as before), Release in combat, or
Release in combat, hold again when calm.
- When a soldier with this option comes under fire close by, is hit, or has an enemy player (or,
for Hold, his own target) within 30 m, his whole squad returns to Normal AI.
- With "hold again when calm", the squad walks back to its spots and holds them again once it
has been calm for 60 s.
- Seeing an enemy far away does not release anyone.
- The release arms only once the soldier is calm.
- Game Masters get one notice per squad when it is released and when it is back on its spots.
- Both choices are remembered for the soldier until Normal AI or Release, also for the right-click
Hold and Freeze, and are saved with the mission.
- Hold position no longer stands a crouched or prone soldier up when a combat move he may not make
asks him to stand, and he no longer side-steps around a friend in his line of fire (the Garrison
fix from 0.4.4).
- **Saves and downgrades:** a soldier with one of the new choices is saved in a new row format
(version 3); every other saved script stays in the old format. An older Gamemaster Tools cannot
read a native save that contains such a row (it drops all saved unit scripts of that save); with
CDF it drops only that soldier's script.
### GM Editor Streaming
- **Camera radius now follows the Game Master's camera.** In the playtest, the forced area stayed
where the editor was opened for a whole session while the camera was 6-9 km away.
- The game moves an editor object to the camera on the Game Master's PC and expects the server
to see it move. On the server it stopped moving.
- The Game Master's PC now reports its camera position itself: at most once a second, and only
after the camera moved 10 m (or every 5 s). The server takes at most two reports a second.
- The `[EGMS] stats` line ends with `camera=1` when the reported camera is in use.
### Tests
- New portable guards and native fixtures for every change above, among them a real in-process
mission restart (`tests/EXPG_WorldRestartGameplay.c`), the Stay mounted remount, combat release,
garrison icons and the varied duties; results in docs/TESTING.md.
- `tests/EXPG_CdfFallbackGameplay.c` expects the 500 m sleep default (since 0.4.0).
`tests/Run-Gameplay.ps1` stops its server at once on a compile error or an assertion, names the
default fixture for the engine slot and has `-PostsInOrder`.
- Still to check with a Game Master client: the garrison icons and their right-click actions, the
new Unit Scripts rows and notices, the Add Garrison posts switch, and the reported camera on a
dedicated server.- Game Version
- 1.8.0.13
- Created
- Sun, 25 Oct 2026 02:19:18 GMT
- Last Modified
- Sun, 25 Oct 2026 02:19:28 GMT
0.4.4
Owner reports of 2026-10-23 and 2026-10-24. ### GM Editor Streaming - **The default mode is now Camera radius with a 1000 m radius** (was Vanilla with 1500 m). On a busy map Vanilla forces every unit, body, wreck and prop on the map onto the Game Master's PC at each editor open; a Game Master who had placed a very large number of units crashed his own client that way and could not get back into the editor until another Game Master switched him to Camera radius 1000 m. Vanilla stays available in Game Properties > EXPBG GM Editor Streaming. Servers that set `m_EGMS_Settings` in their config, and Game Master overrides saved with a mission, keep their values. ### Ambient Destruction - Wrecks now carry the static entity flags of the game's own placed wrecks (`Props_Base.et` / `Wreck_Base.et`, `Flags 0x403`). 21 of the 25 wreck prefabs lacked them: all Heine wrecks and the BMP-1, BTR-70, M113, M151A2, M998, T-62, UAZ-469 and Ural ones, turret and door parts included. Looks and saves are unchanged. This is parity with vanilla, not a proven fix: the frame-rate drop players reported near wrecks (2026-10-23) still needs a client test. - Every machine, server and each client, now reports in its console log whether a wreck got its simple box collision (#47): - one `[EAD] wreck box collision applied` line for the first boxed wreck; - up to three `[EAD] wreck kept its detailed model collision` lines when no box could be added; - up to three `[EAD] slow wreck spawn` lines for spawns of 15 ms or more, with the prefab load's share. The counts start again in each new world. The server's `[EAD WORK]` line (diagnostics level 1+) adds `boxWrecks`, `detailedWrecks` and `wreckPeakMs`. A new native fixture, `tests/EAD_WreckCollisionGameplay.c`, checks every wreck's boxes, fire/view-only model geometry and static flag. ### Time and Weather - **A weather change no longer starts with an immediate weather change** (natively proven: the five-step plan fixture made none, against one per cloud change in 0.4.3). Owner report 2026-10-23: the clouds still flickered on clients during a weather plan. - Before: every cloud change started with an immediate change to the weather already in place (the "pin"). The game recomputes the weather after such a change, and with Atmospheric Weather Mod's cloud variants it can restart the clouds on their start variant, although their overcast does not move. - Now, on a settled, held sky, the next weather goes first in the game's weather queue and starts blending at once from the sky in place. - The pin remains only as a fallback, for when the game refuses that start or does not make it within 2 s. The server log says so when it happens. - A held weather that is blending into itself is waited out first. - Automatic weather (After = automatic, Return to automatic weather) still pins. - After held changes, the weathers left queued are dropped before automatic weather resumes, so earlier weathers never play again. - A blend under way is still never cut short. - The server line "transition done ..." ends with "immediate changes N". - Tests: - `tests/ETW_CloudProbeGameplay.c` has an insert case (`[ETW PROBE INSERT]`), with variant readings around a pin and an insert. - The weather plan gate `tests/ETW_WeatherPlanGameplay.c` fails on any immediate weather change during a plan (the runner's count and the engine's own callback). It needs at least three cloud changes started through the insert and records variant restarts. - `tests/ETW_CloudBlendGameplay.c` records which branch the pinned case took, and checks that automatic weather leaves no earlier weathers queued. - `tests/Test-TimeWeather.ps1` pins the new start, its fallbacks, the wait and the queue drop. ### Garrison From the EXPBG Realistic AI playtest of 2026-10-23 (its 0.2.2 plan, step 15). - **Guards are no longer stood up under fire.** A combat move a guard cannot make (he holds his post or patrol) became a stance change to the move's end stance: 330 of 412 such moves asked for standing, so guards stood up while being shot at. Now a crouched or prone guard is never stood up by such a move (a prone guard may come up to a crouch when the move ends crouched, as when the enemy closes in), a standing guard takes the move's end stance, and a move away from danger leaves him at least crouched. - **No garrison soldier goes prone** (owner decision of 2026-10-24). Window guards now stand or kneel (they always stood, rule of 2026-10-11); every other post and the interior patrollers stand or kneel too, from the moment they take their post; door watchers keep their setting within stand and crouch (Native now means stand or crouch as the AI picks, never prone). - **No friendly-fire dance.** A guard with a friend in his line of fire no longer turns the AI's side-step into a stance change twice a second (two guards sent 42 and 39 in 16 s); the side-step is dropped and he waits for a clear line. A side-step already running when he takes his post is replaced by holding his stance. - **No stacking.** EXPBG Add Garrison on a garrisoned building that would then hold more than about one guard per 9 m2 of indoor floor garrisons the nearest free building within 60 m that has room for the whole squad instead, as its own garrison, and the reply names it (distance and direction). While such a building is still being analysed the picker stays open and asks to choose again in a moment (at most 20 s after its analysis started); with none the squad joins the building as before and the reply says so. A building that filled up after the picker opened has its neighbours analysed at the first choice. The neighbours are analysed one at a time, after the analyses Game Masters and loaded garrisons wait for, and a building another Game Master has a picker open on, or another request waits for, is never chosen. The server's `added to building` line now ends with the building's room. In the playtest a second squad put twelve guards in a small village house and one squad was wiped out in about 29 s. - **Garrison soldiers never throw smoke, also when another AI mod adds the throw directly** (EXPBG Realistic AI's squad brain does): such a smoke throw fails at once. Frags and flares are unchanged. - **Other mods can recognise a garrison squad without depending on Gamemaster Tools:** while a squad is a garrison its group settings hold an `EXPG_GarrisonSquadSetting` (looked up by class name; cleared on release). It has the origin of a prefab default, which Unit Caching's Full capture leaves out, so garrisons are still Full cached; the squad a Full wake recreates is marked again. Each held soldier's movement-speed setting is the post's or patrol's. - Tests: `tests/Test-GarrisonPostReaction.ps1` (new, portable), seven more vanilla pins, the new world query pinned in `tests/Test-PerformanceGuards.ps1`, and the native fixture `tests/EXPG_PostReactionGameplay.c` (not run yet; it also Full caches a flagged squad).
- Game Version
- 1.8.0.13
- Created
- Sat, 24 Oct 2026 08:51:38 GMT
- Last Modified
- Sat, 24 Oct 2026 08:51:46 GMT
0.4.3
- **The Game Master's own PC spends less time on editor icons.** Each frame the editor repositions the icon of every group, vehicle, prop, waypoint and nearby soldier around the camera, so that work grew with every AI placed (live report 2026-10-22: GM script time kept rising while 425 AI were spawned). While the camera stands still, icons farther than 200 m now move in one frame of four, each in its own frame; nearer icons, icons on the screen edge and every frame in which the camera moves are repositioned exactly as before. Measured on a Game Master client joined to a local server with 400 AI and 10 cars (137 icons on screen): the icon loop went from about 225 to 135 microseconds per frame with 96 icons beyond 200 m (40 % less) and to 100 with 129 beyond 200 m (55 % less); after one cycle every icon stood exactly where vanilla puts it, and while the camera moved every icon was repositioned in every frame. Only the Game Master's machine runs it; `-egmsIconThrottleOff` gives vanilla back, `-egmsIconStats` logs an `[EGMS ICONS]` line every 30 s. - The vanilla warning "tried to set the UI color but the EditableEntity is not using SCR_ColorUIInfo", printed each time such an icon was created (about once a second for the Game Master on the live server), is printed once per session. - Tools: the build and release scripts take the machine-wide engine slot (test servers may run beside a build) instead of refusing while any test server runs.
- Game Version
- 1.8.0.13
- Created
- Fri, 23 Oct 2026 06:35:39 GMT
- Last Modified
- Fri, 23 Oct 2026 06:35:46 GMT
0.4.2
Fixes from the first native run of the 0.3.6, 0.4.0 and 0.4.1 fixtures (2026-10-20). - **EXPBG Cleanup removes one remain per server frame.** A body's removal costs about 2 ms on a diagnostic server, and the 1 s tick removed up to four bodies (and their dropped weapons) in one frame: a 9 ms frame every second while a fight's bodies drained. The tick now only decides what may go; the removals follow one per frame, in the same order and at the same rate (bodies first, then a wreck, then items). The stats line shows them as `delSlices`, `delUs` and `delMaxMs`. - **A soldier killed while his squad is Simulation cached is removed** (#109). The engine never completes the death of a character whose AI sleeps at the lowest detail level (no death animation, he counts as alive, his squad woke into "Regroup held" and EXPBG Cleanup never saw a body). Such a casualty now drops the intel he carries and is removed a second after the hit; his squad stays cached and later wakes without him, with no recovery. - **Garrison building analysis is back to its 0.3.x speed.** Since 0.4.0 the analysis ran in small slices that each counted as a full millisecond, so on a server running at 60 FPS a town house took 88 s instead of about 21 s (and the CDF GM Save Compat garrison round trip timed out). Slices may now do more work each, and their time is counted as measured. - **Unit Caching enrolls squads in its ledger at most 6 ms per tick.** Fifteen squads placed at once made four 74 ms ticks in a row; they are now spread over more ticks. - **Ambient Destruction** also reads a building's Game Master author from the editable parent it belongs to (a building inside a composition), not only from the building itself. - **GM Editor Streaming:** the `seedLeft` count in its stats line no longer goes negative once the first indexing pass is done. - **Garrison:** a building accepted for background preparation no longer reports the "64 buildings are already being analysed" refusal text. - Tests: several new fixtures of 0.3.6 and 0.4.0 did not compile (an integer modulo inside a position argument) or rested on wrong assumptions (a prisoner moved with a transform instead of a teleport, a second house spot that cannot be garrisoned, a vanilla house that is not placeable, the rifle a dying soldier drops, eight background analyses in 330 s, the churn cycle result line); fixed. The fixture runner accepts a fixture's deliberate error (`-AllowedErrorPattern`) and a frame cap (`-MaxFps`).
- Game Version
- 1.8.0.13
- Created
- Mon, 19 Oct 2026 21:01:22 GMT
- Last Modified
- Mon, 19 Oct 2026 21:01:28 GMT
0.4.1
EXPBG Cleanup fixes from the 0.4.0 release gates (#107). - **The body cap counts exactly.** A body EXPBG Cleanup removed stayed in the live count until its next check, so the cap removed a few too many (47 left where the cap is 50). The count now drops at the removal. - **Cap and maximum age work at full speed near players.** A body the cap or the maximum age had marked lost the mark at each check while a player was within the 100 m radius, so the next second marked it again. It now stays marked while nobody is within the 30 m guard (wrecks 50 m), and while such a backlog drains up to 8 bodies a second are removed instead of 4 (at most twice the setting, still spread over seconds, never inside the guard). - **Bodies first, also for the first wreck.** A wreck now waits while bodies are being removed and for one check round after. The "one wreck at least every 30 s" guarantee counts from the moment wrecks start waiting; it used to count from the last wreck removed, so the first wreck of a session went at once. - **Abandoned vehicles (option, off by default) are tracked by EXPBG Cleanup itself:** when the last occupant leaves a vehicle, and when the game's garbage system is asked to take an intact vehicle, before any lifetime test (other mods, such as KeepAbandonedVehicles, may refuse that insertion). A supply vehicle is now one that carries supplies: most cars have an empty supplies cargo space, the UAZ too, and were kept for that. A vehicle loaded with supplies or placed by a Game Master is still kept, also when that happens after it was left. - Tests: the cleanup fixture places its Unit Caching zones, cap bodies and vehicles on dry land (they were in the sea, so the squads swam and never cached and floating bodies drifted), adds a car a soldier drives and leaves, and checks a wreck that becomes ready in the middle of the body removal.
- Game Version
- 1.8.0.13
- Created
- Mon, 19 Oct 2026 05:26:23 GMT
- Last Modified
- Mon, 19 Oct 2026 05:26:31 GMT
0.4.0
Deep dive of 2026-10-18, work items W1 and W2 and batches GT-A, GT-B9, GT-C and GT-D (owner decisions D2,
D3, D4, D5, D7, D10). Live server
2026-10-17: the streamed object count climbed from 575 to 4,266 over the evening while AI fell;
our own Unit Caching and Persistent Battlefield kept bodies and wrecks far longer than vanilla, and the
Game Master editor loaded every unit, body and wreck on the map onto the Game Master's PC at each open.
This release contains 0.3.6.
- **New module: EXPBG Cleanup (Game Properties).** Bodies and wrecks are removed by map-wide rules,
with or without Unit Caching zones:
- AI bodies: once dead 60 s and no player within 100 m for 60 s (first);
- player bodies: once the owner spawned again or left (at most 15 min), dead 5 min, then the
same 100 m / 60 s rule; never counted in the cap;
- wrecks: once destroyed 5 min and no player within 200 m for 30 s (after the bodies); a wreck
with a body still sitting in it waits until that body has gone by its own rules (a player
waiting to respawn keeps his body), so no body is ever removed together with a wreck;
- aggressive caps on by default (D4): at most 150 AI bodies and 40 wrecks, no AI body older
than 30 min and no wreck older than 60 min; caps and maximum ages never remove anything
within 30 m (wrecks 50 m) of a player;
- the weapon a soldier drops when he dies goes with his body; intel he carries (EXPBG intel
items, drives, vanilla valuable intel) is dropped on the ground first, then the body goes
(D2); a body whose intel cannot be dropped stays (the drop is retried every 5 minutes) and is
never removed with its intel, also not by the game's own garbage system;
- kept: bodies and vehicles a Game Master marks "Never auto-clean" (new Edit attribute), wrecks
a Game Master destroyed (decor), Game Master placed and supply vehicles, a possessing Game
Master's own parked character (counts as a player, D5), any player's controlled character;
kept remains never stop the caps and maximum ages from working on the others;
- off by default: loose ground items and abandoned intact vehicles (20 min, 300 m).
Players are the characters they control, the vehicles they sit in and the AI they possess; a
Game Master's free camera is not a player, so bodies he only watches go after 60 s.
Server settings: `game.gameProperties.missionHeader.m_ECL_Settings` in the server config (only
the keys you change; first mission header only). Game Masters change the main rules live in
Game Properties > EXPBG Cleanup (server-side, the editing Game Master only; kept in native saves;
a fresh mission starts from the server settings). Rollback: `m_ECL_Settings.m_bEnabled false`
(or Cleanup enabled OFF) gives the game's own cleanup back. Cost: one 1 s server tick, at most
256 checks and 1 ms, at most 4 bodies and 1 wreck removed per second. One `[ECL STATS]` line per
minute shows what is tracked, removed and kept and why; `-eclDebug` logs each removal.
The game's own garbage system stays on as a slow safety net (remains EXPBG Cleanup tracks get
120 min there), so the Game Master's "Delete destroyed" removes them again, except bodies kept
by the rules above, bodies still carrying intel and soldiers of a Simulation-cached squad.
- **Unit Caching no longer removes bodies.** The zone attributes "Group cleanup" and "Minimum
corpse age" were removed from the zone dialog (keys 15/16 are ignored; old saves keep loading and
their values are dropped). Zones never withdraw bodies or dropped weapons from the game's garbage
system any more, and anything a 0.3.x zone or save had withdrawn is handed back. A zone only asks
EXPBG Cleanup to keep a soldier killed while his squad is Simulation cached (at most 10 min) and
the casualties of a squad whose Full caching is in flight. The keep component
`EBG_CleanupKeepComponent` is now `ECL_KeepComponent` (the old name still works).
- **Persistent Battlefield no longer keeps wrecks for 24 h or pauses body ageing near players.**
Its garbage lifetime override and its systems config (80 m pause, destroyed-only rules, 30 s
processing) were removed. Intact empty vehicles are still never collected by the game's garbage
system (EXPBG Cleanup keeps that rule, also while it is off), so vehicles parked at base stay.
- **Reconnect (D10).** The server's `slotReservationTimeout` is now a floor: the reservation is
only raised to 900 s (new component setting), never lowered, and 0 (never expires) stays 0. A
kicked or banned player (server kick, vote kick, ban, teamkill or disruptive-behaviour kick,
BattlEye) gets no reservation: his character goes at once. Other player-manager disconnects,
such as a crashed player rejoining under the same identity, keep the reservation.
A voluntary quit keeps its reservation (new option, on by default, as before). A Game Master who
disconnects while possessing an AI first gets his own character back, so the AI stays in the
world and his own character is reserved (until now the game mode could delete the possessed AI);
a Game Master without a character of his own reserves nothing and the AI stays.
- **New module: EXPBG GM Editor Streaming (Game Properties, default Vanilla, owner decision D3).**
The game's Game Master editor forces every editable unit, body, wreck, prop and item on the map
onto the Game Master's PC each time the editor opens (also on Edit / Photo / Building switches
and when a possessed AI dies) and drops them all on close: a burst of up to 133 characters at
once on 2026-10-17, and the whole map simulated on the GM's PC while the editor is open. Three
modes, set in Game Properties > EXPBG GM Editor Streaming:
- **Vanilla** (default): the game's behaviour, with two fixes: an entity registered just before
the editor closes no longer stays forced until the next open and close (Q1), and the Game
Master's connection is looked up again at every open and never used unresolved (Q2);
- **Camera radius** (1500 m, 300-4000 m): only AI characters, vehicles, props and items within
the radius of the Game Master's editor camera are loaded, nearest first, at a set rate
(Gentle / Normal / Fast: 6 / 24 / 48 weight units a quarter second; a soldier weighs 4, a
vehicle 6), and released again beyond 1.2 x radius + 100 m; modules, comments, tasks,
waypoints, factions, slots and player characters stay map-wide ("Keep markers, modules,
waypoints and players map-wide", on); bodies and wrecks only with "Include bodies and wrecks
in the radius" (off); the player Building mode is capped at 300 m and slots only;
- **Never force**: no unit, vehicle or prop is forced (normal streaming only); the map-wide light
types as above.
The mode applies at each Game Master's next editor open; radius, switches and rate apply live.
A Game Master who leaves or reconnects keeps nothing forced; a mode switch inside one frame
(Edit <-> Building) keeps what is still wanted. Server settings:
`game.gameProperties.missionHeader.m_EGMS_Settings` (only the keys you change; first mission
header only); Game Master changes are kept in native saves, a fresh mission starts from the server
settings. Cost: one 250 ms server tick only while a Game Master is in a Camera radius or Never
session: at most 256 entities indexed, 256 new entities classified (fewer once the tick took
1 ms) and 256 swept a tick (1,024 for a while after a camera jump or a reopen); a large
composition or a save loaded while a Game Master is in the editor spreads over ticks. A camera
jump queues the map-wide modules, waypoints and slots again, so none is lost. `[EGMS]` lines on
open, close and every 30 s (with the average tick cost), `-egmsDebug` for detail. A Game Master
who disconnects with the editor closed no longer runs the game's map-wide release. Far group icons can show a stale position in Camera radius and Never (their leader is
not loaded); the two-client tests of design section 8 decide the recommended default.
- **EXPBG Cleanup: Game Properties shows every setting.** The attribute manager drops a second
attribute of the same type in one dialog, so only "Cleanup enabled" was shown; all keys are listed
now.
- **Garrison: Full garrisons no longer delete and respawn their squad every time traffic passes
along their wake and sleep band.** A garrison that just Full-slept wakes for a player at its
wake distance only after 60 s (at once for a player within half of it, a release, a load or a
caching change), and a woken one stays awake at least 30 s, then 120 s for a second wake within
10 minutes, then 300 s. The default sleep distance of new garrisons (Add Garrison and Random
Garrison) is 500 m (was 400 m; wake stays 300 m); saved and placed garrisons keep theirs. One
`[EXPG CHURN]` line every 10 minutes counts Full sleeps, wakes and respawned soldiers and names
the busiest garrison, and a garrison that Full-cycles more than 3 times in 10 minutes logs one
WARNING (until now the 2026-10-17 log could not show any of it).
- **Garrison: a once-possessed guard no longer keeps his whole garrison out of Full caching.**
Before a Full sleep, a guard a player possessed once (alive, conscious, on foot, no longer
possessed) leaves into a squad of his own (one line in the log) and stays in the world as ordinary
AI; the other guards Full-cache. He leaves only once the sleep is certain (patrols settled, the
pump's one Full sleep free); a guard who cannot leave refuses Full early as before. Until now the
whole garrison fell back to Simulation for good. Each Simulation fallback of a Full garrison now
logs one line.
- **Garrison: a building that changes damage phase far from players no longer respawns its Full
garrison.** The release waits (and is saved) until a player comes within the wake distance, then
the survivors are released as before. An older version loading such a save releases at once.
- **Garrison: building analysis no longer costs one 4-10 ms block every 100 ms.** It runs in frame
slices while a building is being analysed: the same total per 100 ms as before (10 ms while a
Game Master or a loaded garrison waits, 4 ms otherwise, 2 ms for background preparation),
spent at most 2 ms and 24 world traces a frame, so the cost no longer depends on frame rate. A
frame over 12 ms, or half again as long as the running average, counts as busy (1 ms slices,
no background preparation, also for Random Garrison). Prepared sites:
the least recently used one gives way when 1024 are kept (the newest was refused), a site not
asked for in an hour is dropped, a failed site keeps only its verdict, and finished plans drop
their floor cache.
- **Random Garrison: a generation waiting for building plans no longer polls every 100 ms for the
rest of the session.** The wait is checked every 2 s, the director drops to its 2 s tick, and
after 120 s of waiting with nothing else in progress (a spawn or analysis restarts the count)
the generation stops with the reason.
Prepare in background backs off 10-15 s while the planner (or the 64 garrisoned buildings of the
ledger) is full, so a Game Master's Add Garrison is never refused because of it.
- **Ambient Destruction: far players no longer build every awake zone's props, and passing traffic
no longer wakes zones.** Each client keeps a zone's props only while its camera (or its
character) is within the zone radius plus 1600 m (dropped 30 s after it is beyond 1900 m; both
beyond the 1500 m network view distance). On the server a player must stay 5 s within the wake
margin, and a woken zone stays awake at least 120 s. A zone stays awake for living AI only (one
shared list of AI positions per second): bodies, dropped items and its own props no longer keep
a fought-over zone awake. Buildings a Game Master placed are never destroyed, and a building with
Game Master content (crates, props) or a seat (a static weapon) inside is never collapsed.
- **Unit Caching:** squads enrolled at once (a Game Master batch spawn) enter the casualty ledger
over several ticks (about 600 rows a tick) instead of in one frame; the whole-zone wake test runs
once per pump; urgent restores (a deleted zone) borrow at most one burst of the wake budget, so
ordinary wakes elsewhere resume within seconds; a load that releases a zone first wakes its
Simulation-cached squads (soldiers the load keeps were frozen for the session); a wiped squad
whose rifles were looted retires once its bodies are gone; the native save no longer refuses
once 65,536 release or player ids were collected: ids no entity has and no saved or managed group
still names are dropped (the released lineage of a carried-forward or unresolved group is kept),
and each list keeps its newest 16,384 (one WARNING).
- **Unit Caching: a failed Full restore no longer blocks every save until a Game Master acts (owner
decision D7).** It is retried automatically after 60 s, 120 s and 180 s, then released as by
"Release blocked groups" (survivors already respawned stay; one log line each). The automatic
release is tried once; a hold after it waits for the Game Master. One Game Master notice per
failure (not one per retry), repeated every 10 minutes while a hold lasts.
- **AI Surrender: abandoned prisoners are removed.** A prisoner with no player within 300 m for
10 minutes is released and deleted with his interrogation point (intel he carries is dropped on
the ground first). A player, a vehicle seat, possession, unconsciousness, or ACE Captives' captive
or carried state restart the time. Soldiers ACE Captives released are removed by the same rule.
Settings: EXPBG Cleanup "Abandoned prisoners" (mission header `m_bPrisoners`, `m_fPrisonerRadius`,
`m_iPrisonerMinutes`; Game Properties keys 21-23), off with EXPBG Cleanup off. The prisoner limit
(64) is logged once when reached; the ACE orphan list size is in each `[ECL STATS]` line
(`orphans=`).
- **Unit Scripts: night-disciplined squads may Simulation-cache** (never Full, which would drop the
discipline); the discipline does no work while the squad sleeps and applies again when it wakes.
Until now discipline kept the squad awake for good.
- **Unit Scripts: one unknown script row no longer drops every unit script of a native save** (for
example an animation saved with EXPBG Ambient Units and loaded without it): the other rows are
restored, the unknown one is refused alone and one line counts them.
- Gamemaster Tools CDF compatibility: CDF GM Save Compat 0.2.0 adds the CDF load hold for EXPBG
Cleanup (published after this release).- Game Version
- 1.8.0.13
- Created
- Mon, 19 Oct 2026 01:03:44 GMT
- Last Modified
- Mon, 19 Oct 2026 01:03:55 GMT
0.3.6
Live server logs 2026-10-17 (performance investigation of 2026-10-18): one script VM exception "NULL pointer" in vanilla `SCR_AICombatComponent.GetCombatMode` (line 855), reached through AI Global Skills. The deep dive of 2026-10-18 added the stability fixes below (batch GT-B and GT-C2, C3, C6). No new modules; no save format change. - **Advanced Briefing Map: players are no longer stuck in the map.** A briefer without a map gadget gets the map menu opened for him, and vanilla's map menu has no close key of its own. When the briefing ended without the map closing (the briefer died, was moved more than 30 m, the board was deleted or moved, or the lock was lost to lag), the menu stayed open with Escape and M dead until a reconnect. The briefing now closes the menu it opened (never a second time when something else, such as the death screen, is closing it already). Without a map config in the scenario no empty map menu is opened. - **Advanced Briefing Map: drawing sends at most two reliable updates a second** (was up to five while a line was being drawn). Panning and zooming still go out at once; the last line always arrives (closing the map sends the final state). - **No Game Master Budget: switching budgets back ON keeps a Game Master's per-player change.** The raise now starts from each budget's current maximum, and a change made while budgets are OFF (for example a player's AI budget turned off, 0) is the value restored; until now the authored maximum came back and that player could place AI again. While budgets are OFF a budget set to 0 refuses that player's placements. Very large authored maximums no longer overflow when raised. - **No Game Master Budget: server AI ceiling while budgets are OFF.** New Game Settings entry "EXPBG AI ceiling (budgets OFF)", default 200 (owner decision D6), Off for none: a Game Master placement that would take the server above that many AI is refused (the GM client gets the normal refusal; one `[EXPBG NO BUDGET] placement refused` line per 10 s on the server). Budgets ON are unchanged (vanilla budgets apply). The ceiling counts every editable AI on the server (mission AI, awake garrisons, awake Unit Caching squads), so on a 350-400 AI evening every GM AI placement is refused while budgets are OFF: raise it or set it Off there. EXPBG Add Garrison and Random Garrison spawns do not go through placing and never meet the ceiling. The ceiling is not saved: it is back to 200 after a restart (as the budget switch is back to its default). - **Time and Weather: rain, fog and wind from a weather plan no longer stick for the session.** A plan step held after the plan (After = Hold), a held transition or "Stop here and hold" left the rain, fog and wind overrides on; a later Scenario Properties weather, the automated-weather switch, the mission or another mod changed the clouds but the rain stayed. Such a change now hands them back to the weather (with smoothing on, they blend back). A call with a negative player id keeps them (a guard: native and CDF loads call with player 0, on a fresh weather manager that owns nothing yet), and overrides another mod set are left alone. One `[ETW]` line when this happens. Which overrides this module owns is not saved: after a load, a later foreign weather change does not hand back overrides a held step left before the save. - **Time and Weather: deleting the Weather Transition module stops its plan.** The plan ran on with no owner: it could not be saved, and a new module offered a Start that did nothing. The plan now stops within a second (the change under way holds where it is), a module placed while a plan runs shows it (Stop, not Start), and a Start while a plan runs says so. A module deleted during the return to automatic weather lets that return finish (rain, fog and wind are never held half way). - **Editor text: Reset no longer garbles long texts.** Reset in an attribute dialog read a long text (more than about 70 bytes, for example a dialog line) back from the dialog's 96-byte comparison copy, so the line came back cut or garbled and a Confirm saved it. Reset now restores the text the dialog opened with. An attribute row whose layout lacks its edit box no longer throws script errors on every hover. - **Garrison: a refused device restore no longer freezes a garrison.** When a GRS device channel would not restore on a Simulation-cached guard, the garrison retried for the rest of the session: Release, Force Move, casualties and patrols all stopped. It now goes on after 10 s (at once when a release is asked for) without that channel, with one WARNING. - **Garrison: a load that is never finished no longer freezes every garrison.** An import queued by a save carrier that never ends it is created after 15 minutes with one ERROR (`[EXPG LOAD]`). - **Garrison: no duplicate squad after a garrison was once left out of a save.** A garrison left out of the garrison ledger (it saves as an ordinary squad from then on) was written to the ledger again on a later save, so every load added a second squad. It now stays out for the session. Such a garrison set to Full caching Simulation-caches instead (status "Full refused: left out of the garrison ledger"): a Full sleep would delete the soldiers the ordinary save keeps, and the garrison would be lost from every save. One already Full-cached when it was left out stays in the ledger until it wakes (it has no soldiers in the world, so no duplicate). - **AI Global Skills: no script error when a soldier's squad has no AI utility component.** For a soldier without his own ROE (and for one in no squad or in a squad with players) the AI Skill & ROE override hands the combat-mode question to vanilla, which reads the squad's utility component without checking it. On a squad without one, or while one is torn down, that threw a VM exception and aborted the soldier's observe/hide step. Such a soldier now answers FIRE_AT_WILL (what vanilla answers with no squad). A soldier with his own ROE is unchanged: Return Fire Only and Warning Shots First keep holding fire, Exempt keeps the squad's own mode. Normal squads are unchanged. Gameplay and performance effect: negligible (one exception in a 5.5 h session). - AI Global Skills: the suppression guard's source comment now records what the 2026-10-17 session showed (three capped warnings while the executed action was an already completed `SCR_AIMoveAndInvestigateBehavior`, during GM Suppress waypoint use) and that the cause is not confirmed. No code change; the guard caught all three with no VM exception. - Tests: new portable guard `tests/Test-Stability036.ps1` (the fixes above and the wiring of four new native fixtures, not run yet: `tests/EXPG_ChurnGameplay.c`, `tests/ETW_WeatherOwnershipGameplay.c`, `tests/ETX_SnapshotGameplay.c`, `tests/ENB_BudgetGameplay.c` (needs a joined client)); `Test-BriefingMap.ps1`, `Test-TimeWeather.ps1` and `Test-PerformanceGuards.ps1` re-pinned. - Tests: new native gate `tests/EGS_CombatModeGuardGameplay.c` asks a soldier in an `SCR_AIGroup` without a utility component for his combat mode with and without his own ROE, and compares a normal squad with vanilla's answer; `tests/Test-SquadOverrides.ps1` pins the guard (only on the vanilla path) and the fixture's wiring.
- Game Version
- 1.8.0.13
- Created
- Sun, 18 Oct 2026 18:39:11 GMT
- Last Modified
- Sun, 18 Oct 2026 18:39:20 GMT
0.3.5
Owner report 2026-10-16: setting the weather sunny -> cloudy -> overcast, the clouds jumped around and flickered in and out instead of blending. - **Time and Weather: the clouds no longer jump when a new weather is picked while they are still changing.** The game cannot redirect a cloud change half way. Until now a new target (Scenario Properties weather with smoothing on, a Weather Transition, a weather plan started mid-change) finished the change under way at once on whichever weather was nearer, so the sky snapped back to the old clouds or ahead to the new ones, and then started blending again. Now the change under way always finishes, and the clouds blend on to the new weather from there. Rain, fog and wind arrive with them. The status says "The clouds first finish the change already under way (about N), then change from there." The whole change can take longer than set, by at most the rest of the change under way. - **Time and Weather: "Stop here and hold" and "Stop weather plan" no longer snap the clouds.** A cloud change under way finishes (it cannot stop half way) and the weather it reaches holds; rain, fog and wind stop where they are. The status names the weather the clouds finish on. - The one case that still completes at once: the game's own automatic weather is in the middle of a slow change that would outlast the whole new transition (it can take hours); the server log says so. - Tests: new native gate `tests/ETW_CloudRetargetGameplay.c` measures the engine's overcast every frame while a transition is replaced mid-blend (forward and back), stopped mid-blend and started during another source's blend; any frame-to-frame jump fails. `tests/ETW_CloudBlendGameplay.c` expects the new Stop behaviour; `tests/Test-TimeWeather.ps1` pins the rules.
- Game Version
- 1.8.0.13
- Created
- Fri, 16 Oct 2026 14:00:56 GMT
- Last Modified
- Fri, 16 Oct 2026 14:01:05 GMT
0.3.4
Full-modset e2e logs 2026-10-14/15 (Operation Watchtower): a class that a mod declares as `modded class X`
without restating vanilla's class attribute is unknown to the config loader ("Unknown class 'X' at offset
N"), and every config entry of that class is dropped (same cause as the missing cigarette fixed in EXPBG
Ambient Units 0.1.6).
- **Garrison: AI smoke cover works again, for every AI on the server.** The garrison smoke backstop (0.1.22)
modded `SCR_AIGoalReaction_ThrowGrenadeTo` without `[BaseContainerProps()]`. Loading
`AI/AIAgents/SCR_ChimeraAIAgentFull.et` logged "Unknown class 'SCR_AIGoalReaction_ThrowGrenadeTo' at offset
2892" and the throw-grenade goal reaction was dropped from every AI agent: no AI acted on a throw-grenade
goal message at all, so group smoke cover (SCR_AIActivitySmokeCoverFeature: smoke for a wounded soldier,
the Deploy Smoke Cover waypoint) and any behaviour tree sending that goal threw nothing, for all AI, not
only garrison squads, and the backstop itself never ran. The attribute is restated; garrison squads still
never throw smoke, every other AI throws it again.
- **Unit Scripts: the Game Master's Disembark context action is back.** Stay mounted's hand-off (0.1.22)
modded `SCR_DisembarkContextAction` without `[BaseContainerProps(), SCR_BaseContainerCustomTitleUIInfo("m_Info")]`.
`Configs/Editor/ActionLists/Context/TempEdit.conf` logged "Unknown class 'SCR_DisembarkContextAction' at
offset 3929" and lost the entry, so the context menu had no Disembark for anyone and Stay mounted was never
ended through it. The attribute is restated; Disembark is listed again and ends Stay mounted on a static
weapon gunner before vanilla takes him off.
- AI Skill & ROE and AI Surrender & Intel: the modded `SCR_AttributesManagerEditorComponentClass` (attribute
injection) restates vanilla's `[ComponentEditorProps(...)]`; Advanced Briefing Map and Unit Caching: both
modded `SCR_MapEntity` declarations restate vanilla's `[EntityEditorProps(...)]` (vanilla puts it on the
entity class itself). Workbench metadata only (category, description, icon, box); no "Unknown class" was
logged for either and their runtime behaviour does not change.
- Tests: `tests/Test-AttributeDecorators.ps1` pins the exact vanilla decorator of every decorated vanilla
class this pack mods (10 classes, 12 declarations) and requires it directly above each `modded class`;
other modded `*Attribute`, `SCR_AI(Goal|Danger)Reaction_*` and `*ContextAction` classes must repeat a
`[BaseContainerProps(...)]` decorator.- Game Version
- 1.8.0.13
- Created
- Thu, 15 Oct 2026 04:32:34 GMT
- Last Modified
- Thu, 15 Oct 2026 04:32:43 GMT
0.3.3
Full test round 2026-10-14 (owner request: "full testing of all features including unit cache with animations applied"). - **Unit Caching: animated squads cache without minutes of delay.** A squad whose soldiers play EXPBG Ambient Units animations is cached in Simulation only while every animation is playing at that moment. A playlist switches between its animations and a repeated gesture pauses between repeats, so an attempt often found one of them "still starting"; that refusal then started the same 60 s safety cooldown as a real danger, again and again (native: two refusals in a row, the squad awake for over two minutes with no player near). A refusal suspends nothing, so this one is now retried after 3 s; every other refusal keeps the 60 s cooldown. - **Unit Caching: the wake status counts a soldier the Game Master changed while he was cached as kept.** Giving a cached soldier another animation (or Hold, Freeze) worked: he plays it after the wake. The zone status still said "released while cached; not re-applied" and counted him as "not resumed"; it now says "kept; script changed while cached". - **Unit Caching asks the animation whether it may pause (new pose hook `IsPoseSettled`).** Until now only an animation that was playing at that instant could be cached; a repeated gesture between two repeats, a playlist between two steps or a Bon item just dropped refused the cache although the wake starts them again anyway (native 2026-10-15, full modset on Watchtower: a fire team with a repeated gesture took 90 s to cache). The default stays "while it plays"; EXPBG Ambient Units 0.1.5 answers yes between two plays and no while anything is half started (an entry queued, a Bon item on its way to the hand, a loiter exit or a gesture running). - **A script that replaces another one keeps his held spot and heading.** Giving a soldier a new animation (or Hold, Freeze) bound it to the facing he had at that instant; an animation such as Smoke turns the body for a moment, so he could end up facing elsewhere (native 2026-10-14: 125 degrees). The new script now takes the replaced one's held spot and heading, where the Game Master put him, while he is still within 1.5 m of it. - Tests: `tests/EBG_ScriptedSimulationGameplay.c` carries the stand-in player seam of the Unit Scripts fixtures, so its three animations also play with EXPBG Ambient Units loaded; new pin in `tests/Test-UnitCachingScripts.ps1`; `Test-UnitScriptsPoses.ps1` pins the 16th pose hook and `Test-UnitScriptsHold.ps1` the held-spot write at bind. `EUS_FreezeLeaderGameplay.c` moves its chair soldier to an open spot when his formation left him by a fence (it refused with "no room", correctly). EXPBG Ambient Units has a new fixture for its animations in a cache zone (`EAN_CacheGameplay.c`: two cycles, a playlist, a gesture, Bon items, a change while cached). Full test round 2026-10-14/15: every fixture with EXPBG Ambient Units loaded, Gamemaster Tools' own runner kinds, Ambient Sounds, the CDF round trips and a full-modset game session on Operation Watchtower (see `tests/GAMEPLAY.md`).
- Game Version
- 1.8.0.13
- Created
- Wed, 14 Oct 2026 19:37:43 GMT
- Last Modified
- Wed, 14 Oct 2026 19:38:07 GMT
0.3.2
Owner reports 2026-10-14.
- **Unit Scripts: possessing a held soldier no longer leaves him crawling.** A soldier under Hold,
Freeze, Stay mounted or an EXPBG Ambient Units animation (also an EXPBG Garrison guard on a post
or patrol) stands with a zero speed cap and his AI's idle pace. Vanilla possession ("Take
control") gives the body to the player's machine first and resets the pace on the server only
after that, so the possessed body kept the idle pace on the player's machine and walked at
about 0.5 m/s ("frozen"). Measured on the player's machine: dynamic speed 0.2. Now, before
vanilla hands the body over, the unit script ends and every EXPBG speed cap is lifted while the
server still owns him, and the player's machine applies the server's speed and the default
pace itself (twice, 0.5 s and 2 s after the hand-over). Other slowdowns (barbed wire, wounds)
are untouched. E2E: 9.4 m in 3 s after the fix, the same as a soldier that never had a script
(1.7 m before).
- **Unit Scripts never apply to players** (owner request 2026-10-14). Hold, Freeze, Stay mounted,
animations (EXPBG Ambient Units) and dialog (EXPBG Ambient Units) refuse any player's
character: the one he controls or possesses, and his own character while he is in the Game
Master editor or possesses another unit (`EUS_Codes.IsPlayerCharacter`). The attribute tab and
the context actions are not offered on them. Players keep Bon Action Animations' own shortcut.
- Tests: portable suite unchanged in scope (pins pass); native fixtures re-run (see
`tests/GAMEPLAY.md`).- Game Version
- 1.8.0.13
- Created
- Wed, 14 Oct 2026 13:28:56 GMT
- Last Modified
- Wed, 14 Oct 2026 13:29:16 GMT
0.3.1
- **Unit Caching: drones count as presence** (#98, owner request 2026-10-13). With **Realistic Combat Drones** (Workshop `65AD60E204191D37`) loaded, a drone that a living player operates wakes cache zones and keeps them awake exactly like his character (wake and sleep radii, height band, Full wake confirmation, wake order, casualty cleanup), so the operator sees real units through the drone camera. The zone may cache again once the drone leaves, is disconnected (landed and switched off) or destroyed, or its operator dies or leaves. A drone that is carried, in a case or crate, or lying disconnected does not count. No dependency: Gamemaster Tools names none of that mod's classes; it finds the mod's connection registry and drone controller by type name at runtime (`EBG_DronePresence`), reads them once per scheduler tick (0.5 s, at most 32 drones) and turns drone presence off with one warning if their contract changes. Without the mod nothing changes. With it, the zone status says that a drone a player operates counts. New log lines: `[EBG DRONES]` (mod detected, once per mission), `[EBG DRONE]` (a drone starts or stops counting) and `drone=` on `[EBG WAKE WAVE]`. - Tests: portable `Test-DronePresence` (no compile-time reference, the soft contract, the presence path in the scheduler, the fixture and runner wiring, and the mod's names in its installed archive when present); native fixture `EBG_DronePresenceGameplay.c`, run with and without the mod (new `Run-Gameplay.ps1 -Drones`, `tests/GAMEPLAY.md`).
- Game Version
- 1.8.0.13
- Created
- Wed, 14 Oct 2026 04:14:29 GMT
- Last Modified
- Wed, 14 Oct 2026 04:14:51 GMT

