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

Showing 1 to 30 of 50 results

Rows per page

Next