Resources and production timing
Section titled “Resources and production timing”Minerals, industrial build points, wealth, fuel, maintenance supplies and finished components are distinct resources. Production capacity sets how much work is possible. Mineral and fuel availability can reduce that work. Completed whole items enter the matching stockpile or appear in the game as ships, installations or formations. Each production system applies these rules in its own way, as the sections below describe. The page covers installations, fuel, maintenance supplies, components, ordnance, small craft, shipyard development and ship work, and ground forces, together with the stockpiles those systems consume and replenish.
| Resource | Meaning and accounting unit |
|---|---|
| Build points (BP) | Work capacity expressed per year. Projects allocate it over elapsed years. It is not a stored mineral or finished component. |
| Wealth | Race-wide wealth points (FCT_Race.WealthPoints) debited for work or upkeep and credited for recovery. Player industrial, shipyard and ground work have no wealth affordability gate. Autonomous shipping companies use a separate balance and admission checks. |
| Minerals | Eleven separate entries in a population’s mineral stockpile. Each recipe specifies its own per-unit amount of each mineral. |
| Fuel | Litres in a population or ship stockpile. Refinery and harvesting output, missile recipe fuel and ship stores are distinct transactions. |
| Maintenance supplies (MSP) | A separate population and ship stock. Refinery minerals do not directly substitute for MSP. |
| Finished items | Whole components, ordnance, installations, ships and ground units. Fractional industrial work remains project progress. |
The formulas below use decimal arithmetic unless a truncation, floor or rounding step is stated. Rounding to a fixed number of decimals sends a value exactly halfway between two results to the even neighbour. Database recipes and technology FCT_TechSystem.AdditionalInfo values can differ by game. Defaults and constants are named where they matter.
Production dispatch and order
Section titled “Production dispatch and order”Population production uses elapsed years. A year is 31,536,000 seconds. The game runs population production for a snapshot of all populations. Within each population the order relevant to resources is mining, industrial projects, ground training, terraforming and mass-driver exports. Then, when total population is positive, come shipyard modifications, shipyard tasks, fuel refining, research and genetic conversion, MSP production and trade goods. Freshly mined minerals can therefore fund industry in the same cycle, and earlier consumers can reduce the stockpile left for later ones.
Most steps run only when they have something to do. Mining runs only when the total mining production is above zero. Industry runs only when the population has at least one industrial project. Ground training runs only when the training list is not empty or Build Replacements is checked. Terraforming runs only with positive terraforming capacity, and mass-driver export only with positive mass-driver capacity. Fuel refining runs only while the refinery switch (FCT_Population.FuelProdStatus) is on, and MSP production only while the maintenance switch (FCT_Population.MaintProdStatus) is on.
Before mining, the cycle runs the recalculations listed in Recalculation helpers and refresh paths and stores a copy of the mineral stockpile as the “last minerals” snapshot. For an NPR race with AI processing enabled, it then runs the population AI for the race’s starting level, so projects and shipyard tasks that the AI queues are processed later in the same cycle. Standard and Minor races run the trans-Newtonian population AI, conventional NPR races run the conventional population AI, and other starting levels run neither. With AI processing on, the cycle also looks up the NPR’s capital population, which then serves as the mineral source for NPR industry, refining, MSP production and shipyard work.
Production capacity and modifiers
Section titled “Production capacity and modifiers”The production cycle refreshes output multipliers and annual capacities. Colony environment, radiation, workforce, efficiency, unrest and political status are refreshed by a separate colony state update. They are inputs to the production calculation. The colony output and income cycle page follows these inputs through one whole cycle.
Define the shared industrial multiplier P, the population’s production output modifier. Its terms include the bonuses of the governor and sector governor and the population’s political status:
P = governor Production bonus x sector governor quarter Production bonus x species ProductionRateModifier x race EconomicProdModifier x Efficiency x radiation production modifier x stability x political status ProductionMod.
The species term is FCT_Species.ProductionRateModifier, the race term is FCT_Race.EconomicProdModifier, efficiency is FCT_Population.Efficiency, and the political term is DIM_PopPoliticalStatus.ProductionMod (see the political status catalogue). An absent governor or sector governor contributes 1. A missing percentage-type bonus also counts as 1. A missing bonus of a non-percentage type counts as 0 when read directly. The sector governor applies a quarter of his bonus. The quarter multiplier is 1 + (bonus value - 1) / 4, and it is 1 when he lacks the bonus. Civilian governance and sectors explains where the governor and sector bonuses come from.
Category capacity is a weighted sum of installation quantity times the installation definition’s category value in DIM_PlanetaryInstallation (ConstructionValue, OrdnanceProductionValue, FighterProductionValue, RefineryProductionValue, MaintenanceValue). The annual capacity calculation truncates these sums to integers before applying rates. Let C, O, F, R and M be those integer construction, ordnance, fighter, refinery and maintenance category capacities.
| Annual output | Formula |
|---|---|
| Installation construction BP | race ConstructionProduction x P x C |
| Engineer construction BP | race ConstructionProduction x engineer construction modifier x ground formation construction rating |
| Combined construction capacity | installation BP + engineer BP |
| Ordnance BP | race OrdnanceProduction x P x O |
| Fighter BP | race FighterProduction x P x F |
| Fuel litres | race FuelProduction x P x R |
| MSP | race MSPProduction x P x M x 4 |
The factor 4 in the MSP row is the number of maintenance supplies per wealth point. These are the values that production consumes.
Engineer construction uses the engineer construction modifier rather than P. That modifier keeps its initial value 1, because no step of the game ever recalculates it, as Recalculation helpers and refresh paths states. The ground formation construction rating is the summed construction rating of the ground formations at the population. The production cycle obtains it with fortification engineers excluded. The population summary obtains it with fortification engineers included, so the displayed contribution can differ.
The race defaults in FCT_Race are ConstructionProduction 10, MineProduction 10, OrdnanceProduction 10, FighterProduction 10, FuelProduction 40,000, MSPProduction 20 and ShipBuilding 400. Rate technologies replace these values with the technology’s FCT_TechSystem.AdditionalInfo. The MSP rate is truncated to a whole number. Loaded or researched values, rather than these defaults, govern a particular game.
Workforce, radiation and stability inputs
Section titled “Workforce, radiation and stability inputs”Required manufacturing workers equal the population’s shipyard worker requirement plus the sum of installation amount x DIM_PlanetaryInstallation.Workers. Efficiency is 1 unless required workers exceed the available manufacturing population. Then it is available divided by required, clamped below at zero. A zero worker requirement gives efficiency 1. The shipyard worker requirement is described in capacity, slipways and workforce.
A separate worker balance rebuilds the required manufacturing workers with the same sum and returns the available manufacturing population minus that requirement. It does not change efficiency. Only the NPR research-lab and ground force construction complex request rules read it, and they treat a negative balance as a worker shortage. NPR colony and economic AI owns those requests.
Available manufacturing population is total population minus the required agriculture and environment population minus the required service population. Agriculture and environment starts with min(1, 0.05 x (current colony cost + 1)) x surface population, then is expressed as a fraction of total population. The 0.05 is the base life-support fraction per point of colony cost. Required service fraction is fourth root(total population x 100000) / 100, capped at 0.7. When agriculture plus service would exceed 1, the service fraction becomes exactly 1 minus the agriculture fraction. Workforce efficiency production and taxes covers the same workforce from the colony side.
The radiation production modifier is max(0, 1 - RadiationLevel / 10000), where RadiationLevel is the body’s value in FCT_SystemBody. Unrest (FCT_Population.UnrestPoints) is clamped to 0 to 99 during the unrest update, then stability is 1 - UnrestPoints / 100.
Recalculation helpers and refresh paths
Section titled “Recalculation helpers and refresh paths”Two routines refresh the production values. The production cycle runs a fixed sequence at the start of every cycle. The population window runs a longer sequence when it refreshes its summaries. The colony state update and the summary refresh write the workforce and efficiency inputs. The production cycle runs neither of them.
| Recalculation | Values written | Production cycle | Summary refresh |
|---|---|---|---|
| Production output modifier | P, described above | Yes | Yes |
| Shipbuilding output modifier | The shipyard output modifier, written M on the shipyard page, used by shipyard work | Yes | Yes |
| Mining output modifiers | Manned and automated mining modifiers | Yes | Yes |
| Ground formation construction rating | Summed construction rating of local formations | Yes, fortification engineers excluded | Yes, fortification engineers included |
| Annual production capacities | Construction, ordnance, fighter and fuel capacities and annual MSP production | Yes | Yes |
| Mining production totals | Civilian mining production and total mining production | Yes | Yes |
| Ground formation construction capacity | Annual ground formation construction capacity | Yes | Yes |
| Shipyard capacity totals | Total naval, commercial and repair yard capacity, and total slipways | No | Yes |
| Production efficiency | Required manufacturing workers and efficiency | No, colony state update only | Yes |
| Engineer construction modifier | The engineer construction modifier | No | No |
Both sequences compute the output modifiers and the ground construction rating before the annual capacities, which read them. The annual capacity step truncates each category sum to a whole number, then multiplies by the race rate and the modifier. The MSP row multiplies by 4 maintenance supplies per wealth point. The mining totals add orbital output only when the body diameter (radius x 2) is at most the race’s MaximumOrbitalMiningDiameter.
The shipbuilding output modifier multiplies the governor Shipbuilding bonus, the sector governor quarter Shipbuilding bonus, species ProductionRateModifier, race ShipBuilding, race EconomicProdModifier, efficiency, the radiation production modifier, stability and political ProductionMod. Annual ground formation construction capacity multiplies race GroundFormationConstructionRate by the number of ground force construction complexes and the governor and sector governor GroundConstruction bonuses, then by the same six population factors without race ShipBuilding.
The engineer construction modifier starts at 1. Its recalculation would set it to race EconomicProdModifier x radiation production modifier, but nothing in the game runs that recalculation. The engineer term of construction capacity is therefore race ConstructionProduction x 1 x ground formation construction rating in both refresh paths, and the summary’s engineer contribution line uses the same value.
Only the summary refresh writes the four shipyard totals. Each type total is the sum over that population’s yards of slipways x capacity, in tons, and the slipway total sums slipways over all yard types. The population details text and the summary list read them, so they are display values. The summary list shows “Shipyards / Slipways” as yard count over total slipways. Shipyard work reads each yard’s own Capacity and Slipways. The summary refresh also replaces the population’s projected mineral usage breakdown with nine empty sets of mineral amounts, which Projected usage, usage records and positive-amount lists describes.
Industrial queues and mineral consumption
Section titled “Industrial queues and mineral consumption”Shared industrial progress and resource accounting
Section titled “Shared industrial progress and resource accounting”Construction, components and space stations share construction capacity. Fighters and ordnance have their own category pools. Project creation stores the selected unit cost, the per-unit mineral amounts, the fuel requirement truncated to a whole number, the requested remaining amount and the allocation percentage. Each project type is booked under its own wealth category in DIM_WealthUse: Installation Construction (ID 4) for installations, Ordnance Production (2), Fighter Production (3), Ship Component Production (40) and Orbital Habitat Construction (45) for space stations.
The industrial step fixes its list of projects when it starts. The list holds the projects whose Queue is zero and whose Pause is false. A project with a ProdPerUnit (BP cost of one unit) of zero or less is skipped. For an NPR with no capital population the step does nothing. For each project:
- Allocate
category annual BP x elapsed years x Percentage / 100. The category capacity is construction capacity for installations, components and stations, and the ordnance or fighter capacity for those types. - Compute
progress = allocated BP / ProdPerUnit, capped at the remainingAmount. - Limit progress by mineral availability, then required fuel, then conversion-source availability when relevant. The fuel limit applies only when progress and
FuelRequiredare both above zero and the fuel stockpile is belowFuelRequired x progress. Progress then becomesFuelStockpile / FuelRequiredand a Fuel Shortage event is logged. A conversion shortfall logs a Conversion Halted event. - If progress is zero or less, leave the project unchanged.
- For every project except NPR ordnance, charge
progress x ProdPerUnitwealth, eachper-unit mineral requirement x progress, andFuelRequired x progress. NPR minerals are drawn from the capital population. - Add progress to
PartialCompletion(the fractional unit carried between cycles). Createfloor(PartialCompletion)whole units and keep the fractional remainder. - Remove a finished project, or reduce the remaining
Amountby progress. A project finishes only when progress exactly equals the remaining amount.
Resource spending therefore accompanies fractional progress. Nothing is reserved up front for the entire order, and unused BP is not redistributed after a resource limit or an early completion. Newly promoted queued work was absent from that list and receives no leftover production in the same cycle.
Player production uses the producing population’s minerals and FuelStockpile. Fuel is always read from and debited to the producing population, NPRs included. Only NPR minerals come from the capital.
The mineral limiter checks positive recipe entries in order: Duranium, Neutronium, Corbomite, Tritanium, Boronide, Mercassium, Vendarite, Sorium, Uridium, Corundium, Gallicite. Each shortage reduces progress to stockpile divided by per-unit requirement. The check for each mineral uses the progress already reduced by earlier minerals. The limiter logs a Mineral Shortage event naming the last mineral that further reduced progress, and only when some mineral reduced it. It returns progress rounded to 4 decimals. The later debit does not clamp stockpiles at zero, so rounding up an affordable fraction can leave a tiny negative quantity. Shortage arithmetic for mineral stockpiles compares this limiter with the shipyard and ground versions.
A wealth shortage does not stop any of these steps. The wealth charge simply subtracts the amount from the race’s WealthPoints and records the transaction with its wealth category and the game time, with no affordability check. Wealth, income and treasury covers how those records are kept.
The player’s mineral reserve levels protect normal mass-driver export quantities. Only the positive stockpile minus the reserve is exportable. No packet is launched when the total exportable quantity is below 1 ton. When exportable minerals exceed mass-driver capacity x elapsed years, every mineral is scaled by the same fraction, capacity divided by exportable. A packet starts at the base speed of 1,000 km/s and is then multiplied by the export budget (mass-driver capacity x elapsed years) divided by the packet size. A packet that fills the budget travels at 1,000 km/s and a smaller packet travels faster. Industrial construction, refinery and MSP affordability checks and debits do not subtract reserves before consuming resources.
Industrial queue and pause semantics
Section titled “Industrial queue and pause semantics”A new order goes straight to active work (Queue 0) when 100 - sum of Percentage over the category’s active projects is at least the requested percentage. Otherwise it takes the largest Queue in that category plus one. Player and NPR orders use the same rule, because every industrial project is created the same way. With no project in the category and a requested percentage above 100, the placement fails. The game shows error Function #2199, places the project at position 0 and so starts it as active work. All active projects count against allocation, including paused projects. Pause only toggles the flag and keeps the percentage. Editing an active project’s amount or percentage is rejected when the new active total would exceed 100%, counting active projects other than the edited one. The player sees “This modification would result in a total percentage for this factory type greater than 100%”. Queued projects can be given any percentage.
When a project completes, the game computes 100 minus the active category allocation, walks the queued projects in order and activates each one whose percentage fits. The walk stops once the available allocation reaches zero or less. An earlier large project that does not fit can be bypassed by a later smaller one. Remaining queue positions are renumbered from one. Manual removal only removes the project and renumbers the queue. It does not run this promotion walk.
Moving the first queued project up needs enough free allocation to activate it. Without it the player sees “There is insufficient available capacity to move this project to the top of the queue”. Deeper queued projects swap with their predecessor, and a queued project can move down by swapping with its successor. Moving an active project down puts it at queue position one and shifts queued entries back. That move does not check allocation.
The displayed completion date is current time + ProdPerUnit x remaining Amount / assigned annual BP x 31,536,000 seconds. The assigned annual BP is category capacity x Percentage / 100. The window substitutes 1 for zero assigned BP and does not model shortages or pause. Queued entries show no completion date. Each group of listed projects, active ones first and queued ones after, ends with its own “Unused” row. It shows 100 minus the sum of Percentage in that group, and only when that sum is below 100. The queued group’s row counts queued percentages only.
Shortage arithmetic for mineral stockpiles
Section titled “Shortage arithmetic for mineral stockpiles”Populations, ships, recipes, projects, tasks and mass-driver packets each hold their eleven minerals as one set of amounts. The rules in this section perform the shortage tests, whole-quantity bounds and debits that the production paths use. All of them use decimal arithmetic and visit the minerals in one fixed order: Duranium, Neutronium, Corbomite, Tritanium, Boronide, Mercassium, Vendarite, Sorium, Uridium, Corundium, Gallicite.
Fraction limiters and debits
Section titled “Fraction limiters and debits”| Limiter | Value limited | Rounding of the result | Shortage event | Used by |
|---|---|---|---|---|
| Industrial project limiter | Units, tested against per-unit recipe x units |
Returns the value rounded to 4 decimals itself | Mineral Shortage in the production category, always logged | Industrial projects |
| Shipyard task limiter | Fraction of the whole task, tested against task minerals x fraction |
Unrounded, and the shipyard step rounds to 4 decimals | Mineral Shortage in the shipbuilding category, always logged | Shipyard tasks, except Scrap |
| Ground unit limiter | Fraction or unit count, tested against supplied recipe x value |
Unrounded, training rounds to 4 decimals and replacement truncates to a whole number | Mineral Shortage in the ground units category, only when shortage logging is on | Ground training and replacement manufacture |
Ground training always runs the ground unit limiter with logging on. Replacement manufacture starts each formation with logging on and turns it off after the first element whose limited count is zero.
The three limiters share one rule. For each mineral with a requirement above zero, a stock strictly below requirement x current value replaces the current value with stock / requirement. The next mineral tests against the value already reduced, so the result is the smallest ratio among the short minerals. A mineral that is short against the original request but covers the reduced value changes neither the result nor the event. The event names the last mineral that reduced the value. A stock exactly equal to the requirement passes, zero stock gives zero, and a negative stock gives a negative ratio. The shipyard limiter returns 0 when no task is supplied or the task has no mineral amounts. When replacement manufacture is short of minerals and shortage events are on, the first short element gets zero units and the event is not written, as Manufacture describes.
The industrial debit subtracts per-unit requirement x produced units for each of the eleven minerals. The shipyard debit subtracts task requirement x build fraction, where the task’s minerals are the requirement of the whole hull, repair or refit, and does nothing when there is no task. Ground training and replacement use a general scaled debit. None of these debits clamps a stock at zero or tests the stock again. Each debits the rounded value it receives, so a four-decimal round up of the limited value can take a stock slightly below zero.
| Path | Sequence before the debit | Debit and usage record |
|---|---|---|
| Industrial project | units = allocated BP / ProdPerUnit, capped at Amount, then the industrial limiter, then the unrounded fuel limit FuelStockpile / FuelRequired when the stockpile is below FuelRequired x units, then the conversion-source limit |
Industrial debit with units, then a usage record for players. Both are skipped for NPR ordnance, which is limited but not debited |
| Shipyard task | Round(build rate x Y, 4), fraction Round(BP / TotalBP, 4), limiter result rounded to 4, BP capped at Round(TotalBP - CompletedBP, 4), fraction Round(BP / TotalBP, 4) |
Shipyard debit with the final fraction, then a Shipbuilding usage record for players. Both are skipped for Scrap |
| Ground training | Round(capacity x Y x percentage / 100, 4), fraction rounded to 4, limiter result rounded to 4, BP Round(fraction x TotalBP, 0) capped at the remainder, fraction Round(BP / TotalBP, 4) |
Scaled debit with the fraction, then a Ground Unit Training usage record for players |
| Ground replacement | floor(capacity / unit Cost) capped at missing units, then the limiter result truncated to a whole number |
Scaled debit with the unit count, then a Ground Unit Training usage record for players |
Y is elapsed years. Each path also records a wealth expense. Industrial projects charge units x ProdPerUnit under the project’s wealth category. Shipyard tasks charge under Shipbuilding, Ship Repairs or Ship Refits, and Scrap charges nothing. Ground training and replacement charge under Ground Unit Training.
NPR races run the limiter and the debit against the capital population. The ground replacement path differs for the limit, which reads the local population while the debit takes capital minerals. Industrial fuel is limited against the producing population’s FuelStockpile, and is debited from it except for NPR ordnance projects, which skip the wealth, mineral and fuel debits. Usage records are written for player races only.
Whole-quantity bounds and affordability tests
Section titled “Whole-quantity bounds and affordability tests”The maximum buildable quantity starts from 1,000,000 and lowers that bound to stock / requirement for each mineral with a positive requirement. It returns the floor of the minimum as a whole number, so a recipe with no positive requirement returns 1,000,000 and a negative stock returns a negative bound. The bound reads minerals only. It ignores fuel, wealth, reserves and build points, and it reserves nothing.
Only the NPR population AI uses this bound, and both NPR population routines use the capital population’s minerals. The installation, ordnance and fighter queuing rules return 0 when the bound is below 1, lower the requested amount to the bound, and create a 100% project in the normal way. The installation rule sets the project fuel to 0. The ordnance rule sets the project fuel requirement to the missile’s FuelRequired and the fighter rule to the ship class FuelCapacity, both truncated to whole numbers at creation. NPR ordnance projects therefore meet the industrial fuel limit but skip the fuel debit, and NPR fighter projects meet both. Player fighter selection uses zero project fuel. The automated shipyard repair and build rule uses the bound as a whole-hull count, as Task creation paths describes. Queuing debits nothing, so each queuing decision sees the stock as it is.
The “has at least” test returns false at the first mineral whose stock is strictly below the requirement and true otherwise. It compares all eleven minerals, including requirements of zero, so a negative stock fails even a zero requirement. Only the NPR automated ground training rule uses it. That rule first works through templates below their required count, in priority order, and tests each formation template’s total mineral requirement against the mineral source population before starting a 100% training task. It stops that template’s attempts at the first failure, and it stops entirely once its training task limit runs out. Starting a training task debits nothing, so later templates are tested against the same stock. A second pass then starts more 100% training tasks for templates whose current and queued count is below twice the required count, largest shortfall first, without any mineral test, until the task limit runs out. The trans-Newtonian AI runs this rule with a limit of one task, and only when the population has a ground force construction complex and no training in progress. Automated ground unit training describes the NPR side.
Projected usage, usage records and positive-amount lists
Section titled “Projected usage, usage records and positive-amount lists”The projected usage for an industrial project adds per-unit requirement x Amount, where Amount is the project’s remaining unit count. It ignores PartialCompletion, Pause and Queue. The industrial project list adds every listed project, active or queued. Construction, component and space station projects go to the Construction column, ordnance to the Ordnance column and fighters to the Fighter column. The list clears those three totals before it lists the projects.
The projected usage for a shipyard task adds task requirement x (1 - CompletedBP / TotalBP) for each mineral and skips a task with no mineral amounts. The shipyard task list clears the SY Tasks total and adds every task at the population, paused or not. A scrap task’s minerals are the preview copy scaled by the scrap recovery multiplier of -0.25, and its total BP is ship class cost x -0.25, so a scrap task lowers the projected total.
The total projected usage sums eight columns. They are construction, ordnance, fighters, shipyard modifications, shipyard tasks, ground training, refinery Sorium and maintenance supplies. The mineral list colours a mineral orange when its projected usage exceeds stock plus one year of production, and red when the usage also exceeds stock plus the remaining deposit. One year of production is total mining production x deposit accessibility. The colour test applies only to minerals with a deposit on a surveyed body. Other minerals keep the default light yellow. These totals are display state. The list refreshes rebuild them, and no production step reads them.
Mineral usage records are rows of FCT_RaceMineralData, each tagged with a type from DIM_MineralDataType. A whole set of mineral amounts is recorded one mineral at a time. Amounts of zero or below are dropped, and each remaining amount becomes an entry stamped with the current game time. A scaled form does the same with each quantity multiplied by a scale factor. These whole-set records are skipped for NPR races. The unscaled form records amounts that move at once. These are a mass-driver packet at launch as Sent by Mass Driver (type 12) and on arrival as Received from Mass Driver (13), and a freighter unload of all minerals as Unloaded from Freighter (7). The scaled form records ground training and replacement as Ground Unit Training (6), and the four scrap recoveries. Those are Scrapped Components (15) at 0.3, Scrapped Ground Units (17) at 0.3, Scrapped Installations (18) at 0.3 and Scrapped Ordnance (19) at 0.25.
Industrial and shipyard work write their own records. An industrial project records under the type whose ID equals its wealth category ID, because the two numbering schemes match: Ordnance Production 2, Fighter Production 3, Construction 4 (Installation Construction in the wealth table), Ship Component Production 40, and Space Station Construction 45 (Orbital Habitat Construction in the wealth table). A shipyard task records construction, repair, refit and automatic refit alike as Shipbuilding (5). After each increment, the game merges the entries stamped with the current time into one summed entry per mineral, race, population, type and time. The mineral data list reads the entries newer than its lookback window, optionally for one population, sums them by mineral and type, and shows the types flagged Income as inflow rows and the other types as outflow rows, each group ordered by DisplayOrder, followed by total inflow, total outflow and net inflow.
The positive-amount list returns one entry for each mineral above zero. The ship save writes mineral cargo rows from it and the ship class save writes FCT_ClassMaterials rows from it, so zero and negative quantities are not saved there. The fleet cargo summary and the transported-items tree build their mineral lines from it. The transported-items tree lists minerals in the fixed order. The fleet cargo summary lists them in the order they first appear across the fleet’s ships.
The ship class materials summary converts a class’s MaintSupplies into minerals for its MSP column. It sets Duranium to MSP x 0.1, Uridium to MSP x 0.05 and Gallicite to MSP x 0.1, and leaves the other eight minerals unchanged. These are the same Duranium, Uridium and Gallicite amounts per MSP that MSP production debits. Ship construction does not debit these minerals, because the ship class mineral cost holds only component costs. A completed player ship then withdraws its class MaintSupplies from population stock, as Completion, automatic succession and cancellation describes. That withdrawal applies only to player ships with a construction population. NPR ships receive the full class MaintSupplies without a withdrawal.
Installations and mineral extraction
Section titled “Installations and mineral extraction”Planetary installations, conversions and forced labour
Section titled “Planetary installations, conversions and forced labour”Installation cost, workers, capacity weights, mineral recipe, conversion source and target, and build flags come from DIM_PlanetaryInstallation, so numeric installation recipes are data driven. The planetary installation catalogue lists every row. Selecting an installation for construction assigns the definition’s minerals and Cost, and resets the selected fuel requirement to zero. The build list excludes definitions with NoBuild set and requires the RequiredTechID technology to be absent or researched and not obsolete. It is sorted by installation name. A window option can also drop conversions whose ConversionFrom is Conventional Industry from the list.
Completed installation units are added to the population. Ordinary installations increase the population’s existing entry or create a new one. Conversion projects limit progress by the current count of the ConversionFrom installation. An absent source gives zero, and an insufficient source quantity is truncated to a whole number. Sources are removed only when a whole unit completes, and then the ConversionTo installations are added with the same handling as any other completed installation. An insufficient source logs a Conversion Halted event.
Forced Labour Construction Camp and Forced Labour Mining Camp projects are skipped when the total population is below 0.1, and an Insufficient Population event reports it. A completion batch adds the installations, adds 5 unrest and subtracts 0.1 from the surface population once per batch, however many units completed.
Naval yard, commercial yard and repair yard installations create a shipyard directly when they complete. That completion creates one yard and ignores the completed quantity.
Mining and mineral availability
Section titled “Mining and mineral availability”Mining capacity groups are definition MiningProductionValue x quantity. Manned mining requires Workers above 0 and a non-civilian installation. Automated mining requires Workers of 0 and a non-civilian installation. Civilian mining requires CivilianInstallation. Each group’s weighted sum is truncated to a whole number.
The manned multiplier is governor Mining bonus x sector governor quarter Mining bonus x efficiency x radiation production modifier x stability x political ProductionMod. The automated and civilian multiplier is governor Mining bonus x sector governor quarter Mining bonus x radiation production modifier. These formulas do not include the species production rate or the race economic production modifier.
annual mining potential = race MineProduction x manned capacity x manned multiplier + race MineProduction x (automated + civilian capacity) x automated multiplier + orbital output.
Civilian mining production is the civilian term alone, race MineProduction x automated multiplier x civilian capacity. It is already part of the total.
Orbital mining contributes only when the body diameter is at most the race’s MaximumOrbitalMiningDiameter. Same-race fleets within one coordinate unit of the population (less than 1 on each axis) are assigned to it when they are unassigned. The test checks race and coordinates only, so any qualifying same-race fleet is assigned, mining or not. Only fleets assigned here contribute. Each undamaged orbital mining module produces race MineProduction, modified by the ship commander’s Mining bonus and by the crew fraction (current crew divided by class crew) when understaffed, then by the fleet’s administrative command Mining bonus for the fleet’s current system. When an assigned fleet with mining modules has no parent command, the game shows error Function #2259 and the population’s orbital output for that cycle is 0. The processing diameter test does not exclude bodies with FixedBody set, although the window’s eligibility label does.
For each mineral deposit independently, mined quantity = total annual potential x current Accessibility x elapsed years. Capacity is not divided between minerals. If output exceeds the remaining deposit, output is capped, the deposit is removed and a Mineral Exhausted event is logged. Exact equality instead subtracts to zero and keeps the entry. Below HalfOriginalAmount, the new accessibility becomes Round((original accessibility - 0.1) x remaining / HalfOriginalAmount + 0.1, 2). The current cycle used the old accessibility.
The civilian share of output is civilian mining production / total mining production x mined quantity. Civilian mining is settled only when civilian mining production is above zero and the body still has deposits. Player purchase costs 250 wealth per civilian mining complex per year. Without a mass-driver destination, all output is credited locally. Player tax yields 125 wealth per complex per year and credits only non-civilian minerals, and only when the mined amount exceeds the civilian share. NPR races always take the whole output locally, with no purchase cost and no tax. With purchase and a mass-driver destination, civilian output goes straight into a new packet at the base speed of 1,000 km/s, and government output stays local. That packet is created only when its total is above zero. This dedicated packet path does not apply the regular export capacity or reserve limit, and it writes no mining usage record. Civilian mining and fuel receipts covers the wealth side.
When no deposits remain, civilian complexes are disbanded. One Deep Space Tracking Station, one Mass Driver and the civilian garrisons are removed, and the population is deleted when it is otherwise empty. The event reports either that the complexes were disbanded or that they were disbanded and the colony removed.
Reporting anomaly: taxable civilian mode records annual effective mining as total x new accessibility x (total - civilian / total), rather than the non-civilian fraction. The actual mineral credit is the mined quantity minus the civilian share. The reported figure is not the real output.
Passive infrastructure and trade production
Section titled “Passive infrastructure and trade production”Infrastructure trade entries default to ProductionRate 2. Annual output is ProductionRate x total population x (wealth modifier / 100) x 0.5 x required manufacturing fraction, where 0.5 is the annual trade goods throughput factor. Entries are created, when one does not already exist for the good, and processed only when total population strictly exceeds the trade good’s DIM_TradeGoods.PopRequired.
Annual output x elapsed years accrues in the infrastructure trade balance. If the infrastructure shortfall is positive, the entire accumulated balance is added as Infrastructure installations and reset, without capping to the shortfall. The current infrastructure in that shortfall is the summed InfrastructureValue x amount of the population’s installations. The target is the maximum required infrastructure, or 1.25 times that for a colonist destination. Otherwise the balance is capped at one year’s output. This path has no mineral or wealth debit.
Commodity entries roll their production rates at random. Three quarters of initial rolls select 0 to 1 in steps of 0.1, and the remaining quarter selects 2 to 5. Annual commodity production uses the same throughput expression. Annual consumption uses it with ProductionRate left out. The balance accrues production minus consumption and is limited to one year’s net surplus or deficit. Artifact production defaults to zero. When no ruin exists, the artefact balance is reduced by the same annual consumption expression and capped above at one year’s consumption, with no lower bound. When a ruin exists, the artefact balance is not processed. The trade goods catalogue lists the goods.
Fuel and maintenance supply production
Section titled “Fuel and maintenance supply production”Fuel refinery output and exact shortage behaviour
Section titled “Fuel refinery output and exact shortage behaviour”The refinery switch FuelProdStatus defaults to on, and refining stops while it is off. Annual fuel capacity is race FuelProduction x P x truncated refinery capacity. Nominal output is fuel production capacity x elapsed years. With sufficient Sorium, the refinery consumes nominal litres / 2000 Sorium and credits nominal litres to the local FuelStockpile. One ton of Sorium normally makes 2,000 litres. Refining charges no wealth. Players use local Sorium and record its use as Fuel Refining (DIM_MineralDataType 14). NPR refineries draw Sorium from the capital population, stop when there is no capital, and log no shortage.
Arithmetic anomaly: when available Sorium is less than nominal litres / 2000, actual litres become available Sorium / 2000, and the refinery then consumes actual litres / 2000 Sorium. This is literal division, not the usual available Sorium x 2000 conversion, and NPR refineries apply the same division. The player refinery logs a Mineral Shortage event.
As an example from these rules, nominal output 40,000 L with 10 Sorium produces 0.005 L, debits 0.0000025 Sorium and leaves 9.9999975 Sorium. Exactly 20 Sorium permits the full 40,000 L because the shortage test uses strict less-than. Zero Sorium produces zero and logs a shortage when nominal output is positive. Output always goes to the producing population.
Maintenance supply output
Section titled “Maintenance supply output”The maintenance switch MaintProdStatus defaults to on, and production stops while it is off. Annual MSP production is race MSPProduction x P x truncated maintenance facility capacity x 4. Nominal MSP is annual MSP production x elapsed years. Actual MSP is min(nominal output, Duranium / 0.1, Uridium / 0.05, Gallicite / 0.1). Mineral-limited output logs a Mineral Shortage event (“Mineral shortage in maintenance supply production” at the population). The step charges actual MSP / 4 wealth, debits actual MSP x 0.1 Duranium, actual MSP x 0.05 Uridium and actual MSP x 0.1 Gallicite, and adds actual MSP to the local MaintenanceStockpile. No rounding, project accumulator or reserve protection is used. NPR races limit and debit against the capital population’s minerals, add the MSP locally and pay the wealth too. Unlike refining, the NPR path has no check for a missing capital.
Player mineral usage is recorded as Maintenance Production (DIM_MineralDataType 16).
Example: MSPProduction 20, maintenance weight 1 and P = 1 produce 20 x 1 x 1 x 4 = 80 MSP per year at 20 wealth, 8 Duranium, 4 Uridium and 8 Gallicite. Maintenance support tonnage is a separate calculation and does not set MSP output. It is untruncated maintenance category weight x race MaintenanceCapacity x efficiency x radiation production modifier x stability x political modifier x economic modifier. The same window pass shows maintenance in the projected usage as annual MSP x 0.1 Duranium, annual MSP x 0.05 Uridium and annual MSP x 0.1 Gallicite.
Sorium harvesters
Section titled “Sorium harvesters”Ship fuel harvesting is a second fuel production path, independent of population refineries. The strategic construction cycle runs Sorium harvesting with the elapsed years before population production. Strategic construction cycle order shows where it sits.
Eligibility is decided per ship. A ship needs at least one undamaged Sorium harvester and current fuel below its undamaged fuel storage capacity, counted without commander bonuses. Other NPR and player ships use the same harvesting rules. The game selects the first gas giant or superjovian whose coordinates are within one unit of the fleet, meaning less than 1 on each axis. The body selection does not also compare star systems or require the fleet to be in orbit of the body. This is the proximity test the harvesting step uses. No qualifying body means no output. A body without Sorium gives no output. For NPR and shipping-line fleets it also clears all fleet standing orders and sets the standing order “MV: Sorium GG 10m Pop” (DIM_StandingOrders order 30) as the first priority.
Let H be the ship’s harvesting capacity. Its base is undamaged harvester count x race FuelProduction. With commander bonuses enabled, the ship commander’s Mining bonus applies, and H is multiplied by current crew / class Crew when the ship is understaffed. A missing ship commander adds no modifier. Harvesting then applies the Mining bonus of the fleet’s parent administrative command. A fleet with no parent command is first assigned to the race’s root command.
The initial resource formula is:
Sorium harvested = H / 2000 x elapsed years x deposit Accessibility x administrative Mining multiplier.
This is capped at the gas giant’s remaining Sorium. Initial fuel output is Sorium harvested x 2000. Retained harvesting is then capped at the ship’s empty tank space. If output exceeds the empty capacity, Sorium harvested becomes empty capacity / 2000. Fuel is credited to the harvesting ship itself, and the retained-output Sorium is debited from the body’s deposit, not from a population stockpile. Harvesting involves no mineral transport, population refinery, construction BP or wealth expense.
For a government player ship, excess potential output above tank space is simply not produced. For a shipping-line ship, the excess first earns sale income of excess litres x 0.0001 wealth, credited in full to the shipping line’s WealthBalance. The race separately receives one fifth of that amount as extra income under Tax on Civilian Fuel (DIM_WealthUse 47), not deducted from the line. Accounting anomaly: the Sorium debited afterwards is still only the quantity used to fill the ship. The excess whose sale income was recorded is not debited from the deposit. Full tanks are excluded from the eligible-ship snapshot, so an already full ship earns no overflow income here. Civilian fuel harvesting and overflow sale income covers the wealth side.
After filling, fuel strictly above 90% of tank capacity logs a Harvester Capacity event (“more than 90% full”) each time the ship is processed, with no limit on repeats. A deposit whose remaining amount is exactly zero is removed and logs exhaustion. Otherwise, below half the original quantity, accessibility is recalculated as Round((original accessibility - 0.1) x remaining / HalfOriginalAmount + 0.1, 2). Ships are processed one after another from the eligible snapshot, so later ships meet earlier ships’ deposit debits and accessibility updates.
As an example from the formulas, one undamaged harvester with race FuelProduction 40,000, full crew, no Mining bonuses, accessibility 0.5 and 0.1 elapsed years has potential output 2,000 L and consumes 1 Sorium if it has at least 2,000 L of tank space. With only 500 L free, it keeps 500 L and consumes 0.25 Sorium. A shipping-line ship in the latter case also records 0.15 shipping wealth and 0.03 race wealth for the 1,500 L excess, while the deposit debit stays 0.25 Sorium.
The fleet summary’s Annual Fuel Production shows summed module output, in millions of litres rounded to 1 decimal, before deposit accessibility and tank-space limits. It includes the ship commander Mining bonus and understaffing but not the administrative command Mining multiplier. It shows capability, not guaranteed retained output.
Maintenance modules and environmental scope
Section titled “Maintenance modules and environmental scope”In ship capacity terms, a maintenance module is support capacity, equal to undamaged modules x race MaintenanceCapacity, further multiplied, in a single ship’s own capacity, by the crew fraction when the ship is understaffed. The totals for a sub-fleet or squadron leave the crew fraction out. Maintenance location clusters add module support as undamaged module count x race MaintenanceCapacity, truncated to a whole number and without the crew factor, and they add a module ship’s assigned population as a supporting population. These are not MSP production formulas. The normal player MSP production path remains the population maintenance facility recipe. Ship maintenance supply refills move stock from a population, and after a refit, excess fuel and supplies return to that population. No ship module produces MSP in the production, ship capacity and maintenance cluster rules. Maintenance location clusters describes the clusters.
Terraforming alters atmospheric gas and the climate and infrastructure state that follows. Its production step has no mineral, fuel, maintenance stockpile or wealth debit. It does nothing when the body’s gravity is below 0.1 or no gas is selected. It affects production indirectly through environment, workforce, radiation and colony cost rather than by consuming the construction stocks described here.
Components ordnance and small craft
Section titled “Components ordnance and small craft”Components and unarmoured stations share the installation construction capacity. Ordnance and factory-built small craft use their separate annual capacities. All of them follow the common industrial progress and queue rules above.
Available designs and per-unit requirements
Section titled “Available designs and per-unit requirements”| Output | BP and wealth per unit | Minerals per unit | Project fuel per unit | Category |
|---|---|---|---|---|
| Component | Component Cost (FCT_ShipDesignComponents) |
The component’s eleven mineral columns | 0 | Construction |
| Fighter or small craft | Class Cost (FCT_ShipClass) |
Class mineral cost (FCT_ClassMaterials) |
0 | Fighter |
| Ordnance, including fighter pods | Missile Cost (FCT_MissileType) |
The missile’s mineral columns | Missile FuelRequired |
Ordnance |
| Space station | Class Cost (FCT_ShipClass) |
Class mineral cost (FCT_ClassMaterials) |
0 | Construction |
Selection resets the fuel requirement to zero, then applies the matching recipe. Project creation links the project’s mineral amounts to the selected recipe until the next reload, as Persistence and reload describes. It copies the BP cost, truncates fuel to a whole number, stores the requested amount and percentage, and starts unpaused. Fighter and station classes are locked (FCT_ShipClass.Locked). The project then takes its place in its category queue by the queue placement rule above.
The player-facing selection lists apply these gates:
- Components require researched technology that is not obsolete. Armour, missile engines, shipping-line systems and prototypes are excluded.
- Fighters require
Sizeof at most 10 hull spaces (500 tons at 50 tons per hull space),Obsoleteof 0, the player’s own race and no prototype components. Selection tests size directly rather than the hull description. Class recalculation also clears and then sets the fighter class flag for a size of at most 10. - Ordnance requires a positive
MissileID, researched technology that is not obsolete, and technology belonging to the producing race. - Stations require
NoArmourof 1, a class of the player’s own race that is not obsolete, and no prototypes. Creation also rejects prototypes and unavailable alien components with a message, and then creates no project. An alien component is one whose technology the building race never developed or learned. The alien-component check compares the summed local stock of that component against one hull’s required quantity, without multiplying by the project’s requested amount.
These are selection-list gates unless described as creation gates. The industrial production step does not repeat every eligibility check.
Whole-item stockpile outputs
Section titled “Whole-item stockpile outputs”Whole completed ordnance is added to the local ordnance stockpile. Whole components are added to the stored components (FCT_PopComponent). Existing entries are increased, otherwise created. Fractional output exists only in PartialCompletion.
Rounding caveat: four-decimal mineral rounding can slightly exceed a mineral limit or the remaining project amount before rounding. Nothing afterwards clamps the value to those limits, and no step clamps the stock at zero after the debit. The exact completion comparison can therefore miss equality in such edge cases. This is the literal arithmetic, not a claimed intended game rule.
Completion-time supplies and destination fleets
Section titled “Completion-time supplies and destination fleets”Fighters are created one at a time. A player’s destination fleet must exist and match the population’s coordinates. Otherwise a new fleet named “New Fighters - “ followed by the population name is created. The game looks for an available carrier in the destination fleet and assigns the new fighter to it as its mothership. A carrier qualifies when it has a military or commercial hangar deck, a small-craft template for this fighter class, fewer of these fighters than the template number and enough free hangar space. The fighter then joins the carrier’s fleet. Lack of a carrier does not prevent creation. The initial crew grade comes from the race’s academy pool, at 100 base crew grade points x training level for a full crew, scaled down for a partial crew. A class with ConscriptOnly set gets 0 grade points. Stations first reuse the station destination fleet when it sits at the population’s exact coordinates, then a local same-race fleet in the same system within one unit that contains a ship of the ship class’s main function, and otherwise create a fleet named “Space Station”. Stations have no mothership.
Both use ship creation in construction mode without free fuel or free maintenance supplies. For player ships this withdraws the available supplies from the construction population:
- Fuel up to the ship class
FuelCapacity, orMinimumFuelfor tankers. - Maintenance supplies up to the ship class
MaintSupplies. - Ordnance up to each loadout template, when the ship class has ordnance templates.
Shortages yield a partly supplied or empty completed ship. They do not stop construction. These completion-time movements come on top of the proportional construction mineral and wealth spending. When a request meets or exceeds the available stock, the withdrawal takes the whole remaining stock. A request of zero takes nothing.
Ordnance withdrawal first returns any current ship ordnance to the population, clears the ship’s loadout, then rebuilds it from ship-specific templates when present, otherwise from class templates. For each template the ship takes the template amount when stock covers it, removing the stock entry when stock equals the template, and takes all of the stock and removes the entry when stock is short. Unavailable types are silently left out.
Station stockpile caveat: station project creation checks alien stored components, but neither the industrial station production nor ship creation deducts those components or reduces BP or minerals to account for them. The check is not a stockpile consumption and does not mean the station is prebuilt from stored parts.
A player carrier’s completion can move existing fighters from the population’s parasite source fleet into the carrier, according to its templates and free hangar capacity. The ship class needs positive parasite capacity, at most the template number is taken per template, and the moved fighters form a new squadron named after the carrier followed by “Strikegroup”. This does not manufacture fighters.
Recipe derivation
Section titled “Recipe derivation”Ship class costs and minerals are sums over the actual design components, including armour after its recalculation:
class Cost = sum of (component Cost x class quantity)
class minerals[m] = sum of (component minerals[m] x class quantity)
Before the sum, a class larger than 22 hull spaces gains one Bridge (component ID 18) when it has none, and armour is recalculated in max(3 x ArmourThickness, 10) - 1 passes. These are hull construction requirements. Fuel, MSP and ordnance loadout have the separate completion-time stockpile handling described above. Ship and station design covers how a class is put together.
Component manufacturing uses the design’s stored cost and mineral amounts. No universal one-mineral-per-BP recipe exists. A saved component’s cost and each mineral are loaded independently from FCT_ShipDesignComponents.
For newly designed normal ordnance, define:
E = Round(engine Cost x number of engines, 4)
S = active + thermal + EM + geological sensor strengths
R = Round(Round(S / 5, 4) x 3, 3)
E applies only when an engine is selected and the engine count is above zero. Each sensor strength is Round(sensor MSP x technology AdditionalInfo x 0.05, 2), and counts only when that sensor has at least 0.25 MSP and its technology is researched.
The recipe starts with second-stage cost x count, then adds these contributions:
| Contribution | BP addition | Mineral addition |
|---|---|---|
| Engines | E | E/2 Boronide and E/2 Gallicite |
| Sensor reactor | R | R Boronide |
| Retargeting on (value 1) | 0.5 | 0.5 Uridium |
| Terminal guidance above 1 | guidance - 1 |
Same Uridium |
| Laser warhead active | laser efficiency | Same Corundium |
| ECM decoys | Number of decoys | Same Corbomite |
| Multiple-warhead casing when the normalised count is above 1 | MSPMultipleWarheads |
Same Tritanium |
| Sensors | S | Same Uridium |
| ECCM | ECCM / 20 |
Same Corbomite |
| Ordinary warhead | base warhead damage / 4 |
Same Tritanium |
| Ship-decoy warhead, instead of ordinary warhead | 4 x MSPWarhead |
Same Corbomite |
MSPMultipleWarheads is 0.1 x (input warhead count - 1). Retargeting takes the researched technology value and applies only when the option is on. Terminal guidance defaults to 1 and otherwise equals the researched technology’s AdditionalInfo. The ECCM value is the selected ECCM technology’s AdditionalInfo as a whole number. Base warhead damage normally equals warhead MSP x most advanced researched warhead-strength AdditionalInfo, and 0 when none is researched. A researched ship-decoy design substitutes its decoy strength of 200 per warhead MSP. The warhead cost uses this undivided base damage, so enhanced-radiation warheads, whose stored warhead strength is divided by the radiation multiplier, cost the same. Laser efficiency is researched laser-warhead-damage AdditionalInfo / 100, and 0 without that technology, so an active laser warhead then adds nothing. These are design-time computations. Production later uses the stored recipe. Missile BP mineral and fuel recipe covers the designer side.
The fuel requirement is:
floor(2500 x MSPFuel) + second-stage FuelRequired x second-stage count
The main stage therefore carries 2,500 litres per MSP of fuel, rounded down. Second stages are built into the parent recipe rather than consumed as completed second-stage ordnance from the stockpile. The inherited mineral block copies only Corbomite, Tritanium, Boronide, Uridium and Gallicite. It does not inherit Corundium or Vendarite.
Bombardment, autocannon and air-to-air fighter pods take a separate final rule:
Cost = Size / 5
Vendarite = Cost
Size here is the final design size in MSP, after the fixed add-ons and the minimum of 1 MSP, so a pod costs at least 0.2 BP and 0.2 Vendarite. This rule overwrites the BP cost after the earlier contributions but does not clear the earlier mineral amounts. Unusual pod designs therefore keep this literal cost and mineral split. Fighter bombardment autocannon and air-to-air pods describes the pods.
Scrap recovery
Section titled “Scrap recovery”| Selected stockpile entry | Mineral recovery | Wealth recovery | Fuel recovery |
|---|---|---|---|
| Stored components | 30% x amount x component recipe |
30% x amount x component cost |
None |
| Ordnance | 25% x amount x missile recipe |
25% x amount x missile cost |
100% x amount x missile FuelRequired |
Scrapping removes the entire selected entry. It needs no time, capacity or input resource. Recovered minerals and fuel enter the local population, and wealth is recorded as Scrap income (DIM_WealthUse 26). Player recovery statistics are recorded as Scrapped Components or Scrapped Ordnance. Ordnance recovery includes designed second-stage fuel and logs an Installation Scrapped event even though ordnance was scrapped.
Shipyard development
Section titled “Shipyard development”Shipyards have two separate kinds of work, developing the yard itself and running individual ship tasks on its slipways. Naval, commercial and repair yards are distinct types. The yard activities are add slipway, add capacity in fixed steps of 500, 1,000, 2,000, 5,000 or 10,000 tons, retool, continual capacity upgrade and no activity. Spacemaster mode has its own yard modification as well. Shipyard development and ship work describes yard development in capacity, slipways and workforce, annual modification rate, activity costs, processing, resources and completion and pause, cancel and dates. The production cycle runs yard modifications immediately before shipyard tasks, and only when the total population is above zero.
Shipyard construction refit repair and scrapping
Section titled “Shipyard construction refit repair and scrapping”Individual shipyard tasks are Construction, Repair, Refit, Scrap and automatic refit. Each carries its own TotalBP, CompletedBP, mineral amounts, ship and class, and paused flag. Shipyard development and ship work describes them in rate per task and slipway admission, player admission and tooling compatibility, task creation paths, costs and mineral vectors, using stored components, scheduling, rounding and shortage behaviour, completion, automatic succession and cancellation and completion dates. The same page covers the instant hulls of autonomous shipping-line ship construction. Shipyard tasks run right after yard modifications in the production cycle.
Ground force construction and replacements
Section titled “Ground force construction and replacements”Ground formation construction consumes the annual ground formation construction capacity, race wealth and population minerals. It creates complete formations once accumulated build progress reaches the task cost. Replacement manufacture fills missing units in existing formations from the same annual capacity, but follows a separate whole-unit accounting. Existing-unit reinforcement transfers, recurring wealth upkeep, logistics supply and scrapping are separate operations. Ground force organisation covers templates, hierarchy and replacement links.
Unit and formation costs
Section titled “Unit and formation costs”Ground unit class recipe
Section titled “Ground unit class recipe”The ground unit class designer calculates the ordinary unit recipe in this order:
- Initial size is
Round(base type Size + sum of component Size, 2). - Initial BP and wealth cost is
size / 50 x selected armour ArmourStrength. - Initial minerals are Vendarite equal to that initial cost. Other minerals start at zero.
- For an HQ primary component with positive HQ capacity H, size gains
Clamp(H / 200, 10, 250), cost gainsH / 2500 x ArmourStrength, and Vendarite is reset to the increased cost. This size gain comes after the rounding of step 1 and is not rounded again. - Non-infantry classes drop infantry-only capabilities. For player races, cost is multiplied by the
CostMultiplierof each remaining capability inDIM_GroundUnitCapability. - Cost is rounded to three decimals.
Vendarite is assigned before the capability multipliers and before the final cost rounding. Capability surcharges therefore raise BP and wealth but not this mineral recipe. With the game database as shipped, the multipliers are Boarding Combat 2.5, High Gravity Combat 1.5, Low Gravity Combat 1.5, Extreme Temperature Combat 1.5, Extreme Pressure Combat 2, Mountain, Jungle, Desert and Rift Valley Warfare 1.25 each, and Basic, Improved and Advanced Genetic Enhancement 1.5, 2 and 2.5. Researched weapon and armour modifiers are stored separately for combat. Pre-industrial races get modifiers of 1. This cost formula uses the selected armour’s ArmourStrength (DIM_GroundUnitArmour). The unit class research cost is final cost x 100, truncated to a whole number. Ground-unit class design covers the designer.
The unit’s supply cost (FCT_GroundUnitClass.UnitSupplyCost) normally sums the selected components’ SupplyUse. When a fourth component is present, the game literally adds the third component’s SupplyUse again instead of the fourth’s. Reproduced values must keep this quirk.
Surface-to-orbit equipment
Section titled “Surface-to-orbit equipment”A primary surface-to-orbit weapon with a selected ship weapon component derives a power plant, an active sensor and a beam fire control. It then adds:
- Size:
(weapon Size + power plant Size + sensor Size + fire control Size) x 50tons, at 50 tons per hull space. - BP and wealth cost:
(weapon Cost + power plant Cost + sensor Cost + fire control Cost) x selected armour ArmourStrength. - Minerals: the direct sum of these components’ mineral recipes, including the power plant when present.
This addition comes after the ordinary class cost rounding. Training charges these raw mineral recipes. It does not withdraw prebuilt ship components or missiles from population stockpiles when the finished formation is equipped. Integrated surface-to-orbit package describes the package.
Formation training cost and local discounts
Section titled “Formation training cost and local discounts”Task cost is sum of adjusted class cost x template unit count. At the construction population, the unit class cost is divided by the capability’s CostMultiplier for each of these capabilities when the population’s world matches its condition:
| Capability | Condition at construction world |
|---|---|
| High gravity | Body gravity exceeds the population species maximum |
| Low gravity | Body gravity is below the population species minimum |
| Extreme pressure | Atmospheric pressure exceeds the population species maximum |
| Extreme temperature | Surface temperature is outside the population species bounds |
| Mountain warfare | Dominant base terrain is Mountain |
| Rift valley warfare | Dominant base terrain is Rift Valleys |
| Desert warfare | Dominant terrain is a desert terrain |
| Jungle warfare | Dominant terrain is a jungle terrain |
Multiple matching divisors accumulate. They discount formation BP and wealth, while mineral requirements stay sum of class minerals x template units. NPR classes never had the multipliers applied, so the same division prices NPR formations at a matching world below their raw class cost. Replacement manufacture uses the raw class cost and does not apply these local discounts. Planetary terrain lists the terrain types.
Annual capacity and activation
Section titled “Annual capacity and activation”Annual capacity is:
race GroundFormationConstructionRate x ground force construction complex count x governor GroundConstruction bonus x sector governor quarter GroundConstruction bonus x species ProductionRateModifier x race EconomicProdModifier x radiation production modifier x efficiency x stability x political ProductionMod.
Absent commanders contribute no factor. The race default construction rate is 250. Ground formation construction rate research sets it to the technology’s AdditionalInfo as a whole number.
The Economics window requires a selected population and template, a ground training facility capacity above zero after truncation to a whole number, and a positive orbital plus surface population. The facility check sums installation GroundTrainingValue x amount, rather than the modified annual BP formula. Tasks created by other rules skip these window checks.
If the requested percentage fits 100 - sum of active TaskPercentage, the window starts the task. Otherwise it queues it with QueueID equal to the queue length plus one. The window does not range-check the percentage. Tasks and queue entries from the window start in the front-line defence field position with no parent or organisation link. Either way the template’s formation counter, which numbers the formations it trains, goes up by one. Starting a task captures TotalBP from the local formation cost, stores zero CompletedBP, and debits no resources up front.
Queue activation requires a positive facility capacity after truncation and examines items by ascending QueueID. It runs only while the active TaskPercentage total is strictly below 100. Each item must fit its full requested percentage. The first item that does not fit stops the walk, so later smaller items cannot bypass it. Remaining queue IDs are renumbered.
The population production cycle runs ground processing only if active tasks exist or Build Replacements is checked. Queue items alone do not satisfy that test. For an NPR with no capital population nothing happens. Ground processing first attempts queue activation and then chooses training or replacement mode.
Training progress, shortages and completion
Section titled “Training progress, shortages and completion”For each active task, the game calculates:
initial BP = Round(annual capacity x elapsed years x TaskPercentage / 100, 4)
requested fraction = Round(initial BP / TotalBP, 4)
limited fraction = Round(mineral-limited fraction, 4)
applied BP = Round(limited fraction x TotalBP, 0)
remaining BP = Round(TotalBP - CompletedBP, 4)
The annual capacity is the ground formation construction capacity above. The mineral-limited fraction is the requested fraction after the mineral limiter described below. The game caps the applied BP at the remaining BP, then recalculates charged fraction = Round(applied BP / TotalBP, 4). The wealth expense equals the applied BP, recorded under Ground Unit Training. The mineral debit is full template mineral recipe x charged fraction. This sequence includes whole-BP and four-decimal rounding and is not exact continuous fractional accounting.
The mineral limiter lowers the requested fraction to available stock / required mineral for each positive requirement whose requested quantity exceeds stock. It checks all eleven minerals. It uses the actual stock and applies no reserve floors. With logging on, the last mineral that further lowers the fraction is named in a Mineral Shortage event. The result is not clamped at zero, so a negative stock gives a negative fraction. The ground training step has no wealth balance test.
Player tasks check and debit the training population’s minerals and record Ground Unit Training usage. The recipe is recomputed from the referenced template on each progress pass, whereas TotalBP was captured when the task started. Editing the template can therefore change minerals without changing the stored BP.
If the applied BP is below the remaining BP, it increases CompletedBP. Otherwise the game creates the full formation, attaches the optional organisation parent, logs a Unit Trained event and removes the task. The formation gets both an original and a replacement template link. Elements copy the template’s classes and counts, use the population’s species, start at morale 100, and default to CurrentSupply 10 and fortification level 1. Its field position comes from the automated template’s design when one exists, otherwise from the task. No separate equipment stockpile withdrawal happens at completion.
When completion leaves unused time, the game calculates elapsed years x (1 - remaining BP / applied BP before the cap) and keeps the smallest applicable remainder. Any processed task that does not overshoot, including one that completes exactly, sets the remainder to zero, and a later overshooting task cannot raise it again. Leftover time therefore carries forward only when every processed task overshot. The game then starts available queued tasks and repeats with that time. If it cannot start a queued task, it stops. Leftover time does not switch to replacement manufacture in the same cycle. After the last pass the game tries once more to start queued tasks, and tasks started then receive no work in that cycle.
Two edge cases matter when reproducing this behaviour. Tasks with zero TotalBP are skipped and stay active. A task that makes no progress is skipped only when the task processed just before it left build points remaining. The first task of a cycle is never skipped this way. Skipped tasks leave the time remainder untouched, so when every active task is skipped, newly started queued tasks receive the full interval again.
Cancelling an active task removes it and lowers the template’s formation counter by one, with no refund of spent minerals or wealth. Cancelling a queued item removes it and also lowers the counter, with no resource activity.
Replacement manufacture and existing-unit reinforcement
Section titled “Replacement manufacture and existing-unit reinforcement”Manufacture
Section titled “Manufacture”Replacement manufacture runs only when no active training tasks remain after queue activation. Any active task suppresses it, even with less than 100% allocated. Starting ordinary training resets the carried replacement BP. If replacement building is disabled, the stored replacement capacity is reset.
With replacements enabled, available BP is annual capacity x elapsed years + carried replacement capacity. Eligible formations are at this population, have a replacement template, and have an actual total size below the template total size. They are processed by descending ReplacementPriority. No eligible formations resets the carry to zero. Otherwise unused BP is carried forward.
For each template element, in template order:
missing units = template units - matching class units - alternate counted units
buildable units = min(missing units, Floor(available BP / raw class cost))
The count is then limited by minerals and truncated to a whole number. Here alternate counts use the other classes in the same series entry of the race’s ground unit series, excluding the template class itself, rather than the wider whole series used by redistribution. A missing element is created with the population’s species and zero units before the capacity and mineral checks, and it stays in the formation even when nothing is built. Successful manufacture adds units, spends count x class Cost in BP and wealth under Ground Unit Training, and consumes count x class minerals. Players record Ground Unit Training mineral usage.
Replacement manufacture belongs to no training task, so the shortage event cannot be written. The short element then gets zero units, even when the stock covers part of the request. Logging is then turned off for the rest of that formation, so only the first short element of each formation is zeroed this way, and later elements are limited correctly without an event. Each new formation starts with logging on again.
Reinforcement from existing donor formations
Section titled “Reinforcement from existing donor formations”Before population production, player-race processing redistributes already built units. Donors are formations at populations with UseForReplacements set. Recipients are other formations with replacement templates at donor populations, processed by descending ReplacementPriority. Only template classes assigned to a series take part. Existing units across the same ground unit series count toward the target, and donor classes of that series are used by descending series class priority. Donors are tried for each template element until the remaining count reaches zero. Transfers charge no fresh wealth or minerals. Matching elements merge morale and supply by weighted averages rounded down, while donor units decrease. A newly created recipient element copies the donor’s supply, morale, fortification level and species, and a donor element whose whole count moves is removed.
The redistribution’s formation selection does not filter by the race being processed. Its per-race setup uses that race’s ground unit series classes.
Upkeep, supply and recovery
Section titled “Upkeep, supply and recovery”Ground upkeep charges player wealth:
sum of (raw class cost x surviving units) x elapsed seconds / 31,536,000 x race EconomicProdModifier x 0.125.
The 0.125 is the 12.5% annual upkeep rate. Upkeep includes formations wherever they are deployed, consumes no minerals, fuel or MSP, and runs only when the No Maintenance Required game option is off. Only player races receive the final recorded expense, under Ground Unit Maintenance (DIM_WealthUse 1).
Ground combat supply consumes logistics ground unit counts rather than population MSP. Normal attack demand is UnitSupplyCost x Units x 0.1. Zero supply cost succeeds at once. A combat logistics bonus can waive consumption on a d100 roll at or below (bonus - 1) x 100. The search covers the formation’s supply chain, which is the formation and its ancestors with the top-most ancestor tried first and the formation itself last, and the leaf logistics children of each. Without external supply, an element can use one of its ten internal supply steps, and at zero supply it fails. Refilling demands UnitSupplyCost x Units x (10 - CurrentSupply) x 0.1. Supply fortification and recovery covers the combat side.
The logistics consumer requires the same population. Supplying another formation allows only light vehicle logistics elements. Self-supply allows any logistics base type. Elements are visited by descending unit count. One element must cover the demand, and insufficient elements are skipped rather than combined. It consumes whole units by floor division plus a chance of one extra unit for the remaining fraction, using a d1000 roll. It removes depleted elements. It does not stop after a success, so one demand can consume several eligible elements.
End-of-processing resupply visits population-based elements below ten supply. With a commander, demand is literally multiplied by commander Logistics bonus - 2 and rounded to one decimal. An absent percentage-type bonus counts as 1 and an absent other bonus as 0, giving -1 or -2. Demand of zero or less counts as success, so any Logistics value below 2 refills the element without consuming logistics units.
Upgrading designs and templates creates new class recipes and redirects replacement templates. These upgrades do not automatically refit surviving formation elements or charge a separate refit resource. A class upgrade creates a new class only when its ground weapon strength differs from the race’s current ground weapon damage modifier and the class has a ground weapon, or its armour strength differs from the best researched armour. An existing class with the same design is reused instead. A player template upgrade gives the new template a year-suffixed name, copies the formation counter, and reassigns replacement templates of the same race’s formations and organisation node templates.
In the rules described here, morale recovery and training at a population consume no resources.
Scrapping
Section titled “Scrapping”The window allows scrapping only at a population. For each element it returns 30% of the raw class cost as wealth and 30% of the unit class mineral recipe locally:
wealth recovered = class Cost x units x 0.3
each mineral recovered = class amount of that mineral x units x 0.3.
It records Scrap income and, for players, Scrapped Ground Units mineral recovery, clears the commander assignment, detaches child formations and removes the scrapped formation. It costs no capacity or elapsed time. Recovery uses the raw class recipe and cost, not the original training-world discount or spent progress.
Consumption replenishment and recycling
Section titled “Consumption replenishment and recycling”Manufactured components, maintenance supplies, fuel and ordnance remain distinct resources. A stockpiled ship component is not a maintenance spare part. Routine upkeep and damage-control repairs consume MSP. No component stockpile is debited in these repair rules. Components instead move through shipyard credits, cargo transfer, scrapping, research disassembly and losses. Ship readiness and recovery covers maintenance and repair from the ship side.
Units and storage
Section titled “Units and storage”| Resource | Ledger and unit | Storage and conversion rule |
|---|---|---|
| Minerals | Population and ship mineral stocks, in mineral units | Cargo mass = quantity x 2 tons. |
| Ship components | Population stored components (FCT_PopComponent) and ship component cargo, as a decimal amount per design |
Cargo mass = amount x component Size x 50 tons, at 50 tons per hull space. |
| Maintenance supplies | Population MaintenanceStockpile and the ship’s current supplies, in MSP |
Production recipe: 0.1 Duranium + 0.05 Uridium + 0.1 Gallicite per MSP. Base transfer rate: 10 MSP per hour. |
| Fuel | Population FuelStockpile and ship fuel, in litres |
2,000 litres per Sorium. |
| Ordnance | Population and ship ordnance stocks, a whole count per missile type | Magazine usage and transfer work are each count x missile Size. Missile-size MSP is distinct from maintenance supply MSP. |
A ship’s free cargo capacity is truncated to whole tons and is never below 0.
Effective ship MSP capacity uses undamaged engineering capacity E and maintenance storage capacity S, each undamaged component count x ComponentValue. With E above 0, capacity = floor(E / (class Size x 0.04) x class Cost / 2 + S). Otherwise capacity = S. The 0.04 is the engineering coverage factor.
Normal ordnance capacity adds undamaged magazine, missile launcher and fighter pod bay capacity. Decoy capacity comes from decoy launchers. Each free-capacity figure subtracts size x amount for its matching missile category, normal missiles for normal capacity and ship decoys for decoy capacity. Total free ordnance capacity sums both.
Routine maintenance and overhaul MSP
Section titled “Routine maintenance and overhaul MSP”The periodic maintenance routine works on player ships. NPR ships outside active shipyard tasks instead have their overhaul time set to the current time and their state set to operational each run. Ships in unpaused yard tasks advance their overhaul timestamp (FCT_Ship.LastOverhaul) by the elapsed seconds. Commercial player ships reset the timestamp, . Supply ships are handled before this commercial test, so commercial supply ships do not get the reset. A parasite in a mothership without a commercial hangar (FCT_ShipClass.CommercialHangar) advances its timestamp by 5 x elapsed seconds, capped at the current time, and skips cluster upkeep.
Maintenance clusters combine supporting populations and undamaged maintenance module ships. Only populations with maintenance facility capacity above 0 start a cluster, and only ships with at least one undamaged maintenance module add module capacity. Population capacity is whole-number(maintenance facility capacity x race maintenance capacity x efficiency x radiation production modifier x stability x political production modifier). Module ships contribute whole-number(undamaged module count x race maintenance capacity), and their assigned population can also supply MSP. Cluster membership checks race and coordinates within one unit (less than 1 on each axis). Assigning a ship to a cluster also requires a matching race system survey.
Let Y = elapsed seconds / 31,536,000. Cluster capacity coverage is min(1, effective maintenance capacity / assigned tonnage x race EconomicProdModifier), where tonnage = sum of (class Size x 50). Processing order is class maintenance priority ascending, maintenance state descending, then oldest overhaul timestamp.
The requested debit is full requirement x capacity coverage. Actual supply coverage fraction = consumed MSP / full requirement. Completion happens when the overhaul timestamp reaches the current time. Only a ship under maintenance changes state then. It becomes operational, an Overhaul Complete event is logged and the fleet’s speed is set to maximum. Partial supply gives partial progress. When coverage is below 1, the uncovered fraction (1 - coverage) adds to failure risk.
Cluster supply consumption drains supporting populations richest first, then supply ships richest first, then the recipient’s own MSP. Access to supply ships requires at least one undamaged cargo shuttle bay between donor and recipient. Insufficient sources are emptied and processing continues. The amount debited is the MSP actually consumed. This direct maintenance draw does not protect a donor’s MinimumSupplies. Non-commercial supply ships can themselves count as assigned maintenance tonnage.
Ships that reach the ordinary unassigned maintenance case have their maintenance fully uncovered. Training ships normally skip cluster assignment unless under maintenance. Training doubles the base failure risk and, for an unassigned ship in that case, moves the overhaul timestamp backwards by the elapsed seconds, so its maintenance clock ages at twice the elapsed time. Supply ships (SupplyShip 1) attempt cluster assignment and then bypass this case even if assignment fails. The earlier yard, commercial and military-hangar parasite cases also bypass it. The No Maintenance Required game option suppresses the periodic routine. Instead, every ship, NPR ships included, gets its overhaul time set to now and its state set to operational each increment.
Failure and repair consumption
Section titled “Failure and repair consumption”An immediate maintenance failure consumes one component Cost in MSP when onboard supply is at least that cost, which prevents the damage. Components flagged NoMaintFailure are never selected. Combat damage-control prevention also consumes one component cost, after a successful roll. Firing failures trigger on a 1-in-50 roll, and only for ordinary player and NPR races, , while the No Maintenance Required option is off. Sufficient MSP pays one weapon cost and allows firing. Insufficient MSP damages the weapon. Crew quarter strain likewise pays one quarter component cost or damages that component. These rules do not consume stockpiled components.
Queued damage-control repairs cost 2 x component Cost in MSP. Ships with automated damage control queue their damaged components first. Available MSP includes the ship’s own stock plus the eligible mothership stock above its minimum. Unaffordable queue entries are skipped. The first affordable failed attempt ends the pass, and a success repairs at most one component per ship per pass. Success chance per thousand is elapsed seconds / (2 x component Cost) x combined damage-control rating. A chance above 1000 succeeds automatically, otherwise the repair succeeds on a d1000 roll at or below the chance. Mothership support requires a mothership. A commercial parasite then qualifies at once, and any other parasite needs the mothership to have positive military hangar deck capacity. A success draws the carrier’s excess first, then the ship’s own supplies, and the ship’s own MSP is floored at 0 after the debit. Each success logs a Successful Repair event. Damage control queues and repair chances covers the ratings.
Carrier-supported armour repairs require at least 2 x armour component cost across available MSP. Otherwise a No Spare Parts event is logged and the ship is skipped. The success chance per thousand is elapsed seconds / armour cost x combined damage-control rating, with a single armour cost rather than 2 x, and the same automatic success above 1000. A successful pass repairs the deepest columns first, one cell per column, bounded by MSP and the armour ComponentValue. Each cell costs 2 x armour cost.
Two accounting anomalies follow. Component repair support with a carrier below its minimum sets the carrier’s MSP up to that minimum and increases the parasite’s debit by the deficit. Armour repair instead debits the entire cost from the carrier’s stock, including protected minimum supplies, and moves only a negative remainder to the parasite.
Refuelling and MSP resupply
Section titled “Refuelling and MSP resupply”Colony refuelling requires a positive fuel stock and a refuelling point. Per ship, transfer = min(actual fuel capacity shortfall, population fuel stock, race maximum refuelling rate x pulse hours). A positive order MaxItems below capacity lowers the target. Stock falls by exactly the ship’s gain. The pass stops once the colony stock reaches 0.
Colony MSP resupply requires a positive stock and a non-zero cargo transfer multiplier, counted with maintenance facility support. Per ship, transfer = min(effective MSP capacity shortfall, population stock, 10 x pulse hours x cargo transfer multiplier). The rate budget is per ship, while the stock is shared.
Cargo support combines logistics bonuses, shuttle capacity and the race load modifier. For ships above 10 hull spaces, the multiplier is undamaged cargo shuttle bay capacity x administrative command Logistics x ship commander Logistics x population governor Logistics x sector governor quarter Logistics x race cargo shuttle load modifier. Ships of at most 10 hull spaces use 1 in place of the bay capacity, with or without a bay. A population with cargo shuttle capacity of at least 1 adds one race load modifier. Failing that, for MSP operations only, a maintenance facility or an assigned fleet with undamaged maintenance modules adds the same amount. The population bonus is added at most once. Cargo capacity support and operation timing covers the multiplier in general.
Automatic fleet tanker and supply ship transfers preserve the donor’s minimum reserves, using the whole-number part of onboard stock minus the configured minimum. The donor’s one transfer budget is spent across recipients sorted by ship priority, class priority and then effective capacity ascending, and each recipient is served at most once per pass. Tankers require an undamaged refuelling system and transfer at ship class RefuellingRate x hours. Supply ships require an undamaged cargo shuttle bay and transfer at 10 x cargo transfer multiplier x hours. Underway transfer multiplies the rate by race UnderwayReplenishmentRate, where underway means the fleet moved this increment. Low-rate tanker systems, with a class refuelling rate below 20,000, restrict recipients to 20 hull spaces. Fleet tanker refuelling runs only when the fleet has more ships than tankers. Tankers supply ships and stationary support covers the refuel modes.
Carrier parasite refuelling uses race maximum refuelling rate x carrier operations bonus x pulse hours. Parasite MSP resupply uses 20 x carrier operations bonus x pulse hours, where 20 is the base 10 MSP per hour doubled (10 x 2). These budgets apply afresh to each parasite. Several MSP peculiarities follow. Carrier eligibility compares fuel against MinimumSupplies, recipient ordering uses effective fuel capacity, and candidates use nominal MSP capacity while transfers use effective capacity. A negative effective shortfall can reverse a transfer, because the transfer runs whenever the shortfall is not zero.
Returning fuel or MSP to a colony removes donor stock above the minimum and credits the same amount to colony stock, limited per pulse. Fuel return needs a tanker with an undamaged refuelling system and a colony refuelling point, at ship class refuelling rate x hours. MSP return needs cargo transfer support and runs at 10 x cargo transfer multiplier x hours. Both use the exact surplus, not the whole-number surplus of fleet transfers.
Movement fuel use for independent, untowed ships is undamaged engine power x (fleet speed / effective maximum speed) x class fuel efficiency x elapsed hours. Insufficient player fuel shortens the whole fleet’s allowed movement interval to the lowest available duration and logs an Insufficient Fuel event. Fuel is floored at 0. Training consumes fuel at 10% engine power for non-commercial ships not under maintenance in fleets whose parent administrative command is a training command, and that consumption applies to every race. Fuel burn and shortage-limited motion covers movement fuel.
Ordnance rearming and consumption
Section titled “Ordnance rearming and consumption”Ship ammunition is consumed one missile at a time. A missing or empty stock entry rejects consumption, and depletion removes the entry. A target beyond the missile’s total range consumes nothing. Offensive firing then consumes the missile before the launcher size test (missile Size above launcher ComponentValue) and the firing maintenance failure, so those later failures can spend ammunition without launching it.
Launcher recharge timers do not replenish ammunition. Ordinary missile and decoy launchers reload anywhere. Launchers with HangarReloadOnly set require a mothership, or a local transfer population or hub of the same race and system at exactly the same location. Reloading at such a population or hub without a mothership runs the reload timer at one tenth of the elapsed time. Carrier operations speeds up reload on a docked parasite.
Colony rearming requires an ordnance transfer point and ships with positive magazine capacity. Ship-specific templates override class templates. Remove mode unloads everything. Replace mode unloads wrong types and excess quantities. Largest types transfer first. Each ship gets race maximum ordnance transfer rate x pulse hours + carried-over capacity. Loading quantity is min(floor(transfer capacity / missile size), template shortfall, stock count, floor(available storage / missile size)). Debited counts are credited to the receiver, and spent transfer capacity is count x size. Insufficient transfer capacity can carry into the next pulse. Ordnance transfers hubs and carryover covers carry-over.
Stationary hub transfers use the matching stock-to-stock movement, for recipients with magazine capacity. Automatic colliers support fleet and sub-fleet add, replace and remove, exclude decoys, and use ship class transfer rate x pulse hours with an underway multiplier per recipient. Colliers with zero rate are skipped. Carrier parasite transfers use race rate x carrier operations multiplier x pulse hours per parasite and require undamaged military or commercial hangar support.
Storage accounting has limits. Colony, carrier and hub transfers can sum normal and decoy free storage for any ordnance. Several of them read the available storage once before going through the missile types and do not reduce it after each type, so several types together can exceed that starting free capacity. The collier transfer keeps normal and decoy storage separate but also reads free magazine capacity once.
Refit completion returns current ordnance to the colony and withdraws the desired stock that is available, allowing partial loadouts. If the new class has no ordnance template, the game returns after crediting the old stock but before clearing the ship, leaving duplicate stock. After the withdrawal, a smaller new magazine trims the ship’s ordnance. A zero capacity clears it, and an overfull non-zero capacity keeps floor(amount x new capacity / (new capacity + overflow)) of each non-decoy entry and credits the excess to the colony. Fuel and MSP balance to the new nominal capacities. Available colony stock fills shortfalls and excess returns to the colony. A fuel or MSP withdrawal returns the entire remaining stock when the request meets or exceeds availability.
Component logistics and recovery
Section titled “Component logistics and recovery”Installation scrapping instantly returns 0.3 x amount x installation minerals locally and 0.3 x amount x installation Cost as race Scrap income, and players record Scrapped Installations. The recovery itself only credits resources. The player window caps the requested amount to the available stock, runs the recovery, subtracts the installation quantity and removes an empty entry. It costs no construction capacity or elapsed time.
Component loading requires cargo space and transfer support, measured without maintenance support. Quantity = min(whole cargo tons / (component Size x 50), available colony amount, positive requested maximum). The result is not rounded down, so fractional components can be loaded. Loading debits colony stock and credits cargo. Unloading credits all selected carried quantities to the destination and removes the cargo, and with no transfer support it logs that the ship is unable to unload. Components and installations covers cargo handling.
Normal cargo accounting multiplies component mass by the amount. Cargo-loss mass totals instead leave out the amount and count one component mass per stored entry.
Scrapping colony or ship components recovers 30% of the mineral cost and 30% of the component cost x amount, and removes the stock. Ship-side scrapping removes every cargo entry of that design and puts the minerals into the ship’s own cargo. Colony research disassembly consumes one component. It removes the entry only when the amount is exactly 1 and otherwise subtracts 1, so a fractional amount is never removed and can go negative. Ordnance scrapping recovers 25% of the mineral cost, 25% of the cost, and 100% of FuelRequired x count into colony fuel, then removes the ordnance entry.
NPC differences
Section titled “NPC differences”The main formulas on this page describe player races. The important non-player differences are collected here so that their exemptions are not applied to players. NPR colony and economic AI describes how NPRs decide what to build.
- Population industrial projects and shipyard and ground work normally use the capital population’s minerals for NPC races, and do nothing when the race has no capital. Refining has the same check. MSP production lacks it. NPC industrial ordnance is limited by stock but skips the mineral, fuel and wealth debits. Other industrial categories take the normal debits.
- NPC ship completion fills fuel to the ship class
FuelCapacity, tankers included, and fills MSP and ordnance as designed, without the player stockpile withdrawal. NPC ships also start with 500 task force training points and automatic weapon assignment. NPC carriers create their template fighters for free, fully fuelled and supplied, with 100 base crew grade points. NPC fighter fleets are missile or beam fighter squadrons, chosen by whether the ship class has magazine capacity. - Ground unit design skips the player capability cost multipliers. NPC replacement manufacture checks local population minerals but debits capital minerals.
- NPC maintenance resets overhaul timestamps outside active yard tasks. NPC movement is not shortened by fuel shortages, although consumption still reduces stock. NPCs always receive civilian mining output locally, without the player purchase expense of 250 wealth per complex per year and without the 125 per complex tax.
Worked examples and accounting caveats
Section titled “Worked examples and accounting caveats”These examples apply the formulas above to illustrative inputs. They do not assert database recipe values.
| Example | Inputs | Result |
|---|---|---|
| Fractional component order | 100 BP per year, 0.1 year, 50% allocation, cost 20 BP and 4 Duranium per component, sufficient stock | 5 BP advances 0.25 components, charges 5 wealth and 1 Duranium. No whole component enters stock yet. |
| Installation construction | 10 BP per year per weighted construction unit, weight 10 after truncation, P = 0.8, no engineer contribution |
Construction capacity is 80 BP per year. |
| Limiter order | Request 10 units of a recipe with 2 Duranium, 1 Tritanium and 1 Gallicite per unit, stock 15 Duranium, 9 Tritanium and 4 Gallicite | Duranium lowers the value to 7.5. Tritanium is short against 10 but covers 7.5, so it changes nothing. Gallicite lowers the value to 4 and is named in the event. The debit is 8 Duranium, 4 Tritanium and 4 Gallicite. |
| Projected task usage | Task of 500 BP with 200 BP completed and 100 Duranium in its minerals | The task adds 100 x (1 - 200 / 500) = 60 Duranium to the SY Tasks column. |
| Engineer construction | Race ConstructionProduction 10, ground construction rating 5, EconomicProdModifier 1.2 |
The engineer term is 10 x 1 x 5 = 50 BP, because the engineer construction modifier stays at its starting value 1 and the 1.2 never enters it. |
The first example follows the industrial allocation rule and the second the annual capacity formula. The last three follow the industrial limiter, the industrial debit, the projected shipyard task usage and the engineer term. The yard modification, prebuilt component and NPR whole-hull examples are in the worked examples of the shipyard page.
For resource budgeting, keep four distinctions explicit:
- Capacity versus affordable output: shortages reduce work, and race wealth can become negative. Autonomous shipping companies have separate admission checks and can also fall into debt through the stated bypass. Displayed dates generally assume full output.
- Progress spending versus completion stores: fractional work consumes recipes immediately. Completed ships then separately withdraw fuel, MSP and ordnance from local stock.
- Queues versus rollover: industrial and shipyard task snapshots give newly activated successors no work in the same cycle. Ground training can reuse leftover time, with different queue blocking rules.
- Recovery versus refund: cancelling spent progress is not scrapping finished output. Installation, component and ground recovery is normally 30%. Ordnance is 25% plus its defined fuel. Hull scrapping first returns intact components and stores.
The refinery division, rounding overshoots, repair mineral quantities, inherited automatic refit discounts, the station component check and the replacement shortage failure are described in their own sections. They describe how the game calculates, not corrections or claims about intended rules.
Persistence and reload
Section titled “Persistence and reload”This section covers the saved state that the mineral rules read and write. These are population stockpiles, industrial projects, ship mineral cargo, stored components and mineral usage records. Persistence and reload on the shipyard page covers shipyards, shipyard tasks, class materials and shipping lines.
| Table | Fields written | Load behaviour |
|---|---|---|
FCT_Population |
Eleven mineral columns, the Last and Reserve columns, FuelStockpile, MaintenanceStockpile, Efficiency, FuelProdStatus and MaintProdStatus, among others |
The stockpile, the last-minerals snapshot and the reserve levels are rebuilt from the saved values, negative values included. Stability is set to 1 - UnrestPoints / 100 |
FCT_PopMDChanges |
The population’s mineral change amounts, only when one is not zero | Restored for a known population |
FCT_IndustrialProjects |
Percentage, ProductionType, ProductionID, Amount, PartialCompletion, ProdPerUnit, Pause, Queue, FuelRequired and the eleven per-unit minerals |
A row is skipped when its race, population, species or wealth use is missing. A missing production target leaves the project without one. Component and space station projects load in the Construction category. The minerals become the project’s own set of amounts |
FCT_ShipCargo |
One mineral row per carried mineral above zero, plus component and other cargo rows | Rows for unknown ships are skipped |
FCT_PopComponent |
Stored component ID and decimal Amount |
Rows for an unknown population or component are skipped |
FCT_RaceMineralData |
Race, population, type, mineral, Amount and Time of each usage record |
A row with an unknown race is skipped. An unknown population leaves the record without a population. A record without a population is saved with population ID 0 |
Until the game is reloaded, an industrial project’s mineral amounts stay linked to the recipe it was created from, so a change to that recipe’s amounts also changes the project. After a reload, each project keeps the saved amounts and no longer follows the recipe.
The positive-amount list filters the ship class material and ship cargo rows, so a zero or negative class mineral or carried mineral is dropped by a save and reload. Population stockpiles and project minerals are written column by column without that filter.
The race mineral data save keeps records where Time - current game time is below 31,536,000 seconds, one year. Record times never exceed the current time, so the condition holds for every record and the save prunes nothing by age.
The saves do not write the shipyard capacity totals, the annual production capacities or the projected mineral usage totals. Each is recalculated when its recalculation next runs. The production cycle refreshes the capacities before any work, and the population window refreshes the totals and the usage columns. Population dispatch and stored capacities covers the same timing.
Concept map
Section titled “Concept map”- Production timing, the order in which one population spends its stocks within a cycle.
- Strategic construction cycle, where population production and harvesting sit in the game’s update.
- Colony output and income cycle, the same cycle followed across workforce, taxes and output.
- Workforce and efficiency, the colony side of the efficiency factor in P.
- Political status, the source of the
ProductionModfactor. - Governors and sectors, the commander bonuses that scale production and mining.
- Naval administration, the administrative command bonuses for orbital mining, harvesting and cargo support.
- Installation catalogue, the database rows behind every capacity weight and recipe.
- Industrial queues, how factory orders are activated, queued and dated.
- Mineral shortage rules, the shared limiters and debits of industry, shipyards and ground training.
- Projected usage and usage records, the projected mineral demand display and the recorded mineral movements.
- Mining, how deposits, accessibility and civilian complexes turn into minerals.
- Mass Drivers, export of mined minerals and the reserve levels that protect them.
- Wealth and treasury, where every wealth charge and recovery on this page is recorded.
- Civilian economy, shipping lines, trade goods and civilian harvesters.
- Fuel and maintenance supply production, refineries, MSP factories and harvesters.
- Sorium harvesters, ship fuel harvesting and the shipping-line income from overflow fuel.
- Terraforming, the production step that changes colony state without consuming stocks.
- Component design, the designer that sets component, missile and ground unit recipes.
- Ship and station design, the ship class totals that become hull, fighter and station recipes.
- Completion-time supplies, the fuel, supplies and ordnance a new fighter or station draws at completion, and its destination fleet.
- Scrap recovery, the minerals, wealth and fuel returned by scrapping stored components and ordnance.
- Technology to deployment, the path from research to a built design.
- Research, the technologies that set production rates.
- Shipyard work, yard development and ship construction, refit, repair and scrapping.
- Ground forces, training, replacements, upkeep and scrapping of formations.
- Ground force organisation, templates, hierarchy and replacement links.
- Ground combat, where ground supply is consumed.
- Maintenance and repair, the readiness side of MSP use, failures and damage control.
- Refuelling and MSP resupply, how ships draw fuel and supplies from colonies, tankers and supply ships.
- Movement and logistics, fuel burn, cargo transfer, tankers and ordnance transfer.
- Game rule options, the No Maintenance Required option that switches off upkeep.
- NPR colony and economic AI, the NPR rules that queue production and shipyard work.
- Persistence, what the game stores and restores for stockpiles, projects and usage records.
- Intelligence mechanics, a related mechanics page.
Resources
Section titled “Resources”Related community documentation and developer posts. These may describe a different game version.