BUSHWAR Vehicle Spawner
by Sgt.James
1.0.90
1.0.90 - no code change: this mod now declares BUSHWAR Admin Tool instead of BUSHWAR Core, because the menu and spawner-component API it hooks moved to the new floor in the three-way split. Needs BUSHWAR Core, BUSHWAR Admin Tool and BUSHWAR Lynx.
- Game Version
- 1.8.0.13
- Created
- Sat, 10 Oct 2026 15:30:37 GMT
- Last Modified
- Sat, 10 Oct 2026 15:30:40 GMT
1.0.89
The admin Price % hook was unregistering its own config class: SCR_EntityCatalogSpawnerData carries a BaseContainer config-root attribute in the base game and a modded class replaces that declaration, so 455 Unknown class errors were logged per session and every entity-catalog entry using the class was dropped at load. The vanilla attribute pair is re-declared above our override.
- Game Version
- 1.8.0.13
- Created
- Sat, 10 Oct 2026 07:31:38 GMT
- Last Modified
- Sat, 10 Oct 2026 07:31:41 GMT
1.0.88
The per-faction supply cost factor is removed: charging is vanilla again on the arsenal item price, the deploy charge and the pad price (the spawner's own Price % stays)
- Game Version
- 1.8.0.13
- Created
- Fri, 09 Oct 2026 15:27:55 GMT
- Last Modified
- Fri, 09 Oct 2026 15:27:57 GMT
1.0.87
1.0.87 - the spawner defaults now match Sgt.James' test-box setup: the custom UI and the aircraft station ship OFF (the base-game depot UI is the default), with the cargo picker, supplies and the 100% price point unchanged.
- Game Version
- 1.8.0.13
- Created
- Fri, 09 Oct 2026 06:48:49 GMT
- Last Modified
- Fri, 09 Oct 2026 06:48:52 GMT
1.0.86
1.0.86 - a pad charges the buyer's own faction supply cost factor (Core 1.1.75's per-faction factors), with the price row and the debit reading the same store
- Game Version
- 1.8.0.13
- Created
- Tue, 06 Oct 2026 16:03:20 GMT
- Last Modified
- Tue, 06 Oct 2026 16:03:23 GMT
1.0.85
1.0.85 - the reference screen's four tabs (VEHICLE LIST / VEHICLE INVENTORY / LOADOUTS / SERVER LOADOUTS), the supplies moved onto the Vehicle Inventory page, the vehicle's own description on the list rows, a hover-driven display window, and a spawn that leaves you in the menu.
- Game Version
- 1.8.0.13
- Created
- Tue, 06 Oct 2026 09:52:39 GMT
- Last Modified
- Tue, 06 Oct 2026 09:52:42 GMT
1.0.84
The spawner cargo path now guards its PlayerManager like its three sibling paths, closing the last of the sweep's findings against this addon.
- Game Version
- 1.8.0.13
- Created
- Mon, 05 Oct 2026 11:19:59 GMT
- Last Modified
- Mon, 05 Oct 2026 11:20:02 GMT
1.0.83
1.0.83 - the item grid skips rows whose prefab does not resolve.
- Game Version
- 1.8.0.13
- Created
- Sun, 04 Oct 2026 19:19:30 GMT
- Last Modified
- Sun, 04 Oct 2026 19:19:38 GMT
1.0.82
1.0.82 - the item rows stop logging a warning each: ItemIcon asked GetImageSetPath() on every item entry and the engine answers a texture-art entry with SCRIPT (W) per call, so a 385-row picker build filled the client log. It now reads the glyph name first.
- Game Version
- 1.8.0.13
- Created
- Sun, 04 Oct 2026 04:44:55 GMT
- Last Modified
- Sun, 04 Oct 2026 04:44:59 GMT
1.0.81
1.0.81 - the Vehicle Spawner settings save reports what actually happened instead of printing settings
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 21:40:11 GMT
- Last Modified
- Sat, 03 Oct 2026 21:40:14 GMT
1.0.80
1.0.80 - the admin's Price % now reaches the charge: the catalogue cost getter is scaled, so the row and the debit agree (100 = vanilla).
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 17:34:59 GMT
- Last Modified
- Sat, 03 Oct 2026 17:35:03 GMT
1.0.79
1.0.79 - the admin's per-vehicle deny list is enforced server-side on both request paths (catalogue + aircraft), and the aircraft walk mirrors the client's row filter so an index cannot resolve to a different aircraft.
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 17:04:18 GMT
- Last Modified
- Sat, 03 Oct 2026 17:04:21 GMT
1.0.78
1.0.78 - the V-menu row file's own count was wrong: it said five sub-attributes and listed four rows, while Edit.conf declares five rows total (the master plus its four children). Corrected, and the wiring re-verified end to end
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 08:21:31 GMT
- Last Modified
- Sat, 03 Oct 2026 08:21:35 GMT
1.0.77
1.0.77 - the vehicle-icon override rationale is corrected: the Puma / UH-1H Cheetah / Alouette III prefabs DO declare m_Image, so the row's own render is what the ladder already shows and the override table stays empty for genuine no-art prefabs
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 06:53:00 GMT
- Last Modified
- Sat, 03 Oct 2026 06:53:03 GMT
1.0.76
1.0.76 - the settings mirror never called Replication.BumpMe(), so an RplProp write was never sent: a mid-session V-menu change (like switching the custom UI off) never reached the clients. Fixed, and a new Check-BWReplicationWrites gate keeps it.
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 06:14:27 GMT
- Last Modified
- Sat, 03 Oct 2026 06:14:29 GMT
1.0.75
1.0.75 - a hand-edited cost or enabled flag in the vehicle-spawner settings store can no longer crash the read: both numeric fields parse through BW_TextUtils.SafeInt (string.ToInt() throws on non-numeric text).
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 05:28:59 GMT
- Last Modified
- Sat, 03 Oct 2026 05:29:02 GMT
1.0.74
1.0.74 - the base-building pad hook never looked for the spawner one level up. A vehicle depot is two prefabs with two separately hooked buttons (SCR_CatalogSpawnerUserAction for the depot pads, SCR_CampaignBuildingStartUserAction for a base-building provider that also carries a spawner), and both answer one question: does this pad carry a SCR_CatalogEntitySpawnerComponent? That component can sit on a PARENT of the entity carrying the action - which is why the depot hook walks up (the same walk vanilla's own action Init does) - but the base-building hook called FindComponent once, so a composed pad whose spawner sat one level up was not recognised: it fell through to super and the VANILLA building editor opened instead of the BUSHWAR menu, the symptom of the 2026-09-22 report one prefab shape away. Both hooks now resolve the pad through one BWVS_Util.ResolvePadSpawner() helper, and Check-BWVSRequestValidation asserts the lookup keeps one implementation.
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 01:56:40 GMT
- Last Modified
- Sat, 03 Oct 2026 01:56:44 GMT
1.0.73
1.0.73 - the pending request queue outlived its world. BWVS_CargoQueue holds each 'load these items and this many supplies into the vehicle I am about to request' message, and every one names its pad by REPLICATION ID. Nothing cleared the queue at a world start and replication ids are reused across a round change, so a request left over from the previous round could match a DIFFERENT pad that happened to take the same id - and that pad's next spawn would apply a load order (and its supply figure) configured against another pad in another round. Its 15 s expiry is a CallLater, which the round change also clears, so the entry would sit in the array for the rest of the process. ResetSessionState clears it from the spawner's own game-mode init, and Check-BWSessionResets now treats a static collection of a class that itself holds an RplId as world-scoped state too.
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 01:37:02 GMT
- Last Modified
- Sat, 03 Oct 2026 01:37:05 GMT
1.0.72
1.0.72 - a loadout NAME could break its own row. The saved-loadout row is 'name|vehicle|items' and the name is its only free-text field, so one containing a pipe shifted the vehicle and the item list for whoever decoded it - on the SHARED list that is every client, from a row the server stores once - and a newline split that row in two in the newline-delimited payload. Encode now folds the separators and newlines and clamps the length through one SafeName() helper that Save/Delete also compare on (so saving twice under such a name updates the row instead of duplicating it), and Decode reads the two fixed fields FROM THE RIGHT, which also repairs rows an older build already stored. Separately, the header's supply figure read the pad's own resource component while the Supplies page - and the amount the server charges - resolve the base's campaign pool first; the header uses the page's call now, and a load order that cannot be attached (no replication id on the pad) is refused instead of silently spawning an empty vehicle.
- Game Version
- 1.8.0.13
- Created
- Sat, 03 Oct 2026 01:16:10 GMT
- Last Modified
- Sat, 03 Oct 2026 01:16:13 GMT
1.0.71
1.0.71 - the cargo request is bounded where it is PARSED (length + item ceiling) and the per-spawn cap is tested before the catalogue lookups, so a modified client can no longer make the server split and scan an arbitrarily long item list. Check-BWVSRequestValidation holds both halves.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 18:31:57 GMT
- Last Modified
- Fri, 02 Oct 2026 18:32:02 GMT
1.0.70
1.0.70 - cargo is charged for what actually LOADED: the charge used to run before the load, so items that did not fit and a vehicle with no cargo storage were paid for and not delivered. Storage, then affordability, then delivery, then the charge (Check-BWVSRequestValidation holds the order).
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 17:38:19 GMT
- Last Modified
- Fri, 02 Oct 2026 17:38:22 GMT
1.0.69
1.0.69 - spawner item rows honour their rank chip: a rank that is too low refuses the load in the picker, and the server re-checks it before the cargo is applied.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 16:38:54 GMT
- Last Modified
- Fri, 02 Oct 2026 16:38:57 GMT
1.0.68
1.0.68 - the shared loadout write is bounded (row length, name, items per row, list size); it is persisted and broadcast to every client, so an unbounded row was a lag and disk-growth lever.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 15:31:39 GMT
- Last Modified
- Fri, 02 Oct 2026 15:31:42 GMT
1.0.67
1.0.67 - the server now checks a cargo request against the requester own faction catalogue (and the admin rules, the cap and the switches), so a modified client can no longer load prefabs the picker never offered.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 15:20:51 GMT
- Last Modified
- Fri, 02 Oct 2026 15:20:54 GMT
1.0.66
1.0.66 - the Vehicle Spawner settings rows read and write through the server, so Custom UI (and every other row) finally sticks: the presence probe mis-read the stores 1/0 bool as absent and forced the default back on.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 14:52:29 GMT
- Last Modified
- Fri, 02 Oct 2026 14:52:32 GMT
1.0.65
1.0.65 - selecting a vehicle always opens its inventory page, and spawn supplies are paid from the base pool.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 14:30:22 GMT
- Last Modified
- Fri, 02 Oct 2026 14:30:25 GMT
1.0.64
1.0.64 - vehicle rows prefer a real picture: the row ladder now also reads a render attached at catalogue level, and the BWVS_VehicleIcons table lets a prefab that ships no art at all carry one.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 13:37:04 GMT
- Last Modified
- Fri, 02 Oct 2026 13:37:06 GMT
1.0.63
1.0.63 - vehicle rows now prefer a real picture of the vehicle: the row ladder also reads a render attached at catalogue level, and the new BWVS_VehicleIcons.json store lets a prefab that ships no art at all point at a real texture.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 13:33:49 GMT
- Last Modified
- Fri, 02 Oct 2026 13:33:52 GMT
1.0.62
1.0.62 - vehicle rows now prefer a real picture of the vehicle: the row ladder also reads a render attached at catalogue level, and .json lets a prefab that ships no art point at a real texture.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 13:32:53 GMT
- Last Modified
- Fri, 02 Oct 2026 13:32:57 GMT
1.0.61
1.0.61 - vehicle rows prefer the prefab OWN editor render over the class glyph. A vehicle UI block carries Icon (class art - every helicopter shares one rotor silhouette) and m_Image (the render of that exact prefab); PrefabIcon() now returns SCR_EditableVehicleUIInfo.GetImage() when it exists and falls back to the class icon, and the catalogue path prefers the prefab render over the entry class art. Prefabs that ship neither still show the placeholder. WR-COMPILE|PASS, WR-PACK|PASS.
- Game Version
- 1.8.0.13
- Created
- Fri, 02 Oct 2026 12:39:01 GMT
- Last Modified
- Fri, 02 Oct 2026 12:39:04 GMT