EXPBG CDF GM Save Compat
by M.Pac
Contributors
K.Edgar
0.2.5
Lower startup script budget for large mod lists on game 1.9 (#InitGlobals); safe with the InitGlobals Budget Fix mod; no gameplay change. For EXPBG Gamemaster Tools 0.6.3 or later (pin unchanged at `v0.6.3`). - **Startup budget (#InitGlobals) checked; nothing in this pack costs it.** On game 1.9 every statically initialized value of all loaded mods runs in one start-up function with an instruction limit, and the owner's 138-mod Linux server stops there. A probe (20000 declarations of each form on that list) showed that `static const` numbers and texts are folded where they are used and cost nothing at start. All 205 class-level statics of this pack with a value are such constants (157 int, 7 float, 40 string, 1 ResourceName); it has no other start-time statics, so no declaration was changed and every constant keeps its name, type and value. A new portable check keeps it that way. - **Safe with the InitGlobals Budget Fix mod (B8ED52DBF80F518C).** That mod leaves 363 vanilla static fields empty until first use. This pack reads none of them, with or without the mod; the portable check fails on a future read so it can be made null-safe first. - **Lighter script start-up (no gameplay change), ready for Gamemaster Tools 0.6.7.** Internal lists are kept in container types the base game already has, lowering the #InitGlobals start-up load that crashes servers with large mod lists: the Intel restore groups its items by GUID in a shared map type instead of a type of its own. Gamemaster Tools 0.6.7 creates its cache zone list on first use instead of at script start; the Unit Caching bridge now reads it null-safe. Saves and behaviour are unchanged, and the pack still works with Gamemaster Tools 0.6.3 to 0.6.6.
- Game Version
- 1.9.0.37
- Created
- Sat, 07 Nov 2026 15:50:02 GMT
- Last Modified
- Sat, 07 Nov 2026 15:50:19 GMT
0.2.4
Game 1.9 compatibility (game 1.9.0.37). For EXPBG Gamemaster Tools 0.6.3 or later (pin moved to `v0.6.3`): publish and load them together; this version does not load next to Gamemaster Tools 0.6.2 or older, and Gamemaster Tools 0.6.3 does not load next to 0.2.3 or older. - **Game 1.9.0.37: fewer engine template types.** The full campaign modset stopped at script init on game 1.9 because the loaded mods together instantiated too many distinct generic container types. This compat now keeps its own runtime lists (prisoner, inventory and crew restore queues, load runs, empty-group report, validated intel payloads, kept cleanup records) in container types the game already uses and casts on read: 14 -> 5 own instantiations. The saved intel, lock and drive payloads keep their typed arrays (their JSON format is unchanged). It also follows the matching EXPBG Gamemaster Tools change (its garrison, destruction and paradrop lists now hold `Managed`), so it needs Gamemaster Tools 0.6.3. Saved data (intel, lock and drive payloads, crew and prisoner records) is unchanged, so saves made with 0.2.3 load.
- Game Version
- 1.9.0.37
- Created
- Fri, 06 Nov 2026 00:56:46 GMT
- Last Modified
- Fri, 06 Nov 2026 01:50:51 GMT
0.2.3
Audit 2026-11-04: fixes for loads, saves and the crew seating pass, older saves with Unit Dialog lines, and a smaller download; full-modset test 2026-11-05: intel on dead soldiers. For EXPBG Gamemaster Tools 0.4.2+ (pin unchanged at `v0.4.2`); compiled and tested against Gamemaster Tools 0.5.10, and the intel fix against Gamemaster Tools 0.6.1. - **Intel on dead soldiers is saved and comes back.** A soldier of a Game Master's squad who died carrying an Intel item (a document, notebook, laptop or tablet) or a USB drive was left out of every CDF save, and his intel with him: a soldier who dies leaves his squad, and CDF saves only what a Game Master placed. After a load the body and the intel were gone. And a body or wreck that CDF did save came back without its intel, because CDF never restores the inventory of something destroyed. Now a body that carries intel is saved, and after a load that body, or a wreck that had intel in its cargo, holds its intel again with its title, text and lock. The body comes back with its default equipment, as CDF restores bodies, and lies where it lay (a body in a vehicle seat is put on the ground beside the vehicle). A load replaces such a body instead of leaving the old one next to the new one, so the intel is never doubled. Bodies without intel are still not saved. The server log names them: `[EII CDF] Bodies with intel: found=N savedByCdf=N added=N withoutIntel=N` when a save finds one, `[EII CDF] Bodies and wrecks with intel: queued=N unreadable=N` when a load puts intel back. Found in the full-modset test: a soldier killed with a notebook came back without body and notebook after a server restart. - **Older saves with Unit Dialog lines keep the rest of each soldier.** A save that holds Unit Dialog lines (made with 0.1.17, or with EXPBG CDF Ambient Units Compat) could be loaded on a server without EXPBG CDF Ambient Units Compat, and then every soldier with dialog lines came back with his default loadout and full health. He also lost his prisoner state and the intel he carried, and (saves made with the companion) his Hold, Freeze, Stay mounted or animation. Nothing warned about it. Now only the dialog lines are lost: loadout, health, prisoner state, intel and unit scripts come back. The server log says how many dialog entries were left out, once per load: `[EXPBG CDF] dialogDropped=N` (WARNING). To keep the dialog lines as well, load EXPBG Ambient Units with EXPBG CDF Ambient Units Compat. The load is not refused, unless such a dialog entry is damaged or the intel data inside it is invalid: then, as for every other damaged entry, the load is refused before the scene is cleared and the Game Master sees why (`Invalid Unit Dialog envelope on record N` or `Intel Items state ... failed Intel Items validation`), instead of that soldier coming back with his default loadout. - **Module checks no longer pass by mistake.** With two or more Ambient Destruction or Unit Caching modules in a save, a module that did not come back could pass the load check by reusing the previous module's result, so a broken import went unnoticed. Each module is now checked on its own, and a load where one is missing fails safe. The same applies to the save check: a save that CDF wrote without any of the Ambient Destruction modules (not only the first) is refused. EXPBG Cleanup's "Never auto-clean" flags that match no record are no longer counted as kept in the `[ECL CDF LOAD]` line. - **A load that never started no longer pauses EXPBG Cleanup.** A load request that CDF answered busy (for example during a save), a slot that could not be read, or a load refused before the scene changed (a missing prefab's first click, a garrison or Ambient Destruction refusal, a player in a seat the load needs) used to stop body and wreck cleanup for the full 30 s load grace. The hold is now dropped as soon as the request ends, without the grace. New log line: `[ECL CDF HOLD] dropped after N ms (...): the load did not start, so deletions resume without the load grace`. A load that runs keeps the hold and the grace as before. - **Player-controlled soldiers are left alone by the crew seating pass.** The pass that puts saved crews back into their vehicles and static weapons can keep retrying for a while after the load. If a player or a Game Master takes over (possesses) one of those soldiers meanwhile, he is no longer moved, woken, given Stay mounted or stood up. The `[EXPBG CDF CREW]` line counts these seats as `playerControlled=N`; they are not failures. - **Faster crew save.** The crew save checks whether a soldier sits in a seat before it runs the more expensive keep rule. The saved data is the same. - **CDF's inventory switch is put back after a script error.** The EXPBG Save loadout feature switches CDF's `saveCharacterInventories` for a moment for each marked or dropped unit. If a script error stopped that save or load step, the switch could stay in the wrong position for the rest of the session. It is now put back the next frame, with a WARNING (`[EXPBG CDF INV SAVE] a capture stopped on a script error; ...` or `[EXPBG CDF INV] an apply stopped on a script error; ...`). - **3.6 MB smaller download.** An unused, uncompressed copy of the Intel Items banner was packed into the mod (about 96 % of its size). It is removed; nothing used it, and saves are not affected. The Workshop preview image is unchanged. - **Load timing.** A throttled load logs how long CDF's deep-state pass (inventories, damage, group repair) takes: `[CDF TIMING] deep-state states=N ms=M`. That pass still runs in one server frame: the paced deep-state pass (CDF-B3), announced for 0.2.1, did not ship and stays deferred until this line from a production-size load shows how much it costs. - Tests: new portable guards in `tests/Test-CleanupCdf.ps1`, `tests/Test-VehicleCrewCdf.ps1`, `tests/Test-InventoryCdf.ps1`, `tests/Test-ThrottledLoad.ps1`, `tests/Test-CompanionSeam.ps1`, `tests/Test-UnitScriptsCdf.ps1` and `tests/Test-PackProvenance.ps1`; the native fixture `tests/ECL_CDFCleanupRoundTrip.c` also loads a slot that does not exist and checks that the hold is dropped without the grace, and `tests/EUS_CDFScriptsRoundTrip.c` loads a save with Unit Dialog entries without the companion and has four damaged ones refused before the clear; the new native fixture `tests/EII_CDFBodiesRoundTrip.c` saves and loads two bodies with intel, a body without and a wreck with intel, and `tests/Test-IntelCdf.ps1` guards the intel-on-bodies code; native results in docs/TESTING.md.
- Game Version
- 1.8.0.13
- Created
- Wed, 04 Nov 2026 21:04:05 GMT
- Last Modified
- Wed, 04 Nov 2026 21:04:13 GMT
0.2.2
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.2.1.
- Game Version
- 1.8.0.13
- Created
- Tue, 03 Nov 2026 17:44:04 GMT
- Last Modified
- Tue, 03 Nov 2026 17:44:25 GMT
0.2.1
Owner report 2026-10-24 playtest (Stay mounted gunners stood next to their guns after the CDF load). For EXPBG Gamemaster Tools 0.4.2+; the pin stays at `v0.4.2`. Native round run against Gamemaster Tools 0.4.4; update together with Gamemaster Tools 0.5.0, which re-seats gunners of older saves. - **Stay mounted gunners are saved again.** CDF saves left out every AI soldier whose squad ran a Gamemaster Tools unit script (Stay mounted, Hold, Freeze, a pose) or night discipline. After a load such gunners stood next to their guns, and their Stay mounted order gave up after 90 s. Unit scripts no longer count as another module owning the squad: these soldiers keep their seats in every save, and a scripted vehicle crew is saved and cleared with its vehicle like any other. Unit Caching, ambient traffic and garrison squads stay excluded, as before. - **Saves made before 0.2.1** hold no seat for those gunners (the playtest's saves among them). Gamemaster Tools 0.5.0 puts a saved Stay mounted gunner who stands next to a free static weapon (within 3 m of his post) back on it after the load; with an older Gamemaster Tools, or where the gun is gone, seat them by hand once and save again. - **No silent losses.** The `[EXPBG CDF CREW SAVE]` line now ends with counts of the seated soldiers left out and why (`refusedCache`, `refusedGarrison`, `refusedCaptive`, `refusedTransition`, `refusedOther`) and `keptHolders`. - **No doubled static weapons in compositions.** A static weapon CDF does not save is saved with its gunner only when it stands on its own. A static weapon inside a composition (for example a sandbag M2 emplacement) comes back with its composition, and its gunner is put back on it, with no second gun on top. - **Mission restarts on a running server.** A restart keeps the same world object, so the crew seating pass, the EXPBG Cleanup load hold and the Ambient Destruction import state now reset when the world is cleaned up. Before, a hold left over from the old mission could leave the new mission's first load unprotected, or keep its Ambient Destruction zones paused. - Tests: new native fixture `tests/EVC_CDFStayMountedRoundTrip.c` (48 checks, three passing runs) and the 15 existing fixtures passing against the new build; results in docs/TESTING.md.
- Game Version
- 1.8.0.13
- Created
- Sun, 25 Oct 2026 02:21:00 GMT
- Last Modified
- Sun, 25 Oct 2026 02:21:05 GMT
0.2.0
Deep dive 2026-10-18, batch B. For EXPBG Gamemaster Tools 0.4.1+ (EXPBG Cleanup); pinned to `v0.4.2` (`7feb7c9`, live; its EXPBG Cleanup API equals 0.4.1). The server updates both together. - **CDF loads and EXPBG Cleanup** (CDF-B1, new module `cleanup-cdf`). A CDF load never deletes a body or wreck while it runs and for EXPBG Cleanup's load grace after it (30 s by default): EXPBG Cleanup's hold `cdf-load` starts with the load request (throttled or instant, and any direct Restore) and lasts while the load, CDF's deferred state pass and the Ambient Destruction building replay run; then one reconcile adopts loaded remains EXPBG Cleanup did not see die, and one tick later the hold ends into the grace. Remains a load restores register as loaded (`FROM_LOAD`), their age counts from the load, and they leave by EXPBG Cleanup's normal timers. Log lines: `[ECL CDF HOLD]` (start, release with the counts of loaded bodies and wrecks and the removals while held). - **EXPBG Cleanup state in CDF saves.** The Game Master overrides of the Cleanup settings (Game Properties > EXPBG Cleanup) and the "Never auto-clean" flags travel in a new world-state layer `eclCleanup` (the flagged record's prefab and saved position). A load restores both; a load with clearBeforeLoad of a save without the layer (no overrides when saved, or an older save) clears the current overrides, so the mission header applies. A flagged destroyed body or wreck (a Game Master's decor wreck) always loads, also with `loadDestroyed=skip` (`keptNeverAutoClean=N` in the skip line), and gets its flag back. The layer is written only when there is something to save; an unreadable layer refuses the load before CDF changes the scene. Older packs (0.1.x) loading a 0.2.0 save that carries the layer lose that save's mission attributes (time, weather); load such saves with 0.2.0. An append load (no clearBeforeLoad) of a save whose layer holds no overrides keeps the current ones. - **Restored remains are not Game Master kills.** CDF recreates a destroyed record and destroys it through the editor, so EXPBG Cleanup took every restored body and wreck for a Game Master kill, and with "keep GM-destroyed wrecks" (on by default) every wreck a load brought back stayed for good (native fixture F17). The layer also lists the remains that were Game Master kills when saved (prefab and saved position); after a load only those are Game Master kills again, every other restored body or wreck leaves by the normal timers. Log lines: `[ECL CDF SAVE] ... gmKills=N`, `[ECL CDF HOLD] released ... gmKillsSet=N gmKillsCleared=M`. - **Faster saves with many AI** (CDF-B2). The Intel layer walked the inventory of every saved soldier, crate and vehicle to find carried intel. A save now builds the holders of every intel item and USB drive in play once (a new drive registry next to Gamemaster Tools' intel registry) and walks only their inventories; records, payloads and refusals are unchanged. Outside a save capture, or when a holder cannot be resolved, every inventory is walked as before. One `[CDF TIMING] intel-items capture ... walks=N skipped=M` line per save. - Not in this release: the paced CDF deep-state pass (CDF-B3, high risk) moves to 0.2.1. - Tests: `tests/Test-CleanupCdf.ps1` (new), the dependency overlap check now also resolves EXPBG Cleanup (`ECL_`) symbols against the pin; native fixtures `tests/ECL_CDFCleanupRoundTrip.c` (F17, now also the Game Master kill state) and `tests/EII_CDFCarriersRoundTrip.c`; results in docs/TESTING.md. `tests/Run-CdfRoundTrip.ps1` takes an engine slot (two test servers may run at once; the server listens on the slot's ports), accepts a fixture's deliberate ERROR lines (`-AllowedErrorPattern`) and runs the retail server (`-ServerKind Retail`) for the deliberate-fault fixtures, which the Diag server halts on; `tools/Build-Addon.ps1` and the release take the slot lock's Workbench record. Fixture fixes: the deliberate-fault cases report `continued` where the retail server goes on after the fault, and the prisoner abort fixture makes AI Surrender refuse through a real path (its static override was never called).
- Game Version
- 1.8.0.13
- Created
- Wed, 21 Oct 2026 00:33:36 GMT
- Last Modified
- Wed, 21 Oct 2026 00:34:04 GMT
0.1.20
Deep dive 2026-10-18, batch A (CDF-A1..A14): stability of loads and saves over long sessions,
and old bodies and wrecks no longer carried from save to save. For EXPBG Gamemaster Tools 0.3.6
(no API newer than 0.3.0 is used); released together with it. Compiled against the Gamemaster
Tools 0.3.5 line so far; the compile against a 0.3.6 build is pending.
- **Destroyed bodies and wrecks are not loaded any more (owner decision D9).** New
`expbg_load.json` key `loadDestroyed`: `skip` (default; files without the key use it) or
`restore` (CDF's own behaviour). With `skip`, a destroyed character or vehicle root record with
nothing attached to it (no child, no crew link to it, no link of its own) is not recreated, on
the throttled and the instant path: CDF spawned each one and destroyed it again, so every load
brought the last session's corpses and wrecks back and every save kept them. Destroyed records
that something hangs on, and other destroyed props, load as before. A destroyed body or wreck
whose own state carries intel or USB drives (Intel Items CDF) always loads, so no intel is lost
with it (owner decision D2). One line names the counts
(`[EXPBG CDF LOAD] loadDestroyed=skip skipped=N keptForIntel=M`); the "Load completed" window
counts the skipped records in neither number. On the instant path CDF's own load line counts
them among its failures ("echecs"); a second line says so. When the instant restore stops on a
script error, the abort guard gives the skipped records their prefabs back.
- **A script error in CDF's deferred state pass no longer blocks saving for the session**
(UCCDF-S2). The shared poller resumes a stopped pass once, in its own callback: the states
already applied stay, the faulting entity's state is skipped and logged with its prefab and
position, the rest are applied (a stop in CDF's group repair or release runs the repair again
before the release, so no group whose members were not attached yet dissolves, and applies them
all). Unit Caching's Apply layer names the entity being applied; a fault outside it skips the
entity after the last finished one and logs that it was assumed. Unit Caching fails closed only
if the resume stops too.
- **Throttled loads keep each squad's saved members from its spawn frame** (UCCDF-S3): the
captured-roster rule (no prefab top-up) is applied right after the group spawns instead of
after the whole spawn phase; the rule after the chain stays as the backstop.
- **Load documents are released** (M2): a finished throttled load drops its document; a parked
load (world change, abort) releases its records unless a bridge still holds the document, and
drops Vehicle Crew's Clear state only when it is its own (a newer load in its Clear phase keeps
it).
- **Garrisons: a lost deferred signal no longer locks garrisons and loads for the session**
(GCDF-S1): a queued garrison import has its own 25 s watchdog (re-armed while the shared poller
runs) and is finished like a timed-out poller. When Gamemaster Tools already ended the import
itself (its queue timeout), the next load resets the stale bridge state instead of refusing
("still being placed"). Also: an abort while the bridge waits for the Ambient Destruction
replay keeps one wait; a world change no longer ends the new world's import; garrisons skipped
by a refused read are forgotten; a confirmed load without garrisons is used up only by the
import it confirmed.
- **Prisoners** (EPR-STAB-3, EPR-STAB-4): a capture that stops on a script error resets the
prisoner capture flags the next frame, so the next load document never gets live prisoners
injected; an EXPBG prisoner whose restore failed (held, no record, no author) is tracked, so
the next load's Clear removes him instead of leaving him for the session. The load summary adds
`heldFailed=N`.
- **Ambient Destruction: one failed import no longer stops EAD and every save until a mission
restart** (EADCDF-LS-1). A load with CDF `clearBeforeLoad` is the recovery; a load refused
before anything changed keeps the latch, with its reason and import world. A deferred pass reported as timed out fails the import
only when a module is missing its snapshot.
- **Intel Items: a Workbench-placed (modified) Intel item no longer refuses every save**
(IIC-S1): Intel prefabs resolve like CDF's record (prefab ancestor; no prefab data gives an
empty name instead of a null dereference). The Intel restore depth is reset when CDF's deferred
pass ends and when a load starts (IIC-S3), so one interrupted Apply cannot stop laptop startup
for the process.
- **Vehicle crews: no duplicates on reload** (VC-1, VC-3, VC-LS-1). An adopted default crew
group names its original (`evcCrew` token of this session), and a load in the same session
clears that original with its vehicle even when the crew dismounted; a group with a player in
it is never cleared. An unsaved vehicle or static weapon is cleared wherever the loaded save
recreates a non-destroyed vehicle record of its prefab at its spot, no seat needed, so an
adopted holder whose crew is gone no longer comes back twice after every restart. A load is
refused before anything changes while a player sits in such a holder (the notice names the
player, the holder and its spot). The Clear state is also dropped on world cleanup.
- Tests: new native fixtures `tests/EXPBG_CDFLoadSafetyRoundTrip.c`,
`tests/EXPG_CDFGarrisonWatchdog.c`, `tests/EPR_CDFPrisonerAbort.c`,
`tests/EAD_CDFRecoveryRoundTrip.c`, `tests/EII_CDFPrefabRoundTrip.c` (with
`tests/EII_CDFPrefabRoundTrip.layer`) and `tests/EVC_CDFCrewDuplicates.c` (commands in
docs/TESTING.md); `tests/Run-CdfRoundTrip.ps1` gained `-LayerPath` and `-AllowFixtureFaults`
(deliberate `EXPBG_FixtureFault` script errors only) and stops the server it started at once on
a compile error or an assertion in the logs (`FATAL=<line>`); new portable
`tests/Test-DeepDiveFixtures.ps1`; the bridge guards pin every change above.
- **Save loadout: the modded `SCR_AttributesManagerEditorComponentClass` keeps vanilla's
`[ComponentEditorProps(...)]`** (`addon/inventory-cdf/.../EINV_SaveLoadout.c`). The engine's config
loader drops entries of a modded class that does not restate its original class attribute
("Unknown class"); the 2026-10-14 full-modset e2e logged no such error for this companion and the
Game Master attribute window worked, so the visible change is that the class keeps vanilla's
Workbench metadata (category, description, icon). Gameplay and save format are unchanged.
- Tests: `tests/Test-AttributeDecorators.ps1` also requires every modded `*Class` companion to
restate its `[ComponentEditorProps(...)]` / `[EntityEditorProps(...)]`, and every modded
`SCR_AttributesManagerEditorComponentClass` to restate vanilla's exact attribute.- Game Version
- 1.8.0.13
- Created
- Sun, 18 Oct 2026 18:42:16 GMT
- Last Modified
- Sun, 18 Oct 2026 18:42:22 GMT
0.1.19
Owner request 2026-10-15: "no saving and loading of destroyed buildings". - **CDF saves and loads never carry destroyed map buildings.** A save no longer reads the world's building ledger: its `eadBuildings` envelope holds an empty list (same format, so 0.1.18 reads it). Loading a save made with 0.1.18 or earlier ignores its building list (one `[EAD CDF LOAD]` line) and replays no collapse. A restored Ambient Destruction module comes back with "Supported buildings selected for destruction" at 0 %, so its building scan finds dressing sites only and collapses nothing; its wrecks, bodies and dressings still come back exactly. A Game Master can raise the value again in the running mission. The save refusal "Exact map ledger cannot include CDF-managed buildings" is gone with the ledger, and so is the load refusal "Older save would lose permanent building history": buildings a module collapsed in the running mission simply stay as they are (the new native round trip found that refusal for every load into such a world). - Only the public Ambient Destruction API is used (`EAD_ZoneSnapshot.Settings`); no Gamemaster Tools class is modded. - Tests: new native round trip `tests/EAD_CDFBuildingsRoundTrip.c` (live collapses, empty building envelope, an older save with real collapses loaded without replay, nothing collapses during or 45 s after either load, scenery exact); `tests/Test-DestructionCdf.ps1` pins the new behaviour.
- Game Version
- 1.8.0.13
- Created
- Wed, 14 Oct 2026 19:47:40 GMT
- Last Modified
- Wed, 14 Oct 2026 19:48:01 GMT
0.1.18
Targets EXPBG Gamemaster Tools 0.3.0 (pinned: `v0.3.0`, `dcc52d5`): it moves Ambient Civilians, Ambient Unrest (protest zones) and Unit Dialog to the new EXPBG Ambient Units (`29CFD45254FAEAC3`). - Unit Dialog CDF moved out: `addon/unit-dialog-cdf` (class `EUD_CDF`, saved key `eudDialog`) is now part of the new companion **EXPBG CDF Ambient Units Compat**, unchanged, which saves everything of EXPBG Ambient Units in CDF saves. `tools/pack.json` records the move (`moved`: destination, file blob, last commit here). - New neutral companion seam `EXPBG_CDFCompanion` (unit-caching-cdf, `EAA_CDFLoad`): a lazy singleton with overridable instance methods that a companion mods. The shared refusal notice asks it for the companions' refusal lines (`TakeRefusals`, where the Unit Dialog line was) and Vehicle Crew asks it whether the records it adds to a save pass the companions' save checks (`ValidAdded`). Without a companion it behaves as if no Unit Dialog state exists: no line, every added record passes. - This pack names no EXPBG Ambient Units class or identity and does not depend on it. Animation states need no bridge: the Unit Scripts bridge carries `EUS_UnitState` as Gamemaster Tools' own text, so version 2 rows (Gamemaster Tools 0.3.0: the pose companion's `"x"` playlist; version 1 still read) travel unchanged; the poses themselves are EXPBG Ambient Units'. - With Gamemaster Tools 0.2.x this version loads but saves no Unit Dialog lines (stay on 0.1.17 there). Without the companion, a save holding Unit Dialog state loads those soldiers with their prefab loadout and health. - Tests: `tests/Test-CompanionSeam.ps1` (new); the provenance, throttled load and vehicle crew guards follow the seam; `tests/Test-DependencyOverlap.ps1` checks the pinned Gamemaster Tools 0.3.0 commit; `tests/Test-UnitScriptsCdf.ps1` checks `EUS_UnitState` version 2 at that commit. The native full-carry fixture no longer sets Unit Dialog lines and the Unit Scripts fixture no longer plays an animation (the runner loads no EXPBG Ambient Units; a pose code without its addon is checked as refused by the save check). Their result lines drop `dialogs`, `dialogRestored` and `posed`. Native runs pending. - Workshop listing: Unit Dialog points to the companion.
- Game Version
- 1.8.0.13
- Created
- Tue, 13 Oct 2026 18:41:43 GMT
- Last Modified
- Tue, 13 Oct 2026 18:41:50 GMT
0.1.17
- Renamed: EXPBG CDF Compat is now **EXPBG CDF GM Save Compat** (same Workshop item 07BC942D90324CD9 and addon; repository ExpBG-Tech/mod-compat-cdf-gamemaster-save). It requires EXPBG Gamemaster Tools (formerly EXPBG GM Tools) 0.2.2 and CDF Game Master Save. - Gamemaster Tools 0.2.2 depends only on EXPBG Gamemaster Data (formerly EXPBG Data), which now also carries its sounds, so this pack no longer pulls in EXPBG Ambient Sounds Data. No save format change.
- Game Version
- 1.8.0.13
- Created
- Tue, 13 Oct 2026 07:29:36 GMT
- Last Modified
- Tue, 13 Oct 2026 07:29:58 GMT
0.1.16
Requires EXPBG GM Tools 0.2.1 (AI Surrender password override slot).
- Prisoners: per-squad/per-soldier override rows now hold five values (GM Tools 0.2.1 added
"reveal password"); rows from earlier saves (four values) still load, and a row is saved with
four values while its password slot is unset, so earlier releases keep reading it.
- Save window (new): manual Game Master saves and autosaves through CDF show the same centered
EXPBG window as a load to every Game Master ("Saving <name>", or "Automatic save"), with the
phase, a progress bar and the elapsed time; other players get a small "Mission is being saved"
banner (`savePlayerBanner`). Phases are reported as they happen: Preparing (the window opens;
the capture waits `saveShowDelayMs`, default 250 ms, and at least one server frame, so the
window is on screen before the server pauses), Capturing (announced one frame before CDF's
capture runs), Writing (CDF's write runs in the next frame), then "Save completed" with the
entity count and the duration for 4 s, or "Save failed" (capture refused, file not written,
save stopped) followed by the reasons in the EXPBG notice. One owner RPC per player and
phase; nothing per frame. The editor is not blocked during a save.
- The capture is not spread over frames: CDF captures the whole scene, every EXPBG bridge
included, in one frame, so the save stays one consistent moment, and the file is exactly the
one CDF writes (CDF 1.4.1's Save step for step: capture, refusal, write, write failure, log
line, result). Only the write moved to the next frame; the document is detached data by then.
- Busy: a save or a load while a save runs answers busy, as a save during a load already did;
autosaves are postponed by CDF meanwhile. The requesting Game Master gets CDF's result once
the file is written, and the save list is refreshed then. A script error in the capture or
the write ends the save and frees CDF (it no longer stays busy for the session).
- End of mission: CDF's `endgame` save stays synchronous; a save still pending when the mission
ends (or CDF stops) is captured and written at once first, so neither is lost.
- Load window: a finished load now shows "Load completed" with the records restored (of the
saved records) and the duration for 4 s instead of just closing; a refused or stopped load
shows "Load failed", then the reasons. Players' banners say "Mission loaded" / "Mission was
not loaded".
- Settings (`$profile:CDF_GMSave/expbg_load.json`, all optional): `saveMode` `progress`
(default) or `instant` (CDF's own one-frame save, no window), `saveShowDelayMs` (0-2000,
default 250), `savePlayerBanner` (default true). Existing files keep working; missing keys
use the defaults.
- Logs: `[EXPBG CDF SAVE] phase=<prepare|capture|write> ...`, one `[EXPBG CDF SAVE] progress save
done: result=... entities=N totalMs captureMs writeMs phases=prepare>capture>write>done` line
and `[CDF TIMING] save phase=... ms=...` per phase.
- Tests: `tests/Test-SaveProgress.ps1` (portable); the native full-carry fixture
(`tests/EBG_CDFFullCarryRoundTrip.c`) now also runs a progress save and checks its phases,
busy answers and the written slot.- Game Version
- 1.8.0.13
- Created
- Mon, 12 Oct 2026 23:27:47 GMT
- Last Modified
- Mon, 12 Oct 2026 23:27:53 GMT
0.1.15
Requires EXPBG GM Tools 0.2.0 with its spawn gate and end-of-mission settle APIs (`fix/open-issues-20261012`; still pinned to 0.1.22 in `tools/pack.json` until that release is tagged); the overlap check also runs against GM Tools 0.2.0 with `EXPBG_GM_TOOLS_COMMIT`. - Load (#18): after CDF's deferred pass the throttled load waits for the Ambient Destruction building replay and shows it in the centered Game Master window as its own phase, "Destroyed buildings: zone N of M (n of m)" (zones of the loaded save, each saved building counted with its nearest zone; the bar follows the buildings). Game Masters get the editor back, and the load result, once the buildings are down. - Load (#18): while a load runs (its building replay included) the server also refuses Game Master moves (transform confirm), attribute edits and regrouping (moving a unit into another group), with the same "Editor action refused" notice as placing and deleting. A refused move fails like a vanilla failed move; a refused attribute edit changes nothing. - Load (#18): GM Tools garrison spawns (module spawns, Random Garrison generation and clearing) wait while a load, CDF's deferred pass or the building replay runs, and 10 s after, through GM Tools' own `EXPG_GarrisonSpawner.Paused`; GM Tools resumes its queued work itself. Ambient Civilians (pedestrians and traffic) and Ambient Unrest crowds are held the same way through GM Tools 0.2.0's `EBG_SpawnGate` (modded instance method `IsHeld`; admissions already under way finish). - End-of-mission save (#10): before CDF writes the `endgame` save in `OnGameEnd`, GM Tools 0.2.0 settles Unit Caching (`EBG_CacheSnapshot.SettleForCapture`: wake and release requests cancelled, unfinished Simulation restores and scalar rollbacks completed in place, a Prepare for Save pause that is not Ready ended; nothing spawned) and checks the garrisons (`EXPG_GarrisonPersistence.SettleForCapture`), so a pending wake no longer loses the last save of a session. Only on the first call while CDF runs with `saveOnGameEnd`; one `[EXPBG CDF SAVE] end of mission` line with both results; the game end is never blocked. Saved-ownership issues and failed Full transactions still refuse the capture with their reason. - Needs the GM Tools 0.2.0 APIs above (`EBG_SpawnGate`, both `SettleForCapture`); the overlap check names them as pending while the checked GM Tools commit lacks them (`Test-DependencyOverlap`), and verifies their declarations once it has them. - Save reminder (#10, optional): `saveReminderMinutes` in `$profile:CDF_GMSave/expbg_load.json` (default 0 = off) reminds every Game Master after that many minutes without a successful save or load, once per period. - Refusals (#15): the six bridges' own CDF-style refusal dialogs (Ambient Destruction, Garrison, Prisoners, Unit Dialog, Unit Scripts, Vehicle Crew) are gone; every refusal of a save or load, Unit Caching and Intel Items included, is shown in the one EXPBG notice, one line per bridge. - Vehicle Crew (#15, optional crew rule): a soldier already sitting in another seat of his saved vehicle or static weapon after a load stays there and counts as seated instead of standing next to it; the load summary adds `otherSeat=N`. - Vehicle Crew (#14): default crews and unsaved holders added to a save are built by CDF's own record capture (shared with the prisoner bridge, `EPR_CaptureRoot`), so they carry CDF's save flags (destroyed), slot link and attributes exactly like CDF's own records. - Unit Caching (#14): the saved-roster rule (a restored squad keeps exactly its saved members) moved from the prisoner bridge to the Unit Caching bridge; it runs for every successful load as before. - GM Tools 0.2.0 (EXPBG Data): native builds and the CDF round-trip fixture stage GM Tools' dependencies transitively by GUID (EXPBG Data `AE27DCE212F2C44D`, EXPBG Audio Data `198987BE7BAC4C84`, and theirs; `tools/Find-AddonDependencies.ps1`); the overlap check also covers the resources GM Tools lists in EXPBG Data; nothing here names the Ambient Sounds module GM Tools 0.2.0 moved to EXPBG Ambient Sounds. - Not changed: the nested `cdfState` envelopes (#14.1) are kept; flattening them is a save-format redesign.
- Game Version
- 1.8.0.13
- Created
- Mon, 12 Oct 2026 08:36:53 GMT
- Last Modified
- Mon, 12 Oct 2026 08:37:08 GMT
0.1.14
Requires EXPBG GM Tools 0.1.22. - Throttled CDF load (#18): loads spread Clear and Spawn over frames (3 ms, 2 records per frame, 25 records/s, 1.5 s between phases, back-off after slow frames; settings in `$profile:CDF_GMSave/expbg_load.json`, `loadMode` instant = CDF's own load). Game Masters see a centered EXPBG "Loading save" window with phase, progress and elapsed time that blocks the editor until done; other players see a small banner. Saves, autosaves and other loads answer busy meanwhile, and the server refuses Game Master placing and editor actions such as delete. - Ambient Destruction (#12): every load replays saved building collapses after the load, one at a time (at most one per 100 ms, about 4 ms per tick), instead of all of them inside CDF's load frame; restored soldiers, vehicles and props next to a collapsing building are left unharmed. Garrisons are created after the replay, so no guard is posted next to a building about to collapse. Expected holds log as warnings. - Vehicle Crew (#11): saves written by 0.1.11 no longer teleport static weapon gunners to one spot next to an unrelated group. A crew link is used only when its record has the seat's holder prefab and spot (2 m); otherwise it is ignored (`[EXPBG CDF CREW] legacy link ignored count=N`) and the gunner is re-seated in the static weapon found by prefab and position, or stays where CDF restored him. Saves check the same rule. - Vehicle Crew (#11): static weapon seats are taken first after a load, and a gunner back on a static weapon gets the EXPBG Unit Scripts Stay mounted script unless he restores his own. Game Masters get one notice per load listing static weapon gunners that could not be re-seated. A static weapon CDF did not save that cannot be found ends after the fast attempts instead of 10 minutes of retries. - Vehicle Crew (#13): a load no longer deletes a mission vehicle or static weapon just because a saved soldier sits in it. An unsaved holder is cleared only where the loaded save recreates it (same prefab within 0.5 m), also when that soldier's crew link was ignored (0.1.11), never with a player in any seat, so after a restart exactly one tripod is left at an adopted post. - Vehicle Crew (#15): the restored group's faction replicates to clients; a seat the engine refuses twice is given up and the soldier stands; the AI pin lasts at most 60 s per soldier. - Inventory (#17): new "EXPBG Save loadout" checkbox in a single AI soldier's or civilian's Character tab (never offered for players, playable characters or prisoners). Server setting `loadoutMode` in `CDF_GMSave/EXPBG_CDF_Compat.json`: `allAI` (default, unchanged behaviour; the mark is only remembered) or `markedOnly` (only marked units keep their saved loadout and get it back exactly, Arsenal changes included; other AI load with their prefab loadout). The mark survives saves and loads. Saved inventory lists are parsed after CDF's load frame. - Intel Items: locked laptops (state, password, attempts, lockout, the owner who knows the password) and rack download settings (USB and laptop failure chances, laptop download time) are saved and restored, carried laptops included. Payload version 2; older saves still load (unlocked). - Garrison: saves and loads garrison ledger schema 2 (post roles, door stance, frags, stored building plans) and still loads schema 1 saves; the schema is named in the save and load lines; a refused load no longer leaves skipped garrisons in a later notice. - Unit Scripts: Stay mounted and Sit on a chair are kept through CDF saves. - Prisoners (#14): records of prisoners added to a save are built by CDF's own capture (no copy, no obsolete Serialize warning); a CDF update that moves the capture hook is reported once. - AI Global Skills (#14): the saved combat mode uses the public GM Tools accessor. - Missing prefabs (#15): only Unit Caching modules, Ambient Destruction zones and the records above them refuse a load. Any other missing prefab is listed once; loading the same save again within two minutes loads it without those entities. - Robustness (#15): every bridge waits for CDF's deferred pass through one shared poller; a load that stops on a script error resets every bridge's import state and CDF's busy flag; Intel Items refusals and the reason for any refused autosave or end-of-mission save reach the Game Masters (#10); eager static initializers are created on first use. - Unit Caching (#5): the capture no longer re-parses every zone snapshot after CDF's capture and logs `[CDF TIMING] unit-caching capture`. - Vehicle Crew: soldiers a Game Master sat in a chair or other sittable prop (for example Heine's GM chairs) are no longer saved as crew seats; that re-seat logic never worked in production (0 chair seats captured in every save). CDF saves such a soldier like any other, and a chair seat in an older save is not re-entered. Vehicles, turrets and static weapons are unchanged, and EXPBG Unit Scripts animations (including Sit on a chair) still save and restore. The save summary adds chairsNotSaved=N.
- Game Version
- 1.8.0.13
- Created
- Mon, 12 Oct 2026 02:43:45 GMT
- Last Modified
- Mon, 12 Oct 2026 02:43:52 GMT
0.1.13
- Vehicle Crew: each seat move-in keeps the soldier's AI out of its maximum LOD until he sits, so vehicle crews far from every player take their seats after a load (production save replay: 8 of 8 vehicle seats, was 0). The pin is released once he sits or stands. - Vehicle Crew: a vehicle or static weapon added to the save with its crew (no author) is cleared with that crew before a load, so a load in the same session no longer leaves a second, empty tripod next to the restored one. - Fixtures: EBG_CDFFullCarryRoundTrip (Hold/Freeze scripts and dialog of a Full-cached squad through CDF); the crew round trip now uses a tripod without an author.
- Game Version
- 1.8.0.13
- Created
- Sat, 10 Oct 2026 11:32:14 GMT
- Last Modified
- Sat, 10 Oct 2026 11:32:21 GMT
0.1.12
- Vehicle Crew: gunners of static weapons (tripods, emplacements) are restored to their seat. A holder that CDF did not save (no author, e.g. a Game Master tripod) was linked to the wrong record (Enforce map.Find leaves 0 when the key is missing), so the gunner always stood up; such a vehicle or static weapon is now saved with its crew. Every soldier left standing after a load is logged once with the seat and the reason ([EXPBG CDF CREW STAND]). - Vehicle Crew: a seat move-in the engine accepted but did not finish (vehicle crews far from every player after a load) is retried every 5 s for up to 10 minutes instead of standing the soldier up after 2 s. A seat that is gone, taken or of another type still stands him up at once. - Unit Caching: after a CDF load every cache zone starts disabled, whatever it was when saved; the Game Master enables them with the global controller.
- Game Version
- 1.8.0.13
- Created
- Sat, 10 Oct 2026 08:16:34 GMT
- Last Modified
- Sat, 10 Oct 2026 08:17:03 GMT
0.1.11
- New Vehicle Crew module: AI soldiers sitting in vehicles, static weapons and sittable props (for example the chairs of Heine's asset pack) keep their seat through a CDF save and load. Each saved soldier stores his seat (type and index, plus prefab and spot for a prop CDF does not save) under an extra `evcSeat` key and CDF's own crew link; the default crews of saved vehicles that CDF skipped are added as ordinary CDF records with the vehicle's author. After a load each crew member is moved straight into his saved seat (no walking, nothing spawned); a seat that is gone or taken leaves him standing beside it. Players, prisoners, garrison guards, reserved groups and ACE animation helpers are never touched. Older readers ignore the key. Each load logs one `[EXPBG CDF CREW]` summary. - Prisoners are saved with CDF: EXPBG AI Surrender prisoners and ACE Captives surrendered or handcuffed soldiers carry an `eprPrisoner` envelope (prisoner record, interrogation progress, dossier, ACE flags, held weapons; their squad an `eprSquad` token). A load holds them passive from the moment CDF spawns them, then surrenders them again with their saved record and re-applies the ACE state. A damaged envelope is refused before CDF clears the scene. Saves without envelopes load as before. Each load logs one `[EXPBG CDF PRISONERS]` summary. This replaces the 0.1.4 rule that released prisoners on load. - A squad saved with fewer members than its prefab (prisoners taken out, casualties) loads with exactly its saved members. Before, the squad prefab topped itself up to its full roster next to the restored soldiers. Squads saved without member records are unchanged. Each load that keeps rosters logs one `[EXPBG CDF ROSTER]` line.
- Game Version
- 1.8.0.13
- Created
- Fri, 09 Oct 2026 10:36:07 GMT
- Last Modified
- Fri, 09 Oct 2026 10:36:22 GMT
0.1.10
- New Unit Scripts bridge: CDF saves now keep each AI soldier's Hold position, Freeze or ambient animation together with his held spot and heading, and a CDF load restores them after CDF's deferred state pass, once the soldier's AI is ready. A damaged script envelope is refused before CDF clears the scene; an unreadable script only loses that soldier's script. Character inventories pass through unchanged. Requires EXPBG GM Tools 0.1.18 (unit script state API). - New Inventory CDF module: after a CDF load, restored AI characters, vehicles and crates get back the saved items CDF's own inventory restore lost (mostly spare magazines and grenades its fallback swapped into an occupied weapon or grenade slot, where they replaced the equipped item). Only missing items are added: back into their saved pouch or any storage with room, never by replacing an item, never more than were saved, never items CDF itself refused, never on players. Existing saves load unchanged; each load logs one `[EXPBG CDF INV]` summary. - Expected Unit Scripts refusals (a damaged save, one unreadable script) log as warnings.
- Game Version
- 1.8.0.13
- Created
- Fri, 09 Oct 2026 03:58:16 GMT
- Last Modified
- Fri, 09 Oct 2026 03:58:22 GMT
0.1.9
- Built against EXPBG GM Tools 0.1.16 (pinned in `tools/pack.json`), which now depends on EXPBG Audio Data. - Workshop listing: a short feature list, licence Arma Public License (APL).
- Game Version
- 1.8.0.13
- Created
- Thu, 08 Oct 2026 07:47:48 GMT
- Last Modified
- Thu, 08 Oct 2026 07:47:54 GMT
0.1.8
- Built against EXPBG GM Tools 0.1.15 (pinned in `tools/pack.json`). - Intel Items CDF: CDF saves cost less. Each captured entity allocates nothing until it holds intel, a server rack or a USB drive, and a captured inventory is walked once for carried intel and carried drives instead of twice. The saved records, their order and the refusals (more than 400 intel items or drives in one inventory) are unchanged. The intel, rack and drive prefab checks skip their prefab lists for any record that is not an EXPII prefab. - Unit Caching CDF: the `[EBG CDF AUTHORS]` warning about deletes of entities whose author is not registered sums up to 30 s (it was one line per frame, about one per entity under Full caching) and says so; world cleanup prints any pending summary at once. - Portable guard `tests/Test-CdfPerformance.ps1`: the prefab-check shortcut matches every whitelisted path and GUID, the single inventory pass keeps its order and refusals, and the warning window is flushed at world cleanup.
- Game Version
- 1.8.0.13
- Created
- Thu, 08 Oct 2026 05:00:46 GMT
- Last Modified
- Thu, 08 Oct 2026 05:00:53 GMT
0.1.7
- Built against EXPBG GM Tools 0.1.14 (pinned in `tools/pack.json`). - AI Global Skills CDF: with this pack loaded, the vanilla "Set combat mode" attribute was missing from a group's Edit properties, and CDF did not save or restore the AI Global Skills module's global values. The modded attribute classes lacked `[BaseContainerProps()]`, so `Edit.conf` logged "Unknown class 'SCR_AIGroupCombatModeAttribute'" and "'EGS_SavedGlobalAttribute'" and dropped them. Restored. - Workshop description without the version number. - Portable guard `tests/Test-AttributeDecorators.ps1`: every modded editor attribute keeps its container decorator.
- Game Version
- 1.8.0.13
- Created
- Wed, 07 Oct 2026 12:41:10 GMT
- Last Modified
- Wed, 07 Oct 2026 12:41:17 GMT
0.1.6
- Built against EXPBG GM Tools 0.1.11 (pinned in `tools/pack.json`). - Garrison (new bridge, replaces the guard): garrisons are saved in CDF files and loaded back. The CDF document carries the EXPBG GM Tools garrison ledger (`expgGarrisons` around CDF's world state): every garrison's building, posts and patrol stops, cache state, settings, casualties and overrides. CDF never captures a garrison squad or soldier itself, and Full caching works under CDF again. A load with `clearBeforeLoad` clears the scene's garrisons and restores the saved ones once CDF has finished (no duplicates); their soldiers' AI stays held until they are bound to their posts, and Full garrisons stay cached with nobody in the world. Refused before anything changes, with the reason in a dialog: an append load (`clearBeforeLoad` off) of a save with garrisons, and a save whose garrison ledger cannot be read (wrong world, missing prefab or faction, damaged data); loading the same save again within two minutes loads it without its garrisons. CDF saves and autosaves no longer need Unit Caching Prepare for Save while garrisons are active. - Tests: `tests/Run-CdfRoundTrip.ps1` and `tests/EXPG_CDFGarrisonRoundTrip.c`, a native in-process CDF round trip (capture, file, refusals, restore).
- Game Version
- 1.8.0.13
- Created
- Wed, 07 Oct 2026 04:27:19 GMT
- Last Modified
- Wed, 07 Oct 2026 04:27:47 GMT
0.1.5
- Built against EXPBG GM Tools 0.1.8.
- Garrison: GM Tools 0.1.8 caches garrisons set to Full in Simulation while CDF
is loaded ("Simulation cached (CDF loaded)"), so the Garrison guard no longer
fires with it. Next to an older GM Tools (0.1.7) the pack still loads and the
guard still holds Full, now saying to update GM Tools, or choose Simulation
or Off. The Workshop description says the same.
- Tests: the GM Tools overlap check also requires every method this pack
overrides in a GM Tools class to exist there with the same signature.- Game Version
- 1.8.0.13
- Created
- Tue, 06 Oct 2026 15:34:29 GMT
- Last Modified
- Tue, 06 Oct 2026 15:34:58 GMT
0.1.4
- Built against EXPBG GM Tools 0.1.7.
- Unit Dialog (new module `unit-dialog-cdf`): each AI's speaker name, dialog
lines and talking gesture are saved with the CDF-saved character and restored
on load. Invalid dialog data is refused before CDF clears the scene ("Save/Load
refused by EXPBG Unit Dialog: <reason>", `[EUD CDF HOLD]`). Units inside a
Full-cached squad do not keep their dialog through CDF.
- Intel Items: server racks and USB drives keep their title, text, download time
and drive contents through CDF save/load (also racks placed in the world
editor). Saves with intel only are unchanged.
- AI Global Skills (new module `ai-global-skills-cdf`): a load restores exactly
the saved settings (the session's newer values no longer leak in), a load
without a module resets to vanilla, and each group's original combat mode is
kept so Vanilla ROE or deleting the module restores it.
- AI Surrender (new module `ai-surrender-cdf`): prisoners removed by a CDF load
are released from the surrender bookkeeping (`[ESR CDF] N prisoners removed by
the CDF load`).
- Release housekeeping: after a successful publish, old heavy build and release
payloads move to the configured archive (`ArchiveRoot` in `.local/config.json`);
receipts and logs stay. Nothing is deleted except by an explicit `-Purge`.- Game Version
- 1.8.0.13
- Created
- Tue, 06 Oct 2026 12:32:03 GMT
- Last Modified
- Tue, 06 Oct 2026 12:32:14 GMT
0.1.3
- Built against EXPBG GM Tools 0.1.5. - Unit Caching: restored AI characters now count for their saved Game Master author, so clearing or deleting restored AI no longer logs `AuthorEntityRemovedServer - This should not happen` or lowers another entity's count. `[EBG CDF AUTHORS]` lines summarise each restore and name any delete whose author is not registered. - Unit Caching: after a CDF load, every group that ended without AI is listed (`[EBG CDF EMPTY GROUP]`) with the reason (`never-saved`, `spawn-failed`, `saved-dead`, `not-in-group`) and whether the save held a Unit Caching snapshot for it. - Intel Items: restoring carried intel is matched per inventory by prefab (one scan before and one after spawning missing items) and reuses the load's validation instead of parsing every payload twice. - All three adapters print `[CDF TIMING]` lines once per load for Restore and Apply, separating their own time from CDF's.
- Game Version
- 1.8.0.13
- Created
- Tue, 06 Oct 2026 00:47:53 GMT
- Last Modified
- Tue, 06 Oct 2026 00:48:01 GMT
0.1.2
- Ambient Destruction: when a CDF save or load is refused, the Game Master now sees a dialog with the reason instead of only a server log line (CDF itself reports results as hints, which are invisible with hints disabled). A load started while a previous Ambient Destruction import is still running or failed now says so. - Requires EXPBG GM Tools 0.1.4, which also lets a saved destroyed building load after a server restart when native mission persistence already removed it.
- Game Version
- 1.8.0.13
- Created
- Mon, 05 Oct 2026 19:35:24 GMT
- Last Modified
- Mon, 05 Oct 2026 19:35:30 GMT
0.1.1
- Game Version
- 1.8.0.13
- Created
- Mon, 05 Oct 2026 13:41:29 GMT
- Last Modified
- Mon, 05 Oct 2026 13:41:37 GMT
Showing 1 to 26 of 26 results
Rows per page
Showing 1 to 26 of 26 results
Rows per page

