Skip to content

Latest commit

 

History

History
1464 lines (1154 loc) · 161 KB

CHANGELOG.md

File metadata and controls

1464 lines (1154 loc) · 161 KB

0.9.8 (2026-10-22)

Features

  • packs: declare a beam weapon; the YAL-1 moves to XML (b80af98)
  • packs: declare a bus's trim, hop and spin; strategic moves to XML (5eaa903)
  • packs: declare a gun's drawn gear and sounds; guns move to XML (10202df)
  • packs: declare decoys and dispensers; countermeasures move to XML (bf98959)
  • packs: declare directors, search sets, IR sensors; sights to XML (e385c2b)
  • packs: let a launcher name its fire-control row; rails move to XML (39e01c3)
  • packs: let a pack name a round's burst and plume and a gun's flash (dcd2eff)
  • packs: let a pack replace a switched-off built-in on its own part (eecf7bd)
  • packs: register a code pack's texts as one unit, and read it once (a1137e6)
  • packs: switch a built-in weapon family off (ca0f7b4)
  • ui: say restart to apply on the family that needs it (5a86c16)
  • ui: switch every built-in family on or off at once (09ce299)

Fixes

  • icbm: say a post-boost miss in the unit that shows it (166c987)
  • mod: remove the cloud pass's hook when the mod lets go of the game (331a21c)
  • packs: read a pack's files as one unit (26bb156)
  • turret: decide the ring's claims from this frame's rung alone (f141ae2)
  • ui: say plainly when no weapon is registered (f7e6eac)

0.9.7 (2026-10-20)

Features

  • icbm: a map window of our own to set targets on (5b15684)
  • icbm: draw what a warhead does to the ground round each target (ff4e0a4)
  • icbm: join each rocket's targets and label only the selected one (9e90063)
  • icbm: make the map a tool you can actually aim with (1210c35)
  • icbm: set ballistic targets by clicking the ground-track map (9294474)
  • icbm: weight the warheads by clicking the map (d1ea7c0)
  • mirv: declare the heavy post-boost bus (edc9256)
  • mirv: let a bus be sent to seven places, one per post-boost RV (1eb4ccd)
  • mirv: release every RV nose-first along the airflow it will meet (5dd6e44)
  • mirv: replace the Heavy MIRV Bus with the seven-RV bus (54a4868)
  • nuclear: light a burst's aurora on KSA's own field, drawn as KSA's (1d4f477)
  • nuclear: make bursts radioactive on KSA's Radiation gauge (c3ae81a)
  • optic: add the YAL-1 nose turret as a roll-nod director (d236fec)
  • optic: draw the YAL-1's beam as a green column on the GPU (1a726fa)
  • optic: draw the YAL-1's beam as the light it scatters (9f2f9e3)
  • optic: fire the YAL-1's laser as a weapon from cued-only directors (feb8cf6)
  • optic: fire the YAL-1's megawatt beam (1559888)
  • optic: stop the YAL-1's beam in overcast and light the cloud base (d71b1ae)
  • optic: zoom the YAL-1's turret to its telescope's 1 mrad field (ef004f7)
  • rounds: light a reentry vehicle's spin motors clear of its bus (9b380ad)
  • rounds: spin the post-boost bus's RVs on their base motors (aab4f11)
  • sensor: an infrared search part with a head that turns (619ca93)
  • ui: show what each IRST holds and where a director's cue came from (3fa640d)

Fixes

  • camera: lean the chase off the axis KSA's camera cannot cross (ad49f3b)
  • gun: hold a designated craft's ground contact through a bounce (231564a)
  • icbm: fit the map to its shape instead of stretching it (655f1f8)
  • icbm: judge the map's dateline against the world, not the zoom (aa5c7fb)
  • icbm: let a drifting hold drop KSA's own attitude hold too (dcdb5a7)
  • icbm: say when a click will replace the target set, not add to it (1703ef9)
  • mirv: hold the coast warp off while warheads are in the air (43a28da)
  • mirv: judge the aim's departure before carrying it to the release (a9de731)
  • model: bake the YAL-1's seam and markings without stair-steps (b59a7a5)
  • model: paint the YAL-1 window as a telescope, not an eye (ebe5d3b)
  • model: take the orange off the reentry vehicle's outer skin (006535c)
  • optic: draw the YAL-1 beam into open sky and fade it with the air (74cab97)
  • optic: draw the YAL-1's beam as a rod, not a wall (a2ef94e)
  • optic: hide the YAL-1 beam behind the cloud deck it climbs into (16d494b)
  • optic: let a shift-click reach every director on the craft (29be751)
  • packs: name the refusal behind an unresolved pack reference (6d8173a)
  • parts: list the YAL-1 turret under Weapons, not Sensors (2405e31)
  • rounds: draw a round far from its launcher placed off the camera (f85f53f)
  • sensor: show the IRST's head behind its glass (2a1851b)
  • sight: draw the sight's text on whole pixels (5a3db50)
  • ui: call the YAL-1's beam supply chemicals, not a magazine (24bda23)
  • ui: list the YAL-1's turret once, not twice (d7f45af)
  • ui: spawn test targets past a craft with no weapons system (feaf1d5)
  • ui: stand the lock cue down over a spent launcher's rounds (218b863)

Build and packaging

0.9.6 (2026-10-13)

Features

  • icbm: keep the computer's targets and settings in the save (ab8c9ce)
  • icbm: let the trim wait out the spent stack before closing on it (5e8db1a)
  • icbm: show what the shot needs against what the stack has (542168e)
  • icbm: wait out the spent stack, and trim through a held keyboard (b78feb5)
  • mirv: spend the split reserve on a walk's later hops (b9cac9f)
  • ui: say on the Ballistic tab where the warheads burst (ca7c15c)

Fixes

  • effects: pick warhead presets on Core's resized conflagration (fd746eb)
  • icbm: add the release kick where it happens, keep a recent aim, on (9e28640)
  • icbm: hand a stack outrunning its shot to the closed loop, on (1586a87)
  • icbm: hold for a burn window without losing it or the jets (b2cd576)
  • icbm: keep a hold's burn window, and light it only once turned (d117411)
  • icbm: land a long coast from orbit on its aim, not its clock (39d7a4e)
  • icbm: latch a burn's arrival after its solids, from orbit too (183c4ba)
  • icbm: let a coast warp while nothing is correcting (ad02a27)
  • icbm: let an orbital hold warp to its burn window (2066f3f)
  • icbm: light a held burn at real time, not inside a warp (64d411f)
  • icbm: move a release staged too early to the end of the list (02f37ba)
  • icbm: pulse a throttle below the floor rather than break the stack (5ac7e5d)
  • icbm: push a liquid stack's stalled cutoff through at 25 km (3d4f416)
  • icbm: retrim a refused bus onto the cheapest arrival, not none (4a07bce)
  • icbm: stop the stack wait holding long shots' post-boost correction (516d301)
  • icbm: turn a holding stack onto its burn just in time (0905442)
  • icbm: turn into the airflow before dropping a spent stage in air (87c6a29)
  • mirv: end the stack wait once the first warhead has left (ac92bca)
  • mirv: price a multi-target walk at what the bus actually spends (016a5f3)
  • mirv: stop the coast's warp early enough for a walk to hop (ea87a76)
  • rings: stop stacked targeting rings compounding into a glow (076a9ef)
  • settings: follow the save the game loaded and wrote (c4196c9)
  • ui: say a holding bus's impact comes after its burn (cf25c1e)

Build and packaging

  • ksa: retarget 2026.10.10.5554 (ec1fe4e)
  • ksa: retarget 2026.10.13.5602 (c4528ee)
  • saves: remove the startup save repair after its one release (5e1cab3)

0.9.5 (2026-10-06)

Features

  • bombs: painted sight rings, and steer the last bomb in its reach (db8fdcb)
  • clouds: a burst in dry air raises no white cloud and glows purple (ca9ce16)
  • clouds: air bursts, Tsar Bomba and the high-altitude sky (a01f6b3)
  • clouds: hold a burst's debris in the field above the air (85353fa)
  • clouds: send Teak's red wave out from a burst high in the air (5654983)
  • countermeasures: flare and chaff dispensers that decoy seekers (336db7c)
  • damage: give every part health and a damage scale (9e0f403)
  • flash: a burst's heat and light by the air it went off in (b463c5f)
  • gun: add the M197 chin turret (83c5ca6)
  • gun: draw every shell in the air, with no limit on how many (3635e9a)
  • gun: draw tracers in the shader pass, and smoke where shells burst (864db56)
  • guns: leave shell holes in the hulls they strike (d03f445)
  • icbm: keep the throttle moving while a window has the keyboard (419b901)
  • icbm: land short shots to millimetres, no spin after the boosters (d76bfcc)
  • icbm: paint the MIRV aim and target rings on the ground (2c04de3)
  • icbm: say when a short shot's cutoff has stalled (696f509)
  • iff: a craft's name no longer puts it on a team (e3d6cfb)
  • radar: hostiles show their heading, and the scope fits the set (c2e9fe5)
  • rounds: a destroyed launcher's rounds keep their bodies (c3701e9)
  • saves: repair saves listing subparts a part no longer declares (2f0f885)
  • stations: one sight, one row and one mark per weapon (aae1732)
  • tanks: leak fuel from holed tanks (4329c5e)
  • tuning: cap the B61 at 340 kt and say charges in kt and Mt (6c3db7b)
  • turret: sweep each gun's travel against its own craft (d40a674)
  • ui: one section per weapon, a weapon picker beside FIRE, less text (50eeec1)

Fixes

  • blast: judge a high burst's damage on what its air leaves of it (842967b)
  • blast: run each burst's front in the air it went off in (38901d5)
  • bombs: publish the tail kit's reach only as a whole solve (8e7e1bf)
  • camera: stop reporting the chase's cut to an observer as a fault (45e6212)
  • clouds: draw a nuclear cloud at the size the laws give it (b1bf6ac)
  • clouds: draw every burst's sky, and stop the aurora jumping (4b4a6db)
  • clouds: keep the Wilson cloud, with its density set by its size (b450914)
  • clouds: let the fireball go out instead of switching it off (98afcf6)
  • clouds: one glow, aurora and fireball light for a bus's salvo (df63dbd)
  • clouds: place the X-ray layer and aurora by the air above them (11bb14f)
  • clouds: stand a nuclear cloud for eight minutes rather than four (0633447)
  • clouds: stop drawing the Wilson cloud KSA's particles lit black (f019988)
  • clouds: thin an ageing nuclear cloud by 15% rather than 35% (2df15c1)
  • clouds: widen a nuclear cloud as it rises, not with the blast (e1ee98e)
  • fire: a loaded bomb rack reads clear rather than holding fire (0eb938d)
  • gun: fade the rounds between tracers with the sun (4709f86)
  • gun: find a gun's reach however far the aim point is (20ac357)
  • gun: let a burst fired by hand run on while the gun is swept (7ad58fb)
  • guns: test a gun's line of fire across its whole craft (2548fb4)
  • icbm: fly ballistic shots of any range by default (56ecc03)
  • icbm: hold the flown rocket's aim correction until its solids burn (87a4e02)
  • icbm: keep saying how short a burn ended after the first frame (0483b59)
  • icbm: kick a long shot off its probe miss up to 1 m/s (110c56a)
  • icbm: kick short shots off the probe miss after the trim too (d1ec327)
  • icbm: let a bus with six targets walk between them (a7f49a4)
  • icbm: let a short shot's backstop hand up to 10 m/s to the trim (3d5ea59)
  • icbm: read the ground at the aim, not ahead of it, after cutoff (aa64d11)
  • icbm: release through the bus, not the weapon the panel selected (5f76193)
  • icbm: stop a walking bus spending its trim budget on overshoot (3b4b4f6)
  • icbm: stop crewing a spare computer on a spent stage (5812793)
  • log: print a round's miss to a tenth of a metre (90422a6)
  • radar: let the Phalanx and the 5"/54 see as low as they can shoot (3a0dba2)
  • reload: only the Pantsir refills itself (a0f5f3c)
  • render: hide the fireball's glare behind whatever is in front of it (062f330)
  • sound: hear a burst at its body's speed of sound, shake by its gain (baa4cca)
  • sound: hear and feel a high burst when its front arrives (5112f98)
  • sound: keep the guns audible through a string of explosions (2dab040)
  • ui: let a click on the world act with the UI hidden (1ef11f5)
  • ui: stop telling players a craft's name decides its team (9941a52)
  • weapons: keep a destroyed craft's weapons on it until retired (aadb9b1)
  • weapons: keep a launcher's magazine when its craft dies around it (52a176f)

Performance

  • clouds: draw at most four sky dispatches, each kind's best first (7c536ac)
  • clouds: march a cloud's steps by the chord, not a fixed 48 (bdd9ff6)
  • clouds: march the aurora for a tenth of what it cost (68e4a54)
  • fire: compile the kill path at load, off the frame (aa48f97)

Build and packaging

  • ksa: retarget 2026.10.7.5541 (7bb32c5)

0.9.4 (2026-09-24)

Fixes

  • clouds: keep the cloud inside its own blast front (c85e8c7)
  • fire: hold fire on a lock past the seeker's gimbal limit (54c1c42)
  • icbm: label the mid-burn prediction as the burn as planned (ee0fc3e)

0.9.3 (2026-09-24)

Build and packaging

  • ksa: retarget 2026.9.22.5482 (3a2f79c)

0.9.2 (2026-09-23)

Features

  • audio: hear a bigger burst as a longer, deeper roll (152e00f)
  • camera: watch a nuclear burst for as long as it is doing something (5fbe109)
  • chase: cut to an observer to watch a nuclear burst (d8655a2)
  • damage: break parts under fronts together, spare the tipped (2782b4b)
  • damage: dent a part once when several blast fronts reach it (641f79c)
  • damage: dent and throw dust as the blast front arrives (d9d0411)
  • damage: dent to the blast radius and shove craft with the wind (67a7177)
  • damage: dent what a blast loads short of breaking (b50dd21)
  • debug: capture what you see for whoever is diagnosing it (b255d62)
  • icbm: a stalled pulse phase falls back to holding, on by default (46ccb37)
  • icbm: draw the bus's reach, and refuse a click outside it (9b137dc)
  • icbm: fly the bus between targets and release each one's warheads (49f62a7)
  • icbm: list a bus's targets, and let a coasting one take more (750eecd)
  • icbm: place a bus's targets before launch, aimed at the farthest (9632d9e)
  • nuclear: bend the light at the blast front (2fd734a)
  • nuclear: draw every blast front and feel every one pass (ade3e52)
  • nuclear: shake the view as a blast front passes the camera (a5c516c)
  • radar: black out a radar beam that crosses a fireball's air (b1beaa2)
  • render: a burst behind you is not a burst in your eyes (96ca482)
  • render: a burst on the sea lifts spray, and burns nothing (f165a3e)
  • render: a burst with no air blinds a viewer too (29a1ccd)
  • render: a cloud stands four minutes, spreading as it ages (44330e2)
  • render: a ring of dust races out behind the blast front (22b93d0)
  • render: a thinner stem, with dust drawn up into the cap (16425e1)
  • render: a white-hot ball that grows and burns for its real time (68b9eee)
  • render: a young burst is dirty, and burns through its own smoke (a009378)
  • render: an ageing cloud is drawn out downwind, not slid (9402287)
  • render: burn the ground the fireball stood on (24fc6b8)
  • render: condensation collars on the stem, and a white crown (103097c)
  • render: draw every standing cloud, and merge coincident bursts (64d31b0)
  • render: draw the base surge again, as particles (7e3a09f)
  • render: fallout hangs from the cap only once it can have fallen (1ac9623)
  • render: flash blindness lasts longer at night (27dbc0e)
  • render: give the flash its second maximum (6f1b32e)
  • render: give the raymarched cloud a sky to be lit by (62de76d)
  • render: hang fallout streamers off the cap (0179e49)
  • render: hold a glare halo round the fireball while it burns (0978d69)
  • render: keep the ground burned after the cloud goes (0b82467)
  • render: lay the fallout downwind instead of in a circle (bdd81e9)
  • render: let the cloud dissolve instead of switching off (74c1796)
  • render: let the cloud sail off the ground it burned (4acb374)
  • render: let the fireball light the cloud it is inside (32a7358)
  • render: light the cloud with KSA's own atmosphere (bf68b57)
  • render: light the cloud with the sun the engine says reaches it (6ec21b5)
  • render: light the raymarched cloud (8967ae3)
  • render: make the cloud read as a mushroom rather than a column (90bfa04)
  • render: raymarch the cloud instead of walking it with capsules (27a05b9)
  • render: reach KSA's shader library from the mod's own shader (b73e3ce)
  • render: resolve the cloud's grain over frames (70d43cd)
  • render: retire the pen cloud; the raymarch is the cloud now (3d585ff)
  • render: run the mod's own compute shader inside KSA's frame (06469f1)
  • render: shade the burst by KSA's weather, as the ground is (288353a)
  • render: shear the column, do not just lean it (54f036f)
  • render: smoke rises from what the flash set burning (9fc608b)
  • render: spread a big burst's cap into an anvil at the tropopause (5892e26)
  • render: spread the stem's foot into a wide skirt (81f2059)
  • render: taper the stem and grade the cloud's colour with height (4d29123)
  • render: the bang arrives when it actually would (a1f14e5)
  • render: the condensation cloud over the first couple of seconds (750f410)
  • render: the fire ring opens in the middle, seen from below (918f357)
  • render: the fire runs round the ring once the ball has hollowed (7b5ae2e)
  • render: the fireball is the cap, not a second object (658e2c1)
  • render: the flash blinds violet, and fades through lavender (6c48ac7)
  • render: the view goes white when a burst goes off in front of you (c60800e)
  • rounds: send a falling store somewhere else after release (fee274a)
  • rounds: throw ground where a burst has no air to grow a cloud (1c9cfe9)
  • ui: send the controlled craft to another body (75e2166)
  • ui: stop the burst tool's ring hiding the burst (1bbd4d4)

Fixes

  • audio: mix the nuclear bang's rumble in, and bang for every burst (f6ea164)
  • camera: centre the hold on the cloud rather than on the crater (d0418c5)
  • camera: leave room round a cloud instead of standing on its crown (14f1f4c)
  • camera: watch a nuclear burst from far enough to see its cloud (07b5cbe)
  • chase: ride a thrown-up store until it is nearly down (c005f29)
  • chase: stop earlier for a bigger bomb, and keep its burst in frame (8448a21)
  • damage: anchor a blast where the ground it went off on is (89e8251)
  • damage: follow the blast front to a moving craft, cap its shove (63139a0)
  • damage: let the ground break a craft a blast throws (bcb6f88)
  • debug: captures stop showing the UI's windows as rectangles (6b43bac)
  • icbm: accept a hop on the trim's question, not the planner's (f2d34df)
  • icbm: plan a walk on the coast's length, not what is left of it (3ae8db6)
  • icbm: walk a chain nearest-first, and stop when the budget is gone (6b83417)
  • nuclear: give a bomb dropped on a standing cloud its own burst (27d5e07)
  • nuclear: hide the cloud behind a deck the camera is looking through (9f0f76d)
  • radar: read a craft's side off its flag, not off its name (d0eb726)
  • radar: stop a mount shooting at its neighbour's outgoing rounds (ff5e58c)
  • render: a pass nobody asked to build has not failed (aa43dfb)
  • render: bind the viewport's slot, not the frame index (84de67e)
  • render: blind by the flash's power, on the eye's log scale (9421bcb)
  • render: centre the flash on the burst and warm it off-axis (0333a4b)
  • render: clear a nuclear burst's effects when a save loads (331c9fb)
  • render: draw the blast wave at the size the warhead says it is (71e1403)
  • render: draw the burst behind the weather clouds in front of it (b96e4be)
  • render: draw the fireball and its light when no overlay is on (76a5025)
  • render: fade weather occlusion in behind its distance (9ebf4ec)
  • render: hold an airless burst's dust together until it lands (8c1a2d6)
  • render: hold the cloud's lean through its stand (e2adff6)
  • render: keep the cloud standing where it burst (9463886)
  • render: keep the thrown dust a sheet as it spreads (210f815)
  • render: KSA's cirrus no longer punches holes in the cap (2cf3a1b)
  • render: lay fallout down as a ragged cigar, not a ruled box (7cbe8f4)
  • render: let the eye recover while the fireball is still burning (e4e3260)
  • render: let the raymarch draw the skirt, and drop the black collar (9c5c27d)
  • render: mark vacuum ground by radiation reach, with no plume (b8fd102)
  • render: no dark ball in the cloud, and its glare rises with it (4d4c629)
  • render: shade the stem and the cap's underside by the cap above (f90a945)
  • render: ship the shader, which nothing was copying (4112020)
  • render: size the fire plumes in metres, not by the yield (c2951b4)
  • render: stop a burst's edge behind weather clouds from crawling (fe46ebe)
  • render: stop lighting the cloud when the sun is below the horizon (a9a145c)
  • render: stop logging an include error on every shader compile (560f37c)
  • render: stop the burst's own volumes occluding its cloud (2663394)
  • render: take the black out of the foot of the cloud (ed493b5)
  • rounds: climb the cloud on the tracked curve, not a step response (bc4b848)
  • rounds: darken the nuclear smoke enough to read as dirt (e213015)
  • rounds: draw the airless burst through the volumetric renderer (c31e09a)
  • rounds: ground-test a round against the body it is over (d20ff63)
  • rounds: keep a falling store through timewarp (e84ea0a)
  • rounds: measure burst height over the ground, not the mean sphere (99afc01)
  • rounds: stop Core's explosion smoke sitting under the mushroom (cfcbe99)
  • rounds: throw dust on an airless body, not smoke (4a64139)
  • sight: hold the store's rings through a failed solve (41e0c09)
  • sight: keep the store's reach rings on the ground between solves (86b33bb)
  • sight: stop predicting a release the rack cannot make (d591196)
  • sim: a body with no atmosphere has no air (e741261)
  • ui: keep developer tools off a player's install (95efbe5)

Performance

  • nuclear: stop bending the view for a front that has passed it (93137fd)
  • overlay: keep a draped ring instead of draping it every frame (a1cf5a1)
  • render: dispatch a ground mark over its own footprint (41a58fd)
  • render: reject a sample before its noise, not after (68ac01b)
  • render: stop the shadow march paying for detail it cannot show (c3a3d4b)
  • sight: stop redrawing the store's rings from scratch every frame (d6ec479)

0.9.1 (2026-09-19)

Features

  • fire-control: select the cannon, and fire on a shift-clicked craft (4aeac40)

Fixes

  • assets: ship no character, so a launch through Borea does not crash (f8b52ab)
  • chase: hold the view still while the game is paused (e9f7110)
  • model: size the Mk 42 and CIWS stack nodes so they sit on a tank (3203d14)
  • rounds: burst a loose round without its launcher's velocity (05eac33)

Build and packaging

  • build against StarMap 0.4.7 (8d3b8ab)

0.9.0 (2026-09-19)

Features

  • arsenal: an AGM-88 HARM that homes on whatever is transmitting (076a098)
  • camera: look around a chased round with the orbit drag (c2f6361)
  • camera: stop a chase short of the arrival and watch it go in (82b78fa)
  • camera: turn the chase onto the target, and let go of a lost round (90b75ea)
  • effects: a mushroom cloud through the booster-plume renderer (dccfd42)
  • effects: a nuclear burst - flash, fireball and a cloud that rises (9aec1a0)
  • effects: lay a smoke trail behind a burning round (84f5d75)
  • effects: set warheads off as KSA's own explosions (4eaee21)
  • fire-control: fire without arming, and let auto-engage decide (6b7e75c)
  • fly any rocket to a target designated on the map (1e24ec7)
  • gun: add the 5"/54 Mk 42, led on the engine's own drag (954b684)
  • gun: throw a shell as far as it goes at a place beyond its reach (41d5c28)
  • hook the attitude command in, so the computer can actually fly (2f264c1)
  • icbm: aim a salvo's warheads at a ring, not all at one point (6382e2a)
  • icbm: fly one flight per rocket in the world (ea5e83e)
  • icbm: fly the warheads' real drag, and solve their kicks in air (70b5760)
  • icbm: give a ballistic computer only to a craft carrying the bus (0b3c25f)
  • icbm: give up an arrival the trim cannot possibly fly (3d9cb55)
  • icbm: judge a target's ground before a night is spent on it (97c3153)
  • icbm: let the aim correction be switched off (1c9fa78)
  • icbm: log what the ground under the aim actually does (43fb796)
  • icbm: refuse a trim direction that closes on the spent stack (990365a)
  • icbm: say how near the bus came to the stage it dropped (7535135)
  • icbm: say how squarely a delivered pulse landed on what was asked (339fedf)
  • icbm: say what a trim's pulses asked for and what arrived (133d746)
  • icbm: say when the arrival asked for cannot be afforded (dc13528)
  • icbm: say which way the split debt points (c1aa4e3)
  • icbm: ship the arrival preference the night resolved (de9f81c)
  • icbm: stop a prediction on the terrain, as the round already does (34e96ca)
  • icbm: stop every prediction on the terrain, not a chord of it (e7ae587)
  • icbm: take spent ascent stages out of the world (872f561)
  • icbm: two switches for the long-range trim stall, both off (b55958f)
  • map: the ground under a director, with its contacts on it (c76b47e)
  • model: author the B61-12 and its MAU-12 ejector rack (29e23cb)
  • model: deflect the B61's fins with the steering command (5054220)
  • model: point the MIRV bus's six tubes the same way (ab6584d)
  • model: put the bus's small attitude thrusters back (8a864d3)
  • model: quarter the MIRV bus's minimum thruster pulse (f1cddda)
  • model: remake the Mk 15 Phalanx as authored art (a1af99a)
  • model: seat the bus mass in its thruster ring (98e48e5)
  • model: size the bus attitude thrusters as attitude thrusters (fef2b1b)
  • model: square the bus roll jets and add the radial four (dbbbd30)
  • model: sweep a seated round's fins for testing (fb39028)
  • move the Mk 82 bomb rack out into a weapon pack (cb83873)
  • optic: a LITENING targeting pod on a roll-nod gimbal (687c9e1)
  • pick the flight up from any state, and count down to impact (38d7143)
  • radar: a PPI scope on the Radar tab (1090541)
  • radar: draw north and the array's believed bearing on the vehicle (140e40c)
  • radar: offer a scope only for a set that presents one (6239dff)
  • radar: sweep off the real array, one trace per face, and a pop-out (b52fed2)
  • radar: symbology on the scope -- what a contact is, not just where (5704171)
  • radar: turn the CIWS sweep at 90 rpm and draw the lock (59696bc)
  • rounds: an AIM-120C AMRAAM on a LAU-128 rail (831f469)
  • rounds: break individual parts, not whole craft (77534de)
  • rounds: drag a round by its mass, calibre and coefficient (e2b1350)
  • rounds: fly on when the launcher that fired them is destroyed (bceff3f)
  • rounds: release a guided store onto what is designated (5375a64)
  • rounds: report how far a round landed from what it was aimed at (0b8b796)
  • rounds: report where a round landed, not just how far off (ef0e7f1)
  • rounds: steer the B61's tail kit (a3f53ef)
  • sensors: give the Pantsir a director that rides its turret (d0c092b)
  • sensors: lock an installation onto anything with shift-click (7c3ce78)
  • sight: say why the head is not on what it has bracketed (c9fdfc5)
  • sim: aim each tube before it fires, and let go of the stack (1b6e658)
  • sim: aim each tube before it fires, by default (b0aa37a)
  • sim: aim for the instant the correction will be flown, not for now (15a3d07)
  • sim: aim the scenario at what is defending, and watch it arrive (3342185)
  • sim: check that what registered can actually be found (fcdb394)
  • sim: coast the warhead at the frame its errors cancel nearest (f619daa)
  • sim: drop mushroom clouds on a scripted shot, gate on frame time (1459eae)
  • sim: find the decoupler holding a launcher on (0c775f5)
  • sim: follow a launcher onto the craft a decoupler left it on (e2b6adb)
  • sim: follow the warheads when the launcher lets go (dc09b6e)
  • sim: hold the warhead's coast at the step its profile names (23422a3)
  • sim: judge the reach on the stack, and fly what it can afford (1be43cc)
  • sim: let a warhead re-read the ground as it meets it (0af6da3)
  • sim: let a weapon pack be assets only, with no code at all (bbce5bf)
  • sim: let another mod register its own weapons (421fedc)
  • sim: let the bus correct its own aim after the engines stop (51a9a6e)
  • sim: let the operator ask a shot to arrive steeply (a105476)
  • sim: put a speed on each system row, and the site on the aim point (57062bb)
  • sim: quieten the Mk 21's ejection kick to a quarter (7f0f84e)
  • sim: ring the aim point on the ground instead of balling it over (316da5e)
  • sim: trim the bus back onto its solution before the warheads go (65d73d6)
  • sim: wait for the planet to bring a target under the orbit (9c44717)
  • sim: weapons on one craft share a target count (bb4ad2b)
  • ui: a lock cue on the glass, closing as the lock matures (bf35502)
  • ui: fold the ballistic computer's engineering settings away (743457d)
  • ui: mark what an installation is designated on (3785ace)
  • ui: move the panel's explanations into tooltips (7cabe16)
  • ui: only show a scope for a set that presents one (c555e15)
  • ui: open a camera window from the director's row, and name it (4dfafd3)
  • ui: pick a craft's team from its flag, declare teams in settings (9b82741)
  • ui: replace the system list with a vessel switcher (a395c0c)
  • ui: say what a director is watching, and let go of it (f4637e0)
  • ui: say when a target is off the orbital plane (4a9ee0d)
  • ui: say whether an off-plane target is a wait or a dead end (c9f72c3)
  • ui: stations carrying the same store are one weapon (a770237)
  • ui: surface the controls that were three folds down (af10a04)
  • ui: switch between the weapons on one craft (fd46f0e)
  • weapons: a B61 on a rack, and a warhead law that survives it (109eef9)
  • weapons: a heavy ICBM MIRV bus with six reentry vehicles (31862fe)

Fixes

  • camera: draw a long shot's rounds past their launcher's cull (a3e9bbe)
  • camera: hand the view back when the craft dies or vessel changes (7db21aa)
  • camera: keep a chased round in frame, and keep driving the view (4857501)
  • camera: keep the chase's view recording when a hand-back is refused (a2ad9fa)
  • camera: put the mode back when a chase is taken over by hand (dfa025c)
  • camera: ride a falling bomb down to its burst without flipping (94482cf)
  • camera: steady the chase aim, and hold it on the target to impact (810e44b)
  • camera: step before the planet is prepared, not after (05c7292), closes #11 #7
  • camera: stop the ground clamp shaking a low chase (9c7259e)
  • ci: clear the build warnings, and guard build.sh's argument (8e834ab)
  • damage: move the blast reference strength to KSA's 9 MPa base (3aff15f)
  • effects: burst a store whose craft has already been destroyed (992d6f2)
  • effects: flash at each barrel cluster, not at their mean (3737487)
  • effects: float the burst smoke and tracers on KSA's buoyancy (74b69a1)
  • effects: grow the smoke instead of shrinking it to nothing (b00212e)
  • effects: keep the plume and tracer on a loose round (f2ad8f8)
  • effects: lay rocket smoke white, not black (9f0f2ac)
  • effects: start the smoke at the tube mouth, not inside the launcher (d280e4c)
  • effects: thin the rocket smoke trail, and make its width a slider (05ffa73)
  • gun: carry the planet's centre under a long shot's lay (562f0d2)
  • gun: land ground shots where they are aimed (5a219a8)
  • gun: lay a gun on a designated craft to land on it (6d12bb3)
  • gun: lay a lobbed shell onto the whole of its reach (dcaf374)
  • gun: let a shell the ground stops land, however long it stays up (1d8f01e)
  • gun: search beyond reach over the ground, where the target is on it (01a8beb)
  • guns: lay a 20 mm lead on a close target (c817eed)
  • guns: lay a shell through the air that turns with the ground (0f82e05)
  • guns: let a gun-only mount fire at ground it is pointing at (043f590)
  • guns: re-solve a lay from nothing before calling it out of reach (9c61d37)
  • guns: stop a burst when there is nothing left to put it on (8cbd517)
  • icbm: a budget of nothing is not an arrival floor of nothing (b95cd37)
  • icbm: a cycle that takes no reading must report none (ac3d4e3)
  • icbm: a scoring run must not let the target shoot the warheads down (ebcd1a1)
  • icbm: ask the ground at the warhead's own instant, on by default (0ab54ea)
  • icbm: budget the trim against what the bus carries, not a literal (e0a4237)
  • icbm: cancel each warhead's release probe miss, on by default (5fafad0)
  • icbm: credit a pulse only for an interval it was in force for (78e0ee5)
  • icbm: crew a flight only for a craft whose weapon can reach (335d822)
  • icbm: do not adopt another rocket's stage as your own (e602bea)
  • icbm: do not ask the world for a step it cannot give (470017f)
  • icbm: do not correct an aim off a prediction flown from sea level (0a2dfe8)
  • icbm: do not warp the world while another rocket is still burning (d7345f8)
  • icbm: finish the trim's null in pulses, on by default (6b11a8b)
  • icbm: fly the shot end to end, ignition to corrected release (383a6dd)
  • icbm: give each warhead back its thrown spin, on by default (37511a8)
  • icbm: hold the target disarmed, do not set it once (80ad60f)
  • icbm: hold the world down for the aim measurement too (bc9c06e)
  • icbm: hold the world down for the trim, not for the whole coast (7c25770)
  • icbm: keep the best aim the correction found, not the last (6b1e61d)
  • icbm: keep the clearance once the gap has been measured (39f5a55)
  • icbm: keep the separation readable for the whole coast (b309e67)
  • icbm: kick a warhead whose release probe failed from a sibling's (14e65e9)
  • icbm: land a bus's six warheads on one point, on by default (9ff3a4e)
  • icbm: let a target be named to a centimetre, not to eleven metres (e6405fa)
  • icbm: let the keep-out cover the clearance, on by default (288170a)
  • icbm: let the keep-out cover what the clearance timeout did (d4623ae)
  • icbm: let the post-boost correction finish the run it started (3edbe64)
  • icbm: measure the holding cost by default, 110 m to 30 m (ac60ce8)
  • icbm: measure the kicked miss over the ground, on by default (95a5137)
  • icbm: name the craft on the trace's probe line (3bc3701)
  • icbm: name the directions a give-up struck off (2c9492f)
  • icbm: never leave the jets in pulse mode during a hold (7569b0a)
  • icbm: one flight takes the camera, not all of them (d520edd)
  • icbm: predict a warhead's flight through the air, not the ocean (1e5b45c)
  • icbm: read the aim off a correction that has been flown (62946c2)
  • icbm: read the air a warhead flies through at each sub-step (ae050d8)
  • icbm: read the probe's stop height at the ground-fixed point (81afbff)
  • icbm: refuse a demand that grows, not one that is merely large (dd18e1a)
  • icbm: release on a reading the trim cannot improve, on by default (865dd10)
  • icbm: say when the clearance opens, not only when it fails (d820739)
  • icbm: show the trim's sentence on the panel, not its comparison key (54b959f)
  • icbm: size the trim's ceiling by the job, not by a constant (9b48bd1)
  • icbm: stage from the worker's window, not from the GUI pass (71dd651)
  • icbm: stop a warhead on the terrain rather than a chord of it (0c5341b)
  • icbm: stop every prediction on the surface, on by default (9806e49)
  • icbm: strike off a dead thruster, not a live one losing a race (369bb42)
  • icbm: take a warhead's drag at the sub-step's midpoint speed (cc57b2a)
  • icbm: the coast warp never fired, because the magazine refills (7d72f24)
  • icbm: the forcing flag has to travel by file, not by environment (c418226)
  • icbm: the ground-sample diagnostic had the sign backwards (77d8ac7)
  • icbm: the holding cost was reading the hillside, not the arc (3c5ce5d)
  • icbm: the proximity watch measured the split, not a re-approach (2b81e89)
  • icbm: warp the ballistic coast by default (47ccb90)
  • keep stepping when the launcher dies, and hold the cutoff attitude (6da281c)
  • ksa: elect a control part when a craft has none (e64f099)
  • ksa: keep the pre-release coast at 1x, it is worth 470 m (723b30e)
  • ksa: read the primary through IParentBody, not Celestial (364c689)
  • log: stop warning about a turret a rack never had (f32da4a)
  • model: dilate the HARM's atlas so its mips stop bleeding black (cccd47b)
  • model: draw the cloud's stem narrower against its cap (fc736cd)
  • model: give the bus back the thrust it needs to clear its stack (9e3a3dd)
  • model: give the MIRV bus the mass six Mk 21s actually come to (0002713)
  • model: give the mushroom cloud a lean, a waist and a crown (f84ce7b)
  • model: hide the bare rail, and name a store after the store (e57ef89)
  • model: keep the leaning cap over the column holding it up (5dc0a8d)
  • model: put the fireball out before it climbs out of itself (4bd3e03)
  • model: seat the B61's blades on their hinge, not inside the bomb (67af00d)
  • model: sharpen the B61's tail and machine its aft cap (cadee9e)
  • model: start the burst tool's cloud on the ground, not a radius above it (6c1e3b5)
  • optic: hold the view where mouse aim leaves the head (9f96f7a)
  • panel: stop offering guidance controls to a rack that drops iron (1cd5abc)
  • radar: boresight a seeker along the rail, not its mount (580c01a)
  • radar: leave the pieces a burst breaks off out of the picture (427d194)
  • radar: let a director see everywhere it can point (6b6aaa4)
  • radar: turn the sweep the way the dish actually turns (7c19107)
  • rounds: allow for the planet's turn in the bomb sight (9a877a1)
  • rounds: an anti-radiation round needs a target that radiates (4ad4bb0)
  • rounds: ask a round what step it needs, not its profile (e6ce91a)
  • rounds: ask the ground where the round is, not a frame ahead (559fef8)
  • rounds: boost along the round, not along what it inherited (c98283a)
  • rounds: burst on the sea rather than on the seabed under it (0e74e7a)
  • rounds: call a shell a shell, not a negative tube (894e2c9)
  • rounds: carry a round body's roll from where it left (3bacf40)
  • rounds: carry the ground centre with the body across the frame (0eaf0c4)
  • rounds: fly a guided round on its own profile, not the 57E6's (6bcda00)
  • rounds: give the reentry vehicle the sub-step its accuracy needs (065907a)
  • rounds: guard both counts when placing round bodies (730ecd3)
  • rounds: hold the world to the short step, do not shorten the round (e85e25a)
  • rounds: integrate the clock the planets are placed on (ec38004)
  • rounds: integrate the frame a screenshot skips (dcef98c)
  • rounds: let a round be shot down, and stop tying one to its launcher (b133e2b)
  • rounds: let the clock run where there is no air to start it (6d3e144)
  • rounds: measure a round's airspeed where the round is (04755dd)
  • rounds: re-base rounds when their platform changes (451bde3)
  • rounds: read a missile's air at its own instant, not a frame off (fd0b236)
  • rounds: read the air where the planet was, not where it will be (faca978)
  • rounds: read the air where the round is, every sub-step (dad60c7)
  • rounds: reap a falling store on the fall, not on the flight (cd35f16)
  • rounds: release a store along the rack, not along the launch bias (3fa1e43)
  • rounds: sample the air behind the frame, not ahead of it (85eb8c3)
  • rounds: sample the world at the instant the world is at (dd158cd)
  • rounds: sample the world without carrying the round forward (e41f57f)
  • rounds: score a burst against the target at the instant it burst (f1b4cf0)
  • rounds: size a magazine once, not whenever the launcher blinks (fd42ce1)
  • rounds: steer a tail kit onto the landing it predicts (016c40b)
  • rounds: stop a salvo outliving the world it was fired in (3a5b56a)
  • rounds: strike what a shell touches before its fuze arms (ef25c50)
  • rounds: turn a store's body on from its last frame (5a9e82d)
  • sensors: let a director watch what it cannot shoot (0078d6c)
  • sensors: stop a set watching its own launcher's rounds (9f0ed32)
  • sight: fly the bomb sight in the ground's frame, not the ecliptic (5bae1b2)
  • sight: keep the camera in phase with the frame it is drawn in (3c02ded)
  • sight: paint on the window the head is driving, not the main view (e6903b4)
  • sight: solve the ring from the release the rack actually makes (abd9ccd)
  • sight: steady the readout and make the track order total (de5b651)
  • sim: a reloaded launcher does not get a second salvo (550489a)
  • sim: a store lying on the ground is not a weapons system (77e76d2)
  • sim: aim a round's gravity per sub-step, not once a frame (aea3e2a)
  • sim: aim a round's gravity where the body is, not where it will be (fe1df49)
  • sim: aim at the waterline over sea, not at the seabed (55b73a7)
  • sim: arm the weapon too, and warp the coast rather than the burn (0e4a37a)
  • sim: ask the part library through the call that answers (041032f)
  • sim: bound the bus's trim by the rate it is leaving the stack at (a29c5b3)
  • sim: coast clear of the spent stack before trimming the bus (a2f561f)
  • sim: correct the aim against the arc it will actually fly (a3251fa)
  • sim: correct the aim by what the flown arc actually loses (b902dc9)
  • sim: count a run of worse passes, not a flight's worth (fdfd325)
  • sim: count the arrival down, and record what capping the step cost (a7a4995)
  • sim: decide each post-boost pass on its reading, on by default (c59745c)
  • sim: default re-pointing off again, on flown evidence this time (5e1694e)
  • sim: default tube re-pointing off until the vehicle can hold it (0ccc30e)
  • sim: do not trim the bus into the stack it just dropped (19fe0c9)
  • sim: do not warn about rounds lagging when none are flying (4bbb223)
  • sim: drop a stray probe file and correct the sight's stale cost (eb20390)
  • sim: find the stack the bus dropped, instead of guessing at a clock (1fef399)
  • sim: follow a director onto the craft a decoupler took it to (992dfd8)
  • sim: grow a nuclear cloud on the step, not on the draw (d330286)
  • sim: hold a floored shot to its floor past the arrival latch (0bacf20)
  • sim: hold the aim correction out for the whole clearance wait (3da8f7e)
  • sim: hold the burn's direction frames before cutoff, not seconds (881e85f)
  • sim: hold the warheads while the bus is still turning (c4aa40a)
  • sim: hold timewarp down while a guided burn is running (26de5ed)
  • sim: integrate a warhead's fall to second order, on by default (7ca89a7)
  • sim: keep the bus trim solving while it waits to clear the stack (c187504)
  • sim: keep the panel on a weapon that changed craft (4938dce)
  • sim: keep the tubes' sweep out of the guidance loop (189e9a2)
  • sim: latch the warheads' arrival when they leave (631f0ac)
  • sim: let a night set a pass bar without naming an aim (e0b8323)
  • sim: let a round fall with the ground under it (8519c5d)
  • sim: let re-pointing start on a bus that never fully settles (434cf16)
  • sim: let the aim correction walk past its own best (4eb7306)
  • sim: let the post-boost aim converge, not run out of passes (e4bbdb4)
  • sim: let the scenario pick up a flight already under way (1eec184)
  • sim: let the trim finish on its budget, so the warheads go (2d7b878)
  • sim: measure a round's altitude against a planet that is moving (bdd1f94)
  • sim: measure the world against a clock, not against the engine (7bd76d2)
  • sim: never ask the world to run below real time (bd82f08)
  • sim: never move the aim further than the miss it is removing (d7b002d)
  • sim: pace the planning on the wall clock, and warp in hops (fdc2707)
  • sim: persist the four system settings that were silently dropped (3fa3cbc)
  • sim: predict from where the round starts, not where the craft is (7d0fb41)
  • sim: predict the line a re-pointed round actually leaves on (ca337bf)
  • sim: predict the warhead's flight, not the bus's (292e824)
  • sim: predict the warhead's release, not the bus's coast (3c2c8e3)
  • sim: print the group to a metre, not to ten (105ca4f)
  • sim: re-derive the pointing deadband from the thrusters aboard (f3fb138)
  • sim: re-read the ground as a warhead meets it, on by default (e936e37)
  • sim: reach the master arm where it actually lives (314277a)
  • sim: read the atmosphere KSA has, not the one IsValid admits to (36e7d07)
  • sim: read the bus's nose when it will not hold still (b08e6aa)
  • sim: read the post-boost aim only off a bus that is holding still (fbc556f)
  • sim: refuse a ballistic solution that never converged (7a7576f)
  • sim: report every craft's verdict when the scenario is waiting (7e8e506)
  • sim: restore the aim-bias accessor the revert took with it (d8268d2)
  • sim: sample arrival terrain in the epoch the prediction departs in (5643caa)
  • sim: sample terrain the way the round that stops on it does (fddd2b2)
  • sim: say why the aim correction stopped correcting (6161482)
  • sim: score the predicted impact in the epoch the target is known in (2119f16)
  • sim: spend one lateral budget on the release, not two gates (3da3765)
  • sim: stage past the booster, and not before it has burned (42fee35)
  • sim: stage the view change for the frame sync point (e76b255)
  • sim: step the mod from whichever hook the frame calls (81a4874)
  • sim: stop asking the engine to rebuild a part tree nobody changed (059c282)
  • sim: stop correcting the aim once the arrival is committed (41dc88d)
  • sim: stop predicting an impact the bus was never going to make (8080a28)
  • sim: stop the aim correction when it stops helping (932e416)
  • sim: stop the arrival latch committing more than the arrival (985743e)
  • sim: stop the burn along the line it is actually thrusting (eed5c0e)
  • sim: stop the bus trim and the aim correction winding each other up (7f8f5cb)
  • sim: stop the cutoff backstop ending a burn tens of m/s early (7f1ddf7)
  • sim: stop the impact countdown returning after the warheads land (bd564bb)
  • sim: stop the post-boost passes on the best, and on the tank (53ff056)
  • sim: stop the vehicle rolling, and point it while it waits (fb81694)
  • sim: stop the warp hold pausing the game and cancelling the burn (db16aaf)
  • sim: stop waiting out evidence the release sequencer already has (f6ec306)
  • sim: take the screening split back out of dev (6e6c6af)
  • sim: the mod must not read its own warp request as a competitor (ec1fd6a)
  • sim: throw the warhead along the tubes, not along the command (cbb2451)
  • sim: trim the bus against the arc it flew, not a fresh solve (dd248d3)
  • sim: turn each tube off where the launcher is, not off its command (c6d1fe4)
  • sim: unpause for the scenario, and say which test it is waiting on (302c4a5)
  • stop warping the world unasked, and let the warheads go at range (6c57dd7)
  • targeting: pick the ground where the pointer first meets it (5a724b4)
  • tools: read the way KSA actually does (92dd7ca)
  • tools: report the walk signed, and off the landing line (366037b)
  • ui: auto-engage is a mode, not a reason to hold fire (e876026)
  • ui: call the bomb rack's armament bombs (e4ad35e)
  • ui: designate a target by clicking the world, not a button (e22ca1c)
  • ui: fire the second rail, from the button people actually press (0edbeae)
  • ui: give every launcher its fire-control row back (a774369)
  • ui: keep a way back into the panel that does not rest on ModMenu (f91fa79)
  • ui: lock the craft under the pointer, not the ground behind it (263bec5)
  • ui: point the on-glass lock cue at the station the trigger reaches (f5021a5)
  • ui: reach the switcher, the map and the scope with the panel shut (774a7ae)
  • ui: report the station the trigger will reach, not the one selected (d425d66)
  • ui: say what the ballistic readouts mean (df34b09)
  • ui: separate holds that stop the trigger from auto-engage's own (69d675c)
  • ui: show a rack only the controls that describe it (9800a8e)
  • ui: stop the director minting a second row for itself (dbf79e9)
  • ui: stop the panel calling a working cannon "fitted, not run" (7a89e60)
  • ui: stop the style stack unbalancing on a toggle button (07660cf)
  • ui: tell a held lock apart from one still maturing (c3f0537)

Performance

  • icbm: keep the aim ring's shape instead of re-draping it (0e6e1df)
  • icbm: pace the impact readout on the wall clock, not the world (302ad69)
  • icbm: park the view 25,000 km up, not on the far ground (b2d7a40)
  • icbm: park the view off the planet while a scripted shot flies (4c62ae8)
  • icbm: the parked view is worth 7 per cent, and say so (f3203cb)
  • ksa: stop writing a log line per frame, and let the coast warp (7205207)
  • sim: cache which body a ground lookup is over (ee0ed8e)
  • sim: close the ballistic miss to tens of metres (de435ad)
  • sim: no bomb pipper on a rocket a ballistic computer is flying (3bcadaa)
  • sim: rate-limit the bomb sight and skip stores it cannot sight (e95f347)
  • sim: stop walking the system twice for every draped point (ce4cb50)

Build and packaging

  • ksa: retarget 2026.8.22.5348 (a4442a3)
  • ksa: retarget 2026.9.10.5438 (72b6f21)
  • ksa: retarget 2026.9.4.5400 (d3fc7f5)
  • ksa: retarget 2026.9.7.5402 (2cd2433)

0.8.44 (2026-08-11)

Features

  • model: build the optical head as a part of its own (680d2ed)
  • model: take the gun off the kitten (fa48b51)
  • model: take the optical head off the Pantsir (bf39bca)
  • parts: declare the EO director as a part anything can carry (8e1c842)
  • parts: give sensors their own tab, beside weapons (7236a27)
  • parts: give the weapons their own tab in the editor (5aa41b7)
  • parts: let the Pantsir start a craft, and carry a director (c026cc8)
  • radar: look over the real skyline, and say what it costs (5370f8d)
  • radar: tell targets apart by what they are (1f80f8f)
  • rounds: show where a bomb would land (cc7540a)
  • sensors: crew an optical director that aims itself (36af8e5)
  • sensors: the sight belongs to the director, not to the launcher (3eb528b)
  • sight: let the drag speed build from the edge of the rest area (edb61db)
  • sight: magnify, and show the lead being taken (e4bd2da)
  • sight: make levelling the horizon a choice (c1191ec)
  • sight: point the director with the mouse (d1536aa)
  • sight: show the drag, and give the cursor somewhere to rest (30312a1)
  • ui: give every component its own state and controls (cdf70d0)
  • ui: move what belongs to the session out of the craft's window (40494f7)
  • ui: put each director under its own component row (bd8ef85)
  • ui: put the fire-control answer above the tabs (ffaa616)

Fixes

  • assets: stop a subpart and a mesh sharing one id (57a61d8)
  • camera: fly the chase at the player's field, not the sight's (a0df348)
  • parts: stop a camera alone making a craft a weapons system (a884fc9)
  • rounds: point a released store along the tube it left (f3ecd4a)
  • sensors: choose the head's roll instead of inferring it (9ef4cbd)
  • sensors: level the horizon, and keep the head out of its own mast (4c8d467)
  • sight: aim the camera in phase with the frame it is drawn in (d02cbe1)
  • sight: aim the optical head from the head, not from the hull (a61dead)
  • sight: carry the camera's roll through straight down (7ece0e6)
  • sight: correct a levelled roll instead of choosing it (416c72a)
  • sight: draw under the panel, and on the target not beside it (fd67f2e)
  • sight: keep the horizon on screen, and centre what the head watches (673f928)
  • sight: make the cursor's rest area hold the head, not park it (faa2585)
  • sight: roll with the head by default instead of levelling (4e5bcfa)
  • sight: stop building the roll where the answer is worthless (0e52998)
  • sight: stop the roll probe reporting a take as a jump (a6bb5e3)
  • turret: slew the drives on an even clock (6b38bfa)
  • ui: do not read a weapons system from a craft that has none (6ccc218)
  • ui: give the director its own IFF and its own protected craft (c4cb58e)
  • ui: keep a director-only craft selected when it is managed (15ef3dc)
  • ui: list a craft that carries only a director (583937f)
  • ui: show the bomb sight on what drops, not on what has no missiles (ba12bfc)
  • ui: stop the panel crashing on a craft that carries no weapon (f6422f2)

Build and packaging

  • ksa: retarget 2026.8.19.5261 (3af5598)

0.8.43 (2026-08-09)

Features

Fixes

  • camera: measure the chase transition at one instant (96dec54)
  • camera: put the chased round in the engine's epoch (15021cb)
  • radar: turn the search array on an even clock (0da3634)

0.8.42 (2026-08-08)

Features

  • camera: level the horizon on a view the mod is driving (1eac3ca)
  • camera: put the optic on the main view, and fly onto a round (1d05ebd)
  • radar: let a sensor see a round in the air (3ffad80)
  • rounds: let a round burn in stages (59967d7)
  • rounds: let a round say what step it can be flown at (4b638fa)

Fixes

  • aim: let the cursor land on a craft with no mesh (2a54bec)
  • aim: put the cursor's aim point where the cursor is (63ad0ca)
  • effects: draw cannon fire as a stream, not as beads (0806555)
  • effects: stop each system tearing down every other system's effects (91c15ca)
  • rounds: make a designated ground shot do something (70578f5)
  • rounds: make a gun round hit what it strikes, and only that (8cf6aa4)
  • sim: bring team names back with the systems that name them (8dec444)

0.8.41 (2026-08-08)

Features

  • rounds: add the Mk 15 Phalanx CIWS, a gun that stacks (2e0ab41)
  • rounds: give the cannon a trigger, a flash, tracers and a voice (9e3f191)
  • ui: let ModMenu list us, without depending on it (0a0ed94)
  • ui: name our menu KSArmory rather than Mods (2ef65e0)
  • ui: open the panel from the game's menu bar (b8be350)

Fixes

  • effects: stop a pooled emitter rather than only unregistering it (5e6cc1d)
  • model: swing the CIWS radome with its gun (7b1e5b9)
  • rounds: resolve the CIWS drives, and stop it reloading forever (4076215)
  • rounds: say why a gun-only system holds fire, and arm its fuse (e74fba9)
  • rounds: stop a burst outliving the belt (6c80fd6)
  • turret: aim the cursor from the mount, not from the camera (4a0f82c)
  • turret: aim through the launcher's own mounting (7b9c765)

0.8.40 (2026-08-07)

Features

  • rounds: add the LAU-7 Sidewinder rail, and mouse designation (d96ae69)
  • sim: rocket motors you can hear and see, and a bang at the burst (ad13bef)
  • tools: drape the placement markers and make them a torus (6981d4b)
  • tools: fly a scripted engagement with nobody watching (c0a262a)
  • tools: load a save from the mod, so a scenario needs no clicks (2a981a7)

Fixes

  • build: ship every asset folder, not just Meshes and Textures (02382a2)
  • sim: make Safe all actually make the battery safe (2ea992c)
  • sim: notice a save before the player can load it (32d42a2)
  • ui: grey out (+) for the craft already being looked at (d019778)

0.8.39 (2026-08-06)

Features

  • tools: draw the placement markers as smooth bands (e9eedf1)

Fixes

  • tools: ring the craft's feet instead of burying it in a sphere (e000ebb)

0.8.38 (2026-08-06)

Fixes

  • tools: stop the craft mover moving a craft that was not moved (9cc2750)
  • ui: draw corners only when the sight is small (67646f3)

0.8.37 (2026-08-06)

Features

  • ui: let the target brackets grow all the way in (c4e31ea)
  • ui: size the target brackets by the closing, not the target (2adbcb3)

0.8.36 (2026-08-06)

Fixes

  • ui: only take the view for the craft it is already on (6140aa4)

0.8.35 (2026-08-06)

Fixes

  • ui: shrink the chase brackets and drop the ranging ladder (b2eee3e)

0.8.34 (2026-08-06)

Features

  • ui: bracket the target while chasing a round (ddf2e41)

0.8.33 (2026-08-06)

Fixes

  • ui: keep the camera closing until the round goes off (56ba3fb)

0.8.32 (2026-08-06)

Features

  • ui: accelerate the chase camera into the impact (1784bfb)

0.8.31 (2026-08-06)

Features

  • ui: close the camera on time to impact (c0f5a9c)

0.8.30 (2026-08-06)

Fixes

  • ui: measure the closing range against the target, not the aimpoint (cb1f42f)

0.8.29 (2026-08-06)

Features

  • ui: close the chase camera in as the round arrives (232adee)

0.8.28 (2026-08-06)

Features

  • ui: start the chase once the round is clear of the launcher (a9dadfd)

0.8.27 (2026-08-06)

Fixes

  • ui: follow the next launch after a burst, not never again (48070c2)

0.8.26 (2026-08-06)

Fixes

  • ui: hold the burst against the ground, not against the ecliptic (1f580ce)

0.8.25 (2026-08-06)

Fixes

  • ui: follow the round itself instead of computing a camera offset (f07dde2)

0.8.24 (2026-08-06)

Fixes

  • ui: keep the chase view off the reference axis (cf3f6cc)

0.8.23 (2026-08-06)

Fixes

  • ui: hold the burst still, and stop taking the view straight back (8cbd3d0)

0.8.22 (2026-08-06)

Fixes

  • ui: stop the chase shivering, grabbing back, and cutting away (572a516)

0.8.21 (2026-08-06)

Fixes

  • ui: drive the camera the way Fixed mode expects (4095a91)

0.8.20 (2026-08-06)

Fixes

  • ui: finish the camera restore before re-attaching the follow (0687f27)

0.8.19 (2026-08-06)

Fixes

  • ui: stop the chase camera crashing the game (26be9c8)

0.8.18 (2026-08-06)

Features

  • ui: ride the camera behind a round in flight (468271f)

0.8.17 (2026-08-06)

Features

  • ui: make the timed airburst reachable (158f446)

0.8.16 (2026-08-06)

Features

  • radar: stop the radar seeing through the planet (2222f02)

0.8.15 (2026-08-06)

Features

  • rounds: burst the cannon shells on a timed fuse (3bd441a)

0.8.14 (2026-08-06)

Features

  • api: only accept reports against the newest release (9a3edb5)
  • ui: hide reporting on a game build this was not made for (7a761e6)
  • ui: say which KSA build reporting was decided against (c6d2bbd)

Fixes

  • api: stop thanking people for reports that were dropped (0d7a0f1)
  • ci: grant the release workflow packages: read (1b04662)
  • ui: drop the buttons silently on an unsupported build (940d634)

0.8.13 (2026-08-06)

Fixes

  • api: stop refusing short English as foreign (b62af57)

0.8.12 (2026-08-06)

Features

  • ui: report a bug or send feedback from the panel (18cd754)

Fixes

  • ui: read the response status by reflection (9276e94), closes #3

0.8.11 (2026-08-06)

Fixes

  • api: let the service see the real client address (7b892ac)

0.8.10 (2026-08-05)

Features

  • sim: keep a system's settings inside the save it belongs to (5afd27f)
  • ui: let a system's remembered settings be reset (8463de5)

Fixes

  • rounds: floor how small a warhead effect is drawn (c08055d)
  • rounds: put the burst where the round is drawn, not where it is (5a98fea)
  • rounds: stop the airburst compounding two reductions to nothing (7414605)
  • sim: opening a save is a read, not a write (1b96bad)

Internal

  • ui: drop the Kittens pane and the Session group with it (3b016bc)
  • ui: split the panel into Ksa/Ui/ along the pane seam (51b0a6f)

0.8.9 (2026-08-05)

Features

  • sim: scope each system's settings to the save it was set in (990f015)

0.8.8 (2026-08-05)

Features

  • model: give the kitten a shoulder cannon (35e9404)
  • rounds: draw the fallback smoke as soft billboards, not spheres (57ca05d)
  • rounds: give a warhead a charge, and read its reach off it (56ea053)
  • rounds: let the fireball linger instead of blinking (763f244)
  • rounds: render the smoke volumetrically instead of as spheres (d8b9d92)
  • rounds: show a fireball where the warhead goes off (67b6eb2)
  • sim: classify a camera as its own role, not a sensor (dd8110c)
  • sim: give every weapons system its own battery (ab033e0)
  • sim: keep each system's settings between sessions (c7b3626)
  • sim: report the roles a prefab carries inside itself (3a713c2)
  • sim: survey a craft for the weapons installed on it (764e8b6)
  • turret: aim the launcher with the mouse, from a panel toggle (aa9fff7)
  • ui: bracket every weapons system on screen, with range on hover (9de62e1)
  • ui: click the world to set off a warhead there (098f5f1)
  • ui: draw the world overlay for one system, and add a master switch (2ad96bc)
  • ui: drop a system's marker once it fills the view (f4fc27a)
  • ui: go to a weapons system from the list (9fce592)
  • ui: group a system's components by role, foldable (9a08d18)
  • ui: hold the main view on a system, from where you are (be20b65)
  • ui: let go of the view the moment the player moves it (c37f82c)
  • ui: let the panel arm a kitten, and say which character it wears (ed16726)
  • ui: let the weapons-system markers be turned off (69d4548)
  • ui: look at a system from the list, and mark it (2220295)
  • ui: mark a system the planet is in the way of (5b8a933)
  • ui: nudge the view towards a system instead of seizing it (87b2b64)
  • ui: one row per system, and a window per system to manage it (90e9b64)
  • ui: pick a craft anywhere on it, and place onto it squarely (0f81693)
  • ui: pick a craft up and set it down somewhere else (6f9242e)
  • ui: pick which system the panel configures, and move IFF onto it (6ce0505)
  • ui: pin a system's label from the panel, and drop the ping (4f99c8b)
  • ui: point an edge arrow at a system that is out of view (660a43a)
  • ui: put a lock on a marker's label to keep it up (0b205f2)
  • ui: put the world overlay behind one debug switch, off by default (0e73086)
  • ui: report the character a flown kitten is actually wearing (ac27609)
  • ui: ring the craft under the cursor, and land on the terrain (0b3a302)
  • ui: say why the battery is holding fire (8c5d03c)
  • ui: show which link of the armed-kitten chain resolved (6504ed9)

Fixes

  • model: allow the gun's embedded material to be used (56075de)
  • model: drop AllowEmbedded, whose stated reason was wrong (6b23d32)
  • model: export the kitten gun in character space, not metres (2b9ae32)
  • model: load the character XML, and stop the panel crashing the game (1c1bc28)
  • model: permute the gun into rig axes, so it stops pointing sideways (87fa3bf)
  • model: reference the gun attachment as the deserialiser reads it (f74e2ac)
  • rounds: make the burst radial, not a cone in a fixed direction (0fc2e2e)
  • rounds: nest the burst stages inline rather than by Id (fad77b0)
  • rounds: ship a fireball that draws without screen-space particles (a472e98)
  • rounds: stop the whole burst falling out of the sky (b616ff8)
  • sim: let the warp stand-down budget survive a good frame (186ac0a)
  • sim: stop the warp hold oscillating and fighting the player (82a8eb5)
  • ui: build the cursor ray from a single camera (83eff0e)
  • ui: drive the orbit view's angles, not the controller's copy (6c67345)
  • ui: put the landing marker on the pad rather than under it (6926608)
  • ui: report the kitten off the controlled vehicle, not the platform (e1d60ed)
  • ui: scale the cursor into framebuffer pixels, not viewport pixels (a8a086d)
  • ui: solve the placement point on the cursor ray, not above it (fbf5183)
  • ui: unfollow before Fixed, which was crashing the game (a16e6e3)
  • ui: watch a system by following it, not by rotating the camera (721cb9b)

Internal

  • sim: make BallisticLead difference its own inputs (34a08e2), closes #4
  • sim: split a battery's own settings out of Config (2cae242)
  • ui: make the survey a system's component list (4ab5cb6)
  • ui: open on the weapons systems, not the craft in view (def5f33)
  • ui: open panes with buttons rather than tick boxes (c80e6ac)
  • ui: say "not crewed" rather than naming the mod's internals (1e3317e)
  • ui: split the panel into a main window and pop-out panes (2bac915)

Documentation

  • correct MODULARITY.md and make it cite symbols (b79523e)
  • record that a character attachment cannot be aimed (e0347b5)
  • record that a kitten cannot be launched from a vehicle save (1d213a3)
  • record two more character-attachment traps (7d36df8)

0.8.7 (2026-08-05)

Features

  • sim: hold timewarp down while rounds are in the air (2e42236)

Fixes

  • sim: stop the cannon and the missiles fighting over one bearing (7a09938)

Internal

  • stop hardcoding one weapon system; fix two comments (865e232)

Documentation

  • repair the drift the audit found in CLAUDE.md (b45a6cf)

0.8.6 (2026-08-05)

Fixes

  • guns: stop a burst outliving its lock from crashing fire control (aab4c57)

Documentation

  • confirm the retarget in flight, and round bodies at 79 km (09e0a19)

0.8.5 (2026-08-05)

Build and packaging

  • ksa: retarget 2026.8.5.5168 (80fb957)

Documentation

  • record that the retarget has not been flown (da83bf8)

0.8.4 (2026-08-05)

Features

  • ui: make teams and IFF reachable (7c15b2c)

Fixes

  • sim: report the simulated time the frame hook throws away (93c7e01)

Documentation

  • lead the README with the mod rather than with the Pantsir (a8e0253)
  • mark the model repairs confirmed in flight (44fd7a8)
  • record the August audit and its ranked backlog (7cc7f48)

0.8.3 (2026-08-04)

Features

  • rounds: fit the 30 mm cannon, and an optical head to watch through (cd0c721)

Fixes

  • model: repair the pod frame, the turntable and the gun sponsons (86a0784)
  • ui: name the files the mod actually writes and ships (e7a0384)

Documentation

  • record what is blocked on KSA, and the atlas loader's contract (48138ec)

0.8.2 (2026-08-04)

Features

  • turret: elevate the cannon with the launcher (8035fba)

Fixes

  • model: mount the cannon on sponsons and give them daylight (1fc641c)
  • model: place the cannon where their mesh was recentred (a9682b6)
  • model: raise the cannon clear of the turret body (14668ab)
  • model: unbury the cannon and give them their own body (371866c)

Documentation

  • correct the versioning docs to match what the config now does (f2444b7)
  • hold the copyright as KSArmory, and repair the changelog links (bc57e39)
  • write down what a different mod loader would have to provide (26f434a)

0.8.1 (2026-08-04)

Features

  • radar: let teams form coalitions rather than only mine-versus-all (bf45225)

Build and packaging

  • cut patches for features too, and tag minors by hand (7e5afe6)
  • name the assembly and its assets KSArmory too (527520d)
  • rename the in-game panel to KSArmory (0f3177d)
  • rename the project to KSArmory (a3576b8)

Documentation

  • commits carry no attribution trailer (e7e6038)
  • feat means observable in the archive, not merely enabled (4ecdef3)

0.8.0 (2026-08-04)

Features

  • radar: identify contacts by team before engaging them (94da4d8)
  • rounds: fly through any medium, including water (8dde3f7)
  • sim: decouple magazine depth from tube count (82a1e0b)
  • sim: let a round aim at a part or a point, not only a craft (4e83b23)

Documentation

  • audit modularity against torpedoes, RPGs, aircraft and submarines (aab95dd)
  • comments state the fact, not the history (59b6cf0)
  • record what the four changes unblocked, and what is still open (31349fa)
  • strip history and narrative from comments (a7ed136)
  • write down the rules for comments and keeping docs true (85c8ae6)

0.7.0 (2026-08-04)

Features

  • radar: let a sensor choose where its search cone points (c184fb9)
  • rounds: scale drag by air density so vacuum launches work (da005cb)
  • sim: give each tube its own launch direction (3a6416b)
  • ui: add slow-motion simulation speed buttons (90f1c80)

Fixes

  • rounds: aim at the target's own instant, not one step ahead of it (9ed1b06)
  • rounds: draw rounds from the frame that simulated them (e7548c1)
  • rounds: measure the drawn offset against its own frame's platform (bea84a6)
  • rounds: measure the tube muzzle from the centre of mass (589c49b)
  • rounds: seat every body so none can flash at the vehicle origin (4140846)
  • rounds: stop a launching round pointing along Earth's orbit (6ae0753)
  • rounds: track loaded tubes instead of deriving them from ammo (628d57a)
  • sim: join KSA's vehicle solvers before destroying a target (e3be8ea)
  • sim: step on what the engine applied, not on the pause flag (48d7ef6)
  • testtarget: spawn kittens as KittenEva so they can be flown (770244d)

Internal

  • sim: lift the launcher's tube geometry out of LauncherPart (90a892f)
  • sim: lift the sim-step dedup into a testable gate (c78d541)
  • sim: lift tube bookkeeping into a testable Magazine (3ca5ba1)
  • sim: make the projectile an abstraction, not one class (df18e45)

Documentation

  • correct the modularity audit after the extraction moved it (159bd46)
  • record how far the weapon-system split generalises (4ded6a3)

0.6.0 (2026-08-03)

Features

  • model: fold clipped-delta fins out after launch (4c2062d)
  • rounds: seat loaded rounds in their tubes (01678fa)
  • ui: put the tube markers behind a debug toggle (19b7940)

Documentation

  • model: record the three traps that only bite hand-built meshes (980a285)

0.5.2 (2026-08-03)

Fixes

  • sim: step on this frame's interval, expressed in simulated seconds (b6ad885)

0.5.1 (2026-08-03)

Fixes

  • draw: step on the frame delta the platform sample moved over (05dc512)

0.5.0 (2026-08-03)

Features

  • radar: engage only what the round can actually reach (585b318)
  • rounds: fly the 57E6 as the command-guided weapon it is (9060854)

0.4.4 (2026-08-03)

Fixes

  • rounds: accumulate travel rather than difference ecliptic positions (c17735c)

0.4.3 (2026-08-03)

Fixes

  • rounds: stop extrapolating the platform a frame past where it is (b422d39)

0.4.2 (2026-08-03)

Fixes

  • rounds: fuse on proximity, not on the seeker holding the target (5b9e68e)

Documentation

  • do not commit a behaviour fix until it is verified in game (28b2d14)

0.4.1 (2026-08-03)

Fixes

  • sim: step on the delta KSA applied, not one measured around it (80023e4)

0.4.0 (2026-08-03)

Features

  • rounds: add a round-body toggle and placement tracing (0735022)

Fixes

  • build: silence the two nullable warnings in TestTarget (a2bcb04)

0.3.2 (2026-08-03)

Fixes

  • rounds: place round bodies every frame, not every simulation step (609d783)

0.3.1 (2026-08-03)

Fixes

  • sim: step on simulation time, not wall-clock player time (21f07e7)

Internal

  • radar: move threat ranking into Sim/ so it can be tested (5876c61)

0.3.0 (2026-08-03)

Features

  • tools: mirror and decompile the whole KSA SDK (4bf7ed7)
  • tools: narrow a KSA update to the changes that touch this mod (cd3fe6b)
  • tools: record the KSA API surface this mod binds to (e5f9c87)

Documentation

  • add an upgrade-ksa skill and record the new workflow (1142ca4)

0.2.0 (2026-08-03)

Features

  • model: compare two mesh atlases by geometry, not by bytes (212418e)
  • tools: notice a KSA update on the first build after it (04a1746)
  • tools: watch RocketWerkz's version endpoint for KSA updates (89ba25f)

Documentation

  • cross-reference the KSA update procedure from the commands list (f0aec7c)

0.1.1 (2026-08-03)

Build and packaging

  • release: add publish-release.sh for machines with KSA (6af1bed)
  • resolve the KSA assembly folder in tiers (a7f72e7)