MassArty


Artillery remote paints for coverage instead of stacking shots: singles, saturation discs, and drag-select hunts.

Utilities
6 days ago
2.1
19
Combat Enemies Cheats

Changelog

Version: 0.10.110
Date: 2026-10-17
  Changes:
    - Large selections now open an attack plan. Review targets, start or pause attacks, and approve additions before they fire.
    - Attacks work through steps of up to 50 structure targets, with firing and impact progress, ammunition checks, and a cooldown between steps.
    - Resize and drag the plan window, switch between plan tabs, and browse steps in one compact row.
    - Choose whether to hunt survivors and see killed enemies counted by type.
    - Large selections show preparation progress as targets are found, with less tracking overhead during attacks.
    - Plans resume paused after loading a save. Closing a plan cancels its unlaunched attacks.
Version: 0.10.109
Date: 2026-10-13
  Changes:
    - Storefront description polish - no gameplay changes.
Version: 0.10.108
Date: 2026-10-13
  Changes:
    - Storefront metadata cleanup only - no gameplay changes. Description text synced with the portal listing.
Version: 0.10.107
Date: 2026-10-13
  Changes:
    - Storefront metadata cleanup only - no gameplay changes. Player-facing description rewritten, publish whitelist added.
Version: 0.10.106
Date: 2026-10-13
  Changes:
    - The demolisher stream is now fully continuous: the intercept is recomputed every tick from the live head position + measured velocity + launch delay, so each dripped flare lands on the current intercept. No more volley boundaries in the painted line - one unbroken stream tracking the worm. The 2s eval still handles corrections, spam sizing and logging. LOG_REV=40.
Version: 0.10.105
Date: 2026-10-13
  Changes:
    - Volley flares spread uniformly along the previous-aim -> current-aim segment instead of stacking at one point: marks form one unbroken line [......] instead of per-volley clusters [...]---[...]. LOG_REV=39.
Version: 0.10.104
Date: 2026-10-13
  Changes:
    - Paint rate throttles to the measured shell-arrival rate (EMA of per-impact inter-arrival): painting ~40 flares/s while guns consume ~3/s stacked unclaimed marks into visible per-volley clusters. Queue surplus simply backlogs - fire rate is now set by real gun throughput. LOG_REV=38.
Version: 0.10.103
Date: 2026-10-13
  Changes:
    - All drip flares paint the single aim point: artillery rounds land exactly on their flare (no dispersion), so the walking paint trail was what spread impacts across the worm's body - every "mid-body hit" was a mark on the trail, not an aim error. The stream cadence stays continuous. LOG_REV=37.
Version: 0.10.102
Date: 2026-10-13
  Changes:
    - Experiment flipped: -5 tiles of fixed lead instead of +5 - +5 overshot. LOG_REV=36.
Version: 0.10.101
Date: 2026-10-13
  Changes:
    - Corrections apply once per volley instead of once per shell flight: EMA smoothing + the 15-tile step cap already bound each move, and the ~200-tick residual delay needed convergence 3x faster. LOG_REV=35.
Version: 0.10.100
Date: 2026-10-13
  Changes:
    - Experiment: +5 tiles of fixed lead on top of lead_adj, to check whether the residual aim shortfall is a constant offset. LOG_REV=34.
Version: 0.10.99
Date: 2026-10-12
  Changes:
    - Correction deadband tightened 8 -> 4 tiles: a residual ~-10 along error sat inside the old band and never corrected, leaving impacts centered just behind the head. LOG_REV=33.
Version: 0.10.98
Date: 2026-10-12
  Changes:
    - Intercept flight is distance-dependent again: lead_ticks(aim) iterates with the aim point (a closing worm shortens the flight); measured paint-to-impact time now only calibrates the launch-delay component, where turret rotation actually lives. LOG_REV=32.
Version: 0.10.97
Date: 2026-10-12
  Fixes:
    - Measured arrival time is clamped into the physical window (raw flight .. raw flight + 400) and wild FIFO mis-pairs are rejected: a stale paint tick collapsing t_arrive to ~183 stranded the aim mid-body. LOG_REV=31.
Version: 0.10.96
Date: 2026-10-12
  Changes:
    - The intercept now uses measured paint-to-impact time for the hunt: worm speed and flight are constant, so a per-hunt EMA of real arrival times (which already includes gun rotation state and range) replaces the nearest-gun distance estimate + halved delay model that was ~30 tiles short. LOG_REV=30.
Version: 0.10.95
Date: 2026-10-12
  Changes:
    - Lead correction steps are capped at +-15 tiles: a single scattered overshot yanked the offset -49 tiles in two volleys and stranded the aim mid-body. LOG_REV=29.
Version: 0.10.94
Date: 2026-10-12
  Changes:
    - Stream paint point may lag at most 10 tiles behind the aim: a walking paint point left a painted trail the worm's body swept through, so shells kept landing mid-body even with a correct lead. LOG_REV=28.
Version: 0.10.93
Date: 2026-10-12
  Changes:
    - On-body impact samples clamp at along=-15 for the correction mean: a shell hitting a far-back segment measures body geometry, not lead error - the -65/-90 cluster dragged the aim ~30 tiles behind the head. Off-worm late impacts keep full range. First confirmed demolisher kill this run (hunt=10, 51 shots). LOG_REV=27.
Version: 0.10.92
Date: 2026-10-12
  Changes:
    - Lead correction is now an additive offset in tiles along the motion line, not a multiplier of the computed intercept: the old bias could collapse to its 0.1 floor and paint flares right on the head instead of leading it. adj= replaces bias= in the log. LOG_REV=26.
Version: 0.10.91
Date: 2026-10-12
  Changes:
    - The stream paint point now walks toward the latest aim at worm speed instead of teleporting per volley: aim corrections just bend the path and the painted line stays continuous - no more gaps between volley trails. LOG_REV=25.
Version: 0.10.90
Date: 2026-10-12
  Changes:
    - Fire aftermath is skipped on all of Vulcanus, not just within 500 tiles of a worm - demolishers are fire-immune, lava terrain has nothing worth burning, and the per-impact proximity scan goes away entirely.
Version: 0.10.89
Date: 2026-10-12
  Fixes:
    - Demolisher volleys no longer run the friendly-force proximity check: a worm charging into the base puts aim points near player turrets, silently suppressing whole volleys - that is the "30 s cadence" observed between shots. Pack hunts keep their friendly check in apply_solution. LOG_REV=24.
Version: 0.10.88
Date: 2026-10-12
  Changes:
    - Locked volleys stop creeping the stream: every flare paints the same intercept point for maximum hit fraction (~0.17 was the bottleneck, not volume). Probing still creeps for coverage. LOG_REV=23.
Version: 0.10.87
Date: 2026-10-12
  Changes:
    - Lead correction now reads an EMA of the along error across volleys, not the per-volley mean: the aim trail spans ~50 tiles so single-volley means were bimodal noise driving a seesaw (err=-46/+72 alternating). err= in the log is the smoothed value. LOG_REV=22.
Version: 0.10.86
Date: 2026-10-12
  Changes:
    - Probe volley floor raised 3 -> 8 and the drip rate floored at 1 flare/15 ticks: sparse probe volleys painted "batch, gap, batch" instead of a continuous stream. LOG_REV=21.
Version: 0.10.85
Date: 2026-10-12
  Changes:
    - Volley stream accumulates instead of resetting: leftover flares carry into the next eval window and the drip rate self-balances, so the stream is continuous instead of "batch, gap, batch". LOG_REV=20.
Version: 0.10.84
Date: 2026-10-12
  Changes:
    - Volley log now prints err= (the mean along error that drove this cycle's correction). LOG_REV=19.
Version: 0.10.83
Date: 2026-10-12
  Changes:
    - The volley stream now creeps forward at the worm's measured velocity: each dripped flare paints at aim + v*(ticks since volley), so the flare line tracks the head instead of clustering on the volley's stale aim point. LOG_REV=18.
Version: 0.10.82
Date: 2026-10-12
  Changes:
    - Demolisher volleys stream instead of burst: the volley count is queued and flares drip out evenly across the 2s eval window (~1 per 1.5 ticks at cap) with the first shot fired immediately - shells and their scored impacts arrive continuously, making per-volley stats and the kill math cleaner. LOG_REV=17.
Version: 0.10.81
Date: 2026-10-12
  Changes:
    - Lead correction step cap raised +-0.5 -> +-1.5 for large consistent errors: convergence to a +50 overshoot took ~3 adjustments while regen healed the worm back from 104k. LOG_REV=16.
Version: 0.10.80
Date: 2026-10-12
  Changes:
    - Intercept solve uses half the measured fire delay: mean flare-to-launch delay includes cold turret rotation, but the first shells to land come from warm guns and were systematically overshooting ~68 tiles ahead. LOG_REV=15.
Version: 0.10.79
Date: 2026-10-12
  Fixes:
    - Scatter-miss volleys no longer decay spam below the computed kill volley once dmg_est/hit_frac are known - measured ~40k/hit on this save means the floor must stay at kill volume or regen wins between bursts. Also fixed .prototype accessor. LOG_REV=14.
Version: 0.10.78
Date: 2026-10-12
  Fixes:
    - Crash: LuaEntity exposes .prototype, not .entity_prototype (regen sizing math).
Version: 0.10.77
Date: 2026-10-12
  Changes:
    - Volley flare grid tightened to 0.2 spacing (~2 tiles for 80 flares) with matching dedup radius - wide spread would dilute damage concentration.
Version: 0.10.76
Date: 2026-10-12
  Changes:
    - Volley need is doubled for margin and the cap raised 40 -> 80 flares (paint grid widened to 10x10). LOG_REV=13.
Version: 0.10.75
Date: 2026-10-12
  Changes:
    - Demolisher volley size is now computed from the kill economics instead of blind escalation: per-shell damage is measured from real hp deltas + healing_per_tick, hit fraction from hits/painted, and locked volleys fire flares = ceil((regen + hp/60 pool drain) / dmg_per_flare). The log prints dmg= and frac= so the model is auditable. LOG_REV=12.
Version: 0.10.74
Date: 2026-10-12
  Changes:
    - Head-hit bursts trigger LOCKED directly (hits>=3) instead of waiting on the along-error metric; while locked, spam doubles every volley (cap raised 25 -> 40, paint grid widened to 8x8). Same aim, way more shells once it is landing. LOG_REV=11.
Version: 0.10.73
Date: 2026-10-12
  Changes:
    - Demolisher aim now iterates the intercept solve three times (flight at aim -> aim at flight): constant worm speed means the first shot is nearly exact, and bias only has to absorb turret-rotation variance. LOG_REV=10.
Version: 0.10.72
Date: 2026-10-12
  Fixes:
    - Lead corrections get a deadband (|err|>8) and a +-0.5 step cap: artillery scatter at long range is +-30-50 tiles along the track, so a scattered volley's mean was whipsawing bias even with a correct aim. Corrections now only react to real bias and never jump more than half a lead-length per adjustment. LOG_REV=9.
Version: 0.10.71
Date: 2026-10-12
  Fixes:
    - Turn guard: each painted aim records the worm's velocity direction. An impact scored against an aim whose heading differs >~30deg from the worm's current heading is a turn artifact, not a lead error, and is skipped (logged "demolisher turn") - this is what broke the lock after the worm turned mid-run. LOG_REV=8.
Version: 0.10.70
Date: 2026-10-12
  Changes:
    - Demolisher volley budget raised 60 -> 150: r5 converged to repeated head hits exactly at shot 57-59, then expired. Head hp staying at 300000 mid-hunt is expected - 400/s regen outheals probing shots; the convergence signal is hit=head, not the hp column. LOG_REV=7.
Version: 0.10.69
Date: 2026-10-12
  Changes:
    - Demolisher volley flare floor raised to 3: a single probe flare puts artillery to sleep between volleys - three simultaneous targets on the aim point keep multiple turrets acquiring. The measured flare-to-shell delay already accounts for turret rotation. LOG_REV=6.
Version: 0.10.68
Date: 2026-10-12
  Changes:
    - Body strikes feed the proportional lead correction again: a shell hitting the body at along=-50 measures the aim is 50 tiles short of the head, so the correction shifts the aim forward by exactly that. All attributed impacts converge along->0 = head. LOG_REV=5.
Version: 0.10.67
Date: 2026-10-12
  Fixes:
    - Demolisher ash-cloud visual dummies (smoke-with-trigger) ignored - those were the phantom "structures" getting cluster fire around the worm.
    - Body strikes no longer feed proportional lead correction: a shell hitting mid-worm is on a ~100-tile target, not a lead error, and its along offset was inflating corrections into a seesaw. Off-worm impacts still correct proportionally; body hits now give a gentle +0.15 forward nudge per volley. LOG_REV=4.
Version: 0.10.66
Date: 2026-10-12
  Changes:
    - Demolisher hunts get aggressive once converged: |err|<10 marks the aim LOCKED (logged), spam escalates +4/volley instead of +1; |err|>25 unlocks. Lead corrections now use full proportional gain and adjust twice as fast for large errors - convergence in ~3 volleys instead of creeping at half-gain. LOG_REV=3.
Version: 0.10.65
Date: 2026-10-12
  Changes:
    - Demolisher flight estimate now recomputes against the predicted aim point instead of the current head position - shells fly to where the worm will be, so a worm closing on a gun was systematically overleading. LOG_REV=2.
Version: 0.10.64
Date: 2026-10-12
  Changes:
    - Log lines now carry an algorithm revision: "[MassArty rN tNNNNNN]" - LOG_REV bumps whenever the algorithm changes so log entries are attributable to a code generation.
Version: 0.10.63
Date: 2026-10-12
  Fixes:
    - Demolisher lead corrections are now lag-safe: at most one bias adjustment per shell flight time and at half gain. Shells take ~9 s to land but the loop was correcting every 2 s against aims from 5 volleys ago, so it oscillated +-250 tiles instead of converging.
Version: 0.10.62
Date: 2026-10-12
  Changes:
    - Drag completion log now lists up to 8 sample entity name/type pairs that became structure clusters, so phantom "structures" are identifiable.
Version: 0.10.61
Date: 2026-10-12
  Changes:
    - All log lines now carry the game tick: "[MassArty tNNNNNN] ..." - grep by tick to ignore lines from previous sessions.
Version: 0.10.60
Date: 2026-10-12
  Fixes:
    - Smart targeting no longer paints clusters on decorative environment objects: vulcanus chimneys, rocks, and trees (simple-entity types and tree) are ignored - the "structures" it fired at on Vulcanus were rock formations.
Version: 0.10.59
Date: 2026-10-12
  Fixes:
    - Demolisher attribution now requires the impact to land within 15 tiles of a point the hunt actually painted (a ring buffer of the last 8 aims) - the bare motion corridor was catching shells from unrelated cluster flares the same drag fired, and their noise poisoned the lead correction.
Version: 0.10.58
Date: 2026-10-12
  Changes:
    - Demolisher volley log now prints measured velocity, flight time, and lead length so underlead divergence (bias pinned at cap while shots still land behind) is diagnosable.
Version: 0.10.57
Date: 2026-10-12
  Changes:
    - Demolisher lead correction is now proportional: each impact records its signed along-track error and each volley applies bias -= mean_err / lead_length, converging in 2-3 volleys instead of seesawing on fixed +-0.5/-0.15 steps (the aim was jumping ~16 tiles per step forever). Impact logs now print their along= error.
Version: 0.10.56
Date: 2026-10-12
  Fixes:
    - Demolisher attribution is now a corridor along the worm's motion line through the head (100 tiles long, 10 wide) instead of a 30-tile radius - overshooting leads were landing shells 60+ tiles off, outside attribution, so the loop went blind and never corrected. Impacts classify as: on head/body -> forward, far behind -> late (forward), far ahead -> overshot (back), on-line -> head hit.
Version: 0.10.55
Date: 2026-10-12
  Changes:
    - Flame suppression radius around demolishers widened from 12 to 500 tiles - any shot landing near a worm skips fire entirely.
Version: 0.10.54
Date: 2026-10-12
  Changes:
    - Segment-hit lead step raised to +0.5 (cap 6) - at demolisher speeds the worm needs ~70+ tiles of lead, so convergence was too slow. Demolisher hunts now get double TTL (240 s): a 300k-hp fight against regen is a marathon.
Version: 0.10.53
Date: 2026-10-12
  Fixes:
    - Demolisher impact attribution now measures distance to the current head position (30 tiles), not the stale aim point - the worm moves during the ~15 s shell flight, so real impacts were landing outside the 12-tile aim window and never scored, leaving tallies at zero and hunts looking dead. Impacts landing behind the worm's motion count as "late" (push lead forward) rather than misses.
Version: 0.10.52
Date: 2026-10-12
  Changes:
    - Shells landing on a demolisher (head or body segment within 12 tiles) no longer spawn the flame patch disc or burn zone - demolishers are 100% fire-immune so the fire was pure waste, and skipping it saves the 80-entity paint per shot during sustained worm barrages.
Version: 0.10.51
Date: 2026-10-12
  Fixes:
    - Demolisher scoring now tallies head/segment/miss counts per volley and applies ONE bias adjustment per eval instead of per impact - a burst of shells landing while the head moved was being scored as many misses, ratcheting bias down mid-volley and collapsing spam even while hits landed. Volley log now prints hits/segs/miss tallies.
Version: 0.10.50
Date: 2026-10-12
  Changes:
    - Demolisher hunts are now self-correcting snipers: single-aim volleys on the velocity-led head, each shell impact scored as head/segment/miss - segment hits push the lead bias forward (+0.3), clean misses pull it back (-0.15, clamped 0.2-5). Consecutive head hits escalate spam up to 25 flares on the same point, head hp trends feed escalation, and misses collapse spam back to a probe shot while the lead retunes.
Version: 0.10.49
Date: 2026-10-12
  Changes:
    - Demolisher volleys now spam a tight 12-flare ring on the velocity-led head instead of carpeting the body (kills only go through the head; body shots were wasted), and demolisher hunts re-evaluate every 2 s. Fixed our own flares tripping the friendly-fire check and suppressing shots.
Version: 0.10.48
Date: 2026-10-12
  Changes:
    - Demolisher volleys are self-adjusting: every segment target is led by its own velocity measured between volleys instead of sharing the head's velocity, so turning worms are led correctly along their curve.
Version: 0.10.47
Date: 2026-10-12
  Changes:
    - Nuke head-kill radius tightened to 15 tiles.
Version: 0.10.46
Date: 2026-10-12
  Changes:
    - Nuke head-kill radius tightened to 25 tiles.
Version: 0.10.45
Date: 2026-10-12
  Changes:
    - Nuke head-kill radius tightened from 130 to 35 tiles to match the real atomic blast - only heads inside the actual blast die, and it no longer collaterally kills distant demolishers.
Version: 0.10.44
Date: 2026-10-12
  Changes:
    - Nuke head kills are now logged with entity name, position, and distance from the impact, so collateral demolisher kills are traceable.
Version: 0.10.43
Date: 2026-10-12
  Changes:
    - Nuke flat damage raised to 100,000 in 30 tiles - deletes essentially everything in the blast, friendly or hostile.
Version: 0.10.42
Date: 2026-10-12
  Changes:
    - Nukes now one-shot demolishers: kills go through the head (body segments are 99% explosion-proof), so every segmented-unit head within worm-length of the blast takes 4x its own max health - enough to beat the big-demolisher's 300k hp, 60% explosion resist, and regen.
Version: 0.10.41
Date: 2026-10-12
  Changes:
    - Nukes hit much harder: a scripted 2500 explosion-damage pass over 30 tiles on top of the full vanilla atomic effect (the vanilla blast is spectacular but light on HP pools). Tracking radars, flames, and flares are spared.
Version: 0.10.40
Date: 2026-10-12
  Fixes:
    - Nukes actually detonate now: spawn the atomic-rocket projectile itself aimed at the impact, whose action delivers the full vanilla effect - raw-spawning the wave projectiles never executed their action delivery.
Version: 0.10.39
Date: 2026-10-12
  Fixes:
    - Nuke marks widened to 30 tiles to cover artillery scatter at range, mark lifetime raised to 60 s for long engagements, and mark/detonate diagnostics added to the log.
Version: 0.10.38
Date: 2026-10-12
  Changes:
    - Demolisher volleys now lead every target (head and each segment) by the worm's live adaptive velocity over real launch+flight time, and their volley budget is raised to 60 since regen demands sustained fire.
Version: 0.10.37
Date: 2026-10-12
  Fixes:
    - Fixed nuke crash: projectile entities created directly require a target - the atomic set is now aimed at the impact point itself.
Version: 0.10.36
Date: 2026-10-12
  Changes:
    - Demolishers get their own firing algorithm: instead of velocity-leading the head, each evaluation carpets the live body with one flare per blast-width along head and segments (friendly-adjacent and already-covered points skipped), so a volley blankets the whole worm.
Version: 0.10.35
Date: 2026-10-12
  Features:
    - Ctrl+RMB fires a normal artillery flare but marks the spot nuclear: when the shell lands it detonates the full vanilla atomic rocket effect (ground zero, shockwave, cluster explosions, nuclear smoke). Marks expire after 30 s if no gun fires.
Version: 0.10.34
Date: 2026-10-12
  Fixes:
    - Demolishers (Vulcanus worms) are now hunted: the segmented-unit head is tracked like a unit while body segments are ignored as targets - previously they were classified as structures, getting one flare and no hunt.
Version: 0.10.33
Date: 2026-10-11
  Changes:
    - When a drag yields 8+ unit packs, hunt tracking radars are suppressed for the first 30 s of the firing action so a wave of radar spawns and chart updates cannot stall the sim.
Version: 0.10.32
Date: 2026-10-11
  Changes:
    - Fire set to 10x vanilla: flame patches ~130 dps each, burn zone 500 dps before research scaling.
Version: 0.10.31
Date: 2026-10-11
  Changes:
    - Fire buffed again: burn zone 200 to 300 dps (still research-scaled) and flame patches 4x to 6x vanilla (~78 dps).
Version: 0.10.30
Date: 2026-10-11
  Fixes:
    - Fixed on_tick crash after loading a save with pending aftermath flames: flame_jobs persist in storage but flame_rng is runtime-only, so it is now initialized lazily in the painter too.
Version: 0.10.29
Date: 2026-10-11
  Fixes:
    - Watchdog now reports whether the profiler exists and times event handlers (impact, fired, path, select, press, recon) too - the previous misses meant the spike was either outside on_tick or the profiler was unavailable.
Version: 0.10.28
Date: 2026-10-11
  Fixes:
    - Fixed on_tick crash: profilers live on helpers.create_profiler in Factorio 2.x, not LuaGameScript.
Version: 0.10.27
Date: 2026-10-11
  Fixes:
    - Fixed a load crash: the slow-tick profiler was created at file-load time when game is nil; it is now created lazily on first tick.
Version: 0.10.26
Date: 2026-10-11
  Fixes:
    - Added a slow-tick watchdog to the log (flags ticks where MassArty script exceeds ~15 ms) to attribute freezes to the mod vs engine work.
    - Cached the surface-wide artillery scan for 10 seconds instead of running it on every hunt evaluation.
Version: 0.10.25
Date: 2026-10-11
  Fixes:
    - Artillery volleys no longer freeze the game on the firing cadence: aftermath flame painting is queued and painted under a per-tick budget, and burn-zone damage ticks are staggered by position so a volley of zones does not scan on the same tick.
Version: 0.10.24
Date: 2026-10-11
  Fixes:
    - Hunt storms no longer freeze the game: concurrent hunts are capped at 64 with the overflow parked in a queue (promoted closest-to-player first as slots free). Units already owned by a hunt or queue entry are skipped on re-drags, eval ticks are staggered per hunt, and tracking radars only teleport on a per-hunt phase when the pack actually moved.
Version: 0.10.23
Date: 2026-10-11
  Changes:
    - Tracking radar now rides with the pack: one persistent radar per hunt teleported to the live centroid every tick instead of a 5-second pulse cycle.
Version: 0.10.22
Date: 2026-10-11
  Fixes:
    - Removed the 5-second game freeze: hunts now keep one persistent tracking radar that is teleported to the pack centroid each pulse instead of a destroy/respawn cycle that forced a chart recalculation per hunt in the same tick. First pulses are also staggered per hunt so simultaneous hunts no longer pulse in lockstep.
Version: 0.10.21
Date: 2026-10-11
  Fixes:
    - Large drags no longer freeze the game: the area scan, entity classification, and flare painting now run as a queued job spread over several ticks (bounded slices, entities, and flares per tick) instead of one giant same-tick burst.
Version: 0.10.20
Date: 2026-10-11
  Changes:
    - Added hunt-chain diagnostics to the log: drag unit/structure counts, hunt creation, and every tracking-radar pulse.
Version: 0.10.19
Date: 2026-10-10
  Changes:
    - Aftermath fire spread increased to 16 tiles (4x blast) with 80 patches.
Version: 0.10.18
Date: 2026-10-10
  Fixes:
    - Tracking/recon radars are now indestructible and untargetable, and are excluded from friendly-safety and burn-zone checks - they sat at the pack centroid and both absorbed shell damage and suppressed shots on the pack they tracked.
Version: 0.10.17
Date: 2026-10-10
  Fixes:
    - The artillery search radius was still too small for researched ranges: the nearest friendly gun is now found surface-wide, so distance-based estimates and calibration always engage.
Version: 0.10.16
Date: 2026-10-10
  Features:
    - Fire delay is now measured too: a hunt flare dying when artillery fires gives a real flare-to-launch sample; after 2+ samples the mean replaces the 4 s estimate.
Version: 0.10.15
Date: 2026-10-10
  Fixes:
    - Log analysis showed every shot used the flat 240-tick fallback: ARTILLERY_SEARCH widened 220 to 500, and calibration now pairs each impact to the nearest pending gun so barrages and relaxed impact-force matching can actually produce samples.
Version: 0.10.14
Date: 2026-10-10
  Fixes:
    - Lead was missing the flare-to-launch delay (gun scan + aim, about 4 s): solutions now require shell flight + fire delay to beat the unit to the waypoint, and velocity lead adds the same term.
Version: 0.10.13
Date: 2026-10-10
  Features:
    - Self-calibrating flight time: single-shot fire/impact pairs measure real shell travel per distance bucket and replace the estimate after 2+ samples.
Version: 0.10.12
Date: 2026-10-10
  Changes:
    - Aftermath burn damage raised: burn zone 200 dps (from 52) and flame patches 4x vanilla (about 52 dps each).
Version: 0.10.11
Date: 2026-10-10
  Fixes:
    - Packs without a commanded destination (idling/wandering) now become hunts too: velocity-lead shots re-evaluated every 3 s, radar pulses, and path-solving kicks in if they gain a command.
Version: 0.10.10
Date: 2026-10-10
  Fixes:
    - Smart targeting ignores corpses and other inert hostile entities (ghosts, ground items, projectiles, effects).
Version: 0.10.9
Date: 2026-10-10
  Features:
    - Hunted packs pulse a short-lived radar at their centroid every 5 s so the hunt stays visible through fog of war.
Version: 0.10.8
Date: 2026-10-10
  Fixes:
    - Drags no longer fire a shell at mouse-down: all painting is deferred to release. Click-sized releases paint the single or disc shot; real drags go straight to smart targeting; a 2 s fallback covers clicks that emit no selection event; the press record is no longer cleared by the remote-dedupe path.
Version: 0.10.7
Date: 2026-10-10
  Changes:
    - All artillery shells fly twice as fast (starting_speed 2); lead estimate updated to match.
Version: 0.10.6
Date: 2026-10-10
  Changes:
    - Aftermath fire now spreads with normal fire mechanics (spread to fuel, tree ignition); each patch lives 20 s.
Version: 0.10.5
Date: 2026-10-10
  Fixes:
    - Crash-hardening pass: invalid-entity force reads, nil path-request ids, lobe index overflow, unguarded hunt rep record, float formatting in hunt logs, force-name normalization for friendly-safety checks, path bounding box now uses the entity collision box, and burn zones skip deleted forces.
Version: 0.10.4
Date: 2026-10-10
  Fixes:
    - Drag-select now works on the first gesture: the remote is swapped for the selection brush when it enters the cursor instead of mid-press, which also removes the range-overlay flicker on every click. The artillery range overlay no longer shows while the brush is held.
Version: 0.10.3
Date: 2026-10-10
  Changes:
    - Hunt shot budget raised to 30.
Version: 0.10.2
Date: 2026-10-10
  Changes:
    - Aftermath fire spreads 3x the blast radius with directional lobes (some directions get more fire), ignites trees it lands on, and burns visibly for the full duration.
Version: 0.10.1
Date: 2026-10-10
  Features:
    - Hunts adapt to pack acceleration: representative-unit speed is re-measured each evaluation, jumping up instantly and decaying slowly. Shot budget raised to 10.
    - Firing solutions and hunt outcomes write structured [MassArty] lines to the log for analysis.
Version: 0.10.0
Date: 2026-10-10
  Features:
    - Smart targeting hunts moving packs: units with a commanded destination get a real pathfinder path; the mod fires at the earliest waypoint the shell can reach before the unit arrives there, re-evaluating the firing solution every 3 seconds and replacing the flare when it moves. Hunts persist until the units die, the budget runs out, or they go idle.
Version: 0.9.3
Date: 2026-10-10
  Changes:
    - Lead prediction now estimates flight time per unit from the nearest friendly artillery (60 + distance / shell speed) instead of a fixed 4 seconds; falls back to the fixed estimate when no gun is in range.
Version: 0.9.2
Date: 2026-10-10
  Changes:
    - Aftermath fire damage now scales with refined flammables research: burn zones deal scripted fire damage multiplied by the owning force's flamethrower ammo damage modifier, on top of the incidental flame patch damage.
Version: 0.9.1
Date: 2026-10-10
  Changes:
    - Aftermath fire coverage radius doubled to 8 tiles and flame damage raised to 4x vanilla fire.
Version: 0.9.0
Date: 2026-10-10
  Features:
    - Smart targeting now leads moving units: units in the selection are tracked for 3 seconds, their velocity extrapolated by shell flight time, and the predicted position is fired on unless it lands within 10 tiles of a friendly entity. Structures still fire immediately.
Version: 0.8.3
Date: 2026-10-10
  Changes:
    - Aftermath fire is now scattered randomly across the blast instead of a clean grid, for a messier explosion look.
Version: 0.8.2
Date: 2026-10-10
  Bugfixes:
    - The trigger_created_entity opt-in was set on the projectile prototype instead of on the create-entity trigger effects inside its action.
Version: 0.8.1
Date: 2026-10-10
  Bugfixes:
    - Aftermath fire never spawned: on_trigger_created_entity only fires for trigger prototypes that opt in, so the mod now sets trigger_created_entity on the artillery projectile prototype.
Version: 0.8.0
Date: 2026-10-10
  Features:
    - Artillery shell impacts leave a circle of fire across the blast radius that burns for 20 seconds without spreading. Applies to every shell, not just MassArty-painted targets.
Version: 0.7.1
Date: 2026-10-10
  Bugfixes:
    - A drag no longer leaves the press-click shot behind: when the selection is a real drag, the anchor flare is removed and replaced by cluster targets.
  Changes:
    - The selection box is visible again (needed feedback for smart targeting).
Version: 0.7.0
Date: 2026-10-10
  Features:
    - Shift + left-click drops an invisible legendary recon radar at the cursor that reveals the map for 30 seconds before despawning (remote or brush must be in cursor).
Version: 0.6.0
Date: 2026-10-10
  Features:
    - Drag is now smart targeting: releasing the selection drops one flare on each enemy cluster inside the box (entities chained within 20 tiles, centroid target, existing flares deduplicated).
  Changes:
    - Removed the drag line-fill and hovered-entity waypoint painting.
Version: 0.5.0
Date: 2026-10-10
  Changes:
    - Removed the left-drag ghost-marker mechanism and its LMB inputs; drag targeting is back to right-click only.
    - Right-drags now paint live waypoints at entities the cursor hovers over during the drag, plus the release line-fill.
Version: 0.4.5
Date: 2026-10-10
  Bugfixes:
    - Fixed "Unknown item name: massarty-marker" on left-click: cursor_ghost is item-keyed, so the marker needs a companion item with place_result.
Version: 0.4.4
Date: 2026-10-10
  Bugfixes:
    - Fixed crash in on_tick when a save carried drag state written by an older version (missing expires_tick). Transient state (presses/drags/flare queue) is now wiped on every mod update.
Version: 0.4.3
Date: 2026-10-10
  Features:
    - Left-click-drag with the remote paints shots along the actual drag path, live: the press swaps the remote for a hidden ghost marker, and each ghost placement becomes a flare at blast-radius spacing (shift+left-drag paints spaced discs).
  Changes:
    - Right-drag selection box is now invisible.
Version: 0.4.2
Date: 2026-10-10
  Bugfixes:
    - Plain right-click produced no flare: the cleanup queue destroyed the shot the mod had just painted. Vanilla-flare cleanup now only runs when the remote actually fired.
  Changes:
    - Dragging paints shots along the drag line (press point to far corner of the selection box) instead of filling the whole box.
Version: 0.4.0
Date: 2026-10-10
  Changes:
    - Drag now works entirely on the remote: pressing the targeting remote swaps in a hidden selection-tool for the drag and swaps back on release. The separate brush shortcut is gone.
    - Right-drag fills the area with blast-spaced shots; shift-right-drag paints spaced filled discs.
Version: 0.3.0
Date: 2026-10-10
  Features:
    - Added the MassArty targeting brush: a selection-tool (shortcut-bar button, unlocked with artillery) that paints targets over a dragged box: left-drag fills with blast-spaced shots, right-drag paints spaced filled discs.
    - Shift + right-click with the remote now paints a filled disc (hex-packed, blast-radius spacing) instead of a hollow ring.
Version: 0.2.0
Date: 2026-10-10
  Bugfixes:
    - Fixed crashes when creating flares: artillery-flare requires movement, height, vertical_speed, and frame_speed.
    - Fixed crash when loading a save while custom-input prototypes are unavailable (stale data stage); registrations are now guarded.
  Features:
    - Shift + right-click paints a filled disc of flares.
    - New MassArty targeting brush (shortcut-bar button): left-drag fills the area with blast-spaced shots, right-drag paints spaced discs.
Version: 0.1.0
Date: 2026-10-10
  Features:
    - Initial release: shift-click with the artillery targeting remote paints a ring of flares; normal click keeps vanilla behaviour.
    - Dragging while holding the remote spaces shots: blast radius for single shots, ring diameter for shift-drag rings.