SPACE AGE DELIVERY ROCKET SILO: Adds per-silo destination selection and distance balancing to Cargo ICBM-style direct cargo pod launches. Circuit launch.
Mods introducing new content into the game.
Version: 0.8.27
Changes:
- Cleans up the Cargo ICBM silo GUI when cost features are disabled. Disabled gravity cost is hidden, and disabled route-distance cost now clearly reads as feature disabled.
- Adds a short note below the destination dropdown explaining that the selected Cargo ICBM destination is used only for signal-explosion circuit launches. Ordinary overhead platform requests still use vanilla Space Age silo behaviour.
- Preserves the vanilla automatic platform-request checkbox across hidden cost-tier silo swaps, so all generated strength-tier silos can continue to act like normal rocket silos for overhead requests.
- Circuit-triggered local-orbit launches can now use the same overhead platform selected by Factorio's automatic request targeting, allowing manual/partial Cargo ICBM launches to the local orbit without hijacking normal automatic launches.
Version: 0.8.26
Date: 2026-05-07
Behaviour:
- Vanilla/automatic space-platform request launches are left to Factorio again. Cargo ICBM only redirects a rocket pod to the configured Cargo ICBM destination when the launch was ordered by the Cargo ICBM circuit trigger.
- This means a configured hidden strength-tier silo can still act like a normal Space Age silo for overhead platform requests, while signal-explosion launches use the selected Cargo ICBM destination.
Settings:
- Adds runtime setting cargo-icbm-gravity-cost-mode with Disabled, Soft, Normal and Hard modes.
- Disabled gravity mode uses the base rocket-silo cost everywhere. Soft applies half of the detected gravity difference from Nauvis. Normal keeps the existing detected gravity ratio. Hard doubles the difference from Nauvis for a harder balance mode.
- Adds runtime setting cargo-icbm-enable-route-distance-cost. Turning it off makes route distance add zero extra rocket parts, so the mod can be used as a bare destination selector with vanilla/base rocket-part cost.
Safety:
- Routes above the generated maximum silo strength still do not crash. The runtime selector rounds up to the next generated tier where possible and otherwise uses the highest generated tier, keeping the destination and warning/debug information rather than failing to load or edit runtime rocket_parts_required.
Version: 0.8.25
Date: 2026-05-07
Info:
- Cleaning-up release after the planet-silo compatibility work.
- The mod version has been corrected to 0.8.25 after a speech-to-text mix-up, while keeping the dependency cleanup and recipe-setting work from the previous package.
- Removed two invalid optional dependency aliases for Inter-Platform Logistics from info.json.
- The valid optional dependency remains Inter-Platform-Logistics.
Changes:
- The game should now load with the recent planet-silo compatibility fixes still in place.
- Cargo ICBM still makes hidden launch-strength silo tiers based on the configured destination and launch cost.
- Where supported planet mods use their own rocket silo or rocket pod graphics, Cargo ICBM now tries to keep those visuals on its own hidden launch-strength tiers.
- Planet-owned fixed-recipe silos are still left alone so their normal planet progression is not taken over by Cargo ICBM.
- Added a separate startup setting for planet-specific rocket-part flavour recipes.
- This lets players keep the general manufacturing compatibility recipes for mods such as Age of Production, Galore-style recipe mods, HeatedFabrication, and similar machine mods while turning off the small planet-themed recipe extras if a large planet pack needs a safer setup.
Settings:
- Maximum Cargo ICBM silo strength controls the strongest hidden launch-strength tier generated at startup.
- Rocket part crafting mode chooses between the full external finished-rocket-part system and a safer vanilla-style internal silo crafting backup.
- Planet-specific rocket-part recipes toggles the small known planet-themed side recipes separately from the main manufacturing compatibility recipes.
- Kilometres per extra rocket part controls how much route distance increases the rocket-part cost.
- Platform targeting behaviour chooses between the safer request-aware platform delivery and the older permissive free-space fallback.
- Debug diagnostics shows extra testing information when enabled.
Recipes:
- External finished rocket parts mode keeps the main Cargo ICBM rocket-part recipe using low density structure, rocket fuel, and processing units.
- Manufacturing-mod side recipes remain separate from the new planet-specific recipe toggle.
- Igrys glass rocket part remains gated behind the planet-specific recipe setting. It uses the known glass ingredient when Igrys is present and adds glass flavour to a finished rocket part.
- Igrys flavour text: the rocket part is polished until it can see its own destination before the engineer has selected one.
- Lignumis provisional rocket part remains gated behind the planet-specific recipe setting. It uses lumber, wooden gear wheels, gold plate, a detected Lignumis circuit ingredient, and wood pulp when those ingredients exist.
- Lignumis flavour text: if a wooden rocket can leave the planet, the gold fittings can probably keep the payload pointed the right way.
- Biological fish-and-jelly rocket part remains part of the main external recipe set, not the planet-specific toggle. Its flavour text is still that the engineer fills the rocket part with jelly, the fish sloshes in the jelly, and now the rocket part folds space.
Notes:
- The planet-specific recipes are intentionally conservative. If a planet mod changes its ingredients, Cargo ICBM simply skips that recipe rather than crashing.
- Age of Production and similar manufacturing mods may unlock strong machines through planet progression. Cargo ICBM recipes still check for the required items, recipe categories, and technologies before adding those recipes.
- The long optional dependency list is for load order and compatibility only. Optional mods are not required unless Factorio marks them as required.
Version: 0.8.24
Changes:
- Audits the 0.8.23 planet-visual and rocket-part-mode compatibility split.
- In Vanilla internal silo crafting mode, Cargo ICBM no longer dampens Rocket Reusability-style salvage/reprocess recipes. Salvage damping now only runs in External finished rocket parts mode, where Cargo ICBM owns the external rocket-part economy.
- Confirms optional compatibility hooks remain optional and do not turn k-rocket-parts, rocket-reusability, QualityRockets, Age of Production, Galore, HeatedFabrication, thinking_brain, IPL, Interplatform Requests, Planet Request Group, Space Platform Groups, or planet visual silos into hard dependencies.
Version: 0.8.23
Compatibility:
- Adds visual-only Cargo ICBM hidden silo tiers for planet mods that provide hidden/duplicate rocket-silo sprites or custom rocket pod graphics, including Rubia, Lignumis, Igrys, Tellus, Ribbonia and detected future placeable-by-rocket-silo fixed-recipe variants.
- Keeps the planet mod's original fixed-recipe silo isolated, while Cargo ICBM generated tiers borrow only visuals/rocket pod art onto functional Cargo ICBM silos.
- QualityRockets-style quality tiers and visual planet variants can now combine: visual rocket pod clones borrow speed/timing fields from the quality rocket entity where available.
Settings:
- Adds startup setting cargo-icbm-rocket-part-mode. External finished rocket parts is the default full mode; Vanilla internal silo crafting disables Cargo ICBM external/flavour rocket-part recipes and keeps rocket parts crafted inside silos.
Recipes:
- Adds optional Igrys glass rocket part and Lignumis provisional rocket part sidegrade recipes when the required ingredients exist and external-part mode is enabled.
Version: 0.8.22
Bugfixes:
- Fixed startup incompatibility with planet mods that add hidden/fixed-recipe rocket-silo variants such as Rubia, Lignumis, Igrys, Tellus, Ribbonia, and similar mods.
- Cargo ICBM no longer moves foreign rocket-silo fixed recipes out of the category required by their owning silo.
- Adds a final data-stage guard that makes every rocket silo accept the category of its fixed_recipe, preventing Reason=DifferentCategory load failures when other mods duplicate rocket silos.
Changes:
- Adds runtime setting cargo-icbm-platform-targeting-mode. The default request-aware mode only targets stopped platforms with active matching requests and correct import_from; permissive mode restores the older free-space fallback before planet/deep-space fallback.
Notes:
- Planet-specific fixed-recipe silos are deliberately isolated rather than pulled into Cargo ICBM's generated hidden-tier system until a dedicated compatibility bridge is written for each launch model.
Version: 0.8.21
Bugfixes:
- Tightened platform station selection for orbit / space-location Cargo ICBM deliveries.
- Stopped platforms are now eligible only when their hub logistics are active, every payload item is actively requested, and the request import_from matches the silo source location.
- Removed the old free-space fallback station selection that could send cargo to a platform with no matching request merely because the hub had inventory room.
- Multiple matching platforms are now chosen deterministically by available hub capacity, then platform name, then hub unit number.
- If no requester platform matches, existing safe fallback behaviour is preserved: planet/surface fallback where possible, otherwise deep-space miss deletion after ascent with a warning.
Version: 0.8.20
Changes:
- Adds Cargo ICBM-owned recipe categories for alternative rocket-part recipes and assigns them only to intended specialist machines.
- Explicitly excludes heat-pump-like machines from all Cargo ICBM rocket-part categories, preventing HeatedFabrication Heat Pumps from crafting rocket parts.
- Rebalances electromagnetic rocket parts: supercapacitor replaces rocket fuel, electric engine provides actuation, holmium plate supports either one advanced circuit or nine electronic circuits.
- Lets electromagnetic rocket parts work in electromagnetic and electromechanic-style facilities.
- Moves optimised and efficiency-module/synaptic rocket parts to synaptic/thinking/swarm-style assemblers and keeps them out of biochambers.
- Adds a heated assembler rocket-part route and a heated chemical/petrochemical rocket-part route.
- Keeps modded rocket-part and incomplete-rocket-part recipes out of rocket-silo crafting unless the recipe is Cargo ICBM's hidden loader.
Version: 0.8.19
Changes:
- Cleaned the silo GUI: selected route profile now uses short route labels only, without debug commentary, starmap-path wording, fallback explanations, or repeated Cargo ICBM text.
- Gravity launch cost now shows the modifier first, for example 400% — 200 rocket parts. Route-distance cost wording is unchanged.
- During cost-tier replacement, captured module/fuel/rocket inventories are cleared before scripted destruction and restored into the replacement silo, preventing settings-paste swaps from returning inserted modules to the player.
- Rebalanced rocket-part sidegrade recipes around local machine-stage substitutions instead of base recipe plus extra expensive ingredients.
- Added funny localised descriptions explaining how each finished rocket part helps guide the rocket.
- Moves any compatible rocket-part or incomplete-rocket-part recipe out of rocket-silo-only crafting unless it is Cargo ICBM's hidden loader recipe.
- Keeps all rocket-part recipes in the Space rocket parts subgroup.
Version: 0.8.18
Changes:
- Renames hidden silo capacity classes from route/direction wording to neutral power-tier wording: Low-gravity, Standard-lift, Heavy-lift, Super-heavy, High-thrust, Heavy-transfer, Deep-range, Ultra-heavy, Extreme-range, and Hard-cap.
- Keeps runtime Selected route profile text for functional route wording such as local orbit, same-surface fallback, inner-system path, outer-system path, and interstellar path, because only the selected destination and force-filtered catalogue can know that context.
- Prevents odd directional names such as an Aquilo-to-Nauvis delivery using an Outer-system prototype name merely because the rounded cost tier is high. Prototype selection still uses stable required-parts tiers, not display names.
Notes:
- With the default 50-part base silo, tiers below the baseline such as 13, 25, 38, and 40 are Low-gravity; the configured maximum tier is Hard-cap when it equals the startup cap.
Version: 0.8.17
Changes:
- Separates hidden silo capacity-class names from runtime selected-route profile names. Prototype names now use a clean cost-tier ladder: Low-gravity, Orbital, Inner-system, Outer-system, Deep-system, Interstellar, Extra-system, and Hard-cap.
- Adds a Selected route profile line to the silo GUI and debug_selected_silo. This functional label is derived from the actual destination key, source surface/planet, route availability, and calculated route distance, so same-cost destinations can share a prototype without misleading names.
- Moves the rocket-part item and all rocket-part-producing recipes into a dedicated Space rocket parts subgroup when the Space Age space tab exists, with a safe intermediate-products fallback.
- Baseline complete rocket-part recipe now uses a Cargo ICBM-specific assembler category applied to eligible normal assemblers, while skipping atomic/nuclear/enrichment-style machines. The atomic/nuclear route remains a separate nuclear-fuel recipe.
Balance:
- Electromechanical rocket parts now use more electric engines, supercapacitors, and processing units, and add detected fluoroketone-cold/lubricant if those fluids exist.
- Thinking-brain/swarm/computing-style rocket parts now use more processing units and detected lubricant where available.
Version: 0.8.16
Changes:
- Replaced the exact 1..N hidden silo generation model with a compact discrete silo-strength ladder. Runtime costs still use the exact gravity/route-distance formula, but live silo prototypes now round up to the next generated strength tier.
- The startup setting cargo-icbm-max-generated-rocket-parts is now a hard cap for the strongest generated tier rather than a request to generate every integer cost.
- Generated tiers include low-gravity/baseline coverage, geometric route-power tiers, and extra tiers derived from detected space-connection.length values so large starmap and distance-scaling mods influence the ladder without hard-coded planet names.
- Hidden silo localised names now describe their strength tier, such as Low-gravity, Intraplanetary, Inner-system, Outer-system, Deep-system, Interstellar, and Hard-cap Cargo ICBM silo.
Safety:
- Runtime selection still never depends on the display name. It uses the internal cargo-icbm-silo-cost-<parts> prototype name and the live prototype rocket_parts_required value.
- Changing between destinations that round to the same strength tier no longer swaps the entity unnecessarily.
Version: 0.8.15
Bugfixes:
- Preserves actual inserted rocket-silo module inventory when Cargo ICBM replaces a silo with a different hidden cost-tier prototype.
- Also attempts to preserve modded fuel and burnt-result inventories if a rocket-silo prototype exposes them.
- Restores module/fuel items generically through LuaInventory insertion, preserving item quality where possible; any rejected secondary-inventory items are spilled near the replacement silo instead of silently deleted.
Compatibility:
- Adds optional load-order compatibility for QualityRockets. If quality-specific <quality>-rocket-silo prototypes exist, Cargo ICBM now generates matching hidden exact-cost tiers cloned from those quality prototypes so faster quality rocket animations survive Cargo ICBM cost-tier swaps.
- Replacement entity creation now passes through the old silo's quality value where Factorio permits it.
Notes:
- Rocket construction progress can still reset during a prototype swap; this remains expected because rocket_parts_required is prototype-stage.
Version: 0.8.14
Changes:
- Simplified the visible mod settings page to the three durable controls that should remain player-facing: maximum generated rocket-part tiers, kilometres per extra rocket part, and debug diagnostics.
- Removed public kill-switch settings for circuit launching, circuit scan interval, launch warnings, and legacy remote platform request seeding. Circuit-triggered launches remain fixed core behaviour on a 60-tick scan, warnings remain enabled for cargo-loss/fallback cases, and the platform helper still only seeds new/default manual import_from slots.
- Removed the unused deep-space name heuristic helper so destination inclusion continues to rely on force unlock/API data rather than words such as asteroid, edge, or shattered.
- Added English locale entries for settings, GUI labels, recipe names, hidden silo description, warnings, and Deep Space Platform Alignment description patching.
Notes:
- The km-per-extra-rocket-part runtime setting is still clamped defensively in control.lua even though Factorio's setting prototype already enforces a minimum.
Version: 0.8.13
Bugfixes:
- Fixed a crash in on_entity_logistic_slot_changed when confirming a new platform logistic request after platforms had moved between locations.
- The Interplatform Requests pseudo-source compatibility helper is now declared before platform-request seeding uses it, avoiding the nil global is_interplatform_import_name call seen in 0.8.11/0.8.12.
- Preserves the non-destructive request seeding behaviour: explicit Planet Request Group tags and Interplatform Requests pseudo-sources are skipped, while normal new/default requests can still be seeded to the best Cargo ICBM provider surface.
Version: 0.8.12
Bugfixes:
- Preserves circuit wire connections when a Cargo ICBM destination change swaps the rocket silo to a different hidden cost-tier prototype.
- Preserves rocket-silo cargo/result inventory contents during prototype swaps where possible.
- If the replacement silo has no rocket inventory yet because rocket progress reset, Cargo ICBM buffers the copied rocket cargo in mod storage and restores it when the new silo exposes a valid rocket inventory again.
- Adds pending preserved rocket payload count to debug_selected_silo for checking buffered cargo after a destination swap.
Notes:
- Rocket construction progress may still reset after a prototype swap, because the different rocket-part requirement is the reason the prototype has to change.
Version: 0.8.11
Bugfixes:
- Fixed surface fallback cargo loss by keeping Cargo ICBM cargo-pod destinations at transform_launch_products=false.
- Orbit-to-surface fallback now preserves ordinary rocket cargo inventory for normal planet-surface landing behaviour instead of treating the payload as rocket launch products.
- Deep-space misses with no stopped platform and no surface fallback remain the only intentional cargo-destruction path.
Notes:
- Factorio's CargoDestination transform_launch_products option is intended for items with rocket_launch_products; Cargo ICBM is carrying normal inventory, so it must stay disabled for this mod's forgiving fallback behaviour.
Version: 0.8.10
Compatibility:
- Adds optional load-order dependencies for Interplatform Requests, Planet Request Group, Space Platform Groups, Inter Platform Travel, Inter-Platform Logistics, Space platforms don't delete items, and PlanetsLib 1.15.1+.
- AAI Signal Transmission and Interorbital Radar Signal remain required because Cargo ICBM's current launch model is intentionally circuit-triggered rather than automatic request scanning.
- Leaves IPL antenna/custom platform behaviour alone; Cargo ICBM does not import IPL libraries or mutate IPL pod buffers.
- Leaves Planet Request Group explicit rich-text groups alone and avoids overriding Interplatform Requests pseudo-source imports.
Changes:
- Circuit-triggered orbit deliveries now choose a target platform hub more carefully: matching requester platforms are preferred, then any stopped platform at the destination location with hub inventory space.
- Full target platforms are skipped. If no platform at the destination can accept the pod, the delivery falls back to the linked planet surface where possible, or deletes the pod for deep-space/no-surface destinations with a warning.
- Delivery revalidation now reads the cargo pod inventory at ascent instead of relying only on the payload snapshot taken when the launch signal was seen.
- Adds defensive selection state so future compatibility with platform-to-platform mods can skip source platform indexes and avoid feedback loops.
Version: 0.8.9
Changes:
- Makes interorbital-radar-signal a required dependency alongside aai-signal-transmission so circuit-request gameplay can use either docked-platform radar networking or cross-surface signal channels.
- Keeps the failed automatic platform-request launch loop removed; configured silos are now launched by the original Cargo ICBM-style positive virtual signal-explosion circuit trigger.
- Adds launch-order delivery plans and cargo-pod revalidation when the pod finishes ascending, so quality-silo animation timing and moving platforms are handled without relying on a fixed delay.
- For orbit/space-location destinations, sends to a stopped platform hub when one is still at the configured location.
- If the destination platform has moved but the configured location has a matching planet surface, redirects the pod to the generic surface destination rather than a specific cargo landing pad.
- If the configured destination is deep space with no stopped platform and no surface fallback, discards the cargo pod after ascent and prints a warning instead of risking a stale station crash.
- Adds delivery policy and pending cargo-pod counts to debug_circuit_launch_state.
Bugfixes:
- Removes a duplicate increment in the circuit launch loop's launch counter.
Version: 0.8.8
Date: 04. 05. 2026
Major behaviour change:
- Removed the failed automatic platform-request launch fulfilment loop from 0.8.7. Cargo ICBM no longer scans platform requests to decide when to launch rockets.
- AAI Signal Transmission is now a required dependency. The intended gameplay loop is: platform/base sends a cross-surface circuit signal through AAI, the player wires the receiver/output network to configured Cargo ICBM silos, and a positive virtual signal-explosion launches any ready silo.
- Restored the original Cargo ICBM-style trigger: a rocket-ready silo receiving signal-explosion on red or green circuit wire launches at the configured destination.
Features:
- Circuit-triggered launches use the selected Cargo ICBM destination rather than the vanilla overhead-platform destination.
- Surface destinations launch to that planet surface using CargoDestination.surface.
- Orbit / space-location destinations launch to a stopped platform hub at that exact location using CargoDestination.station when one exists.
- Default local-orbit silos preserve the original Cargo ICBM fallback: if no platform hub is available overhead, a circuit-triggered launch sends the cargo pod back down to the silo's own surface.
- Remote interface debug_circuit_launch_state reports selected silo signal value, rocket readiness, destination mode, station target, payload, cooldown, and last circuit-triggered launch result.
Safety:
- Non-local orbit and deep-space destinations do not launch if no stopped platform hub exists at the selected destination. A warning is printed so cargo is preserved rather than silently deleted.
- Failed or blocked launches get a short cooldown to avoid repeated warning spam while the signal remains high.
Notes:
- The platform helper still seeds import_from defaults and shows provider silos, but it no longer launches rockets or fulfils requests automatically.
Version: 0.8.7
Date: 04. 05. 2026
Features:
- Added the first conservative Cargo ICBM remote launch fulfilment loop. Configured, rocket-ready silos with cargo now check for a physically-present platform hub at their selected destination location and a matching orbital request importing from the silo source planet.
- When a match is found, the mod calls LuaEntity::launch_rocket with an explicit station CargoDestination targeting the requesting platform hub, bypassing the vanilla requirement that the platform be overhead at the source planet.
- Added remote.call("cargo-icbm-gui", "debug_remote_launch_state", player_index) for inspecting a selected silo's rocket readiness, payload inventory, configured destination, source import name, matching platform hub/request, cooldown, and last launch attempt.
Changes:
- Local default orbit routes remain vanilla-managed; Cargo ICBM only intervenes for non-local configured orbit/space-location destinations.
- Remote launch processing respects the existing cargo-icbm-remote-request-interval and cargo-icbm-max-remote-launches-per-interval settings, scans the event-driven silo registry with a moving cursor, and does not full-scan surfaces each tick.
- Remote launch attempts are cooled down when Factorio rejects an explicit launch, preventing repeated hammering of a blocked silo.
Known alpha limitations:
- The first remote fulfilment pass expects the rocket silo payload inventory to already contain the requested cargo, normally via vanilla/requester loading behaviour. It does not yet choose items from the source logistic network and pack mixed payloads itself.
- Surface-to-surface auto-launching is still intentionally not automatic without a matching request target, to avoid firing arbitrary ready rockets at landing pads.
Version: 0.8.6
Bugfixes:
- Removed the selected live-tier text from the normal silo GUI total line. The total per rocket launch now shows only the gameplay cost unless the debug setting is enabled.
- Fixed a crash when opening a platform hub at a location with no Cargo ICBM provider silos; surface_import_name now safely handles nil and best-provider selection returns no provider instead of indexing game surfaces with nil.
- Fixed travelling platform route display when a platform is moving in the reverse direction along a space connection. The helper now uses last_visited_space_location to display the actual travelled direction and inverts progress when required.
Debugging:
- Added remote.call("cargo-icbm-gui", "debug_selected_hub", player_index) to report the opened/selected hub platform status, route endpoints, raw connection endpoints, last visited location, distance, interpreted progress, and provider choice.
Version: 0.8.5
Changes:
- Simplified the rocket-silo Cargo ICBM GUI to the fields that matter for playtesting: destination, gravity launch cost, route-distance extra cost, total per launch, and an optional debug tier line.
- Destination discovery now builds from runtime space-location prototypes, game.planets, existing surfaces, force:is_space_location_unlocked(), and researched unlock-space-location technology effects instead of using hard-coded planet examples.
- Planet orbit entries can appear when the force has unlocked the space location even if that planet surface has not been generated yet; planet surface entries are only added when the surface exists.
- Non-planet targets are no longer unlocked by name heuristics such as "asteroid" or "edge"; they must be force-unlocked and are still filtered against interplatform pseudo locations.
- The platform helper now displays stopped platform location or travelling route using LuaSpacePlatform.space_location / space_connection / distance.
- Open platform helper panels refresh their route/default-provider summary about once per second and on platform state-change events, without rewriting request slots.
- Provider counts are always read from the current Cargo ICBM silo registry; changing a silo destination changes the helper count the next time the helper refreshes.
- Default import-source chat messages are now debug-only because the helper panel shows the same information inline.
- Added remote.call("cargo-icbm-gui", "debug_generated_tiers", player_index) to summarise generated exact cost tiers.
- Added remote.call("cargo-icbm-gui", "debug_destination_catalog", player_index) to inspect the selected silo's destination dropdown catalogue and force-unlock status.
Notes:
- If Factoriopedia shows only a few "made in" silos for the load recipe, use debug_generated_tiers instead; hidden exact-tier silo prototypes are generated from 1 to the configured startup maximum.
Version: 0.8.4
Bugfixes:
- Platform hub request helper is now event/snapshot based: it only seeds import_from on newly created or item-changed orbital request slots. Existing request slots and manual source choices are no longer rewritten.
- Removed the remaining destructive platform request behaviour: Cargo ICBM never writes LuaLogisticSection.group, so unnamed/manual logistic groups are not merged or renamed.
- Added a one-time chat notice while using the hub GUI explaining which provider source will be used for new orbital requests, based on the most configured silos targeting the platform location.
- The notice is chat-only and not a group name.
- Request seeding is done after the player confirms the item request slot, using LogisticFilter.import_from through LuaLogisticSection.set_slot.
GUI:
- Cargo ICBM provider lists on space platform hubs are now collapsible per source surface. Groups with more than three provider silos start collapsed to avoid filling the screen.
- Provider groups are sorted by provider count, then name, so the likely default source is visible first.
- GPS buttons remain available inside expanded groups and print the GPS tag to chat.
Notes:
- This release deliberately focuses on the platform hub helper. Rocket silo destination/cost issues should be patched separately after the platform helper behaviour is verified.
Version: 0.8.3
Date: 04. 05. 2026
Bugfixes:
- Fixed the Cargo ICBM silo GUI readouts staying as dashes. The labels are nested inside row flows, so the updater now searches the GUI tree recursively instead of only direct frame children.
- Removed destructive platform logistic group renaming. Cargo ICBM no longer writes section.group, so unnamed/manual groups are not merged into a single auto-named group.
- Made platform hub import-source seeding non-destructive: only unassigned/current-location/interplatform-pseudo request slots are seeded to the best provider source; manually selected import sources are left alone.
- Disabled periodic background rewriting of platform hub request slots. Import defaults are seeded on hub open or slot edit, not every interval, so player changes remain stable.
- Destination catalogue no longer treats unlocked space-platform UI as editor mode. Unresearched planets and deep-space locations are filtered by force:is_space_location_unlocked instead of appearing because the platform button exists.
- Removed heuristic deep-space name unlocking. Asteroid belt, outer edge, shattered planet, and modded deep-space locations now appear only when the force has actually unlocked that space location, or when that exact key was already selected and must be preserved.
- Fixed source planet gravity lookup fallback so planet names are resolved back through game.planets before reading planet surface properties.
Balance / cost model:
- Gravity cost now follows the detected gravity ratio directly instead of clamping low-gravity planets back up to Nauvis cost. A 50-part base silo on Fulgora-style 8 gravity now targets about 40 parts, while Vulcanus-style 40 gravity targets about 200 parts.
- Default generated exact silo tiers increased from 2000 to 10000, with startup range 1..50000, so long routes such as Vulcanus to Shattered Planet can select a live prototype above 2000 instead of capping early.
Platform helper behaviour:
- The chat notice remains, but it is now informational only: it tells the player that new/default platform request slots at the current location will default to the most saturated provider source and explicitly notes that the player can change slots manually. The notice can appear even when the slot was already using that default and no write was necessary.
- Provider counts still come from the configured silo registry grouped by source surface/destination; no hard-coded Vulcanus/Nauvis special case is used.
Known alpha limitations:
- Silo replacement still necessarily closes/reopens the vanilla rocket silo GUI because Factorio rocket_parts_required is prototype-stage and changing destination can require replacing the entity with a different hidden prototype.
- This environment cannot load the full Factorio mod stack, so final confirmation still depends on in-game testing with your save.
Version: 0.8.2
Status:
- Emergency alpha repair after 0.8.0/0.8.1 exposed placeholder behaviour instead of working Cargo ICBM behaviour.
- This build intentionally favours a functional core over cosmetic placeholder panels.
Architecture:
- Rebuilt the runtime around the exact rocket-part cost tier model instead of percent-tier assumptions.
- Preserves the cleaner 0.8.x exact hidden silo naming scheme cargo-icbm-silo-cost-00050 etc., but no longer treats 50 or vanilla planet data as the only valid configuration.
- Added startup setting cargo-icbm-max-generated-rocket-parts. Hidden tier generation now uses the detected base rocket silo requirement and a configurable generated maximum rather than a hard-coded 50..1000-only assumption.
- Runtime cost prototype discovery still uses plain prefix matching against cargo-icbm-silo-cost- rather than an unsafe Lua pattern.
Silo cost and replacement:
- Fixed destination filtering to use force:is_space_location_unlocked(name) with a correct method call.
- Reworked destination catalogue generation to discover planets and space locations from game/prototype data rather than from a hard-coded vanilla planet list.
- Existing, newly built, revived, script-built, and ghost-built silos are registered through the event-driven silo cache.
- Opening a rocket silo applies and refreshes the actual destination state against the selected silo entity instead of showing a detached dummy readout.
- The debug call reports live prototype rocket_parts_required, selected hidden tier, chosen required parts, gravity parts, distance parts, and registered cache state.
- Source gravity now reads the source surface gravity property first, then falls back safely to 10 only when no runtime surface data exists.
- Nauvis gravity for the formula is read from the actual Nauvis surface when available.
- The shortest route graph uses detected space-connection prototypes and their length values.
- Local default orbit is not forced to a free/base route; a Vulcanus silo should still select the approximately 200-part tier when the detected source gravity is 40 and the detected base silo cost is 50.
Destination list:
- Unresearched planet destinations should no longer appear merely because they are vanilla planets.
- Current/default local orbit is always retained so the player cannot lose the current setting.
- Deep-space destinations such as asteroid belt, solar-system edge, and shattered planet are included only when unlocked or when a detected deep-space platform alignment technology allows them.
- Interplatform pseudo locations, sandbox/editor/lab pseudo names, hidden prototype entries, and parameter-style test locations are filtered out of the normal silo destination list.
Copy/paste and ghosts:
- Real silo to real silo copy/paste copies the stored destination key and recalculates the destination silo tier.
- Real silo to ghost copy/paste writes the Cargo ICBM destination into ghost tags.
- Ghost to real silo copy/paste reads the ghost tag and applies the resulting exact-part hidden prototype.
- Ghost to ghost copy/paste preserves the ghost destination tag.
- Rebuilt ghosts consume the copied destination tag when the real silo is created.
Platform hub helper:
- Restored automatic platform hub import-source assistance in the style of the older 0.6.x implementation.
- When a platform hub is opened at a stable space location, Cargo ICBM counts configured provider silos by source surface for that platform location.
- For ordinary/manual untagged request sections, Cargo ICBM selects the import_from source with the largest count of provider silos.
- Example: if a platform in Vulcanus orbit has 4 Nauvis provider silos and 10 Vulcanus provider silos targeting that location, untagged/default request slots should be set to import from Vulcanus.
- Auto-managed request groups are renamed to the vanilla-looking form Import from Vulcanus (10 providing silos).
- Rich-text tagged Planet Request Group sections containing [planet=...] or [space-location=...] are left alone.
- The player receives only one concise chat notice per hub/location/provider/count combination when Cargo ICBM first auto-selects an import source.
- The helper does nothing while a platform is travelling between locations.
- The periodic remote request interval now also refreshes known platform hubs conservatively instead of relying only on the panel being opened.
Platform route UI:
- The platform provider panel is anchored to the platform hub GUI rather than existing as an always-open floating dummy panel.
- Provider counts are built from the configured silo registry.
- Provider rows include GPS rich text generated from LuaEntity.gps_tag when available, with a safe manual [gps=x,y,surface] fallback.
- GPS buttons print the GPS rich text to chat instead of pretending icons are clickable map links.
Recipes and compatibility:
- Keeps external complete rocket-part crafting.
- Keeps the hidden silo loader recipe that consumes finished rocket-part items.
- Keeps 10/10/10 complete rocket-part normalisation back toward Space Age-like 1 LDS / 1 rocket fuel / 1 processing unit cost.
- Keeps specialised alternative rocket-part recipes for detected Space Age and modded specialist recipe categories, including electromagnetic, electromechanics, foundry/metallurgy, heated fabrication, petrochemistry, biochamber/organic, cryogenics, diesel, thinking brain, atomic, hydraulics, and Age-of-Production-like categories.
- Keeps Rocket Reusability salvage damping and incomplete-part reprocessing safeguards where those recipes/items exist.
- Keeps Deep Space Platform Alignment technology description patching when matching technology prototypes exist.
Known alpha limitations:
- Cargo ICBM still does not fabricate an IPL cargo-pod visual layer if IPL exposes no compatible remote interface.
- Remote platform fulfilment remains conservative; the platform import-source helper is the working route-selection feature in this build.
- Factorio itself must be used for final validation because this environment cannot launch the game engine or load the full mod stack.
Version: 0.8.1
Date: 04. 05. 2026
Bugfixes:
- Replaced the detached always-visible screen GUIs with relative GUIs anchored to rocket silo and space platform hub windows.
- Destination dropdown now uses force.is_space_location_unlocked where available and no longer hard-codes unresearched vanilla planets.
- Deep-space space-location prototypes are included after Deep Space Platform Alignment style research is detected.
- Provider GPS entries now include a GPS button that prints a clickable GPS tag to chat instead of relying on inert icon-like rich text in the panel.
- Added GUI cleanup when the player closes the entity GUI or changes surface/controller.
Changes:
- Added live prototype required-part readout to the Cargo ICBM silo GUI for immediate verification that hidden silo replacement worked.
Version: 0.8.0
Date: 04. 05. 2026
Features:
- Fresh alpha rewrite from scratch for Factorio 2.0 / Space Age.
- Added Cargo ICBM destination GUI on rocket silos.
- Added route/gravity-based rocket-part cost calculation.
- Added hidden cloned rocket-silo cost tiers from 50 to 1000 exact parts.
- Added existing-save silo initialisation and replacement.
- Added destination persistence, copy/paste support, and ghost tag support.
- Added launch redirection for surface destinations and physically-present platform hubs where the Factorio cargo-pod API allows it.
- Added platform hub provider panel with GPS links for configured silos.
- Added external finished rocket-part crafting and hidden one-part silo loader recipe.
- Added 10/10/10 rocket-part recipe rebalance.
- Added themed alternative rocket-part recipes for Space Age and compatible modded categories.
- Added conservative IPL remote-interface hook without fake teleport fulfilment.
- Added debug remote call: remote.call("cargo-icbm-gui", "debug_selected_silo", player_index).