100 kg tungsten rods circling the planet at 0.01c (107 kt each). No warhead, no radiation — the explosive is velocity. Build a storage ring in orbit and rain them on biter nests.
Mods introducing new content into the game.
Version: 0.4.0
Date: 2026-09-18
Features:
- Needle cartridges and the protected zone. Reverse-select (right-drag) with the targeter to
mark the protected zone for the current planet — one per planet, a new one replaces the old;
alt-reverse-select clears it. The ring then guards that ground on its own: every enemy
that walks in (biters, spitters, nests, worms, pentapods) gets a needle and dies; demolishers
shrug needles off like a pellet — those still take a tungsten rod. No blast,
no crater, nothing of yours is touched. Needles cannot be aimed by hand — they only work
over the zone. Tungsten rods stay the manual heavy artillery.
- Cartridges are forged by the stations themselves out of the asteroid dust the ring sweeps
up: no item, no recipe, no delivery. Each station of an active ring adds 0.2 per second
(a full 20-station ring: 4 per second), up to 1000 per ring. One cartridge sprays up to
100 enemies within 32 tiles of its first target. All four numbers are map settings.
- The status window shows each ring's needle stock.
- A cartridge is visible all the way down: one hot streak falls from the sky, flashes open
over the group and fans out into a needle for every target, each tracking its biter.
Part of the "Visual shockwave" setting.
- Lore: a cartridge is a 10 kg bundle of 100 steel needles held at 15 km/s. It falls whole
under its plasma cocoon; at about a kilometre the spiral's induced current runs out, the
binding lets go and the cocoon itself blows the bundle open — one needle per target. Open
it in orbit instead and the needles would burn up like meteors on the way down.
Bugfixes:
- Rampant compressed squads no longer "rise from the dead". Rampant shows a whole squad as
one biter and pops the next one out where it died; a kill now clears the whole stack on
that spot. A compressed squad costs one needle instead of a cartridge per biter a second
apart, and a rod's blast no longer leaves the rest of the stack standing.
- Rampant eggs no longer hatch under fire. Eggs (and Rampant's other drones) are hostile
combat robots that spawn biters when they die; needles now target them too, and both
needles and rods vaporize them instead of killing them, so there is nothing left to hatch.
Optimizations:
- The zone is searched in 128-tile pieces, each once per second, spread evenly over the
ticks; an empty magazine or a paused ring costs nothing.
Version: 0.3.2
Date: 2026-09-18
Optimizations:
- Auto-fire (orbital patrol) no longer stutters the game every sweep. It used to do the whole
sweep in one tick: scan every force on every planet (enemy and neutral included) for
radars, then search a 900x900 tile square around each radar separately — a base with
dozens of overlapping radars was searched dozens of times over, every 10 seconds.
- The sweep is now spread over the interval: radar coverage is searched a small piece
(4x4 chunks) per tick, then nests are clustered a batch per tick, and the ring fires when
its sweep completes: a small, even load instead of a one-tick spike. Rods may leave a few
seconds later than before.
- Radars are tracked from build events instead of being searched for across the whole
planet every sweep (one full scan when the save is first loaded with this version).
- Only rings that are enabled, built and charged are swept at all. Overlapping radar
coverage is merged so every tile is searched once, and the search is filtered to enemy
forces inside the engine.
- Nest clustering (auto-fire and carpet bombardment) uses a spatial grid instead of comparing
every nest with every other: 2000 nests went from ~80 ms to ~4 ms. Same strikes as before.
Changes:
- Auto-fire interval can no longer be set below 10 seconds (was 1 s).
Version: 0.3.1
Date: 2026-09-18
Changes:
- Lore fix, round two (thanks again to the mod-portal physicists). At 0.01c a rod is ~400x
faster than orbital speed, so it never orbits: every station already bends it toward the
planet by its share of the circle, twenty times a lap. Firing is therefore not a "hard
downward kick" out of nowhere but a double turn: the station overdrives its magnet from a
capacitor bank for one pass and bends the rod about twice its usual angle, so the next chord
no longer clears the horizon and ends in the ground. A skipped turn would send the rod off on
the tangent into deep space — which is why it never was the answer.
- The recoil no longer holds the stations up — it would blow them away: each bend shoves a
station outward ~750x harder than gravity pulls it in. The stations now hang on a closed
tether hoop spun in orbit from asteroid carbon, and the recoil becomes hoop tension. This is
also what caps ring capacity. Station, targeter, technology and ring capacity descriptions
reworded (EN + RU). No gameplay change.
Version: 0.3.0
Date: 2026-09-18
Changes:
- Ported to Factorio 2.1. The mod now requires Factorio 2.1 (base and space-age >= 2.1);
Factorio 2.0 players should stay on 0.2.10. No code changes were needed: the mod uses none
of the APIs removed or renamed in 2.1, and explosion/scorchmark effects are still picked from
a fallback list, so a renamed vanilla prototype degrades to the next candidate instead of
crashing. No gameplay change.
Bugfixes:
- Fixed the 0.2.9 changelog entry, which was missing its Version header (two Date lines under
0.2.10). Factorio treats a malformed changelog as unreadable and hides it in the in-game mod
list.
Version: 0.2.10
Date: 2026-06-15
Changes:
- Lore fix (thanks to the mod-portal physicists). "A shot is just a skipped turn" was geometrically
wrong: a rod on straight chords between stations stays outside the ring forever, so a station
simply not deflecting only widens its orbit — it never hits the ground. Firing is now described
honestly: the firing station dumps its capacitor reserve into one hard inward kick that bends the
rod off its safe chord and down into the atmosphere. Also owned the recoil: magnetic bending does
no work on the rod (cheap to hold), but every bend kicks back on the station, so the ring is
really a swarm of statites holding themselves up on the recoil of the tungsten they throw — let
one lose power and it falls out of the sky. Item, station, technology and cooldown descriptions
reworded (EN + RU). No gameplay change.
Version: 0.2.9
Date: 2026-06-15
Bugfixes:
- Buffered rods now keep spinning up after the platform leaves. The "start the next rod's
spin-up" step was nested inside the parked-platform loop, so once the freighter dropped its
load and departed, the ring finished the rod already charging and then stalled — the buffered
rods just sat there. It now runs as its own pass over every ring each second, independent of
any platform being parked: deliver a load, fly away, and the ring charges the whole buffer one
rod at a time on its own. This was the whole point of the buffer (0.2.2); it only worked while
parked. Pulling rods from the hub and assembling stations still need a platform in orbit.
Version: 0.2.8
Date: 2026-06-15
Changes:
- Pulses now stack on the same target instead of hitting it once. Every pulse damages the whole
growing disc the shockwave front has swept, so a target under the blast takes a hit on every
pass: the center is hammered pulse after pulse, the rim once the front reaches it. Dropped the
"each entity caught once" rule — the point is that it dies, even if it takes all the pulses to
get there. A target under the crosshair now eats up to (pulses) hits, so even a low-power ring
grinds it down.
Version: 0.2.7
Date: 2026-06-15
Bugfixes:
- Damage no longer leaves gaps. Each expanding pulse used to damage only its own thin ring band
(r_inner, r_outer], which had two holes: a target sitting exactly on the impact point (distance
0) was skipped, and a moving biter could slip between two bands — the front reached its old
spot, it ran into a band that had already passed, and nothing ever hit it. The damage now rolls
out as a GROWING disc: every mobile target (anything with a unit_number) is caught once, the
instant the front reaches it, tracked in a shared per-strike set so it can't be hit twice and
can't escape by moving. Static entities (no unit_number, never move) keep the thin band. Net
effect: a biter standing under the crosshair now actually dies. (If one still survives, the
ring power is too low — damage is 500k x power x falloff; finish the ring or raise the damage.)
Version: 0.2.6
Date: 2026-06-15
Changes:
- The "Shockwave damage type" setting is gone. The strike is now ALWAYS relativistic and there
is nothing to misconfigure: damage is subtracted straight from health (a lethal hit deletes
the target), so no percentage resist, flat resist, per-hit damage cap or "overkill protection"
can stop it — exactly the armour Rampant fixed bolts onto every damage type, custom ones
included, at data-final-fixes. This is what kills a 60k-HP regenerating biter that shrugged off
a capped conventional hit. The same impact additionally lands impact + physical + explosion
damage through the normal damage system (so vanilla armour and other mods' on-damage hooks
still react), but the health chunk is what guarantees the kill. Reminder: damage still scales
with ring power (full ring one-shots such a biter across the whole radius; a half-built ring
may not reach the rim).
Version: 0.2.5
Date: 2026-06-14
Features:
- Auto-fire (orbital patrol): an optional mode where the rings fire on their own. Every interval
each ring rains rods on the nearest enemy nests — and, optionally, worms — sitting within
radar coverage, clustered by blast radius (no wasted rods), nearest threats first, capped by
charged rods. Off by default. Four new settings: enable, interval, range around radars
(default 448 = vanilla radar far scan), and whether to also hit worms.
Version: 0.2.4
Date: 2026-06-14
Features:
- Carpet bombardment: dragging the targeter over a nest field now rains a rod on every enemy
spawner inside — but the targets are clustered by blast radius first, so one rod covers a
whole clump and no slug is wasted. Strike points are sorted densest-first, so if the ring
runs low on charged rods it hits the worst clusters before running dry. A small box or a
click on empty ground still does a single strike at the center. This is the answer to nests
breeding faster than you can pick them off one at a time.
Version: 0.2.3
Date: 2026-06-14
Bugfixes:
- Relativistic damage now truly ignores resistance. A novel damage type was not enough:
Rampant fixed (and similar) blanket-resist every registered damage type at data-final-fixes,
custom ones included, so nests showed a 60% "Relativistic" resist. The relativistic strike
now subtracts straight from health (lethal hits delete the target), bypassing all percentage
and flat resistance. Other configured damage types still obey vanilla resistances.
Version: 0.2.2
Date: 2026-06-14
Features:
- Expanding-ring damage: the strike no longer deals its damage in a single instant frame.
It now rolls outward from the impact point as a shockwave, in steps (default 6, 0.5 s apart,
a 3 s sweep from center to rim), decelerating on the same curve as the visual blast front so
damage and graphics stay locked together. The core takes the hypervelocity penetrator hit at
impact; each target is then caught once, as the front passes it, with normal falloff (100%
center to 30% rim). Two new settings: damage steps (1 = one instant full-radius hit) and
time between steps. The visual wave duration now tracks this window.
Changes:
- Lore + recipe: the ring no longer accelerates rods — the rod accelerates ITSELF. Rods now
cost 2 rocket fuel (the engine charge: the same propellant a platform thruster burns). The
rod fires its own engine up to speed while circulating inside the ring, and the deflector
stations only HOLD it on a stable orbit during the burn and after. Station count is now a
containment limit: the faster the rod, the more deflectors it takes to hold it, so stations
still cap speed and damage. "Spin-up" is now the rod's own burn time (F=ma with a fixed
little engine): linear in the held speed, so a full ring takes the whole configured time and
a half-built ring half as long. Item, technology and setting descriptions rewritten to match.
- Rod intake reworked: the ring now empties the hub straight into a buffer, up to capacity,
in one pass — a freighter can drop its whole load and leave, and the rods spin up one at a
time afterwards without it being parked. Previously a rod was only pulled when its spin-up
began, so every shot waited on a fresh pull. The status window shows buffered rods as
"charged/capacity (+queued)".
Version: 0.2.1
Date: 2026-06-12
Features:
- thumbnail.png
Version: 0.2.0
Date: 2026-06-12
Features:
- Storage ring: per-planet, per-force magazine of pre-accelerated rods. Slugs are pulled from
orbiting platform hubs and spun up in the background (default 60 s each, capacity 10).
Firing only releases an already-charged rod (beam extraction: one station skips a turn).
No cooldown between shots by default — rate of fire is limited by rod spin-up time;
an optional minimum interval between shots remains as a setting (default 0).
- Buildable ring: the ring is a necklace of deflector stations (new item, 1 t = one rocket
each). Deliver stations to an orbiting hub; the ring assembles itself, one per second.
Top speed grows linearly with station count: damage scales as N^2, blast radius as N^(2/3),
spin-up time as N^2 (a half-built ring hits at 25% but charges 4x faster). Default 20
stations for full power (setting). A shot is a skipped turn at one station.
- Ring activation toggle: rings start inactive and pull nothing from hubs. Alt-select with
the targeter enables/pauses assembly above the current planet, so freighter platforms can
load up at one planet without feeding its ring. Pausing keeps the charge fireable.
- Remote interface: build_ring (testing) added; ring_status now reports stations, power and
enabled state.
- Fireball: fire damage component (default 150,000 at center, same falloff) plus fires ignited
in the inner blast zone. Like a nuclear blast, but without the radiation.
- New runtime settings: fire damage, ignite epicenter, rod spin-up time, ring capacity.
- Impacts chart the blast area (1.5x radius), so results are visible through fog of war.
- Status window (second shortcut-bar button): per-planet ring list with stations, power,
charged rods and spin-up countdown, plus pause/resume buttons per ring. Refreshes live.
- Visual shockwave: a continuous expanding blast front (glowing ring + two layers of a
procedurally generated dust torus, animated per tick) sweeps to the full blast radius
over ~1.2 s, with sparse secondary detonations, scattered scorchmarks and smouldering
smoke. The central fireball is a staggered cluster of nuke-class explosions. Pure
cosmetics, toggleable in settings.
- Incoming tracer: the rod is visible for ~0.17 s before impact as a white-hot streak
diving into the target at a random per-strike entry angle, with a light source on the
tip. After impact the trail lingers for ~0.7 s, fading from white-hot to pale blue as
the ionized wake recombines.
- Remote interface: ring_status and charge_ring (testing) added.
Changes:
- New "Relativistic" (tungsten-kinetic) damage type, used by default: resistances only apply
to listed damage types, and no mod lists this one — full damage always goes through.
Evolution never prepared a defense against objects arriving at a percent of lightspeed.
- Shockwave damage type is configurable: relativistic / explosion / impact / laser /
physical. Pick "explosion" (what vanilla nukes use) to play by vanilla balance rules;
Rampant "fixed" nests resist physical and fire at 99.99% but leak 8% of explosion.
- Targeter is now a shortcut-bar remote (like the artillery remote in 2.0): free, spawns
into the cursor, appears after researching the technology. Its recipe is removed.
- Rod recipe reworked: 8 tungsten plates + 3 carbon + 2 copper cables (80 kg core, 15 kg
ablative carbon sheath, 5 kg copper Faraday spiral). The spiral is gripped inductively by
the ring's deflectors; the sheath vaporizes on entry into a plasma cocoon around the nose.
- Cargo landing pads removed as a rod source: a rod on the ground cannot be released from an
orbital ring. Rods must be delivered to the hub of a platform orbiting the target planet.
- Lore pass: technology, item and setting descriptions rewritten around the storage ring;
English technology description brought to parity with Russian.
Version: 0.1.0
Date: 2026-06-12
Features:
- Tungsten rod (100 kg @ 0.01c, ~107 kt kinetic): physical damage, 67-tile radius, linear falloff.
- Mass driver targeter (selection tool): click to designate, 3 s to impact.
- Ammo logistics: rods consumed from orbiting platform hubs or cargo landing pads.
- Runtime settings: damage, radius, cooldown, delay, rod requirement, friendly fire, trees.
- Remote interface "tungsten_rain" for testing and future auto-targeting integrations.