Related pages own the surrounding mechanics. Production mechanics owns construction rates, industrial queues and build points. Colony output and income owns how capacities turn into output during a cycle. Civilian economy and autonomous logistics owns freighter contract scheduling. NPR colony and economic AI owns NPR installation requests and build choices. Movement and logistics owns shuttle multipliers and the timing of every cargo family. This page owns the catalogue, the meaning of each column and the installation-specific rules those pages rely on. It covers conversion rows, the construction list, cargo transport of installations, cargo loss in combat and the persistence of installation stocks.

The game database as shipped holds 37 rows in DIM_PlanetaryInstallation, listed here in PlanetaryInstallationID order. An edited database can hold different values, and the game uses whatever the database holds. ConversionFrom and ConversionTo are shown as installation names, and a blank cell means 0. CargoPoints is cargo tons per unit. Workers is the per-unit worker requirement, in the same unit as the population’s manufacturing population, millions of people. The required manufacturing population is the total population minus the required agriculture and environmental population and minus the required service industry population. When the shipyards and installations together need more workers than that, efficiency becomes the required manufacturing population divided by the workers needed. RequiredTechID 27434 is Trans-Newtonian Technology, 26345 is Improved Command and Control, 37979 is Genome Sequence Research and 0 is none.

Name ID Abbreviation Cost Workers CargoPoints ConversionFrom ConversionTo CivilianInstallation NoBuild CivMove RequiredTechID Main use
Fuel Refinery 3 REF 120 0.05 25,000 0 0 1 1 27434 fuel production capacity
Naval Shipyard Complex 4 SYN 2,400 0 0 0 0 0 0 0 creates a naval shipyard
Construction Factory 5 CON 120 0.05 25,000 0 0 1 1 27434 construction capacity
Terraforming Installation 6 TRF 300 0.125 50,000 0 0 1 1 27434 terraforming capacity
Mine 7 MIN 120 0.05 25,000 0 0 1 1 27434 manned mining
Research Facility 8 RES 2,400 1 500,000 0 0 1 1 0 research facilities available to projects
Infrastructure 9 INF 2 0 2,500 0 0 1 1 0 colony infrastructure
Deep Space Tracking Station 11 DST 300 0 25,000 0 0 1 1 0 Deep Space Tracking Station sensor strength
Automated Mine 12 AM 240 0 25,000 0 0 1 1 27434 automated mining
Military Academy 14 MAC 2,400 0 500,000 0 0 0 1 0 officer and crew graduation
Ground Force Construction Complex 17 GFCC 2,400 1 500,000 0 0 0 1 0 ground unit training capacity
Convert Mine to Automated 18 CMA 150 0 0 Mine Automated Mine 0 0 0 0 27434 converts a Mine into an Automated Mine
Sector Command 20 SEC 1,200 0 500,000 0 0 0 1 26345 sector command range
Maintenance Facility 21 MF 60 0.05 25,000 0 0 1 1 0 maintenance capacity
Mass Driver 24 MD 300 0 25,000 0 0 1 1 27434 Mass Driver capacity
Financial Centre 25 FC 120 0.05 25,000 0 0 0 1 0 financial wealth production
Convert CI to Construction Factory 27 CCC 20 0 0 Conventional Industry Construction Factory 0 0 0 0 27434 NPR conversion queue
Convert CI to Mine 28 CCM 20 0 0 Conventional Industry Mine 0 0 0 0 27434 NPR conversion queue
Convert CI to Fuel Refinery 30 CCR 20 0 0 Conventional Industry Fuel Refinery 0 0 0 0 27434 NPR conversion queue
Commercial Shipyard Complex 32 SYC 2,400 0 0 0 0 0 0 0 creates a commercial shipyard
Spaceport 33 SPT 3,000 0 1,000,000 0 0 0 1 0 unlocks the space station build list
Ordnance Factory 34 ORD 120 0.05 25,000 0 0 1 1 27434 ordnance production capacity
Fighter Factory 35 FGT 120 0.05 25,000 0 0 1 1 27434 fighter production capacity
Convert CI to Ordnance Factory 36 CCO 20 0 0 Conventional Industry Ordnance Factory 0 0 0 0 27434 NPR conversion queue
Convert CI to Fighter Factory 37 CCR 20 0 0 Conventional Industry Fighter Factory 0 0 0 0 27434 converts Conventional Industry into a Fighter Factory
Conventional Industry 38 CI 240 0.05 25,000 0 1 0 1 0 its presence lists the Conventional Industry conversions
Civilian Mining Complex 39 CMC 2,400 0 0 1 1 0 1 0 civilian mining
Genetic Modification Centre 40 GMC 2,400 0.25 500,000 0 0 1 1 37979 genetic conversion rate
Refuelling Station 43 RS 1,200 0 250,000 0 0 0 0 0 refuelling fleets from the colony
Naval Headquarters 44 NHQ 1,200 0 250,000 0 0 0 1 0 headquarters level
Ordnance Transfer Station 45 OTS 1,200 0 250,000 0 0 0 0 0 ordnance transfer from the colony
Cargo Shuttle Station 46 CSS 1,200 0 250,000 0 0 0 0 0 cargo shuttle support
Forced Labour Construction Camp 47 FLC 40 0.005 100,000 0 0 0 1 27434 forced labour completion
Forced Labour Mining Camp 48 FLM 40 0.005 100,000 0 0 0 1 27434 forced labour completion
Convert CI to Financial Centre 50 CCF 20 0 0 Conventional Industry Financial Centre 0 0 0 0 27434 converts Conventional Industry into a Financial Centre
Repair Yard 51 SYR 1,200 0 0 0 0 0 0 0 creates a repair yard
Ex-Civilian Mining Complex 52 XCM 2,400 0 500,000 0 1 0 1 0 replaces Civilian Mining Complexes after conquest

The data holds four details a player would not expect. Convert CI to Fuel Refinery and Convert CI to Fighter Factory share the abbreviation CCR. Commercial Shipyard Complex and Repair Yard share DisplayOrder 2, and the two mining complexes share DisplayOrder 360. Repair Yard has Cost 1,200 but 2,400 mineral units, the only row where the minerals do not sum to Cost. Spaceport has TaxableWorkers 1 and Workers 0, so its taxable flag adds nothing, while Conventional Industry and both forced labour camps have workers but TaxableWorkers 0. The taxable workforce adds stock amount x Workers only for flagged installations.

Every value column is a decimal per installation unit, except the true or false column TaxableWorkers. The table lists, for each of the 22 value columns, the rows where it is not zero. Ten rows have every value column at zero. They are Naval Shipyard Complex, Commercial Shipyard Complex, Repair Yard and the seven conversion rows. LGInfrastructureValue is zero on every row. The game turns these columns into capacity through one capacity rule, described under readers of the value columns.

Value column Non-zero rows and values
ConstructionValue Construction Factory 1, Forced Labour Construction Camp 1, Conventional Industry 0.1
OrdnanceProductionValue Ordnance Factory 1, Conventional Industry 0.05
FighterProductionValue Fighter Factory 1, Conventional Industry 0.025
RefineryProductionValue Fuel Refinery 1, Conventional Industry 0.05
ResearchValue Research Facility 1
TerraformValue Terraforming Installation 1
MaintenanceValue Maintenance Facility 1
MiningProductionValue Mine 1, Automated Mine 1, Forced Labour Mining Camp 1, Conventional Industry 0.15, Civilian Mining Complex 10, Ex-Civilian Mining Complex 10
InfrastructureValue Infrastructure 1
LGInfrastructureValue none
SensorValue Deep Space Tracking Station 1
GroundTrainingValue Ground Force Construction Complex 1
AcademyValue Military Academy 1
SectorCommandValue Sector Command 1
MassDriverValue Mass Driver 1
FinancialProductionValue Financial Centre 0.25, Conventional Industry 0.025
CargoShuttleValue Spaceport 1, Cargo Shuttle Station 1
GeneticModificationValue Genetic Modification Centre 1
MassRefuelling Spaceport 1, Refuelling Station 1
NavalHeadquartersValue Naval Headquarters 1
MassOrdnanceTransfer Spaceport 1, Ordnance Transfer Station 1
TaxableWorkers Fuel Refinery, Construction Factory, Terraforming Installation, Mine, Research Facility, Ground Force Construction Complex, Maintenance Facility, Financial Centre, Spaceport, Ordnance Factory, Fighter Factory, Genetic Modification Centre (all 1)

The eleven mineral columns are the per-unit mineral cost of a construction project. Gallicite and Sorium are zero on every row. Selecting an installation in the construction list copies its mineral columns into the project’s mineral cost and Cost into its cost per unit. Creating the project stores that cost per unit as the project’s ProdPerUnit.

Name Cost Minerals per unit
Fuel Refinery 120 Boronide 120
Naval Shipyard Complex 2,400 Duranium 1,200, Neutronium 1,200
Construction Factory 120 Duranium 60, Neutronium 60
Terraforming Installation 300 Duranium 150, Boronide 150
Mine 120 Corundium 120
Research Facility 2,400 Duranium 1,200, Mercassium 1,200
Infrastructure 2 Duranium 1, Mercassium 1
Deep Space Tracking Station 300 Duranium 100, Uridium 200
Automated Mine 240 Corundium 240
Military Academy 2,400 Duranium 1,200, Corbomite 300, Tritanium 300, Uridium 300, Corundium 300
Ground Force Construction Complex 2,400 Vendarite 2,400
Convert Mine to Automated 150 Corundium 150
Sector Command 1,200 Boronide 400, Mercassium 400, Uridium 400
Maintenance Facility 60 Duranium 30, Neutronium 30
Mass Driver 300 Duranium 100, Neutronium 100, Boronide 100
Financial Centre 120 Corbomite 120
Convert CI to Construction Factory 20 Duranium 10, Neutronium 10
Convert CI to Mine 20 Corundium 20
Convert CI to Fuel Refinery 20 Boronide 20
Commercial Shipyard Complex 2,400 Duranium 1,200, Neutronium 1,200
Spaceport 3,000 Duranium 400, Corbomite 400, Boronide 1,400, Mercassium 400, Uridium 400
Ordnance Factory 120 Tritanium 120
Fighter Factory 120 Vendarite 120
Convert CI to Ordnance Factory 20 Tritanium 20
Convert CI to Fighter Factory 20 Vendarite 20
Conventional Industry 240 Duranium 30, Neutronium 30, Corbomite 15, Tritanium 30, Boronide 30, Vendarite 15, Corundium 90
Civilian Mining Complex 2,400 Corundium 2,400
Genetic Modification Centre 2,400 Duranium 300, Corbomite 1,200, Boronide 600, Mercassium 300
Refuelling Station 1,200 Duranium 300, Boronide 900
Naval Headquarters 1,200 Boronide 400, Mercassium 400, Uridium 400
Ordnance Transfer Station 1,200 Duranium 300, Boronide 900
Cargo Shuttle Station 1,200 Duranium 300, Corbomite 300, Boronide 300, Mercassium 300
Forced Labour Construction Camp 40 Duranium 20, Neutronium 20
Forced Labour Mining Camp 40 Duranium 20, Corundium 20
Convert CI to Financial Centre 20 Corbomite 20
Repair Yard 1,200 Duranium 1,200, Neutronium 1,200
Ex-Civilian Mining Complex 2,400 Corundium 2,400

An NPR limits each installation order to the number of units its mineral source colony can afford from these per-unit costs. It queues nothing when it can afford less than one unit.

When a game is loaded, the game reads every row of DIM_PlanetaryInstallation and builds one installation definition per row. It does this after it has loaded the technologies, so each row’s required technology can be found. Each definition is stored under its row ID. A duplicate PlanetaryInstallationID makes the catalogue load fail at that row. Error 1287 appears, and the remaining rows of the catalogue are not loaded.

The game links RequiredTechID to a loaded technology. An ID of 0, or an ID with no loaded technology, leaves the installation with no technology requirement. The four ID columns (PlanetaryInstallationID, ConversionFrom, ConversionTo and RequiredTechID), CargoPoints and TargetSize are read as whole numbers, and every other numeric column as a decimal. The five flag columns (NoBuild, CivMove, CivilianInstallation and TaxableWorkers) are read as true or false. The worker label comes from the misspelt column WorkerDesciption. The eleven mineral columns become the definition’s per-unit mineral cost.

Each definition also carries a true or false value and a text value that no rule in play reads or writes. It carries one planning value that is not loaded from the database, the net installation demand that the NPR trans-Newtonian construction queue writes. Every race shares the same definition, so that value is shared by all races rather than kept per race. LGInfrastructureValue has no place in the definition, and the game does not read the column.

Rules that single out one installation, such as the Sector Command registration, name it by type. The game knows 37 types, one for each ID, plus a “no type” value of 0. These rules call ID 8 “Research Lab”, while its database row is named Research Facility. Every other name matches its row name. A database row added later has no type, so no rule in play that names a specific installation applies to it.

A population holds its installations as one stock entry per type. Each entry stores a decimal amount, so fractional installations exist. Rules that count installations use the amount rounded down to a whole number. Rules that need the exact stock use the decimal amount. Setting a quantity of 0 removes the entry. Setting any other quantity overwrites an existing entry, and a positive quantity creates a missing one. Removing installations deletes the entry only when the quantity removed equals the stock exactly. Otherwise it subtracts, with no floor at zero.

One capacity rule turns the 20 loaded decimal value columns into capacity. For each production category it picks one column and returns the sum of that column times the stock amount over the population’s installations. The sum can be fractional. Most uses truncate it to a whole number, which truncates the combined total, not each installation. The industry capacity line on the Industry tab of the Economics window lists the installations whose construction, ordnance or fighter value is above 0, matching the category shown. The mining summary computes its Conventional Industry figure as race mine production x Conventional Industry MiningProductionValue, read directly from the catalogue. Its Civilian Mining Complex figure uses a fixed 10 instead of the column.

  • ConstructionValue feeds annual construction capacity. Installation construction capacity = race construction production rate x colony production output modifier x truncated construction sum. The ground formation construction part, race construction production rate x ground formation construction modifier x colony formation construction rating, is added on top.
  • OrdnanceProductionValue becomes ordnance production capacity through the same truncation, times race ordnance production and the production output modifier.
  • FighterProductionValue becomes fighter production capacity, times race fighter production and the production output modifier.
  • RefineryProductionValue becomes fuel production capacity, times race fuel production and the production output modifier.
  • ResearchValue gates research processing, which runs only when its truncated sum is above 0. The truncated sum is also the number of research facilities the player’s research projects can be assigned.
  • TerraformValue sets the installation count for terraforming. Earth-equivalent annual terraform capacity = (race terraforming rate x terraforming output modifier x truncated sum + orbital terraforming module output) x Terraforming Speed / 100, using the Terraforming Speed option, described under terraforming capacity.
  • MaintenanceValue sets maintenance supply production and the effective maintenance capacity of a maintenance cluster. Supply production = race maintenance supply production x production output modifier x truncated sum x 4. Cluster capacity adds, for each supporting colony, sum x race maintenance capacity x efficiency x radiation production modifier x stability x political status ProductionMod, truncated. The efficiency and political status terms are described on their own pages.
  • MiningProductionValue splits into three groups by Workers and CivilianInstallation. Manned mining needs Workers above 0 and not civilian. Automated mining needs Workers of 0 and not civilian. Civilian mining needs the civilian flag. Manned production = race mine production x manned mining output modifier x truncated manned sum. Automated and civilian production = race mine production x automated mining output modifier x (truncated automated sum + truncated civilian sum). Orbital mining output is added when the body’s diameter is within the race’s maximum orbital mining diameter.
  • InfrastructureValue is read unrounded by the infrastructure metrics and the surface growth check. Required infrastructure = population x 100 x colony cost x gravity infrastructure multiplier / species population density modifier, truncated. The growth check compares that requirement with the infrastructure stock.
  • LGInfrastructureValue is not read. The game reads only InfrastructureValue, and low gravity enters the infrastructure formula through the gravity infrastructure multiplier.
  • SensorValue drives the population summary, the population tree (its system Deep Space Tracking Station totals) and tactical map clustering. The summary line “Tracking Station Strength” is the truncated sum times the race’s planetary sensor strength. Detection strength uses the whole Deep Space Tracking Station count instead. Thermal and EM strength are each the count times the value of the race’s best Improved Planetary Sensor Strength technology.
  • GroundTrainingValue gates the start of ground unit training. A truncated sum of 0 or less starts nothing, and the GU Training tab of the Economics window refuses with “You cannot build ground forces without a ground forces construction complex”. Training capacity uses the whole Ground Force Construction Complex count instead. It is race ground formation construction rate times that count, times the governor’s ground construction bonus, the sector governor’s quarter bonus, the species production rate modifier, the race economic production modifier, the radiation production modifier, efficiency, stability and the political status ProductionMod.
  • AcademyValue is read only for the academy level in the population summary, shown as “Level” and the truncated sum. Graduation uses the whole academy count. Each academy graduates 10 officers a year and, per academy, 1,000 divided by the race training level, rounded down, crewmen a year.
  • SectorCommandValue sets the sector command range. The range is the headquarters radius of the truncated sum, and 0 when the sector command is attached to no colony, described under sector membership range.
  • MassDriverValue is read only for the summary capacity line, 5,000 tons times the truncated sum. Actual Mass Driver capacity uses the whole Mass Driver count times 5,000, and it is 0 when no destination is set and the capacity update requires one, described under mass driver state.
  • FinancialProductionValue is multiplied by efficiency and the wealth modifier in annual wealth production, untruncated, described under financial-centre income. The wealth modifier is political status WealthMod x race wealth creation rate x radiation production modifier. The governor’s wealth creation bonus and the sector governor’s quarter bonus multiply it when present, and stability multiplies it when the colony has unrest.
  • CargoShuttleValue of at least 1 adds the racial cargo shuttle load modifier to the shuttle multiplier of every ship transfer at the population, and refuel and supply transfers also accept a Maintenance Facility or maintenance module as shuttle support. During wreck salvage at a same-race colony with this support, a fleet without cargo holds delivers salvaged components and minerals straight to the colony.
  • GeneticModificationValue sets the conversion rate, race genetic conversion rate times the truncated sum times the production output modifier, described under conversion capacity.
  • MassRefuelling above 0 lets a fleet refuel from the colony. The refuelling destination search also needs a fuel stockpile above 0 and automatic refuelling enabled at the colony.
  • NavalHeadquartersValue sets the headquarters level and is read in four places, described under headquarters capability. Prisoner interrogation runs when the truncated value is above 0, the colony is an Imperial Population and its total population is at least 1. A system’s highest headquarters level is the largest truncated value among its colonies. A positive value admits a colony to the admin command host list. Relocation moves a command to the race colony with the highest value.
  • MassOrdnanceTransfer above 0 allows colony ordnance transfers and the ordnance pass that runs with weapon recharge.
  • TaxableWorkers is the true or false column. Annual wealth production starts the taxable workforce at the shipyard workers and then adds stock amount x Workers for each flagged installation.

The headquarters level that SectorCommandValue and NavalHeadquartersValue feed becomes a radius. Level 0 gives 0, and any other level gives 1 plus the number of halvings that keep it at 1 or more.

Workers sets the colony’s required manufacturing workers. The game sums the shipyard workers plus stock amount x Workers over all installations. When that sum is 0, efficiency is 1. When the sum is larger than the required manufacturing population, efficiency becomes the required manufacturing population divided by the sum, with a floor of 0. The Manufacturing Sector Breakdown on the Summary tab of the Economics window groups the same products by WorkerDesciption, with a Shipyard Workers group when the colony has shipyards, and lists the groups from the largest worker demand to the smallest. Both forced labour camps share the “Labour Camp Overseers” group.

ThermalSignature and EMsignature are summed times the stock amount and added to the colony signatures. Thermal is population plus 20 per shipyard worker plus the installation sum. EM is 10 per population unit plus the same shipyard and installation terms. Both are multiplied by the signature multiplier, 5. An NPR subtracts 0.01 from population first, with a floor of 0.

TargetSize weights installations during population bombardment. Each stock entry gets a cumulative threshold, the running total of TargetSize x stock amount rounded up. A roll from 1 to the largest threshold picks the first entry whose threshold reaches the roll. A hit whose remaining damage is at least TargetSize destroys one unit and spends that much damage. Smaller damage destroys one unit with chance damage / TargetSize, and the hit ends. Missile damage per hit is multiplied by 20 and keeps rolling until spent, as other target families in the aftermath describes. A hit from any other weapon destroys at most one unit. Destroying the last Naval Headquarters relocates the admin commands based at the colony, and destroying the last Sector Command removes its sector.

TargetSize also scales ground combat collateral hits and NPR Deep Space Tracking Station targets. On a colony, collateral hits = floor(collateral damage potential x intact installation target size / (intact + destroyed installation target size) / 50,000). For NPR Deep Space Tracking Station targets, the total installation target size skips rows with TargetSize of 2 or less, which excludes Infrastructure. Collateral hits count every row.

Cost is the construction cost and has three other uses. Intelligence above 100 points counts installations with Cost above 6, so Infrastructure is not counted. The Salvage Installations action converts installations to bio-energy in ascending Cost order, at Cost x 10 / salvage rate days per unit, as population asset dismantling describes. A fully salvaged stock adds amount x Cost in bio-energy.

DisplayOrder sorts installation list views. Abbreviation labels the industry capacity line, for example “12 x CON”. Name sorts the construction and transport lists. List views that show cargo holds print CargoPoints / 25,000 beside the name.

CivMove are loaded and no rule in play reads them. Installation salvage and civilian freighter selection do not test them.

The Industry tab of the Economics window builds the construction list with one of two filters. Both drop NoBuild rows and rows that require a technology the race has not researched or holds as obsolete. When the population has no whole Conventional Industry, the list also drops rows whose ConversionFrom is Conventional Industry. Both sort by Name.

The filter removes Conventional Industry, Civilian Mining Complex and Ex-Civilian Mining Complex from every list. Convert Mine to Automated stays listed whether or not the colony has a Mine, because its source is not Conventional Industry. The three shipyard rows stay listed and build shipyards rather than stock.

The industrial project step of each construction cycle advances each active project. For a construction project whose installation has a ConversionTo above 0, the buildable amount is limited by the source stock. The limit is 0 when the source type is absent, the requested amount when the source covers it, and otherwise the source amount truncated to a whole number. A smaller limit replaces the buildable amount and logs a Conversion Halted event, “Cannot continue installation conversion at” the colony name “due to a lack of source installations”.

Costs are charged on the buildable amount, buildable amount times the cost per unit in wealth plus the matching minerals. Progress accumulates in PartialCompletion, and units complete on whole parts of it. A completed batch adds the whole unit count to the colony.

Adding installations to a colony handles four cases in order.

  1. Shipyard rows Naval Shipyard Complex, Commercial Shipyard Complex and Repair Yard create one shipyard of their type and stop, whatever the quantity.
  2. Conversion rows with a ConversionTo above 0 clamp the quantity to the truncated source amount when the source is smaller. They remove the source entry when the quantity equals it exactly, or reduce it otherwise. They then add the same quantity of the target type, which runs through these cases again.
  3. Existing entries add the quantity to the stock amount.
  4. New entries create a stock entry with the quantity.

Cases 3 and 4 register a sector when the type is Sector Command and the amount reaches 1. When the race has no sector command at this population, the game creates one named after the system with “ Sector” appended, coloured red.

Adding a conversion row directly at a colony that has no source installation fails. Error 2131 appears, and that add ends with nothing converted. The industrial project step never reaches that case, because the source limit returns 0 first.

Forced labour camp projects are skipped when the colony’s total population is below 0.1, and an Insufficient Population event is logged. A completing batch adds 5 unrest and removes 0.1 population once, however many camps it completed, as the forced labour passage also states.

Other rules add installations directly. Race creation sets starting stocks, covered by conventional and trans-Newtonian starts. Ruin recovery adds the loot type, in a quantity of a die roll times a multiplier. A conquest transfer to Conquered status with tech capture, from a standard race, removes the Civilian Mining Complex entry and adds its whole count as Ex-Civilian Mining Complexes. The Spacemaster add command offers only rows with CargoPoints above 0. It adds to an existing entry directly, without the Sector Command registration. A design philosophy reconciliation converts Fighter and Ordnance Factories the race does not use. Fighter Factories become Ordnance Factories when the race uses ordnance factories but not fighter factories, and Ordnance Factories become Fighter Factories in the reverse case. A race that uses neither type converts its Fighter Factories to Construction Factories, or its Ordnance Factories when it has no Fighter Factories. Only one conversion happens per pass.

A row is transportable when CargoPoints is above 0. That excludes the three shipyard rows, the seven conversion rows and Civilian Mining Complex. The other 26 rows can be carried, Ex-Civilian Mining Complex included. The transport and request lists use the same filter, and the supply list also requires a stock at the colony.

Installation tons are CargoPoints x amount. A ship’s free cargo capacity is its undamaged cargo hold capacity minus installation tons, component tons (component size x 50 x amount), trade good tons (2,500 per trade good unit) and mineral tons (2 per mineral unit). A negative result counts as 0, and the result is truncated to whole tons. List views show CargoPoints / 25,000 beside the name as a cargo hold count.

A ship loads installations only when it has free capacity, a non-zero shuttle multiplier at the colony and a positive stock there. The shuttle multiplier counts a ship of 10 HS or less as one shuttle bay and a larger ship by its cargo shuttle bay capacity. It multiplies that by the admin command, ship commander, governor and sector governor logistics bonuses and the race cargo shuttle load modifier. A colony with a CargoShuttleValue sum of at least 1 adds the race cargo shuttle load modifier once more. The ship loads free tons / CargoPoints, limited by the stock and by a positive remaining order quantity. The amount is a decimal, so a ship can load part of an installation. The new cargo entry records the colony it came from, and a shipping line ship records the distance it had travelled at loading. A shipping line ship that fails any test clears its fleet’s move orders.

The fleet load order goes through the fleet’s ships one after another that have an undamaged cargo hold and shares a quota between them when the order’s MaxItems is positive. NPR ships and shipping line ships first clear any installation cargo they carry, so those installations are lost. A Pickup Failed event is logged when nothing loads.

Unloading needs a non-zero colony shuttle multiplier. Without one, the ship logs an event saying it was unable to unload due to a lack of cargo shuttles and unloads nothing. For an all-types unload that message cannot name an installation, because the “no type” entry has no row. Error 2786 appears, no event is logged and the unload ends with nothing moved. With shuttles present, an all-types unload adds every cargo entry to the colony and clears the cargo. For one type the ship unloads the carried amount, or a smaller positive quota, and adds it to the colony. A shipping line ship first earns CargoPoints x amount x 0.00015 wealth per billion km travelled since loading. The race takes its shipping tax from that revenue as tax income, and the company keeps the rest. For an NPR race the company’s net revenue is multiplied by 0.5.

A fleet-to-fleet transfer picks donor ships carrying the type and receiver ships with positive cargo hold capacity. It adds 1 to each donor ship’s ship-to-ship shuttle multiplier when the receiving fleet has cargo shuttle bays or maintenance modules. Each donor ship needs that total to be non-zero. It then moves receiver free tons / CargoPoints, limited by the donor amount and a positive quota, as in fleet-to-fleet installations.

Fleet-to-fleet installations describes the edge cases of the ship-level transfer, including donor entries that stay at 0 and a quota that stops limiting once it reaches exactly 0.

The order runs the timed transfer once its countdown ends. Unload and transfer time is CargoPoints x amount x 20 seconds per ship. A ship short of crew multiplies it by class crew / current crew. A positive shuttle multiplier divides it. For a transfer that multiplier is the ship-to-ship multiplier plus one when the receiving fleet has cargo shuttle bays or maintenance modules. The fleet waits for the slowest ship. Loading uses the ship’s free capacity x 20 seconds, not the installation size.

The unload time does not reset between ships. A ship without the selected installation takes the previous ship’s final time, already scaled by that ship’s crew and shuttle terms, and then has its own crew and shuttle terms applied again.

The move list offers Load Installation only when the fleet has cargo capacity, the colony has at least one installation entry, and the colony has a CargoShuttleValue sum of at least 1 or the fleet shuttles its own cargo. Unload Installation needs installation cargo aboard or a queued Load Installation order, and it also accepts a fleet made up entirely of fighters in place of shuttles.

When a damage roll hits a cargo hold, the ship is marked as having a damaged cargo hold, and the damage report then applies cargo capacity losses. The game sums trade good tons (2,500 per unit), installation tons, component tons (size x 50) and mineral tons (2 per unit) and compares the total with the ship’s free cargo capacity.

Free capacity is the capacity left after the same cargo, not the hold capacity. Cargo C in holds of capacity K is therefore cut whenever C exceeds max(0, K - C). For C at most K that means C above K/2, with loss fraction (2C - K) / C. For C above K the loss fraction is 1, and all cargo is lost.

On a loss the game multiplies every trade good, installation and component amount by the survival fraction, 1 - loss fraction, and scales the minerals by it. The component tons term counts each stored component entry once at its size x 50, whatever the amount, unlike free capacity. The report text for installations prints the loss fraction times the amount already scaled, and the mineral text prints the quantity before scaling. The space combat page lists the capacity losses in their damage order.

When penetrating damage destroys a ship after 20 failed component allocation attempts, the event reads “has suffered a catastrophic failure and exploded!” and a cargo loss report follows. The report lists the cargo when the same free capacity test fails and changes nothing on the ship. For a shipping line ship carrying installations, it adds each carried amount back to the import request of the colony named by the fleet’s Unload Installation order. For a shipping line ship with no installation cargo whose other cargo fails the same test, and with a Load Installation order, it adds free tons / CargoPoints back to both the export and the import requests.

Civilian freighters move installations between requests. When the game assigns orders to idle freighters, it stores each fleet’s free capacity in tons and tries installation transfers before any trade goods. When no transfer is found in the fleet’s own system, it tries installation transfers in other systems before falling back to trade goods. For an NPR race the installation step runs only while the race’s installation route check is pending. The check is cleared when the installation step runs and set again after a fleet falls through to trade goods. A player race runs the installation step for every idle freighter.

The installation transfer search takes the race’s own colonies in the system with export requests, nearest first. Each source’s export requests are taken in descending amount x CargoPoints, and the search of that colony’s requests stops at the first that cannot fill the fleet, then moves on to the next colony. The import search returns the nearest same-race colony with a non-export request for the type whose amount x CargoPoints is at least the fleet capacity. A shipping line skips military restricted colonies in both searches.

A successful match queues Load Installation and Unload Installation and subtracts capacity / CargoPoints from both requests at once. Without a local importer, the fleet searches other systems through the automatic route search and repeats the same subtraction on success. When that search finds no destination, the fleet’s orders are cleared and the next export request is tried. The automatic route search picks its destination with the same import test. A separate export-request search returns the largest export request of the nearest qualifying colony when that request can fill the fleet. Only a search for an installation source reaches it, and no rule in play requests that search.

When the fleet routes to another system, the destination’s import request is reduced by the same amount. The route search returns only colonies that pass the import test, which requires that request, so the request always exists there.

The NPR trans-Newtonian construction queue reads the catalogue in its demand step. It sums the race’s essential import requests minus its essential export requests per installation, stores the result as that installation’s net demand, and picks the type with the largest net demand x CargoPoints. The quantity depends on Cost against a 2,400 budget, and the rest of the step order is in the trans-Newtonian queue. When the net demand is positive, the queue picks the quantity as follows.

  • When Cost x net demand is below 2,400, it queues the net demand truncated to a whole number.
  • When Cost is 2,400 or more, it queues 1.
  • Otherwise it queues 2,400 / Cost, rounded down.

The conversion helper queues four of the seven conversion rows. It acts only once Trans-Newtonian Technology is researched and the colony has construction capacity. It queues 5 Convert CI to Fuel Refinery when refineries number below a fifth of the construction factories. It queues 5 Convert CI to Ordnance Factory under the same test when the race’s design philosophy uses ordnance factories. It queues 10 Convert CI to Mine when mines number below the construction factories, and otherwise 10 Convert CI to Construction Factory. It stops at the first order it queues. Convert CI to Fighter Factory, Convert CI to Financial Centre and Convert Mine to Automated are not queued by any NPR routine in play.

These examples are calculated from the rules on this page, not read from a saved game.

Truncation of a combined capacity. A colony has 3 Construction Factories and 15 Conventional Industry. The construction sum is 3 x 1 + 15 x 0.1 = 4.5. Annual capacity truncates it to 4, so with a race construction production rate of 10 and a production output modifier of 1 the installation part is 40 BP a year. The half factory from Conventional Industry gives nothing until the sum reaches 5.

A conversion halted by its source. A Convert CI to Mine project for 10 units can afford 6.5 units this cycle, and the colony has 4 Conventional Industry. The source limit returns 4 truncated, which is 4 and below 6.5, so the cycle builds 4 and logs Conversion Halted. The charge is 4 x 20 wealth and 80 Corundium. With no earlier partial progress, 4 units complete. The conversion removes all 4 Conventional Industry, because the quantity equals the source amount, and adds 4 Mines. In the next cycle the source is absent, the limit returns 0 and the project halts again.

Loading and unloading Automated Mines. A freighter above 10 HS with no shuttle bays and 50,000 free tons loads at a colony with a Spaceport and 3 Automated Mines. The shuttle multiplier is 0 from bays plus the racial modifier L for the Spaceport. With L = 1, the load time is 50,000 x 20 = 1,000,000 seconds, about 11.6 days. The load is 50,000 / 25,000 = 2 mines. Unloading at a colony with a Cargo Shuttle Station takes 2 x 25,000 x 20 = 1,000,000 seconds.

Cargo loss after one hold is destroyed. A ship with two 25,000-ton holds carries 8 Infrastructure, 20,000 tons. One hold is destroyed, so K is 25,000 and free capacity is 5,000. The 20,000 tons exceed 5,000, so the loss fraction is (20,000 - 5,000) / 20,000 = 0.75. The ship keeps 2 Infrastructure although 8 would fit in 25,000 tons. The report says “1.5 Infrastructure”, the 0.75 fraction times the 2 that remain, while 6 were lost.

A transfer quota that stops limiting. A Transfer Installation order for Mines has a MaxItems of 2. The donor carries 5 Mines, and the receiving fleet has ships A and B with 25,000 free tons and C with 100,000. A takes 1 and the quota falls to 1. B takes 1 and the quota falls to 0. C then takes min(100,000 / 25,000, 3) = 3 because a zero quota no longer limits, so 5 Mines move.

Headquarters radius. A colony with 3 Naval Headquarters has level 3. Halving 3 gives 1.5, which is at least 1, so the radius becomes 2. Halving again gives 0.75 and stops. Level 4 gives radius 3.

The catalogue is static. The game reloads DIM_PlanetaryInstallation on every game load, and the save writes no catalogue rows, so a changed database changes every definition on the next load. The NPR net installation demand, the amount destroyed in the current attack and the bombardment target threshold are not saved.

Table Saved data Fields On load, when a reference is missing
FCT_PopulationInstallations each colony’s installation stock GameID, PopID, PlanetaryInstallationID, Amount a row whose population or installation ID is not loaded is skipped
FCT_ShipCargo, CargoTypeID 2 installation cargo aboard ships GameID, ShipID, CargoID, Amount, StartingPop, SpeciesID 0, Neutral false a row for an unknown ship is skipped, and an unknown starting population leaves the cargo without one
FCT_PopInstallationDemand installation requests PopulationID, InstallationID, Amount, GameID, Export, NonEssential a row with an unknown installation or population is skipped
FCT_IndustrialProjects industrial projects ProductionID holds the installation ID for a construction project, with its own ProdPerUnit and eleven mineral columns an unknown ID leaves the project without an installation

A saved project keeps the ProdPerUnit and minerals it was created with, so a changed catalogue cost applies only to projects created after the change.

When a game is loaded, an installation cargo row whose installation ID the catalogue does not hold stops the cargo load. Error 1178 appears, and no later cargo rows of any type load.

A construction project whose installation ID no longer loads keeps no installation. The industrial project step fails on that project when it looks up the installation’s ConversionTo. Error 2100 appears, and the colony’s industrial project step ends for that cycle, so the colony’s later projects do not advance.

Capacities are recomputed from the reloaded stocks. The capacity rule reads the live stock each time it runs, and the recalculation steps refill the annual capacity figures.

Related community documentation and developer posts. These may describe a different game version.